summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /sys-cluster/glusterfs
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sys-cluster/glusterfs')
-rw-r--r--sys-cluster/glusterfs/Manifest4
-rw-r--r--sys-cluster/glusterfs/files/50glusterfs-mode-gentoo.el5
-rw-r--r--sys-cluster/glusterfs/files/glusterd-3.2.0-workdir.patch49
-rw-r--r--sys-cluster/glusterfs/files/glusterd-r1.initd16
-rw-r--r--sys-cluster/glusterfs/files/glusterd-r2.initd33
-rw-r--r--sys-cluster/glusterfs/files/glusterd-workdir.patch49
-rw-r--r--sys-cluster/glusterfs/files/glusterd.initd36
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.1.0-parallel-build.patch22
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.3.0-avoid-version.patch431
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.3.0-docdir.patch26
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.3.0-parallel-build.patch20
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.3.0-silent_rules.patch25
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.4.0-build-shared-only.patch505
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.4.0-nfs-exit-when-all-volumes-are-disabled.patch42
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.4.0-silent_rules.patch23
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.4.4-cluster-dht-Don-t-do-extra-unref-in-dht-migration-ch.patch48
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.4.4-fuse-fix-memory-leak-in-fuse_getxattr.patch91
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.5.1-Add-libraries-using-LIBADD-instead-of-LDFLAGS.patch54
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.5.1-build-shared-only.patch576
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-docdir.patch51
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-r1.initd122
-rw-r--r--sys-cluster/glusterfs/files/glusterfs.confd6
-rw-r--r--sys-cluster/glusterfs/files/glusterfs.initd120
-rw-r--r--sys-cluster/glusterfs/files/glusterfs.logrotate34
-rw-r--r--sys-cluster/glusterfs/files/glusterfs.vim8
-rw-r--r--sys-cluster/glusterfs/glusterfs-3.1.2.ebuild112
-rw-r--r--sys-cluster/glusterfs/glusterfs-3.2.7.ebuild122
-rw-r--r--sys-cluster/glusterfs/glusterfs-3.3.1-r2.ebuild135
-rw-r--r--sys-cluster/glusterfs/glusterfs-3.5.3.ebuild174
-rw-r--r--sys-cluster/glusterfs/metadata.xml21
30 files changed, 2960 insertions, 0 deletions
diff --git a/sys-cluster/glusterfs/Manifest b/sys-cluster/glusterfs/Manifest
new file mode 100644
index 000000000000..e08b3507491a
--- /dev/null
+++ b/sys-cluster/glusterfs/Manifest
@@ -0,0 +1,4 @@
+DIST glusterfs-3.1.2.tar.gz 2086469 SHA256 9a4e910431f572aa180a3ad1821f7524773ec1e8f06342c4040f26619f832838 SHA512 69b61af7c6cd9f54f615f7cd50c6ffda670800c6045604449b130eaa43c90c9adcb518c1312134890cccf3a301066a5af3e97bd7ec9775b7f70ea6d0a4a67cd6 WHIRLPOOL 0ecc86ac943f4c8d9575b8b0ae2ef72002d6510945e1a687409277165eb7688c2e4db50532ae10777828646b782561dfd4314fa766d7a3bcf4762e8be7c34c79
+DIST glusterfs-3.2.7.tar.gz 2424292 SHA256 464c089ff9da5a8e17f7caeae48f1cad59973489dfe940a9f0d8db8bc14cd6c4 SHA512 c4a286e1ddfec6c92d011b5abe4f96321e39dff57294141fc44cda4578fa11582095362733092af9042b38528cb328208e9e46a33c40c70e672ffb4e38dcc013 WHIRLPOOL 843a615b334e1ee84c3bcef1a8aceb113eb6976656ae09c6cbf4dcb201f4d37d9cc8ef3ccd3cc4aeb879bffde556b9f6f7105c3c39afed94a19b9613cd8c4284
+DIST glusterfs-3.3.1.tar.gz 2636698 SHA256 19aaefe3a0f9059ae831b44c92944503cf439da82da23467101ac13da8b77519 SHA512 c32e95a0e4568a62fabcf0c52ad3d6a173b62c5536006c3680e3efd1240e2a68177e14891e11d1d16eff5eb67bf60108dbd44151c26241203d8ddb58f0270c69 WHIRLPOOL 30316bbdb7087dd32d35f0f017ea461711830f5450984edb6d6c527d7f9cae5ee307601887cf489a2d675180d1f21a77ac7901f37f44cc860cccbe510c5a18bf
+DIST glusterfs-3.5.3.tar.gz 5021529 SHA256 d805d77da721e6fcb839f1208a9315b4f37b9d2a12c375dd47e5db4a60f5b6c2 SHA512 5a360c9d5180d1e59b8cac9900e4cf776aebf59fd59cca6a0ef27a84cae3781c8c5640b253c73888af751344dce9fd19c1b26bd9aa590ba4fc860143c990f30a WHIRLPOOL a08d3fc6f66dd4191d95611e1b626d8b393e2b8620800039cde20fcebe1643dc2cfe9e7eb3ce3be31aa4f17b8fc881060d40e3493ce189b93668716e2c7ae86d
diff --git a/sys-cluster/glusterfs/files/50glusterfs-mode-gentoo.el b/sys-cluster/glusterfs/files/50glusterfs-mode-gentoo.el
new file mode 100644
index 000000000000..c14b0d8de33b
--- /dev/null
+++ b/sys-cluster/glusterfs/files/50glusterfs-mode-gentoo.el
@@ -0,0 +1,5 @@
+
+;;; puppet-mode site-lisp configuration
+
+(add-to-list 'load-path "@SITELISP@")
+(autoload 'glusterfs-mode "glusterfs-mode" "Major mode for editing glusterfs manifests")
diff --git a/sys-cluster/glusterfs/files/glusterd-3.2.0-workdir.patch b/sys-cluster/glusterfs/files/glusterd-3.2.0-workdir.patch
new file mode 100644
index 000000000000..a312bdbc64d7
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterd-3.2.0-workdir.patch
@@ -0,0 +1,49 @@
+Change the default workdir of the glusterd daemon to /var/lib/glusterd instead of /etc/glusterd.
+This directory is dynamically populated by glusterd via the gluster CLI so it does better
+belong into /var/lib/.
+
+Patch by Ultrabug.
+
+--- a/xlators/mgmt/glusterd/src/glusterd.h 2010-10-13 06:20:37.000000000 +0200
++++ b/xlators/mgmt/glusterd/src/glusterd.h 2010-10-26 10:47:52.747265444 +0200
+@@ -204,7 +204,7 @@
+ GLUSTERD_VOL_COMP_RJT,
+ };
+
+-#define GLUSTERD_DEFAULT_WORKDIR "/etc/glusterd"
++#define GLUSTERD_DEFAULT_WORKDIR "/var/lib/glusterd"
+ #define GLUSTERD_DEFAULT_PORT GF_DEFAULT_BASE_PORT
+ #define GLUSTERD_INFO_FILE "glusterd.info"
+ #define GLUSTERD_VOLUME_DIR_PREFIX "vols"
+--- a/doc/glusterd.vol 2010-10-13 06:20:36.000000000 +0200
++++ b/doc/glusterd.vol 2010-10-26 10:48:16.487931870 +0200
+@@ -1,6 +1,6 @@
+ volume management
+ type mgmt/glusterd
+- option working-directory /etc/glusterd
++ option working-directory /var/lib/glusterd
+ option transport-type socket,rdma
+ option transport.socket.keepalive-time 10
+ option transport.socket.keepalive-interval 2
+--- a/doc/glusterd.8 2010-10-13 06:20:36.000000000 +0200
++++ b/doc/glusterd.8 2010-10-26 10:48:44.898729373 +0200
+@@ -70,7 +70,7 @@
+
+ .PP
+ .SH FILES
+-/etc/glusterd/*
++/var/lib/glusterd/*
+
+ .SH SEE ALSO
+ .nf
+--- a/doc/gluster.8 2011-04-22 19:37:28.000000000 +0200
++++ b/doc/gluster.8 2011-05-16 11:56:14.318682346 +0200
+@@ -121,7 +121,7 @@
+ Exit the gluster command line interface.
+
+ .SH FILES
+-/etc/glusterd/*
++/var/lib/glusterd/*
+ .SH SEE ALSO
+ .nf
+ \fBfusermount\fR(1), \fBmount.glusterfs\fR(8), \fBglusterfs\fR(8), \fBglusterd\fR(8) \ No newline at end of file
diff --git a/sys-cluster/glusterfs/files/glusterd-r1.initd b/sys-cluster/glusterfs/files/glusterd-r1.initd
new file mode 100644
index 000000000000..3cb7c637163c
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterd-r1.initd
@@ -0,0 +1,16 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description="Gluster elastic volume management daemon"
+command="/usr/sbin/glusterd"
+pidfile="/var/run/${SVCNAME}.pid"
+command_args="-N"
+
+command_background="yes"
+
+depend() {
+ need net
+ before netmount
+}
diff --git a/sys-cluster/glusterfs/files/glusterd-r2.initd b/sys-cluster/glusterfs/files/glusterd-r2.initd
new file mode 100644
index 000000000000..8d4d7b8257af
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterd-r2.initd
@@ -0,0 +1,33 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description="Gluster elastic volume management daemon"
+command="/usr/sbin/glusterd"
+pidfile="/var/run/${SVCNAME}.pid"
+command_args="-N"
+
+command_background="yes"
+
+depend() {
+ need net
+ before netmount
+}
+
+start_pre() {
+ # Ensure that the GlusterFS auxiliary mount parent directory exists
+ checkpath --directory --owner root:root --mode 0700 /var/run/gluster
+}
+
+start_post() {
+ local c=0
+ ebegin "Waiting for glusterd to start up"
+ while ! /usr/sbin/gluster volume list &>/dev/null && [ "${c}" -lt "${glusterd_max_wait_start-60}" ]; do
+ (( ++c ))
+ done
+ [ "${c}" -lt "${glusterd_max_wait_start-60}" ]
+ eend $?
+
+ return 0
+}
diff --git a/sys-cluster/glusterfs/files/glusterd-workdir.patch b/sys-cluster/glusterfs/files/glusterd-workdir.patch
new file mode 100644
index 000000000000..285136373d8e
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterd-workdir.patch
@@ -0,0 +1,49 @@
+Change the default workdir of the glusterd daemon to /var/lib/glusterd instead of /etc/glusterd.
+This directory is dynamically populated by glusterd via the gluster CLI so it does better
+belong into /var/lib/.
+
+Patch by Ultrabug.
+
+--- a/xlators/mgmt/glusterd/src/glusterd.h 2010-10-13 06:20:37.000000000 +0200
++++ b/xlators/mgmt/glusterd/src/glusterd.h 2010-10-26 10:47:52.747265444 +0200
+@@ -204,7 +204,7 @@
+ GLUSTERD_VOL_COMP_RJT,
+ };
+
+-#define GLUSTERD_DEFAULT_WORKDIR "/etc/glusterd"
++#define GLUSTERD_DEFAULT_WORKDIR "/var/lib/glusterd"
+ #define GLUSTERD_DEFAULT_PORT GF_DEFAULT_BASE_PORT
+ #define GLUSTERD_INFO_FILE "glusterd.info"
+ #define GLUSTERD_VOLUME_DIR_PREFIX "vols"
+--- a/doc/glusterd.vol 2010-10-13 06:20:36.000000000 +0200
++++ b/doc/glusterd.vol 2010-10-26 10:48:16.487931870 +0200
+@@ -1,6 +1,6 @@
+ volume management
+ type mgmt/glusterd
+- option working-directory /etc/glusterd
++ option working-directory /var/lib/glusterd
+ option transport-type socket,rdma
+ option transport.socket.keepalive-time 10
+ option transport.socket.keepalive-interval 2
+--- a/doc/gluster.8 2010-10-13 06:20:36.000000000 +0200
++++ b/doc/gluster.8 2010-10-26 10:48:36.738500314 +0200
+@@ -118,7 +118,7 @@
+ .TP
+ .PP
+ .SH FILES
+-/etc/glusterd/*
++/var/lib/glusterd/*
+
+ .SH SEE ALSO
+ .nf
+--- a/doc/glusterd.8 2010-10-13 06:20:36.000000000 +0200
++++ b/doc/glusterd.8 2010-10-26 10:48:44.898729373 +0200
+@@ -70,7 +70,7 @@
+
+ .PP
+ .SH FILES
+-/etc/glusterd/*
++/var/lib/glusterd/*
+
+ .SH SEE ALSO
+ .nf
diff --git a/sys-cluster/glusterfs/files/glusterd.initd b/sys-cluster/glusterfs/files/glusterd.initd
new file mode 100644
index 000000000000..bbb28a736d4f
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterd.initd
@@ -0,0 +1,36 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+PIDFILE=/var/run/glusterd.pid
+
+depend() {
+ need net
+ before netmount
+}
+
+start() {
+ ebegin "Starting glusterd"
+ start-stop-daemon --start -q --exec /usr/sbin/glusterd \
+ --pidfile "${PIDFILE}" --make-pidfile --background \
+ -- -N
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping glusterd"
+ start-stop-daemon --stop -q --pidfile "${PIDFILE}"
+ eindent
+
+ einfo "Unmounting GlusterFS filesystems"
+ umount -t fuse.glusterfs -a
+
+ einfo "Killing remaining GlusterFS processes"
+ for PID in $(find /var/lib/glusterd/ -type f -name "*.pid" -exec cat {} \;); do
+ kill "${PID}"
+ done
+
+ eoutdent
+ eend $?
+}
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.1.0-parallel-build.patch b/sys-cluster/glusterfs/files/glusterfs-3.1.0-parallel-build.patch
new file mode 100644
index 000000000000..9320c12ea7b1
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.1.0-parallel-build.patch
@@ -0,0 +1,22 @@
+--- glusterfsd/src/Makefile.am
++++ glusterfsd/src/Makefile.am
+@@ -20,5 +20,6 @@ uninstall-local:
+ install-data-local:
+ $(INSTALL) -d -m 755 $(DESTDIR)$(localstatedir)/run
+ $(INSTALL) -d -m 755 $(DESTDIR)$(localstatedir)/log/glusterfs
++ $(INSTALL) -d -m 755 $(DESTDIR)$(sbindir)
+ rm -f $(DESTDIR)$(sbindir)/glusterfs
+ ln -s glusterfsd $(DESTDIR)$(sbindir)/glusterfs
+--- libglusterfs/src/Makefile.am
++++ libglusterfs/src/Makefile.am
+@@ -15,7 +15,9 @@
+ graph.lex.c: graph.l y.tab.h
+ $(LEX) -t $(srcdir)/graph.l > $@
+
+-y.tab.c y.tab.h: graph.y
++y.tab.c: y.tab.h
++
++y.tab.h: graph.y
+ $(YACC) -d $(srcdir)/graph.y
+
+ CLEANFILES = graph.lex.c y.tab.c y.tab.h
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.3.0-avoid-version.patch b/sys-cluster/glusterfs/files/glusterfs-3.3.0-avoid-version.patch
new file mode 100644
index 000000000000..2af2d502fc9e
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.3.0-avoid-version.patch
@@ -0,0 +1,431 @@
+diff --git a/rpc/rpc-transport/rdma/src/Makefile.am b/rpc/rpc-transport/rdma/src/Makefile.am
+index b4b940b..80f7a22 100644
+--- a/rpc/rpc-transport/rdma/src/Makefile.am
++++ b/rpc/rpc-transport/rdma/src/Makefile.am
+@@ -3,7 +3,7 @@
+ transport_LTLIBRARIES = rdma.la
+ transportdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/rpc-transport
+
+-rdma_la_LDFLAGS = -module -avoidversion
++rdma_la_LDFLAGS = -module -avoid-version -shared
+
+ rdma_la_SOURCES = rdma.c name.c
+ rdma_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
+diff --git a/rpc/rpc-transport/socket/src/Makefile.am b/rpc/rpc-transport/socket/src/Makefile.am
+index 2c918c7..b07db72 100644
+--- a/rpc/rpc-transport/socket/src/Makefile.am
++++ b/rpc/rpc-transport/socket/src/Makefile.am
+@@ -3,7 +3,7 @@ noinst_HEADERS = socket.h name.h
+ rpctransport_LTLIBRARIES = socket.la
+ rpctransportdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/rpc-transport
+
+-socket_la_LDFLAGS = -module -avoidversion
++socket_la_LDFLAGS = -module -avoid-version -shared
+
+ socket_la_SOURCES = socket.c name.c
+ socket_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/cluster/afr/src/Makefile.am b/xlators/cluster/afr/src/Makefile.am
+index 95db5dd..cdecea1 100644
+--- a/xlators/cluster/afr/src/Makefile.am
++++ b/xlators/cluster/afr/src/Makefile.am
+@@ -7,11 +7,11 @@ afr_common_source = afr-dir-read.c afr-dir-write.c afr-inode-read.c \
+ afr-self-heal-algorithm.c afr-lk-common.c afr-self-heald.c \
+ $(top_builddir)/xlators/lib/src/libxlator.c
+
+-afr_la_LDFLAGS = -module -avoidversion
++afr_la_LDFLAGS = -module -avoid-version -shared
+ afr_la_SOURCES = $(afr_common_source) afr.c
+ afr_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-pump_la_LDFLAGS = -module -avoidversion
++pump_la_LDFLAGS = -module -avoid-version -shared
+ pump_la_SOURCES = $(afr_common_source) pump.c
+ pump_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+diff --git a/xlators/cluster/dht/src/Makefile.am b/xlators/cluster/dht/src/Makefile.am
+index e35058d..127a023 100644
+--- a/xlators/cluster/dht/src/Makefile.am
++++ b/xlators/cluster/dht/src/Makefile.am
+@@ -12,13 +12,13 @@ dht_la_SOURCES = $(dht_common_source) dht.c
+ nufa_la_SOURCES = $(dht_common_source) nufa.c
+ switch_la_SOURCES = $(dht_common_source) switch.c
+
+-dht_la_LDFLAGS = -module -avoidversion
++dht_la_LDFLAGS = -module -avoid-version -shared
+ dht_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-nufa_la_LDFLAGS = -module -avoidversion
++nufa_la_LDFLAGS = -module -avoid-version -shared
+ nufa_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-switch_la_LDFLAGS = -module -avoidversion
++switch_la_LDFLAGS = -module -avoid-version -shared
+ switch_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+ noinst_HEADERS = dht-common.h dht-mem-types.h \
+diff --git a/xlators/cluster/stripe/src/Makefile.am b/xlators/cluster/stripe/src/Makefile.am
+index 8c48d34..18aba97 100644
+--- a/xlators/cluster/stripe/src/Makefile.am
++++ b/xlators/cluster/stripe/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = stripe.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/cluster
+
+-stripe_la_LDFLAGS = -module -avoidversion
++stripe_la_LDFLAGS = -module -avoid-version -shared
+
+ stripe_la_SOURCES = stripe.c stripe-helpers.c \
+ $(top_builddir)/xlators/lib/src/libxlator.c
+diff --git a/xlators/debug/error-gen/src/Makefile.am b/xlators/debug/error-gen/src/Makefile.am
+index df90803..cce10c0 100644
+--- a/xlators/debug/error-gen/src/Makefile.am
++++ b/xlators/debug/error-gen/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = error-gen.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/debug
+
+-error_gen_la_LDFLAGS = -module -avoidversion
++error_gen_la_LDFLAGS = -module -avoid-version -shared
+
+ error_gen_la_SOURCES = error-gen.c
+ error_gen_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/debug/io-stats/src/Makefile.am b/xlators/debug/io-stats/src/Makefile.am
+index b894e79..cff914a 100644
+--- a/xlators/debug/io-stats/src/Makefile.am
++++ b/xlators/debug/io-stats/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = io-stats.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/debug
+
+-io_stats_la_LDFLAGS = -module -avoidversion
++io_stats_la_LDFLAGS = -module -avoid-version -shared
+
+ io_stats_la_SOURCES = io-stats.c
+ io_stats_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/debug/trace/src/Makefile.am b/xlators/debug/trace/src/Makefile.am
+index 0f1679a..a0eb5a6 100644
+--- a/xlators/debug/trace/src/Makefile.am
++++ b/xlators/debug/trace/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = trace.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/debug
+
+-trace_la_LDFLAGS = -module -avoidversion
++trace_la_LDFLAGS = -module -avoid-version -shared
+
+ trace_la_SOURCES = trace.c
+ trace_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/encryption/rot-13/src/Makefile.am b/xlators/encryption/rot-13/src/Makefile.am
+index ba5e623..45573aa 100644
+--- a/xlators/encryption/rot-13/src/Makefile.am
++++ b/xlators/encryption/rot-13/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = rot-13.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/encryption
+
+-rot_13_la_LDFLAGS = -module -avoidversion
++rot_13_la_LDFLAGS = -module -avoid-version -shared
+
+ rot_13_la_SOURCES = rot-13.c
+ rot_13_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/index/src/Makefile.am b/xlators/features/index/src/Makefile.am
+index 5d037c7..c43c936 100644
+--- a/xlators/features/index/src/Makefile.am
++++ b/xlators/features/index/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = index.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-index_la_LDFLAGS = -module -avoidversion
++index_la_LDFLAGS = -module -avoid-version -shared
+
+ index_la_SOURCES = index.c
+ index_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/locks/src/Makefile.am b/xlators/features/locks/src/Makefile.am
+index e396768..5181e28 100644
+--- a/xlators/features/locks/src/Makefile.am
++++ b/xlators/features/locks/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = locks.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-locks_la_LDFLAGS = -module -avoidversion
++locks_la_LDFLAGS = -module -avoid-version -shared
+
+ locks_la_SOURCES = common.c posix.c entrylk.c inodelk.c reservelk.c \
+ clear.c
+diff --git a/xlators/features/mac-compat/src/Makefile.am b/xlators/features/mac-compat/src/Makefile.am
+index 915c13e..698b990 100644
+--- a/xlators/features/mac-compat/src/Makefile.am
++++ b/xlators/features/mac-compat/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = mac-compat.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-mac_compat_la_LDFLAGS = -module -avoidversion
++mac_compat_la_LDFLAGS = -module -avoid-version -shared
+
+ mac_compat_la_SOURCES = mac-compat.c
+ mac_compat_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/marker/src/Makefile.am b/xlators/features/marker/src/Makefile.am
+index 501586a..630ae96 100644
+--- a/xlators/features/marker/src/Makefile.am
++++ b/xlators/features/marker/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = marker.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-marker_la_LDFLAGS = -module -avoidversion
++marker_la_LDFLAGS = -module -avoid-version -shared
+
+ marker_la_SOURCES = marker.c marker-quota.c marker-quota-helper.c marker-common.c
+ marker_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/quiesce/src/Makefile.am b/xlators/features/quiesce/src/Makefile.am
+index e8ab4cb..4234269 100644
+--- a/xlators/features/quiesce/src/Makefile.am
++++ b/xlators/features/quiesce/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = quiesce.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-quiesce_la_LDFLAGS = -module -avoidversion
++quiesce_la_LDFLAGS = -module -avoid-version -shared
+
+ quiesce_la_SOURCES = quiesce.c
+ quiesce_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/quota/src/Makefile.am b/xlators/features/quota/src/Makefile.am
+index 4baa5f0..cd687bc 100644
+--- a/xlators/features/quota/src/Makefile.am
++++ b/xlators/features/quota/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = quota.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-quota_la_LDFLAGS = -module -avoidversion
++quota_la_LDFLAGS = -module -avoid-version -shared
+
+ quota_la_SOURCES = quota.c
+ quota_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/read-only/src/Makefile.am b/xlators/features/read-only/src/Makefile.am
+index 31ae4f3..45dcef5 100644
+--- a/xlators/features/read-only/src/Makefile.am
++++ b/xlators/features/read-only/src/Makefile.am
+@@ -4,12 +4,12 @@ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+ noinst_HEADERS = read-only-common.h
+
+-read_only_la_LDFLAGS = -module -avoidversion
++read_only_la_LDFLAGS = -module -avoid-version -shared
+
+ read_only_la_SOURCES = read-only.c read-only-common.c
+ read_only_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-worm_la_LDFLAGS = -module -avoidversion
++worm_la_LDFLAGS = -module -avoid-version -shared
+
+ worm_la_SOURCES = read-only-common.c worm.c
+ worm_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/mgmt/glusterd/src/Makefile.am b/xlators/mgmt/glusterd/src/Makefile.am
+index 485350b..7facc66 100644
+--- a/xlators/mgmt/glusterd/src/Makefile.am
++++ b/xlators/mgmt/glusterd/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = glusterd.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/mgmt
+ glusterd_la_CPPFLAGS = "-DFILTERDIR=\"$(libdir)/glusterfs/$(PACKAGE_VERSION)/filter\""
+-glusterd_la_LDFLAGS = -module -avoidversion $(LIBXML2_LIBS) -lcrypto
++glusterd_la_LDFLAGS = -module -avoid-version -shared
+ glusterd_la_SOURCES = glusterd.c glusterd-handler.c glusterd-sm.c \
+ glusterd-op-sm.c glusterd-utils.c glusterd-rpc-ops.c \
+ glusterd-store.c glusterd-handshake.c glusterd-pmap.c \
+@@ -12,7 +12,8 @@ glusterd_la_SOURCES = glusterd.c glusterd-handler.c glusterd-sm.c \
+
+ glusterd_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
+ $(top_builddir)/rpc/xdr/src/libgfxdr.la \
+- $(top_builddir)/rpc/rpc-lib/src/libgfrpc.la
++ $(top_builddir)/rpc/rpc-lib/src/libgfrpc.la \
++ $(LIBXML2_LIBS) -lcrypto
+
+ noinst_HEADERS = glusterd.h glusterd-utils.h glusterd-op-sm.h \
+ glusterd-sm.h glusterd-store.h glusterd-mem-types.h \
+diff --git a/xlators/nfs/server/src/Makefile.am b/xlators/nfs/server/src/Makefile.am
+index ef3b672..48cca34 100644
+--- a/xlators/nfs/server/src/Makefile.am
++++ b/xlators/nfs/server/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = server.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/nfs
+ nfsrpclibdir = $(top_srcdir)/rpc/rpc-lib/src
+-server_la_LDFLAGS = -module -avoidversion
++server_la_LDFLAGS = -module -avoid-version -shared
+ server_la_SOURCES = nfs.c nfs-common.c nfs-fops.c nfs-inodes.c \
+ nfs-generics.c mount3.c nfs3-fh.c nfs3.c nfs3-helpers.c nlm4.c \
+ nlmcbk_svc.c mount3udp_svc.c
+diff --git a/xlators/performance/io-cache/src/Makefile.am b/xlators/performance/io-cache/src/Makefile.am
+index 6dd270e..f066519 100644
+--- a/xlators/performance/io-cache/src/Makefile.am
++++ b/xlators/performance/io-cache/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = io-cache.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-io_cache_la_LDFLAGS = -module -avoidversion
++io_cache_la_LDFLAGS = -module -avoid-version -shared
+
+ io_cache_la_SOURCES = io-cache.c page.c ioc-inode.c
+ io_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/io-threads/src/Makefile.am b/xlators/performance/io-threads/src/Makefile.am
+index 72f9a80..2de6cbb 100644
+--- a/xlators/performance/io-threads/src/Makefile.am
++++ b/xlators/performance/io-threads/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = io-threads.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-io_threads_la_LDFLAGS = -module -avoidversion
++io_threads_la_LDFLAGS = -module -avoid-version -shared
+
+ io_threads_la_SOURCES = io-threads.c
+ io_threads_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/md-cache/src/Makefile.am b/xlators/performance/md-cache/src/Makefile.am
+index 150e724..dc6fb54 100644
+--- a/xlators/performance/md-cache/src/Makefile.am
++++ b/xlators/performance/md-cache/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = md-cache.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-md_cache_la_LDFLAGS = -module -avoidversion
++md_cache_la_LDFLAGS = -module -avoid-version -shared
+
+ md_cache_la_SOURCES = md-cache.c
+ md_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/quick-read/src/Makefile.am b/xlators/performance/quick-read/src/Makefile.am
+index db917f8..1da51b2 100644
+--- a/xlators/performance/quick-read/src/Makefile.am
++++ b/xlators/performance/quick-read/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = quick-read.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-quick_read_la_LDFLAGS = -module -avoidversion
++quick_read_la_LDFLAGS = -module -avoid-version -shared
+
+ quick_read_la_SOURCES = quick-read.c
+ quick_read_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/read-ahead/src/Makefile.am b/xlators/performance/read-ahead/src/Makefile.am
+index b46020a..1e17a3a 100644
+--- a/xlators/performance/read-ahead/src/Makefile.am
++++ b/xlators/performance/read-ahead/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = read-ahead.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-read_ahead_la_LDFLAGS = -module -avoidversion
++read_ahead_la_LDFLAGS = -module -avoid-version -shared
+
+ read_ahead_la_SOURCES = read-ahead.c page.c
+ read_ahead_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/symlink-cache/src/Makefile.am b/xlators/performance/symlink-cache/src/Makefile.am
+index 06e85fc..2f893ce 100644
+--- a/xlators/performance/symlink-cache/src/Makefile.am
++++ b/xlators/performance/symlink-cache/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = symlink-cache.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/testing/performance
+
+-symlink_cache_la_LDFLAGS = -module -avoidversion
++symlink_cache_la_LDFLAGS = -module -avoid-version -shared
+
+ symlink_cache_la_SOURCES = symlink-cache.c
+ symlink_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/write-behind/src/Makefile.am b/xlators/performance/write-behind/src/Makefile.am
+index a5ebc90..838d6da 100644
+--- a/xlators/performance/write-behind/src/Makefile.am
++++ b/xlators/performance/write-behind/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = write-behind.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-write_behind_la_LDFLAGS = -module -avoidversion
++write_behind_la_LDFLAGS = -module -avoid-version -shared
+
+ write_behind_la_SOURCES = write-behind.c
+ write_behind_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/protocol/auth/addr/src/Makefile.am b/xlators/protocol/auth/addr/src/Makefile.am
+index f09d1c5..c77fce3 100644
+--- a/xlators/protocol/auth/addr/src/Makefile.am
++++ b/xlators/protocol/auth/addr/src/Makefile.am
+@@ -1,7 +1,7 @@
+ auth_LTLIBRARIES = addr.la
+ authdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/auth
+
+-addr_la_LDFLAGS = -module -avoidversion
++addr_la_LDFLAGS = -module -avoid-version -shared
+
+ addr_la_SOURCES = addr.c
+ addr_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/protocol/auth/login/src/Makefile.am b/xlators/protocol/auth/login/src/Makefile.am
+index b4719d1..5a5db4d 100644
+--- a/xlators/protocol/auth/login/src/Makefile.am
++++ b/xlators/protocol/auth/login/src/Makefile.am
+@@ -1,7 +1,7 @@
+ auth_LTLIBRARIES = login.la
+ authdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/auth
+
+-login_la_LDFLAGS = -module -avoidversion
++login_la_LDFLAGS = -module -avoid-version -shared
+
+ login_la_SOURCES = login.c
+ login_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/protocol/client/src/Makefile.am b/xlators/protocol/client/src/Makefile.am
+index 29c6e9d..19d2ed5 100644
+--- a/xlators/protocol/client/src/Makefile.am
++++ b/xlators/protocol/client/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = client.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/protocol
+
+-client_la_LDFLAGS = -module -avoidversion
++client_la_LDFLAGS = -module -avoid-version -shared
+
+ client_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
+ $(top_builddir)/rpc/rpc-lib/src/libgfrpc.la \
+diff --git a/xlators/protocol/server/src/Makefile.am b/xlators/protocol/server/src/Makefile.am
+index 0df5894..6eae10d 100644
+--- a/xlators/protocol/server/src/Makefile.am
++++ b/xlators/protocol/server/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = server.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/protocol
+
+-server_la_LDFLAGS = -module -avoidversion
++server_la_LDFLAGS = -module -avoid-version -shared
+
+ server_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
+ $(top_builddir)/rpc/rpc-lib/src/libgfrpc.la \
+diff --git a/xlators/storage/posix/src/Makefile.am b/xlators/storage/posix/src/Makefile.am
+index 408dcb8..3f6a4b6 100644
+--- a/xlators/storage/posix/src/Makefile.am
++++ b/xlators/storage/posix/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = posix.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/storage
+
+-posix_la_LDFLAGS = -module -avoidversion
++posix_la_LDFLAGS = -module -avoid-version -shared
+
+ posix_la_SOURCES = posix.c posix-helpers.c posix-handle.c
+ posix_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/system/posix-acl/src/Makefile.am b/xlators/system/posix-acl/src/Makefile.am
+index c095569..b799eb9 100644
+--- a/xlators/system/posix-acl/src/Makefile.am
++++ b/xlators/system/posix-acl/src/Makefile.am
+@@ -1,6 +1,6 @@
+ xlator_LTLIBRARIES = posix-acl.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/system
+-posix_acl_la_LDFLAGS = -module -avoidversion
++posix_acl_la_LDFLAGS = -module -avoid-version -shared
+ posix_acl_la_SOURCES = posix-acl.c posix-acl-xattr.c
+ posix_acl_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.3.0-docdir.patch b/sys-cluster/glusterfs/files/glusterfs-3.3.0-docdir.patch
new file mode 100644
index 000000000000..83f3043d4ef5
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.3.0-docdir.patch
@@ -0,0 +1,26 @@
+From 6a17bb8523c4c7810bf7797371df22cfb259f7a7 Mon Sep 17 00:00:00 2001
+From: MATSUU Takuto <matsuu@gentoo.org>
+Date: Sat, 16 May 2009 07:01:53 +0900
+Subject: [PATCH] Use the standard autoconf $docdir variable.
+
+--- a/extras/Makefile.am
++++ b/extras/Makefile.am
+@@ -1,6 +1,5 @@
+
+-docdir = $(datadir)/doc/glusterfs/
+-EditorModedir = $(docdir)/
++EditorModedir = $(docdir)
+ EditorMode_DATA = glusterfs-mode.el glusterfs.vim
+
+ SUBDIRS = init.d benchmarking
+--- a/extras/benchmarking/Makefile.am
++++ b/extras/benchmarking/Makefile.am
+@@ -1,7 +1,5 @@
+
+-docdir = $(datadir)/doc/$(PACKAGE_NAME)/benchmarking
+-
+-benchmarkingdir = $(docdir)
++benchmarkingdir = $(docdir)/benchmarking
+
+ benchmarking_DATA = rdd.c glfs-bm.c README launch-script.sh local-script.sh
+
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.3.0-parallel-build.patch b/sys-cluster/glusterfs/files/glusterfs-3.3.0-parallel-build.patch
new file mode 100644
index 000000000000..ab3a3d1547ca
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.3.0-parallel-build.patch
@@ -0,0 +1,20 @@
+--- a/glusterfsd/src/Makefile.am
++++ b/glusterfsd/src/Makefile.am
+@@ -25,6 +25,7 @@
+ install-data-local:
+ $(INSTALL) -d -m 755 $(DESTDIR)$(localstatedir)/run
+ $(INSTALL) -d -m 755 $(DESTDIR)$(localstatedir)/log/glusterfs
++ $(INSTALL) -d -m 755 $(DESTDIR)$(sbindir)
+ rm -f $(DESTDIR)$(sbindir)/glusterfs
+ rm -f $(DESTDIR)$(sbindir)/glusterd
+ ln -s glusterfsd $(DESTDIR)$(sbindir)/glusterfs
+--- a/libglusterfs/src/Makefile.am
++++ b/libglusterfs/src/Makefile.am
+@@ -43,6 +43,7 @@
+ graph.lex.c: graph.l y.tab.h
+ $(LEX) -t $(srcdir)/graph.l > $@
+
++y.tab.c: y.tab.h
+ y.tab.h: graph.y
+ $(YACC) -d $(srcdir)/graph.y
+
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.3.0-silent_rules.patch b/sys-cluster/glusterfs/files/glusterfs-3.3.0-silent_rules.patch
new file mode 100644
index 000000000000..d9e25494b64c
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.3.0-silent_rules.patch
@@ -0,0 +1,25 @@
+diff --git a/configure.ac b/configure.ac
+index 4551fcf..a30c62e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -19,20 +19,6 @@ AC_INIT([glusterfs],[3.3.0],[gluster-users@gluster.org])
+
+ AM_INIT_AUTOMAKE
+
+-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)])
+-
+-if make --help 2>&1 | grep -q no-print-directory; then
+- AM_MAKEFLAGS="$AM_MAKEFLAGS --no-print-directory";
+-fi
+-
+-if make --help 2>&1 | grep -q quiet; then
+- AM_MAKEFLAGS="$AM_MAKEFLAGS --quiet"
+-fi
+-
+-if libtool --help 2>&1 | grep -q quiet; then
+- AM_LIBTOOLFLAGS="--quiet";
+-fi
+-
+ AM_CONFIG_HEADER([config.h])
+
+ AC_CONFIG_FILES([Makefile
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.4.0-build-shared-only.patch b/sys-cluster/glusterfs/files/glusterfs-3.4.0-build-shared-only.patch
new file mode 100644
index 000000000000..38afa6c4f387
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.4.0-build-shared-only.patch
@@ -0,0 +1,505 @@
+From 96dfc056d9525dd102bd78dc2f25fa51e00fbab5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tiziano=20M=C3=BCller?= <tm@dev-zero.ch>
+Date: Fri, 26 Jul 2013 10:28:25 +0200
+Subject: [PATCH 2/2] Build shared plugins only.
+
+---
+ rpc/rpc-transport/rdma/src/Makefile.am | 2 +-
+ rpc/rpc-transport/socket/src/Makefile.am | 2 +-
+ xlators/cluster/afr/src/Makefile.am | 4 ++--
+ xlators/cluster/dht/src/Makefile.am | 6 +++---
+ xlators/cluster/stripe/src/Makefile.am | 2 +-
+ xlators/debug/error-gen/src/Makefile.am | 2 +-
+ xlators/debug/io-stats/src/Makefile.am | 2 +-
+ xlators/debug/trace/src/Makefile.am | 2 +-
+ xlators/encryption/rot-13/src/Makefile.am | 2 +-
+ xlators/features/index/src/Makefile.am | 2 +-
+ xlators/features/locks/src/Makefile.am | 2 +-
+ xlators/features/mac-compat/src/Makefile.am | 2 +-
+ xlators/features/marker/src/Makefile.am | 2 +-
+ xlators/features/quiesce/src/Makefile.am | 2 +-
+ xlators/features/quota/src/Makefile.am | 2 +-
+ xlators/features/read-only/src/Makefile.am | 4 ++--
+ xlators/mgmt/glusterd/src/Makefile.am | 2 +-
+ xlators/mount/fuse/src/Makefile.am | 2 +-
+ xlators/nfs/server/src/Makefile.am | 2 +-
+ xlators/performance/io-cache/src/Makefile.am | 2 +-
+ xlators/performance/io-threads/src/Makefile.am | 2 +-
+ xlators/performance/md-cache/src/Makefile.am | 2 +-
+ xlators/performance/open-behind/src/Makefile.am | 2 +-
+ xlators/performance/quick-read/src/Makefile.am | 2 +-
+ xlators/performance/read-ahead/src/Makefile.am | 2 +-
+ xlators/performance/symlink-cache/src/Makefile.am | 2 +-
+ xlators/performance/write-behind/src/Makefile.am | 2 +-
+ xlators/protocol/auth/addr/src/Makefile.am | 2 +-
+ xlators/protocol/auth/login/src/Makefile.am | 2 +-
+ xlators/protocol/client/src/Makefile.am | 2 +-
+ xlators/protocol/server/src/Makefile.am | 2 +-
+ xlators/storage/bd_map/src/Makefile.am | 2 +-
+ xlators/storage/posix/src/Makefile.am | 2 +-
+ xlators/system/posix-acl/src/Makefile.am | 2 +-
+ 34 files changed, 38 insertions(+), 38 deletions(-)
+
+diff --git a/rpc/rpc-transport/rdma/src/Makefile.am b/rpc/rpc-transport/rdma/src/Makefile.am
+index 2bf7cf2..8e52d70 100644
+--- a/rpc/rpc-transport/rdma/src/Makefile.am
++++ b/rpc/rpc-transport/rdma/src/Makefile.am
+@@ -3,7 +3,7 @@
+ transport_LTLIBRARIES = rdma.la
+ transportdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/rpc-transport
+
+-rdma_la_LDFLAGS = -module -avoid-version
++rdma_la_LDFLAGS = -module -avoid-version -shared
+
+ rdma_la_SOURCES = rdma.c name.c
+ rdma_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
+diff --git a/rpc/rpc-transport/socket/src/Makefile.am b/rpc/rpc-transport/socket/src/Makefile.am
+index 71e6ed6..b481fe9 100644
+--- a/rpc/rpc-transport/socket/src/Makefile.am
++++ b/rpc/rpc-transport/socket/src/Makefile.am
+@@ -3,7 +3,7 @@ noinst_HEADERS = socket.h name.h
+ rpctransport_LTLIBRARIES = socket.la
+ rpctransportdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/rpc-transport
+
+-socket_la_LDFLAGS = -module -avoid-version
++socket_la_LDFLAGS = -module -avoid-version -shared
+
+ socket_la_SOURCES = socket.c name.c
+ socket_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la -lssl
+diff --git a/xlators/cluster/afr/src/Makefile.am b/xlators/cluster/afr/src/Makefile.am
+index 35d18a6..959fea8 100644
+--- a/xlators/cluster/afr/src/Makefile.am
++++ b/xlators/cluster/afr/src/Makefile.am
+@@ -7,11 +7,11 @@ afr_common_source = afr-dir-read.c afr-dir-write.c afr-inode-read.c \
+ afr-self-heal-algorithm.c afr-lk-common.c afr-self-heald.c \
+ $(top_builddir)/xlators/lib/src/libxlator.c
+
+-afr_la_LDFLAGS = -module -avoid-version
++afr_la_LDFLAGS = -module -avoid-version -shared
+ afr_la_SOURCES = $(afr_common_source) afr.c
+ afr_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-pump_la_LDFLAGS = -module -avoid-version
++pump_la_LDFLAGS = -module -avoid-version -shared
+ pump_la_SOURCES = $(afr_common_source) pump.c
+ pump_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+diff --git a/xlators/cluster/dht/src/Makefile.am b/xlators/cluster/dht/src/Makefile.am
+index 5324d21..d5f36ea 100644
+--- a/xlators/cluster/dht/src/Makefile.am
++++ b/xlators/cluster/dht/src/Makefile.am
+@@ -12,13 +12,13 @@ dht_la_SOURCES = $(dht_common_source) dht.c
+ nufa_la_SOURCES = $(dht_common_source) nufa.c
+ switch_la_SOURCES = $(dht_common_source) switch.c
+
+-dht_la_LDFLAGS = -module -avoid-version
++dht_la_LDFLAGS = -module -avoid-version -shared
+ dht_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-nufa_la_LDFLAGS = -module -avoid-version
++nufa_la_LDFLAGS = -module -avoid-version -shared
+ nufa_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-switch_la_LDFLAGS = -module -avoid-version
++switch_la_LDFLAGS = -module -avoid-version -shared
+ switch_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+ noinst_HEADERS = dht-common.h dht-mem-types.h \
+diff --git a/xlators/cluster/stripe/src/Makefile.am b/xlators/cluster/stripe/src/Makefile.am
+index 2d15142..6989de9 100644
+--- a/xlators/cluster/stripe/src/Makefile.am
++++ b/xlators/cluster/stripe/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = stripe.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/cluster
+
+-stripe_la_LDFLAGS = -module -avoid-version
++stripe_la_LDFLAGS = -module -avoid-version -shared
+
+ stripe_la_SOURCES = stripe.c stripe-helpers.c \
+ $(top_builddir)/xlators/lib/src/libxlator.c
+diff --git a/xlators/debug/error-gen/src/Makefile.am b/xlators/debug/error-gen/src/Makefile.am
+index 5075c59..a7681c4 100644
+--- a/xlators/debug/error-gen/src/Makefile.am
++++ b/xlators/debug/error-gen/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = error-gen.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/debug
+
+-error_gen_la_LDFLAGS = -module -avoid-version
++error_gen_la_LDFLAGS = -module -avoid-version -shared
+
+ error_gen_la_SOURCES = error-gen.c
+ error_gen_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/debug/io-stats/src/Makefile.am b/xlators/debug/io-stats/src/Makefile.am
+index 332d790..bf62017 100644
+--- a/xlators/debug/io-stats/src/Makefile.am
++++ b/xlators/debug/io-stats/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = io-stats.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/debug
+
+-io_stats_la_LDFLAGS = -module -avoid-version
++io_stats_la_LDFLAGS = -module -avoid-version -shared
+
+ io_stats_la_SOURCES = io-stats.c
+ io_stats_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/debug/trace/src/Makefile.am b/xlators/debug/trace/src/Makefile.am
+index 7b2597b..2030ed4 100644
+--- a/xlators/debug/trace/src/Makefile.am
++++ b/xlators/debug/trace/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = trace.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/debug
+
+-trace_la_LDFLAGS = -module -avoid-version
++trace_la_LDFLAGS = -module -avoid-version -shared
+
+ trace_la_SOURCES = trace.c
+ trace_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/encryption/rot-13/src/Makefile.am b/xlators/encryption/rot-13/src/Makefile.am
+index 94e8d18..d13894e 100644
+--- a/xlators/encryption/rot-13/src/Makefile.am
++++ b/xlators/encryption/rot-13/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = rot-13.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/encryption
+
+-rot_13_la_LDFLAGS = -module -avoid-version
++rot_13_la_LDFLAGS = -module -avoid-version -shared
+
+ rot_13_la_SOURCES = rot-13.c
+ rot_13_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/index/src/Makefile.am b/xlators/features/index/src/Makefile.am
+index 73bb897..5519798 100644
+--- a/xlators/features/index/src/Makefile.am
++++ b/xlators/features/index/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = index.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-index_la_LDFLAGS = -module -avoid-version
++index_la_LDFLAGS = -module -avoid-version -shared
+
+ index_la_SOURCES = index.c
+ index_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/locks/src/Makefile.am b/xlators/features/locks/src/Makefile.am
+index 8908c1f..1a17a0f 100644
+--- a/xlators/features/locks/src/Makefile.am
++++ b/xlators/features/locks/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = locks.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-locks_la_LDFLAGS = -module -avoid-version
++locks_la_LDFLAGS = -module -avoid-version -shared
+
+ locks_la_SOURCES = common.c posix.c entrylk.c inodelk.c reservelk.c \
+ clear.c
+diff --git a/xlators/features/mac-compat/src/Makefile.am b/xlators/features/mac-compat/src/Makefile.am
+index f8567ed..a283eb0 100644
+--- a/xlators/features/mac-compat/src/Makefile.am
++++ b/xlators/features/mac-compat/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = mac-compat.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-mac_compat_la_LDFLAGS = -module -avoid-version
++mac_compat_la_LDFLAGS = -module -avoid-version -shared
+
+ mac_compat_la_SOURCES = mac-compat.c
+ mac_compat_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/marker/src/Makefile.am b/xlators/features/marker/src/Makefile.am
+index a7c6764..477fe0f 100644
+--- a/xlators/features/marker/src/Makefile.am
++++ b/xlators/features/marker/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = marker.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-marker_la_LDFLAGS = -module -avoid-version
++marker_la_LDFLAGS = -module -avoid-version -shared
+
+ marker_la_SOURCES = marker.c marker-quota.c marker-quota-helper.c marker-common.c
+ marker_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/quiesce/src/Makefile.am b/xlators/features/quiesce/src/Makefile.am
+index 15e4662..b3cd9d1 100644
+--- a/xlators/features/quiesce/src/Makefile.am
++++ b/xlators/features/quiesce/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = quiesce.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-quiesce_la_LDFLAGS = -module -avoid-version
++quiesce_la_LDFLAGS = -module -avoid-version -shared
+
+ quiesce_la_SOURCES = quiesce.c
+ quiesce_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/quota/src/Makefile.am b/xlators/features/quota/src/Makefile.am
+index 9546f42..4cfa983 100644
+--- a/xlators/features/quota/src/Makefile.am
++++ b/xlators/features/quota/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = quota.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-quota_la_LDFLAGS = -module -avoid-version
++quota_la_LDFLAGS = -module -avoid-version -shared
+
+ quota_la_SOURCES = quota.c
+ quota_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/read-only/src/Makefile.am b/xlators/features/read-only/src/Makefile.am
+index 4c14621..a3f79fa 100644
+--- a/xlators/features/read-only/src/Makefile.am
++++ b/xlators/features/read-only/src/Makefile.am
+@@ -4,12 +4,12 @@ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+ noinst_HEADERS = read-only-common.h
+
+-read_only_la_LDFLAGS = -module -avoid-version
++read_only_la_LDFLAGS = -module -avoid-version -shared
+
+ read_only_la_SOURCES = read-only.c read-only-common.c
+ read_only_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-worm_la_LDFLAGS = -module -avoid-version
++worm_la_LDFLAGS = -module -avoid-version -shared
+
+ worm_la_SOURCES = read-only-common.c worm.c
+ worm_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/mgmt/glusterd/src/Makefile.am b/xlators/mgmt/glusterd/src/Makefile.am
+index df15453..d03d653 100644
+--- a/xlators/mgmt/glusterd/src/Makefile.am
++++ b/xlators/mgmt/glusterd/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = glusterd.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/mgmt
+ glusterd_la_CPPFLAGS = $(AM_CPPFLAGS) "-DFILTERDIR=\"$(libdir)/glusterfs/$(PACKAGE_VERSION)/filter\""
+-glusterd_la_LDFLAGS = -module -avoid-version
++glusterd_la_LDFLAGS = -module -avoid-version -shared
+ if ENABLE_BD_XLATOR
+ glusterd_la_LDFLAGS += -llvm2app
+ endif
+diff --git a/xlators/mount/fuse/src/Makefile.am b/xlators/mount/fuse/src/Makefile.am
+index 653121d..3f221d8 100644
+--- a/xlators/mount/fuse/src/Makefile.am
++++ b/xlators/mount/fuse/src/Makefile.am
+@@ -24,7 +24,7 @@ endif
+ fuse_la_SOURCES = fuse-helpers.c fuse-resolve.c fuse-bridge.c \
+ $(CONTRIBDIR)/fuse-lib/misc.c $(mount_source)
+
+-fuse_la_LDFLAGS = -module -avoid-version
++fuse_la_LDFLAGS = -module -avoid-version -shared
+ fuse_la_LIBADD = @GF_FUSE_LDADD@
+
+ AM_CPPFLAGS = $(GF_CPPFLAGS) \
+diff --git a/xlators/nfs/server/src/Makefile.am b/xlators/nfs/server/src/Makefile.am
+index 2795a93..2614822 100644
+--- a/xlators/nfs/server/src/Makefile.am
++++ b/xlators/nfs/server/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = server.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/nfs
+ nfsrpclibdir = $(top_srcdir)/rpc/rpc-lib/src
+-server_la_LDFLAGS = -module -avoid-version
++server_la_LDFLAGS = -module -avoid-version -shared
+ server_la_SOURCES = nfs.c nfs-common.c nfs-fops.c nfs-inodes.c \
+ nfs-generics.c mount3.c nfs3-fh.c nfs3.c nfs3-helpers.c nlm4.c \
+ nlmcbk_svc.c mount3udp_svc.c acl3.c
+diff --git a/xlators/performance/io-cache/src/Makefile.am b/xlators/performance/io-cache/src/Makefile.am
+index 155be99..ba0738c 100644
+--- a/xlators/performance/io-cache/src/Makefile.am
++++ b/xlators/performance/io-cache/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = io-cache.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-io_cache_la_LDFLAGS = -module -avoid-version
++io_cache_la_LDFLAGS = -module -avoid-version -shared
+
+ io_cache_la_SOURCES = io-cache.c page.c ioc-inode.c
+ io_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/io-threads/src/Makefile.am b/xlators/performance/io-threads/src/Makefile.am
+index d63042e..aba1fdb 100644
+--- a/xlators/performance/io-threads/src/Makefile.am
++++ b/xlators/performance/io-threads/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = io-threads.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-io_threads_la_LDFLAGS = -module -avoid-version
++io_threads_la_LDFLAGS = -module -avoid-version -shared
+
+ io_threads_la_SOURCES = io-threads.c
+ io_threads_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/md-cache/src/Makefile.am b/xlators/performance/md-cache/src/Makefile.am
+index 8c9f5a8..4d714fa 100644
+--- a/xlators/performance/md-cache/src/Makefile.am
++++ b/xlators/performance/md-cache/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = md-cache.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-md_cache_la_LDFLAGS = -module -avoid-version
++md_cache_la_LDFLAGS = -module -avoid-version -shared
+
+ md_cache_la_SOURCES = md-cache.c
+ md_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/open-behind/src/Makefile.am b/xlators/performance/open-behind/src/Makefile.am
+index 1252857..568434a 100644
+--- a/xlators/performance/open-behind/src/Makefile.am
++++ b/xlators/performance/open-behind/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = open-behind.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-open_behind_la_LDFLAGS = -module -avoid-version
++open_behind_la_LDFLAGS = -module -avoid-version -shared
+
+ open_behind_la_SOURCES = open-behind.c
+ open_behind_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/quick-read/src/Makefile.am b/xlators/performance/quick-read/src/Makefile.am
+index 4906f40..8d42116 100644
+--- a/xlators/performance/quick-read/src/Makefile.am
++++ b/xlators/performance/quick-read/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = quick-read.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-quick_read_la_LDFLAGS = -module -avoid-version
++quick_read_la_LDFLAGS = -module -avoid-version -shared
+
+ quick_read_la_SOURCES = quick-read.c
+ quick_read_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/read-ahead/src/Makefile.am b/xlators/performance/read-ahead/src/Makefile.am
+index be80ae7..eae0540 100644
+--- a/xlators/performance/read-ahead/src/Makefile.am
++++ b/xlators/performance/read-ahead/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = read-ahead.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-read_ahead_la_LDFLAGS = -module -avoid-version
++read_ahead_la_LDFLAGS = -module -avoid-version -shared
+
+ read_ahead_la_SOURCES = read-ahead.c page.c
+ read_ahead_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/symlink-cache/src/Makefile.am b/xlators/performance/symlink-cache/src/Makefile.am
+index 4091c32..0d600d6 100644
+--- a/xlators/performance/symlink-cache/src/Makefile.am
++++ b/xlators/performance/symlink-cache/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = symlink-cache.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/testing/performance
+
+-symlink_cache_la_LDFLAGS = -module -avoid-version
++symlink_cache_la_LDFLAGS = -module -avoid-version -shared
+
+ symlink_cache_la_SOURCES = symlink-cache.c
+ symlink_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/write-behind/src/Makefile.am b/xlators/performance/write-behind/src/Makefile.am
+index 6c829d8..746e5c1 100644
+--- a/xlators/performance/write-behind/src/Makefile.am
++++ b/xlators/performance/write-behind/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = write-behind.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-write_behind_la_LDFLAGS = -module -avoid-version
++write_behind_la_LDFLAGS = -module -avoid-version -shared
+
+ write_behind_la_SOURCES = write-behind.c
+ write_behind_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/protocol/auth/addr/src/Makefile.am b/xlators/protocol/auth/addr/src/Makefile.am
+index 426e7c2..fa7234d 100644
+--- a/xlators/protocol/auth/addr/src/Makefile.am
++++ b/xlators/protocol/auth/addr/src/Makefile.am
+@@ -1,7 +1,7 @@
+ auth_LTLIBRARIES = addr.la
+ authdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/auth
+
+-addr_la_LDFLAGS = -module -avoid-version
++addr_la_LDFLAGS = -module -avoid-version -shared
+
+ addr_la_SOURCES = addr.c
+ addr_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/protocol/auth/login/src/Makefile.am b/xlators/protocol/auth/login/src/Makefile.am
+index d84db91..022739d 100644
+--- a/xlators/protocol/auth/login/src/Makefile.am
++++ b/xlators/protocol/auth/login/src/Makefile.am
+@@ -1,7 +1,7 @@
+ auth_LTLIBRARIES = login.la
+ authdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/auth
+
+-login_la_LDFLAGS = -module -avoid-version
++login_la_LDFLAGS = -module -avoid-version -shared
+
+ login_la_SOURCES = login.c
+ login_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/protocol/client/src/Makefile.am b/xlators/protocol/client/src/Makefile.am
+index cf89d42..8f2612c 100644
+--- a/xlators/protocol/client/src/Makefile.am
++++ b/xlators/protocol/client/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = client.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/protocol
+
+-client_la_LDFLAGS = -module -avoid-version
++client_la_LDFLAGS = -module -avoid-version -shared
+
+ client_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
+ $(top_builddir)/rpc/rpc-lib/src/libgfrpc.la \
+diff --git a/xlators/protocol/server/src/Makefile.am b/xlators/protocol/server/src/Makefile.am
+index 25d6706..15a2548 100644
+--- a/xlators/protocol/server/src/Makefile.am
++++ b/xlators/protocol/server/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = server.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/protocol
+
+-server_la_LDFLAGS = -module -avoid-version
++server_la_LDFLAGS = -module -avoid-version -shared
+
+ server_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
+ $(top_builddir)/rpc/rpc-lib/src/libgfrpc.la \
+diff --git a/xlators/storage/bd_map/src/Makefile.am b/xlators/storage/bd_map/src/Makefile.am
+index 91412e9..5c59626 100644
+--- a/xlators/storage/bd_map/src/Makefile.am
++++ b/xlators/storage/bd_map/src/Makefile.am
+@@ -3,7 +3,7 @@ if ENABLE_BD_XLATOR
+ xlator_LTLIBRARIES = bd_map.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/storage
+
+-bd_map_la_LDFLAGS = -module -avoid-version
++bd_map_la_LDFLAGS = -module -avoid-version -shared
+ LIBBD = -llvm2app -lrt
+ bd_map_la_SOURCES = bd_map.c bd_map_help.c
+ bd_map_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la $(LIBBD)
+diff --git a/xlators/storage/posix/src/Makefile.am b/xlators/storage/posix/src/Makefile.am
+index 88efcc7..79ca903 100644
+--- a/xlators/storage/posix/src/Makefile.am
++++ b/xlators/storage/posix/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = posix.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/storage
+
+-posix_la_LDFLAGS = -module -avoid-version
++posix_la_LDFLAGS = -module -avoid-version -shared
+
+ posix_la_SOURCES = posix.c posix-helpers.c posix-handle.c posix-aio.c
+ posix_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la $(LIBAIO)
+diff --git a/xlators/system/posix-acl/src/Makefile.am b/xlators/system/posix-acl/src/Makefile.am
+index 11c939f..561c52d 100644
+--- a/xlators/system/posix-acl/src/Makefile.am
++++ b/xlators/system/posix-acl/src/Makefile.am
+@@ -1,6 +1,6 @@
+ xlator_LTLIBRARIES = posix-acl.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/system
+-posix_acl_la_LDFLAGS = -module -avoid-version
++posix_acl_la_LDFLAGS = -module -avoid-version -shared
+ posix_acl_la_SOURCES = posix-acl.c posix-acl-xattr.c
+ posix_acl_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+--
+1.8.2.1
+
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.4.0-nfs-exit-when-all-volumes-are-disabled.patch b/sys-cluster/glusterfs/files/glusterfs-3.4.0-nfs-exit-when-all-volumes-are-disabled.patch
new file mode 100644
index 000000000000..5a1bdec89e62
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.4.0-nfs-exit-when-all-volumes-are-disabled.patch
@@ -0,0 +1,42 @@
+From fdc83183263e04bee56672e9d9922cc9457146cb Mon Sep 17 00:00:00 2001
+From: Rajesh Amaravathi <rajesh@redhat.com>
+Date: Fri, 21 Jun 2013 14:58:23 +0530
+Subject: [PATCH 1/1] nfs: exit when all volumes are disabled
+
+Instead of triggering 4-5 error logs, when nfs is
+disabled for all volumes, exit the process.
+
+Change-Id: Ib286f143c4f74ba22f502aca0e7dcd0907db6563
+BUG: 976750
+Signed-off-by: Rajesh Amaravathi <rajesh@redhat.com>
+Reviewed-on: http://review.gluster.org/5245
+Reviewed-by: Santosh Pradhan <spradhan@redhat.com>
+Tested-by: Gluster Build System <jenkins@build.gluster.com>
+Reviewed-by: Vijay Bellur <vbellur@redhat.com>
+---
+ xlators/nfs/server/src/nfs.c | 9 +++++----
+ 1 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/xlators/nfs/server/src/nfs.c b/xlators/nfs/server/src/nfs.c
+index 6cd0594..c3a76c6 100644
+--- a/xlators/nfs/server/src/nfs.c
++++ b/xlators/nfs/server/src/nfs.c
+@@ -533,10 +533,11 @@ nfs_init_state (xlator_t *this)
+ if (!this)
+ return NULL;
+
+- if ((!this->children) || (!this->children->xlator)) {
+- gf_log (GF_NFS, GF_LOG_ERROR, "nfs must have at least one"
+- " child subvolume");
+- return NULL;
++ if (!this->children) {
++ gf_log (GF_NFS, GF_LOG_INFO,
++ "NFS is manually disabled: Exiting");
++ /* Nothing for nfs process to do, exit cleanly */
++ kill (getpid (), SIGTERM);
+ }
+
+ nfs = GF_CALLOC (1, sizeof (*nfs), gf_nfs_mt_nfs_state);
+--
+1.7.4.1
+
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.4.0-silent_rules.patch b/sys-cluster/glusterfs/files/glusterfs-3.4.0-silent_rules.patch
new file mode 100644
index 000000000000..1b79e0d079e4
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.4.0-silent_rules.patch
@@ -0,0 +1,23 @@
+--- configure.ac 2013-07-12 19:43:26.000000000 +0200
++++ configure.ac2 2013-07-25 13:58:48.294091861 +0200
+@@ -10,20 +10,6 @@
+
+ AM_INIT_AUTOMAKE
+
+-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)])
+-
+-if make --help 2>&1 | grep -q no-print-directory; then
+- AM_MAKEFLAGS="$AM_MAKEFLAGS --no-print-directory";
+-fi
+-
+-if make --help 2>&1 | grep -q quiet; then
+- AM_MAKEFLAGS="$AM_MAKEFLAGS --quiet"
+-fi
+-
+-if libtool --help 2>&1 | grep -q quiet; then
+- AM_LIBTOOLFLAGS="--quiet";
+-fi
+-
+ AC_CONFIG_HEADERS([config.h])
+
+ AC_CONFIG_FILES([Makefile
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.4.4-cluster-dht-Don-t-do-extra-unref-in-dht-migration-ch.patch b/sys-cluster/glusterfs/files/glusterfs-3.4.4-cluster-dht-Don-t-do-extra-unref-in-dht-migration-ch.patch
new file mode 100644
index 000000000000..c26085a9dfe7
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.4.4-cluster-dht-Don-t-do-extra-unref-in-dht-migration-ch.patch
@@ -0,0 +1,48 @@
+From 2b789331dc933b186360fc8cbffb06289ee60ee9 Mon Sep 17 00:00:00 2001
+From: Vijay Bellur <vbellur@redhat.com>
+Date: Tue, 10 Jun 2014 22:21:28 +0530
+Subject: [PATCH 1/3] cluster/dht: Don't do extra unref in dht-migration checks
+
+Problem:
+syncop_open used to perform a ref in syncop_open_cbk so the extra
+unref was needed but now syncop_open_cbk does not take a ref so no
+need to do extra unref.
+
+Fix:
+remove the extra fd_unref and let dht_local_wipe do the final unref.
+
+Change-Id: Ibe8f9a678d456a0c7bff175306068b5cd297ecc4
+BUG: 961615
+Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
+Signed-off-by: Vijay Bellur <vbellur@redhat.com>
+Reviewed-on: http://review.gluster.org/8029
+Tested-by: Gluster Build System <jenkins@build.gluster.com>
+Tested-by: Joe Julian <joe@julianfamily.org>
+Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
+---
+ xlators/cluster/dht/src/dht-helper.c | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c
+index ef29e3f..dd8dc49 100644
+--- a/xlators/cluster/dht/src/dht-helper.c
++++ b/xlators/cluster/dht/src/dht-helper.c
+@@ -802,13 +802,10 @@ dht_migration_complete_check_task (void *data)
+ if (!local->fd)
+ goto out;
+ /* once we detect the migration complete, the fd-ctx is no more
+- required.. delete the ctx, and do one extra 'fd_unref' for open fd */
++ required.. delete the ctx */
+ ret = fd_ctx_del (local->fd, this, NULL);
+- if (!ret) {
+- fd_unref (local->fd);
+- ret = 0;
++ if (!ret)
+ goto out;
+- }
+
+ /* perform open as root:root. There is window between linkfile
+ * creation(root:root) and setattr with the correct uid/gid
+--
+1.9.2
+
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.4.4-fuse-fix-memory-leak-in-fuse_getxattr.patch b/sys-cluster/glusterfs/files/glusterfs-3.4.4-fuse-fix-memory-leak-in-fuse_getxattr.patch
new file mode 100644
index 000000000000..316e079322ca
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.4.4-fuse-fix-memory-leak-in-fuse_getxattr.patch
@@ -0,0 +1,91 @@
+From 0cf6f0727482b5b8816b5e58cb67ef124eae808e Mon Sep 17 00:00:00 2001
+From: Justin Clift <justin@gluster.org>
+Date: Tue, 24 Jun 2014 20:57:02 +0100
+Subject: [PATCH] fuse: fix memory leak in fuse_getxattr()
+
+The fuse_getxattr() function was not freeing fuse_state_t resulting in a
+memory leak. As a result, when continuous writes (run dd command in a loop)
+were done from a FUSE mount point, the OOM killer killed the client
+process (glusterfs).
+
+Manual backport of: http://review.gluster.org/#/c/5392/, provided
+by Martin Svec <martin.svec@zoner.cz>.
+
+BUG: 1112844
+Change-Id: Ic723675c53384d48c79ad1b11b21c1b17fb56866
+---
+ xlators/mount/fuse/src/fuse-bridge.c | 27 ++++++++++++++-------------
+ 1 file changed, 14 insertions(+), 13 deletions(-)
+
+diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c
+index e531970..da5937b 100644
+--- a/xlators/mount/fuse/src/fuse-bridge.c
++++ b/xlators/mount/fuse/src/fuse-bridge.c
+@@ -3207,6 +3207,7 @@ fuse_getxattr (xlator_t *this, fuse_in_header_t *finh, void *msg)
+ fuse_state_t *state = NULL;
+ struct fuse_private *priv = NULL;
+ int rv = 0;
++ int op_errno = EINVAL;
+ char *newkey = NULL;
+
+ priv = this->private;
+@@ -3227,26 +3228,23 @@ fuse_getxattr (xlator_t *this, fuse_in_header_t *finh, void *msg)
+ "%"PRIu64": GETXATTR %s/%"PRIu64" (%s):"
+ "refusing positioned getxattr",
+ finh->unique, state->loc.path, finh->nodeid, name);
+- send_fuse_err (this, finh, EINVAL);
+- FREE (finh);
+- return;
++ op_errno = EINVAL;
++ goto err;
+ }
+ #endif
+
+ if (!priv->acl) {
+ if ((strcmp (name, "system.posix_acl_access") == 0) ||
+ (strcmp (name, "system.posix_acl_default") == 0)) {
+- send_fuse_err (this, finh, ENOTSUP);
+- GF_FREE (finh);
+- return;
++ op_errno = ENOTSUP;
++ goto err;
+ }
+ }
+
+ if (!priv->selinux) {
+ if (strncmp (name, "security.", 9) == 0) {
+- send_fuse_err (this, finh, ENODATA);
+- GF_FREE (finh);
+- return;
++ op_errno = ENODATA;
++ goto err;
+ }
+ }
+
+@@ -3254,16 +3252,19 @@ fuse_getxattr (xlator_t *this, fuse_in_header_t *finh, void *msg)
+
+ rv = fuse_flip_xattr_ns (priv, name, &newkey);
+ if (rv) {
+- send_fuse_err (this, finh, ENOMEM);
+- free_fuse_state (state);
+- goto out;
++ op_errno = ENOMEM;
++ goto err;
+ }
+
+ state->size = fgxi->size;
+ state->name = newkey;
+
+ fuse_resolve_and_resume (state, fuse_getxattr_resume);
+- out:
++
++ return;
++ err:
++ send_fuse_err (this, finh, op_errno);
++ free_fuse_state (state);
+ return;
+ }
+
+--
+1.9.2
+
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.5.1-Add-libraries-using-LIBADD-instead-of-LDFLAGS.patch b/sys-cluster/glusterfs/files/glusterfs-3.5.1-Add-libraries-using-LIBADD-instead-of-LDFLAGS.patch
new file mode 100644
index 000000000000..5c4df0c97025
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.5.1-Add-libraries-using-LIBADD-instead-of-LDFLAGS.patch
@@ -0,0 +1,54 @@
+From 8bfe3752c3a0a4db49a879048cdd089da6c45ed0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tiziano=20M=C3=BCller?= <tm@dev-zero.ch>
+Date: Thu, 26 Jun 2014 19:04:54 +0200
+Subject: [PATCH] Add libraries using LIBADD instead of LDFLAGS
+
+---
+ xlators/encryption/crypt/src/Makefile.am | 6 +++---
+ xlators/features/compress/src/Makefile.am | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/xlators/encryption/crypt/src/Makefile.am b/xlators/encryption/crypt/src/Makefile.am
+index b13f650..d7ebac6 100644
+--- a/xlators/encryption/crypt/src/Makefile.am
++++ b/xlators/encryption/crypt/src/Makefile.am
+@@ -3,10 +3,10 @@ if ENABLE_CRYPT_XLATOR
+ xlator_LTLIBRARIES = crypt.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/encryption
+
+-crypt_la_LDFLAGS = -module -avoid-version -lssl -lcrypto
++crypt_la_LDFLAGS = -module -avoid-version
+
+ crypt_la_SOURCES = keys.c data.c metadata.c atom.c crypt.c
+-crypt_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
++crypt_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la -lssl -lcrypto
+
+ noinst_HEADERS = crypt-common.h crypt-mem-types.h crypt.h metadata.h
+
+@@ -21,4 +21,4 @@ else
+ noinst_DIST = keys.c data.c metadata.c atom.c crypt.c
+ noinst_HEADERS = crypt-common.h crypt-mem-types.h crypt.h metadata.h
+
+-endif
+\ No newline at end of file
++endif
+diff --git a/xlators/features/compress/src/Makefile.am b/xlators/features/compress/src/Makefile.am
+index 0bf757c..d3abe03 100644
+--- a/xlators/features/compress/src/Makefile.am
++++ b/xlators/features/compress/src/Makefile.am
+@@ -4,10 +4,10 @@ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+ noinst_HEADERS = cdc.h cdc-mem-types.h
+
+-cdc_la_LDFLAGS = -module -avoid-version $(LIBZ_LIBS)
++cdc_la_LDFLAGS = -module -avoid-version
+
+ cdc_la_SOURCES = cdc.c cdc-helper.c
+-cdc_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
++cdc_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la $(LIBZ_LIBS)
+
+ AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src -fPIC -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D$(GF_HOST_OS) \
+ -shared -nostartfiles $(LIBZ_CFLAGS)
+--
+1.9.2
+
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.5.1-build-shared-only.patch b/sys-cluster/glusterfs/files/glusterfs-3.5.1-build-shared-only.patch
new file mode 100644
index 000000000000..9acf0d7526cd
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.5.1-build-shared-only.patch
@@ -0,0 +1,576 @@
+diff --git a/rpc/rpc-transport/rdma/src/Makefile.am b/rpc/rpc-transport/rdma/src/Makefile.am
+index 2bf7cf2..8e52d70 100644
+--- a/rpc/rpc-transport/rdma/src/Makefile.am
++++ b/rpc/rpc-transport/rdma/src/Makefile.am
+@@ -3,7 +3,7 @@
+ transport_LTLIBRARIES = rdma.la
+ transportdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/rpc-transport
+
+-rdma_la_LDFLAGS = -module -avoid-version
++rdma_la_LDFLAGS = -module -avoid-version -shared
+
+ rdma_la_SOURCES = rdma.c name.c
+ rdma_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
+diff --git a/rpc/rpc-transport/socket/src/Makefile.am b/rpc/rpc-transport/socket/src/Makefile.am
+index 71e6ed6..b481fe9 100644
+--- a/rpc/rpc-transport/socket/src/Makefile.am
++++ b/rpc/rpc-transport/socket/src/Makefile.am
+@@ -3,7 +3,7 @@ noinst_HEADERS = socket.h name.h
+ rpctransport_LTLIBRARIES = socket.la
+ rpctransportdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/rpc-transport
+
+-socket_la_LDFLAGS = -module -avoid-version
++socket_la_LDFLAGS = -module -avoid-version -shared
+
+ socket_la_SOURCES = socket.c name.c
+ socket_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la -lssl
+diff --git a/xlators/cluster/afr/src/Makefile.am b/xlators/cluster/afr/src/Makefile.am
+index 35d18a6..959fea8 100644
+--- a/xlators/cluster/afr/src/Makefile.am
++++ b/xlators/cluster/afr/src/Makefile.am
+@@ -7,11 +7,11 @@ afr_common_source = afr-dir-read.c afr-dir-write.c afr-inode-read.c \
+ afr-self-heal-algorithm.c afr-lk-common.c afr-self-heald.c \
+ $(top_builddir)/xlators/lib/src/libxlator.c
+
+-afr_la_LDFLAGS = -module -avoid-version
++afr_la_LDFLAGS = -module -avoid-version -shared
+ afr_la_SOURCES = $(afr_common_source) afr.c
+ afr_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-pump_la_LDFLAGS = -module -avoid-version
++pump_la_LDFLAGS = -module -avoid-version -shared
+ pump_la_SOURCES = $(afr_common_source) pump.c
+ pump_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+diff --git a/xlators/cluster/dht/src/Makefile.am b/xlators/cluster/dht/src/Makefile.am
+index 174bea8..cab9993 100644
+--- a/xlators/cluster/dht/src/Makefile.am
++++ b/xlators/cluster/dht/src/Makefile.am
+@@ -12,13 +12,13 @@ dht_la_SOURCES = $(dht_common_source) dht.c
+ nufa_la_SOURCES = $(dht_common_source) nufa.c
+ switch_la_SOURCES = $(dht_common_source) switch.c
+
+-dht_la_LDFLAGS = -module -avoid-version
++dht_la_LDFLAGS = -module -avoid-version -shared
+ dht_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-nufa_la_LDFLAGS = -module -avoid-version
++nufa_la_LDFLAGS = -module -avoid-version -shared
+ nufa_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-switch_la_LDFLAGS = -module -avoid-version
++switch_la_LDFLAGS = -module -avoid-version -shared
+ switch_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+ noinst_HEADERS = dht-common.h dht-mem-types.h \
+diff --git a/xlators/cluster/stripe/src/Makefile.am b/xlators/cluster/stripe/src/Makefile.am
+index 2d15142..6989de9 100644
+--- a/xlators/cluster/stripe/src/Makefile.am
++++ b/xlators/cluster/stripe/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = stripe.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/cluster
+
+-stripe_la_LDFLAGS = -module -avoid-version
++stripe_la_LDFLAGS = -module -avoid-version -shared
+
+ stripe_la_SOURCES = stripe.c stripe-helpers.c \
+ $(top_builddir)/xlators/lib/src/libxlator.c
+diff --git a/xlators/debug/error-gen/src/Makefile.am b/xlators/debug/error-gen/src/Makefile.am
+index 5075c59..a7681c4 100644
+--- a/xlators/debug/error-gen/src/Makefile.am
++++ b/xlators/debug/error-gen/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = error-gen.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/debug
+
+-error_gen_la_LDFLAGS = -module -avoid-version
++error_gen_la_LDFLAGS = -module -avoid-version -shared
+
+ error_gen_la_SOURCES = error-gen.c
+ error_gen_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/debug/io-stats/src/Makefile.am b/xlators/debug/io-stats/src/Makefile.am
+index 332d790..bf62017 100644
+--- a/xlators/debug/io-stats/src/Makefile.am
++++ b/xlators/debug/io-stats/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = io-stats.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/debug
+
+-io_stats_la_LDFLAGS = -module -avoid-version
++io_stats_la_LDFLAGS = -module -avoid-version -shared
+
+ io_stats_la_SOURCES = io-stats.c
+ io_stats_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/debug/trace/src/Makefile.am b/xlators/debug/trace/src/Makefile.am
+index 7b2597b..2030ed4 100644
+--- a/xlators/debug/trace/src/Makefile.am
++++ b/xlators/debug/trace/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = trace.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/debug
+
+-trace_la_LDFLAGS = -module -avoid-version
++trace_la_LDFLAGS = -module -avoid-version -shared
+
+ trace_la_SOURCES = trace.c
+ trace_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/encryption/crypt/src/Makefile.am b/xlators/encryption/crypt/src/Makefile.am
+index d7ebac6..66ae6f5 100644
+--- a/xlators/encryption/crypt/src/Makefile.am
++++ b/xlators/encryption/crypt/src/Makefile.am
+@@ -3,7 +3,7 @@ if ENABLE_CRYPT_XLATOR
+ xlator_LTLIBRARIES = crypt.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/encryption
+
+-crypt_la_LDFLAGS = -module -avoid-version
++crypt_la_LDFLAGS = -module -avoid-version -shared
+
+ crypt_la_SOURCES = keys.c data.c metadata.c atom.c crypt.c
+ crypt_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la -lssl -lcrypto
+diff --git a/xlators/encryption/rot-13/src/Makefile.am b/xlators/encryption/rot-13/src/Makefile.am
+index 94e8d18..d13894e 100644
+--- a/xlators/encryption/rot-13/src/Makefile.am
++++ b/xlators/encryption/rot-13/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = rot-13.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/encryption
+
+-rot_13_la_LDFLAGS = -module -avoid-version
++rot_13_la_LDFLAGS = -module -avoid-version -shared
+
+ rot_13_la_SOURCES = rot-13.c
+ rot_13_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/changelog/src/Makefile.am b/xlators/features/changelog/src/Makefile.am
+index 54c21ac..d98f43f 100644
+--- a/xlators/features/changelog/src/Makefile.am
++++ b/xlators/features/changelog/src/Makefile.am
+@@ -5,7 +5,7 @@ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+ noinst_HEADERS = changelog-helpers.h changelog-mem-types.h changelog-rt.h \
+ changelog-misc.h changelog-encoders.h changelog-notifier.h
+
+-changelog_la_LDFLAGS = -module -avoid-version
++changelog_la_LDFLAGS = -module -avoid-version -shared
+
+ changelog_la_SOURCES = changelog.c changelog-rt.c changelog-helpers.c \
+ changelog-encoders.c changelog-notifier.c
+diff --git a/xlators/features/compress/src/Makefile.am b/xlators/features/compress/src/Makefile.am
+index d3abe03..659cd49 100644
+--- a/xlators/features/compress/src/Makefile.am
++++ b/xlators/features/compress/src/Makefile.am
+@@ -4,7 +4,7 @@ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+ noinst_HEADERS = cdc.h cdc-mem-types.h
+
+-cdc_la_LDFLAGS = -module -avoid-version
++cdc_la_LDFLAGS = -module -avoid-version -shared
+
+ cdc_la_SOURCES = cdc.c cdc-helper.c
+ cdc_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la $(LIBZ_LIBS)
+diff --git a/xlators/features/gfid-access/src/Makefile.am b/xlators/features/gfid-access/src/Makefile.am
+index db53aff..4eeaa4f 100644
+--- a/xlators/features/gfid-access/src/Makefile.am
++++ b/xlators/features/gfid-access/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = gfid-access.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-gfid_access_la_LDFLAGS = -module -avoid-version
++gfid_access_la_LDFLAGS = -module -avoid-version -shared
+
+ gfid_access_la_SOURCES = gfid-access.c
+ gfid_access_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/index/src/Makefile.am b/xlators/features/index/src/Makefile.am
+index 73bb897..5519798 100644
+--- a/xlators/features/index/src/Makefile.am
++++ b/xlators/features/index/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = index.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-index_la_LDFLAGS = -module -avoid-version
++index_la_LDFLAGS = -module -avoid-version -shared
+
+ index_la_SOURCES = index.c
+ index_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/locks/src/Makefile.am b/xlators/features/locks/src/Makefile.am
+index 0f79731..eda6a05 100644
+--- a/xlators/features/locks/src/Makefile.am
++++ b/xlators/features/locks/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = locks.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-locks_la_LDFLAGS = -module -avoid-version
++locks_la_LDFLAGS = -module -avoid-version -shared
+
+ locks_la_SOURCES = common.c posix.c entrylk.c inodelk.c reservelk.c \
+ clear.c
+diff --git a/xlators/features/mac-compat/src/Makefile.am b/xlators/features/mac-compat/src/Makefile.am
+index f8567ed..a283eb0 100644
+--- a/xlators/features/mac-compat/src/Makefile.am
++++ b/xlators/features/mac-compat/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = mac-compat.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-mac_compat_la_LDFLAGS = -module -avoid-version
++mac_compat_la_LDFLAGS = -module -avoid-version -shared
+
+ mac_compat_la_SOURCES = mac-compat.c
+ mac_compat_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/marker/src/Makefile.am b/xlators/features/marker/src/Makefile.am
+index a7c6764..477fe0f 100644
+--- a/xlators/features/marker/src/Makefile.am
++++ b/xlators/features/marker/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = marker.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-marker_la_LDFLAGS = -module -avoid-version
++marker_la_LDFLAGS = -module -avoid-version -shared
+
+ marker_la_SOURCES = marker.c marker-quota.c marker-quota-helper.c marker-common.c
+ marker_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/protect/src/Makefile.am b/xlators/features/protect/src/Makefile.am
+index 968e88c..84ceec2 100644
+--- a/xlators/features/protect/src/Makefile.am
++++ b/xlators/features/protect/src/Makefile.am
+@@ -2,15 +2,15 @@ xlator_LTLIBRARIES = prot_dht.la prot_client.la prot_server.la
+
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-prot_dht_la_LDFLAGS = -module -avoid-version
++prot_dht_la_LDFLAGS = -module -avoid-version -shared
+ prot_dht_la_SOURCES = prot_dht.c
+ prot_dht_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-prot_client_la_LDFLAGS = -module -avoid-version
++prot_client_la_LDFLAGS = -module -avoid-version -shared
+ prot_client_la_SOURCES = prot_client.c
+ prot_client_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-prot_server_la_LDFLAGS = -module -avoid-version
++prot_server_la_LDFLAGS = -module -avoid-version -shared
+ prot_server_la_SOURCES = prot_server.c
+ prot_server_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+diff --git a/xlators/features/qemu-block/src/Makefile.am b/xlators/features/qemu-block/src/Makefile.am
+index 08a7b62..30639e0 100644
+--- a/xlators/features/qemu-block/src/Makefile.am
++++ b/xlators/features/qemu-block/src/Makefile.am
+@@ -2,7 +2,7 @@ if ENABLE_QEMU_BLOCK
+ xlator_LTLIBRARIES = qemu-block.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-qemu_block_la_LDFLAGS = -module -avoid-version
++qemu_block_la_LDFLAGS = -module -avoid-version -shared
+ qemu_block_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la $(GLIB_LIBS) -lz -lrt
+
+ qemu_block_la_SOURCES_qemu = \
+diff --git a/xlators/features/quiesce/src/Makefile.am b/xlators/features/quiesce/src/Makefile.am
+index 15e4662..b3cd9d1 100644
+--- a/xlators/features/quiesce/src/Makefile.am
++++ b/xlators/features/quiesce/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = quiesce.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-quiesce_la_LDFLAGS = -module -avoid-version
++quiesce_la_LDFLAGS = -module -avoid-version -shared
+
+ quiesce_la_SOURCES = quiesce.c
+ quiesce_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/quota/src/Makefile.am b/xlators/features/quota/src/Makefile.am
+index 7165adc..06905f3 100644
+--- a/xlators/features/quota/src/Makefile.am
++++ b/xlators/features/quota/src/Makefile.am
+@@ -1,8 +1,8 @@
+ xlator_LTLIBRARIES = quota.la quotad.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+-quota_la_LDFLAGS = -module -avoid-version
+-quotad_la_LDFLAGS = -module -avoid-version
++quota_la_LDFLAGS = -module -avoid-version -shared
++quotad_la_LDFLAGS = -module -avoid-version -shared
+
+ quota_la_SOURCES = quota.c quota-enforcer-client.c
+ quota_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/features/read-only/src/Makefile.am b/xlators/features/read-only/src/Makefile.am
+index 4c14621..a3f79fa 100644
+--- a/xlators/features/read-only/src/Makefile.am
++++ b/xlators/features/read-only/src/Makefile.am
+@@ -4,12 +4,12 @@ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
+
+ noinst_HEADERS = read-only-common.h
+
+-read_only_la_LDFLAGS = -module -avoid-version
++read_only_la_LDFLAGS = -module -avoid-version -shared
+
+ read_only_la_SOURCES = read-only.c read-only-common.c
+ read_only_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+-worm_la_LDFLAGS = -module -avoid-version
++worm_la_LDFLAGS = -module -avoid-version -shared
+
+ worm_la_SOURCES = read-only-common.c worm.c
+ worm_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/mgmt/glusterd/src/Makefile.am b/xlators/mgmt/glusterd/src/Makefile.am
+index a6f49ae..b071280 100644
+--- a/xlators/mgmt/glusterd/src/Makefile.am
++++ b/xlators/mgmt/glusterd/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = glusterd.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/mgmt
+ glusterd_la_CPPFLAGS = $(AM_CPPFLAGS) "-DFILTERDIR=\"$(libdir)/glusterfs/$(PACKAGE_VERSION)/filter\""
+-glusterd_la_LDFLAGS = -module -avoid-version
++glusterd_la_LDFLAGS = -module -avoid-version -shared
+ if ENABLE_BD_XLATOR
+ glusterd_la_LDFLAGS += -llvm2app
+ endif
+diff --git a/xlators/mount/fuse/src/Makefile.am b/xlators/mount/fuse/src/Makefile.am
+index 653121d..3f221d8 100644
+--- a/xlators/mount/fuse/src/Makefile.am
++++ b/xlators/mount/fuse/src/Makefile.am
+@@ -24,7 +24,7 @@ endif
+ fuse_la_SOURCES = fuse-helpers.c fuse-resolve.c fuse-bridge.c \
+ $(CONTRIBDIR)/fuse-lib/misc.c $(mount_source)
+
+-fuse_la_LDFLAGS = -module -avoid-version
++fuse_la_LDFLAGS = -module -avoid-version -shared
+ fuse_la_LIBADD = @GF_FUSE_LDADD@
+
+ AM_CPPFLAGS = $(GF_CPPFLAGS) \
+diff --git a/xlators/nfs/server/src/Makefile.am b/xlators/nfs/server/src/Makefile.am
+index 62fbf65..1995f67 100644
+--- a/xlators/nfs/server/src/Makefile.am
++++ b/xlators/nfs/server/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = server.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/nfs
+ nfsrpclibdir = $(top_srcdir)/rpc/rpc-lib/src
+-server_la_LDFLAGS = -module -avoid-version
++server_la_LDFLAGS = -module -avoid-version -shared
+ server_la_SOURCES = nfs.c nfs-common.c nfs-fops.c nfs-inodes.c \
+ nfs-generics.c mount3.c nfs3-fh.c nfs3.c nfs3-helpers.c nlm4.c \
+ nlmcbk_svc.c mount3udp_svc.c acl3.c
+diff --git a/xlators/performance/io-cache/src/Makefile.am b/xlators/performance/io-cache/src/Makefile.am
+index 155be99..ba0738c 100644
+--- a/xlators/performance/io-cache/src/Makefile.am
++++ b/xlators/performance/io-cache/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = io-cache.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-io_cache_la_LDFLAGS = -module -avoid-version
++io_cache_la_LDFLAGS = -module -avoid-version -shared
+
+ io_cache_la_SOURCES = io-cache.c page.c ioc-inode.c
+ io_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/io-threads/src/Makefile.am b/xlators/performance/io-threads/src/Makefile.am
+index d63042e..aba1fdb 100644
+--- a/xlators/performance/io-threads/src/Makefile.am
++++ b/xlators/performance/io-threads/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = io-threads.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-io_threads_la_LDFLAGS = -module -avoid-version
++io_threads_la_LDFLAGS = -module -avoid-version -shared
+
+ io_threads_la_SOURCES = io-threads.c
+ io_threads_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/md-cache/src/Makefile.am b/xlators/performance/md-cache/src/Makefile.am
+index 8c9f5a8..4d714fa 100644
+--- a/xlators/performance/md-cache/src/Makefile.am
++++ b/xlators/performance/md-cache/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = md-cache.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-md_cache_la_LDFLAGS = -module -avoid-version
++md_cache_la_LDFLAGS = -module -avoid-version -shared
+
+ md_cache_la_SOURCES = md-cache.c
+ md_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/open-behind/src/Makefile.am b/xlators/performance/open-behind/src/Makefile.am
+index 1252857..568434a 100644
+--- a/xlators/performance/open-behind/src/Makefile.am
++++ b/xlators/performance/open-behind/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = open-behind.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-open_behind_la_LDFLAGS = -module -avoid-version
++open_behind_la_LDFLAGS = -module -avoid-version -shared
+
+ open_behind_la_SOURCES = open-behind.c
+ open_behind_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/quick-read/src/Makefile.am b/xlators/performance/quick-read/src/Makefile.am
+index 4906f40..8d42116 100644
+--- a/xlators/performance/quick-read/src/Makefile.am
++++ b/xlators/performance/quick-read/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = quick-read.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-quick_read_la_LDFLAGS = -module -avoid-version
++quick_read_la_LDFLAGS = -module -avoid-version -shared
+
+ quick_read_la_SOURCES = quick-read.c
+ quick_read_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/read-ahead/src/Makefile.am b/xlators/performance/read-ahead/src/Makefile.am
+index be80ae7..eae0540 100644
+--- a/xlators/performance/read-ahead/src/Makefile.am
++++ b/xlators/performance/read-ahead/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = read-ahead.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-read_ahead_la_LDFLAGS = -module -avoid-version
++read_ahead_la_LDFLAGS = -module -avoid-version -shared
+
+ read_ahead_la_SOURCES = read-ahead.c page.c
+ read_ahead_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/readdir-ahead/src/Makefile.am b/xlators/performance/readdir-ahead/src/Makefile.am
+index 539d6ed..020b670 100644
+--- a/xlators/performance/readdir-ahead/src/Makefile.am
++++ b/xlators/performance/readdir-ahead/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = readdir-ahead.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-readdir_ahead_la_LDFLAGS = -module -avoid-version
++readdir_ahead_la_LDFLAGS = -module -avoid-version -shared
+
+ readdir_ahead_la_SOURCES = readdir-ahead.c
+ readdir_ahead_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/symlink-cache/src/Makefile.am b/xlators/performance/symlink-cache/src/Makefile.am
+index 4091c32..0d600d6 100644
+--- a/xlators/performance/symlink-cache/src/Makefile.am
++++ b/xlators/performance/symlink-cache/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = symlink-cache.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/testing/performance
+
+-symlink_cache_la_LDFLAGS = -module -avoid-version
++symlink_cache_la_LDFLAGS = -module -avoid-version -shared
+
+ symlink_cache_la_SOURCES = symlink-cache.c
+ symlink_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/performance/write-behind/src/Makefile.am b/xlators/performance/write-behind/src/Makefile.am
+index 6c829d8..746e5c1 100644
+--- a/xlators/performance/write-behind/src/Makefile.am
++++ b/xlators/performance/write-behind/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = write-behind.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
+
+-write_behind_la_LDFLAGS = -module -avoid-version
++write_behind_la_LDFLAGS = -module -avoid-version -shared
+
+ write_behind_la_SOURCES = write-behind.c
+ write_behind_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/playground/template/src/Makefile.am b/xlators/playground/template/src/Makefile.am
+index 21f1c5f..3161bc8 100644
+--- a/xlators/playground/template/src/Makefile.am
++++ b/xlators/playground/template/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = template.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/testing/features
+
+-template_la_LDFLAGS = -module -avoid-version
++template_la_LDFLAGS = -module -avoid-version -shared
+
+ template_la_SOURCES = template.c
+ template_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/protocol/auth/addr/src/Makefile.am b/xlators/protocol/auth/addr/src/Makefile.am
+index 426e7c2..fa7234d 100644
+--- a/xlators/protocol/auth/addr/src/Makefile.am
++++ b/xlators/protocol/auth/addr/src/Makefile.am
+@@ -1,7 +1,7 @@
+ auth_LTLIBRARIES = addr.la
+ authdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/auth
+
+-addr_la_LDFLAGS = -module -avoid-version
++addr_la_LDFLAGS = -module -avoid-version -shared
+
+ addr_la_SOURCES = addr.c
+ addr_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/protocol/auth/login/src/Makefile.am b/xlators/protocol/auth/login/src/Makefile.am
+index d84db91..022739d 100644
+--- a/xlators/protocol/auth/login/src/Makefile.am
++++ b/xlators/protocol/auth/login/src/Makefile.am
+@@ -1,7 +1,7 @@
+ auth_LTLIBRARIES = login.la
+ authdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/auth
+
+-login_la_LDFLAGS = -module -avoid-version
++login_la_LDFLAGS = -module -avoid-version -shared
+
+ login_la_SOURCES = login.c
+ login_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+diff --git a/xlators/protocol/client/src/Makefile.am b/xlators/protocol/client/src/Makefile.am
+index cf89d42..8f2612c 100644
+--- a/xlators/protocol/client/src/Makefile.am
++++ b/xlators/protocol/client/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = client.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/protocol
+
+-client_la_LDFLAGS = -module -avoid-version
++client_la_LDFLAGS = -module -avoid-version -shared
+
+ client_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
+ $(top_builddir)/rpc/rpc-lib/src/libgfrpc.la \
+diff --git a/xlators/protocol/server/src/Makefile.am b/xlators/protocol/server/src/Makefile.am
+index 6a18bf0..9a0393f 100644
+--- a/xlators/protocol/server/src/Makefile.am
++++ b/xlators/protocol/server/src/Makefile.am
+@@ -1,7 +1,7 @@
+ xlator_LTLIBRARIES = server.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/protocol
+
+-server_la_LDFLAGS = -module -avoid-version
++server_la_LDFLAGS = -module -avoid-version -shared
+
+ server_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
+ $(top_builddir)/rpc/rpc-lib/src/libgfrpc.la \
+diff --git a/xlators/storage/bd/src/Makefile.am b/xlators/storage/bd/src/Makefile.am
+index 3d93f74..589185d 100644
+--- a/xlators/storage/bd/src/Makefile.am
++++ b/xlators/storage/bd/src/Makefile.am
+@@ -2,7 +2,7 @@ if ENABLE_BD_XLATOR
+ xlator_LTLIBRARIES = bd.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/storage
+
+-bd_la_LDFLAGS = -module -avoid-version
++bd_la_LDFLAGS = -module -avoid-version -shared
+ LIBBD = -llvm2app -lrt
+ bd_la_SOURCES = bd.c bd-helper.c bd-aio.c
+ bd_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la $(LIBBD) $(LIBAIO)
+diff --git a/xlators/storage/posix/src/Makefile.am b/xlators/storage/posix/src/Makefile.am
+index 88efcc7..79ca903 100644
+--- a/xlators/storage/posix/src/Makefile.am
++++ b/xlators/storage/posix/src/Makefile.am
+@@ -2,7 +2,7 @@
+ xlator_LTLIBRARIES = posix.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/storage
+
+-posix_la_LDFLAGS = -module -avoid-version
++posix_la_LDFLAGS = -module -avoid-version -shared
+
+ posix_la_SOURCES = posix.c posix-helpers.c posix-handle.c posix-aio.c
+ posix_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la $(LIBAIO)
+diff --git a/xlators/system/posix-acl/src/Makefile.am b/xlators/system/posix-acl/src/Makefile.am
+index 11c939f..561c52d 100644
+--- a/xlators/system/posix-acl/src/Makefile.am
++++ b/xlators/system/posix-acl/src/Makefile.am
+@@ -1,6 +1,6 @@
+ xlator_LTLIBRARIES = posix-acl.la
+ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/system
+-posix_acl_la_LDFLAGS = -module -avoid-version
++posix_acl_la_LDFLAGS = -module -avoid-version -shared
+ posix_acl_la_SOURCES = posix-acl.c posix-acl-xattr.c
+ posix_acl_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
diff --git a/sys-cluster/glusterfs/files/glusterfs-docdir.patch b/sys-cluster/glusterfs/files/glusterfs-docdir.patch
new file mode 100644
index 000000000000..5e26f637b22a
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-docdir.patch
@@ -0,0 +1,51 @@
+From 6a17bb8523c4c7810bf7797371df22cfb259f7a7 Mon Sep 17 00:00:00 2001
+From: MATSUU Takuto <matsuu@gentoo.org>
+Date: Sat, 16 May 2009 07:01:53 +0900
+Subject: [PATCH] Use the standard autoconf $docdir variable.
+
+---
+ doc/examples/Makefile.am | 1 -
+ extras/Makefile.am | 3 +--
+ extras/benchmarking/Makefile.am | 4 +---
+ 3 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am
+index b4c93f4..5296d83 100644
+--- a/doc/examples/Makefile.am
++++ b/doc/examples/Makefile.am
+@@ -1,7 +1,6 @@
+ EXTRA = README unify.vol replicate.vol stripe.vol protocol-client.vol protocol-server.vol posix-locks.vol trash.vol write-behind.vol io-threads.vol io-cache.vol read-ahead.vol filter.vol trace.vol
+ EXTRA_DIST = $(EXTRA)
+
+-docdir = $(datadir)/doc/$(PACKAGE_NAME)
+ Examplesdir = $(docdir)/examples
+ Examples_DATA = $(EXTRA)
+
+diff --git a/extras/Makefile.am b/extras/Makefile.am
+index 9be3973..ea0b33d 100644
+--- a/extras/Makefile.am
++++ b/extras/Makefile.am
+@@ -1,6 +1,5 @@
+
+-docdir = $(datadir)/doc/glusterfs/
+-EditorModedir = $(docdir)/
++EditorModedir = $(docdir)
+ EditorMode_DATA = glusterfs-mode.el glusterfs.vim
+
+ SUBDIRS = init.d benchmarking
+diff --git a/extras/benchmarking/Makefile.am b/extras/benchmarking/Makefile.am
+index 04cc061..bfcc592 100644
+--- a/extras/benchmarking/Makefile.am
++++ b/extras/benchmarking/Makefile.am
+@@ -1,7 +1,5 @@
+
+-docdir = $(datadir)/doc/$(PACKAGE_NAME)/benchmarking
+-
+-benchmarkingdir = $(docdir)
++benchmarkingdir = $(docdir)/benchmarking
+
+ benchmarking_DATA = rdd.c glfs-bm.c README launch-script.sh local-script.sh
+
+--
+1.6.3
+
diff --git a/sys-cluster/glusterfs/files/glusterfs-r1.initd b/sys-cluster/glusterfs/files/glusterfs-r1.initd
new file mode 100644
index 000000000000..0a974a8eae34
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-r1.initd
@@ -0,0 +1,122 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+if [[ "${SVCNAME}" != "glusterfs" ]]
+then
+ GLUSTERFS_NAME="${SVCNAME#glusterfs.}"
+else
+ GLUSTERFS_NAME="glusterfs"
+fi
+
+GLUSTERFS_PIDFILE="/var/run/${SVCNAME}.pid"
+
+eval 'GLUSTERFS_LOGFILE="${'${GLUSTERFS_NAME}'_log:-/var/log/glusterfs/'${GLUSTERFS_NAME}'.log}"'
+eval 'GLUSTERFS_VOLFILE="${'${GLUSTERFS_NAME}'_vol:-/etc/glusterfs/'${GLUSTERFS_NAME}'.vol}"'
+eval 'GLUSTERFS_SERVER="${'${GLUSTERFS_NAME}'_server}"'
+eval 'GLUSTERFS_PORT="${'${GLUSTERFS_NAME}'_port:-6996}"'
+eval 'GLUSTERFS_TRANSPORT="${'${GLUSTERFS_NAME}'_transport:-socket}"'
+eval 'GLUSTERFS_OPTS="${'${GLUSTERFS_NAME}'_opts}"'
+eval 'GLUSTERFS_MOUNTPOINT="${'${GLUSTERFS_NAME}'_mountpoint}"'
+
+depend() {
+ need net
+ [[ -n "${GLUSTERFS_MOUNTPOINT}" ]] && need fuse
+ use dns
+ before netmount
+ after firewall ntp-client ntpd
+}
+
+checkconfig() {
+ if [[ -z "${GLUSTERFS_NAME}" ]]
+ then
+ eerror "The service name is not properly formatted."
+ return 1
+ fi
+
+ if [[ -z "${GLUSTERFS_SERVER}" ]]
+ then
+ if [[ -z "${GLUSTERFS_VOLFILE}" ]]
+ then
+ eerror "No GlusterFS volume file source has been defined. Edit /etc/conf.d/glusterfs"
+ eerror "and configure a volume file source for ${SVCNAME}."
+ return 1
+ else
+ if [[ ! -f "${GLUSTERFS_VOLFILE}" ]]
+ then
+ eerror "Cannot find volume file: ${GLUSTERFS_VOLFILE}"
+ return 1
+ fi
+ fi
+ fi
+
+ if [[ -n "${GLUSTERFS_MOUNTPOINT}" && ! -d "${GLUSTERFS_MOUNTPOINT}" ]]
+ then
+ eerror "The mountpoint ${GLUSTERFS_MOUNTPOINT} does not exist."
+ return 1
+ fi
+}
+
+start() {
+ local status daemon
+
+ checkconfig || return 1
+
+ ebegin "Starting GlusterFS (${SVCNAME})"
+ eindent
+
+ if [[ -z "${GLUSTERFS_MOUNTPOINT}" ]]
+ then
+ einfo "Starting in server mode ..."
+ daemon="glusterfsd"
+ else
+ einfo "Starting in client mode. Mounting filesystem ..."
+ daemon="glusterfs"
+ fi
+
+ if [[ -n "${GLUSTERFS_SERVER}" ]]
+ then
+ einfo "Using server supplied volume file"
+ start-stop-daemon --start --pidfile ${GLUSTERFS_PIDFILE} \
+ --exec /usr/sbin/${daemon} -- \
+ --pid-file=${GLUSTERFS_PIDFILE} \
+ --log-file=${GLUSTERFS_LOGFILE} \
+ --volfile-server=${GLUSTERFS_SERVER} \
+ --volfile-server-port=${GLUSTERFS_PORT} \
+ --volfile-server-transport=${GLUSTERFS_TRANSPORT} \
+ ${GLUSTERFS_OPTS} ${GLUSTERFS_MOUNTPOINT}
+ status="$?"
+ else
+ einfo "Using local volume file"
+ start-stop-daemon --start --pidfile ${GLUSTERFS_PIDFILE} \
+ --exec /usr/sbin/${daemon} -- \
+ --pid-file=${GLUSTERFS_PIDFILE} \
+ --log-file=${GLUSTERFS_LOGFILE} \
+ --volfile=${GLUSTERFS_VOLFILE} \
+ ${GLUSTERFS_OPTS} ${GLUSTERFS_MOUNTPOINT}
+ status="$?"
+ fi
+
+ eoutdent
+ eend ${status}
+}
+
+stop() {
+ local status
+
+ ebegin "Stopping GlusterFS (${SVCNAME})"
+ eindent
+ if [[ -z "${GLUSTERFS_MOUNTPOINT}" ]]
+ then
+ einfo "Stopping server process ..."
+ start-stop-daemon --stop --pidfile ${GLUSTERFS_PIDFILE}
+ status="$?"
+ else
+ einfo "Unmounting ${GLUSTERFS_MOUNTPOINT} ..."
+ umount "${GLUSTERFS_MOUNTPOINT}"
+ status="$?"
+ fi
+ eoutdent
+ eend ${status}
+}
diff --git a/sys-cluster/glusterfs/files/glusterfs.confd b/sys-cluster/glusterfs/files/glusterfs.confd
new file mode 100644
index 000000000000..257d0a887cff
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs.confd
@@ -0,0 +1,6 @@
+#glusterfsd_mountpoint=""
+#glusterfsd_log=""
+#glusterfsd_vol=""
+#glusterfsd_port=""
+#glusterfsd_transport=""
+#glusterfsd_opts=""
diff --git a/sys-cluster/glusterfs/files/glusterfs.initd b/sys-cluster/glusterfs/files/glusterfs.initd
new file mode 100644
index 000000000000..7f8759af594d
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs.initd
@@ -0,0 +1,120 @@
+#!/sbin/runscript
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+if [[ "${SVCNAME}" != "glusterfs" ]]
+then
+ GLUSTERFS_NAME="${SVCNAME#glusterfs.}"
+else
+ GLUSTERFS_NAME="glusterfs"
+fi
+
+GLUSTERFS_PIDFILE="/var/run/${SVCNAME}.pid"
+
+eval 'GLUSTERFS_LOGFILE="${'${GLUSTERFS_NAME}'_log:-/var/log/glusterfs/'${GLUSTERFS_NAME}'.log}"'
+eval 'GLUSTERFS_VOLFILE="${'${GLUSTERFS_NAME}'_vol:-/etc/glusterfs/'${GLUSTERFS_NAME}'.vol}"'
+eval 'GLUSTERFS_SERVER="${'${GLUSTERFS_NAME}'_server}"'
+eval 'GLUSTERFS_PORT="${'${GLUSTERFS_NAME}'_port:-6996}"'
+eval 'GLUSTERFS_TRANSPORT="${'${GLUSTERFS_NAME}'_transport:-socket}"'
+eval 'GLUSTERFS_OPTS="${'${GLUSTERFS_NAME}'_opts}"'
+eval 'GLUSTERFS_MOUNTPOINT="${'${GLUSTERFS_NAME}'_mountpoint}"'
+
+depend() {
+ need net
+ [[ -n "${GLUSTERFS_MOUNTPOINT}" ]] && need fuse
+ use dns
+ before netmount
+ after firewall ntp-client ntpd
+}
+
+checkconfig() {
+ if [[ -z "${GLUSTERFS_NAME}" ]]
+ then
+ eerror "The service name is not properly formatted."
+ return 1
+ fi
+
+ if [[ -z "${GLUSTERFS_SERVER}" ]]
+ then
+ if [[ -z "${GLUSTERFS_VOLFILE}" ]]
+ then
+ eerror "No GlusterFS volume file source has been defined. Edit /etc/conf.d/glusterfs"
+ eerror "and configure a volume file source for ${SVCNAME}."
+ return 1
+ else
+ if [[ ! -f "${GLUSTERFS_VOLFILE}" ]]
+ then
+ eerror "Cannot find volume file: ${GLUSTERFS_VOLFILE}"
+ return 1
+ fi
+ fi
+ fi
+
+ if [[ -n "${GLUSTERFS_MOUNTPOINT}" && ! -d "${GLUSTERFS_MOUNTPOINT}" ]]
+ then
+ eerror "The mountpoint ${GLUSTERFS_MOUNTPOINT} does not exist."
+ return 1
+ fi
+}
+
+start() {
+ local status
+
+ checkconfig || return 1
+
+ ebegin "Starting GlusterFS (${SVCNAME})"
+ eindent
+
+ if [[ -z "${GLUSTERFS_MOUNTPOINT}" ]]
+ then
+ einfo "Starting in server mode ..."
+ else
+ einfo "Starting in client mode. Mounting filesystem ..."
+ fi
+
+ if [[ -n "${GLUSTERFS_SERVER}" ]]
+ then
+ einfo "Using server supplied volume file"
+ start-stop-daemon --start --pidfile ${GLUSTERFS_PIDFILE} \
+ --exec /usr/sbin/glusterfsd -- \
+ --pid-file=${GLUSTERFS_PIDFILE} \
+ --log-file=${GLUSTERFS_LOGFILE} \
+ --volfile-server=${GLUSTERFS_SERVER} \
+ --volfile-server-port=${GLUSTERFS_PORT} \
+ --volfile-server-transport=${GLUSTERFS_TRANSPORT} \
+ ${GLUSTERFS_OPTS} ${GLUSTERFS_MOUNTPOINT}
+ status="$?"
+ else
+ einfo "Using local volume file"
+ start-stop-daemon --start --pidfile ${GLUSTERFS_PIDFILE} \
+ --exec /usr/sbin/glusterfsd -- \
+ --pid-file=${GLUSTERFS_PIDFILE} \
+ --log-file=${GLUSTERFS_LOGFILE} \
+ --volfile=${GLUSTERFS_VOLFILE} \
+ ${GLUSTERFS_OPTS} ${GLUSTERFS_MOUNTPOINT}
+ status="$?"
+ fi
+
+ eoutdent
+ eend ${status}
+}
+
+stop() {
+ local status
+
+ ebegin "Stopping GlusterFS (${SVCNAME})"
+ eindent
+ if [[ -z "${GLUSTERFS_MOUNTPOINT}" ]]
+ then
+ einfo "Stopping server process ..."
+ start-stop-daemon --stop --pidfile ${GLUSTERFS_PIDFILE}
+ status="$?"
+ else
+ einfo "Unmounting ${GLUSTERFS_MOUNTPOINT} ..."
+ umount "${GLUSTERFS_MOUNTPOINT}"
+ status="$?"
+ fi
+ eoutdent
+ eend ${status}
+}
diff --git a/sys-cluster/glusterfs/files/glusterfs.logrotate b/sys-cluster/glusterfs/files/glusterfs.logrotate
new file mode 100644
index 000000000000..07ae7b9e54dc
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs.logrotate
@@ -0,0 +1,34 @@
+# Rotate client logs
+/var/log/glusterfs/*.log {
+ weekly
+ rotate 52
+ missingok
+
+ # compress the logs, but from the .2 onwards
+ compress
+ delaycompress
+ notifempty
+
+ sharedscripts
+ postrotate
+ /usr/bin/killall -HUP glusterfs > /dev/null 2>&1 || true
+ /usr/bin/killall -HUP glusterd > /dev/null 2>&1 || true
+ endscript
+}
+
+# Rotate server logs
+/var/log/glusterfs/bricks/*.log {
+ weekly
+ rotate 52
+ missingok
+
+ # compress the logs, but from the .2 onwards
+ compress
+ delaycompress
+ notifempty
+
+ sharedscripts
+ postrotate
+ /usr/bin/killall -HUP glusterfsd > /dev/null 2>&1 || true
+ endscript
+}
diff --git a/sys-cluster/glusterfs/files/glusterfs.vim b/sys-cluster/glusterfs/files/glusterfs.vim
new file mode 100644
index 000000000000..bbb9cb1efa97
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs.vim
@@ -0,0 +1,8 @@
+if &compatible || v:version < 603
+ finish
+endif
+
+
+" GlusterFS Volume files
+au BufNewFile,BufRead *.vol
+ \ set filetype=glusterfs
diff --git a/sys-cluster/glusterfs/glusterfs-3.1.2.ebuild b/sys-cluster/glusterfs/glusterfs-3.1.2.ebuild
new file mode 100644
index 000000000000..b21ad7a52608
--- /dev/null
+++ b/sys-cluster/glusterfs/glusterfs-3.1.2.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+inherit autotools elisp-common eutils multilib versionator
+
+DESCRIPTION="GlusterFS is a powerful network/cluster filesystem"
+HOMEPAGE="http://www.gluster.org/"
+SRC_URI="http://ftp.gluster.com/pub/gluster/${PN}/$(get_version_component_range '1-2')/${PV}/${P}.tar.gz"
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86"
+IUSE="emacs extras +fuse infiniband static-libs vim-syntax"
+
+RDEPEND="emacs? ( virtual/emacs )
+ fuse? ( >=sys-fs/fuse-2.7.0 )
+ infiniband? ( sys-infiniband/libibverbs )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ sys-devel/bison
+ sys-devel/flex"
+
+SITEFILE="50${PN}-mode-gentoo.el"
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-3.1.0-parallel-build.patch" \
+ "${FILESDIR}/${PN}-docdir.patch" \
+ "${FILESDIR}/glusterd-workdir.patch"
+ sed -i -e "s/ -ggdb3//g" argp-standalone/configure.ac || die
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable fuse fuse-client) \
+ $(use_enable infiniband ibverbs) \
+ $(use_enable static-libs static) \
+ --disable-bdb \
+ --docdir=/usr/share/doc/${PF} \
+ --localstatedir=/var
+}
+
+src_compile() {
+ emake || die
+ if use emacs ; then
+ elisp-compile extras/glusterfs-mode.el || die
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+
+ if use emacs ; then
+ elisp-install ${PN} extras/glusterfs-mode.el* || die
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+
+ if use vim-syntax ; then
+ insinto /usr/share/vim/vimfiles/ftdetect; doins "${FILESDIR}/glusterfs.vim" || die
+ insinto /usr/share/vim/vimfiles/syntax; doins extras/glusterfs.vim || die
+ fi
+
+ if use extras ; then
+ newbin extras/volgen/glusterfs-volgen glusterfs-volgen || die
+ newbin extras/backend-xattr-sanitize.sh glusterfs-backend-xattr-sanitize || die
+ newbin extras/migrate-unify-to-distribute.sh glusterfs-migrate-unify-to-distribute || die
+ fi
+
+ dodoc AUTHORS ChangeLog NEWS README THANKS || die
+
+ newinitd "${FILESDIR}/${PN}.initd" glusterfsd || die
+ newinitd "${FILESDIR}/glusterd.initd" glusterd || die
+ newconfd "${FILESDIR}/${PN}.confd" glusterfsd || die
+
+ keepdir /var/log/${PN} || die
+ keepdir /var/lib/glusterd || die
+}
+
+pkg_postinst() {
+ elog "Starting with ${PN}-3.1.0, you can use the glusterd daemon to configure your"
+ elog "volumes dynamically. To do so, simply use the gluster CLI after running:"
+ elog " /etc/init.d/glusterd start"
+ elog
+ elog "For static configurations, the glusterfsd startup script can be multiplexed."
+ elog "The default startup script uses /etc/conf.d/glusterfsd to configure the"
+ elog "separate service. To create additional instances of the glusterfsd service"
+ elog "simply create a symlink to the glusterfsd startup script."
+ elog
+ elog "Example:"
+ elog " # ln -s glusterfsd /etc/init.d/glusterfsd2"
+ elog " # ${EDITOR} /etc/glusterfs/glusterfsd2.vol"
+ elog "You can now treat glusterfsd2 like any other service"
+ elog
+ elog "For more information on how to mount exported GlusterFS filesystems visit:"
+ elog "http://www.gluster.org/docs/index.php/Mounting_a_GlusterFS_Volume"
+ elog
+ elog "If you are upgrading from glusterfs 3.0.x please read:"
+ elog "http://www.gluster.com/community/documentation/index.php/Gluster_3.0_to_3.1_Upgrade_Guide"
+ elog
+ ewarn "You need to use a ntp client to keep the clocks synchronized across all"
+ ewarn "of your servers. Setup a NTP synchronizing service before attempting to"
+ ewarn "run GlusterFS."
+
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/sys-cluster/glusterfs/glusterfs-3.2.7.ebuild b/sys-cluster/glusterfs/glusterfs-3.2.7.ebuild
new file mode 100644
index 000000000000..ffd564e4b2b9
--- /dev/null
+++ b/sys-cluster/glusterfs/glusterfs-3.2.7.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_DEPEND="2"
+inherit autotools elisp-common eutils multilib python versionator
+
+DESCRIPTION="GlusterFS is a powerful network/cluster filesystem"
+HOMEPAGE="http://www.gluster.org/"
+SRC_URI="http://ftp.gluster.com/pub/gluster/${PN}/$(get_version_component_range '1-2')/${PV}/${P}.tar.gz"
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="emacs extras +fuse infiniband static-libs vim-syntax"
+
+RDEPEND="emacs? ( virtual/emacs )
+ fuse? ( >=sys-fs/fuse-2.7.0 )
+ infiniband? ( sys-infiniband/libibverbs )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ sys-devel/bison
+ sys-devel/flex"
+
+SITEFILE="50${PN}-mode-gentoo.el"
+
+pkg_setup() {
+ python_set_active_version 2
+ python_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-3.1.0-parallel-build.patch" \
+ "${FILESDIR}/${PN}-docdir.patch" \
+ "${FILESDIR}/glusterd-3.2.0-workdir.patch"
+ sed -i -e "s/ -ggdb3//g" -e "s/ -m64//g" argp-standalone/configure.ac || die
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable fuse fuse-client) \
+ $(use_enable infiniband ibverbs) \
+ $(use_enable static-libs static) \
+ --enable-georeplication \
+ --disable-bdb \
+ --docdir=/usr/share/doc/${PF} \
+ --localstatedir=/var
+}
+
+src_compile() {
+ emake
+ if use emacs ; then
+ elisp-compile extras/glusterfs-mode.el || die
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ if use emacs ; then
+ elisp-install ${PN} extras/glusterfs-mode.el* || die
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+
+ if use vim-syntax ; then
+ insinto /usr/share/vim/vimfiles/ftdetect; doins "${FILESDIR}/glusterfs.vim"
+ insinto /usr/share/vim/vimfiles/syntax; doins extras/glusterfs.vim
+ fi
+
+ if use extras ; then
+ newbin extras/backend-xattr-sanitize.sh glusterfs-backend-xattr-sanitize
+ newbin extras/backend-cleanup.sh glusterfs-backend-cleanup
+ newbin extras/migrate-unify-to-distribute.sh glusterfs-migrate-unify-to-distribute
+ newbin extras/disk_usage_sync.sh glusterfs-disk-usage-sync
+ fi
+
+ dodoc AUTHORS ChangeLog NEWS README THANKS
+
+ newinitd "${FILESDIR}/${PN}.initd" glusterfsd
+ newinitd "${FILESDIR}/glusterd.initd" glusterd
+ newconfd "${FILESDIR}/${PN}.confd" glusterfsd
+
+ keepdir /var/log/${PN}
+ keepdir /var/lib/glusterd
+
+ python_convert_shebangs -r 2 "${ED}"
+}
+
+pkg_postinst() {
+ elog "Starting with ${PN}-3.1.0, you can use the glusterd daemon to configure your"
+ elog "volumes dynamically. To do so, simply use the gluster CLI after running:"
+ elog " /etc/init.d/glusterd start"
+ elog
+ elog "For static configurations, the glusterfsd startup script can be multiplexed."
+ elog "The default startup script uses /etc/conf.d/glusterfsd to configure the"
+ elog "separate service. To create additional instances of the glusterfsd service"
+ elog "simply create a symlink to the glusterfsd startup script."
+ elog
+ elog "Example:"
+ elog " # ln -s glusterfsd /etc/init.d/glusterfsd2"
+ elog " # ${EDITOR} /etc/glusterfs/glusterfsd2.vol"
+ elog "You can now treat glusterfsd2 like any other service"
+ elog
+ ewarn "You need to use a ntp client to keep the clocks synchronized across all"
+ ewarn "of your servers. Setup a NTP synchronizing service before attempting to"
+ ewarn "run GlusterFS."
+
+ if [[ ${REPLACING_VERSIONS} < 3.1 ]]; then
+ elog
+ elog "You are upgrading from a previous version of ${PN}, please read:"
+ elog "http://www.gluster.com/community/documentation/index.php/Gluster_3.0_to_3.2_Upgrade_Guide"
+ fi
+
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/sys-cluster/glusterfs/glusterfs-3.3.1-r2.ebuild b/sys-cluster/glusterfs/glusterfs-3.3.1-r2.ebuild
new file mode 100644
index 000000000000..fd8b7dd11614
--- /dev/null
+++ b/sys-cluster/glusterfs/glusterfs-3.3.1-r2.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_DEPEND="2"
+AUTOTOOLS_AUTORECONF=1
+
+inherit autotools-utils elisp-common eutils multilib python versionator
+
+DESCRIPTION="GlusterFS is a powerful network/cluster filesystem"
+HOMEPAGE="http://www.gluster.org/"
+SRC_URI="http://download.gluster.org/pub/gluster/${PN}/$(get_version_component_range '1-2')/${PV}/${P}.tar.gz"
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="emacs extras +fuse infiniband static-libs vim-syntax"
+
+RDEPEND="emacs? ( virtual/emacs )
+ fuse? ( >=sys-fs/fuse-2.7.0 )
+ infiniband? ( sys-infiniband/libibverbs )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ sys-devel/bison
+ sys-devel/flex"
+
+SITEFILE="50${PN}-mode-gentoo.el"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.3.0-parallel-build.patch"
+ "${FILESDIR}/${PN}-3.3.0-docdir.patch"
+ "${FILESDIR}/${PN}-3.3.0-silent_rules.patch"
+ "${FILESDIR}/${PN}-3.3.0-avoid-version.patch"
+)
+
+DOCS=( AUTHORS ChangeLog NEWS README THANKS )
+
+pkg_setup() {
+ python_set_active_version 2
+ python_pkg_setup
+}
+
+src_prepare() {
+ sed -e "s/ -ggdb3//g" \
+ -i argp-standalone/configure.ac || die
+ sed -e "s:\$(PYTHON):${PREFIX}/usr/bin/python2:g" \
+ -i xlators/features/marker/utils/src/Makefile.am || die #446330
+ sed -e 's:"/usr/local/libexec/glusterfs:GSYNCD_PREFIX":' \
+ -i xlators/mgmt/glusterd/src/glusterd.c || die #464196
+ autotools-utils_src_prepare
+ cd argp-standalone && eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --disable-dependency-tracking
+ --disable-silent-rules
+ $(use_enable fuse fuse-client)
+ $(use_enable infiniband ibverbs)
+ $(use_enable static-libs static)
+ --enable-georeplication
+ --docdir=/usr/share/doc/${PF}
+ --localstatedir=/var
+ )
+ autotools-utils_src_configure
+}
+
+src_compile() {
+ autotools-utils_src_compile
+ if use emacs ; then
+ elisp-compile extras/glusterfs-mode.el || die
+ fi
+}
+
+src_install() {
+ autotools-utils_src_install
+
+ if use emacs ; then
+ elisp-install ${PN} extras/glusterfs-mode.el* || die
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+
+ if use vim-syntax ; then
+ insinto /usr/share/vim/vimfiles/ftdetect; doins "${FILESDIR}"/${PN}.vim
+ insinto /usr/share/vim/vimfiles/syntax; doins extras/${PN}.vim
+ fi
+
+ if use extras ; then
+ newbin extras/backend-xattr-sanitize.sh ${PN}-backend-xattr-sanitize
+ newbin extras/backend-cleanup.sh ${PN}-backend-cleanup
+ newbin extras/migrate-unify-to-distribute.sh ${PN}-migrate-unify-to-distribute
+ newbin extras/disk_usage_sync.sh ${PN}-disk-usage-sync
+ fi
+
+ newinitd "${FILESDIR}/${PN}-r1.initd" glusterfsd
+ newinitd "${FILESDIR}/glusterd.initd" glusterd
+ newconfd "${FILESDIR}/${PN}.confd" glusterfsd
+
+ keepdir /var/log/${PN}
+ keepdir /var/lib/glusterd
+
+ python_convert_shebangs -r 2 "${ED}"
+}
+
+pkg_postinst() {
+ elog "Starting with ${PN}-3.1.0, you can use the glusterd daemon to configure your"
+ elog "volumes dynamically. To do so, simply use the gluster CLI after running:"
+ elog " /etc/init.d/glusterd start"
+ elog
+ elog "For static configurations, the glusterfsd startup script can be multiplexed."
+ elog "The default startup script uses /etc/conf.d/glusterfsd to configure the"
+ elog "separate service. To create additional instances of the glusterfsd service"
+ elog "simply create a symlink to the glusterfsd startup script."
+ elog
+ elog "Example:"
+ elog " # ln -s glusterfsd /etc/init.d/glusterfsd2"
+ elog " # ${EDITOR} /etc/glusterfs/glusterfsd2.vol"
+ elog "You can now treat glusterfsd2 like any other service"
+ elog
+ ewarn "You need to use a ntp client to keep the clocks synchronized across all"
+ ewarn "of your servers. Setup a NTP synchronizing service before attempting to"
+ ewarn "run GlusterFS."
+
+ elog
+ elog "You are upgrading from a previous version of ${PN}, please read:"
+ elog "http://vbellur.wordpress.com/2012/05/31/upgrading-to-glusterfs-3-3/"
+
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/sys-cluster/glusterfs/glusterfs-3.5.3.ebuild b/sys-cluster/glusterfs/glusterfs-3.5.3.ebuild
new file mode 100644
index 000000000000..e818b4129403
--- /dev/null
+++ b/sys-cluster/glusterfs/glusterfs-3.5.3.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+AUTOTOOLS_AUTORECONF=1
+
+inherit autotools-utils elisp-common eutils multilib python-single-r1 versionator
+
+DESCRIPTION="GlusterFS is a powerful network/cluster filesystem"
+HOMEPAGE="http://www.gluster.org/"
+SRC_URI="http://download.gluster.org/pub/gluster/${PN}/$(get_version_component_range '1-2')/${PV}/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 LGPL-3+ )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="bd-xlator crypt-xlator debug emacs +fuse +georeplication glupy infiniband qemu-block rsyslog static-libs +syslog systemtap vim-syntax +xml"
+
+REQUIRED_USE="georeplication? ( ${PYTHON_REQUIRED_USE} )
+ glupy? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="bd-xlator? ( sys-fs/lvm2 )
+ emacs? ( virtual/emacs )
+ fuse? ( >=sys-fs/fuse-2.7.0 )
+ georeplication? ( ${PYTHON_DEPS} )
+ infiniband? ( sys-infiniband/libibverbs:* sys-infiniband/librdmacm:* )
+ qemu-block? ( dev-libs/glib:2 )
+ systemtap? ( dev-util/systemtap )
+ xml? ( dev-libs/libxml2 )
+ sys-libs/readline:=
+ dev-libs/libaio
+ dev-libs/openssl:=
+ || ( sys-libs/glibc sys-libs/argp-standalone )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ sys-devel/bison
+ sys-devel/flex"
+
+SITEFILE="50${PN}-mode-gentoo.el"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.4.0-silent_rules.patch"
+ "${FILESDIR}/${PN}-3.5.1-Add-libraries-using-LIBADD-instead-of-LDFLAGS.patch"
+ "${FILESDIR}/${PN}-3.5.1-build-shared-only.patch"
+)
+
+DOCS=( AUTHORS ChangeLog NEWS README THANKS )
+
+# Maintainer notes:
+# * The build system will always configure & build argp-standalone but it'll never use it
+# if the argp.h header is found in the system. Which should be the case with
+# glibc or if argp-standalone is installed.
+
+pkg_setup() {
+ ( use georeplication || use glupy ) && python-single-r1_pkg_setup
+}
+
+src_configure() {
+ local myeconfargs=(
+ --disable-dependency-tracking
+ --disable-silent-rules
+ --disable-fusermount
+ $(use_enable debug)
+ $(use_enable bd-xlator)
+ $(use_enable crypt-xlator)
+ $(use_enable fuse fuse-client)
+ $(use_enable georeplication)
+ $(use_enable glupy)
+ $(use_enable infiniband ibverbs)
+ $(use_enable qemu-block)
+ $(use_enable static-libs static)
+ $(use_enable syslog)
+ $(use_enable systemtap)
+ $(use_enable xml xml-output)
+ --docdir=/usr/share/doc/${PF}
+ --localstatedir=/var
+ )
+ autotools-utils_src_configure
+}
+
+src_compile() {
+ autotools-utils_src_compile
+
+ use emacs && elisp-compile extras/glusterfs-mode.el
+}
+
+src_install() {
+ autotools-utils_src_install
+
+ rm \
+ "${D}"/etc/glusterfs/glusterfs-{georep-,}logrotate \
+ "${D}"/etc/glusterfs/gluster-rsyslog-*.conf \
+ "${D}"/usr/share/doc/${PF}/glusterfs{-mode.el,.vim} || die "removing false files failed"
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/glusterfs.logrotate glusterfs
+
+ if use rsyslog ; then
+ insinto /etc/rsyslog.d
+ newins extras/gluster-rsyslog-7.2.conf 60-gluster.conf
+ fi
+
+ if use emacs ; then
+ elisp-install ${PN} extras/glusterfs-mode.el*
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+
+ if use vim-syntax ; then
+ insinto /usr/share/vim/vimfiles/ftdetect; doins "${FILESDIR}"/${PN}.vim
+ insinto /usr/share/vim/vimfiles/syntax; doins extras/${PN}.vim
+ fi
+
+ # insert some other tools which might be useful
+ insinto /usr/share/glusterfs/scripts
+ doins \
+ extras/backend-{cleanup,xattr-sanitize}.sh \
+ extras/clear_xattrs.sh \
+ extras/migrate-unify-to-distribute.sh
+
+ # correct permissions on installed scripts
+ # fperms 0755 /usr/share/glusterfs/scripts/*.sh
+ chmod 0755 "${ED}"/usr/share/glusterfs/scripts/*.sh || die
+
+ if use georeplication ; then
+ # move the gsync-sync-gfid tool to a binary path
+ # and set a symlink to be compliant with all other distros
+ mv "${ED}"/usr/{share/glusterfs/scripts/gsync-sync-gfid,libexec/glusterfs/} || die
+ dosym ../../../libexec/glusterfs/gsync-sync-gfid /usr/share/glusterfs/scripts/gsync-sync-gfid
+ fi
+
+ newinitd "${FILESDIR}/${PN}-r1.initd" glusterfsd
+ newinitd "${FILESDIR}/glusterd-r2.initd" glusterd
+ newconfd "${FILESDIR}/${PN}.confd" glusterfsd
+
+ keepdir /var/log/${PN}
+ keepdir /var/lib/glusterd
+
+ # QA
+ rm -rf "${ED}/var/run/" || die
+
+ use georeplication && python_fix_shebang "${ED}"
+}
+
+pkg_postinst() {
+ elog "Starting with ${PN}-3.1.0, you can use the glusterd daemon to configure your"
+ elog "volumes dynamically. To do so, simply use the gluster CLI after running:"
+ elog " /etc/init.d/glusterd start"
+ echo
+ elog "For static configurations, the glusterfsd startup script can be multiplexed."
+ elog "The default startup script uses /etc/conf.d/glusterfsd to configure the"
+ elog "separate service. To create additional instances of the glusterfsd service"
+ elog "simply create a symlink to the glusterfsd startup script."
+ echo
+ elog "Example:"
+ elog " # ln -s glusterfsd /etc/init.d/glusterfsd2"
+ elog " # ${EDITOR} /etc/glusterfs/glusterfsd2.vol"
+ elog "You can now treat glusterfsd2 like any other service"
+ echo
+ ewarn "You need to use a ntp client to keep the clocks synchronized across all"
+ ewarn "of your servers. Setup a NTP synchronizing service before attempting to"
+ ewarn "run GlusterFS."
+
+ elog
+ elog "If you are upgrading from a previous version of ${PN}, please read:"
+ elog " http://www.gluster.org/community/documentation/index.php/Upgrade_to_3.5"
+
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/sys-cluster/glusterfs/metadata.xml b/sys-cluster/glusterfs/metadata.xml
new file mode 100644
index 000000000000..7ca776b6ff2c
--- /dev/null
+++ b/sys-cluster/glusterfs/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cluster</herd>
+ <longdescription lang="en">
+ GlusterFS is a cluster file-system capable of scaling to several peta-bytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is based on a stackable user space design without compromising performance.
+ </longdescription>
+ <use>
+ <flag name="bd-xlator">Enable the blockdevice translator (requires <pkg>sys-fs/lvm2</pkg>)</flag>
+ <flag name="crypt-xlator">Enable the encryption translator</flag>
+ <flag name="fuse">Add FUSE mount helper</flag>
+ <flag name="glupy">Enable support for translators written in Python</flag>
+ <flag name="georeplication">Enable support for georeplication (requires <pkg>dev-lang/python</pkg>)</flag>
+ <flag name="extras">Install extra helper scripts</flag>
+ <flag name="infiniband">Add support for Infiniband ibverbs transport.
+ Libraries can be found in science overlay</flag>
+ <flag name="rsyslog">Install configuration snippet for <pkg>app-admin/rsyslog</pkg></flag>
+ <flag name="qemu-block">Transparently create files as QCow2/QED images in the backend, including the possibility to snapshot.</flag>
+ <flag name="systemtap">Enable support for <pkg>dev-util/systemtap</pkg></flag>
+ </use>
+</pkgmetadata>