blob: 55c5decd07e3429f3ad168663c14f012928e24d3 (
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
|
# 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.1-r1.ebuild,v 1.1 2009/09/27 14:22:21 jsbronder Exp $
inherit linux-mod toolchain-funcs autotools
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="apidocs doc examples gtk server ssl static"
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 ~ppc64 ~x86"
pkg_setup() {
linux-mod_pkg_setup
if kernel_is 2 4; then
BUILD_TARGETS="just_kmod24"
ECONF_PARAMS="--with-kernel24=${KV_OUT_DIR}"
MODULE_NAMES="pvfs2(fs::src/kernel/linux-2.4)"
else
BUILD_TARGETS="just_kmod"
ECONF_PARAMS="--with-kernel=${KV_OUT_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 doesn't seem to want to apply this which makes
# sense as it probably only matters to us. Simple patch
# to split the installation of the module (which we use
# the eclass for) and the installation of the kernapps.
epatch "${FILESDIR}"/${PN}-split-kernapps.patch
# Support for >=linux-2.6.25, should be unnecessary next release.
sed -i 's/ Q=@echo >.*/ Q=@/' src/kernel/linux-2.6/Makefile.in
# upstream patch for 2.6.26 kernels
epatch "${FILESDIR}"/${PN}-super.c.patch
# upstream patch for 2.6.29+ MAIN:pcarns:20090401202748, MAIN:pcarns:20090401212735
epatch "${FILESDIR}"/${P}-2.6.29-fixes.patch
# upstream patch for 2.6.30+ MAIN:pcarns:20090630184815
if kernel_is -ge 2 6 30; then
epatch "${FILESDIR}"/${P}-2.6.30-fixes.patch
fi
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}"
}
|