summaryrefslogtreecommitdiffstats
path: root/sys-cluster
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@suren.me>2019-09-01 00:00:32 +0200
committerSuren A. Chilingaryan <csa@suren.me>2019-09-01 00:00:32 +0200
commitca9627e70852f6b2e835660df870fe3ab405882d (patch)
tree0a008b1d5b16fa0679a195ed7b5662c7891f591c /sys-cluster
downloaddarklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.gz
darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.bz2
darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.xz
darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.zip
Initial import
Diffstat (limited to 'sys-cluster')
-rw-r--r--sys-cluster/glusterfs/Manifest12
-rw-r--r--sys-cluster/glusterfs/files/50glusterfs-mode-gentoo.el5
-rw-r--r--sys-cluster/glusterfs/files/glusterd-r2.initd33
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.4.0-silent_rules.patch23
-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-3.6.5-build-shared-only.patch547
-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.logrotate34
-rw-r--r--sys-cluster/glusterfs/files/glusterfs.vim8
-rw-r--r--sys-cluster/glusterfs/glusterfs-3.9.1.ebuild212
12 files changed, 1632 insertions, 0 deletions
diff --git a/sys-cluster/glusterfs/Manifest b/sys-cluster/glusterfs/Manifest
new file mode 100644
index 0000000..5093096
--- /dev/null
+++ b/sys-cluster/glusterfs/Manifest
@@ -0,0 +1,12 @@
+AUX 50glusterfs-mode-gentoo.el 169 SHA256 2467d044665d16dd95f78f7a7a104099ce00849cd0a2a86b110fe4c91b316a9d SHA512 f90b3f49f53c08db5596a6795df64a834b390602a79fb79b56f6cfb6191c7ca8ce2bedd2885d049575e26cc3b321f80e2786e99055c02682f4fbf454d5ed5804 WHIRLPOOL fb4abfc0c07ddc8805430446bd901b95a9951f53711da647e87ea8c26bece8ed9c7bb17b33cfa9b114ba2a64a055f275202d520cf37ee0c178d005d07ff80173
+AUX glusterd-r2.initd 756 SHA256 5fee2ab663249573f1f37d8b32ba8d609028446d12bdcfd925d763803cd88d47 SHA512 ad0f69cde665515b8cd2ce0ceeb2d6abdbf84dd2a2cde4f883a76b44fe61c18261ef4120f6e11eb6ef4a61b9361fd2eb6e5a3a62e98c78c086b4d177e3115b57 WHIRLPOOL 731dbd0bcf7f30b16c83ed08751b5768e5185c2231f55bc051ff0c2396856a7ed1a0db271f6bc18c9533c427aaa103503113806bf9a857c76e703cbc64f965ec
+AUX glusterfs-3.4.0-silent_rules.patch 553 SHA256 08a55b2f54050ad47dae1a953fc1f1410842556bf2464ab15e7df9019ab24de5 SHA512 67fe230a667084f30960d4ed79f58c7da93edde086ca8614cb3f7160901cb87da471cce932cfae470033c5dfc92b00ed69fd0e32238bc0e9af770e1946f511ce WHIRLPOOL e596ee4c6fae6cb7f843501b55e832791d612547f81d5e6adf4e96ea8cc4fc20fd71d5164f7fe42a74ed0b8e7036643cd5b684317f98bfd610b91dbe4c4c3684
+AUX glusterfs-3.5.1-Add-libraries-using-LIBADD-instead-of-LDFLAGS.patch 2145 SHA256 10b0ad92f61996f7ca0e0bf12b383813c4cd2013d95d8b6e1ab53a18853a9e05 SHA512 22d4ead173579698a23b7d66e566e61410e5bc0178b1dc0b7346b18d7e8cf33a44873b83a09e6dab32b06e7df8285da4bb7eb730626c61c1b3d28e9e8ce86f00 WHIRLPOOL e8e5572a5861478c718cd0b89c74159e3b13f6ef204eb3e3b2d8af8ddd296bc71469648ae957f0dd4e18de187e6fcd3e1910ea9ec5a707b78f61af8c88c9bb9b
+AUX glusterfs-3.5.1-build-shared-only.patch 25227 SHA256 203d834d63845e0324585d99dbe0a34deda7a2b06949223787359946440e8ad2 SHA512 6ea22772c9dec330c63d5665a861537536fec6a66cecccad36f0123cc35818d31096bce5561d6ea3d2318327c0f28831bc81d83b489e71432dfcf8879ee56fd9 WHIRLPOOL d983d70170ca78be7a7533f96334baf6127864e63d17e1597f164db60ac5d52d4fb1a78a9d2d7cae998946fc9a4dd8eb2d3fef68de749fcb2f8e5e7079967d16
+AUX glusterfs-3.6.5-build-shared-only.patch 27261 SHA256 b2d73ffb27f07bf762e8f67bdbbbdd3a7eef62049ec346a2ab84a9171e55c053 SHA512 cbaa02845022cb32aab1e419d13f8291b59aa6de78ccdd944af52d05defcd4ae9bb891c0f303f7d4870056e0777d70507b137aa9e38a4a13a267925a3cbc0277 WHIRLPOOL ab0b75e36a0f3011618e87dc9490471c9a759cd65985074a3046be5bb3609830018ca50d82de4db8b783424c46768d4b2fe0c906271cb5e2a01fec264b0f26e1
+AUX glusterfs-r1.initd 3072 SHA256 ee75831e6c81f5944adf15e7bf3b929972581031ae4d782e50bb69c4edf2845b SHA512 79594885b78ba9f2aa3bceea2df4abff0d0249fbdab1b4054051060463e4c630daeccb75b69ba96138614b93fa585ce5967534d3cb72e986fd160f951c2e19da WHIRLPOOL 4d4bc5f987879b2ef63bda994be846871eed96cf6e7a506e3b37389dead717a44a01459c36280de59f3ba8742f97c3ddcfc995c3e1df18f75fd950beaa48f7ec
+AUX glusterfs.confd 129 SHA256 a9023ba1112ceb4597c654228f0beb0053ed695aeb32c65e0749a7157fab563d SHA512 657c478dd3a60c144543821acd6a87f804d258d4679007aad5108790449e43eda7e0de8e8c0c8e13357a35afbb0d09065423101e5234285a9b96c9ac8b2e33b4 WHIRLPOOL 114f076456845087bf4dc28fb179cfea335f5f03b1d16098d836b5b0487c46fba4ee48d0bfab8cff7b2326b9585b327271d5c1d402db8289cafdf29f70ac063d
+AUX glusterfs.logrotate 611 SHA256 ec29f5830f6108fca793d6ac90bb49e644a991a073a736ccb76fd05f9a9f60a2 SHA512 568728fe77acecb686286b0be6c086fe3448d054d26da15c3846726a8f845ae963e6756c517b413a9eb4d6b646c61972887a35e89846d2d90d364b755e471791 WHIRLPOOL 10ced84d8035e3e7e5aaa013cd7c0c9761999e8ddca41ff2df3ed2be7a78add579d5c2b17a27b86d9a6fafdb607b9d175725208af72585d9fdc66b3bdb5fed3d
+AUX glusterfs.vim 139 SHA256 f214c1c8a01c9184b535fa7ae307200a8a1dc83fd42e92bdd57a7b1cae1dc099 SHA512 6ea3b56b71d7e206a57611dd68160b6b9242a19b5c927560f60881dc28d250f7958c50f788a7b9a41fb46010fdac2d67a8289b909ed1f05b793c900f37ccbfb7 WHIRLPOOL 3006d9fea924fe274ac00dc5d711cfe642f347808889c3d5dbde764f0f0cd2ab27509fa75d37b95ccd98c33bc1db8d082e5d16a26e0f888b7189f9738b6ff963
+DIST glusterfs-3.9.1.tar.gz 8810650 SHA256 896fdbaf6696a90cfd5ce1e338e158669d0f6c839b13f3a1844e44907f88e30a SHA512 ffd786567be73b6b0c3569dc24769cb2bc1aed17675747d1192f96da755acde63d8f2ab8bbad6f1ba687a8484d0a9b7dd71fe0cce7fab0fa7b8b0dae9576a1cc WHIRLPOOL c65ef50c25827ead64fd61803b69377151791b3d3343690d5f3d8ed18f8c7172cbbe66944e6dd2b78e18aa1f0da24dec667917849d214008113d2aba7e660b89
+EBUILD glusterfs-3.9.1.ebuild 6369 SHA256 7029679bfca275b8ad0eb1b408f69381758f9b75a8d807d0f20cd9cd3714b26b SHA512 e0c936adb66eb94794d12672af2ef1b4cb438013d7a31456e614f0948eec911341910726d1371cfae721b863d66c01231306d30e6df161b5f6d6fa3609678b41 WHIRLPOOL 078d04821afeaf15219bbed36be14a3a7d1c43842ab01f08aa3ba476d6f259a7186335ab4f1301e1bb23040816141ca634e4f1391837dc4a23559db6bf2cc36f
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 0000000..c14b0d8
--- /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-r2.initd b/sys-cluster/glusterfs/files/glusterd-r2.initd
new file mode 100644
index 0000000..bd33651
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterd-r2.initd
@@ -0,0 +1,33 @@
+#!/sbin/openrc-run
+# 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/glusterfs-3.4.0-silent_rules.patch b/sys-cluster/glusterfs/files/glusterfs-3.4.0-silent_rules.patch
new file mode 100644
index 0000000..1b79e0d
--- /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.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 0000000..5c4df0c
--- /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 0000000..9acf0d7
--- /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-3.6.5-build-shared-only.patch b/sys-cluster/glusterfs/files/glusterfs-3.6.5-build-shared-only.patch
new file mode 100644
index 0000000..af5332b
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.6.5-build-shared-only.patch
@@ -0,0 +1,547 @@
+diff -ur a/rpc/rpc-transport/rdma/src/Makefile.am b/rpc/rpc-transport/rdma/src/Makefile.am
+--- a/rpc/rpc-transport/rdma/src/Makefile.am 2015-08-28 10:56:17.750192744 +0200
++++ b/rpc/rpc-transport/rdma/src/Makefile.am 2015-08-28 11:00:36.322686236 +0200
+@@ -3,7 +3,7 @@
+ transport_LTLIBRARIES = rdma.la
+ transportdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/rpc-transport
+
+-rdma_la_LDFLAGS = -module -avoid-version -nostartfiles
++rdma_la_LDFLAGS = -module -avoid-version -nostartfiles -shared
+
+ rdma_la_SOURCES = rdma.c name.c
+ rdma_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
+Only in b/rpc/rpc-transport/rdma/src: Makefile.am.orig
+Only in b/rpc/rpc-transport/rdma/src: Makefile.am.rej
+diff -ur a/rpc/rpc-transport/socket/src/Makefile.am b/rpc/rpc-transport/socket/src/Makefile.am
+--- a/rpc/rpc-transport/socket/src/Makefile.am 2015-08-28 10:56:17.750192744 +0200
++++ b/rpc/rpc-transport/socket/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -3,7 +3,7 @@
+ 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 -ur a/xlators/cluster/afr/src/Makefile.am b/xlators/cluster/afr/src/Makefile.am
+--- a/xlators/cluster/afr/src/Makefile.am 2015-08-28 10:56:17.740192649 +0200
++++ b/xlators/cluster/afr/src/Makefile.am 2015-08-28 11:01:31.603219323 +0200
+@@ -10,11 +10,11 @@
+ afr-self-heal-entry.c afr-self-heal-metadata.c afr-self-heald.c \
+ afr-self-heal-name.c
+
+-afr_la_LDFLAGS = -module -avoid-version
++afr_la_LDFLAGS = -module -avoid-version -shared
+ afr_la_SOURCES = $(afr_common_source) $(AFR_SELFHEAL_SOURCES) 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) $(AFR_SELFHEAL_SOURCES) pump.c
+ pump_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
+
+Only in b/xlators/cluster/afr/src: Makefile.am.orig
+Only in b/xlators/cluster/afr/src: Makefile.am.rej
+diff -ur a/xlators/cluster/dht/src/Makefile.am b/xlators/cluster/dht/src/Makefile.am
+--- a/xlators/cluster/dht/src/Makefile.am 2015-08-28 10:56:17.740192649 +0200
++++ b/xlators/cluster/dht/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -11,13 +11,13 @@
+ 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 dht-messages.h dht-helper.h \
+Only in b/xlators/cluster/dht/src: Makefile.am.orig
+diff -ur a/xlators/cluster/stripe/src/Makefile.am b/xlators/cluster/stripe/src/Makefile.am
+--- a/xlators/cluster/stripe/src/Makefile.am 2015-08-28 10:56:17.740192649 +0200
++++ b/xlators/cluster/stripe/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -1,7 +1,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
+Only in b/xlators/cluster/stripe/src: Makefile.am.orig
+diff -ur a/xlators/debug/error-gen/src/Makefile.am b/xlators/debug/error-gen/src/Makefile.am
+--- a/xlators/debug/error-gen/src/Makefile.am 2015-08-28 10:56:17.720192456 +0200
++++ b/xlators/debug/error-gen/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/debug/io-stats/src/Makefile.am b/xlators/debug/io-stats/src/Makefile.am
+--- a/xlators/debug/io-stats/src/Makefile.am 2015-08-28 10:56:17.720192456 +0200
++++ b/xlators/debug/io-stats/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/debug/trace/src/Makefile.am b/xlators/debug/trace/src/Makefile.am
+--- a/xlators/debug/trace/src/Makefile.am 2015-08-28 10:56:17.720192456 +0200
++++ b/xlators/debug/trace/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/encryption/crypt/src/Makefile.am b/xlators/encryption/crypt/src/Makefile.am
+--- a/xlators/encryption/crypt/src/Makefile.am 2015-08-28 11:18:28.073021439 +0200
++++ b/xlators/encryption/crypt/src/Makefile.am 2015-08-28 11:16:28.051864039 +0200
+@@ -3,7 +3,7 @@
+ 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
+Only in b/xlators/encryption/crypt/src: Makefile.am.orig
+Only in b/xlators/encryption/crypt/src: Makefile.am.rej
+diff -ur a/xlators/encryption/rot-13/src/Makefile.am b/xlators/encryption/rot-13/src/Makefile.am
+--- a/xlators/encryption/rot-13/src/Makefile.am 2015-08-28 10:56:17.720192456 +0200
++++ b/xlators/encryption/rot-13/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/features/changelog/src/Makefile.am b/xlators/features/changelog/src/Makefile.am
+--- a/xlators/features/changelog/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/features/changelog/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -5,7 +5,7 @@
+ 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 changelog-barrier.c
+Only in b/xlators/features/changelog/src: Makefile.am.orig
+diff -ur a/xlators/features/compress/src/Makefile.am b/xlators/features/compress/src/Makefile.am
+--- a/xlators/features/compress/src/Makefile.am 2015-08-28 11:18:28.073021439 +0200
++++ b/xlators/features/compress/src/Makefile.am 2015-08-28 11:17:19.492360095 +0200
+@@ -4,7 +4,7 @@
+
+ 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)
+Only in b/xlators/features/compress/src: Makefile.am.rej
+diff -ur a/xlators/features/gfid-access/src/Makefile.am b/xlators/features/gfid-access/src/Makefile.am
+--- a/xlators/features/gfid-access/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/features/gfid-access/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/features/index/src/Makefile.am b/xlators/features/index/src/Makefile.am
+--- a/xlators/features/index/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/features/index/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/features/locks/src/Makefile.am b/xlators/features/locks/src/Makefile.am
+--- a/xlators/features/locks/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/features/locks/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/features/mac-compat/src/Makefile.am b/xlators/features/mac-compat/src/Makefile.am
+--- a/xlators/features/mac-compat/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/features/mac-compat/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/features/marker/src/Makefile.am b/xlators/features/marker/src/Makefile.am
+--- a/xlators/features/marker/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/features/marker/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/features/protect/src/Makefile.am b/xlators/features/protect/src/Makefile.am
+--- a/xlators/features/protect/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/features/protect/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -2,15 +2,15 @@
+
+ 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 -ur a/xlators/features/qemu-block/src/Makefile.am b/xlators/features/qemu-block/src/Makefile.am
+--- a/xlators/features/qemu-block/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/features/qemu-block/src/Makefile.am 2015-08-28 11:03:19.464259458 +0200
+@@ -2,7 +2,7 @@
+ 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) $(ZLIB_LIBS) -lrt
+
+ qemu_block_la_SOURCES_qemu = \
+Only in b/xlators/features/qemu-block/src: Makefile.am.orig
+Only in b/xlators/features/qemu-block/src: Makefile.am.rej
+diff -ur a/xlators/features/quiesce/src/Makefile.am b/xlators/features/quiesce/src/Makefile.am
+--- a/xlators/features/quiesce/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/features/quiesce/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/features/quota/src/Makefile.am b/xlators/features/quota/src/Makefile.am
+--- a/xlators/features/quota/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/features/quota/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/features/read-only/src/Makefile.am b/xlators/features/read-only/src/Makefile.am
+--- a/xlators/features/read-only/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/features/read-only/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -4,12 +4,12 @@
+
+ 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 -ur a/xlators/mgmt/glusterd/src/Makefile.am b/xlators/mgmt/glusterd/src/Makefile.am
+--- a/xlators/mgmt/glusterd/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/mgmt/glusterd/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/mount/fuse/src/Makefile.am b/xlators/mount/fuse/src/Makefile.am
+--- a/xlators/mount/fuse/src/Makefile.am 2015-08-28 10:56:17.720192456 +0200
++++ b/xlators/mount/fuse/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -26,7 +26,7 @@
+ 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) \
+Only in b/xlators/mount/fuse/src: Makefile.am.orig
+diff -ur a/xlators/nfs/server/src/Makefile.am b/xlators/nfs/server/src/Makefile.am
+--- a/xlators/nfs/server/src/Makefile.am 2015-08-28 10:56:17.740192649 +0200
++++ b/xlators/nfs/server/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/performance/io-cache/src/Makefile.am b/xlators/performance/io-cache/src/Makefile.am
+--- a/xlators/performance/io-cache/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/performance/io-cache/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/performance/io-threads/src/Makefile.am b/xlators/performance/io-threads/src/Makefile.am
+--- a/xlators/performance/io-threads/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/performance/io-threads/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/performance/md-cache/src/Makefile.am b/xlators/performance/md-cache/src/Makefile.am
+--- a/xlators/performance/md-cache/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/performance/md-cache/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/performance/open-behind/src/Makefile.am b/xlators/performance/open-behind/src/Makefile.am
+--- a/xlators/performance/open-behind/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/performance/open-behind/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/performance/quick-read/src/Makefile.am b/xlators/performance/quick-read/src/Makefile.am
+--- a/xlators/performance/quick-read/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/performance/quick-read/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/performance/read-ahead/src/Makefile.am b/xlators/performance/read-ahead/src/Makefile.am
+--- a/xlators/performance/read-ahead/src/Makefile.am 2015-08-28 10:56:17.720192456 +0200
++++ b/xlators/performance/read-ahead/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/performance/readdir-ahead/src/Makefile.am b/xlators/performance/readdir-ahead/src/Makefile.am
+--- a/xlators/performance/readdir-ahead/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/performance/readdir-ahead/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/performance/symlink-cache/src/Makefile.am b/xlators/performance/symlink-cache/src/Makefile.am
+--- a/xlators/performance/symlink-cache/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/performance/symlink-cache/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/performance/write-behind/src/Makefile.am b/xlators/performance/write-behind/src/Makefile.am
+--- a/xlators/performance/write-behind/src/Makefile.am 2015-08-28 10:56:17.730192551 +0200
++++ b/xlators/performance/write-behind/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/playground/template/src/Makefile.am b/xlators/playground/template/src/Makefile.am
+--- a/xlators/playground/template/src/Makefile.am 2015-08-28 10:56:17.720192456 +0200
++++ b/xlators/playground/template/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/protocol/auth/addr/src/Makefile.am b/xlators/protocol/auth/addr/src/Makefile.am
+--- a/xlators/protocol/auth/addr/src/Makefile.am 2015-08-28 10:56:17.740192649 +0200
++++ b/xlators/protocol/auth/addr/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/protocol/auth/login/src/Makefile.am b/xlators/protocol/auth/login/src/Makefile.am
+--- a/xlators/protocol/auth/login/src/Makefile.am 2015-08-28 10:56:17.740192649 +0200
++++ b/xlators/protocol/auth/login/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/protocol/client/src/Makefile.am b/xlators/protocol/client/src/Makefile.am
+--- a/xlators/protocol/client/src/Makefile.am 2015-08-28 10:56:17.740192649 +0200
++++ b/xlators/protocol/client/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/protocol/server/src/Makefile.am b/xlators/protocol/server/src/Makefile.am
+--- a/xlators/protocol/server/src/Makefile.am 2015-08-28 10:56:17.740192649 +0200
++++ b/xlators/protocol/server/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/storage/bd/src/Makefile.am b/xlators/storage/bd/src/Makefile.am
+--- a/xlators/storage/bd/src/Makefile.am 2015-08-28 10:56:17.720192456 +0200
++++ b/xlators/storage/bd/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -2,7 +2,7 @@
+ 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 -ur a/xlators/storage/posix/src/Makefile.am b/xlators/storage/posix/src/Makefile.am
+--- a/xlators/storage/posix/src/Makefile.am 2015-08-28 10:56:17.720192456 +0200
++++ b/xlators/storage/posix/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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 -ur a/xlators/system/posix-acl/src/Makefile.am b/xlators/system/posix-acl/src/Makefile.am
+--- a/xlators/system/posix-acl/src/Makefile.am 2015-08-28 10:56:17.720192456 +0200
++++ b/xlators/system/posix-acl/src/Makefile.am 2015-08-28 10:59:35.752102136 +0200
+@@ -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-r1.initd b/sys-cluster/glusterfs/files/glusterfs-r1.initd
new file mode 100644
index 0000000..717ee79
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-r1.initd
@@ -0,0 +1,122 @@
+#!/sbin/openrc-run
+# 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 0000000..257d0a8
--- /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.logrotate b/sys-cluster/glusterfs/files/glusterfs.logrotate
new file mode 100644
index 0000000..07ae7b9
--- /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 0000000..bbb9cb1
--- /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.9.1.ebuild b/sys-cluster/glusterfs/glusterfs-3.9.1.ebuild
new file mode 100644
index 0000000..dd7fd27
--- /dev/null
+++ b/sys-cluster/glusterfs/glusterfs-3.9.1.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2016 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 systemd 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 test +tiering vim-syntax +xml"
+
+REQUIRED_USE="georeplication? ( ${PYTHON_REQUIRED_USE} )
+ glupy? ( ${PYTHON_REQUIRED_USE} )"
+
+# the tests must be run as root
+RESTRICT="test"
+
+# sys-apps/util-linux is required for libuuid
+RDEPEND="bd-xlator? ( sys-fs/lvm2 )
+ emacs? ( virtual/emacs )
+ fuse? ( >=sys-fs/fuse-2.7.0 )
+ georeplication? ( ${PYTHON_DEPS} )
+ infiniband? ( sys-fabric/libibverbs:* sys-fabric/librdmacm:* )
+ qemu-block? ( dev-libs/glib:2 )
+ systemtap? ( dev-util/systemtap )
+ tiering? ( dev-db/sqlite:3 )
+ xml? ( dev-libs/libxml2 )
+ sys-libs/readline:=
+ dev-libs/libaio
+ dev-libs/openssl:=[-bindist]
+ dev-libs/userspace-rcu:=
+ || ( sys-libs/glibc sys-libs/argp-standalone )
+ sys-apps/util-linux"
+DEPEND="${RDEPEND}
+ virtual/acl
+ virtual/pkgconfig
+ sys-devel/bison
+ sys-devel/flex
+ test? ( >=dev-util/cmocka-1.0.1
+ app-benchmarks/dbench
+ dev-vcs/git
+ net-fs/nfs-utils
+ virtual/perl-Test-Harness
+ dev-libs/yajl
+ sys-fs/xfsprogs
+ sys-apps/attr )"
+
+SITEFILE="50${PN}-mode-gentoo.el"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.4.0-silent_rules.patch"
+)
+
+DOCS=( AUTHORS ChangeLog NEWS README.md 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() {
+ python_setup "python2*"
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # build rpc-transport and xlators only once as shared libs
+ find rpc/rpc-transport xlators -name Makefile.am -print0 \
+ | xargs -0 sed -i -e 's|.*_la_LDFLAGS = .*|\0 -shared|'
+
+ # fix execution permissions
+ chmod +x libglusterfs/src/gen-defaults.py || die
+
+ autotools-utils_src_prepare
+}
+
+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 test cmocka)
+ $(use_enable tiering)
+ $(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 static-libs || find "${ED}"/usr/$(get_libdir)/ -type f -name '*.la' -delete
+
+ # fix all shebang for python2 #560750
+ python_fix_shebang "${ED}"
+
+ # upstream already has a patch ready, to be removed once available, http://review.gluster.org/#/c/9458/
+ echo "d /run/gluster 0755 root root -" > "${T}/gluster.tmpfiles" || die
+ systemd_newtmpfilesd "${T}/gluster.tmpfiles" gluster.conf
+}
+
+src_test() {
+ ./run-tests.sh || 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"
+ 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
+}