From b59e6efcf21a7fe07460e7a4d585684e898309a6 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 13 Mar 2019 08:14:52 -0400 Subject: [PATCH] 6.0 RC1 Signed-off-by: Kaleb S. KEITHLEY --- ...d-revert-shebangs-to-usr-bin-python3.patch | 78 -------------- ...uster-__init__.-files-for-python-pac.patch | 102 ------------------ glusterfs.spec | 75 ++++++++++--- sources | 2 +- 4 files changed, 61 insertions(+), 196 deletions(-) delete mode 100644 0001-glusterfind-revert-shebangs-to-usr-bin-python3.patch delete mode 100644 0002-build-include-gluster-__init__.-files-for-python-pac.patch diff --git a/0001-glusterfind-revert-shebangs-to-usr-bin-python3.patch b/0001-glusterfind-revert-shebangs-to-usr-bin-python3.patch deleted file mode 100644 index 3398d49..0000000 --- a/0001-glusterfind-revert-shebangs-to-usr-bin-python3.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 5711508032b5f280c56eb983392b58ca66de6124 Mon Sep 17 00:00:00 2001 -From: "Kaleb S. KEITHLEY" -Date: Fri, 22 Feb 2019 09:25:26 -0500 -Subject: [PATCH] glusterfind: revert shebangs to #!/usr/bin/python3 - -Using #!/usr/bin/env python is illegal in Fedora and RHEL packaging. -(Debian and SUSE packaging will complain about it too but don't -enforce it like Fedora packaging does. Yet.) - -We went through a giant exercise fixing these once already. - -The python needs to be python2/python3 clean. There is a build -scriptlet that converts the shebangs back to /usr/bin/python on rhel7. - -Change-Id: If208a2557f7e5d727cda98c27905e249cf485d5b -updates: bz#1193929 -Signed-off-by: Kaleb S. KEITHLEY ---- - tools/glusterfind/glusterfind.in | 2 +- - tools/glusterfind/src/brickfind.py | 2 +- - tools/glusterfind/src/changelog.py | 2 +- - tools/glusterfind/src/main.py | 2 +- - tools/glusterfind/src/nodeagent.py | 2 +- - 5 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/tools/glusterfind/glusterfind.in b/tools/glusterfind/glusterfind.in -index 569bf4121..ca154b625 100644 ---- a/tools/glusterfind/glusterfind.in -+++ b/tools/glusterfind/glusterfind.in -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/python3 - - # Copyright (c) 2015 Red Hat, Inc. - # This file is part of GlusterFS. -diff --git a/tools/glusterfind/src/brickfind.py b/tools/glusterfind/src/brickfind.py -index 1e72c00e5..73b635018 100644 ---- a/tools/glusterfind/src/brickfind.py -+++ b/tools/glusterfind/src/brickfind.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- - - # Copyright (c) 2015 Red Hat, Inc. -diff --git a/tools/glusterfind/src/changelog.py b/tools/glusterfind/src/changelog.py -index 62669e950..40c381b59 100644 ---- a/tools/glusterfind/src/changelog.py -+++ b/tools/glusterfind/src/changelog.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- - - # Copyright (c) 2015 Red Hat, Inc. -diff --git a/tools/glusterfind/src/main.py b/tools/glusterfind/src/main.py -index 1145fc1e2..cc5a86f27 100644 ---- a/tools/glusterfind/src/main.py -+++ b/tools/glusterfind/src/main.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- - - # Copyright (c) 2015 Red Hat, Inc. -diff --git a/tools/glusterfind/src/nodeagent.py b/tools/glusterfind/src/nodeagent.py -index 2ddc77aff..679daa6fa 100644 ---- a/tools/glusterfind/src/nodeagent.py -+++ b/tools/glusterfind/src/nodeagent.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- - - # Copyright (c) 2015 Red Hat, Inc. --- -2.20.1 - diff --git a/0002-build-include-gluster-__init__.-files-for-python-pac.patch b/0002-build-include-gluster-__init__.-files-for-python-pac.patch deleted file mode 100644 index 35c5c52..0000000 --- a/0002-build-include-gluster-__init__.-files-for-python-pac.patch +++ /dev/null @@ -1,102 +0,0 @@ -From b235a56394c09bb1d7308a620053dbe098d15967 Mon Sep 17 00:00:00 2001 -From: Niels de Vos -Date: Fri, 22 Feb 2019 15:17:48 +0100 -Subject: [PATCH] build: include gluster/__init__.* files for python packaging - -The gluster/__init__.py file was originaly part of the glupy -installation. This file is required to have the python-gluster package -function correctly, it is expected to provide the 'gluster' namespace -for other python packages (like from the libgfapi-python project). - -Because glupy does not exist anymore, this file is now added to in a new -extras/python directory. - -Change-Id: I14fe959778ee3344d7d54ba342c7928a4d8080a2 -Fixes: c3fcff9ccbfcec1be242fd5cf210c9995586b078 -Fixes: 8293d21280fd6ddfc9bb54068cf87794fc6be207 -Updates: bz#1642810 -Signed-off-by: Niels de Vos ---- - configure.ac | 2 ++ - extras/Makefile.am | 2 +- - extras/python/Makefile.am | 7 +++++++ - extras/python/__init__.py | 2 ++ - glusterfs.spec.in | 3 +++ - 5 files changed, 15 insertions(+), 1 deletion(-) - create mode 100644 extras/python/Makefile.am - create mode 100644 extras/python/__init__.py - -diff --git a/configure.ac b/configure.ac -index 3aa7f4e77..e055e8c8f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -226,6 +226,7 @@ AC_CONFIG_FILES([Makefile - extras/hook-scripts/reset/Makefile - extras/hook-scripts/reset/post/Makefile - extras/hook-scripts/reset/pre/Makefile -+ extras/python/Makefile - extras/snap_scheduler/Makefile - events/Makefile - events/src/Makefile -@@ -630,6 +631,7 @@ AM_PATH_PYTHON([2.6],,[:]) - if test -n "${PYTHON}"; then - have_python=yes - fi -+AM_CONDITIONAL(HAVE_PYTHON, test "x$have_python" = "xyes") - - dnl Use pkg-config to get runtime search path missing from ${PYTHON}-config - dnl Just do "true" on failure so that configure does not bail out -diff --git a/extras/Makefile.am b/extras/Makefile.am -index cf4e9264b..de062f37e 100644 ---- a/extras/Makefile.am -+++ b/extras/Makefile.am -@@ -11,7 +11,7 @@ EditorModedir = $(docdir) - EditorMode_DATA = glusterfs-mode.el glusterfs.vim - - SUBDIRS = init.d systemd benchmarking hook-scripts $(OCF_SUBDIR) LinuxRPM \ -- $(GEOREP_EXTRAS_SUBDIR) snap_scheduler firewalld cliutils -+ $(GEOREP_EXTRAS_SUBDIR) snap_scheduler firewalld cliutils python - - confdir = $(sysconfdir)/glusterfs - if WITH_SERVER -diff --git a/extras/python/Makefile.am b/extras/python/Makefile.am -new file mode 100644 -index 000000000..7d81fa031 ---- /dev/null -+++ b/extras/python/Makefile.am -@@ -0,0 +1,7 @@ -+if HAVE_PYTHON -+# Install __init__.py into the Python site-packages area -+pypkgdir = @BUILD_PYTHON_SITE_PACKAGES@/gluster -+pypkg_PYTHON = __init__.py -+endif -+ -+EXTRA_DIST = __init__.py -diff --git a/extras/python/__init__.py b/extras/python/__init__.py -new file mode 100644 -index 000000000..3ad9513f4 ---- /dev/null -+++ b/extras/python/__init__.py -@@ -0,0 +1,2 @@ -+from pkgutil import extend_path -+__path__ = extend_path(__path__, __name__) -diff --git a/glusterfs.spec.in b/glusterfs.spec.in -index 45b671e33..205b51d4b 100644 ---- a/glusterfs.spec.in -+++ b/glusterfs.spec.in -@@ -1186,9 +1186,12 @@ exit 0 - # so that all other gluster submodules can reside in the same namespace. - %if ( %{_usepython3} ) - %dir %{python3_sitelib}/gluster -+ %{python3_sitelib}/gluster/__init__.* -+ %{python3_sitelib}/gluster/__pycache__ - %{python3_sitelib}/gluster/cliutils - %else - %dir %{python2_sitelib}/gluster -+ %{python2_sitelib}/gluster/__init__.* - %{python2_sitelib}/gluster/cliutils - %endif - --- -2.20.1 - diff --git a/glusterfs.spec b/glusterfs.spec index 60cc48d..4c15b25 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -7,7 +7,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag rc0 +%global prereltag rc1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -185,6 +185,7 @@ # can't seem to make a generic macro that works %global glusterd_svcfile %{_unitdir}/glusterd.service %global glusterfsd_svcfile %{_unitdir}/glusterfsd.service +%global glusterta_svcfile %{_unitdir}/gluster-ta-volume.service %global glustereventsd_svcfile %{_unitdir}/glustereventsd.service %global glusterfssharedstorage_svcfile %{_unitdir}/glusterfssharedstorage.service %else @@ -232,7 +233,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.0 -Release: %{?prereltag:0.}3%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}4%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -249,8 +250,6 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0001: 0001-glusterfind-revert-shebangs-to-usr-bin-python3.patch -Patch0002: 0002-build-include-gluster-__init__.-files-for-python-pac.patch Requires(pre): shadow-utils %if ( 0%{?_with_systemd:1} ) @@ -261,6 +260,8 @@ Requires: %{name}-libs = %{version}-%{release} %if ( 0%{?_with_systemd:1} ) %{?systemd_requires} %endif +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig %if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: libasan %endif @@ -308,6 +309,9 @@ Obsoletes: %{name}-core < %{version}-%{release} Obsoletes: %{name}-regression-tests %endif Obsoletes: %{name}-ufo +%if ( 0%{!?_with_gnfs:1} ) +Obsoletes: %{name}-gnfs +%endif Obsoletes: %{name}-ganesha Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -329,6 +333,8 @@ and client framework. Summary: GlusterFS api library Requires: %{name} = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig %description api GlusterFS is a distributed file-system capable of scaling to several @@ -539,6 +545,8 @@ This package provides the glusterfs legacy gNFS server xlator %package libs Summary: GlusterFS common libraries +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig %description libs GlusterFS is a distributed file-system capable of scaling to several @@ -658,6 +666,8 @@ Requires(preun): /sbin/service Requires(preun): /sbin/chkconfig Requires(postun): /sbin/service %endif +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig %if (0%{?_with_firewalld:1}) # we install firewalld rules, so we need to have the directory owned %if ( 0%{!?rhel} ) @@ -695,11 +705,20 @@ is in user space and easily manageable. This package provides the glusterfs server daemon. %endif +%package thin-arbiter +Summary: GlusterFS thin-arbiter module +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +%description thin-arbiter +This package provides a tie-breaker functionality to GlusterFS +replicate volume. It includes translators required to provide the +functionality, and also few other scripts required for setup. + +This package provides the glusterfs thin-arbiter translator. %prep %setup -q -n %{name}-%{version}%{?prereltag} -%patch0001 -p1 -%patch0002 -p1 %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do @@ -747,6 +766,7 @@ make check %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} +%if ( 0%{!?_without_server:1} ) %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{!?_without_server:1} ) install -D -p -m 0644 %{SOURCE1} \ @@ -755,7 +775,6 @@ install -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %endif %else -%if ( 0%{!?_without_server:1} ) install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif @@ -855,7 +874,7 @@ install -p -m 0755 -D extras/command-completion/gluster.bash \ ## All %%post should be placed here and keep them sorted ## %post -/sbin/ldconfig +%{?ldconfig} %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} ) %systemd_postun_with_restart rsyslog @@ -863,7 +882,8 @@ install -p -m 0755 -D extras/command-completion/gluster.bash \ %endif exit 0 -%post api -p /sbin/ldconfig +# post and postun scriptlets for api +%ldconfig_scriptlets api %if ( 0%{!?_without_events:1} ) %post events @@ -879,9 +899,8 @@ fi exit 0 %endif -%post libs -/sbin/ldconfig -exit 0 +# post and postun scriptlets for libs +%ldconfig_scriptlets libs %if ( 0%{!?_without_server:1} ) %post server @@ -1000,10 +1019,19 @@ fi exit 0 %endif +%preun thin-arbiter +if [ $1 -eq 0 ]; then + if [ -f %glusterta_svcfile ]; then + %service_stop gluster-ta-volume + %systemd_preun gluster-ta-volume + fi +fi + ##----------------------------------------------------------------------------- ## All %%postun should be placed here and keep them sorted ## %postun +%{?ldconfig} %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} ) %systemd_postun_with_restart rsyslog @@ -1013,6 +1041,7 @@ exit 0 %if ( 0%{!?_without_server:1} ) %postun server +%{?ldconfig} %if (0%{?_with_firewalld:1}) %firewalld_reload %endif @@ -1155,6 +1184,19 @@ exit 0 %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %endif +%files thin-arbiter +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/thin-arbiter.so +%dir %{_datadir}/glusterfs/scripts + %{_datadir}/glusterfs/scripts/setup-thin-arbiter.sh +%config %{_sysconfdir}/glusterfs/thin-arbiter.vol + +%if ( 0%{?_with_systemd:1} ) +%{_unitdir}/gluster-ta-volume.service +%endif + + %if ( 0%{!?_without_georeplication:1} ) %files geo-replication %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep @@ -1238,6 +1280,7 @@ exit 0 %doc extras/clear_xattrs.sh # sysconf %config(noreplace) %{_sysconfdir}/glusterfs +%exclude %{_sysconfdir}/glusterfs/thin-arbiter.vol %exclude %{_sysconfdir}/glusterfs/eventsconfig.json %exclude %{_sharedstatedir}/glusterd/nfs/nfs-server.vol %exclude %{_sharedstatedir}/glusterd/nfs/run/nfs.pid @@ -1272,7 +1315,6 @@ exit 0 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/arbiter.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/thin-arbiter.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bit-rot.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bitrot-stub.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/sdfs.so @@ -1394,8 +1436,8 @@ exit 0 %dir %{_sharedstatedir}/glusterd %dir %{_sharedstatedir}/glusterd/events %dir %{_libexecdir}/glusterfs -%dir %{_libexecdir}/glusterfs/events - %{_libexecdir}/glusterfs/events/* +%dir %{_libexecdir}/glusterfs/gfevents + %{_libexecdir}/glusterfs/gfevents/* %{_libexecdir}/glusterfs/peer_eventsapi.py* %{_sbindir}/glustereventsd %{_sbindir}/gluster-eventsapi @@ -1408,6 +1450,9 @@ exit 0 %endif %changelog +* Wed Mar 13 2019 Kaleb S. KEITHLEY - 6.0rc1-0.4 +- 6.0 RC1 + * Wed Mar 6 2019 Kaleb S. KEITHLEY - 6.0rc0-0.3 - 6.0 RC0 - restore s390x rdma diff --git a/sources b/sources index a03c843..94adb60 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-6.0rc0.tar.gz) = 637a73c59ecbad4c4ab2db5af10f1e2dd6ed4a566ab58a6f5641c50a85962a411b46b73e45e0d59cb2c4136e9b3c86e92ff0119991ed9fadbb2789dde3e21ce2 +SHA512 (glusterfs-6.0rc1.tar.gz) = 3f8c8d922a7bc64dfba03719e7fde3923166e2795baa1d8fedc443a3f42b67ba69d14caa658ec00e6adc56865b8119dfbba521e5268f20012ef3dc3705d67b35