public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/sci:master commit in: net-fs/cvmfs/files/, net-fs/cvmfs/
@ 2012-07-25  0:34 Sebastien Fabbro
  0 siblings, 0 replies; 3+ messages in thread
From: Sebastien Fabbro @ 2012-07-25  0:34 UTC (permalink / raw
  To: gentoo-commits

commit:     f71dfd0091fd6a9453b3edabd06dc4168c4a96b1
Author:     Sébastien Fabbro <sebfabbro <AT> gmail <DOT> com>
AuthorDate: Wed Jul 25 00:33:48 2012 +0000
Commit:     Sebastien Fabbro <bicatali <AT> gentoo <DOT> org>
CommitDate: Wed Jul 25 00:33:48 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=f71dfd00

net-fs/cvmfs: Initial import, need more work

(Portage version: 2.2.0_alpha120/git/Linux x86_64, RepoMan options: --force, unsigned Manifest commit)

---
 net-fs/cvmfs/ChangeLog                             |   12 +
 net-fs/cvmfs/cvmfs-2.0.18.ebuild                   |  104 ++++++++++
 net-fs/cvmfs/files/cvmfs-2.0.18-autotools.patch    |  215 ++++++++++++++++++++
 .../cvmfs/files/cvmfs-2.0.18-no-redhat-init.patch  |   22 ++
 net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch       |   82 ++++++++
 net-fs/cvmfs/files/cvmfs-2.0.18-spinlock.patch     |   15 ++
 .../cvmfs/files/cvmfs-2.0.18-system-redirfs.patch  |   16 ++
 net-fs/cvmfs/files/cvmfs.initd                     |  195 ++++++++++++++++++
 net-fs/cvmfs/files/cvmfsd.initd                    |  191 +++++++++++++++++
 net-fs/cvmfs/metadata.xml                          |   22 ++
 10 files changed, 874 insertions(+), 0 deletions(-)

diff --git a/net-fs/cvmfs/ChangeLog b/net-fs/cvmfs/ChangeLog
new file mode 100644
index 0000000..3dc9d74
--- /dev/null
+++ b/net-fs/cvmfs/ChangeLog
@@ -0,0 +1,12 @@
+# ChangeLog for net-fs/cvmfs
+# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+*cvmfs-2.0.18 (25 Jul 2012)
+
+  25 Jul 2012; Sébastien Fabbro <bicatali@gentoo.org> +cvmfs-2.0.18.ebuild,
+  +files/cvmfs-2.0.18-autotools.patch, +files/cvmfs-2.0.18-no-redhat-init.patch,
+  +files/cvmfs-2.0.18-openrc.patch, +files/cvmfs-2.0.18-spinlock.patch,
+  +files/cvmfs-2.0.18-system-redirfs.patch, +files/cvmfs.initd,
+  +files/cvmfsd.confd, +files/cvmfsd.initd, +metadata.xml:
+  net-fs/cvmfs: Initial import, need more work

diff --git a/net-fs/cvmfs/cvmfs-2.0.18.ebuild b/net-fs/cvmfs/cvmfs-2.0.18.ebuild
new file mode 100644
index 0000000..0ce39f4
--- /dev/null
+++ b/net-fs/cvmfs/cvmfs-2.0.18.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=4
+
+inherit eutils autotools toolchain-funcs linux-mod
+
+DESCRIPTION="HTTP read-only file system for distributing software"
+HOMEPAGE="http://cernvm.cern.ch/portal/filesystem"
+SRC_URI="https://ecsft.cern.ch/dist/${PN}/${P}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="+client doc openmp server"
+
+CDEPEND="dev-db/sqlite:3
+	dev-libs/openssl
+	sys-libs/zlib
+	client? (
+		dev-libs/jemalloc
+		net-misc/curl
+		sys-fs/fuse )
+	server? ( >=sys-fs/redirfs-0.11 )"
+
+RDEPEND="${CDEPEND}
+	client? ( net-fs/autofs )"
+
+DEPEND="${CDEPEND}
+	virtual/pkgconfig
+	doc? ( app-doc/doxygen[dot] )"
+
+# needs to be either client or server
+REQUIRED_USE="!server? ( client )"
+
+pkg_setup() {
+	if use server && use openmp && [[ $(tc-getCC) == *gcc* ]] && ! tc-has-openmp
+	then
+		ewarn "You are using a gcc without OpenMP capabilities"
+		die "Need an OpenMP capable compiler"
+	fi
+	if use server; then
+		MODULE_NAMES="cvmfsflt(misc:${S}/kernel/cvmfsflt/src)"
+		BUILD_PARAMS="-C ${KERNEL_DIR} M=${S}/kernel/cvmfsflt/src"
+		BUILD_TARGETS="cvmfsflt.ko"
+		linux-mod_pkg_setup
+	fi
+}
+
+src_prepare() {
+	epatch \
+		"${FILESDIR}"/${P}-autotools.patch \
+		"${FILESDIR}"/${P}-no-redhat-init.patch \
+		"${FILESDIR}"/${P}-system-redirfs.patch \
+		"${FILESDIR}"/${P}-spinlock.patch \
+		"${FILESDIR}"/${P}-openrc.patch
+	eautoreconf
+}
+
+src_configure() {
+	econf \
+		--disable-sqlite3-builtin \
+		--disable-libcurl-builtin \
+		--disable-zlib-builtin \
+		--disable-jemalloc-builtin \
+		$(use_enable client cvmfs) \
+		$(use_enable client mount-scripts) \
+		$(use_enable openmp) \
+		$(use_enable server)
+}
+
+src_compile() {
+	emake
+	use server && linux-mod_src_compile
+	use doc && doxygen doc/cvmfs.doxy
+}
+
+src_install() {
+	default
+	# NEWS file is empty
+	rm "${ED}"/usr/share/doc/${PF}/{INSTALL,NEWS,COPYING}
+
+	use client && newinitd "${FILESDIR}"/${PN}.initd ${PN}
+	if use server; then
+		linux-mod_src_install
+		newinitd "${FILESDIR}"/${PN}d.initd ${PN}d
+		newconfd "${FILESDIR}"/${PN}d.confd ${PN}d
+	fi
+	use doc && dohtml -r doc/html/*
+}
+
+pkg_preinst() {
+	use server && linux-mod_pkg_preinst
+}
+
+pkg_postinst() {
+	use server && linux-mod_pkg_postinst
+}
+
+pkg_postrm() {
+	use server && linux-mod_pkg_postrm
+}

diff --git a/net-fs/cvmfs/files/cvmfs-2.0.18-autotools.patch b/net-fs/cvmfs/files/cvmfs-2.0.18-autotools.patch
new file mode 100644
index 0000000..ef28e41
--- /dev/null
+++ b/net-fs/cvmfs/files/cvmfs-2.0.18-autotools.patch
@@ -0,0 +1,215 @@
+Patch for various autotools fixes:
+* cleaner enable/disable functions
+* allow to build against system jemalloc
+* adapated to newer autoconf with standard macros
+* use LDADD instead of LDFLAGS to respect user's flags
+
+bicatali@gentoo.org 07/2012
+
+diff -Nur cvmfs-2.0.18.orig/configure.ac cvmfs-2.0.18/configure.ac
+--- cvmfs-2.0.18.orig/configure.ac	2012-06-04 08:03:21.000000000 +0100
++++ cvmfs-2.0.18/configure.ac	2012-07-23 22:12:37.000000000 +0100
+@@ -9,20 +9,22 @@
+ AC_CONFIG_HEADER([config.h])
+ AH_BOTTOM([#define CVMFS_PATCH_LEVEL "0"])
+ 
+-AC_ARG_ENABLE([cvmfs], AC_HELP_STRING([--disable-cvmfs], [Don't build the CernVM-FS FUSE module]), AC_SUBST([HAVE_CVMFS], [no]))
+-AC_ARG_ENABLE([server], AC_HELP_STRING([--disable-server], [Don't build writer's end programs]), AC_SUBST([HAVE_SERVER], [no]))
+-AC_ARG_ENABLE([sqlite3-builtin], AC_HELP_STRING([--enable-sqlite3-builtin], [Don't use system SQLite3]), AC_SUBST([USE_BUILTIN_SQLITE3], [yes]))
+-AC_ARG_ENABLE([libcurl-builtin], AC_HELP_STRING([--enable-libcurl-builtin], [Don't use system libcurl]), AC_SUBST([USE_BUILTIN_LIBCURL], [yes]))
++AC_ARG_ENABLE([cvmfs], AC_HELP_STRING([--disable-cvmfs], [Don't build the CernVM-FS FUSE module]), AC_SUBST([HAVE_CVMFS], [$enableval]),AC_SUBST([HAVE_CVMFS], [yes]))
++AC_ARG_ENABLE([server], AC_HELP_STRING([--disable-server], [Don't build writer's end programs]), AC_SUBST([HAVE_SERVER], [$enableval]),AC_SUBST([HAVE_SERVER], [yes]))
++AC_ARG_ENABLE([sqlite3-builtin], AC_HELP_STRING([--enable-sqlite3-builtin], [Don't use system SQLite3]), AC_SUBST([USE_BUILTIN_SQLITE3], [$enableval]),AC_SUBST([USE_BUILTIN_SQLITE3], [no]))
++AC_ARG_ENABLE([libcurl-builtin], AC_HELP_STRING([--enable-libcurl-builtin], [Don't use system libcurl]), AC_SUBST([USE_BUILTIN_LIBCURL], [$enableval]),AC_SUBST([USE_BUILTIN_LIBCURL], [no]))
+ dnl AC_ARG_ENABLE([libfuse-builtin], AC_HELP_STRING([--enable-libfuse-builtin], [Don't use system libfuse]), AC_SUBST([USE_BUILTIN_LIBFUSE], [yes]))
+-AC_ARG_ENABLE([zlib-builtin], AC_HELP_STRING([--enable-zlib-builtin], [Don't use system]), AC_SUBST([USE_BUILTIN_ZLIB], [yes]))
+-AC_ARG_ENABLE([kernel-module], AC_HELP_STRING([--enable-kernel-module], [Build the kernel module for the server part]), AC_SUBST([HAVE_KMODULE], [yes]))
+-AC_ARG_ENABLE([mount-scripts], AC_HELP_STRING([--enable-mount-scripts], [Install CernVM-FS mount tools in /etc and /sbin]), AC_SUBST([HAVE_MOUNTSCRIPTS], [yes]))
++AC_ARG_ENABLE([zlib-builtin], AC_HELP_STRING([--enable-zlib-builtin], [Don't use system]), AC_SUBST([USE_BUILTIN_ZLIB], [$enableval]),AC_SUBST([USE_BUILTIN_ZLIB], [no]))
++AC_ARG_ENABLE([jemalloc-builtin], AC_HELP_STRING([--enable-jemalloc-builtin], [Don't use system jemalloc]), AC_SUBST([USE_BUILTIN_JEMALLOC], [$enableval]),AC_SUBST([USE_BUILTIN_JEMALLOC], [no]))
++AC_ARG_ENABLE([kernel-module], AC_HELP_STRING([--enable-kernel-module], [Build the kernel module for the server part]), AC_SUBST([HAVE_KMODULE], [$enableval]),AC_SUBST([HAVE_KMODULE], [no]))
++AC_ARG_ENABLE([mount-scripts], AC_HELP_STRING([--enable-mount-scripts], [Install CernVM-FS mount tools in /etc and /sbin]), AC_SUBST([HAVE_MOUNTSCRIPTS], [$enableval]),AC_SUBST([HAVE_MOUNTSCRIPTS], [no]))
+ AM_CONDITIONAL([BUILD_CVMFS], [test x$HAVE_CVMFS != xno])
+ AM_CONDITIONAL([BUILD_SERVER], [test x$HAVE_SERVER != xno])
+ AM_CONDITIONAL([SYSTEM_SQLITE3], [test x$USE_BUILTIN_SQLITE3 != xyes])
+ AM_CONDITIONAL([SYSTEM_LIBCURL], [test x$USE_BUILTIN_LIBCURL != xyes])
+ AM_CONDITIONAL([SYSTEM_LIBFUSE], [test x != x])
+ AM_CONDITIONAL([SYSTEM_ZLIB], [test x$USE_BUILTIN_ZLIB != xyes])
++AM_CONDITIONAL([SYSTEM_JEMALLOC], [test x$USE_BUILTIN_JEMALLOC != xyes])
+ AM_CONDITIONAL([BUILD_KMODULE], [test x$HAVE_KMODULE == xyes])
+ AM_CONDITIONAL([BUILD_MEMCACHED], [test x$HAVE_MEMCACHED == xyes])
+ AM_CONDITIONAL([BUILD_MOUNTSCRIPTS], [test x$HAVE_MOUNTSCRIPTS == xyes])
+@@ -35,6 +37,7 @@
+ dnl AC_PROG_LIBTOOL
+ AC_PROG_MAKE_SET
+ AC_PROG_RANLIB
++m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+ 
+ CXXFLAGS="$CXXFLAGS -g -fno-exceptions -fno-strict-aliasing -fasynchronous-unwind-tables -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wall \
+          -D_REENTRANT -D__EXTENSIONS__ -D_LARGEFILE64_SOURCE -D__LARGE64_FILES"
+@@ -70,7 +73,7 @@
+ PKG_CHECK_MODULES([OPENSSL], [libcrypto >= 0.9.7a])
+ 
+ dnl Get OpenMP Options
+-gt_OPENMP()
++AC_OPENMP
+ 
+ dnl  Checks for libraries.
+ save_LIBS=$LIBS
+@@ -86,6 +89,10 @@
+ 
+ AC_CHECK_LIB([rt], [sched_yield], ,[AC_MSG_ERROR(librt (Posix real time extensions) required)])
+ 
++if test x$USE_BUILTIN_JEMALLOC != xyes; then
++   AC_CHECK_LIB([jemalloc], [malloc],  ,[AC_MSG_ERROR(jemalloc required)])
++fi
++
+ if test x$HAVE_CVMFS != xno; then
+ dnl   if test x$USE_BUILTIN_LIBFUSE != xyes; then
+ dnl      AC_CHECK_HEADERS([fuse.h fuse/fuse_opt.h],,[AC_MSG_ERROR(fuse headers required)],[#define _FILE_OFFSET_BITS 64])
+diff -Nur cvmfs-2.0.18.orig/cvmfs/src/Makefile.am cvmfs-2.0.18/cvmfs/src/Makefile.am
+--- cvmfs-2.0.18.orig/cvmfs/src/Makefile.am	2012-02-03 17:10:24.000000000 +0000
++++ cvmfs-2.0.18/cvmfs/src/Makefile.am	2012-07-23 22:12:37.000000000 +0100
+@@ -224,6 +224,11 @@
+ cvmfs_proxy_rtt_LDADD += $(LDFLAGS_ZLIB)
+ endif
+ 
++if ! SYSTEM_JEMALLOC
++LDFLAGS_JEMALLOC = ../../jemalloc/src/lib/libjemalloc.a
++cvmfs2_debug_LDADD += $(LDFLAGS_JEMALLOC)
++cvmfs2_LDADD += $(LDFLAGS_JEMALLOC)
++endif
+ 
+ CFLAGS_CVMFS2 = 
+ if ! SYSTEM_SQLITE3
+@@ -238,16 +243,17 @@
+ if ! SYSTEM_ZLIB
+ CFLAGS_CVMFS2 += -I../../zlib/src
+ endif
+-cvmfs2_debug_LDADD += ../../jemalloc/src/lib/libjemalloc.a
+-cvmfs2_LDADD += ../../jemalloc/src/lib/libjemalloc.a
++
+ CFLAGS_CVMFS2 += $(PTHREAD_CFLAGS) $(CURL_CFLAGS) $(SQLITE_CFLAGS) $(OPENSSL_CFLAGS) $(FUSE_CFLAGS) -DCVMFS_CLIENT -DFUSE_CLIENT
+-LDFLAGS_CVMFS2 = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(CURL_LIBS) $(SQLITE_LIBS) $(OPENSSL_LIBS) $(FUSE_LIBS) $(Z_LIBS) -lrt -rdynamic 
++LDFLAGS_CVMFS2 = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(CURL_LIBS) $(SQLITE_LIBS) $(OPENSSL_LIBS) $(FUSE_LIBS) $(Z_LIBS) -lrt
+ cvmfs2_debug_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_CVMFS2) -O0
+ cvmfs2_debug_CFLAGS   = $(CVMFS_CFLAGS) $(CFLAGS_CVMFS2) -O0
+-cvmfs2_debug_LDFLAGS = $(LDFLAGS_CVMFS2)
++cvmfs2_debug_LDFLAGS = -rdynamic 
++cvmfs2_debug_LDADD += $(LDFLAGS_CVMFS2)
+ cvmfs2_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_CVMFS2) -DNDEBUGMSG
+ cvmfs2_CFLAGS   = $(CVMFS_CFLAGS) $(CFLAGS_CVMFS2) -DNDEBUGMSG
+-cvmfs2_LDFLAGS = $(LDFLAGS_CVMFS2)
++cvmfs2_LDFLAGS = -rdynamic 
++cvmfs2_LDADD += $(LDFLAGS_CVMFS2)
+ 
+ CFLAGS_LIBCVMFS_A = 
+ if ! SYSTEM_SQLITE3
+@@ -277,7 +283,7 @@
+ CFLAGS_FSCK += $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DCVMFS_CLIENT -DNDEBUGMSG
+ cvmfs_fsck_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_FSCK)
+ cvmfs_fsck_CFLAGS = $(CVMFS_CXFLAGS) $(CFLAGS_FSCK)
+-cvmfs_fsck_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(OPENSSL_LIBS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
++cvmfs_fsck_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(OPENSSL_LIBS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
+ 
+ 
+ CFLAGS_PROXYRTT = 
+@@ -286,11 +292,11 @@
+ endif
+ CFLAGS_PROXYRTT += $(CURL_CFLAGS) -DCVMFS_CLIENT -DNDEBUGMSG
+ cvmfs_proxy_rtt_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_PROXYRTT)
+-cvmfs_proxy_rtt_LDFLAGS = $(CVMFS_LIBS) $(CURL_LIBS)
++cvmfs_proxy_rtt_LDADD += $(CVMFS_LIBS) $(CURL_LIBS)
+ 
+ 
+ testtracer_CXXFLAGS = $(CVMFS_CXXFLAGS) $(PTHREAD_CFLAGS)
+-testtracer_LDFLAGS  = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
++testtracer_LDADD  += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+ 
+ CFLAGS_SYNC =
+ if ! SYSTEM_SQLITE3
+@@ -302,7 +308,7 @@
+ CFLAGS_SYNC += $(PTHREAD_CFLAGS) $(OPENMP_CFLAGS) $(SQLITE_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG 
+ cvmfs_sync_bin_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_SYNC)
+ cvmfs_sync_bin_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_SYNC)
+-cvmfs_sync_bin_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(OPENSSL_LIBS) $(Z_LIBS) $(GOMP_LIBS)
++cvmfs_sync_bin_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(OPENSSL_LIBS) $(Z_LIBS) $(GOMP_LIBS)
+ 
+ 
+ CFLAGS_CLGCMP =
+@@ -315,7 +321,7 @@
+ CFLAGS_CLGCMP += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
+ cvmfs_clgcmp_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_CLGCMP)
+ cvmfs_clgcmp_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_CLGCMP)
+-cvmfs_clgcmp_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
++cvmfs_clgcmp_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
+ 
+ 
+ CFLAGS_LSCAT =
+@@ -328,7 +334,7 @@
+ CFLAGS_LSCAT += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
+ cvmfs_lscat_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_LSCAT)
+ cvmfs_lscat_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_LSCAT)
+-cvmfs_lscat_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
++cvmfs_lscat_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
+ 
+ CFLAGS_FIXINODES =
+ if ! SYSTEM_SQLITE3
+@@ -340,7 +346,7 @@
+ CFLAGS_FIXINODES += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
+ cvmfs_fixinodes_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_FIXINODES)
+ cvmfs_fixinodes_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_FIXINODES)
+-cvmfs_fixinodes_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
++cvmfs_fixinodes_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
+ 
+ CFLAGS_SIGN =
+ if ! SYSTEM_ZLIB
+@@ -349,7 +355,7 @@
+ CFLAGS_SIGN += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
+ cvmfs_sign_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_SIGN)
+ cvmfs_sign_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_SIGN)
+-cvmfs_sign_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(Z_LIBS) $(OPENSSL_LIBS)
++cvmfs_sign_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(Z_LIBS) $(OPENSSL_LIBS)
+ 
+ CFLAGS_PULL =
+ if ! SYSTEM_SQLITE3
+@@ -364,13 +370,13 @@
+ CFLAGS_PULL += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG  
+ cvmfs_pull_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_PULL)
+ cvmfs_pull_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_PULL)
+-cvmfs_pull_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
++cvmfs_pull_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS) $(CURL_LIBS)
+ 
+ 
+ CFLAGS_SCRUB = $(OPENSSL_CFLAGS) -DNDEBUGMSG
+ cvmfs_scrub_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_SCRUB)
+ cvmfs_scrub_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_SCRUB)
+-cvmfs_scrub_LDFLAGS = $(CVMFS_LIBS) $(OPENSSL_LIBS)
++cvmfs_scrub_LDADD += $(CVMFS_LIBS) $(OPENSSL_LIBS)
+ 
+ 
+ CFLAGS_ZPIPE =
+@@ -378,4 +384,4 @@
+ CFLAGS_ZPIPE += -I../../zlib/src
+ endif
+ cvmfs_zpipe_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_ZPIPE)
+-cvmfs_zpipe_LDFLAGS = $(CVMFS_LIBS) $(Z_LIBS)
++cvmfs_zpipe_LDADD += $(CVMFS_LIBS) $(Z_LIBS)
+diff -Nur cvmfs-2.0.18.orig/Makefile.am cvmfs-2.0.18/Makefile.am
+--- cvmfs-2.0.18.orig/Makefile.am	2012-02-07 17:04:54.000000000 +0000
++++ cvmfs-2.0.18/Makefile.am	2012-07-23 22:12:37.000000000 +0100
+@@ -10,10 +10,13 @@
+ if ! SYSTEM_ZLIB
+   SUBDIR_ZLIB = zlib
+ endif
++if ! SYSTEM_JEMALLOC
++  SUBDIR_JEMALLOC = jemalloc
++endif
+ if BUILD_KMODULE
+   SUBDIR_KMODULE = kernel
+ endif
+-SUBDIRS = $(SUBDIR_KMODULE) $(SUBDIR_SQLITE3) $(SUBDIR_ZLIB) $(SUBDIR_LIBCURL) $(SUBDIR_LIBFUSE) jemalloc cvmfs cvmfsd mount replica
++SUBDIRS = $(SUBDIR_KMODULE) $(SUBDIR_SQLITE3) $(SUBDIR_ZLIB) $(SUBDIR_LIBCURL) $(SUBDIR_LIBFUSE) $(SUBDIR_JEMALLOC) cvmfs cvmfsd mount replica
+ EXTRA_DIST = sign-whitelist add-ons rpm doc c-ares libcurl libfuse kernel jemalloc zlib mount replica 
+ docdir = ${datadir}/doc/${PACKAGE}-${VERSION}
+ dist_doc_DATA = NEWS README ChangeLog AUTHORS INSTALL COPYING FAQ

diff --git a/net-fs/cvmfs/files/cvmfs-2.0.18-no-redhat-init.patch b/net-fs/cvmfs/files/cvmfs-2.0.18-no-redhat-init.patch
new file mode 100644
index 0000000..2769771
--- /dev/null
+++ b/net-fs/cvmfs/files/cvmfs-2.0.18-no-redhat-init.patch
@@ -0,0 +1,22 @@
+* Avoid forcing install of fedora/redhat init scripts
+* Add a more general init script to adapt other distributions
+
+bicatali@gentoo.org 07/2012
+
+--- cvmfs-2.0.18.orig/mount/Makefile.am
++++ cvmfs-2.0.18/mount/Makefile.am
+@@ -2,14 +2,12 @@
+ install-exec-hook:
+ 	test -z "$(DESTDIR)/etc" || mkdir -p "$(DESTDIR)/etc"
+ 	test -z "$(DESTDIR)/sbin" || mkdir -p "$(DESTDIR)/sbin"
+-	test -z "$(DESTDIR)/etc/rc.d/init.d" || mkdir -p "$(DESTDIR)/etc/rc.d/init.d"
+ 	test -z "$(DESTDIR)/etc/cvmfs" || mkdir -p "$(DESTDIR)/etc/cvmfs"
+ 	test -z "$(DESTDIR)/etc/cvmfs/config.d" || mkdir -p "$(DESTDIR)/etc/cvmfs/config.d"	
+ 	test -z "$(DESTDIR)/etc/cvmfs/domain.d" || mkdir -p "$(DESTDIR)/etc/cvmfs/domain.d"
+ 	test -z "$(DESTDIR)/etc/cvmfs/keys" || mkdir -p "$(DESTDIR)/etc/cvmfs/keys"
+ 	install -c auto.cvmfs "$(DESTDIR)/etc/auto.cvmfs"
+ 	install -c mount.cvmfs "$(DESTDIR)/sbin/mount.cvmfs"
+-	install -c cvmfs.initd "$(DESTDIR)/etc/rc.d/init.d/cvmfs"
+ 	install -c -m 0644 config.sh "$(DESTDIR)/etc/cvmfs/config.sh"
+ 	install -c -m 0644 default.conf "$(DESTDIR)/etc/cvmfs/default.conf"
+ 	install -c -m 0644 domain.d/cern.ch.conf "$(DESTDIR)/etc/cvmfs/domain.d/cern.ch.conf"

diff --git a/net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch b/net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch
new file mode 100644
index 0000000..bf6eb9a
--- /dev/null
+++ b/net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch
@@ -0,0 +1,82 @@
+diff -Nur cvmfs-2.0.18.orig/cvmfs/src/cvmfs_config cvmfs-2.0.18/cvmfs/src/cvmfs_config
+--- cvmfs-2.0.18.orig/cvmfs/src/cvmfs_config	2012-05-05 15:16:19.000000000 +0100
++++ cvmfs-2.0.18/cvmfs/src/cvmfs_config	2012-07-23 23:16:06.000000000 +0100
+@@ -16,9 +16,15 @@
+ 
+ if [ -x /sbin/service ]; then
+   service="/sbin/service"
+-else
++  chkconfig="/sbin/chkconfig"
++elif [ -x /usr/sbin/service ]; then
+   # Ubuntu
+   service="/usr/sbin/service"
++  chkconfig="/usr/sbin/chkconfig"
++elif [ -x /usr/sbin/rc-service ]; then
++  # OpenRC
++  service="/sbin/rc-service"
++  chkconfig="/usr/bin/rc-config"
+ fi
+ 
+ var_list="CVMFS_USER CVMFS_NFILES CVMFS_CACHE_BASE CVMFS_MOUNT_DIR CVMFS_QUOTA_LIMIT \
+@@ -116,9 +122,9 @@
+    fi
+ 
+    if [ $noservice -eq 0 ]; then
+-      /sbin/chkconfig --list cvmfs > /dev/null 2>&1
++      $chkconfig --list cvmfs > /dev/null 2>&1
+       if [ $? -ne 0 ]; then
+-         /sbin/chkconfig --add cvmfs
++         $chkconfig --add cvmfs
+       fi
+    fi
+ 
+@@ -580,8 +586,8 @@
+    for cmd in 'uname -a' 'cat /etc/issue' 'hostname -f' 'ifconfig -a' 'cvmfs2 --version' \
+               'grep cvmfs2 /var/log/messages' 'grep cvmfs2 /var/log/syslog' \
+               "eval find ${CVMFS_CACHE_BASE} -maxdepth 1 -exec ls -lah \{\} \;" \
+-              'service cvmfs probe' 'mount' 'df -h' 'ps -ef' \
+-              'service cvmfs status' 'cvmfs_config showconfig' \
++              "${service}\ cvmfs\ probe" 'mount' 'df -h' 'ps -ef' \
++              "${service}\ cvmfs\ status" 'cvmfs_config showconfig' \
+               'cvmfs_config chksetup' 'cvmfs_config stat -v' \
+               'cat /etc/fuse.conf'  'ls -la /usr/bin/fusermount' 'ls -la /bin/fusermount' \
+               'cat /etc/auto.master' 'cat /etc/sysconfig/autofs' 'cat /etc/fstab'
+diff -Nur cvmfs-2.0.18.orig/cvmfs/src/cvmfs_server cvmfs-2.0.18/cvmfs/src/cvmfs_server
+--- cvmfs-2.0.18.orig/cvmfs/src/cvmfs_server	2011-11-30 11:26:55.000000000 +0000
++++ cvmfs-2.0.18/cvmfs/src/cvmfs_server	2012-07-23 23:31:32.000000000 +0100
+@@ -1,5 +1,13 @@
+ #!/bin/bash
+ 
++service=$(type -P service)
++chconfig=$(type -P chkconfig)
++if [ -n ${service} ]; then
++  # OpenRC
++  service="rc-service"
++  chkconfig="echo > /dev/null"
++fi
++
+ create_master_key() {
+    local name; name=$1
+    master_key="/etc/cvmfs/keys/$name.masterkey"
+@@ -161,8 +169,8 @@
+    create_whitelist $name
+    
+    echo -n "Starting services... "
+-   service cvmfsd start > /dev/null
+-   chkconfig cvmfsd on
++   $service cvmfsd start > /dev/null
++   $chkconfig cvmfsd on
+    echo "New CernVM-FS repository for $name" > /cvmfs/${name}/empty
+    usermod -s /bin/bash cvmfs
+    publish $name > /dev/null
+@@ -182,8 +190,8 @@
+    
+    echo -n "Stopping services... "
+    usermod -s /sbin/nologin cvmfs
+-   service cvmfsd stop > /dev/null
+-   chkconfig cvmfsd off
++   $service cvmfsd stop > /dev/null
++   $chkconfig cvmfsd off
+    echo "done"
+    
+    echo -n "Unmounting CernVM-FS Area... "

diff --git a/net-fs/cvmfs/files/cvmfs-2.0.18-spinlock.patch b/net-fs/cvmfs/files/cvmfs-2.0.18-spinlock.patch
new file mode 100644
index 0000000..1456d02
--- /dev/null
+++ b/net-fs/cvmfs/files/cvmfs-2.0.18-spinlock.patch
@@ -0,0 +1,15 @@
+Use macro since SPIN_LOCK_UNLOCKED has been obsolete in kernel since 2007
+
+bicatali@gentoo.org 07/2012
+
+--- cvmfs-2.0.18.orig/kernel/cvmfsflt/src/cvmfsflt_data.c
++++ cvmfs-2.0.18/kernel/cvmfsflt/src/cvmfsflt_data.c
+@@ -5,7 +5,7 @@
+ int rbuf_head, rbuf_tail; /* Current positions in ring buffer */
+ struct semaphore rbuf_full, rbuf_empty;   /* semaphores for producer-consumer synchronization */
+ struct cvmfsflt_logline *ll_current = NULL;
+-static spinlock_t rbuf_wlock = SPIN_LOCK_UNLOCKED;
++DEFINE_SPINLOCK(rbuf_wlock);
+ atomic_t cvmfsflt_noll = ATOMIC_INIT(0);  /* number of loglines in the ring buffer */
+ 
+ 

diff --git a/net-fs/cvmfs/files/cvmfs-2.0.18-system-redirfs.patch b/net-fs/cvmfs/files/cvmfs-2.0.18-system-redirfs.patch
new file mode 100644
index 0000000..b26e63d
--- /dev/null
+++ b/net-fs/cvmfs/files/cvmfs-2.0.18-system-redirfs.patch
@@ -0,0 +1,16 @@
+use the installed redirfs instead of bundled one
+(need an experimental 0.11 redirfs on 3.x kernels)
+
+bicatali@gentoo.org 07/2012
+
+--- cvmfs-2.0.18.orig/kernel/cvmfsflt/src/cvmfsflt.h
++++ cvmfs-2.0.18/kernel/cvmfsflt/src/cvmfsflt.h
+@@ -8,7 +8,7 @@
+ #include <asm/uaccess.h>	/* for put_user */
+ #include <linux/slab.h>    /* for kmalloc/kfree */ 
+ 
+-#include "redirfs.h"
++#include <linux/redirfs.h>
+ 
+ 
+ #define CVMFSFLT_VERSION "0.1"

diff --git a/net-fs/cvmfs/files/cvmfs.initd b/net-fs/cvmfs/files/cvmfs.initd
new file mode 100644
index 0000000..80cf374
--- /dev/null
+++ b/net-fs/cvmfs/files/cvmfs.initd
@@ -0,0 +1,195 @@
+#!/sbin/runscript
+
+extra_commands="probe status"
+extra_started_commands="reload flush restart_clean"
+description="The CernVM-FS init script"
+
+init() {
+    # Initialization, read config
+    [ -x /etc/cernvm/config ] && /etc/cernvm/config    
+    if [ -f /etc/cvmfs/config.sh ];  then
+	. /etc/cvmfs/config.sh
+    else
+	exit 1
+    fi
+
+    cvmfs_readconfig    
+    [ -f /etc/cernvm/repositories.sh ] && . /etc/cernvm/repositories.sh    
+    export LANG=C LC_ALL=C    
+    [ -f /etc/cernvm/custom/init.sh ] && . /etc/cernvm/custom/init.sh
+}
+
+depend() {
+    need net fuse autofs
+    after logger
+}
+
+list_mounts() {
+    mount -t fuse | grep "^cvmfs2[[:space:]]"
+}
+
+repository_status() {
+    local fqrn=$1 ret=0 pid
+    if list_mounts | grep ${CVMFS_MOUNT_DIR}/${fqrn} > /dev/null; then
+	pid=$(cvmfs-talk -c "${CVMFS_CACHE_BASE}" -i "${fqrn}" pid)
+	ret=$(echo ${pid} | grep ^[0-9]*$ > /dev/null)
+	if [ ${ret} -eq 0 ]; then
+	    einfo "CernVM-FS mounted on ${CVMFS_MOUNT_DIR}/${fqrn} with pid ${pid}"
+	else
+	    ewarn "CernVM-FS running with process ${pid}"
+	fi
+    else
+	einfo "CernVM-FS not mounted on ${CVMFS_MOUNT_DIR}/${fqrn}"
+    fi
+    return ${ret}
+}
+
+repository_flush() {
+    local fqrn=$1
+    ebegin "Flushing ${fqrn}"
+    stat ${CVMFS_MOUNT_DIR}/${fqrn}/. > /dev/null 2>&1 && \
+	cvmfs-talk -c "${CVMFS_CACHE_BASE}" -i "${fqrn}" cleanup 0 > /dev/null
+    eend $?
+}
+
+repository_reload() {
+    local fqrn=$1 ret=0 hosts
+    if cvmfs-talk -i ${fqrn} pid > /dev/null 2>&1; then		
+	ebegin "Reloading ${fqrn}"
+	[[ $(cvmfs-talk -i ${fqrn} timeout set ${CVMFS_TIMEOUT} ${CVMFS_TIMEOUT_DIRECT} 2>&1) == OK ]]
+	ret=$((ret + $?))
+	[[ $(cvmfs-talk -i ${fqrn} proxy set ${CVMFS_HTTP_PROXY} 2>&1) == OK ]]
+	ret=$((ret + $?))
+	hosts=$(echo ${CVMFS_SERVER_URL} | sed -e "s/@org@/$(cvmfs_getorg ${fqrn})/g" -e "s/@fqrn@/${fqrn}/g")
+	[[ $(cvmfs-talk -i ${fqrn} host set ${hosts} 2>&1) == OK ]]
+	ret=$((ret + $?))
+	[[ $(cvmfs-talk -i ${fqrn} max ttl set ${CVMFS_MAX_TTL:-0} 2>&1) == OK ]]
+	eend $?
+	ret=$((ret + $?))
+    else
+	einfo "${frqn} not mounted"
+    fi
+    return ${ret}
+}
+
+repository_wipe() {
+    local fqrn=$1
+    ebegin "Wiping out ${CVMFS_CACHE_BASE}/${fqrn}"
+    [ ! -d "${CVMFS_CACHE_BASE}/${fqrn}" ] || rm -rf "${CVMFS_CACHE_BASE}/${fqrn}"
+    eend $?
+}
+
+repository_probe() {
+    local fqrn=$1
+    ebegin "Probing ${CVMFS_MOUNT_DIR}/${fqrn}"
+    df -P "${CVMFS_MOUNT_DIR}/${fqrn}" 2>&1 | grep -q ^cvmfs2
+    eend $?
+}
+
+cvmfs_action() {
+    local action=$1 org fqrn
+    for org in ${CVMFS_REPOSITORIES/,/ /}; do
+	case ${org} in
+            none)
+		;;
+            *)
+		. /etc/cvmfs/config.sh
+		cvmfs_readconfig
+		fqrn=$(cvmfs_mkfqrn ${org})
+		cvmfs_readconfig ${fqrn}
+		[[ $(type -t "${action}") == "function" ]] && ${action} ${fqrn}
+		;;
+	esac
+    done
+}
+
+start() {
+    ebegin "Starting CernVM-FS"   
+    cvmfs_action repository_start
+    eend $?
+}
+
+stop() {
+    local m ret
+    # FIXME: do we need to unmount here or?
+    for m in $(list_mounts | awk '{print $3}');  do	
+	ebegin "Unmounting ${m}"
+	umount ${m} 2>/dev/null
+	eend $?
+	if [ $? -ne 0 ]; then
+            ret=$((ret + $?))
+            fuser -m -a -v ${m}
+	fi
+    done
+    if [ ${ret} -eq 0 ]; then
+	ebegin "Shutting down CernVM-FS"
+	cvmfs_action repository_stop
+	eend $?
+	ret=$((ret + $?))
+    fi
+    return ${ret}
+}
+
+status() {
+    ebegin "Checking status on CernVM-FS"
+    cvmfs_action repository_status
+        
+    local org processed repo ret=0
+
+    for org in ${CVMFS_REPOSITORIES/,/ /}; do
+	case ${org} in
+            none)
+		;;
+            *)
+		. /etc/cvmfs/config.sh # start with fresh repository_... functions
+		cvmfs_readconfig
+		fqrn=$(cvmfs_mkfqrn ${org})
+		processed="${fqrn} ${processed}"
+		cvmfs_readconfig ${fqrn}
+
+		# in an action?
+		list_mounts | grep ${CVMFS_MOUNT_DIR}/${fqrn} > /dev/null
+		if [ $? -eq 0 ]; then
+		    local pid=$(/usr/bin/cvmfs-talk -c "${CVMFS_CACHE_BASE}" -i "${fqrn}" pid)		   
+		    if echo ${pid} | grep ^[0-9]*$ > /dev/null; then
+			einfo "CernVM-FS mounted on ${CVMFS_MOUNT_DIR}/${fqrn} with pid ${pid}"
+		    else
+			ret=$((ret + $?))
+			ewarn "CernVM-FS running with process ${pid}"
+		    fi
+		else
+		    einfo "CernVM-FS not mounted on ${CVMFS_MOUNT_DIR}/${fqrn}"
+		fi
+		;;
+	esac
+    done
+    
+    for repo in $(list_mounts | awk '{print $3}'); do
+	repo=$(basename "${repo}")	
+	echo "${processed}" | grep -q "${repo}" || \
+            ewarn "CernVM-FS mounted on ${CVMFS_MOUNT_DIR}/${repo} (not in CVMFS_REPOSITORIES)"
+    done
+    eend ${ret}
+}
+
+flush() {
+    cvmfs_action repository_flush
+}
+
+reload() {
+    cvmfs_action repository_reload
+}
+
+restart_clean() {
+    stop
+    local ret=$?
+    cvmfs_action repository_wipe
+    ret=$((ret + $?))
+    [[ ${ret} == 0 ]] && start
+    ret=$((ret + $?))
+    return ${ret}
+}
+
+probe() {    
+    cvmfs_action repository_probe
+}

