diff options
author | Steve Arnold <nerdboy@gentoo.org> | 2007-12-03 00:00:46 +0000 |
---|---|---|
committer | Steve Arnold <nerdboy@gentoo.org> | 2007-12-03 00:00:46 +0000 |
commit | 7c2b96328682f9bce2cf856cddfc46cacc77c28f (patch) | |
tree | bac38312c793cd65436d893fc2230db540c9e246 /sys-cluster | |
parent | push changes (diff) | |
download | gentoo-2-7c2b96328682f9bce2cf856cddfc46cacc77c28f.tar.gz gentoo-2-7c2b96328682f9bce2cf856cddfc46cacc77c28f.tar.bz2 gentoo-2-7c2b96328682f9bce2cf856cddfc46cacc77c28f.zip |
Added latest upstream release to address shared library and API issues
(Portage version: 2.1.4_rc1)
Diffstat (limited to 'sys-cluster')
-rw-r--r-- | sys-cluster/pvfs2/ChangeLog | 12 | ||||
-rw-r--r-- | sys-cluster/pvfs2/files/2.7.0-lib-install.patch | 21 | ||||
-rw-r--r-- | sys-cluster/pvfs2/files/2.7.0-soname.patch | 60 | ||||
-rw-r--r-- | sys-cluster/pvfs2/files/digest-pvfs2-2.7.0 | 3 | ||||
-rw-r--r-- | sys-cluster/pvfs2/pvfs2-2.7.0.ebuild | 192 |
5 files changed, 287 insertions, 1 deletions
diff --git a/sys-cluster/pvfs2/ChangeLog b/sys-cluster/pvfs2/ChangeLog index 5e2694039924..e4216a54a5e4 100644 --- a/sys-cluster/pvfs2/ChangeLog +++ b/sys-cluster/pvfs2/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for sys-cluster/pvfs2 # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/pvfs2/ChangeLog,v 1.8 2007/10/17 02:40:58 nerdboy Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/pvfs2/ChangeLog,v 1.9 2007/12/03 00:00:45 nerdboy Exp $ + +*pvfs2-2.7.0 (02 Dec 2007) + + 02 Dec 2007; Steve Arnold <nerdboy@gentoo.org> +pvfs2-2.7.0.ebuild, + +files/2.7.0-lib-install.patch, +files/2.7.0-soname.patch: + Added latest upstream release to address shared library issues and + dependent packages (eg, mpich2, hdf5-parallel, etc). Also enabled + the shared version of libpvfs2-threaded. This is definitely the one + you want if you need the latest cluster/MPI support (although the + threaded lib needs testing). 17 Oct 2007; Steve Arnold <nerdboy@gentoo.org> pvfs2-2.6.3-r1.ebuild, pvfs2-2.6.3.ebuild, pvfs2-1.5.1.ebuild: diff --git a/sys-cluster/pvfs2/files/2.7.0-lib-install.patch b/sys-cluster/pvfs2/files/2.7.0-lib-install.patch new file mode 100644 index 000000000000..34803d0cf262 --- /dev/null +++ b/sys-cluster/pvfs2/files/2.7.0-lib-install.patch @@ -0,0 +1,21 @@ +--- Makefile.in.orig 2007-11-30 16:49:56.000000000 -0800 ++++ Makefile.in 2007-11-30 16:53:49.000000000 -0800 +@@ -55,6 +55,7 @@ + prefix = $(DESTDIR)@prefix@ + datarootdir = $(DESTDIR)@datarootdir@ + mandir = $(DESTDIR)@mandir@ ++libdir = $(DESTDIR)@libdir@ + exec_prefix = $(DESTDIR)@exec_prefix@ + + VPATH = $(srcdir) +@@ -893,8 +894,8 @@ + install -m 644 $(srcdir)/include/pvfs2-util.h $(prefix)/include + install -m 644 $(srcdir)/include/pvfs2-encode-stubs.h $(prefix)/include + +- install -d $(prefix)/lib +- install -m 755 $(LIBRARIES) $(prefix)/lib ++ install -d $(libdir) ++ install -m 755 $(LIBRARIES) $(libdir) + + ifdef TARGET_OS_DARWIN + # TOC needs to be regenerated in libs after they get moved diff --git a/sys-cluster/pvfs2/files/2.7.0-soname.patch b/sys-cluster/pvfs2/files/2.7.0-soname.patch new file mode 100644 index 000000000000..8b994182d435 --- /dev/null +++ b/sys-cluster/pvfs2/files/2.7.0-soname.patch @@ -0,0 +1,60 @@ +--- Makefile.in.orig 2007-12-02 12:26:02.000000000 -0800 ++++ Makefile.in 2007-12-02 12:47:58.000000000 -0800 +@@ -64,6 +64,7 @@ + # TODO: should probably check for bison and flex in configure + BISON = bison + FLEX = flex ++LN = ln -s + BUILD_BMI_TCP = @BUILD_BMI_TCP@ + BUILD_GM = @BUILD_GM@ + BUILD_MX = @BUILD_MX@ +@@ -163,6 +164,8 @@ + REDHAT_RELEASE = @REDHAT_RELEASE@ + NPTL_WORKAROUND = @NPTL_WORKAROUND@ + STRICT_CFLAGS = @STRICT_CFLAGS@ ++SO_LIBS = -lcrypt -lssl -lpthread ++SO_VER = 2.0 + # for Solaris: + # LIBS += -lsocket -lnsl + +@@ -436,8 +439,10 @@ + LIBRARIES := + LIBRARIES_THREADED := + ifeq ($(build_shared),yes) +-LIBRARIES_SHARED = lib/libpvfs2.so ++LIBRARIES_SHARED = lib/libpvfs2.so.$(SO_VER) + LIBRARIES += $(LIBRARIES_SHARED) ++LIBRARIES_THREADED_SHARED = lib/libpvfs2-threaded.so.$(SO_VER) ++LIBRARIES_THREADED += $(LIBRARIES_THREADED_SHARED) + endif + ifeq ($(build_static),yes) + LIBRARIES_STATIC = lib/libpvfs2.a +@@ -628,16 +633,16 @@ + $(E)ar rcs $@ $(LIBTHREADEDOBJS) + + # rule for building the pvfs2 library +-lib/libpvfs2.so: $(LIBPICOBJS) ++lib/libpvfs2.so.$(SO_VER): $(LIBPICOBJS) + $(Q) " LDSO $@" + $(E)$(INSTALL) -d lib +- $(E)$(LDSHARED) -o $@ $(LIBPICOBJS) ++ $(E)$(LDSHARED) -Wl,-soname,libpvfs2.so.$(SO_VER) -o $@ $(LIBPICOBJS) $(SO_LIBS) + + # rule for building the pvfs2 _multithreaded_ library +-lib/libpvfs2-threaded.so: $(LIBTHREADEDPICOBJS) ++lib/libpvfs2-threaded.so.$(SO_VER): $(LIBTHREADEDPICOBJS) + $(Q) " LDSO $@" + $(E)$(INSTALL) -d lib +- $(E)$(LDSHARED) -o $@ $(LIBTHREADEDPICOBJS) ++ $(E)$(LDSHARED) -Wl,-soname,libpvfs2-threaded.so.$(SO_VER) -o $@ $(LIBTHREADEDPICOBJS) $(SO_LIBS) + + # rule for building the pvfs2 server library + lib/libpvfs2-server.a: $(SERVEROBJS) +@@ -896,6 +901,7 @@ + + install -d $(libdir) + install -m 755 $(LIBRARIES) $(libdir) ++ install -m 755 $(LIBRARIES_THREADED) $(libdir) + + ifdef TARGET_OS_DARWIN + # TOC needs to be regenerated in libs after they get moved diff --git a/sys-cluster/pvfs2/files/digest-pvfs2-2.7.0 b/sys-cluster/pvfs2/files/digest-pvfs2-2.7.0 new file mode 100644 index 000000000000..8a8cdfa5bf22 --- /dev/null +++ b/sys-cluster/pvfs2/files/digest-pvfs2-2.7.0 @@ -0,0 +1,3 @@ +MD5 99e7680e82b692f699b5a295b31989c8 pvfs-2.7.0.tar.gz 2249993 +RMD160 bc694aaf83029ea6cde4b2c64225f63203e2b862 pvfs-2.7.0.tar.gz 2249993 +SHA256 5c781ba3943b7fa604617ba08a8da7651ac4b82fdc910b01ae7cfd6f32e87f85 pvfs-2.7.0.tar.gz 2249993 diff --git a/sys-cluster/pvfs2/pvfs2-2.7.0.ebuild b/sys-cluster/pvfs2/pvfs2-2.7.0.ebuild new file mode 100644 index 000000000000..d969b2e3aa7d --- /dev/null +++ b/sys-cluster/pvfs2/pvfs2-2.7.0.ebuild @@ -0,0 +1,192 @@ +# Copyright 1999-2007 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.ebuild,v 1.1 2007/12/03 00:00:45 nerdboy 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" + +RDEPEND="gtk? ( >=x11-libs/gtk+-2 ) + sys-libs/db + dev-libs/openssl + apidocs? ( app-doc/doxygen ) + doc? ( dev-tex/latex2html + virtual/tetex )" + +DEPEND="${RDEPEND} + virtual/linux-sources + examples? ( dev-lang/perl )" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" +IUSE="apidocs doc examples gtk server static" + +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 + + # Notice I don't include --disable-static because it makes the linker + # fail due to a missing library needed by LIBS_THREADED += -lpvfs2-threaded. + # However that library is only compiled if static is enabled. Anyway + # it is used to build pvfs2-client-core-threaded, which is not installed + # by make kmod_install (unstable perhaps?) + + # As of version 2.7.0 both static and shared versions of lpvfs2-threaded + # are built and installed (via the soname patch). Feel free to test ... + ECONF_PARAMS="${ECONF_PARAMS} $(use_enable !static shared)" + ECONF_PARAMS="${ECONF_PARAMS} $(use_enable gtk karma)" + ECONF_PARAMS="${ECONF_PARAMS} $(use_enable server)" + ECONF_PARAMS="${ECONF_PARAMS} --libdir=/usr/$(get_libdir)" + ECONF_PARAMS="${ECONF_PARAMS} --enable-mmap-racache" + ECONF_PARAMS="${ECONF_PARAMS} --with-openssl=/usr" +} + +src_unpack() { + unpack ${A} + cd "${S}" + find "${S}" -name '*\.d' | xargs rm -rf + + AT_M4DIR="maint/config" eautoreconf + + epatch "${FILESDIR}"/2.6.3-as-needed.patch || die "as-needed patch failed" + epatch "${FILESDIR}/${PV}"-lib-install.patch || die "install patch failed" + epatch "${FILESDIR}/${PV}"-soname.patch || die "soname patch failed" + + # Fix so we can install kernapps separate from kmod_install + sed -i '/^kmod_install: kmod/{ + s/\(kmod_install:.*kernapps\)\(.*\)/\1_install\2\n.PHONY: kernapps_install\nkernapps_install: kernapps/}' Makefile.in + sed -i '/^kmod24_install: kmod/{ + s/\(kmod24_install:.*kernapps\)\(.*\)/\1_install\2\n.PHONY: kernapps_install\nkernapps_install: kernapps/}' Makefile.in + + #This is needed when gcc doesn't support -Wno-pointer-sign. Now it will give us some warnings so it also removes -Werror. + #It's unsafe, not recommended + if [ "$(gcc-major-version)" -lt "4" ]; then + ewarn "It's recommended to use gcc >= 4.0 to avoid the following patch" + epatch "${FILESDIR}"/2.6.3-no-pointer-sign.patch + fi +} + +src_compile() { + # since ${ECONF_PARAMS} is set, linux-mod_src_compile will invoke + # its own configure, so running econf just makes it go twice... + + linux-mod_src_compile || die "Unable to linux-mod_src_compile" + make kernapps || die "Unable to make kernapps." + make all || die "Unable to make all." + + if use doc ; then + make docs || die "Unable to make docs." + if use apidocs ; then + cd "${S}"/doc + doxygen doxygen/pvfs2-doxygen.conf || die "doxygen failed" + fi + fi +} + +src_install() { + linux-mod_src_install || die "linux-mod_src_install failed" + emake DESTDIR="${D}" kernapps_install || die "kernapps_install failed" + emake DESTDIR="${D}" install || die "install failed" + + cd "${D}"usr/$(get_libdir) + dosym libpvfs2.so.2.0 /usr/$(get_libdir)/libpvfs2.so.2 + dosym libpvfs2.so.2 /usr/$(get_libdir)/libpvfs2.so + dosym libpvfs2-threaded.so.2.0 /usr/$(get_libdir)/libpvfs2-threaded.so.2 + dosym libpvfs2-threaded.so.2 /usr/$(get_libdir)/libpvfs2-threaded.so + cd "${S}" + + if use server; then + newinitd "${FILESDIR}"/pvfs2-server.rc pvfs2-server + newconfd "${FILESDIR}"/pvfs2-server.conf pvfs2-server + fi + + newinitd "${FILESDIR}"/pvfs2-client-init.d pvfs2-client + newconfd "${FILESDIR}"/pvfs2-client.conf pvfs2-client + + # 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 + + dodoc AUTHORS CREDITS ChangeLog INSTALL README + docinto examples + dodoc examples/{fs.conf,pvfs2-server.rc} + if use examples ; then + insinto /usr/share/doc/"${PF}"/examples/heartbeat + doins examples/heartbeat/* + fi +} + +pkg_config () { + elog "Creating new unified configuration file; if you have been" + elog "running a previous version, you should run the conversion" + elog "script instead. See pvfs2-config-convert --help for more" + elog "info." + elog + + einfo ">>> Creating new unified config file - you may accept the" + einfo ">>> defaults or adjust to suite your desired setup..." + + "${ROOT}"/usr/bin/pvfs2-genconfig "${ROOT}"/etc/pvfs2-fs.conf + + einfo + einfo ">>> If this is the first time running the server, you must" + einfo ">>> create the storage location first, which is part of the" + einfo ">>> config you just specified above. To do this, run the" + einfo ">>> following command once as root, then start the server" + einfo ">>> using the init script:" + einfo " /usr/sbin/pvfs2-server /etc/pvfs2-fs.conf -f" + einfo +} + +pkg_preinst() { + linux-mod_pkg_preinst +} + +pkg_postinst() { + linux-mod_pkg_postinst + ewarn + ewarn "You must convert your old config files or create a new one, so" + ewarn "either emerge --config =${CATEGORY}/${PF} or run the supplied" + ewarn "conversion script to complete the installation." + ewarn + ewarn "Note that libpvfs2-threaded.so is new and needs testing..." + ewarn + + elog "To enable PVFS2 Server on boot you will have to add it to the" + elog "default profile, issue the following command as root to do so." + elog + elog "rc-update add pvfs2-server default" +} + +pkg_postrm() { + linux-mod_pkg_postrm + elog + elog "If you're removing this package completely and the file" + elog "/lib/modules/${KV_FULL}/fs/pvfs2.ko is still" + elog "there, you'll have to remove it yourself." +} |