summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Arnold <nerdboy@gentoo.org>2007-12-03 00:00:46 +0000
committerSteve Arnold <nerdboy@gentoo.org>2007-12-03 00:00:46 +0000
commit7c2b96328682f9bce2cf856cddfc46cacc77c28f (patch)
treebac38312c793cd65436d893fc2230db540c9e246 /sys-cluster
parentpush changes (diff)
downloadgentoo-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/ChangeLog12
-rw-r--r--sys-cluster/pvfs2/files/2.7.0-lib-install.patch21
-rw-r--r--sys-cluster/pvfs2/files/2.7.0-soname.patch60
-rw-r--r--sys-cluster/pvfs2/files/digest-pvfs2-2.7.03
-rw-r--r--sys-cluster/pvfs2/pvfs2-2.7.0.ebuild192
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."
+}