sys-cluster/glusterfs: Add ipv6 USE flag to control ipv6-default
authorJames Le Cuirot <chewi@gentoo.org>
Fri, 9 Mar 2018 23:33:30 +0000 (23:33 +0000)
committerJames Le Cuirot <chewi@gentoo.org>
Fri, 9 Mar 2018 23:34:49 +0000 (23:34 +0000)
This is important because ipv6-default breaks Gluster for systems that
have IPv6 disabled.

A couple of patches were required because --without-ipv6-default is
broken and the configure summary is sometimes misleading.

Bug: https://bugs.gentoo.org/639838
Package-Manager: Portage-2.3.24, Repoman-2.3.6

sys-cluster/glusterfs/files/glusterfs-TIRPC-config-summary.patch [new file with mode: 0644]
sys-cluster/glusterfs/files/glusterfs-without-ipv6-default.patch [new file with mode: 0644]
sys-cluster/glusterfs/glusterfs-4.0.0-r1.ebuild [moved from sys-cluster/glusterfs/glusterfs-4.0.0.ebuild with 95% similarity]
sys-cluster/glusterfs/glusterfs-9999.ebuild
sys-cluster/glusterfs/metadata.xml

diff --git a/sys-cluster/glusterfs/files/glusterfs-TIRPC-config-summary.patch b/sys-cluster/glusterfs/files/glusterfs-TIRPC-config-summary.patch
new file mode 100644 (file)
index 0000000..c19ac76
--- /dev/null
@@ -0,0 +1,48 @@
+From 1e1c3cc0761879e8a2e4d4a884dacc555bbe7fa0 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Fri, 9 Mar 2018 23:06:43 +0000
+Subject: [PATCH 2/2] build: Fix misleading TIRPC result in configure summary
+
+Requesting ipv6-default even if you explicitly disable libtirpc will
+then implicitly enable libtirpc because that is required. That is fine
+but the configure summary should not then show TIRPC as disabled when
+it is not.
+
+The result has also been made clearer by stating that TIRPC is
+"missing" when it has been tried but not found.
+
+BUG: 1553938
+Change-Id: I945bd6859aaf3defa682b0d05ee34a9827b9c45f
+Signed-off-by: James Le Cuirot <chewi@gentoo.org>
+---
+ configure.ac | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index d42179182..9571dac76 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1097,16 +1097,15 @@ AC_SUBST(GF_DISTRIBUTION)
+ GF_HOST_OS=""
+ GF_LDFLAGS="-rdynamic"
+-DISABLE_LIBTIRPC=no
+ dnl include tirpc for IPv6 builds
+ if test "x$with_libtirpc" = "xyes" || test "x$with_ipv6_default" = "xyes" ; then
+     PKG_CHECK_MODULES([TIRPC], [libtirpc],
+-       [GF_CFLAGS="$GF_CFLAGS $TIRPC_CFLAGS"; GF_LDFLAGS="$GF_LDFLAGS $TIRPC_LIBS";],
+-       [DISABLE_LIBTIRPC=yes])
++       [with_libtirpc=yes; GF_CFLAGS="$GF_CFLAGS $TIRPC_CFLAGS"; GF_LDFLAGS="$GF_LDFLAGS $TIRPC_LIBS";],
++       [with_libtirpc=missing])
+ fi
+-if test "x$DISABLE_LIBTIRPC" = "xyes" ; then
+-    with_libtirpc=no; with_ipv6_default=no
++if test "x$with_libtirpc" = "xmissing" ; then
++    with_ipv6_default=no
+     AC_CHECK_HEADERS([rpc/rpc.h],[
+         AC_MSG_WARN([
+             ---------------------------------------------------------------------------------
+-- 
+2.16.1
+
diff --git a/sys-cluster/glusterfs/files/glusterfs-without-ipv6-default.patch b/sys-cluster/glusterfs/files/glusterfs-without-ipv6-default.patch
new file mode 100644 (file)
index 0000000..ed30a6a
--- /dev/null
@@ -0,0 +1,38 @@
+From c77b8f23af7d285fd82dbd3e4db3fa2c09899e58 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Fri, 9 Mar 2018 22:39:41 +0000
+Subject: [PATCH 1/2] build: Fix configure --without-ipv6-default behaviour
+
+The current behaviour disables ipv6-default when no switch is given at
+all but otherwise checks if libtirpc was requested, regardless of
+whether you have given --with-ipv6-default or --without-ipv6-default.
+
+I believe the intention was to enable when libtirpc is requested by
+default but otherwise respect the switch given.
+
+This is important because ipv6-default breaks Gluster for systems that
+have IPv6 disabled.
+
+BUG: 1553926
+Change-Id: I76b91ae2699574b2e5b777453732bb5cbd79bbca
+Signed-off-by: James Le Cuirot <chewi@gentoo.org>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 827ec0518..d42179182 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -315,7 +315,7 @@ AC_ARG_WITH([libtirpc],
+ AC_ARG_WITH([ipv6-default],
+         AC_HELP_STRING([--with-ipv6-default], [Set IPv6 as default.]),
+-        [with_ipv6_default=$with_libtirpc], [with_ipv6_default=no])
++        [], [with_ipv6_default=$with_libtirpc])
+ if test "x$ac_cv_file__etc_redhat_release" = "xyes"; then
+         if rpm -qa centos-release | grep centos; then
+-- 
+2.16.1
+
similarity index 95%
rename from sys-cluster/glusterfs/glusterfs-4.0.0.ebuild
rename to sys-cluster/glusterfs/glusterfs-4.0.0-r1.ebuild
index a4a5bf36143e183723025db60ea23e70c8cf6394..9d29f16de0723b6723f294a140bef87ab346830e 100644 (file)
@@ -20,10 +20,11 @@ HOMEPAGE="https://www.gluster.org/"
 
 LICENSE="|| ( GPL-2 LGPL-3+ )"
 SLOT="0"
-IUSE="bd-xlator crypt-xlator debug emacs +fuse +georeplication glupy infiniband +libtirpc qemu-block rsyslog static-libs +syslog systemtap test +tiering vim-syntax +xml"
+IUSE="bd-xlator crypt-xlator debug emacs +fuse +georeplication glupy infiniband ipv6 +libtirpc qemu-block rsyslog static-libs +syslog systemtap test +tiering vim-syntax +xml"
 
 REQUIRED_USE="georeplication? ( ${PYTHON_REQUIRED_USE} )
-       glupy? ( ${PYTHON_REQUIRED_USE} )"
+       glupy? ( ${PYTHON_REQUIRED_USE} )
+       ipv6? ( libtirpc )"
 
 # the tests must be run as root
 RESTRICT="test"
@@ -66,6 +67,8 @@ SITEFILE="50${PN}-mode-gentoo.el"
 PATCHES=(
        "${FILESDIR}/${PN}-3.12.2-poisoned-sysmacros.patch"
        "${FILESDIR}/${PN}-3.12.2-silent_rules.patch"
+       "${FILESDIR}/${PN}-without-ipv6-default.patch"
+       "${FILESDIR}/${PN}-TIRPC-config-summary.patch"
 )
 
 DOCS=( AUTHORS ChangeLog NEWS README.md THANKS )
@@ -117,7 +120,7 @@ src_configure() {
                $(use_enable test cmocka) \
                $(use_enable tiering) \
                $(use_enable xml xml-output) \
-               $(use_with libtirpc ipv6-default) \
+               $(use_with ipv6 ipv6-default) \
                $(use_with libtirpc) \
                --with-tmpfilesdir="${EPREFIX}"/etc/tmpfiles.d \
                --docdir="${EPREFIX}"/usr/share/doc/${PF} \
index 2733e7788033df0c2c2d3771007973594b7c9b3b..c48c92ed2f03d939a61eba5cb3a1eb9b5609135c 100644 (file)
@@ -20,10 +20,11 @@ HOMEPAGE="https://www.gluster.org/"
 
 LICENSE="|| ( GPL-2 LGPL-3+ )"
 SLOT="0"
-IUSE="bd-xlator crypt-xlator debug emacs +fuse +georeplication glupy infiniband +libtirpc qemu-block rsyslog static-libs +syslog systemtap test +tiering vim-syntax +xml"
+IUSE="bd-xlator crypt-xlator debug emacs +fuse +georeplication glupy infiniband ipv6 +libtirpc qemu-block rsyslog static-libs +syslog systemtap test +tiering vim-syntax +xml"
 
 REQUIRED_USE="georeplication? ( ${PYTHON_REQUIRED_USE} )
-       glupy? ( ${PYTHON_REQUIRED_USE} )"
+       glupy? ( ${PYTHON_REQUIRED_USE} )
+       ipv6? ( libtirpc )"
 
 # the tests must be run as root
 RESTRICT="test"
@@ -66,6 +67,8 @@ SITEFILE="50${PN}-mode-gentoo.el"
 PATCHES=(
        "${FILESDIR}/${PN}-3.12.2-poisoned-sysmacros.patch"
        "${FILESDIR}/${PN}-4.1.0-silent_rules.patch"
+       "${FILESDIR}/${PN}-without-ipv6-default.patch"
+       "${FILESDIR}/${PN}-TIRPC-config-summary.patch"
 )
 
 DOCS=( AUTHORS ChangeLog NEWS README.md THANKS )
@@ -117,7 +120,7 @@ src_configure() {
                $(use_enable test cmocka) \
                $(use_enable tiering) \
                $(use_enable xml xml-output) \
-               $(use_with libtirpc ipv6-default) \
+               $(use_with ipv6 ipv6-default) \
                $(use_with libtirpc) \
                --with-tmpfilesdir="${EPREFIX}"/etc/tmpfiles.d \
                --docdir="${EPREFIX}"/usr/share/doc/${PF} \
index bc97470af6ab4b0ee8a4b3edd5f72f591776287a..ce2361e3e3eafa1f75453b2420a7b2a04e4e2286 100644 (file)
@@ -16,6 +16,7 @@
                <flag name="georeplication">Enable support for georeplication (requires <pkg>dev-lang/python</pkg>)</flag>
                <flag name="infiniband">Add support for Infiniband ibverbs transport.
                        Libraries can be found in science overlay</flag>
+               <flag name="ipv6">Use IPv6 by default, requires libtirpc</flag>
                <flag name="libtirpc">Build against <pkg>net-libs/libtirpc</pkg> for RPC support</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>