diff --git a/net-fs/cvmfs/files/cvmfsd.confd b/net-fs/cvmfs/files/cvmfsd.confd
new file mode 100644
index 0000000..e69de29

diff --git a/net-fs/cvmfs/files/cvmfsd.initd b/net-fs/cvmfs/files/cvmfsd.initd
new file mode 100644
index 0000000..bc0c604
--- /dev/null
+++ b/net-fs/cvmfs/files/cvmfsd.initd
@@ -0,0 +1,191 @@
+#!/sbin/runscript
+
+. /etc/cvmfs/server.conf
+[[ -f /etc/cvmfs/server.local ]] && . /etc/cvmfs/server.local
+
+extra_commands="checkconfig"
+extra_started_commands="pause flush resume"
+
+description="Background daemon that writes the cvmfs character device into a log file"
+description_checkconfig="Check configuration file validity"
+description_pause="Pause the transactions (not a full stop)"
+description_flush="Flush the CernVM-FS change log"
+description_resume="Resume transactions after a pause"
+
+pidfile="/var/run/cvmfsd.pid"
+subsysfile="/var/lock/subsys/cvmfsd"
+
+checkconfig() {
+    local var ret=0
+    for var in SHADOW_DIR PUB_DIR LOG_FILE;  do
+	eval value=\$$var
+	if [[ -z ${value} ]]; then
+	    eerror "You need to set a value for ${var} in /etc/cvmfs/server.local"
+	    ret=$((ret + $?))
+	fi
+    done
+    return ${ret}
+}
+
+depend() {
+    after localmount
+    use net
+}
+
+# returns: 0 (stopped), 1 (running), 2 (paused)
+check_status() {
+    if [ -f ${pidfile} ]; then
+	[ $(cat /sys/fs/redirfs/filters/cvmfsflt/lockdown) -eq 1 ] && return 2
+	return 1
+    fi
+    return 0
+}
+
+# FIXME: could we use start-stop-daemon instead of listen/unlisten?
+
+listen() {
+    ebegin "Starting journal writer"
+    nohup cat /dev/cvmfs >> "${LOG_FILE}" 2>/dev/null </dev/null &
+    [ $? -eq 0 ] && echo $! > ${pidfile}
+    eend $?
+}
+
+unlisten() {
+    ebegin "Stopping journal writer"
+    local pid=$(cat ${pidfile})
+    kill ${pid}
+    local killed=0 retries=0
+    while [ ${killed} -eq 0 ]; do
+	sleep 1
+	kill -0 ${pid} 2>/dev/null
+	killed=$?
+	retries=$((retries + 1))
+	[ ${retries} -eq 3 ] && kill -9 ${pid}
+    done
+    eend $?
+}
+
+start() {
+    checkconfig || return 1
+
+    if [ ! -d ${SHADOW_DIR} ]; then
+	eerror "Missing ${SHADOW_DIR}"
+	return 1
+    fi
+    
+    if mkdir -p "$(echo "${LOG_FILE}" | grep -o '\([^\/]*\/\)*')"; then
+	eerror "Could not create file system journal in ${LOG_FILE}"
+	return 1
+    fi
+    
+    ebegin "Loading cvmfsflt kernel module"
+    modprobe -q redirfs && modprobe -q cvmfsflt
+    eend $? || return 1
+   
+    ebegin "Linking to character device"
+    rm -f /dev/cvmfs
+    mknod /dev/cvmfs c $(awk '/cvmfs/ {print $1}' /proc/devices) 0 > /dev/null 2>&1
+    chmod 0600 /dev/cvmfs
+    eend $? || return 1
+    
+    ebegin "Setting filter path to ${SHADOW_DIR}"
+    echo -n "a:i:${SHADOW_DIR}" > /sys/fs/redirfs/filters/cvmfsflt/paths
+    eend $? || return 1
+    
+    listen || return 1
+    ebegin "Starting CernVM-FS daemon"
+    touch ${subsysfile}
+    eend $?
+}
+
+
+pause() {
+    check_status
+    local ret=$?
+    if [ ${ret} -eq 0 ]; then
+	eerror "CernVM-FS daemon is stopped"
+	return 1
+    fi
+    if [ ${ret} -eq 2 ]; then
+	ewarn "CernVM-FS daemon is already paused"
+	return 1
+    fi
+   
+   ebegin "Locking down ${SHADOW_DIR}"
+   echo -n "1" > /sys/fs/redirfs/filters/cvmfsflt/lockdown
+   eend $? || return 1
+
+   ebegin "Waiting for pending operations on ${SHADOW_DIR}"
+   local nowops noll
+   while true;  do
+       nowops=$(cat /sys/fs/redirfs/filters/cvmfsflt/nowops)
+       [ $? -ne 0 ] && eend 1 && return 1
+       [ ${nowops} -eq 0 ] && break
+       sleep 1
+   done
+   eend $?
+   
+   ebegin "Waiting for pending messages in call buffer"
+   local noll
+   while true; do
+       noll=$(cat /sys/fs/redirfs/filters/cvmfsflt/noll)
+       [ $? -ne 0 ] && eend 1 && return 1
+       [ ${noll} -eq 0 ] && break
+       sleep 1
+   done
+   eend $? || return 1
+   unlisten || return 1
+   mark_service_stopped cvmfsd
+}
+
+resume() {
+   check_status
+   local ret=$?
+   if [ ${ret} -eq 0 ]; then
+       eerror "CernVM-FS daemon is stopped"
+       return 1
+   fi
+   if [ $retval -eq 1 ]; then
+       ewarn "CernVM-FS daemon is already running"
+       return 1
+   fi
+   
+   listen || return 1
+   
+   ebegin "Open up ${SHADOW_DIR}"
+   echo -n "0" > /sys/fs/redirfs/filters/cvmfsflt/lockdown
+   eend $? || return 1
+   mark_service_started cvmfsd
+}
+
+
+stop() {
+    check_status
+    local ret=$?
+    if [ ${ret} -eq 0 ]; then
+	ewarn "CernVM-FS daemon is already stopped"
+	return 2
+    fi
+   
+    if [ ${ret} -eq 1 ]; then
+	pause
+	ret=$?
+	[ ${ret} -ne 0 ] && return ${ret}
+    fi
+   
+    ebegin "Unloading cvmfsflt kernel module"
+    echo -n "c\0" > /sys/fs/redirfs/filters/cvmfsflt/paths || ret=$((ret + 1))
+    echo -n "1\0" > /sys/fs/redirfs/filters/cvmfsflt/unregister || ret=$((ret + 1))
+    rmmod cvmfsflt || ret=$((ret + 1))
+    eend ${ret} || return 1
+   
+    ebegin "Shutting down CernVM-FS daemon"
+    rm -f ${pidfile} ${subsysfile}
+    eend $?
+}
+
+flush() {
+   ebegin "Flushing CernVM-FS server file system change log"
+   cat /dev/null > "${LOG_FILE}"
+   eend $?
+}

