blob: 796d6d2c3efba6f39759181926fe3d2ef6cfe21d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-cluster/pvfs2/pvfs2-2.7.0-r2.ebuild,v 1.3 2009/10/23 16:58:13 jsbronder Exp $
inherit linux-mod autotools toolchain-funcs
MY_PN="${PN%[0-9]*}"
MY_P="${MY_PN}-${PV}"
S="${WORKDIR}/${MY_P}"
DESCRIPTION="Parallel Virtual File System version 2"
HOMEPAGE="http://www.pvfs.org/"
SRC_URI="ftp://ftp.parl.clemson.edu/pub/pvfs2/${MY_P}.tar.gz"
IUSE="gtk server static doc ssl examples apidocs"
RDEPEND="gtk? ( >=x11-libs/gtk+-2 )
ssl? ( dev-libs/openssl )
sys-libs/db"
DEPEND="${RDEPEND}
doc? ( dev-tex/latex2html )
apidocs? ( app-doc/doxygen )
virtual/linux-sources"
SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~amd64 ~ppc ~x86 ~ppc64"
pkg_setup() {
linux-mod_pkg_setup
if kernel_is 2 4; then
BUILD_TARGETS="just_kmod24"
ECONF_PARAMS="--with-kernel24=${KV_DIR}"
MODULE_NAMES="pvfs2(fs::src/kernel/linux-2.4)"
else
BUILD_TARGETS="just_kmod"
ECONF_PARAMS="--with-kernel=${KV_DIR} --enable-verbose-build"
MODULE_NAMES="pvfs2(fs::src/kernel/linux-2.6)"
fi
ECONF_PARAMS="${ECONF_PARAMS}
--enable-mmap-racache
--sysconfdir=/etc/pvfs2
--enable-shared
--enable-static
$(use_enable static static-server)
$(use_enable gtk karma)
$(use_enable server)
$(use_with ssl openssl /usr/$(get_libdir))"
}
src_unpack() {
unpack ${A}
cd "${S}"
# Upstream packed all of these by mistake.
# TODO: Shouldn't be needed next release.
find "${S}" -name '*\.d' | xargs rm -rf
# All of these must be done in order and are required to fix the bug noted
# at: http://www.beowulf-underground.org/pipermail/pvfs2-developers/2008-January/003790.html
# TODO: Shouldn't be needed next release.
epatch "${FILESDIR}"/${PV}-ctl_unnumbered.patch
epatch "${FILESDIR}"/${PV}-kernel-rt.patch
epatch "${FILESDIR}"/${PV}-verbose-checking.patch
epatch "${FILESDIR}"/${PV}-kmem_cache.patch
# Fixes destdir, separates the kernel module from the userland build,
# forces enabling of the shared threaded library. Fixes so names and
# makes links. as-needed fixes for the shared libs. All to Makefile.in
epatch "${FILESDIR}"/2.7.0-gentoo-makefile.patch
# Fix --enable-static-server to correctly use AC_ARG_ENABLE
epatch "${FILESDIR}"/2.7.0-configure-static-server.patch
# as-needed patchs
sed -i \
-e "s:LIBS=\"\$LIBS.*:LIBS=\"\$LIBS -lcrypt -lcrypto -lssl\":g" \
maint/config/openssl.m4 || die
sed -i 's:LDFLAGS=.*-lrt.*:LIBS="\$LIBS -lrt":' maint/config/rt.m4 || die
# The following makes some builds die by actually spitting out more errors.
# See bug #210923. If this breaks other things, it's my fault.
sed -i 's:-Wno-strict-aliasing=2::' maint/config/kernel.m4 || die
AT_M4DIR="maint/config" eautoreconf || die
}
src_compile() {
linux-mod_src_compile || die
emake kernapps || die
emake all || die
if use doc; then
emake docs || die
if use apidocs; then
cd "${S}"/doc
doxygen doxygen/pvfs2-doxygen.conf || die
fi
fi
}
src_install() {
linux-mod_src_install || die
emake DESTDIR="${D}" kernapps_install || die
emake DESTDIR="${D}" install || die
if use server; then
newinitd "${FILESDIR}"/pvfs2-server-init.d-2.7.0 pvfs2-server
newconfd "${FILESDIR}"/pvfs2-server-conf.d-2.7.0 pvfs2-server
fi
newinitd "${FILESDIR}"/pvfs2-client-init.d-2.7.0 pvfs2-client
newconfd "${FILESDIR}"/pvfs2-client-conf.d-2.7.0 pvfs2-client
dodoc AUTHORS CREDITS ChangeLog INSTALL README
# this is LARGE (~5mb)
if use doc; then
dodoc doc/multi-fs-doc.txt doc/add-server-req \
doc/add-client-syscall doc/coding/valgrind \
doc/coding/backtrace_analysis.txt
insinto /usr/share/doc/${PF}
doins doc/*.pdf doc/coding/developer-guidelines.pdf \
doc/design/*.pdf doc/random/SystemInterfaceTesting.pdf
if use apidocs; then
dohtml -A map -A md5 doc/doxygen/html/*
fi
fi
if use examples; then
docinto examples/heartbeat
dodoc examples/heartbeat/*
docinto examples
dodoc examples/fs.conf
fi
}
pkg_preinst() {
linux-mod_pkg_preinst
}
pkg_postinst() {
linux-mod_pkg_postinst
local f="$(source "${ROOT}"etc/conf.d/pvfs2-server; echo ${PVFS2_FS_CONF})"
elog "1.) Pvfs2 uses a unified configuration file as of 2.7.0. If you"
elog " have configuration files from an earlier version, use the provided:"
elog " ${ROOT}usr/bin/pvfs2-config-convert"
elog "to automatically update to the newer configuration scheme."
elog "2.) Use emerge --config pvfs2 to create new configuration files."
elog "3.) If the storage space has not been previously created, either set"
elog " PVFS2_AUTO_MKFS=1 in ${ROOT}etc/conf.d/pvfs2-server or run:"
elog " ${ROOT}usr/sbin/pvfs2-server --mkfs ${f}"
}
pkg_config() {
local s
local f="$(source "${ROOT}"etc/conf.d/pvfs2-server; echo ${PVFS2_FS_CONF})"
if [[ -f "${f}" ]]; then
ewarn "Previous install detected."
ewarn "We're about to wipe out ${f} and replace it with"
ewarn "the file generated by running pvfs2-genconfig. If this is what"
ewarn "you want to do, hit any key to continue. Otherwise hit ctrl+C"
ewarn "to abort."
read s
fi
einfo "Creating new unified configuration file"
ewarn "WARNING: pvfs2 is picky about hostnames. Make sure you use the"
ewarn "correct shortname for all nodes and have name resolution for these"
ewarn "shortnames correctly configured on all nodes."
[ ! -d "${ROOT}$(dirname "${f}")" ] && mkdir -p "${ROOT}$(dirname "${f}")"
"${ROOT}"usr/bin/pvfs2-genconfig "${f}"
}
|