diff --git a/net-fs/cvmfs/metadata.xml b/net-fs/cvmfs/metadata.xml
new file mode 100644
index 0000000..b33579e
--- /dev/null
+++ b/net-fs/cvmfs/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+  <email>bicatali@gentoo.org</email>
+</maintainer>
+<longdescription lang='en'>
+  The CernVM File System is a client-server file system developed to
+  deliver software stacks onto virtual machines in a fast, scalable,
+  and reliable way. CernVM-FS is implemented as a FUSE module. It
+  makes a specially prepared directory tree stored on a web server
+  look like a local read-only file system on the virtual
+  machine. CernVM-FS uses outgoing HTTP connections only, thereby it
+  avoids most of the firewall issues of other network file systems. It
+  transfers data file by file on demand, verifying the content by
+  SHA-1 keys.
+</longdescription>
+<use>
+  <flag name='client'>Install the cvmfs client programs and init script</flag>
+  <flag name='server'>Install the cvmfsd program and init script</flag>
+</use>
+</pkgmetadata>


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] proj/sci:master commit in: net-fs/cvmfs/files/, net-fs/cvmfs/
@ 2012-07-25 18:09 Sebastien Fabbro
  0 siblings, 0 replies; 3+ messages in thread
From: Sebastien Fabbro @ 2012-07-25 18:09 UTC (permalink / raw
  To: gentoo-commits

commit:     b43872551e20fd5c15948f5c51bb3feae41df080
Author:     Sébastien Fabbro <sebfabbro <AT> gmail <DOT> com>
AuthorDate: Wed Jul 25 18:09:19 2012 +0000
Commit:     Sebastien Fabbro <bicatali <AT> gentoo <DOT> org>
CommitDate: Wed Jul 25 18:09:19 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=b4387255

net-fs/cvmfs: fixed client init and setup, added config stage

(Portage version: 2.2.0_alpha120/git/Linux x86_64, RepoMan options: --force, unsigned Manifest commit)

---
 net-fs/cvmfs/ChangeLog                       |    4 ++++
 net-fs/cvmfs/cvmfs-2.0.18.ebuild             |   24 ++++++++++++++++++++++--
 net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch |    2 +-
 net-fs/cvmfs/files/cvmfs.initd               |    2 +-
 4 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/net-fs/cvmfs/ChangeLog b/net-fs/cvmfs/ChangeLog
index 3dc9d74..30b13a0 100644
--- a/net-fs/cvmfs/ChangeLog
+++ b/net-fs/cvmfs/ChangeLog
@@ -2,6 +2,10 @@
 # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+  25 Jul 2012; Sébastien Fabbro <bicatali@gentoo.org> cvmfs-2.0.18.ebuild,
+  files/cvmfs-2.0.18-openrc.patch, files/cvmfs.initd:
+  net-fs/cvmfs: fixed client init and setup, added config stage
+
 *cvmfs-2.0.18 (25 Jul 2012)
 
   25 Jul 2012; Sébastien Fabbro <bicatali@gentoo.org> +cvmfs-2.0.18.ebuild,

diff --git a/net-fs/cvmfs/cvmfs-2.0.18.ebuild b/net-fs/cvmfs/cvmfs-2.0.18.ebuild
index 0ce39f4..c84a8ff 100644
--- a/net-fs/cvmfs/cvmfs-2.0.18.ebuild
+++ b/net-fs/cvmfs/cvmfs-2.0.18.ebuild
@@ -32,8 +32,9 @@ DEPEND="${CDEPEND}
 	virtual/pkgconfig
 	doc? ( app-doc/doxygen[dot] )"
 
-# needs to be either client or server
-REQUIRED_USE="!server? ( client )"
+
+# either client or server is required and are mutually exclusive
+REQUIRED_USE="^^ ( client server )"
 
 pkg_setup() {
 	if use server && use openmp && [[ $(tc-getCC) == *gcc* ]] && ! tc-has-openmp
@@ -102,3 +103,22 @@ pkg_postinst() {
 pkg_postrm() {
 	use server && linux-mod_pkg_postrm
 }
+
+pkg_config() {
+	if use client; then
+		einfo "Setting up CernVM-FS client"
+		cvmfs_config setup
+		cat > ${EROOT}/etc/cvmfs/default.local <<-EOF
+			# Repositories to fetch example is for ATLAS
+			CVMFS_REPOSITORIES=atlas.cern.ch,atlas-condb.cern.ch,grid.cern.ch
+			# Local proxy settings, ex: http://cernvm.cern.ch/config/proxy.cgi
+			CVMFS_HTTP_PROXY="DIRECT"
+			# Where to keep the cvmfs cache
+			CVMFS_CACHE_BASE=${EROOT}/var/scratch/cvmfs
+			# Quota limit in Mb
+			CVMFS_QUOTA_LIMIT=10000
+		EOF
+		einfo "Now edit ${EROOT}/etc/cvmfs/default.local and run"
+		einfo "  ${EROOT}/usr/init.d/cvmfs restart"
+	fi
+}

diff --git a/net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch b/net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch
index bf6eb9a..df1f5e6 100644
--- a/net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch
+++ b/net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch
@@ -11,7 +11,7 @@ diff -Nur cvmfs-2.0.18.orig/cvmfs/src/cvmfs_config cvmfs-2.0.18/cvmfs/src/cvmfs_
    # Ubuntu
    service="/usr/sbin/service"
 +  chkconfig="/usr/sbin/chkconfig"
-+elif [ -x /usr/sbin/rc-service ]; then
++elif [ -x /sbin/rc-service ]; then
 +  # OpenRC
 +  service="/sbin/rc-service"
 +  chkconfig="/usr/bin/rc-config"

diff --git a/net-fs/cvmfs/files/cvmfs.initd b/net-fs/cvmfs/files/cvmfs.initd
index 80cf374..75f45b7 100644
--- a/net-fs/cvmfs/files/cvmfs.initd
+++ b/net-fs/cvmfs/files/cvmfs.initd
@@ -110,7 +110,7 @@ start() {
 }
 
 stop() {
-    local m ret
+    local m ret=0
     # FIXME: do we need to unmount here or?
     for m in $(list_mounts | awk '{print $3}');  do	
 	ebegin "Unmounting ${m}"


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] proj/sci:master commit in: net-fs/cvmfs/files/, net-fs/cvmfs/
@ 2012-10-30 14:45 Sebastien Fabbro
  0 siblings, 0 replies; 3+ messages in thread
From: Sebastien Fabbro @ 2012-10-30 14:45 UTC (permalink / raw
  To: gentoo-commits

commit:     7e701f402c195fc8e6851d2af9bbd56d65831558
Author:     Sébastien Fabbro <bicatali <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 30 14:45:34 2012 +0000
Commit:     Sebastien Fabbro <bicatali <AT> gentoo <DOT> org>
CommitDate: Tue Oct 30 14:45:34 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=7e701f40

net-fs/cvmfs: now in main tree

---
 net-fs/cvmfs/ChangeLog                             |   16 --
 net-fs/cvmfs/cvmfs-2.0.18.ebuild                   |  124 -----------
 net-fs/cvmfs/files/cvmfs-2.0.18-autotools.patch    |  215 --------------------
 .../cvmfs/files/cvmfs-2.0.18-no-redhat-init.patch  |   22 --
 net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch       |   82 --------
 net-fs/cvmfs/files/cvmfs-2.0.18-spinlock.patch     |   15 --
 .../cvmfs/files/cvmfs-2.0.18-system-redirfs.patch  |   16 --
 net-fs/cvmfs/files/cvmfs.initd                     |  195 ------------------
 net-fs/cvmfs/files/cvmfsd.initd                    |  191 -----------------
 net-fs/cvmfs/metadata.xml                          |   22 --
 10 files changed, 0 insertions(+), 898 deletions(-)

diff --git a/net-fs/cvmfs/ChangeLog b/net-fs/cvmfs/ChangeLog
deleted file mode 100644
index 30b13a0..0000000
--- a/net-fs/cvmfs/ChangeLog
+++ /dev/null
@@ -1,16 +0,0 @@
-# ChangeLog for net-fs/cvmfs
-# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: $
-
-  25 Jul 2012; Sébastien Fabbro <bicatali@gentoo.org> cvmfs-2.0.18.ebuild,
-  files/cvmfs-2.0.18-openrc.patch, files/cvmfs.initd:
-  net-fs/cvmfs: fixed client init and setup, added config stage
-
-*cvmfs-2.0.18 (25 Jul 2012)
-
-  25 Jul 2012; Sébastien Fabbro <bicatali@gentoo.org> +cvmfs-2.0.18.ebuild,
-  +files/cvmfs-2.0.18-autotools.patch, +files/cvmfs-2.0.18-no-redhat-init.patch,
-  +files/cvmfs-2.0.18-openrc.patch, +files/cvmfs-2.0.18-spinlock.patch,
-  +files/cvmfs-2.0.18-system-redirfs.patch, +files/cvmfs.initd,
-  +files/cvmfsd.confd, +files/cvmfsd.initd, +metadata.xml:
-  net-fs/cvmfs: Initial import, need more work

diff --git a/net-fs/cvmfs/cvmfs-2.0.18.ebuild b/net-fs/cvmfs/cvmfs-2.0.18.ebuild
deleted file mode 100644
index c84a8ff..0000000
--- a/net-fs/cvmfs/cvmfs-2.0.18.ebuild
+++ /dev/null
@@ -1,124 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=4
-
-inherit eutils autotools toolchain-funcs linux-mod
-
-DESCRIPTION="HTTP read-only file system for distributing software"
-HOMEPAGE="http://cernvm.cern.ch/portal/filesystem"
-SRC_URI="https://ecsft.cern.ch/dist/${PN}/${P}/${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-
-KEYWORDS="~amd64 ~x86"
-IUSE="+client doc openmp server"
-
-CDEPEND="dev-db/sqlite:3
-	dev-libs/openssl
-	sys-libs/zlib
-	client? (
-		dev-libs/jemalloc
-		net-misc/curl
-		sys-fs/fuse )
-	server? ( >=sys-fs/redirfs-0.11 )"
-
-RDEPEND="${CDEPEND}
-	client? ( net-fs/autofs )"
-
-DEPEND="${CDEPEND}
-	virtual/pkgconfig
-	doc? ( app-doc/doxygen[dot] )"
-
-
-# either client or server is required and are mutually exclusive
-REQUIRED_USE="^^ ( client server )"
-
-pkg_setup() {
-	if use server && use openmp && [[ $(tc-getCC) == *gcc* ]] && ! tc-has-openmp
-	then
-		ewarn "You are using a gcc without OpenMP capabilities"
-		die "Need an OpenMP capable compiler"
-	fi
-	if use server; then
-		MODULE_NAMES="cvmfsflt(misc:${S}/kernel/cvmfsflt/src)"
-		BUILD_PARAMS="-C ${KERNEL_DIR} M=${S}/kernel/cvmfsflt/src"
-		BUILD_TARGETS="cvmfsflt.ko"
-		linux-mod_pkg_setup
-	fi
-}
-
-src_prepare() {
-	epatch \
-		"${FILESDIR}"/${P}-autotools.patch \
-		"${FILESDIR}"/${P}-no-redhat-init.patch \
-		"${FILESDIR}"/${P}-system-redirfs.patch \
-		"${FILESDIR}"/${P}-spinlock.patch \
-		"${FILESDIR}"/${P}-openrc.patch
-	eautoreconf
-}
-
-src_configure() {
-	econf \
-		--disable-sqlite3-builtin \
-		--disable-libcurl-builtin \
-		--disable-zlib-builtin \
-		--disable-jemalloc-builtin \
-		$(use_enable client cvmfs) \
-		$(use_enable client mount-scripts) \
-		$(use_enable openmp) \
-		$(use_enable server)
-}
-
-src_compile() {
-	emake
-	use server && linux-mod_src_compile
-	use doc && doxygen doc/cvmfs.doxy
-}
-
-src_install() {
-	default
-	# NEWS file is empty
-	rm "${ED}"/usr/share/doc/${PF}/{INSTALL,NEWS,COPYING}
-
-	use client && newinitd "${FILESDIR}"/${PN}.initd ${PN}
-	if use server; then
-		linux-mod_src_install
-		newinitd "${FILESDIR}"/${PN}d.initd ${PN}d
-		newconfd "${FILESDIR}"/${PN}d.confd ${PN}d
-	fi
-	use doc && dohtml -r doc/html/*
-}
-
-pkg_preinst() {
-	use server && linux-mod_pkg_preinst
-}
-
-pkg_postinst() {
-	use server && linux-mod_pkg_postinst
-}
-
-pkg_postrm() {
-	use server && linux-mod_pkg_postrm
-}
-
-pkg_config() {
-	if use client; then
-		einfo "Setting up CernVM-FS client"
-		cvmfs_config setup
-		cat > ${EROOT}/etc/cvmfs/default.local <<-EOF
-			# Repositories to fetch example is for ATLAS
-			CVMFS_REPOSITORIES=atlas.cern.ch,atlas-condb.cern.ch,grid.cern.ch
-			# Local proxy settings, ex: http://cernvm.cern.ch/config/proxy.cgi
-			CVMFS_HTTP_PROXY="DIRECT"
-			# Where to keep the cvmfs cache
-			CVMFS_CACHE_BASE=${EROOT}/var/scratch/cvmfs
-			# Quota limit in Mb
-			CVMFS_QUOTA_LIMIT=10000
-		EOF
-		einfo "Now edit ${EROOT}/etc/cvmfs/default.local and run"
-		einfo "  ${EROOT}/usr/init.d/cvmfs restart"
-	fi
-}

diff --git a/net-fs/cvmfs/files/cvmfs-2.0.18-autotools.patch b/net-fs/cvmfs/files/cvmfs-2.0.18-autotools.patch
deleted file mode 100644
index ef28e41..0000000
--- a/net-fs/cvmfs/files/cvmfs-2.0.18-autotools.patch
+++ /dev/null
@@ -1,215 +0,0 @@
-Patch for various autotools fixes:
-* cleaner enable/disable functions
-* allow to build against system jemalloc
-* adapated to newer autoconf with standard macros
-* use LDADD instead of LDFLAGS to respect user's flags
-
-bicatali@gentoo.org 07/2012
-
-diff -Nur cvmfs-2.0.18.orig/configure.ac cvmfs-2.0.18/configure.ac
---- cvmfs-2.0.18.orig/configure.ac	2012-06-04 08:03:21.000000000 +0100
-+++ cvmfs-2.0.18/configure.ac	2012-07-23 22:12:37.000000000 +0100
-@@ -9,20 +9,22 @@
- AC_CONFIG_HEADER([config.h])
- AH_BOTTOM([#define CVMFS_PATCH_LEVEL "0"])
- 
--AC_ARG_ENABLE([cvmfs], AC_HELP_STRING([--disable-cvmfs], [Don't build the CernVM-FS FUSE module]), AC_SUBST([HAVE_CVMFS], [no]))
--AC_ARG_ENABLE([server], AC_HELP_STRING([--disable-server], [Don't build writer's end programs]), AC_SUBST([HAVE_SERVER], [no]))
--AC_ARG_ENABLE([sqlite3-builtin], AC_HELP_STRING([--enable-sqlite3-builtin], [Don't use system SQLite3]), AC_SUBST([USE_BUILTIN_SQLITE3], [yes]))
--AC_ARG_ENABLE([libcurl-builtin], AC_HELP_STRING([--enable-libcurl-builtin], [Don't use system libcurl]), AC_SUBST([USE_BUILTIN_LIBCURL], [yes]))
-+AC_ARG_ENABLE([cvmfs], AC_HELP_STRING([--disable-cvmfs], [Don't build the CernVM-FS FUSE module]), AC_SUBST([HAVE_CVMFS], [$enableval]),AC_SUBST([HAVE_CVMFS], [yes]))
-+AC_ARG_ENABLE([server], AC_HELP_STRING([--disable-server], [Don't build writer's end programs]), AC_SUBST([HAVE_SERVER], [$enableval]),AC_SUBST([HAVE_SERVER], [yes]))
-+AC_ARG_ENABLE([sqlite3-builtin], AC_HELP_STRING([--enable-sqlite3-builtin], [Don't use system SQLite3]), AC_SUBST([USE_BUILTIN_SQLITE3], [$enableval]),AC_SUBST([USE_BUILTIN_SQLITE3], [no]))
-+AC_ARG_ENABLE([libcurl-builtin], AC_HELP_STRING([--enable-libcurl-builtin], [Don't use system libcurl]), AC_SUBST([USE_BUILTIN_LIBCURL], [$enableval]),AC_SUBST([USE_BUILTIN_LIBCURL], [no]))
- dnl AC_ARG_ENABLE([libfuse-builtin], AC_HELP_STRING([--enable-libfuse-builtin], [Don't use system libfuse]), AC_SUBST([USE_BUILTIN_LIBFUSE], [yes]))
--AC_ARG_ENABLE([zlib-builtin], AC_HELP_STRING([--enable-zlib-builtin], [Don't use system]), AC_SUBST([USE_BUILTIN_ZLIB], [yes]))
--AC_ARG_ENABLE([kernel-module], AC_HELP_STRING([--enable-kernel-module], [Build the kernel module for the server part]), AC_SUBST([HAVE_KMODULE], [yes]))
--AC_ARG_ENABLE([mount-scripts], AC_HELP_STRING([--enable-mount-scripts], [Install CernVM-FS mount tools in /etc and /sbin]), AC_SUBST([HAVE_MOUNTSCRIPTS], [yes]))
-+AC_ARG_ENABLE([zlib-builtin], AC_HELP_STRING([--enable-zlib-builtin], [Don't use system]), AC_SUBST([USE_BUILTIN_ZLIB], [$enableval]),AC_SUBST([USE_BUILTIN_ZLIB], [no]))
-+AC_ARG_ENABLE([jemalloc-builtin], AC_HELP_STRING([--enable-jemalloc-builtin], [Don't use system jemalloc]), AC_SUBST([USE_BUILTIN_JEMALLOC], [$enableval]),AC_SUBST([USE_BUILTIN_JEMALLOC], [no]))
-+AC_ARG_ENABLE([kernel-module], AC_HELP_STRING([--enable-kernel-module], [Build the kernel module for the server part]), AC_SUBST([HAVE_KMODULE], [$enableval]),AC_SUBST([HAVE_KMODULE], [no]))
-+AC_ARG_ENABLE([mount-scripts], AC_HELP_STRING([--enable-mount-scripts], [Install CernVM-FS mount tools in /etc and /sbin]), AC_SUBST([HAVE_MOUNTSCRIPTS], [$enableval]),AC_SUBST([HAVE_MOUNTSCRIPTS], [no]))
- AM_CONDITIONAL([BUILD_CVMFS], [test x$HAVE_CVMFS != xno])
- AM_CONDITIONAL([BUILD_SERVER], [test x$HAVE_SERVER != xno])
- AM_CONDITIONAL([SYSTEM_SQLITE3], [test x$USE_BUILTIN_SQLITE3 != xyes])
- AM_CONDITIONAL([SYSTEM_LIBCURL], [test x$USE_BUILTIN_LIBCURL != xyes])
- AM_CONDITIONAL([SYSTEM_LIBFUSE], [test x != x])
- AM_CONDITIONAL([SYSTEM_ZLIB], [test x$USE_BUILTIN_ZLIB != xyes])
-+AM_CONDITIONAL([SYSTEM_JEMALLOC], [test x$USE_BUILTIN_JEMALLOC != xyes])
- AM_CONDITIONAL([BUILD_KMODULE], [test x$HAVE_KMODULE == xyes])
- AM_CONDITIONAL([BUILD_MEMCACHED], [test x$HAVE_MEMCACHED == xyes])
- AM_CONDITIONAL([BUILD_MOUNTSCRIPTS], [test x$HAVE_MOUNTSCRIPTS == xyes])
-@@ -35,6 +37,7 @@
- dnl AC_PROG_LIBTOOL
- AC_PROG_MAKE_SET
- AC_PROG_RANLIB
-+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
- 
- CXXFLAGS="$CXXFLAGS -g -fno-exceptions -fno-strict-aliasing -fasynchronous-unwind-tables -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wall \
-          -D_REENTRANT -D__EXTENSIONS__ -D_LARGEFILE64_SOURCE -D__LARGE64_FILES"
-@@ -70,7 +73,7 @@
- PKG_CHECK_MODULES([OPENSSL], [libcrypto >= 0.9.7a])
- 
- dnl Get OpenMP Options
--gt_OPENMP()
-+AC_OPENMP
- 
- dnl  Checks for libraries.
- save_LIBS=$LIBS
-@@ -86,6 +89,10 @@
- 
- AC_CHECK_LIB([rt], [sched_yield], ,[AC_MSG_ERROR(librt (Posix real time extensions) required)])
- 
-+if test x$USE_BUILTIN_JEMALLOC != xyes; then
-+   AC_CHECK_LIB([jemalloc], [malloc],  ,[AC_MSG_ERROR(jemalloc required)])
-+fi
-+
- if test x$HAVE_CVMFS != xno; then
- dnl   if test x$USE_BUILTIN_LIBFUSE != xyes; then
- dnl      AC_CHECK_HEADERS([fuse.h fuse/fuse_opt.h],,[AC_MSG_ERROR(fuse headers required)],[#define _FILE_OFFSET_BITS 64])
-diff -Nur cvmfs-2.0.18.orig/cvmfs/src/Makefile.am cvmfs-2.0.18/cvmfs/src/Makefile.am
---- cvmfs-2.0.18.orig/cvmfs/src/Makefile.am	2012-02-03 17:10:24.000000000 +0000
-+++ cvmfs-2.0.18/cvmfs/src/Makefile.am	2012-07-23 22:12:37.000000000 +0100
-@@ -224,6 +224,11 @@
- cvmfs_proxy_rtt_LDADD += $(LDFLAGS_ZLIB)
- endif
- 
-+if ! SYSTEM_JEMALLOC
-+LDFLAGS_JEMALLOC = ../../jemalloc/src/lib/libjemalloc.a
-+cvmfs2_debug_LDADD += $(LDFLAGS_JEMALLOC)
-+cvmfs2_LDADD += $(LDFLAGS_JEMALLOC)
-+endif
- 
- CFLAGS_CVMFS2 = 
- if ! SYSTEM_SQLITE3
-@@ -238,16 +243,17 @@
- if ! SYSTEM_ZLIB
- CFLAGS_CVMFS2 += -I../../zlib/src
- endif
--cvmfs2_debug_LDADD += ../../jemalloc/src/lib/libjemalloc.a
--cvmfs2_LDADD += ../../jemalloc/src/lib/libjemalloc.a
-+
- CFLAGS_CVMFS2 += $(PTHREAD_CFLAGS) $(CURL_CFLAGS) $(SQLITE_CFLAGS) $(OPENSSL_CFLAGS) $(FUSE_CFLAGS) -DCVMFS_CLIENT -DFUSE_CLIENT
--LDFLAGS_CVMFS2 = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(CURL_LIBS) $(SQLITE_LIBS) $(OPENSSL_LIBS) $(FUSE_LIBS) $(Z_LIBS) -lrt -rdynamic 
-+LDFLAGS_CVMFS2 = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(CURL_LIBS) $(SQLITE_LIBS) $(OPENSSL_LIBS) $(FUSE_LIBS) $(Z_LIBS) -lrt
- cvmfs2_debug_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_CVMFS2) -O0
- cvmfs2_debug_CFLAGS   = $(CVMFS_CFLAGS) $(CFLAGS_CVMFS2) -O0
--cvmfs2_debug_LDFLAGS = $(LDFLAGS_CVMFS2)
-+cvmfs2_debug_LDFLAGS = -rdynamic 
-+cvmfs2_debug_LDADD += $(LDFLAGS_CVMFS2)
- cvmfs2_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_CVMFS2) -DNDEBUGMSG
- cvmfs2_CFLAGS   = $(CVMFS_CFLAGS) $(CFLAGS_CVMFS2) -DNDEBUGMSG
--cvmfs2_LDFLAGS = $(LDFLAGS_CVMFS2)
-+cvmfs2_LDFLAGS = -rdynamic 
-+cvmfs2_LDADD += $(LDFLAGS_CVMFS2)
- 
- CFLAGS_LIBCVMFS_A = 
- if ! SYSTEM_SQLITE3
-@@ -277,7 +283,7 @@
- CFLAGS_FSCK += $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DCVMFS_CLIENT -DNDEBUGMSG
- cvmfs_fsck_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_FSCK)
- cvmfs_fsck_CFLAGS = $(CVMFS_CXFLAGS) $(CFLAGS_FSCK)
--cvmfs_fsck_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(OPENSSL_LIBS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
-+cvmfs_fsck_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(OPENSSL_LIBS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
- 
- 
- CFLAGS_PROXYRTT = 
-@@ -286,11 +292,11 @@
- endif
- CFLAGS_PROXYRTT += $(CURL_CFLAGS) -DCVMFS_CLIENT -DNDEBUGMSG
- cvmfs_proxy_rtt_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_PROXYRTT)
--cvmfs_proxy_rtt_LDFLAGS = $(CVMFS_LIBS) $(CURL_LIBS)
-+cvmfs_proxy_rtt_LDADD += $(CVMFS_LIBS) $(CURL_LIBS)
- 
- 
- testtracer_CXXFLAGS = $(CVMFS_CXXFLAGS) $(PTHREAD_CFLAGS)
--testtracer_LDFLAGS  = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
-+testtracer_LDADD  += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
- 
- CFLAGS_SYNC =
- if ! SYSTEM_SQLITE3
-@@ -302,7 +308,7 @@
- CFLAGS_SYNC += $(PTHREAD_CFLAGS) $(OPENMP_CFLAGS) $(SQLITE_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG 
- cvmfs_sync_bin_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_SYNC)
- cvmfs_sync_bin_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_SYNC)
--cvmfs_sync_bin_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(OPENSSL_LIBS) $(Z_LIBS) $(GOMP_LIBS)
-+cvmfs_sync_bin_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(OPENSSL_LIBS) $(Z_LIBS) $(GOMP_LIBS)
- 
- 
- CFLAGS_CLGCMP =
-@@ -315,7 +321,7 @@
- CFLAGS_CLGCMP += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
- cvmfs_clgcmp_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_CLGCMP)
- cvmfs_clgcmp_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_CLGCMP)
--cvmfs_clgcmp_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
-+cvmfs_clgcmp_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
- 
- 
- CFLAGS_LSCAT =
-@@ -328,7 +334,7 @@
- CFLAGS_LSCAT += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
- cvmfs_lscat_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_LSCAT)
- cvmfs_lscat_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_LSCAT)
--cvmfs_lscat_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
-+cvmfs_lscat_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
- 
- CFLAGS_FIXINODES =
- if ! SYSTEM_SQLITE3
-@@ -340,7 +346,7 @@
- CFLAGS_FIXINODES += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
- cvmfs_fixinodes_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_FIXINODES)
- cvmfs_fixinodes_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_FIXINODES)
--cvmfs_fixinodes_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
-+cvmfs_fixinodes_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
- 
- CFLAGS_SIGN =
- if ! SYSTEM_ZLIB
-@@ -349,7 +355,7 @@
- CFLAGS_SIGN += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
- cvmfs_sign_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_SIGN)
- cvmfs_sign_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_SIGN)
--cvmfs_sign_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(Z_LIBS) $(OPENSSL_LIBS)
-+cvmfs_sign_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(Z_LIBS) $(OPENSSL_LIBS)
- 
- CFLAGS_PULL =
- if ! SYSTEM_SQLITE3
-@@ -364,13 +370,13 @@
- CFLAGS_PULL += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG  
- cvmfs_pull_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_PULL)
- cvmfs_pull_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_PULL)
--cvmfs_pull_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
-+cvmfs_pull_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS) $(CURL_LIBS)
- 
- 
- CFLAGS_SCRUB = $(OPENSSL_CFLAGS) -DNDEBUGMSG
- cvmfs_scrub_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_SCRUB)
- cvmfs_scrub_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_SCRUB)
--cvmfs_scrub_LDFLAGS = $(CVMFS_LIBS) $(OPENSSL_LIBS)
-+cvmfs_scrub_LDADD += $(CVMFS_LIBS) $(OPENSSL_LIBS)
- 
- 
- CFLAGS_ZPIPE =
-@@ -378,4 +384,4 @@
- CFLAGS_ZPIPE += -I../../zlib/src
- endif
- cvmfs_zpipe_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_ZPIPE)
--cvmfs_zpipe_LDFLAGS = $(CVMFS_LIBS) $(Z_LIBS)
-+cvmfs_zpipe_LDADD += $(CVMFS_LIBS) $(Z_LIBS)
-diff -Nur cvmfs-2.0.18.orig/Makefile.am cvmfs-2.0.18/Makefile.am
---- cvmfs-2.0.18.orig/Makefile.am	2012-02-07 17:04:54.000000000 +0000
-+++ cvmfs-2.0.18/Makefile.am	2012-07-23 22:12:37.000000000 +0100
-@@ -10,10 +10,13 @@
- if ! SYSTEM_ZLIB
-   SUBDIR_ZLIB = zlib
- endif
-+if ! SYSTEM_JEMALLOC
-+  SUBDIR_JEMALLOC = jemalloc
-+endif
- if BUILD_KMODULE
-   SUBDIR_KMODULE = kernel
- endif
--SUBDIRS = $(SUBDIR_KMODULE) $(SUBDIR_SQLITE3) $(SUBDIR_ZLIB) $(SUBDIR_LIBCURL) $(SUBDIR_LIBFUSE) jemalloc cvmfs cvmfsd mount replica
-+SUBDIRS = $(SUBDIR_KMODULE) $(SUBDIR_SQLITE3) $(SUBDIR_ZLIB) $(SUBDIR_LIBCURL) $(SUBDIR_LIBFUSE) $(SUBDIR_JEMALLOC) cvmfs cvmfsd mount replica
- EXTRA_DIST = sign-whitelist add-ons rpm doc c-ares libcurl libfuse kernel jemalloc zlib mount replica 
- docdir = ${datadir}/doc/${PACKAGE}-${VERSION}
- dist_doc_DATA = NEWS README ChangeLog AUTHORS INSTALL COPYING FAQ

diff --git a/net-fs/cvmfs/files/cvmfs-2.0.18-no-redhat-init.patch b/net-fs/cvmfs/files/cvmfs-2.0.18-no-redhat-init.patch
deleted file mode 100644
index 2769771..0000000
--- a/net-fs/cvmfs/files/cvmfs-2.0.18-no-redhat-init.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-* Avoid forcing install of fedora/redhat init scripts
-* Add a more general init script to adapt other distributions
-
-bicatali@gentoo.org 07/2012
-
---- cvmfs-2.0.18.orig/mount/Makefile.am
-+++ cvmfs-2.0.18/mount/Makefile.am
-@@ -2,14 +2,12 @@
- install-exec-hook:
- 	test -z "$(DESTDIR)/etc" || mkdir -p "$(DESTDIR)/etc"
- 	test -z "$(DESTDIR)/sbin" || mkdir -p "$(DESTDIR)/sbin"
--	test -z "$(DESTDIR)/etc/rc.d/init.d" || mkdir -p "$(DESTDIR)/etc/rc.d/init.d"
- 	test -z "$(DESTDIR)/etc/cvmfs" || mkdir -p "$(DESTDIR)/etc/cvmfs"
- 	test -z "$(DESTDIR)/etc/cvmfs/config.d" || mkdir -p "$(DESTDIR)/etc/cvmfs/config.d"	
- 	test -z "$(DESTDIR)/etc/cvmfs/domain.d" || mkdir -p "$(DESTDIR)/etc/cvmfs/domain.d"
- 	test -z "$(DESTDIR)/etc/cvmfs/keys" || mkdir -p "$(DESTDIR)/etc/cvmfs/keys"
- 	install -c auto.cvmfs "$(DESTDIR)/etc/auto.cvmfs"
- 	install -c mount.cvmfs "$(DESTDIR)/sbin/mount.cvmfs"
--	install -c cvmfs.initd "$(DESTDIR)/etc/rc.d/init.d/cvmfs"
- 	install -c -m 0644 config.sh "$(DESTDIR)/etc/cvmfs/config.sh"
- 	install -c -m 0644 default.conf "$(DESTDIR)/etc/cvmfs/default.conf"
- 	install -c -m 0644 domain.d/cern.ch.conf "$(DESTDIR)/etc/cvmfs/domain.d/cern.ch.conf"

diff --git a/net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch b/net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch
deleted file mode 100644
index df1f5e6..0000000
--- a/net-fs/cvmfs/files/cvmfs-2.0.18-openrc.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-diff -Nur cvmfs-2.0.18.orig/cvmfs/src/cvmfs_config cvmfs-2.0.18/cvmfs/src/cvmfs_config
---- cvmfs-2.0.18.orig/cvmfs/src/cvmfs_config	2012-05-05 15:16:19.000000000 +0100
-+++ cvmfs-2.0.18/cvmfs/src/cvmfs_config	2012-07-23 23:16:06.000000000 +0100
-@@ -16,9 +16,15 @@
- 
- if [ -x /sbin/service ]; then
-   service="/sbin/service"
--else
-+  chkconfig="/sbin/chkconfig"
-+elif [ -x /usr/sbin/service ]; then
-   # Ubuntu
-   service="/usr/sbin/service"
-+  chkconfig="/usr/sbin/chkconfig"
-+elif [ -x /sbin/rc-service ]; then
-+  # OpenRC
-+  service="/sbin/rc-service"
-+  chkconfig="/usr/bin/rc-config"
- fi
- 
- var_list="CVMFS_USER CVMFS_NFILES CVMFS_CACHE_BASE CVMFS_MOUNT_DIR CVMFS_QUOTA_LIMIT \
-@@ -116,9 +122,9 @@
-    fi
- 
-    if [ $noservice -eq 0 ]; then
--      /sbin/chkconfig --list cvmfs > /dev/null 2>&1
-+      $chkconfig --list cvmfs > /dev/null 2>&1
-       if [ $? -ne 0 ]; then
--         /sbin/chkconfig --add cvmfs
-+         $chkconfig --add cvmfs
-       fi
-    fi
- 
-@@ -580,8 +586,8 @@
-    for cmd in 'uname -a' 'cat /etc/issue' 'hostname -f' 'ifconfig -a' 'cvmfs2 --version' \
-               'grep cvmfs2 /var/log/messages' 'grep cvmfs2 /var/log/syslog' \
-               "eval find ${CVMFS_CACHE_BASE} -maxdepth 1 -exec ls -lah \{\} \;" \
--              'service cvmfs probe' 'mount' 'df -h' 'ps -ef' \
--              'service cvmfs status' 'cvmfs_config showconfig' \
-+              "${service}\ cvmfs\ probe" 'mount' 'df -h' 'ps -ef' \
-+              "${service}\ cvmfs\ status" 'cvmfs_config showconfig' \
-               'cvmfs_config chksetup' 'cvmfs_config stat -v' \
-               'cat /etc/fuse.conf'  'ls -la /usr/bin/fusermount' 'ls -la /bin/fusermount' \
-               'cat /etc/auto.master' 'cat /etc/sysconfig/autofs' 'cat /etc/fstab'
-diff -Nur cvmfs-2.0.18.orig/cvmfs/src/cvmfs_server cvmfs-2.0.18/cvmfs/src/cvmfs_server
---- cvmfs-2.0.18.orig/cvmfs/src/cvmfs_server	2011-11-30 11:26:55.000000000 +0000
-+++ cvmfs-2.0.18/cvmfs/src/cvmfs_server	2012-07-23 23:31:32.000000000 +0100
-@@ -1,5 +1,13 @@
- #!/bin/bash
- 
-+service=$(type -P service)
-+chconfig=$(type -P chkconfig)
-+if [ -n ${service} ]; then
-+  # OpenRC
-+  service="rc-service"
-+  chkconfig="echo > /dev/null"
-+fi
-+
- create_master_key() {
-    local name; name=$1
-    master_key="/etc/cvmfs/keys/$name.masterkey"
-@@ -161,8 +169,8 @@
-    create_whitelist $name
-    
-    echo -n "Starting services... "
--   service cvmfsd start > /dev/null
--   chkconfig cvmfsd on
-+   $service cvmfsd start > /dev/null
-+   $chkconfig cvmfsd on
-    echo "New CernVM-FS repository for $name" > /cvmfs/${name}/empty
-    usermod -s /bin/bash cvmfs
-    publish $name > /dev/null
-@@ -182,8 +190,8 @@
-    
-    echo -n "Stopping services... "
-    usermod -s /sbin/nologin cvmfs
--   service cvmfsd stop > /dev/null
--   chkconfig cvmfsd off
-+   $service cvmfsd stop > /dev/null
-+   $chkconfig cvmfsd off
-    echo "done"
-    
-    echo -n "Unmounting CernVM-FS Area... "

diff --git a/net-fs/cvmfs/files/cvmfs-2.0.18-spinlock.patch b/net-fs/cvmfs/files/cvmfs-2.0.18-spinlock.patch
deleted file mode 100644
index 1456d02..0000000
--- a/net-fs/cvmfs/files/cvmfs-2.0.18-spinlock.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Use macro since SPIN_LOCK_UNLOCKED has been obsolete in kernel since 2007
-
-bicatali@gentoo.org 07/2012
-
---- cvmfs-2.0.18.orig/kernel/cvmfsflt/src/cvmfsflt_data.c
-+++ cvmfs-2.0.18/kernel/cvmfsflt/src/cvmfsflt_data.c
-@@ -5,7 +5,7 @@
- int rbuf_head, rbuf_tail; /* Current positions in ring buffer */
- struct semaphore rbuf_full, rbuf_empty;   /* semaphores for producer-consumer synchronization */
- struct cvmfsflt_logline *ll_current = NULL;
--static spinlock_t rbuf_wlock = SPIN_LOCK_UNLOCKED;
-+DEFINE_SPINLOCK(rbuf_wlock);
- atomic_t cvmfsflt_noll = ATOMIC_INIT(0);  /* number of loglines in the ring buffer */
- 
- 

diff --git a/net-fs/cvmfs/files/cvmfs-2.0.18-system-redirfs.patch b/net-fs/cvmfs/files/cvmfs-2.0.18-system-redirfs.patch
deleted file mode 100644
index b26e63d..0000000
--- a/net-fs/cvmfs/files/cvmfs-2.0.18-system-redirfs.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-use the installed redirfs instead of bundled one
-(need an experimental 0.11 redirfs on 3.x kernels)
-
-bicatali@gentoo.org 07/2012
-
---- cvmfs-2.0.18.orig/kernel/cvmfsflt/src/cvmfsflt.h
-+++ cvmfs-2.0.18/kernel/cvmfsflt/src/cvmfsflt.h
-@@ -8,7 +8,7 @@
- #include <asm/uaccess.h>	/* for put_user */
- #include <linux/slab.h>    /* for kmalloc/kfree */ 
- 
--#include "redirfs.h"
-+#include <linux/redirfs.h>
- 
- 
- #define CVMFSFLT_VERSION "0.1"

diff --git a/net-fs/cvmfs/files/cvmfs.initd b/net-fs/cvmfs/files/cvmfs.initd
deleted file mode 100644
index 75f45b7..0000000
--- a/net-fs/cvmfs/files/cvmfs.initd
+++ /dev/null
@@ -1,195 +0,0 @@
-#!/sbin/runscript
-
-extra_commands="probe status"
-extra_started_commands="reload flush restart_clean"
-description="The CernVM-FS init script"
-
-init() {
-    # Initialization, read config
-    [ -x /etc/cernvm/config ] && /etc/cernvm/config    
-    if [ -f /etc/cvmfs/config.sh ];  then
-	. /etc/cvmfs/config.sh
-    else
-	exit 1
-    fi
-
-    cvmfs_readconfig    
-    [ -f /etc/cernvm/repositories.sh ] && . /etc/cernvm/repositories.sh    
-    export LANG=C LC_ALL=C    
-    [ -f /etc/cernvm/custom/init.sh ] && . /etc/cernvm/custom/init.sh
-}
-
-depend() {
-    need net fuse autofs
-    after logger
-}
-
-list_mounts() {
-    mount -t fuse | grep "^cvmfs2[[:space:]]"
-}
-
-repository_status() {
-    local fqrn=$1 ret=0 pid
-    if list_mounts | grep ${CVMFS_MOUNT_DIR}/${fqrn} > /dev/null; then
-	pid=$(cvmfs-talk -c "${CVMFS_CACHE_BASE}" -i "${fqrn}" pid)
-	ret=$(echo ${pid} | grep ^[0-9]*$ > /dev/null)
-	if [ ${ret} -eq 0 ]; then
-	    einfo "CernVM-FS mounted on ${CVMFS_MOUNT_DIR}/${fqrn} with pid ${pid}"
-	else
-	    ewarn "CernVM-FS running with process ${pid}"
-	fi
-    else
-	einfo "CernVM-FS not mounted on ${CVMFS_MOUNT_DIR}/${fqrn}"
-    fi
-    return ${ret}
-}
-
-repository_flush() {
-    local fqrn=$1
-    ebegin "Flushing ${fqrn}"
-    stat ${CVMFS_MOUNT_DIR}/${fqrn}/. > /dev/null 2>&1 && \
-	cvmfs-talk -c "${CVMFS_CACHE_BASE}" -i "${fqrn}" cleanup 0 > /dev/null
-    eend $?
-}
-
-repository_reload() {
-    local fqrn=$1 ret=0 hosts
-    if cvmfs-talk -i ${fqrn} pid > /dev/null 2>&1; then		
-	ebegin "Reloading ${fqrn}"
-	[[ $(cvmfs-talk -i ${fqrn} timeout set ${CVMFS_TIMEOUT} ${CVMFS_TIMEOUT_DIRECT} 2>&1) == OK ]]
-	ret=$((ret + $?))
-	[[ $(cvmfs-talk -i ${fqrn} proxy set ${CVMFS_HTTP_PROXY} 2>&1) == OK ]]
-	ret=$((ret + $?))
-	hosts=$(echo ${CVMFS_SERVER_URL} | sed -e "s/@org@/$(cvmfs_getorg ${fqrn})/g" -e "s/@fqrn@/${fqrn}/g")
-	[[ $(cvmfs-talk -i ${fqrn} host set ${hosts} 2>&1) == OK ]]
-	ret=$((ret + $?))
-	[[ $(cvmfs-talk -i ${fqrn} max ttl set ${CVMFS_MAX_TTL:-0} 2>&1) == OK ]]
-	eend $?
-	ret=$((ret + $?))
-    else
-	einfo "${frqn} not mounted"
-    fi
-    return ${ret}
-}
-
-repository_wipe() {
-    local fqrn=$1
-    ebegin "Wiping out ${CVMFS_CACHE_BASE}/${fqrn}"
-    [ ! -d "${CVMFS_CACHE_BASE}/${fqrn}" ] || rm -rf "${CVMFS_CACHE_BASE}/${fqrn}"
-    eend $?
-}
-
-repository_probe() {
-    local fqrn=$1
-    ebegin "Probing ${CVMFS_MOUNT_DIR}/${fqrn}"
-    df -P "${CVMFS_MOUNT_DIR}/${fqrn}" 2>&1 | grep -q ^cvmfs2
-    eend $?
-}
-
-cvmfs_action() {
-    local action=$1 org fqrn
-    for org in ${CVMFS_REPOSITORIES/,/ /}; do
-	case ${org} in
-            none)
-		;;
-            *)
-		. /etc/cvmfs/config.sh
-		cvmfs_readconfig
-		fqrn=$(cvmfs_mkfqrn ${org})
-		cvmfs_readconfig ${fqrn}
-		[[ $(type -t "${action}") == "function" ]] && ${action} ${fqrn}
-		;;
-	esac
-    done
-}
-
-start() {
-    ebegin "Starting CernVM-FS"   
-    cvmfs_action repository_start
-    eend $?
-}
-
-stop() {
-    local m ret=0
-    # FIXME: do we need to unmount here or?
-    for m in $(list_mounts | awk '{print $3}');  do	
-	ebegin "Unmounting ${m}"
-	umount ${m} 2>/dev/null
-	eend $?
-	if [ $? -ne 0 ]; then
-            ret=$((ret + $?))
-            fuser -m -a -v ${m}
-	fi
-    done
-    if [ ${ret} -eq 0 ]; then
-	ebegin "Shutting down CernVM-FS"
-	cvmfs_action repository_stop
-	eend $?
-	ret=$((ret + $?))
-    fi
-    return ${ret}
-}
-
-status() {
-    ebegin "Checking status on CernVM-FS"
-    cvmfs_action repository_status
-        
-    local org processed repo ret=0
-
-    for org in ${CVMFS_REPOSITORIES/,/ /}; do
-	case ${org} in
-            none)
-		;;
-            *)
-		. /etc/cvmfs/config.sh # start with fresh repository_... functions
-		cvmfs_readconfig
-		fqrn=$(cvmfs_mkfqrn ${org})
-		processed="${fqrn} ${processed}"
-		cvmfs_readconfig ${fqrn}
-
-		# in an action?
-		list_mounts | grep ${CVMFS_MOUNT_DIR}/${fqrn} > /dev/null
-		if [ $? -eq 0 ]; then
-		    local pid=$(/usr/bin/cvmfs-talk -c "${CVMFS_CACHE_BASE}" -i "${fqrn}" pid)		   
-		    if echo ${pid} | grep ^[0-9]*$ > /dev/null; then
-			einfo "CernVM-FS mounted on ${CVMFS_MOUNT_DIR}/${fqrn} with pid ${pid}"
-		    else
-			ret=$((ret + $?))
-			ewarn "CernVM-FS running with process ${pid}"
-		    fi
-		else
-		    einfo "CernVM-FS not mounted on ${CVMFS_MOUNT_DIR}/${fqrn}"
-		fi
-		;;
-	esac
-    done
-    
-    for repo in $(list_mounts | awk '{print $3}'); do
-	repo=$(basename "${repo}")	
-	echo "${processed}" | grep -q "${repo}" || \
-            ewarn "CernVM-FS mounted on ${CVMFS_MOUNT_DIR}/${repo} (not in CVMFS_REPOSITORIES)"
-    done
-    eend ${ret}
-}
-
-flush() {
-    cvmfs_action repository_flush
-}
-
-reload() {
-    cvmfs_action repository_reload
-}
-
-restart_clean() {
-    stop
-    local ret=$?
-    cvmfs_action repository_wipe
-    ret=$((ret + $?))
-    [[ ${ret} == 0 ]] && start
-    ret=$((ret + $?))
-    return ${ret}
-}
-
-probe() {    
-    cvmfs_action repository_probe
-}

diff --git a/net-fs/cvmfs/files/cvmfsd.confd b/net-fs/cvmfs/files/cvmfsd.confd
deleted file mode 100644
index e69de29..0000000

diff --git a/net-fs/cvmfs/files/cvmfsd.initd b/net-fs/cvmfs/files/cvmfsd.initd
deleted file mode 100644
index bc0c604..0000000
--- a/net-fs/cvmfs/files/cvmfsd.initd
+++ /dev/null
@@ -1,191 +0,0 @@
-#!/sbin/runscript
-
-. /etc/cvmfs/server.conf
-[[ -f /etc/cvmfs/server.local ]] && . /etc/cvmfs/server.local
-
-extra_commands="checkconfig"
-extra_started_commands="pause flush resume"
-
-description="Background daemon that writes the cvmfs character device into a log file"
-description_checkconfig="Check configuration file validity"
-description_pause="Pause the transactions (not a full stop)"
-description_flush="Flush the CernVM-FS change log"
-description_resume="Resume transactions after a pause"
-
-pidfile="/var/run/cvmfsd.pid"
-subsysfile="/var/lock/subsys/cvmfsd"
-
-checkconfig() {
-    local var ret=0
-    for var in SHADOW_DIR PUB_DIR LOG_FILE;  do
-	eval value=\$$var
-	if [[ -z ${value} ]]; then
-	    eerror "You need to set a value for ${var} in /etc/cvmfs/server.local"
-	    ret=$((ret + $?))
-	fi
-    done
-    return ${ret}
-}
-
-depend() {
-    after localmount
-    use net
-}
-
-# returns: 0 (stopped), 1 (running), 2 (paused)
-check_status() {
-    if [ -f ${pidfile} ]; then
-	[ $(cat /sys/fs/redirfs/filters/cvmfsflt/lockdown) -eq 1 ] && return 2
-	return 1
-    fi
-    return 0
-}
-
-# FIXME: could we use start-stop-daemon instead of listen/unlisten?
-
-listen() {
-    ebegin "Starting journal writer"
-    nohup cat /dev/cvmfs >> "${LOG_FILE}" 2>/dev/null </dev/null &
-    [ $? -eq 0 ] && echo $! > ${pidfile}
-    eend $?
-}
-
-unlisten() {
-    ebegin "Stopping journal writer"
-    local pid=$(cat ${pidfile})
-    kill ${pid}
-    local killed=0 retries=0
-    while [ ${killed} -eq 0 ]; do
-	sleep 1
-	kill -0 ${pid} 2>/dev/null
-	killed=$?
-	retries=$((retries + 1))
-	[ ${retries} -eq 3 ] && kill -9 ${pid}
-    done
-    eend $?
-}
-
-start() {
-    checkconfig || return 1
-
-    if [ ! -d ${SHADOW_DIR} ]; then
-	eerror "Missing ${SHADOW_DIR}"
-	return 1
-    fi
-    
-    if mkdir -p "$(echo "${LOG_FILE}" | grep -o '\([^\/]*\/\)*')"; then
-	eerror "Could not create file system journal in ${LOG_FILE}"
-	return 1
-    fi
-    
-    ebegin "Loading cvmfsflt kernel module"
-    modprobe -q redirfs && modprobe -q cvmfsflt
-    eend $? || return 1
-   
-    ebegin "Linking to character device"
-    rm -f /dev/cvmfs
-    mknod /dev/cvmfs c $(awk '/cvmfs/ {print $1}' /proc/devices) 0 > /dev/null 2>&1
-    chmod 0600 /dev/cvmfs
-    eend $? || return 1
-    
-    ebegin "Setting filter path to ${SHADOW_DIR}"
-    echo -n "a:i:${SHADOW_DIR}" > /sys/fs/redirfs/filters/cvmfsflt/paths
-    eend $? || return 1
-    
-    listen || return 1
-    ebegin "Starting CernVM-FS daemon"
-    touch ${subsysfile}
-    eend $?
-}
-
-
-pause() {
-    check_status
-    local ret=$?
-    if [ ${ret} -eq 0 ]; then
-	eerror "CernVM-FS daemon is stopped"
-	return 1
-    fi
-    if [ ${ret} -eq 2 ]; then
-	ewarn "CernVM-FS daemon is already paused"
-	return 1
-    fi
-   
-   ebegin "Locking down ${SHADOW_DIR}"
-   echo -n "1" > /sys/fs/redirfs/filters/cvmfsflt/lockdown
-   eend $? || return 1
-
-   ebegin "Waiting for pending operations on ${SHADOW_DIR}"
-   local nowops noll
-   while true;  do
-       nowops=$(cat /sys/fs/redirfs/filters/cvmfsflt/nowops)
-       [ $? -ne 0 ] && eend 1 && return 1
-       [ ${nowops} -eq 0 ] && break
-       sleep 1
-   done
-   eend $?
-   
-   ebegin "Waiting for pending messages in call buffer"
-   local noll
-   while true; do
-       noll=$(cat /sys/fs/redirfs/filters/cvmfsflt/noll)
-       [ $? -ne 0 ] && eend 1 && return 1
-       [ ${noll} -eq 0 ] && break
-       sleep 1
-   done
-   eend $? || return 1
-   unlisten || return 1
-   mark_service_stopped cvmfsd
-}
-
-resume() {
-   check_status
-   local ret=$?
-   if [ ${ret} -eq 0 ]; then
-       eerror "CernVM-FS daemon is stopped"
-       return 1
-   fi
-   if [ $retval -eq 1 ]; then
-       ewarn "CernVM-FS daemon is already running"
-       return 1
-   fi
-   
-   listen || return 1
-   
-   ebegin "Open up ${SHADOW_DIR}"
-   echo -n "0" > /sys/fs/redirfs/filters/cvmfsflt/lockdown
-   eend $? || return 1
-   mark_service_started cvmfsd
-}
-
-
-stop() {
-    check_status
-    local ret=$?
-    if [ ${ret} -eq 0 ]; then
-	ewarn "CernVM-FS daemon is already stopped"
-	return 2
-    fi
-   
-    if [ ${ret} -eq 1 ]; then
-	pause
-	ret=$?
-	[ ${ret} -ne 0 ] && return ${ret}
-    fi
-   
-    ebegin "Unloading cvmfsflt kernel module"
-    echo -n "c\0" > /sys/fs/redirfs/filters/cvmfsflt/paths || ret=$((ret + 1))
-    echo -n "1\0" > /sys/fs/redirfs/filters/cvmfsflt/unregister || ret=$((ret + 1))
-    rmmod cvmfsflt || ret=$((ret + 1))
-    eend ${ret} || return 1
-   
-    ebegin "Shutting down CernVM-FS daemon"
-    rm -f ${pidfile} ${subsysfile}
-    eend $?
-}
-
-flush() {
-   ebegin "Flushing CernVM-FS server file system change log"
-   cat /dev/null > "${LOG_FILE}"
-   eend $?
-}

diff --git a/net-fs/cvmfs/metadata.xml b/net-fs/cvmfs/metadata.xml
deleted file mode 100644
index b33579e..0000000
--- a/net-fs/cvmfs/metadata.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<maintainer>
-  <email>bicatali@gentoo.org</email>
-</maintainer>
-<longdescription lang='en'>
-  The CernVM File System is a client-server file system developed to
-  deliver software stacks onto virtual machines in a fast, scalable,
-  and reliable way. CernVM-FS is implemented as a FUSE module. It
-  makes a specially prepared directory tree stored on a web server
-  look like a local read-only file system on the virtual
-  machine. CernVM-FS uses outgoing HTTP connections only, thereby it
-  avoids most of the firewall issues of other network file systems. It
-  transfers data file by file on demand, verifying the content by
-  SHA-1 keys.
-</longdescription>
-<use>
-  <flag name='client'>Install the cvmfs client programs and init script</flag>
-  <flag name='server'>Install the cvmfsd program and init script</flag>
-</use>
-</pkgmetadata>


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-10-30 14:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-30 14:45 [gentoo-commits] proj/sci:master commit in: net-fs/cvmfs/files/, net-fs/cvmfs/ Sebastien Fabbro
  -- strict thread matches above, loose matches on Subject: below --
2012-07-25 18:09 Sebastien Fabbro
2012-07-25  0:34 Sebastien Fabbro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox