From 6608ef71441a53932bc7fe5ab507e5aefd6a5630 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 25 Oct 2013 11:08:17 -0400 Subject: [PATCH 001/328] minor change to sync with upstream --- glusterfs.spec | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4d0f0ae..548bdf9 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -50,7 +50,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.4.1 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Release: 3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -628,7 +628,8 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -%ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info +%config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options # This is really ugly, but I have no idea how to mark these directories in an # other way. They should belong to the glusterfs-server package, but don't @@ -743,7 +744,6 @@ else glusterd --xlator-option *.upgrade=on -N fi - %preun server if [ $1 -eq 0 ]; then if [ -f %_init_glusterfsd ]; then @@ -762,8 +762,10 @@ if [ $1 -ge 1 ]; then %_init_restart glusterd fi - %changelog +* Wed Oct 9 2013 Kaleb S. KEITHLEY +- nit, sync with upstream spec + * Wed Oct 9 2013 Niels de Vos - glusterfs-api-devel requires glusterfs-devel (#1016938, #1017094) From 81a6a069c49c4d13a2f7471e8d5d452f7dae2286 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Sun, 27 Oct 2013 12:26:34 +0100 Subject: [PATCH 002/328] Add option to specify a different base-port Resolves: 1023653 --- ...fs-3.4.1.add.base-port.config.option.patch | 156 ++++++++++++++++++ glusterfs.spec | 5 + 2 files changed, 161 insertions(+) create mode 100644 glusterfs-3.4.1.add.base-port.config.option.patch diff --git a/glusterfs-3.4.1.add.base-port.config.option.patch b/glusterfs-3.4.1.add.base-port.config.option.patch new file mode 100644 index 0000000..4282a03 --- /dev/null +++ b/glusterfs-3.4.1.add.base-port.config.option.patch @@ -0,0 +1,156 @@ +From http://review.gluster.org/6147 +From b1d288f6d24a3fe439730c2f4e28bcc7a9ae7ecd Mon Sep 17 00:00:00 2001 +From: Kaleb S. KEITHLEY +Date: Fri, 25 Oct 2013 09:05:18 -0400 +Subject: [PATCH] mgmt/glusterd: add option to specify a different base-port + +This is (arguably) a hack to work around a bug in libvirt which is not +well behaved wrt to using TCP ports in the unreserved space between +49152-65535. (See RFC 6335) + +Normally glusterd starts and binds to the first available port in range, +usually 49152. libvirt's live migration also tries to use ports in this +range, but has no fallback to use (an)other port(s) when the one it wants +is already in use. + +libvirt cannot fix this in time for their impending release. This is +submitted to gerrit to provide some minimal visibility upstream to justify +hacking this change (as a temporary patch) into the glusterfs-3.4.1 RPMs +for Fedora 18-21 until libvirt can fix their implementation. + +Change-Id: Ie77b00ac60730d1e48907dd0b38ddae92f3ac345 +Signed-off-by: Kaleb S. KEITHLEY +--- + doc/glusterd.vol | 1 + + xlators/mgmt/glusterd/src/glusterd-pmap.c | 10 +++++----- + xlators/mgmt/glusterd/src/glusterd-store.c | 5 ++--- + xlators/mgmt/glusterd/src/glusterd.c | 12 ++++++++++-- + xlators/mgmt/glusterd/src/glusterd.h | 1 + + 5 files changed, 19 insertions(+), 10 deletions(-) + +diff --git a/doc/glusterd.vol b/doc/glusterd.vol +index de17d8f..9bac52a 100644 +--- a/doc/glusterd.vol ++++ b/doc/glusterd.vol +@@ -5,4 +5,5 @@ volume management + option transport.socket.keepalive-time 10 + option transport.socket.keepalive-interval 2 + option transport.socket.read-fail-log off ++# option base-port 49152 + end-volume +diff --git a/xlators/mgmt/glusterd/src/glusterd-pmap.c b/xlators/mgmt/glusterd/src/glusterd-pmap.c +index aab6744..7dec27c 100644 +--- a/xlators/mgmt/glusterd/src/glusterd-pmap.c ++++ b/xlators/mgmt/glusterd/src/glusterd-pmap.c +@@ -52,8 +52,8 @@ pmap_port_isfree (int port) + } + + +-struct pmap_registry * +-pmap_registry_new (void) ++static struct pmap_registry * ++pmap_registry_new (xlator_t *this) + { + struct pmap_registry *pmap = NULL; + int i = 0; +@@ -69,8 +69,8 @@ pmap_registry_new (void) + pmap->ports[i].type = GF_PMAP_PORT_FOREIGN; + } + +- pmap->base_port = GF_IANA_PRIV_PORTS_START; +- pmap->last_alloc = GF_IANA_PRIV_PORTS_START; ++ pmap->base_port = ((glusterd_conf_t *)(this->private))->base_port; ++ pmap->last_alloc = ((glusterd_conf_t *)(this->private))->base_port; + + return pmap; + } +@@ -86,7 +86,7 @@ pmap_registry_get (xlator_t *this) + + pmap = priv->pmap; + if (!pmap) { +- pmap = pmap_registry_new (); ++ pmap = pmap_registry_new (this); + if (!pmap) + return NULL; + priv->pmap = pmap; +diff --git a/xlators/mgmt/glusterd/src/glusterd-store.c b/xlators/mgmt/glusterd/src/glusterd-store.c +index ae0c4e8..1790c5a 100644 +--- a/xlators/mgmt/glusterd/src/glusterd-store.c ++++ b/xlators/mgmt/glusterd/src/glusterd-store.c +@@ -1484,7 +1484,7 @@ glusterd_store_retrieve_bricks (glusterd_volinfo_t *volinfo) + strlen (GLUSTERD_STORE_KEY_BRICK_PORT))) { + gf_string2int (value, &brickinfo->port); + +- if (brickinfo->port < GF_IANA_PRIV_PORTS_START){ ++ if (brickinfo->port < priv->base_port){ + /* This is required to adhere to the + IANA standards */ + brickinfo->port = 0; +@@ -1500,8 +1500,7 @@ glusterd_store_retrieve_bricks (glusterd_volinfo_t *volinfo) + strlen (GLUSTERD_STORE_KEY_BRICK_RDMA_PORT))) { + gf_string2int (value, &brickinfo->rdma_port); + +- if (brickinfo->rdma_port < +- GF_IANA_PRIV_PORTS_START){ ++ if (brickinfo->rdma_port < priv->base_port) { + /* This is required to adhere to the + IANA standards */ + brickinfo->rdma_port = 0; +diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c +index 785e67a..62c4a57 100644 +--- a/xlators/mgmt/glusterd/src/glusterd.c ++++ b/xlators/mgmt/glusterd/src/glusterd.c +@@ -916,7 +916,6 @@ init (xlator_t *this) + int first_time = 0; + char *mountbroker_root = NULL; + int i = 0; +- + #ifdef DEBUG + char *valgrind_str = NULL; + #endif +@@ -1101,6 +1100,12 @@ init (xlator_t *this) + if (ret) + goto out; + ++ conf->base_port = GF_IANA_PRIV_PORTS_START; ++ if (dict_get_uint32(this->options, "base-port", &conf->base_port) == 0) { ++ gf_log (this->name, GF_LOG_INFO, ++ "base-port override: %d", conf->base_port); ++ } ++ + /* Set option to run bricks on valgrind if enabled in glusterd.vol */ + #ifdef DEBUG + conf->valgrind = _gf_false; +@@ -1116,7 +1121,6 @@ init (xlator_t *this) + } + } + #endif +- + this->private = conf; + (void) glusterd_nodesvc_set_online_status ("glustershd", _gf_false); + +@@ -1309,5 +1313,9 @@ struct volume_options options[] = { + .description = "Sets the quorum percentage for the trusted " + "storage pool." + }, ++ { .key = {"base-port"}, ++ .type = GF_OPTION_TYPE_INT, ++ .description = "Sets the base port for portmap query" ++ }, + { .key = {NULL} }, + }; +diff --git a/xlators/mgmt/glusterd/src/glusterd.h b/xlators/mgmt/glusterd/src/glusterd.h +index 0033125..1054574 100644 +--- a/xlators/mgmt/glusterd/src/glusterd.h ++++ b/xlators/mgmt/glusterd/src/glusterd.h +@@ -148,6 +148,7 @@ typedef struct { + dict_t *opts; + synclock_t big_lock; + gf_boolean_t restart_done; ++ uint32_t base_port; + } glusterd_conf_t; + + +-- +1.7.1 + diff --git a/glusterfs.spec b/glusterfs.spec index 548bdf9..9478f4b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -74,6 +74,7 @@ Source13: glusterfsd.init Patch0: %{name}-3.2.5.configure.ac.patch Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch +Patch3: %{name}-3.4.1.add.base-port.config.option.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif @@ -370,6 +371,7 @@ This package provides the api include files. %if ( "%{version}" == "3.3.1" ) %patch2 -p1 %endif +%patch3 -p1 %endif %build @@ -763,6 +765,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Sat Oct 26 2013 Niels de Vos +- add base-port config option to /etc/glusterd/glusterd.vol (#1023653) + * Wed Oct 9 2013 Kaleb S. KEITHLEY - nit, sync with upstream spec From 475b6a9a87722638d9d5c9b6816dec5798bf4df0 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Sun, 27 Oct 2013 12:21:17 +0100 Subject: [PATCH 003/328] Improve glusterfsd.service to start and stop successfully Resolves: 1022542 --- glusterfs.spec | 3 +++ glusterfsd.service | 14 +++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9478f4b..f6e36a3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -765,6 +765,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Sun Oct 27 2013 Niels de Vos - 3.4.1-3 +- Correctly start+stop glusterfsd.service (#1022542) + * Sat Oct 26 2013 Niels de Vos - add base-port config option to /etc/glusterd/glusterd.vol (#1023653) diff --git a/glusterfsd.service b/glusterfsd.service index 4454ad8..e25405d 100644 --- a/glusterfsd.service +++ b/glusterfsd.service @@ -1,12 +1,16 @@ [Unit] -Description=GlusterFS an clustered file-system server +Description=GlusterFS brick processes (stopping only) After=network.target glusterd.service [Service] -Type=forking -PIDFile=/run/glusterfsd.pid -LimitNOFILE=65536 -ExecStart=/usr/sbin/glusterfsd -p /run/glusterfsd.pid +Type=oneshot +# glusterd starts the glusterfsd processed on-demand +# /bin/true will mark this service as started, RemainAfterExit keeps it active +ExecStart=/bin/true +RemainAfterExit=yes +# if there are no glusterfsd processes, a stop/reload should not give an error +ExecStop=/bin/sh -c "/bin/killall --wait glusterfsd || /bin/true" +ExecReload=/bin/sh -c "/bin/killall -HUP glusterfsd || /bin/true" [Install] WantedBy=multi-user.target From ba4470a022c022e43f170c20b43f428e4f5e3d9d Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Sun, 27 Oct 2013 12:21:17 +0100 Subject: [PATCH 004/328] Improve glusterfsd.service to start and stop successfully Resolves: 1022542 --- glusterfs.spec | 3 +++ glusterfsd.service | 14 +++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9478f4b..9c710e2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -765,6 +765,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Sun Oct 27 2013 Niels de Vos +- Correctly start+stop glusterfsd.service (#1022542) + * Sat Oct 26 2013 Niels de Vos - add base-port config option to /etc/glusterd/glusterd.vol (#1023653) diff --git a/glusterfsd.service b/glusterfsd.service index 4454ad8..e25405d 100644 --- a/glusterfsd.service +++ b/glusterfsd.service @@ -1,12 +1,16 @@ [Unit] -Description=GlusterFS an clustered file-system server +Description=GlusterFS brick processes (stopping only) After=network.target glusterd.service [Service] -Type=forking -PIDFile=/run/glusterfsd.pid -LimitNOFILE=65536 -ExecStart=/usr/sbin/glusterfsd -p /run/glusterfsd.pid +Type=oneshot +# glusterd starts the glusterfsd processed on-demand +# /bin/true will mark this service as started, RemainAfterExit keeps it active +ExecStart=/bin/true +RemainAfterExit=yes +# if there are no glusterfsd processes, a stop/reload should not give an error +ExecStop=/bin/sh -c "/bin/killall --wait glusterfsd || /bin/true" +ExecReload=/bin/sh -c "/bin/killall -HUP glusterfsd || /bin/true" [Install] WantedBy=multi-user.target From a9739ec31628367efd8be46193dd5f8ba32284ae Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Sun, 27 Oct 2013 13:54:15 +0100 Subject: [PATCH 005/328] fix "warning: File listed twice: .../glusterd.info" while building In upstream/master: http://review.gluster.org/5836 In upstream/release-3.4: http://review.gluster.org/6149 --- glusterfs.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9c710e2..e50aeb0 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -630,8 +630,7 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -%config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/glusterd.info +%ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options # This is really ugly, but I have no idea how to mark these directories in an # other way. They should belong to the glusterfs-server package, but don't @@ -765,8 +764,9 @@ if [ $1 -ge 1 ]; then fi %changelog -* Sun Oct 27 2013 Niels de Vos +* Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) +- fix "warning: File listed twice: .../glusterd.info" while building * Sat Oct 26 2013 Niels de Vos - add base-port config option to /etc/glusterd/glusterd.vol (#1023653) From 43f3a1f0204b20faea0d01939e913d0653acdd2b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 6 Nov 2013 14:10:39 -0500 Subject: [PATCH 006/328] various fixes for the next build. see %change --- glusterfs.spec | 188 ++++++++++++++++++++++++++++--------------------- 1 file changed, 109 insertions(+), 79 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e50aeb0..501fcf2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -93,7 +93,7 @@ Requires(postun): systemd-units %define _init_disable() /bin/systemctl disable %1.service ; %define _init_restart() /bin/systemctl try-restart %1.service ; %define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() %{__install} -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works %define _init_glusterd %{_unitdir}/glusterd.service %define _init_glusterfsd %{_unitdir}/glusterfsd.service @@ -109,7 +109,7 @@ Requires(postun): /sbin/service %define _init_disable() /sbin/chkconfig --del %1 ; %define _init_restart() /sbin/service %1 condrestart &>/dev/null ; %define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() %{__install} -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works %define _init_glusterd %{_sysconfdir}/init.d/glusterd %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd @@ -130,10 +130,11 @@ BuildRequires: systemtap-sdt-devel BuildRequires: lvm2-devel %endif -Obsoletes: hekafs <= 0.7 +Obsoletes: hekafs Obsoletes: %{name}-libs <= 2.0.0 Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} +Obsoletes: %{name}-ufo Provides: %{name}-libs = %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -145,7 +146,7 @@ Provides: %{name}-core = %{version}-%{release} %if ( 0%{?rhel} == 6 ) # filter_setup exists in RHEL6 only %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' + %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' %filter_setup %else # modern rpm and current Fedora do not generate requires when the @@ -153,6 +154,8 @@ Provides: %{name}-core = %{version}-%{release} %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -380,63 +383,76 @@ This package provides the api include files. # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -%{__sed} -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool +sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif -%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool -%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -%{__make} %{?_smp_mflags} +make %{?_smp_mflags} %install -%{__rm} -rf %{buildroot} -%{__make} install DESTDIR=%{buildroot} +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} # Install include directory -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs -%{__install} -p -m 0644 libglusterfs/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs +install -p -m 0644 libglusterfs/src/*.h \ %{buildroot}%{_includedir}/glusterfs/ -%{__install} -p -m 0644 contrib/uuid/*.h \ +install -p -m 0644 contrib/uuid/*.h \ %{buildroot}%{_includedir}/glusterfs/ # Following needed by hekafs multi-tenant translator -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/rpc -%{__install} -p -m 0644 rpc/rpc-lib/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs/rpc +install -p -m 0644 rpc/rpc-lib/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__install} -p -m 0644 rpc/xdr/src/*.h \ +install -p -m 0644 rpc/xdr/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server -%{__install} -p -m 0644 xlators/protocol/server/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs/server +install -p -m 0644 xlators/protocol/server/src/*.h \ %{buildroot}%{_includedir}/glusterfs/server/ %if ( 0%{_for_fedora_koji_builds} ) -%{__install} -D -p -m 0644 %{SOURCE1} \ +install -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd -%{__install} -D -p -m 0644 %{SOURCE2} \ +install -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterd-sysconfig \ +install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif %if ( 0%{?rhel} && 0%{?rhel} > 5 ) -%{__mkdir_p} %{buildroot}%{python_sitelib}/gluster +mkdir -p %{buildroot}%{python_sitelib}/gluster touch %{buildroot}%{python_sitelib}/gluster/__init__.py %endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{__install} -D -p -m 0755 %{SOURCE6} \ +install -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif %endif -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd -%{__mkdir_p} %{buildroot}%{_localstatedir}/run/gluster +mkdir -p %{buildroot}%{_localstatedir}/log/glusterd +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd +mkdir -p %{buildroot}%{_localstatedir}/run/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, they're included by %%doc -%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ +# Remove installed docs, the ones we want are included by %%doc, in +# /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending +# on the distribution +%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +rm -rf %{buildroot}%{_pkgdocdir}/* +%else +rm -rf %{buildroot}%{_defaultdocdir}/%{name} +mkdir -p %{buildroot}%{_pkgdocdir} +%endif +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +mkdir -p %{buildroot}%{_pkgdocdir}.tmp/ +cp -p extras/clear_xattrs.sh %{buildroot}%{_pkgdocdir}.tmp/ +%else +cp -p extras/clear_xattrs.sh %{buildroot}%{_pkgdocdir}/ +%endif head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog @@ -445,12 +461,12 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -%{__rm} -rf %{buildroot}/benchmarking -%{__rm} -f %{buildroot}/glusterfs-mode.el -%{__rm} -f %{buildroot}/glusterfs.vim +rm -rf %{buildroot}/benchmarking +rm -f %{buildroot}/glusterfs-mode.el +rm -f %{buildroot}/glusterfs.vim # Create working directory -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd # Update configuration file to /var/lib working directory sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ @@ -463,62 +479,62 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry -%{__install} -D -p -m 0644 %{SOURCE3} \ +install -D -p -m 0644 %{SOURCE3} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse # Server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE4} \ +install -D -p -m 0644 %{SOURCE4} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterd # Legacy server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE5} \ +install -D -p -m 0644 %{SOURCE5} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterfs-logrotate \ +install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs %endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf %endif # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/groups -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs/run +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/groups +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid %clean -%{__rm} -rf %{buildroot} +rm -rf %{buildroot} %post /sbin/ldconfig @@ -527,7 +543,6 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid /sbin/ldconfig %files -%defattr(-,root,root,-) %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* @@ -570,7 +585,6 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid %if ( 0%{!?_without_rdma:1} ) %files rdma -%defattr(-,root,root,-) %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif @@ -582,7 +596,6 @@ if [ $1 -ge 1 ]; then fi %files geo-replication -%defattr(-,root,root) %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication @@ -590,7 +603,6 @@ fi %endif %files fuse -%defattr(-,root,root,-) %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse %endif @@ -606,8 +618,6 @@ fi %endif %files server -%defattr(-,root,root,-) -%doc extras/clear_xattrs.sh %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif @@ -630,11 +640,18 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +# hack to work around old rpm/rpmbuild %%doc misfeature +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +%ghost %attr(0644,-,-) %{_pkgdocdir}/clear_xattrs.sh +%{_pkgdocdir}.tmp/clear_xattrs.sh +%else +%{_pkgdocdir}/clear_xattrs.sh +%endif %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options -# This is really ugly, but I have no idea how to mark these directories in an -# other way. They should belong to the glusterfs-server package, but don't -# exist after installation. They are generated on the first start... +# This is really ugly, but I have no idea how to mark these directories in +# any other way. They should belong to the glusterfs-server package, but +# don't exist after installation. They are generated on the first start... %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop @@ -683,13 +700,11 @@ fi %if ( 0%{!?_without_ocf:1} ) %files resource-agents -%defattr(-,root,root) # /usr/lib is the standard for OCF, also on x86_64 %{_prefix}/lib/ocf/resource.d/glusterfs %endif %files devel -%defattr(-,root,root,-) %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h %exclude %{_includedir}/glusterfs/api @@ -706,13 +721,20 @@ fi %_init_enable glusterd %_init_enable glusterfsd +# hack to work around old rpm/rpmbuild %%doc misfeature +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +if [ -d %{_pkgdocdir}.tmp ]; then + cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ + rm -rf %{_pkgdocdir}.tmp/* +%endif + # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib # in gluster.org RPMs.) Be careful to copy them on the off chance that # /etc and /var/lib are on separate file systems if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then - %{__mkdir_p} %{_sharedstatedir}/glusterd + mkdir -p %{_sharedstatedir}/glusterd cp -a /etc/glusterd %{_sharedstatedir}/glusterd rm -rf /etc/glusterd ln -sf %{_sharedstatedir}/glusterd /etc/glusterd @@ -764,6 +786,14 @@ if [ $1 -ge 1 ]; then fi %changelog +* Wed Nov 6 2013 Kaleb S. KEITHLEY +- obsolete glusterfs-ufo (#1025059) +- ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) +- clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not + in /usr/share/doc/glusterfs-server(-x.y.z) +- remove defattr (per pkg review of another package) +- don't use %{__foo} macros (per package review of another package) + * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) - fix "warning: File listed twice: .../glusterd.info" while building From 9c4f918d0662c1771f967529274e7b9afc8d7d7e Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 6 Dec 2013 12:17:32 -0500 Subject: [PATCH 007/328] GlusterFS 3.4.0-0.1.qa3 --- glusterfs.spec | 172 ++++++++++++++++++++++++++++++++++++++++--------- sources | 2 +- 2 files changed, 143 insertions(+), 31 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 501fcf2..7c6a541 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,10 +1,9 @@ - %global _hardened_build 1 %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag rc1 +%global prereltag qa3 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -31,6 +30,15 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} +# if you wish to build rpms without syslog logging, compile like this +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog +%{?_without_syslog:%global _without_syslog --disable-syslog} + +# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount +%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%global _without_syslog --disable-syslog +%endif + # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -42,15 +50,30 @@ %define _without_bd --disable-bd-xlator %endif +# if you wish to compile an rpm without the qemu-block support... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block +%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +# xlators/features/qemu-block fails to build on RHEL5, disable it +%define _without_qemu_block --disable-qemu-block +%endif + %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif +# From https://fedoraproject.org/wiki/Packaging:Python#Macros +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%endif + Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.4.1 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.5.0 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -62,7 +85,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://download.gluster.org/pub/gluster/glusterfs/3.4/%{version}%{?prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://download.gluster.org/pub/gluster/glusterfs/qa-releases/%{version}%{prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -71,16 +94,15 @@ Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source11: glusterfsd.service Source13: glusterfsd.init -Patch0: %{name}-3.2.5.configure.ac.patch -Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch -Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch -Patch3: %{name}-3.4.1.add.base-port.config.option.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +BuildRequires: python-simplejson +%endif %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE11}} @@ -129,15 +151,18 @@ BuildRequires: systemtap-sdt-devel %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif +%if ( 0%{!?_without_qemu_block:1} ) +BuildRequires: glib2-devel +%endif Obsoletes: hekafs Obsoletes: %{name}-libs <= 2.0.0 Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} -Obsoletes: %{name}-ufo Provides: %{name}-libs = %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} +Obsoletes: %{name}-ufo # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: @@ -156,6 +181,11 @@ Provides: %{name}-core = %{version}-%{release} %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) + # _sharedstatedir is not provided by RHEL5 + %define _sharedstatedir /var/lib +%endif + %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -172,6 +202,14 @@ both GlusterFS server and client framework. %package libs Summary: GlusterFS common libraries Group: Applications/File +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +Requires: rsyslog-mmjsonparse +%endif +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +Requires: rsyslog-mmcount +%endif +%endif %description libs GlusterFS is a clustered file-system capable of scaling to several @@ -226,6 +264,7 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} +Requires: python python-ctypes %description geo-replication GlusterFS is a clustered file-system capable of scaling to several @@ -288,6 +327,9 @@ This package provides the glusterfs server daemon. Summary: Clustered file-system api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} +# we provide the Python package/namespace 'gluster' +Provides: python-gluster = %{version}-%{release} %description api GlusterFS is a clustered file-system capable of scaling to several @@ -366,20 +408,34 @@ is in user space and easily manageable. This package provides the api include files. +%package regression-tests +Summary: Development Tools +Group: Development/Tools +Requires: %{name} = %{version}-%{release} +Requires: %{name}-fuse = %{version}-%{release} +Requires: %{name}-server = %{version}-%{release} +Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 +Requires: python attr dbench git nfs-utils xfsprogs + +%description regression-tests +The Gluster Test Framework, is a suite of scripts used for +regression testing of Gluster. + %prep %setup -q -n %{name}-%{version}%{?prereltag} -%if ( 0%{_for_fedora_koji_builds} ) -#%patch0 -p0 -%patch1 -p0 -F4 -%if ( "%{version}" == "3.3.1" ) -%patch2 -p1 -%endif -%patch3 -p1 -%endif %build ./autogen.sh -%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} %{?_without_bd} %{?_without_systemtap} +%configure \ + %{?_without_rdma} \ + %{?_without_epoll} \ + %{?_without_fusermount} \ + %{?_without_georeplication} \ + %{?_without_ocf} \ + %{?_without_syslog} \ + %{?_without_bd} \ + %{?_without_qemu_block} \ + %{?_without_systemtap} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -390,9 +446,17 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool make %{?_smp_mflags} +pushd api/examples +FLAGS="$RPM_OPT_FLAGS" python setup.py build +popd + %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} +# install the gfapi Python library in /usr/lib/python*/site-packages +pushd api/examples +python setup.py install --skip-build --verbose --root %{buildroot} +popd # Install include directory mkdir -p %{buildroot}%{_includedir}/glusterfs install -p -m 0644 libglusterfs/src/*.h \ @@ -417,10 +481,6 @@ install -D -p -m 0644 %{SOURCE2} \ install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif -%if ( 0%{?rhel} && 0%{?rhel} > 5 ) -mkdir -p %{buildroot}%{python_sitelib}/gluster -touch %{buildroot}%{python_sitelib}/gluster/__init__.py -%endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) @@ -496,7 +556,26 @@ install -D -p -m 0644 extras/glusterfs-logrotate \ %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication -touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +install -D -p -m 0644 extras/glusterfs-georep-logrotate \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep +%endif + +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +install -D -p -m 0644 extras/logger.conf.example \ + %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example +%endif %endif # the rest of the ghosts @@ -525,6 +604,12 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols @@ -533,19 +618,36 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid +find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs + %clean rm -rf %{buildroot} %post /sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %postun /sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %files %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif +%endif %{_libdir}/glusterfs %{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* @@ -598,8 +700,11 @@ fi %files geo-replication %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* +%{_libexecdir}/glusterfs/gverify.sh +%{_libexecdir}/glusterfs/peer_add_secret_pub +%{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf %endif %files fuse @@ -694,9 +799,7 @@ fi %exclude %{_libdir}/*.so %{_libdir}/libgfapi.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* -%if ( 0%{?rhel} && 0%{?rhel} > 5 ) -%{python_sitelib}/gluster/__init__.p* -%endif +%{python_sitelib}/* %if ( 0%{!?_without_ocf:1} ) %files resource-agents @@ -713,9 +816,15 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/pkgconfig/libgfchangelog.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* +%files regression-tests +%defattr(-,root,root,-) +%{_prefix}/share/glusterfs/* +%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t + %post server # Legacy server %_init_enable glusterd @@ -741,7 +850,7 @@ if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then fi # Rename old volfiles in an RPM-standard way. These aren't actually -# considered package config files, so %config doesn't work for them. +# considered package config files, so %%config doesn't work for them. if [ -d %{_sharedstatedir}/glusterd/vols ]; then for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do newfile=${file}.rpmsave @@ -786,13 +895,16 @@ if [ $1 -ge 1 ]; then fi %changelog +* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1qa3 +- GlusterFS 3.5.0 QA3 , glusterfs-3.5.0-0.1qa3 + * Wed Nov 6 2013 Kaleb S. KEITHLEY - obsolete glusterfs-ufo (#1025059) - ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) - clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not in /usr/share/doc/glusterfs-server(-x.y.z) - remove defattr (per pkg review of another package) -- don't use %{__foo} macros (per package review of another package) +- don't use %%{__foo} macros (per package review of another package) * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) diff --git a/sources b/sources index e68d688..a3f5afe 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -dce3d066b7351b360454ea9ca4cabe4c glusterfs-3.4.1.tar.gz +65473412bc9b61c8a33c5216c7d813da glusterfs-3.5.0qa3.tar.gz From 0cdb934900faa10f3946138b772f3d548e0363d5 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 6 Dec 2013 12:17:32 -0500 Subject: [PATCH 008/328] GlusterFS 3.5.0-0.1.qa3 --- glusterfs.spec | 172 ++++++++++++++++++++++++++++++++++++++++--------- sources | 2 +- 2 files changed, 143 insertions(+), 31 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 501fcf2..7c6a541 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,10 +1,9 @@ - %global _hardened_build 1 %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag rc1 +%global prereltag qa3 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -31,6 +30,15 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} +# if you wish to build rpms without syslog logging, compile like this +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog +%{?_without_syslog:%global _without_syslog --disable-syslog} + +# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount +%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%global _without_syslog --disable-syslog +%endif + # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -42,15 +50,30 @@ %define _without_bd --disable-bd-xlator %endif +# if you wish to compile an rpm without the qemu-block support... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block +%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +# xlators/features/qemu-block fails to build on RHEL5, disable it +%define _without_qemu_block --disable-qemu-block +%endif + %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif +# From https://fedoraproject.org/wiki/Packaging:Python#Macros +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%endif + Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.4.1 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.5.0 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -62,7 +85,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://download.gluster.org/pub/gluster/glusterfs/3.4/%{version}%{?prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://download.gluster.org/pub/gluster/glusterfs/qa-releases/%{version}%{prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -71,16 +94,15 @@ Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source11: glusterfsd.service Source13: glusterfsd.init -Patch0: %{name}-3.2.5.configure.ac.patch -Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch -Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch -Patch3: %{name}-3.4.1.add.base-port.config.option.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +BuildRequires: python-simplejson +%endif %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE11}} @@ -129,15 +151,18 @@ BuildRequires: systemtap-sdt-devel %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif +%if ( 0%{!?_without_qemu_block:1} ) +BuildRequires: glib2-devel +%endif Obsoletes: hekafs Obsoletes: %{name}-libs <= 2.0.0 Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} -Obsoletes: %{name}-ufo Provides: %{name}-libs = %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} +Obsoletes: %{name}-ufo # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: @@ -156,6 +181,11 @@ Provides: %{name}-core = %{version}-%{release} %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) + # _sharedstatedir is not provided by RHEL5 + %define _sharedstatedir /var/lib +%endif + %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -172,6 +202,14 @@ both GlusterFS server and client framework. %package libs Summary: GlusterFS common libraries Group: Applications/File +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +Requires: rsyslog-mmjsonparse +%endif +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +Requires: rsyslog-mmcount +%endif +%endif %description libs GlusterFS is a clustered file-system capable of scaling to several @@ -226,6 +264,7 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} +Requires: python python-ctypes %description geo-replication GlusterFS is a clustered file-system capable of scaling to several @@ -288,6 +327,9 @@ This package provides the glusterfs server daemon. Summary: Clustered file-system api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} +# we provide the Python package/namespace 'gluster' +Provides: python-gluster = %{version}-%{release} %description api GlusterFS is a clustered file-system capable of scaling to several @@ -366,20 +408,34 @@ is in user space and easily manageable. This package provides the api include files. +%package regression-tests +Summary: Development Tools +Group: Development/Tools +Requires: %{name} = %{version}-%{release} +Requires: %{name}-fuse = %{version}-%{release} +Requires: %{name}-server = %{version}-%{release} +Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 +Requires: python attr dbench git nfs-utils xfsprogs + +%description regression-tests +The Gluster Test Framework, is a suite of scripts used for +regression testing of Gluster. + %prep %setup -q -n %{name}-%{version}%{?prereltag} -%if ( 0%{_for_fedora_koji_builds} ) -#%patch0 -p0 -%patch1 -p0 -F4 -%if ( "%{version}" == "3.3.1" ) -%patch2 -p1 -%endif -%patch3 -p1 -%endif %build ./autogen.sh -%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} %{?_without_bd} %{?_without_systemtap} +%configure \ + %{?_without_rdma} \ + %{?_without_epoll} \ + %{?_without_fusermount} \ + %{?_without_georeplication} \ + %{?_without_ocf} \ + %{?_without_syslog} \ + %{?_without_bd} \ + %{?_without_qemu_block} \ + %{?_without_systemtap} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -390,9 +446,17 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool make %{?_smp_mflags} +pushd api/examples +FLAGS="$RPM_OPT_FLAGS" python setup.py build +popd + %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} +# install the gfapi Python library in /usr/lib/python*/site-packages +pushd api/examples +python setup.py install --skip-build --verbose --root %{buildroot} +popd # Install include directory mkdir -p %{buildroot}%{_includedir}/glusterfs install -p -m 0644 libglusterfs/src/*.h \ @@ -417,10 +481,6 @@ install -D -p -m 0644 %{SOURCE2} \ install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif -%if ( 0%{?rhel} && 0%{?rhel} > 5 ) -mkdir -p %{buildroot}%{python_sitelib}/gluster -touch %{buildroot}%{python_sitelib}/gluster/__init__.py -%endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) @@ -496,7 +556,26 @@ install -D -p -m 0644 extras/glusterfs-logrotate \ %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication -touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +install -D -p -m 0644 extras/glusterfs-georep-logrotate \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep +%endif + +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +install -D -p -m 0644 extras/logger.conf.example \ + %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example +%endif %endif # the rest of the ghosts @@ -525,6 +604,12 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols @@ -533,19 +618,36 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid +find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs + %clean rm -rf %{buildroot} %post /sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %postun /sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %files %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif +%endif %{_libdir}/glusterfs %{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* @@ -598,8 +700,11 @@ fi %files geo-replication %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* +%{_libexecdir}/glusterfs/gverify.sh +%{_libexecdir}/glusterfs/peer_add_secret_pub +%{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf %endif %files fuse @@ -694,9 +799,7 @@ fi %exclude %{_libdir}/*.so %{_libdir}/libgfapi.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* -%if ( 0%{?rhel} && 0%{?rhel} > 5 ) -%{python_sitelib}/gluster/__init__.p* -%endif +%{python_sitelib}/* %if ( 0%{!?_without_ocf:1} ) %files resource-agents @@ -713,9 +816,15 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/pkgconfig/libgfchangelog.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* +%files regression-tests +%defattr(-,root,root,-) +%{_prefix}/share/glusterfs/* +%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t + %post server # Legacy server %_init_enable glusterd @@ -741,7 +850,7 @@ if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then fi # Rename old volfiles in an RPM-standard way. These aren't actually -# considered package config files, so %config doesn't work for them. +# considered package config files, so %%config doesn't work for them. if [ -d %{_sharedstatedir}/glusterd/vols ]; then for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do newfile=${file}.rpmsave @@ -786,13 +895,16 @@ if [ $1 -ge 1 ]; then fi %changelog +* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1qa3 +- GlusterFS 3.5.0 QA3 , glusterfs-3.5.0-0.1qa3 + * Wed Nov 6 2013 Kaleb S. KEITHLEY - obsolete glusterfs-ufo (#1025059) - ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) - clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not in /usr/share/doc/glusterfs-server(-x.y.z) - remove defattr (per pkg review of another package) -- don't use %{__foo} macros (per package review of another package) +- don't use %%{__foo} macros (per package review of another package) * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) diff --git a/sources b/sources index e68d688..a3f5afe 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -dce3d066b7351b360454ea9ca4cabe4c glusterfs-3.4.1.tar.gz +65473412bc9b61c8a33c5216c7d813da glusterfs-3.5.0qa3.tar.gz From 8c76f93f796e3127d67d2980fa1442c6a6dbd913 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 17 Dec 2013 11:48:58 -0500 Subject: [PATCH 009/328] 3.4.2qa4 --- glusterfs.spec | 348 +++++++++++++++---------------------------------- sources | 2 +- 2 files changed, 106 insertions(+), 244 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 7c6a541..8119d7a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,9 +1,10 @@ + %global _hardened_build 1 %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag qa3 +%global prereltag qa4 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -30,15 +31,6 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} -# if you wish to build rpms without syslog logging, compile like this -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog -%{?_without_syslog:%global _without_syslog --disable-syslog} - -# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) -%global _without_syslog --disable-syslog -%endif - # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -50,29 +42,14 @@ %define _without_bd --disable-bd-xlator %endif -# if you wish to compile an rpm without the qemu-block support... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block -%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -# xlators/features/qemu-block fails to build on RHEL5, disable it -%define _without_qemu_block --disable-qemu-block -%endif - %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif -# From https://fedoraproject.org/wiki/Packaging:Python#Macros -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} -%endif - Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.5.0 +Version: 3.4.2 Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else @@ -94,15 +71,15 @@ Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source11: glusterfsd.service Source13: glusterfsd.init +Patch0: %{name}-3.2.5.configure.ac.patch +Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch +Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -BuildRequires: python-simplejson -%endif %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE11}} @@ -115,7 +92,7 @@ Requires(postun): systemd-units %define _init_disable() /bin/systemctl disable %1.service ; %define _init_restart() /bin/systemctl try-restart %1.service ; %define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%define _init_install() %{__install} -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works %define _init_glusterd %{_unitdir}/glusterd.service %define _init_glusterfsd %{_unitdir}/glusterfsd.service @@ -131,7 +108,7 @@ Requires(postun): /sbin/service %define _init_disable() /sbin/chkconfig --del %1 ; %define _init_restart() /sbin/service %1 condrestart &>/dev/null ; %define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%define _init_install() %{__install} -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works %define _init_glusterd %{_sysconfdir}/init.d/glusterd %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd @@ -151,18 +128,14 @@ BuildRequires: systemtap-sdt-devel %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif -%if ( 0%{!?_without_qemu_block:1} ) -BuildRequires: glib2-devel -%endif -Obsoletes: hekafs +Obsoletes: hekafs <= 0.7 Obsoletes: %{name}-libs <= 2.0.0 Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} Provides: %{name}-libs = %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} -Obsoletes: %{name}-ufo # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: @@ -171,7 +144,7 @@ Obsoletes: %{name}-ufo %if ( 0%{?rhel} == 6 ) # filter_setup exists in RHEL6 only %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' + %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' %filter_setup %else # modern rpm and current Fedora do not generate requires when the @@ -179,13 +152,6 @@ Obsoletes: %{name}-ufo %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) - # _sharedstatedir is not provided by RHEL5 - %define _sharedstatedir /var/lib -%endif - %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -202,14 +168,6 @@ both GlusterFS server and client framework. %package libs Summary: GlusterFS common libraries Group: Applications/File -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -Requires: rsyslog-mmjsonparse -%endif -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -Requires: rsyslog-mmcount -%endif -%endif %description libs GlusterFS is a clustered file-system capable of scaling to several @@ -264,7 +222,6 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} -Requires: python python-ctypes %description geo-replication GlusterFS is a clustered file-system capable of scaling to several @@ -327,9 +284,6 @@ This package provides the glusterfs server daemon. Summary: Clustered file-system api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} -Requires: %{name}-devel = %{version}-%{release} -# we provide the Python package/namespace 'gluster' -Provides: python-gluster = %{version}-%{release} %description api GlusterFS is a clustered file-system capable of scaling to several @@ -408,111 +362,79 @@ is in user space and easily manageable. This package provides the api include files. -%package regression-tests -Summary: Development Tools -Group: Development/Tools -Requires: %{name} = %{version}-%{release} -Requires: %{name}-fuse = %{version}-%{release} -Requires: %{name}-server = %{version}-%{release} -Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 -Requires: python attr dbench git nfs-utils xfsprogs - -%description regression-tests -The Gluster Test Framework, is a suite of scripts used for -regression testing of Gluster. - %prep %setup -q -n %{name}-%{version}%{?prereltag} +%if ( 0%{_for_fedora_koji_builds} ) +#%patch0 -p0 +%patch1 -p0 -F4 +%if ( "%{version}" == "3.3.1" ) +%patch2 -p1 +%endif +%endif %build ./autogen.sh -%configure \ - %{?_without_rdma} \ - %{?_without_epoll} \ - %{?_without_fusermount} \ - %{?_without_georeplication} \ - %{?_without_ocf} \ - %{?_without_syslog} \ - %{?_without_bd} \ - %{?_without_qemu_block} \ - %{?_without_systemtap} +%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} %{?_without_bd} %{?_without_systemtap} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool +%{__sed} -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif -sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool -sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool +%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool +%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -make %{?_smp_mflags} - -pushd api/examples -FLAGS="$RPM_OPT_FLAGS" python setup.py build -popd +%{__make} %{?_smp_mflags} %install -rm -rf %{buildroot} -make install DESTDIR=%{buildroot} -# install the gfapi Python library in /usr/lib/python*/site-packages -pushd api/examples -python setup.py install --skip-build --verbose --root %{buildroot} -popd +%{__rm} -rf %{buildroot} +%{__make} install DESTDIR=%{buildroot} # Install include directory -mkdir -p %{buildroot}%{_includedir}/glusterfs -install -p -m 0644 libglusterfs/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs +%{__install} -p -m 0644 libglusterfs/src/*.h \ %{buildroot}%{_includedir}/glusterfs/ -install -p -m 0644 contrib/uuid/*.h \ +%{__install} -p -m 0644 contrib/uuid/*.h \ %{buildroot}%{_includedir}/glusterfs/ # Following needed by hekafs multi-tenant translator -mkdir -p %{buildroot}%{_includedir}/glusterfs/rpc -install -p -m 0644 rpc/rpc-lib/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/rpc +%{__install} -p -m 0644 rpc/rpc-lib/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -install -p -m 0644 rpc/xdr/src/*.h \ +%{__install} -p -m 0644 rpc/xdr/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -mkdir -p %{buildroot}%{_includedir}/glusterfs/server -install -p -m 0644 xlators/protocol/server/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server +%{__install} -p -m 0644 xlators/protocol/server/src/*.h \ %{buildroot}%{_includedir}/glusterfs/server/ %if ( 0%{_for_fedora_koji_builds} ) -install -D -p -m 0644 %{SOURCE1} \ +%{__install} -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd -install -D -p -m 0644 %{SOURCE2} \ +%{__install} -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %else -install -D -p -m 0644 extras/glusterd-sysconfig \ +%{__install} -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif +%if ( 0%{?rhel} && 0%{?rhel} > 5 ) +%{__mkdir_p} %{buildroot}%{python_sitelib}/gluster +touch %{buildroot}%{python_sitelib}/gluster/__init__.py +%endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -install -D -p -m 0755 %{SOURCE6} \ +%{__install} -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif %endif -mkdir -p %{buildroot}%{_localstatedir}/log/glusterd -mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs -mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd -mkdir -p %{buildroot}%{_localstatedir}/run/gluster +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd +%{__mkdir_p} %{buildroot}%{_localstatedir}/run/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, the ones we want are included by %%doc, in -# /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending -# on the distribution -%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -rm -rf %{buildroot}%{_pkgdocdir}/* -%else -rm -rf %{buildroot}%{_defaultdocdir}/%{name} -mkdir -p %{buildroot}%{_pkgdocdir} -%endif -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -mkdir -p %{buildroot}%{_pkgdocdir}.tmp/ -cp -p extras/clear_xattrs.sh %{buildroot}%{_pkgdocdir}.tmp/ -%else -cp -p extras/clear_xattrs.sh %{buildroot}%{_pkgdocdir}/ -%endif +# Remove installed docs, they're included by %%doc +%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog @@ -521,12 +443,12 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -rm -rf %{buildroot}/benchmarking -rm -f %{buildroot}/glusterfs-mode.el -rm -f %{buildroot}/glusterfs.vim +%{__rm} -rf %{buildroot}/benchmarking +%{__rm} -f %{buildroot}/glusterfs-mode.el +%{__rm} -f %{buildroot}/glusterfs.vim # Create working directory -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd # Update configuration file to /var/lib working directory sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ @@ -539,115 +461,74 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry -install -D -p -m 0644 %{SOURCE3} \ +%{__install} -D -p -m 0644 %{SOURCE3} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse # Server logrotate entry -install -D -p -m 0644 %{SOURCE4} \ +%{__install} -D -p -m 0644 %{SOURCE4} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterd # Legacy server logrotate entry -install -D -p -m 0644 %{SOURCE5} \ +%{__install} -D -p -m 0644 %{SOURCE5} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd %else -install -D -p -m 0644 extras/glusterfs-logrotate \ +%{__install} -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs %endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication -touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf -install -D -p -m 0644 extras/glusterfs-georep-logrotate \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep -%endif - -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -install -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ - %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif - -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -install -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ - %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif - -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -install -D -p -m 0644 extras/logger.conf.example \ - %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example -%endif +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication +touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf %endif # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/groups -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/groups +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid -find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs - %clean -rm -rf %{buildroot} +%{__rm} -rf %{buildroot} %post /sbin/ldconfig -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog -%endif -%endif %postun /sbin/ldconfig -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog -%endif -%endif %files +%defattr(-,root,root,-) %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif -%endif %{_libdir}/glusterfs %{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* @@ -687,6 +568,7 @@ rm -rf %{buildroot} %if ( 0%{!?_without_rdma:1} ) %files rdma +%defattr(-,root,root,-) %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif @@ -698,16 +580,15 @@ if [ $1 -ge 1 ]; then fi %files geo-replication +%defattr(-,root,root) %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* -%{_libexecdir}/glusterfs/gverify.sh -%{_libexecdir}/glusterfs/peer_add_secret_pub -%{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf %endif %files fuse +%defattr(-,root,root,-) %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse %endif @@ -723,6 +604,8 @@ fi %endif %files server +%defattr(-,root,root,-) +%doc extras/clear_xattrs.sh %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif @@ -745,18 +628,11 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -# hack to work around old rpm/rpmbuild %%doc misfeature -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -%ghost %attr(0644,-,-) %{_pkgdocdir}/clear_xattrs.sh -%{_pkgdocdir}.tmp/clear_xattrs.sh -%else -%{_pkgdocdir}/clear_xattrs.sh -%endif %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options -# This is really ugly, but I have no idea how to mark these directories in -# any other way. They should belong to the glusterfs-server package, but -# don't exist after installation. They are generated on the first start... +# This is really ugly, but I have no idea how to mark these directories in an +# other way. They should belong to the glusterfs-server package, but don't +# exist after installation. They are generated on the first start... %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop @@ -799,15 +675,19 @@ fi %exclude %{_libdir}/*.so %{_libdir}/libgfapi.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* -%{python_sitelib}/* +%if ( 0%{?rhel} && 0%{?rhel} > 5 ) +%{python_sitelib}/gluster/__init__.p* +%endif %if ( 0%{!?_without_ocf:1} ) %files resource-agents +%defattr(-,root,root) # /usr/lib is the standard for OCF, also on x86_64 %{_prefix}/lib/ocf/resource.d/glusterfs %endif %files devel +%defattr(-,root,root,-) %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h %exclude %{_includedir}/glusterfs/api @@ -816,41 +696,28 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc -%{_libdir}/pkgconfig/libgfchangelog.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* -%files regression-tests -%defattr(-,root,root,-) -%{_prefix}/share/glusterfs/* -%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t - %post server # Legacy server %_init_enable glusterd %_init_enable glusterfsd -# hack to work around old rpm/rpmbuild %%doc misfeature -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -if [ -d %{_pkgdocdir}.tmp ]; then - cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ - rm -rf %{_pkgdocdir}.tmp/* -%endif - # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib # in gluster.org RPMs.) Be careful to copy them on the off chance that # /etc and /var/lib are on separate file systems if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then - mkdir -p %{_sharedstatedir}/glusterd + %{__mkdir_p} %{_sharedstatedir}/glusterd cp -a /etc/glusterd %{_sharedstatedir}/glusterd rm -rf /etc/glusterd ln -sf %{_sharedstatedir}/glusterd /etc/glusterd fi # Rename old volfiles in an RPM-standard way. These aren't actually -# considered package config files, so %%config doesn't work for them. +# considered package config files, so %config doesn't work for them. if [ -d %{_sharedstatedir}/glusterd/vols ]; then for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do newfile=${file}.rpmsave @@ -895,17 +762,12 @@ if [ $1 -ge 1 ]; then fi %changelog +* Tue Dec 17 2013 Kaleb S. KEITHLEY - 3.4.2-0.1qa4 +- GlusterFS 3.4.2 QA4 , glusterfs-3.4.2-0.1qa4 + * Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1qa3 - GlusterFS 3.5.0 QA3 , glusterfs-3.5.0-0.1qa3 -* Wed Nov 6 2013 Kaleb S. KEITHLEY -- obsolete glusterfs-ufo (#1025059) -- ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) -- clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not - in /usr/share/doc/glusterfs-server(-x.y.z) -- remove defattr (per pkg review of another package) -- don't use %%{__foo} macros (per package review of another package) - * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) - fix "warning: File listed twice: .../glusterd.info" while building diff --git a/sources b/sources index a3f5afe..61adeb8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -65473412bc9b61c8a33c5216c7d813da glusterfs-3.5.0qa3.tar.gz +6e9bebd04cf7fe8d25f35462d6688fa8 glusterfs-3.4.2qa4.tar.gz From a1e5e997b27e6be69c521b5d2418e01e3631809e Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Thu, 19 Dec 2013 19:50:36 +0100 Subject: [PATCH 010/328] Include .../gluster/__init__.py in Fedora builds (not EL-6+ only) Resolves: 1045123 --- glusterfs.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8119d7a..500737a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -50,7 +50,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.4.2 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.1%{?prereltag:.%{prereltag}}.1%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -675,7 +675,7 @@ fi %exclude %{_libdir}/*.so %{_libdir}/libgfapi.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* -%if ( 0%{?rhel} && 0%{?rhel} > 5 ) +%if ! ( 0%{?rhel} && 0%{?rhel} <= 5 ) %{python_sitelib}/gluster/__init__.p* %endif @@ -762,6 +762,10 @@ if [ $1 -ge 1 ]; then fi %changelog +* Thu Dec 19 2013 Niels de Vos - 3.4.2-0.1qa4.1 +- Include the .../site-packages/gluster/__init__.py file by default, + skip EL-5 and earlier (#1045123) + * Tue Dec 17 2013 Kaleb S. KEITHLEY - 3.4.2-0.1qa4 - GlusterFS 3.4.2 QA4 , glusterfs-3.4.2-0.1qa4 From 9b53e576b11fe85bf19eb50aa1b1f63c400290a8 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Fri, 20 Dec 2013 09:13:07 +0100 Subject: [PATCH 011/328] Include .../site-packages/gluster/gfapi.py in glusterfs-api The current plan is to wait with merging these changes to the other branches. glusterfs-3.4.2 is expected to be released early next week, we will need to provide new builds with that release anyway. --- glusterfs.spec | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 500737a..4f1766a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -50,7 +50,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.4.2 -Release: 0.1%{?prereltag:.%{prereltag}}.1%{?dist} +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -388,6 +388,12 @@ This package provides the api include files. %install %{__rm} -rf %{buildroot} %{__make} install DESTDIR=%{buildroot} +%if ! ( 0%{?rhel} && 0%{?rhel} <= 5 ) +# install the gfapi Python library in /usr/lib/python*/site-packages +pushd api/examples +python setup.py install --skip-build --verbose --root %{buildroot} +popd +%endif # Install include directory %{__mkdir_p} %{buildroot}%{_includedir}/glusterfs %{__install} -p -m 0644 libglusterfs/src/*.h \ @@ -412,10 +418,6 @@ This package provides the api include files. %{__install} -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif -%if ( 0%{?rhel} && 0%{?rhel} > 5 ) -%{__mkdir_p} %{buildroot}%{python_sitelib}/gluster -touch %{buildroot}%{python_sitelib}/gluster/__init__.py -%endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) @@ -762,7 +764,10 @@ if [ $1 -ge 1 ]; then fi %changelog -* Thu Dec 19 2013 Niels de Vos - 3.4.2-0.1qa4.1 +* Fri Dec 20 2013 Niels de Vos +- Include .../site-packages/gluster/gfapi.py in glusterfs-api + +* Thu Dec 19 2013 Niels de Vos - Include the .../site-packages/gluster/__init__.py file by default, skip EL-5 and earlier (#1045123) From 21f73d00a784afd1e364c6f33f8a28abfd8136ba Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Wed, 25 Dec 2013 15:15:17 +0100 Subject: [PATCH 012/328] GlusterFS 3.4.2 QA5, glusterfs-3.4.2-0.1qa5 Moving the download location of the tarball from download.gluster,org to bits.gluster.org. bits.gluster.org is still/currently used for automatic releases triggered from Jenkins. Also correcting some of the build issues that were caused by the previous commit. The Python gfapi.py module was not included in previous source tarballs and could not be tested. --- glusterfs.spec | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4f1766a..5fb55e0 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,7 +4,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag qa4 +%global prereltag qa5 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -46,6 +46,12 @@ %global _with_systemd true %endif +# From https://fedoraproject.org/wiki/Packaging:Python#Macros +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%endif + Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs @@ -62,7 +68,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://download.gluster.org/pub/gluster/glusterfs/qa-releases/%{version}%{prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -284,6 +290,8 @@ This package provides the glusterfs server daemon. Summary: Clustered file-system api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} +# we provide the Python package/namespace 'gluster' +Provides: python-gluster = %{version}-%{release} %description api GlusterFS is a clustered file-system capable of scaling to several @@ -385,15 +393,17 @@ This package provides the api include files. %{__make} %{?_smp_mflags} +pushd api/examples +FLAGS="$RPM_OPT_FLAGS" python setup.py build +popd + %install %{__rm} -rf %{buildroot} %{__make} install DESTDIR=%{buildroot} -%if ! ( 0%{?rhel} && 0%{?rhel} <= 5 ) # install the gfapi Python library in /usr/lib/python*/site-packages pushd api/examples python setup.py install --skip-build --verbose --root %{buildroot} popd -%endif # Install include directory %{__mkdir_p} %{buildroot}%{_includedir}/glusterfs %{__install} -p -m 0644 libglusterfs/src/*.h \ @@ -677,9 +687,7 @@ fi %exclude %{_libdir}/*.so %{_libdir}/libgfapi.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* -%if ! ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{python_sitelib}/gluster/__init__.p* -%endif +%{python_sitelib}/* %if ( 0%{!?_without_ocf:1} ) %files resource-agents @@ -764,6 +772,10 @@ if [ $1 -ge 1 ]; then fi %changelog +* Wed Dec 25 2013 Niels de Vos - 3.4.2-0.1qa5 +- GlusterFS 3.4.2 QA5, glusterfs-3.4.2-0.1qa5 +- Correct source URL to automatic release location + * Fri Dec 20 2013 Niels de Vos - Include .../site-packages/gluster/gfapi.py in glusterfs-api From b609dc6b9e581d3100d97f30452c25cb5798b68f Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Wed, 25 Dec 2013 15:58:16 +0100 Subject: [PATCH 013/328] add glusterfs-3.4.2qa5.tar.gz to the sources file --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index 61adeb8..b0804f8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6e9bebd04cf7fe8d25f35462d6688fa8 glusterfs-3.4.2qa4.tar.gz +268bc2175216eee286a56030e9effba9 glusterfs-3.4.2qa5.tar.gz From d38e826d1c0a9094a4f7f4ec3011a4ecc8b9a00e Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 3 Jan 2014 07:22:49 -0500 Subject: [PATCH 014/328] GlusterFS 3.4.2 GA (glusterfs-3.4.2-1) --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5fb55e0..426db0e 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,7 +4,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag qa5 +# %%global prereltag qa5 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -56,7 +56,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.4.2 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -772,6 +772,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Fri Jan 3 2014 Kaleb S. KEITHLEY - 3.5.0-1 +- GlusterFS 3.4.2 GA + * Wed Dec 25 2013 Niels de Vos - 3.4.2-0.1qa5 - GlusterFS 3.4.2 QA5, glusterfs-3.4.2-0.1qa5 - Correct source URL to automatic release location diff --git a/sources b/sources index b0804f8..62213cb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -268bc2175216eee286a56030e9effba9 glusterfs-3.4.2qa5.tar.gz +7c05304a9aca3c85ff27458461783623 glusterfs-3.4.2.tar.gz From 678080bc0e8932771a06bc2a9dd4ae89f0f59924 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Sat, 4 Jan 2014 17:40:09 +0100 Subject: [PATCH 015/328] The main glusterfs package should not provide glusterfs-libs Because of this incorrect provides, there is no requirement to update glusterfs-libs. Most users will get a newer glusterfs-libs when updating anyway, but users that manually select RPMs for updating my skip the package, which will break their system. Resolves: 1048489 --- glusterfs.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 426db0e..448f65a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -136,10 +136,8 @@ BuildRequires: lvm2-devel %endif Obsoletes: hekafs <= 0.7 -Obsoletes: %{name}-libs <= 2.0.0 Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} -Provides: %{name}-libs = %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -772,6 +770,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Sat Jan 4 2014 Niels de Vos +- The main glusterfs package should not provide glusterfs-libs (#1048489) + * Fri Jan 3 2014 Kaleb S. KEITHLEY - 3.5.0-1 - GlusterFS 3.4.2 GA From 76eae69de81715e97dd1dddf5c1d5242bacac02b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 15 Jan 2014 10:26:34 -0500 Subject: [PATCH 016/328] glusterfs-3.5.0-0.1beta1 N.B. still using download.gluster.org for Source0 because I had to respin the tarball with a small tweak to configure.ac (instead of a patch). For GA we will switch to bits.gluster.org as the canonical source. --- glusterfs.spec | 346 ++++++++++++++++++++++++++++++++----------------- sources | 2 +- 2 files changed, 231 insertions(+), 117 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 448f65a..5983a9f 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,10 +1,9 @@ - %global _hardened_build 1 %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag qa5 +%global prereltag beta1 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -31,6 +30,15 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} +# if you wish to build rpms without syslog logging, compile like this +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog +%{?_without_syslog:%global _without_syslog --disable-syslog} + +# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount +%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%global _without_syslog --disable-syslog +%endif + # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -42,6 +50,15 @@ %define _without_bd --disable-bd-xlator %endif +# if you wish to compile an rpm without the qemu-block support... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block +%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +# xlators/features/qemu-block fails to build on RHEL5, disable it +%define _without_qemu_block --disable-qemu-block +%endif + %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif @@ -55,8 +72,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.4.2 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.5.0 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -68,7 +85,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://download.gluster.org/pub/gluster/glusterfs/qa-releases/%{version}%{prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -77,15 +94,15 @@ Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source11: glusterfsd.service Source13: glusterfsd.init -Patch0: %{name}-3.2.5.configure.ac.patch -Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch -Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +BuildRequires: python-simplejson +%endif %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE11}} @@ -98,7 +115,7 @@ Requires(postun): systemd-units %define _init_disable() /bin/systemctl disable %1.service ; %define _init_restart() /bin/systemctl try-restart %1.service ; %define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() %{__install} -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works %define _init_glusterd %{_unitdir}/glusterd.service %define _init_glusterfsd %{_unitdir}/glusterfsd.service @@ -114,7 +131,7 @@ Requires(postun): /sbin/service %define _init_disable() /sbin/chkconfig --del %1 ; %define _init_restart() /sbin/service %1 condrestart &>/dev/null ; %define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() %{__install} -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works %define _init_glusterd %{_sysconfdir}/init.d/glusterd %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd @@ -134,12 +151,16 @@ BuildRequires: systemtap-sdt-devel %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif +%if ( 0%{!?_without_qemu_block:1} ) +BuildRequires: glib2-devel +%endif -Obsoletes: hekafs <= 0.7 +Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} +Obsoletes: %{name}-ufo # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: @@ -148,7 +169,7 @@ Provides: %{name}-core = %{version}-%{release} %if ( 0%{?rhel} == 6 ) # filter_setup exists in RHEL6 only %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' + %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' %filter_setup %else # modern rpm and current Fedora do not generate requires when the @@ -156,6 +177,13 @@ Provides: %{name}-core = %{version}-%{release} %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) + # _sharedstatedir is not provided by RHEL5 + %define _sharedstatedir /var/lib +%endif + %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -172,6 +200,14 @@ both GlusterFS server and client framework. %package libs Summary: GlusterFS common libraries Group: Applications/File +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +Requires: rsyslog-mmjsonparse +%endif +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +Requires: rsyslog-mmcount +%endif +%endif %description libs GlusterFS is a clustered file-system capable of scaling to several @@ -226,6 +262,7 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} +Requires: python python-ctypes %description geo-replication GlusterFS is a clustered file-system capable of scaling to several @@ -288,6 +325,7 @@ This package provides the glusterfs server daemon. Summary: Clustered file-system api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} # we provide the Python package/namespace 'gluster' Provides: python-gluster = %{version}-%{release} @@ -368,83 +406,111 @@ is in user space and easily manageable. This package provides the api include files. +%package regression-tests +Summary: Development Tools +Group: Development/Tools +Requires: %{name} = %{version}-%{release} +Requires: %{name}-fuse = %{version}-%{release} +Requires: %{name}-server = %{version}-%{release} +Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 +Requires: python attr dbench git nfs-utils xfsprogs + +%description regression-tests +The Gluster Test Framework, is a suite of scripts used for +regression testing of Gluster. + %prep %setup -q -n %{name}-%{version}%{?prereltag} -%if ( 0%{_for_fedora_koji_builds} ) -#%patch0 -p0 -%patch1 -p0 -F4 -%if ( "%{version}" == "3.3.1" ) -%patch2 -p1 -%endif -%endif %build ./autogen.sh -%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} %{?_without_bd} %{?_without_systemtap} +%configure \ + %{?_without_rdma} \ + %{?_without_epoll} \ + %{?_without_fusermount} \ + %{?_without_georeplication} \ + %{?_without_ocf} \ + %{?_without_syslog} \ + %{?_without_bd} \ + %{?_without_qemu_block} \ + %{?_without_systemtap} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -%{__sed} -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool +sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif -%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool -%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -%{__make} %{?_smp_mflags} +make %{?_smp_mflags} pushd api/examples FLAGS="$RPM_OPT_FLAGS" python setup.py build popd %install -%{__rm} -rf %{buildroot} -%{__make} install DESTDIR=%{buildroot} +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} # install the gfapi Python library in /usr/lib/python*/site-packages pushd api/examples python setup.py install --skip-build --verbose --root %{buildroot} popd # Install include directory -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs -%{__install} -p -m 0644 libglusterfs/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs +install -p -m 0644 libglusterfs/src/*.h \ %{buildroot}%{_includedir}/glusterfs/ -%{__install} -p -m 0644 contrib/uuid/*.h \ +install -p -m 0644 contrib/uuid/*.h \ %{buildroot}%{_includedir}/glusterfs/ # Following needed by hekafs multi-tenant translator -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/rpc -%{__install} -p -m 0644 rpc/rpc-lib/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs/rpc +install -p -m 0644 rpc/rpc-lib/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__install} -p -m 0644 rpc/xdr/src/*.h \ +install -p -m 0644 rpc/xdr/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server -%{__install} -p -m 0644 xlators/protocol/server/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs/server +install -p -m 0644 xlators/protocol/server/src/*.h \ %{buildroot}%{_includedir}/glusterfs/server/ %if ( 0%{_for_fedora_koji_builds} ) -%{__install} -D -p -m 0644 %{SOURCE1} \ +install -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd -%{__install} -D -p -m 0644 %{SOURCE2} \ +install -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterd-sysconfig \ +install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{__install} -D -p -m 0755 %{SOURCE6} \ +install -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif %endif -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd -%{__mkdir_p} %{buildroot}%{_localstatedir}/run/gluster +mkdir -p %{buildroot}%{_localstatedir}/log/glusterd +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd +mkdir -p %{buildroot}%{_localstatedir}/run/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, they're included by %%doc -%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ +# Remove installed docs, the ones we want are included by %%doc, in +# /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending +# on the distribution +%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +rm -rf %{buildroot}%{_pkgdocdir}/* +%else +rm -rf %{buildroot}%{_defaultdocdir}/%{name} +mkdir -p %{buildroot}%{_pkgdocdir} +%endif +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +mkdir -p %{buildroot}%{_pkgdocdir}.tmp/ +cp -p extras/clear_xattrs.sh %{buildroot}%{_pkgdocdir}.tmp/ +%else +cp -p extras/clear_xattrs.sh %{buildroot}%{_pkgdocdir}/ +%endif head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog @@ -453,12 +519,12 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -%{__rm} -rf %{buildroot}/benchmarking -%{__rm} -f %{buildroot}/glusterfs-mode.el -%{__rm} -f %{buildroot}/glusterfs.vim +rm -rf %{buildroot}/benchmarking +rm -f %{buildroot}/glusterfs-mode.el +rm -f %{buildroot}/glusterfs.vim # Create working directory -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd # Update configuration file to /var/lib working directory sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ @@ -471,74 +537,115 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry -%{__install} -D -p -m 0644 %{SOURCE3} \ +install -D -p -m 0644 %{SOURCE3} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse # Server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE4} \ +install -D -p -m 0644 %{SOURCE4} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterd # Legacy server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE5} \ +install -D -p -m 0644 %{SOURCE5} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterfs-logrotate \ +install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs %endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication -touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication +touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +install -D -p -m 0644 extras/glusterfs-georep-logrotate \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep +%endif + +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +install -D -p -m 0644 extras/logger.conf.example \ + %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example +%endif %endif # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/groups -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs/run +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/groups +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid +find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs + %clean -%{__rm} -rf %{buildroot} +rm -rf %{buildroot} %post /sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %postun /sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %files -%defattr(-,root,root,-) %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif +%endif %{_libdir}/glusterfs %{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* @@ -578,7 +685,6 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid %if ( 0%{!?_without_rdma:1} ) %files rdma -%defattr(-,root,root,-) %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif @@ -590,15 +696,16 @@ if [ $1 -ge 1 ]; then fi %files geo-replication -%defattr(-,root,root) %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* +%{_libexecdir}/glusterfs/gverify.sh +%{_libexecdir}/glusterfs/peer_add_secret_pub +%{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf %endif %files fuse -%defattr(-,root,root,-) %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse %endif @@ -614,8 +721,6 @@ fi %endif %files server -%defattr(-,root,root,-) -%doc extras/clear_xattrs.sh %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif @@ -638,11 +743,18 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +# hack to work around old rpm/rpmbuild %%doc misfeature +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +%ghost %attr(0644,-,-) %{_pkgdocdir}/clear_xattrs.sh +%{_pkgdocdir}.tmp/clear_xattrs.sh +%else +%{_pkgdocdir}/clear_xattrs.sh +%endif %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options -# This is really ugly, but I have no idea how to mark these directories in an -# other way. They should belong to the glusterfs-server package, but don't -# exist after installation. They are generated on the first start... +# This is really ugly, but I have no idea how to mark these directories in +# any other way. They should belong to the glusterfs-server package, but +# don't exist after installation. They are generated on the first start... %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop @@ -689,13 +801,11 @@ fi %if ( 0%{!?_without_ocf:1} ) %files resource-agents -%defattr(-,root,root) # /usr/lib is the standard for OCF, also on x86_64 %{_prefix}/lib/ocf/resource.d/glusterfs %endif %files devel -%defattr(-,root,root,-) %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h %exclude %{_includedir}/glusterfs/api @@ -704,28 +814,41 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/pkgconfig/libgfchangelog.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* +%files regression-tests +%defattr(-,root,root,-) +%{_prefix}/share/glusterfs/* +%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t + %post server # Legacy server %_init_enable glusterd %_init_enable glusterfsd +# hack to work around old rpm/rpmbuild %%doc misfeature +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +if [ -d %{_pkgdocdir}.tmp ]; then + cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ + rm -rf %{_pkgdocdir}.tmp/* +%endif + # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib # in gluster.org RPMs.) Be careful to copy them on the off chance that # /etc and /var/lib are on separate file systems if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then - %{__mkdir_p} %{_sharedstatedir}/glusterd + mkdir -p %{_sharedstatedir}/glusterd cp -a /etc/glusterd %{_sharedstatedir}/glusterd rm -rf /etc/glusterd ln -sf %{_sharedstatedir}/glusterd /etc/glusterd fi # Rename old volfiles in an RPM-standard way. These aren't actually -# considered package config files, so %config doesn't work for them. +# considered package config files, so %%config doesn't work for them. if [ -d %{_sharedstatedir}/glusterd/vols ]; then for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do newfile=${file}.rpmsave @@ -770,29 +893,20 @@ if [ $1 -ge 1 ]; then fi %changelog -* Sat Jan 4 2014 Niels de Vos -- The main glusterfs package should not provide glusterfs-libs (#1048489) - -* Fri Jan 3 2014 Kaleb S. KEITHLEY - 3.5.0-1 -- GlusterFS 3.4.2 GA - -* Wed Dec 25 2013 Niels de Vos - 3.4.2-0.1qa5 -- GlusterFS 3.4.2 QA5, glusterfs-3.4.2-0.1qa5 -- Correct source URL to automatic release location - -* Fri Dec 20 2013 Niels de Vos -- Include .../site-packages/gluster/gfapi.py in glusterfs-api - -* Thu Dec 19 2013 Niels de Vos -- Include the .../site-packages/gluster/__init__.py file by default, - skip EL-5 and earlier (#1045123) - -* Tue Dec 17 2013 Kaleb S. KEITHLEY - 3.4.2-0.1qa4 -- GlusterFS 3.4.2 QA4 , glusterfs-3.4.2-0.1qa4 +* Wed Jan 15 2014 Kaleb S. KEITHLEY - 3.5.0-0.1beta1 +- GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 * Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1qa3 - GlusterFS 3.5.0 QA3 , glusterfs-3.5.0-0.1qa3 +* Wed Nov 6 2013 Kaleb S. KEITHLEY +- obsolete glusterfs-ufo (#1025059) +- ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) +- clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not + in /usr/share/doc/glusterfs-server(-x.y.z) +- remove defattr (per pkg review of another package) +- don't use %%{__foo} macros (per package review of another package) + * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) - fix "warning: File listed twice: .../glusterd.info" while building diff --git a/sources b/sources index 62213cb..452c239 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7c05304a9aca3c85ff27458461783623 glusterfs-3.4.2.tar.gz +08d53d32979a6f2d0ccbc8e8473837e9 glusterfs-3.5.0beta1.tar.gz From d609738e983e9f7e00dcfab05b0076363b01a7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Thu, 16 Jan 2014 22:19:51 +0200 Subject: [PATCH 017/328] Drop unnecessary ldconfig calls, do remaining ones without shell. - Drop INSTALL from docs. --- glusterfs.spec | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5983a9f..87669cb 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -73,7 +73,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.0 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -622,7 +622,6 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus rm -rf %{buildroot} %post -/sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %_init_restart rsyslog @@ -630,7 +629,6 @@ rm -rf %{buildroot} %endif %postun -/sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %_init_restart rsyslog @@ -638,7 +636,7 @@ rm -rf %{buildroot} %endif %files -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS +%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* %if ( 0%{!?_without_syslog:1} ) @@ -669,11 +667,9 @@ rm -rf %{buildroot} %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* -%post libs -/sbin/ldconfig +%post libs -p /sbin/ldconfig -%postun libs -/sbin/ldconfig +%postun libs -p /sbin/ldconfig %files libs %{_libdir}/*.so.* @@ -787,11 +783,9 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%post api -/sbin/ldconfig +%post api -p /sbin/ldconfig -%postun api -/sbin/ldconfig +%postun api -p /sbin/ldconfig %files api %exclude %{_libdir}/*.so @@ -893,6 +887,10 @@ if [ $1 -ge 1 ]; then fi %changelog +* Thu Jan 16 2014 Ville Skyttä - 3.5.0-0.2beta1 +- Drop unnecessary ldconfig calls, do remaining ones without shell. +- Drop INSTALL from docs. + * Wed Jan 15 2014 Kaleb S. KEITHLEY - 3.5.0-0.1beta1 - GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 From b690634d0660a7d0c47e2c7e65081017b0f18d74 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 16 Jan 2014 17:18:15 -0500 Subject: [PATCH 018/328] glusterfs-3.5.0-0.3.beta1 --- glusterfs.spec | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 87669cb..7cecba5 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -73,7 +73,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.0 -Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -505,12 +505,6 @@ rm -rf %{buildroot}%{_pkgdocdir}/* rm -rf %{buildroot}%{_defaultdocdir}/%{name} mkdir -p %{buildroot}%{_pkgdocdir} %endif -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -mkdir -p %{buildroot}%{_pkgdocdir}.tmp/ -cp -p extras/clear_xattrs.sh %{buildroot}%{_pkgdocdir}.tmp/ -%else -cp -p extras/clear_xattrs.sh %{buildroot}%{_pkgdocdir}/ -%endif head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog @@ -717,6 +711,7 @@ fi %endif %files server +%doc extras/clear_xattrs.sh %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif @@ -740,12 +735,6 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* # hack to work around old rpm/rpmbuild %%doc misfeature -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -%ghost %attr(0644,-,-) %{_pkgdocdir}/clear_xattrs.sh -%{_pkgdocdir}.tmp/clear_xattrs.sh -%else -%{_pkgdocdir}/clear_xattrs.sh -%endif %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options # This is really ugly, but I have no idea how to mark these directories in @@ -887,14 +876,17 @@ if [ $1 -ge 1 ]; then fi %changelog -* Thu Jan 16 2014 Ville Skyttä - 3.5.0-0.2beta1 +* Thu Jan 16 2014 Kaleb S. KEITHLEY - 3.5.0-0.3.beta1 +- GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 + +* Thu Jan 16 2014 Ville Skyttä - 3.5.0-0.2.beta1 - Drop unnecessary ldconfig calls, do remaining ones without shell. - Drop INSTALL from docs. -* Wed Jan 15 2014 Kaleb S. KEITHLEY - 3.5.0-0.1beta1 +* Wed Jan 15 2014 Kaleb S. KEITHLEY - 3.5.0-0.1.beta1 - GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 -* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1qa3 +* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1.qa3 - GlusterFS 3.5.0 QA3 , glusterfs-3.5.0-0.1qa3 * Wed Nov 6 2013 Kaleb S. KEITHLEY From 6b1c8097a1e07d952aa94e5d0d78c97c472887f5 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 16 Jan 2014 18:46:07 -0500 Subject: [PATCH 019/328] epel-7 fix --- glusterfs.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 7cecba5..6b1aa04 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -513,9 +513,11 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -rm -rf %{buildroot}/benchmarking -rm -f %{buildroot}/glusterfs-mode.el -rm -f %{buildroot}/glusterfs.vim +# make install always puts these in %%{_defaultdocdir}/%%{name} so don't +# use %%{_pkgdocdir}; that will be wrong on later Fedora distributions +rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking +rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el +rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim # Create working directory mkdir -p %{buildroot}%{_sharedstatedir}/glusterd From 3c8b7fb140927cc22b1c08f537cf696e4ed38aa3 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 27 Jan 2014 13:32:50 -0500 Subject: [PATCH 020/328] glusterfs-3.5.0-0.4beta2 --- glusterfs.spec | 6 +++--- sources | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 6b1aa04..dacb407 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta1 +%global prereltag beta2 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -73,7 +73,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.0 -Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.4%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -85,7 +85,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://download.gluster.org/pub/gluster/glusterfs/qa-releases/%{version}%{prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate diff --git a/sources b/sources index 452c239..060d2cc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -08d53d32979a6f2d0ccbc8e8473837e9 glusterfs-3.5.0beta1.tar.gz +fc37a547365fb715910c99fefb914216 glusterfs-3.5.0beta2.tar.gz From 6faf05e47bce8698c01362066e8d52542d476c18 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 27 Jan 2014 13:36:08 -0500 Subject: [PATCH 021/328] glusterfs-3.5.0-0.4beta2 with %changelog entry --- glusterfs.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/glusterfs.spec b/glusterfs.spec index dacb407..4da58d7 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -878,6 +878,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Mon Jan 27 2014 Kaleb S. KEITHLEY - 3.5.0-0.4.beta2 +- GlusterFS 3.5.0 beta2 , glusterfs-3.5.0-0.4beta2 + * Thu Jan 16 2014 Kaleb S. KEITHLEY - 3.5.0-0.3.beta1 - GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 From 50d21bff1ffc25a1bdb7b191a70d23c17de49d90 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 27 Jan 2014 16:15:40 -0500 Subject: [PATCH 022/328] 3.5.0-0.4beta2 for el5 --- glusterfs.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/glusterfs.spec b/glusterfs.spec index 4da58d7..25a4520 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -513,11 +513,17 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +rm -rf %{buildroot}/benchmarking +rm -f %{buildroot}/glusterfs-mode.el +rm -f %{buildroot}/glusterfs.vim +%else # make install always puts these in %%{_defaultdocdir}/%%{name} so don't # use %%{_pkgdocdir}; that will be wrong on later Fedora distributions rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim +%endif # Create working directory mkdir -p %{buildroot}%{_sharedstatedir}/glusterd From 3999326517eadcd19ab5dce2c61ebece98a0a7aa Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 11 Feb 2014 14:58:38 -0500 Subject: [PATCH 023/328] GlusterFS 3.5.0 beta3 , glusterfs-3.5.0-0.5beta3 --- glusterfs.spec | 26 ++++++++++++++++++++++++-- sources | 2 +- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 25a4520..50ec3ce 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta2 +%global prereltag beta3 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -73,7 +73,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.0 -Release: 0.4%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.5%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -154,6 +154,9 @@ BuildRequires: lvm2-devel %if ( 0%{!?_without_qemu_block:1} ) BuildRequires: glib2-devel %endif +%if ( 0%{!?_without_georeplication:1} ) +BuildRequires: libattr-devel +%endif Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} @@ -618,6 +621,9 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid +install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ + %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post + find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs %clean @@ -694,12 +700,23 @@ if [ $1 -ge 1 ]; then fi %files geo-replication +%{_sysconfdir}/logrotate.d/glusterfs-georep %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* %{_libexecdir}/glusterfs/gverify.sh %{_libexecdir}/glusterfs/peer_add_secret_pub %{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication +%dir %{_sharedstatedir}/glusterd/hooks +%dir %{_sharedstatedir}/glusterd/hooks/1 +%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create +%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh +%{_datadir}/glusterfs/scripts/get-gfid.sh +%{_datadir}/glusterfs/scripts/slave-upgrade.sh +%{_datadir}/glusterfs/scripts/gsync-upgrade.sh +%{_datadir}/glusterfs/scripts/generate-gfid-file.sh +%{_datadir}/glusterfs/scripts/gsync-sync-gfid %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf %endif @@ -725,6 +742,8 @@ fi %endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs +# %%dir %{_sharedstatedir}/glusterd/groups +# %%config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd @@ -884,6 +903,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Tue Feb 11 2014 Kaleb S. KEITHLEY - 3.5.0-0.5.beta3 +- GlusterFS 3.5.0 beta3 , glusterfs-3.5.0-0.5beta3 + * Mon Jan 27 2014 Kaleb S. KEITHLEY - 3.5.0-0.4.beta2 - GlusterFS 3.5.0 beta2 , glusterfs-3.5.0-0.4beta2 diff --git a/sources b/sources index 060d2cc..c5095a0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fc37a547365fb715910c99fefb914216 glusterfs-3.5.0beta2.tar.gz +a47c2282246d069bed22ff40f3928be6 glusterfs-3.5.0beta3.tar.gz From 61583609decc937b14737651e57d7896960be347 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 13 Feb 2014 09:43:50 -0500 Subject: [PATCH 024/328] GlusterFS 3.4.3 alpha1 --- glusterfs.spec | 385 ++++++++++++++++--------------------------------- sources | 2 +- 2 files changed, 126 insertions(+), 261 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 50ec3ce..b5c374a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,9 +1,10 @@ + %global _hardened_build 1 %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta3 +%global prereltag alpha1 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -30,15 +31,6 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} -# if you wish to build rpms without syslog logging, compile like this -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog -%{?_without_syslog:%global _without_syslog --disable-syslog} - -# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) -%global _without_syslog --disable-syslog -%endif - # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -50,15 +42,6 @@ %define _without_bd --disable-bd-xlator %endif -# if you wish to compile an rpm without the qemu-block support... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block -%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -# xlators/features/qemu-block fails to build on RHEL5, disable it -%define _without_qemu_block --disable-qemu-block -%endif - %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif @@ -72,8 +55,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.5.0 -Release: 0.5%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.4.3 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -85,7 +68,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -94,15 +77,15 @@ Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source11: glusterfsd.service Source13: glusterfsd.init +Patch0: %{name}-3.2.5.configure.ac.patch +Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch +Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -BuildRequires: python-simplejson -%endif %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE11}} @@ -115,7 +98,7 @@ Requires(postun): systemd-units %define _init_disable() /bin/systemctl disable %1.service ; %define _init_restart() /bin/systemctl try-restart %1.service ; %define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%define _init_install() %{__install} -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works %define _init_glusterd %{_unitdir}/glusterd.service %define _init_glusterfsd %{_unitdir}/glusterfsd.service @@ -131,7 +114,7 @@ Requires(postun): /sbin/service %define _init_disable() /sbin/chkconfig --del %1 ; %define _init_restart() /sbin/service %1 condrestart &>/dev/null ; %define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%define _init_install() %{__install} -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works %define _init_glusterd %{_sysconfdir}/init.d/glusterd %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd @@ -151,19 +134,14 @@ BuildRequires: systemtap-sdt-devel %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif -%if ( 0%{!?_without_qemu_block:1} ) -BuildRequires: glib2-devel -%endif -%if ( 0%{!?_without_georeplication:1} ) -BuildRequires: libattr-devel -%endif -Obsoletes: hekafs +Obsoletes: hekafs <= 0.7 +Obsoletes: %{name}-libs <= 2.0.0 Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} +Provides: %{name}-libs = %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} -Obsoletes: %{name}-ufo # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: @@ -172,7 +150,7 @@ Obsoletes: %{name}-ufo %if ( 0%{?rhel} == 6 ) # filter_setup exists in RHEL6 only %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' + %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' %filter_setup %else # modern rpm and current Fedora do not generate requires when the @@ -180,13 +158,6 @@ Obsoletes: %{name}-ufo %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) - # _sharedstatedir is not provided by RHEL5 - %define _sharedstatedir /var/lib -%endif - %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -203,14 +174,6 @@ both GlusterFS server and client framework. %package libs Summary: GlusterFS common libraries Group: Applications/File -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -Requires: rsyslog-mmjsonparse -%endif -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -Requires: rsyslog-mmcount -%endif -%endif %description libs GlusterFS is a clustered file-system capable of scaling to several @@ -265,7 +228,6 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} -Requires: python python-ctypes %description geo-replication GlusterFS is a clustered file-system capable of scaling to several @@ -328,7 +290,6 @@ This package provides the glusterfs server daemon. Summary: Clustered file-system api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} -Requires: %{name}-devel = %{version}-%{release} # we provide the Python package/namespace 'gluster' Provides: python-gluster = %{version}-%{release} @@ -409,105 +370,83 @@ is in user space and easily manageable. This package provides the api include files. -%package regression-tests -Summary: Development Tools -Group: Development/Tools -Requires: %{name} = %{version}-%{release} -Requires: %{name}-fuse = %{version}-%{release} -Requires: %{name}-server = %{version}-%{release} -Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 -Requires: python attr dbench git nfs-utils xfsprogs - -%description regression-tests -The Gluster Test Framework, is a suite of scripts used for -regression testing of Gluster. - %prep %setup -q -n %{name}-%{version}%{?prereltag} +%if ( 0%{_for_fedora_koji_builds} ) +#%patch0 -p0 +%patch1 -p0 -F4 +%if ( "%{version}" == "3.3.1" ) +%patch2 -p1 +%endif +%endif %build ./autogen.sh -%configure \ - %{?_without_rdma} \ - %{?_without_epoll} \ - %{?_without_fusermount} \ - %{?_without_georeplication} \ - %{?_without_ocf} \ - %{?_without_syslog} \ - %{?_without_bd} \ - %{?_without_qemu_block} \ - %{?_without_systemtap} +%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} %{?_without_bd} %{?_without_systemtap} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool +%{__sed} -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif -sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool -sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool +%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool +%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -make %{?_smp_mflags} +%{__make} %{?_smp_mflags} pushd api/examples FLAGS="$RPM_OPT_FLAGS" python setup.py build popd %install -rm -rf %{buildroot} -make install DESTDIR=%{buildroot} +%{__rm} -rf %{buildroot} +%{__make} install DESTDIR=%{buildroot} # install the gfapi Python library in /usr/lib/python*/site-packages pushd api/examples python setup.py install --skip-build --verbose --root %{buildroot} popd # Install include directory -mkdir -p %{buildroot}%{_includedir}/glusterfs -install -p -m 0644 libglusterfs/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs +%{__install} -p -m 0644 libglusterfs/src/*.h \ %{buildroot}%{_includedir}/glusterfs/ -install -p -m 0644 contrib/uuid/*.h \ +%{__install} -p -m 0644 contrib/uuid/*.h \ %{buildroot}%{_includedir}/glusterfs/ # Following needed by hekafs multi-tenant translator -mkdir -p %{buildroot}%{_includedir}/glusterfs/rpc -install -p -m 0644 rpc/rpc-lib/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/rpc +%{__install} -p -m 0644 rpc/rpc-lib/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -install -p -m 0644 rpc/xdr/src/*.h \ +%{__install} -p -m 0644 rpc/xdr/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -mkdir -p %{buildroot}%{_includedir}/glusterfs/server -install -p -m 0644 xlators/protocol/server/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server +%{__install} -p -m 0644 xlators/protocol/server/src/*.h \ %{buildroot}%{_includedir}/glusterfs/server/ %if ( 0%{_for_fedora_koji_builds} ) -install -D -p -m 0644 %{SOURCE1} \ +%{__install} -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd -install -D -p -m 0644 %{SOURCE2} \ +%{__install} -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %else -install -D -p -m 0644 extras/glusterd-sysconfig \ +%{__install} -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -install -D -p -m 0755 %{SOURCE6} \ +%{__install} -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif %endif -mkdir -p %{buildroot}%{_localstatedir}/log/glusterd -mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs -mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd -mkdir -p %{buildroot}%{_localstatedir}/run/gluster +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd +%{__mkdir_p} %{buildroot}%{_localstatedir}/run/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, the ones we want are included by %%doc, in -# /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending -# on the distribution -%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -rm -rf %{buildroot}%{_pkgdocdir}/* -%else -rm -rf %{buildroot}%{_defaultdocdir}/%{name} -mkdir -p %{buildroot}%{_pkgdocdir} -%endif +# Remove installed docs, they're included by %%doc +%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog @@ -516,20 +455,12 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -rm -rf %{buildroot}/benchmarking -rm -f %{buildroot}/glusterfs-mode.el -rm -f %{buildroot}/glusterfs.vim -%else -# make install always puts these in %%{_defaultdocdir}/%%{name} so don't -# use %%{_pkgdocdir}; that will be wrong on later Fedora distributions -rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking -rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el -rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim -%endif +%{__rm} -rf %{buildroot}/benchmarking +%{__rm} -f %{buildroot}/glusterfs-mode.el +%{__rm} -f %{buildroot}/glusterfs.vim # Create working directory -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd # Update configuration file to /var/lib working directory sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ @@ -542,116 +473,74 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry -install -D -p -m 0644 %{SOURCE3} \ +%{__install} -D -p -m 0644 %{SOURCE3} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse # Server logrotate entry -install -D -p -m 0644 %{SOURCE4} \ +%{__install} -D -p -m 0644 %{SOURCE4} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterd # Legacy server logrotate entry -install -D -p -m 0644 %{SOURCE5} \ +%{__install} -D -p -m 0644 %{SOURCE5} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd %else -install -D -p -m 0644 extras/glusterfs-logrotate \ +%{__install} -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs %endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication -touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf -install -D -p -m 0644 extras/glusterfs-georep-logrotate \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep -%endif - -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -install -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ - %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif - -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -install -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ - %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif - -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -install -D -p -m 0644 extras/logger.conf.example \ - %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example -%endif +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication +touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf %endif # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/groups -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/groups +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid -install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post - -find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs - %clean -rm -rf %{buildroot} +%{__rm} -rf %{buildroot} %post -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog -%endif -%endif +/sbin/ldconfig %postun -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog -%endif -%endif +/sbin/ldconfig %files -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 README THANKS +%defattr(-,root,root,-) +%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif -%endif %{_libdir}/glusterfs %{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* @@ -675,9 +564,11 @@ rm -rf %{buildroot} %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* -%post libs -p /sbin/ldconfig +%post libs +/sbin/ldconfig -%postun libs -p /sbin/ldconfig +%postun libs +/sbin/ldconfig %files libs %{_libdir}/*.so.* @@ -689,6 +580,7 @@ rm -rf %{buildroot} %if ( 0%{!?_without_rdma:1} ) %files rdma +%defattr(-,root,root,-) %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif @@ -700,27 +592,15 @@ if [ $1 -ge 1 ]; then fi %files geo-replication -%{_sysconfdir}/logrotate.d/glusterfs-georep +%defattr(-,root,root) %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* -%{_libexecdir}/glusterfs/gverify.sh -%{_libexecdir}/glusterfs/peer_add_secret_pub -%{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%dir %{_sharedstatedir}/glusterd/hooks -%dir %{_sharedstatedir}/glusterd/hooks/1 -%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create -%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh -%{_datadir}/glusterfs/scripts/get-gfid.sh -%{_datadir}/glusterfs/scripts/slave-upgrade.sh -%{_datadir}/glusterfs/scripts/gsync-upgrade.sh -%{_datadir}/glusterfs/scripts/generate-gfid-file.sh -%{_datadir}/glusterfs/scripts/gsync-sync-gfid -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf %endif %files fuse +%defattr(-,root,root,-) %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse %endif @@ -736,14 +616,13 @@ fi %endif %files server +%defattr(-,root,root,-) %doc extras/clear_xattrs.sh %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs -# %%dir %{_sharedstatedir}/glusterd/groups -# %%config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd @@ -761,12 +640,11 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -# hack to work around old rpm/rpmbuild %%doc misfeature %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options -# This is really ugly, but I have no idea how to mark these directories in -# any other way. They should belong to the glusterfs-server package, but -# don't exist after installation. They are generated on the first start... +# This is really ugly, but I have no idea how to mark these directories in an +# other way. They should belong to the glusterfs-server package, but don't +# exist after installation. They are generated on the first start... %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop @@ -799,9 +677,11 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%post api -p /sbin/ldconfig +%post api +/sbin/ldconfig -%postun api -p /sbin/ldconfig +%postun api +/sbin/ldconfig %files api %exclude %{_libdir}/*.so @@ -811,11 +691,13 @@ fi %if ( 0%{!?_without_ocf:1} ) %files resource-agents +%defattr(-,root,root) # /usr/lib is the standard for OCF, also on x86_64 %{_prefix}/lib/ocf/resource.d/glusterfs %endif %files devel +%defattr(-,root,root,-) %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h %exclude %{_includedir}/glusterfs/api @@ -824,41 +706,28 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc -%{_libdir}/pkgconfig/libgfchangelog.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* -%files regression-tests -%defattr(-,root,root,-) -%{_prefix}/share/glusterfs/* -%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t - %post server # Legacy server %_init_enable glusterd %_init_enable glusterfsd -# hack to work around old rpm/rpmbuild %%doc misfeature -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -if [ -d %{_pkgdocdir}.tmp ]; then - cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ - rm -rf %{_pkgdocdir}.tmp/* -%endif - # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib # in gluster.org RPMs.) Be careful to copy them on the off chance that # /etc and /var/lib are on separate file systems if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then - mkdir -p %{_sharedstatedir}/glusterd + %{__mkdir_p} %{_sharedstatedir}/glusterd cp -a /etc/glusterd %{_sharedstatedir}/glusterd rm -rf /etc/glusterd ln -sf %{_sharedstatedir}/glusterd /etc/glusterd fi # Rename old volfiles in an RPM-standard way. These aren't actually -# considered package config files, so %%config doesn't work for them. +# considered package config files, so %config doesn't work for them. if [ -d %{_sharedstatedir}/glusterd/vols ]; then for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do newfile=${file}.rpmsave @@ -903,33 +772,29 @@ if [ $1 -ge 1 ]; then fi %changelog -* Tue Feb 11 2014 Kaleb S. KEITHLEY - 3.5.0-0.5.beta3 -- GlusterFS 3.5.0 beta3 , glusterfs-3.5.0-0.5beta3 +* Thu Feb 13 2014 Kaleb S. KEITHLEY - 3.4.3-0.1.alpha1 +- GlusterFS 3.4.3 alpha1 -* Mon Jan 27 2014 Kaleb S. KEITHLEY - 3.5.0-0.4.beta2 -- GlusterFS 3.5.0 beta2 , glusterfs-3.5.0-0.4beta2 +* Fri Jan 3 2014 Kaleb S. KEITHLEY - 3.4.2-1 +- GlusterFS 3.4.2 GA -* Thu Jan 16 2014 Kaleb S. KEITHLEY - 3.5.0-0.3.beta1 -- GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 +* Wed Dec 25 2013 Niels de Vos - 3.4.2-0.1qa5 +- GlusterFS 3.4.2 QA5, glusterfs-3.4.2-0.1qa5 +- Correct source URL to automatic release location -* Thu Jan 16 2014 Ville Skyttä - 3.5.0-0.2.beta1 -- Drop unnecessary ldconfig calls, do remaining ones without shell. -- Drop INSTALL from docs. +* Fri Dec 20 2013 Niels de Vos +- Include .../site-packages/gluster/gfapi.py in glusterfs-api -* Wed Jan 15 2014 Kaleb S. KEITHLEY - 3.5.0-0.1.beta1 -- GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 +* Thu Dec 19 2013 Niels de Vos +- Include the .../site-packages/gluster/__init__.py file by default, + skip EL-5 and earlier (#1045123) -* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1.qa3 +* Tue Dec 17 2013 Kaleb S. KEITHLEY - 3.4.2-0.1qa4 +- GlusterFS 3.4.2 QA4 , glusterfs-3.4.2-0.1qa4 + +* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1qa3 - GlusterFS 3.5.0 QA3 , glusterfs-3.5.0-0.1qa3 -* Wed Nov 6 2013 Kaleb S. KEITHLEY -- obsolete glusterfs-ufo (#1025059) -- ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) -- clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not - in /usr/share/doc/glusterfs-server(-x.y.z) -- remove defattr (per pkg review of another package) -- don't use %%{__foo} macros (per package review of another package) - * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) - fix "warning: File listed twice: .../glusterd.info" while building diff --git a/sources b/sources index c5095a0..9122860 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a47c2282246d069bed22ff40f3928be6 glusterfs-3.5.0beta3.tar.gz +073f9c4a76a17dde3f3f7cfd7c9eefeb glusterfs-3.4.3alpha1.tar.gz From 1d0cf40a3c99da69209434b6cc318021439a9c89 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Sat, 8 Mar 2014 13:38:01 -0500 Subject: [PATCH 025/328] GlusterFS 3.5.0 beta4 --- glusterfs.spec | 386 +++++++++++++++++++++++++++++++++---------------- sources | 2 +- 2 files changed, 263 insertions(+), 125 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index b5c374a..4da1765 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,10 +1,9 @@ - %global _hardened_build 1 %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag alpha1 +%global prereltag beta4 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -31,6 +30,15 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} +# if you wish to build rpms without syslog logging, compile like this +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog +%{?_without_syslog:%global _without_syslog --disable-syslog} + +# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount +%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%global _without_syslog --disable-syslog +%endif + # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -42,6 +50,15 @@ %define _without_bd --disable-bd-xlator %endif +# if you wish to compile an rpm without the qemu-block support... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block +%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +# xlators/features/qemu-block fails to build on RHEL5, disable it +%define _without_qemu_block --disable-qemu-block +%endif + %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif @@ -55,8 +72,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.4.3 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.5.0 +Release: 0.6%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -68,7 +85,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -77,15 +94,15 @@ Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source11: glusterfsd.service Source13: glusterfsd.init -Patch0: %{name}-3.2.5.configure.ac.patch -Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch -Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +BuildRequires: python-simplejson +%endif %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE11}} @@ -98,7 +115,7 @@ Requires(postun): systemd-units %define _init_disable() /bin/systemctl disable %1.service ; %define _init_restart() /bin/systemctl try-restart %1.service ; %define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() %{__install} -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works %define _init_glusterd %{_unitdir}/glusterd.service %define _init_glusterfsd %{_unitdir}/glusterfsd.service @@ -114,7 +131,7 @@ Requires(postun): /sbin/service %define _init_disable() /sbin/chkconfig --del %1 ; %define _init_restart() /sbin/service %1 condrestart &>/dev/null ; %define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() %{__install} -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works %define _init_glusterd %{_sysconfdir}/init.d/glusterd %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd @@ -134,14 +151,19 @@ BuildRequires: systemtap-sdt-devel %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif +%if ( 0%{!?_without_qemu_block:1} ) +BuildRequires: glib2-devel +%endif +%if ( 0%{!?_without_georeplication:1} ) +BuildRequires: libattr-devel +%endif -Obsoletes: hekafs <= 0.7 -Obsoletes: %{name}-libs <= 2.0.0 +Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} -Provides: %{name}-libs = %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} +Obsoletes: %{name}-ufo # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: @@ -150,7 +172,7 @@ Provides: %{name}-core = %{version}-%{release} %if ( 0%{?rhel} == 6 ) # filter_setup exists in RHEL6 only %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' + %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' %filter_setup %else # modern rpm and current Fedora do not generate requires when the @@ -158,6 +180,13 @@ Provides: %{name}-core = %{version}-%{release} %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) + # _sharedstatedir is not provided by RHEL5 + %define _sharedstatedir /var/lib +%endif + %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -174,6 +203,14 @@ both GlusterFS server and client framework. %package libs Summary: GlusterFS common libraries Group: Applications/File +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +Requires: rsyslog-mmjsonparse +%endif +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +Requires: rsyslog-mmcount +%endif +%endif %description libs GlusterFS is a clustered file-system capable of scaling to several @@ -228,6 +265,7 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} +Requires: python python-ctypes %description geo-replication GlusterFS is a clustered file-system capable of scaling to several @@ -290,6 +328,7 @@ This package provides the glusterfs server daemon. Summary: Clustered file-system api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} # we provide the Python package/namespace 'gluster' Provides: python-gluster = %{version}-%{release} @@ -370,83 +409,105 @@ is in user space and easily manageable. This package provides the api include files. +%package regression-tests +Summary: Development Tools +Group: Development/Tools +Requires: %{name} = %{version}-%{release} +Requires: %{name}-fuse = %{version}-%{release} +Requires: %{name}-server = %{version}-%{release} +Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 +Requires: python attr dbench git nfs-utils xfsprogs + +%description regression-tests +The Gluster Test Framework, is a suite of scripts used for +regression testing of Gluster. + %prep %setup -q -n %{name}-%{version}%{?prereltag} -%if ( 0%{_for_fedora_koji_builds} ) -#%patch0 -p0 -%patch1 -p0 -F4 -%if ( "%{version}" == "3.3.1" ) -%patch2 -p1 -%endif -%endif %build ./autogen.sh -%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} %{?_without_bd} %{?_without_systemtap} +%configure \ + %{?_without_rdma} \ + %{?_without_epoll} \ + %{?_without_fusermount} \ + %{?_without_georeplication} \ + %{?_without_ocf} \ + %{?_without_syslog} \ + %{?_without_bd} \ + %{?_without_qemu_block} \ + %{?_without_systemtap} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -%{__sed} -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool +sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif -%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool -%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -%{__make} %{?_smp_mflags} +make %{?_smp_mflags} pushd api/examples FLAGS="$RPM_OPT_FLAGS" python setup.py build popd %install -%{__rm} -rf %{buildroot} -%{__make} install DESTDIR=%{buildroot} +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} # install the gfapi Python library in /usr/lib/python*/site-packages pushd api/examples python setup.py install --skip-build --verbose --root %{buildroot} popd # Install include directory -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs -%{__install} -p -m 0644 libglusterfs/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs +install -p -m 0644 libglusterfs/src/*.h \ %{buildroot}%{_includedir}/glusterfs/ -%{__install} -p -m 0644 contrib/uuid/*.h \ +install -p -m 0644 contrib/uuid/*.h \ %{buildroot}%{_includedir}/glusterfs/ # Following needed by hekafs multi-tenant translator -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/rpc -%{__install} -p -m 0644 rpc/rpc-lib/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs/rpc +install -p -m 0644 rpc/rpc-lib/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__install} -p -m 0644 rpc/xdr/src/*.h \ +install -p -m 0644 rpc/xdr/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server -%{__install} -p -m 0644 xlators/protocol/server/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs/server +install -p -m 0644 xlators/protocol/server/src/*.h \ %{buildroot}%{_includedir}/glusterfs/server/ %if ( 0%{_for_fedora_koji_builds} ) -%{__install} -D -p -m 0644 %{SOURCE1} \ +install -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd -%{__install} -D -p -m 0644 %{SOURCE2} \ +install -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterd-sysconfig \ +install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{__install} -D -p -m 0755 %{SOURCE6} \ +install -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif %endif -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd -%{__mkdir_p} %{buildroot}%{_localstatedir}/run/gluster +mkdir -p %{buildroot}%{_localstatedir}/log/glusterd +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd +mkdir -p %{buildroot}%{_localstatedir}/run/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, they're included by %%doc -%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ +# Remove installed docs, the ones we want are included by %%doc, in +# /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending +# on the distribution +%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +rm -rf %{buildroot}%{_pkgdocdir}/* +%else +rm -rf %{buildroot}%{_defaultdocdir}/%{name} +mkdir -p %{buildroot}%{_pkgdocdir} +%endif head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog @@ -455,12 +516,20 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -%{__rm} -rf %{buildroot}/benchmarking -%{__rm} -f %{buildroot}/glusterfs-mode.el -%{__rm} -f %{buildroot}/glusterfs.vim +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +rm -rf %{buildroot}/benchmarking +rm -f %{buildroot}/glusterfs-mode.el +rm -f %{buildroot}/glusterfs.vim +%else +# make install always puts these in %%{_defaultdocdir}/%%{name} so don't +# use %%{_pkgdocdir}; that will be wrong on later Fedora distributions +rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking +rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el +rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim +%endif # Create working directory -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd # Update configuration file to /var/lib working directory sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ @@ -473,74 +542,116 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry -%{__install} -D -p -m 0644 %{SOURCE3} \ +install -D -p -m 0644 %{SOURCE3} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse # Server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE4} \ +install -D -p -m 0644 %{SOURCE4} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterd # Legacy server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE5} \ +install -D -p -m 0644 %{SOURCE5} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterfs-logrotate \ +install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs %endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication -touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication +touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +install -D -p -m 0644 extras/glusterfs-georep-logrotate \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep +%endif + +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +install -D -p -m 0644 extras/logger.conf.example \ + %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example +%endif %endif # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/groups -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs/run +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/groups +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid +install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ + %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post + +find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs + %clean -%{__rm} -rf %{buildroot} +rm -rf %{buildroot} %post -/sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %postun -/sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %files -%defattr(-,root,root,-) -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS +%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif +%endif %{_libdir}/glusterfs %{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* @@ -564,11 +675,9 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* -%post libs -/sbin/ldconfig +%post libs -p /sbin/ldconfig -%postun libs -/sbin/ldconfig +%postun libs -p /sbin/ldconfig %files libs %{_libdir}/*.so.* @@ -580,7 +689,6 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid %if ( 0%{!?_without_rdma:1} ) %files rdma -%defattr(-,root,root,-) %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif @@ -592,15 +700,27 @@ if [ $1 -ge 1 ]; then fi %files geo-replication -%defattr(-,root,root) +%{_sysconfdir}/logrotate.d/glusterfs-georep %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* +%{_libexecdir}/glusterfs/gverify.sh +%{_libexecdir}/glusterfs/peer_add_secret_pub +%{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +%dir %{_sharedstatedir}/glusterd/hooks +%dir %{_sharedstatedir}/glusterd/hooks/1 +%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create +%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh +%{_datadir}/glusterfs/scripts/get-gfid.sh +%{_datadir}/glusterfs/scripts/slave-upgrade.sh +%{_datadir}/glusterfs/scripts/gsync-upgrade.sh +%{_datadir}/glusterfs/scripts/generate-gfid-file.sh +%{_datadir}/glusterfs/scripts/gsync-sync-gfid +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf %endif %files fuse -%defattr(-,root,root,-) %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse %endif @@ -616,13 +736,14 @@ fi %endif %files server -%defattr(-,root,root,-) %doc extras/clear_xattrs.sh %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs +# %%dir %{_sharedstatedir}/glusterd/groups +# %%config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd @@ -640,11 +761,12 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +# hack to work around old rpm/rpmbuild %%doc misfeature %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options -# This is really ugly, but I have no idea how to mark these directories in an -# other way. They should belong to the glusterfs-server package, but don't -# exist after installation. They are generated on the first start... +# This is really ugly, but I have no idea how to mark these directories in +# any other way. They should belong to the glusterfs-server package, but +# don't exist after installation. They are generated on the first start... %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop @@ -677,11 +799,9 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%post api -/sbin/ldconfig +%post api -p /sbin/ldconfig -%postun api -/sbin/ldconfig +%postun api -p /sbin/ldconfig %files api %exclude %{_libdir}/*.so @@ -691,13 +811,11 @@ fi %if ( 0%{!?_without_ocf:1} ) %files resource-agents -%defattr(-,root,root) # /usr/lib is the standard for OCF, also on x86_64 %{_prefix}/lib/ocf/resource.d/glusterfs %endif %files devel -%defattr(-,root,root,-) %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h %exclude %{_includedir}/glusterfs/api @@ -706,28 +824,41 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/pkgconfig/libgfchangelog.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* +%files regression-tests +%defattr(-,root,root,-) +%{_prefix}/share/glusterfs/* +%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t + %post server # Legacy server %_init_enable glusterd %_init_enable glusterfsd +# hack to work around old rpm/rpmbuild %%doc misfeature +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +if [ -d %{_pkgdocdir}.tmp ]; then + cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ + rm -rf %{_pkgdocdir}.tmp/* +%endif + # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib # in gluster.org RPMs.) Be careful to copy them on the off chance that # /etc and /var/lib are on separate file systems if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then - %{__mkdir_p} %{_sharedstatedir}/glusterd + mkdir -p %{_sharedstatedir}/glusterd cp -a /etc/glusterd %{_sharedstatedir}/glusterd rm -rf /etc/glusterd ln -sf %{_sharedstatedir}/glusterd /etc/glusterd fi # Rename old volfiles in an RPM-standard way. These aren't actually -# considered package config files, so %config doesn't work for them. +# considered package config files, so %%config doesn't work for them. if [ -d %{_sharedstatedir}/glusterd/vols ]; then for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do newfile=${file}.rpmsave @@ -772,29 +903,36 @@ if [ $1 -ge 1 ]; then fi %changelog -* Thu Feb 13 2014 Kaleb S. KEITHLEY - 3.4.3-0.1.alpha1 -- GlusterFS 3.4.3 alpha1 +* Sat Mar 8 2014 Kaleb S. KEITHLEY - 3.5.0-0.6.beta4 +- GlusterFS 3.5.0 beta4 -* Fri Jan 3 2014 Kaleb S. KEITHLEY - 3.4.2-1 -- GlusterFS 3.4.2 GA +* Tue Feb 11 2014 Kaleb S. KEITHLEY - 3.5.0-0.5.beta3 +- GlusterFS 3.5.0 beta3 -* Wed Dec 25 2013 Niels de Vos - 3.4.2-0.1qa5 -- GlusterFS 3.4.2 QA5, glusterfs-3.4.2-0.1qa5 -- Correct source URL to automatic release location +* Mon Jan 27 2014 Kaleb S. KEITHLEY - 3.5.0-0.4.beta2 +- GlusterFS 3.5.0 beta2 -* Fri Dec 20 2013 Niels de Vos -- Include .../site-packages/gluster/gfapi.py in glusterfs-api +* Thu Jan 16 2014 Kaleb S. KEITHLEY - 3.5.0-0.3.beta1 +- GlusterFS 3.5.0 beta1 -* Thu Dec 19 2013 Niels de Vos -- Include the .../site-packages/gluster/__init__.py file by default, - skip EL-5 and earlier (#1045123) +* Thu Jan 16 2014 Ville Skyttä - 3.5.0-0.2.beta1 +- Drop unnecessary ldconfig calls, do remaining ones without shell. +- Drop INSTALL from docs. -* Tue Dec 17 2013 Kaleb S. KEITHLEY - 3.4.2-0.1qa4 -- GlusterFS 3.4.2 QA4 , glusterfs-3.4.2-0.1qa4 +* Wed Jan 15 2014 Kaleb S. KEITHLEY - 3.5.0-0.1.beta1 +- GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 -* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1qa3 +* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1.qa3 - GlusterFS 3.5.0 QA3 , glusterfs-3.5.0-0.1qa3 +* Wed Nov 6 2013 Kaleb S. KEITHLEY +- obsolete glusterfs-ufo (#1025059) +- ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) +- clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not + in /usr/share/doc/glusterfs-server(-x.y.z) +- remove defattr (per pkg review of another package) +- don't use %%{__foo} macros (per package review of another package) + * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) - fix "warning: File listed twice: .../glusterd.info" while building diff --git a/sources b/sources index 9122860..d410425 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -073f9c4a76a17dde3f3f7cfd7c9eefeb glusterfs-3.4.3alpha1.tar.gz +dcfb47474b540d2f8af78223decef648 glusterfs-3.5.0beta4.tar.gz From 726e6ff9bb279499bf1f1c31934a16ac42a4758c Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 13 Mar 2014 12:08:53 -0400 Subject: [PATCH 026/328] GlusterFS 3.4.3 beta1 --- glusterfs.spec | 389 ++++++++++++++++--------------------------------- sources | 2 +- 2 files changed, 128 insertions(+), 263 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4da1765..a8850de 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,9 +1,10 @@ + %global _hardened_build 1 %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta4 +%global prereltag beta1 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -30,15 +31,6 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} -# if you wish to build rpms without syslog logging, compile like this -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog -%{?_without_syslog:%global _without_syslog --disable-syslog} - -# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) -%global _without_syslog --disable-syslog -%endif - # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -50,15 +42,6 @@ %define _without_bd --disable-bd-xlator %endif -# if you wish to compile an rpm without the qemu-block support... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block -%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -# xlators/features/qemu-block fails to build on RHEL5, disable it -%define _without_qemu_block --disable-qemu-block -%endif - %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif @@ -72,8 +55,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.5.0 -Release: 0.6%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.4.3 +Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -85,7 +68,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -94,15 +77,15 @@ Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source11: glusterfsd.service Source13: glusterfsd.init +Patch0: %{name}-3.2.5.configure.ac.patch +Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch +Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -BuildRequires: python-simplejson -%endif %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE11}} @@ -115,7 +98,7 @@ Requires(postun): systemd-units %define _init_disable() /bin/systemctl disable %1.service ; %define _init_restart() /bin/systemctl try-restart %1.service ; %define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%define _init_install() %{__install} -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works %define _init_glusterd %{_unitdir}/glusterd.service %define _init_glusterfsd %{_unitdir}/glusterfsd.service @@ -131,7 +114,7 @@ Requires(postun): /sbin/service %define _init_disable() /sbin/chkconfig --del %1 ; %define _init_restart() /sbin/service %1 condrestart &>/dev/null ; %define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%define _init_install() %{__install} -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works %define _init_glusterd %{_sysconfdir}/init.d/glusterd %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd @@ -151,19 +134,14 @@ BuildRequires: systemtap-sdt-devel %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif -%if ( 0%{!?_without_qemu_block:1} ) -BuildRequires: glib2-devel -%endif -%if ( 0%{!?_without_georeplication:1} ) -BuildRequires: libattr-devel -%endif -Obsoletes: hekafs +Obsoletes: hekafs <= 0.7 +Obsoletes: %{name}-libs <= 2.0.0 Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} +Provides: %{name}-libs = %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} -Obsoletes: %{name}-ufo # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: @@ -172,7 +150,7 @@ Obsoletes: %{name}-ufo %if ( 0%{?rhel} == 6 ) # filter_setup exists in RHEL6 only %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' + %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' %filter_setup %else # modern rpm and current Fedora do not generate requires when the @@ -180,13 +158,6 @@ Obsoletes: %{name}-ufo %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) - # _sharedstatedir is not provided by RHEL5 - %define _sharedstatedir /var/lib -%endif - %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -203,14 +174,6 @@ both GlusterFS server and client framework. %package libs Summary: GlusterFS common libraries Group: Applications/File -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -Requires: rsyslog-mmjsonparse -%endif -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -Requires: rsyslog-mmcount -%endif -%endif %description libs GlusterFS is a clustered file-system capable of scaling to several @@ -265,7 +228,6 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} -Requires: python python-ctypes %description geo-replication GlusterFS is a clustered file-system capable of scaling to several @@ -328,7 +290,6 @@ This package provides the glusterfs server daemon. Summary: Clustered file-system api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} -Requires: %{name}-devel = %{version}-%{release} # we provide the Python package/namespace 'gluster' Provides: python-gluster = %{version}-%{release} @@ -409,105 +370,83 @@ is in user space and easily manageable. This package provides the api include files. -%package regression-tests -Summary: Development Tools -Group: Development/Tools -Requires: %{name} = %{version}-%{release} -Requires: %{name}-fuse = %{version}-%{release} -Requires: %{name}-server = %{version}-%{release} -Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 -Requires: python attr dbench git nfs-utils xfsprogs - -%description regression-tests -The Gluster Test Framework, is a suite of scripts used for -regression testing of Gluster. - %prep %setup -q -n %{name}-%{version}%{?prereltag} +%if ( 0%{_for_fedora_koji_builds} ) +#%patch0 -p0 +%patch1 -p0 -F4 +%if ( "%{version}" == "3.3.1" ) +%patch2 -p1 +%endif +%endif %build ./autogen.sh -%configure \ - %{?_without_rdma} \ - %{?_without_epoll} \ - %{?_without_fusermount} \ - %{?_without_georeplication} \ - %{?_without_ocf} \ - %{?_without_syslog} \ - %{?_without_bd} \ - %{?_without_qemu_block} \ - %{?_without_systemtap} +%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} %{?_without_bd} %{?_without_systemtap} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool +%{__sed} -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif -sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool -sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool +%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool +%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -make %{?_smp_mflags} +%{__make} %{?_smp_mflags} pushd api/examples FLAGS="$RPM_OPT_FLAGS" python setup.py build popd %install -rm -rf %{buildroot} -make install DESTDIR=%{buildroot} +%{__rm} -rf %{buildroot} +%{__make} install DESTDIR=%{buildroot} # install the gfapi Python library in /usr/lib/python*/site-packages pushd api/examples python setup.py install --skip-build --verbose --root %{buildroot} popd # Install include directory -mkdir -p %{buildroot}%{_includedir}/glusterfs -install -p -m 0644 libglusterfs/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs +%{__install} -p -m 0644 libglusterfs/src/*.h \ %{buildroot}%{_includedir}/glusterfs/ -install -p -m 0644 contrib/uuid/*.h \ +%{__install} -p -m 0644 contrib/uuid/*.h \ %{buildroot}%{_includedir}/glusterfs/ # Following needed by hekafs multi-tenant translator -mkdir -p %{buildroot}%{_includedir}/glusterfs/rpc -install -p -m 0644 rpc/rpc-lib/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/rpc +%{__install} -p -m 0644 rpc/rpc-lib/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -install -p -m 0644 rpc/xdr/src/*.h \ +%{__install} -p -m 0644 rpc/xdr/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -mkdir -p %{buildroot}%{_includedir}/glusterfs/server -install -p -m 0644 xlators/protocol/server/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server +%{__install} -p -m 0644 xlators/protocol/server/src/*.h \ %{buildroot}%{_includedir}/glusterfs/server/ %if ( 0%{_for_fedora_koji_builds} ) -install -D -p -m 0644 %{SOURCE1} \ +%{__install} -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd -install -D -p -m 0644 %{SOURCE2} \ +%{__install} -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %else -install -D -p -m 0644 extras/glusterd-sysconfig \ +%{__install} -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -install -D -p -m 0755 %{SOURCE6} \ +%{__install} -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif %endif -mkdir -p %{buildroot}%{_localstatedir}/log/glusterd -mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs -mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd -mkdir -p %{buildroot}%{_localstatedir}/run/gluster +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd +%{__mkdir_p} %{buildroot}%{_localstatedir}/run/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, the ones we want are included by %%doc, in -# /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending -# on the distribution -%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -rm -rf %{buildroot}%{_pkgdocdir}/* -%else -rm -rf %{buildroot}%{_defaultdocdir}/%{name} -mkdir -p %{buildroot}%{_pkgdocdir} -%endif +# Remove installed docs, they're included by %%doc +%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog @@ -516,20 +455,12 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -rm -rf %{buildroot}/benchmarking -rm -f %{buildroot}/glusterfs-mode.el -rm -f %{buildroot}/glusterfs.vim -%else -# make install always puts these in %%{_defaultdocdir}/%%{name} so don't -# use %%{_pkgdocdir}; that will be wrong on later Fedora distributions -rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking -rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el -rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim -%endif +%{__rm} -rf %{buildroot}/benchmarking +%{__rm} -f %{buildroot}/glusterfs-mode.el +%{__rm} -f %{buildroot}/glusterfs.vim # Create working directory -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd # Update configuration file to /var/lib working directory sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ @@ -542,116 +473,74 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry -install -D -p -m 0644 %{SOURCE3} \ +%{__install} -D -p -m 0644 %{SOURCE3} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse # Server logrotate entry -install -D -p -m 0644 %{SOURCE4} \ +%{__install} -D -p -m 0644 %{SOURCE4} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterd # Legacy server logrotate entry -install -D -p -m 0644 %{SOURCE5} \ +%{__install} -D -p -m 0644 %{SOURCE5} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd %else -install -D -p -m 0644 extras/glusterfs-logrotate \ +%{__install} -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs %endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication -touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf -install -D -p -m 0644 extras/glusterfs-georep-logrotate \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep -%endif - -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -install -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ - %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif - -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -install -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ - %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif - -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -install -D -p -m 0644 extras/logger.conf.example \ - %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example -%endif +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication +touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf %endif # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/groups -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/groups +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid -install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post - -find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs - %clean -rm -rf %{buildroot} +%{__rm} -rf %{buildroot} %post -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog -%endif -%endif +/sbin/ldconfig %postun -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog -%endif -%endif +/sbin/ldconfig %files -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 README THANKS +%defattr(-,root,root,-) +%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif -%endif %{_libdir}/glusterfs %{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* @@ -675,9 +564,11 @@ rm -rf %{buildroot} %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* -%post libs -p /sbin/ldconfig +%post libs +/sbin/ldconfig -%postun libs -p /sbin/ldconfig +%postun libs +/sbin/ldconfig %files libs %{_libdir}/*.so.* @@ -689,6 +580,7 @@ rm -rf %{buildroot} %if ( 0%{!?_without_rdma:1} ) %files rdma +%defattr(-,root,root,-) %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif @@ -700,27 +592,15 @@ if [ $1 -ge 1 ]; then fi %files geo-replication -%{_sysconfdir}/logrotate.d/glusterfs-georep +%defattr(-,root,root) %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* -%{_libexecdir}/glusterfs/gverify.sh -%{_libexecdir}/glusterfs/peer_add_secret_pub -%{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%dir %{_sharedstatedir}/glusterd/hooks -%dir %{_sharedstatedir}/glusterd/hooks/1 -%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create -%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh -%{_datadir}/glusterfs/scripts/get-gfid.sh -%{_datadir}/glusterfs/scripts/slave-upgrade.sh -%{_datadir}/glusterfs/scripts/gsync-upgrade.sh -%{_datadir}/glusterfs/scripts/generate-gfid-file.sh -%{_datadir}/glusterfs/scripts/gsync-sync-gfid -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf %endif %files fuse +%defattr(-,root,root,-) %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse %endif @@ -736,14 +616,13 @@ fi %endif %files server +%defattr(-,root,root,-) %doc extras/clear_xattrs.sh %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs -# %%dir %{_sharedstatedir}/glusterd/groups -# %%config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd @@ -761,12 +640,11 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -# hack to work around old rpm/rpmbuild %%doc misfeature %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options -# This is really ugly, but I have no idea how to mark these directories in -# any other way. They should belong to the glusterfs-server package, but -# don't exist after installation. They are generated on the first start... +# This is really ugly, but I have no idea how to mark these directories in an +# other way. They should belong to the glusterfs-server package, but don't +# exist after installation. They are generated on the first start... %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop @@ -799,9 +677,11 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%post api -p /sbin/ldconfig +%post api +/sbin/ldconfig -%postun api -p /sbin/ldconfig +%postun api +/sbin/ldconfig %files api %exclude %{_libdir}/*.so @@ -811,11 +691,13 @@ fi %if ( 0%{!?_without_ocf:1} ) %files resource-agents +%defattr(-,root,root) # /usr/lib is the standard for OCF, also on x86_64 %{_prefix}/lib/ocf/resource.d/glusterfs %endif %files devel +%defattr(-,root,root,-) %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h %exclude %{_includedir}/glusterfs/api @@ -824,41 +706,28 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc -%{_libdir}/pkgconfig/libgfchangelog.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* -%files regression-tests -%defattr(-,root,root,-) -%{_prefix}/share/glusterfs/* -%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t - %post server # Legacy server %_init_enable glusterd %_init_enable glusterfsd -# hack to work around old rpm/rpmbuild %%doc misfeature -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -if [ -d %{_pkgdocdir}.tmp ]; then - cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ - rm -rf %{_pkgdocdir}.tmp/* -%endif - # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib # in gluster.org RPMs.) Be careful to copy them on the off chance that # /etc and /var/lib are on separate file systems if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then - mkdir -p %{_sharedstatedir}/glusterd + %{__mkdir_p} %{_sharedstatedir}/glusterd cp -a /etc/glusterd %{_sharedstatedir}/glusterd rm -rf /etc/glusterd ln -sf %{_sharedstatedir}/glusterd /etc/glusterd fi # Rename old volfiles in an RPM-standard way. These aren't actually -# considered package config files, so %%config doesn't work for them. +# considered package config files, so %config doesn't work for them. if [ -d %{_sharedstatedir}/glusterd/vols ]; then for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do newfile=${file}.rpmsave @@ -903,36 +772,32 @@ if [ $1 -ge 1 ]; then fi %changelog -* Sat Mar 8 2014 Kaleb S. KEITHLEY - 3.5.0-0.6.beta4 -- GlusterFS 3.5.0 beta4 +* Thu Mar 13 2014 Kaleb S. KEITHLEY - 3.4.3-0.2.beta1 +- GlusterFS 3.4.3 beta1 -* Tue Feb 11 2014 Kaleb S. KEITHLEY - 3.5.0-0.5.beta3 -- GlusterFS 3.5.0 beta3 +* Thu Feb 13 2014 Kaleb S. KEITHLEY - 3.4.3-0.1.alpha1 +- GlusterFS 3.4.3 alpha1 -* Mon Jan 27 2014 Kaleb S. KEITHLEY - 3.5.0-0.4.beta2 -- GlusterFS 3.5.0 beta2 +* Fri Jan 3 2014 Kaleb S. KEITHLEY - 3.4.2-1 +- GlusterFS 3.4.2 GA -* Thu Jan 16 2014 Kaleb S. KEITHLEY - 3.5.0-0.3.beta1 -- GlusterFS 3.5.0 beta1 +* Wed Dec 25 2013 Niels de Vos - 3.4.2-0.1qa5 +- GlusterFS 3.4.2 QA5, glusterfs-3.4.2-0.1qa5 +- Correct source URL to automatic release location -* Thu Jan 16 2014 Ville Skyttä - 3.5.0-0.2.beta1 -- Drop unnecessary ldconfig calls, do remaining ones without shell. -- Drop INSTALL from docs. +* Fri Dec 20 2013 Niels de Vos +- Include .../site-packages/gluster/gfapi.py in glusterfs-api -* Wed Jan 15 2014 Kaleb S. KEITHLEY - 3.5.0-0.1.beta1 -- GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 +* Thu Dec 19 2013 Niels de Vos +- Include the .../site-packages/gluster/__init__.py file by default, + skip EL-5 and earlier (#1045123) -* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1.qa3 +* Tue Dec 17 2013 Kaleb S. KEITHLEY - 3.4.2-0.1qa4 +- GlusterFS 3.4.2 QA4 , glusterfs-3.4.2-0.1qa4 + +* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1qa3 - GlusterFS 3.5.0 QA3 , glusterfs-3.5.0-0.1qa3 -* Wed Nov 6 2013 Kaleb S. KEITHLEY -- obsolete glusterfs-ufo (#1025059) -- ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) -- clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not - in /usr/share/doc/glusterfs-server(-x.y.z) -- remove defattr (per pkg review of another package) -- don't use %%{__foo} macros (per package review of another package) - * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) - fix "warning: File listed twice: .../glusterd.info" while building diff --git a/sources b/sources index d410425..1360ccb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -dcfb47474b540d2f8af78223decef648 glusterfs-3.5.0beta4.tar.gz +5aad4a8f3b7d2d3f143d6faf59c9a4d7 glusterfs-3.4.3beta1.tar.gz From 15cab6a44af9d5049a3a4f594b7830611a6d10da Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 26 Mar 2014 14:57:14 -0400 Subject: [PATCH 027/328] 3.4.3-0.3beta2 --- glusterfs.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index a8850de..eeea970 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,7 +4,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta1 +%global prereltag beta2 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -56,7 +56,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.4.3 -Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -269,6 +269,7 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} +Requires: e2fsprogs xfsprogs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) Requires: rpcbind %else @@ -772,6 +773,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Wed Mar 26 2014 Kaleb S. KEITHLEY - 3.4.3-0.3.beta2 +- GlusterFS 3.4.3 beta2 + * Thu Mar 13 2014 Kaleb S. KEITHLEY - 3.4.3-0.2.beta1 - GlusterFS 3.4.3 beta1 diff --git a/sources b/sources index 1360ccb..fbb9094 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5aad4a8f3b7d2d3f143d6faf59c9a4d7 glusterfs-3.4.3beta1.tar.gz +59e3be3a5a0e33f8ae586dcdfa1faf20 glusterfs-3.4.3beta2.tar.gz From d0f531c17cac63e7b1c1c51dd242e4763dff1add Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 2 Apr 2014 15:17:46 -0400 Subject: [PATCH 028/328] GlusterFS 3.4.3 GA --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index eeea970..8c3efb4 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,7 +4,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta2 +# %%global prereltag beta2 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -56,7 +56,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.4.3 -Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -773,6 +773,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Wed Apr 2 2014 Kaleb S. KEITHLEY - 3.4.3-1 +- GlusterFS 3.4.3 GA + * Wed Mar 26 2014 Kaleb S. KEITHLEY - 3.4.3-0.3.beta2 - GlusterFS 3.4.3 beta2 diff --git a/sources b/sources index fbb9094..f0ec160 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -59e3be3a5a0e33f8ae586dcdfa1faf20 glusterfs-3.4.3beta2.tar.gz +52cf3b00d874818e653f075e7dfb82d7 glusterfs-3.4.3.tar.gz From e0f9420dbe6b69f95cdebdf873488d49a9898a08 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 3 Apr 2014 11:48:56 -0400 Subject: [PATCH 029/328] GlusterFS 3.4.3-2 --- glusterfs.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8c3efb4..dd7292e 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -56,7 +56,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.4.3 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -136,10 +136,8 @@ BuildRequires: lvm2-devel %endif Obsoletes: hekafs <= 0.7 -Obsoletes: %{name}-libs <= 2.0.0 Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} -Provides: %{name}-libs = %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -773,6 +771,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Thu Apr 3 2014 Kaleb S. KEITHLEY - 3.4.3-2 +- GlusterFS 3.4.3-2 + * Wed Apr 2 2014 Kaleb S. KEITHLEY - 3.4.3-1 - GlusterFS 3.4.3 GA From 40fe609cdf8eb2400fb43d8c589d05a3f511cbc6 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 4 Apr 2014 14:10:21 -0400 Subject: [PATCH 030/328] GlusterFS 3.5.0 beta5 --- glusterfs.spec | 398 ++++++++++++++++++++++++++++++++----------------- sources | 2 +- 2 files changed, 265 insertions(+), 135 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index dd7292e..abc453f 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,10 +1,9 @@ - %global _hardened_build 1 %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag beta2 +%global prereltag beta5 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -31,6 +30,15 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} +# if you wish to build rpms without syslog logging, compile like this +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog +%{?_without_syslog:%global _without_syslog --disable-syslog} + +# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount +%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%global _without_syslog --disable-syslog +%endif + # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -42,6 +50,15 @@ %define _without_bd --disable-bd-xlator %endif +# if you wish to compile an rpm without the qemu-block support... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block +%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +# xlators/features/qemu-block fails to build on RHEL5, disable it +%define _without_qemu_block --disable-qemu-block +%endif + %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif @@ -55,8 +72,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.4.3 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.5.0 +Release: 0.7%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -68,7 +85,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -77,15 +94,15 @@ Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source11: glusterfsd.service Source13: glusterfsd.init -Patch0: %{name}-3.2.5.configure.ac.patch -Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch -Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +BuildRequires: python-simplejson +%endif %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE11}} @@ -98,7 +115,7 @@ Requires(postun): systemd-units %define _init_disable() /bin/systemctl disable %1.service ; %define _init_restart() /bin/systemctl try-restart %1.service ; %define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() %{__install} -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works %define _init_glusterd %{_unitdir}/glusterd.service %define _init_glusterfsd %{_unitdir}/glusterfsd.service @@ -114,7 +131,7 @@ Requires(postun): /sbin/service %define _init_disable() /sbin/chkconfig --del %1 ; %define _init_restart() /sbin/service %1 condrestart &>/dev/null ; %define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() %{__install} -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works %define _init_glusterd %{_sysconfdir}/init.d/glusterd %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd @@ -134,12 +151,19 @@ BuildRequires: systemtap-sdt-devel %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif +%if ( 0%{!?_without_qemu_block:1} ) +BuildRequires: glib2-devel +%endif +%if ( 0%{!?_without_georeplication:1} ) +BuildRequires: libattr-devel +%endif -Obsoletes: hekafs <= 0.7 +Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} +Obsoletes: %{name}-ufo # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: @@ -148,7 +172,7 @@ Provides: %{name}-core = %{version}-%{release} %if ( 0%{?rhel} == 6 ) # filter_setup exists in RHEL6 only %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' + %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' %filter_setup %else # modern rpm and current Fedora do not generate requires when the @@ -156,6 +180,13 @@ Provides: %{name}-core = %{version}-%{release} %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) + # _sharedstatedir is not provided by RHEL5 + %define _sharedstatedir /var/lib +%endif + %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -172,6 +203,14 @@ both GlusterFS server and client framework. %package libs Summary: GlusterFS common libraries Group: Applications/File +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +Requires: rsyslog-mmjsonparse +%endif +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +Requires: rsyslog-mmcount +%endif +%endif %description libs GlusterFS is a clustered file-system capable of scaling to several @@ -226,6 +265,7 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} +Requires: python python-ctypes %description geo-replication GlusterFS is a clustered file-system capable of scaling to several @@ -267,7 +307,6 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} -Requires: e2fsprogs xfsprogs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) Requires: rpcbind %else @@ -289,6 +328,7 @@ This package provides the glusterfs server daemon. Summary: Clustered file-system api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} # we provide the Python package/namespace 'gluster' Provides: python-gluster = %{version}-%{release} @@ -369,83 +409,105 @@ is in user space and easily manageable. This package provides the api include files. +%package regression-tests +Summary: Development Tools +Group: Development/Tools +Requires: %{name} = %{version}-%{release} +Requires: %{name}-fuse = %{version}-%{release} +Requires: %{name}-server = %{version}-%{release} +Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 +Requires: python attr dbench git nfs-utils xfsprogs + +%description regression-tests +The Gluster Test Framework, is a suite of scripts used for +regression testing of Gluster. + %prep %setup -q -n %{name}-%{version}%{?prereltag} -%if ( 0%{_for_fedora_koji_builds} ) -#%patch0 -p0 -%patch1 -p0 -F4 -%if ( "%{version}" == "3.3.1" ) -%patch2 -p1 -%endif -%endif %build ./autogen.sh -%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} %{?_without_bd} %{?_without_systemtap} +%configure \ + %{?_without_rdma} \ + %{?_without_epoll} \ + %{?_without_fusermount} \ + %{?_without_georeplication} \ + %{?_without_ocf} \ + %{?_without_syslog} \ + %{?_without_bd} \ + %{?_without_qemu_block} \ + %{?_without_systemtap} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -%{__sed} -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool +sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif -%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool -%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -%{__make} %{?_smp_mflags} +make %{?_smp_mflags} pushd api/examples FLAGS="$RPM_OPT_FLAGS" python setup.py build popd %install -%{__rm} -rf %{buildroot} -%{__make} install DESTDIR=%{buildroot} +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} # install the gfapi Python library in /usr/lib/python*/site-packages pushd api/examples python setup.py install --skip-build --verbose --root %{buildroot} popd # Install include directory -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs -%{__install} -p -m 0644 libglusterfs/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs +install -p -m 0644 libglusterfs/src/*.h \ %{buildroot}%{_includedir}/glusterfs/ -%{__install} -p -m 0644 contrib/uuid/*.h \ +install -p -m 0644 contrib/uuid/*.h \ %{buildroot}%{_includedir}/glusterfs/ # Following needed by hekafs multi-tenant translator -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/rpc -%{__install} -p -m 0644 rpc/rpc-lib/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs/rpc +install -p -m 0644 rpc/rpc-lib/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__install} -p -m 0644 rpc/xdr/src/*.h \ +install -p -m 0644 rpc/xdr/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server -%{__install} -p -m 0644 xlators/protocol/server/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs/server +install -p -m 0644 xlators/protocol/server/src/*.h \ %{buildroot}%{_includedir}/glusterfs/server/ %if ( 0%{_for_fedora_koji_builds} ) -%{__install} -D -p -m 0644 %{SOURCE1} \ +install -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd -%{__install} -D -p -m 0644 %{SOURCE2} \ +install -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterd-sysconfig \ +install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{__install} -D -p -m 0755 %{SOURCE6} \ +install -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif %endif -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd -%{__mkdir_p} %{buildroot}%{_localstatedir}/run/gluster +mkdir -p %{buildroot}%{_localstatedir}/log/glusterd +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd +mkdir -p %{buildroot}%{_localstatedir}/run/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, they're included by %%doc -%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ +# Remove installed docs, the ones we want are included by %%doc, in +# /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending +# on the distribution +%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +rm -rf %{buildroot}%{_pkgdocdir}/* +%else +rm -rf %{buildroot}%{_defaultdocdir}/%{name} +mkdir -p %{buildroot}%{_pkgdocdir} +%endif head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog @@ -454,12 +516,20 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -%{__rm} -rf %{buildroot}/benchmarking -%{__rm} -f %{buildroot}/glusterfs-mode.el -%{__rm} -f %{buildroot}/glusterfs.vim +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +rm -rf %{buildroot}/benchmarking +rm -f %{buildroot}/glusterfs-mode.el +rm -f %{buildroot}/glusterfs.vim +%else +# make install always puts these in %%{_defaultdocdir}/%%{name} so don't +# use %%{_pkgdocdir}; that will be wrong on later Fedora distributions +rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking +rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el +rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim +%endif # Create working directory -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd # Update configuration file to /var/lib working directory sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ @@ -472,74 +542,116 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry -%{__install} -D -p -m 0644 %{SOURCE3} \ +install -D -p -m 0644 %{SOURCE3} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse # Server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE4} \ +install -D -p -m 0644 %{SOURCE4} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterd # Legacy server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE5} \ +install -D -p -m 0644 %{SOURCE5} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterfs-logrotate \ +install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs %endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication -touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication +touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +install -D -p -m 0644 extras/glusterfs-georep-logrotate \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep +%endif + +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +install -D -p -m 0644 extras/logger.conf.example \ + %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example +%endif %endif # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/groups -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs/run +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/groups +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid +install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ + %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post + +find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs + %clean -%{__rm} -rf %{buildroot} +rm -rf %{buildroot} %post -/sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %postun -/sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %files -%defattr(-,root,root,-) -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS +%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif +%endif %{_libdir}/glusterfs %{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* @@ -563,11 +675,9 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* -%post libs -/sbin/ldconfig +%post libs -p /sbin/ldconfig -%postun libs -/sbin/ldconfig +%postun libs -p /sbin/ldconfig %files libs %{_libdir}/*.so.* @@ -579,7 +689,6 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid %if ( 0%{!?_without_rdma:1} ) %files rdma -%defattr(-,root,root,-) %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif @@ -591,15 +700,27 @@ if [ $1 -ge 1 ]; then fi %files geo-replication -%defattr(-,root,root) +%{_sysconfdir}/logrotate.d/glusterfs-georep %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* +%{_libexecdir}/glusterfs/gverify.sh +%{_libexecdir}/glusterfs/peer_add_secret_pub +%{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +%dir %{_sharedstatedir}/glusterd/hooks +%dir %{_sharedstatedir}/glusterd/hooks/1 +%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create +%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh +%{_datadir}/glusterfs/scripts/get-gfid.sh +%{_datadir}/glusterfs/scripts/slave-upgrade.sh +%{_datadir}/glusterfs/scripts/gsync-upgrade.sh +%{_datadir}/glusterfs/scripts/generate-gfid-file.sh +%{_datadir}/glusterfs/scripts/gsync-sync-gfid +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf %endif %files fuse -%defattr(-,root,root,-) %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse %endif @@ -615,13 +736,14 @@ fi %endif %files server -%defattr(-,root,root,-) %doc extras/clear_xattrs.sh %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs +# %%dir %{_sharedstatedir}/glusterd/groups +# %%config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd @@ -639,11 +761,12 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +# hack to work around old rpm/rpmbuild %%doc misfeature %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options -# This is really ugly, but I have no idea how to mark these directories in an -# other way. They should belong to the glusterfs-server package, but don't -# exist after installation. They are generated on the first start... +# This is really ugly, but I have no idea how to mark these directories in +# any other way. They should belong to the glusterfs-server package, but +# don't exist after installation. They are generated on the first start... %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop @@ -676,11 +799,9 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%post api -/sbin/ldconfig +%post api -p /sbin/ldconfig -%postun api -/sbin/ldconfig +%postun api -p /sbin/ldconfig %files api %exclude %{_libdir}/*.so @@ -690,13 +811,11 @@ fi %if ( 0%{!?_without_ocf:1} ) %files resource-agents -%defattr(-,root,root) # /usr/lib is the standard for OCF, also on x86_64 %{_prefix}/lib/ocf/resource.d/glusterfs %endif %files devel -%defattr(-,root,root,-) %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h %exclude %{_includedir}/glusterfs/api @@ -705,28 +824,41 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/pkgconfig/libgfchangelog.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* +%files regression-tests +%defattr(-,root,root,-) +%{_prefix}/share/glusterfs/* +%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t + %post server # Legacy server %_init_enable glusterd %_init_enable glusterfsd +# hack to work around old rpm/rpmbuild %%doc misfeature +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +if [ -d %{_pkgdocdir}.tmp ]; then + cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ + rm -rf %{_pkgdocdir}.tmp/* +%endif + # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib # in gluster.org RPMs.) Be careful to copy them on the off chance that # /etc and /var/lib are on separate file systems if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then - %{__mkdir_p} %{_sharedstatedir}/glusterd + mkdir -p %{_sharedstatedir}/glusterd cp -a /etc/glusterd %{_sharedstatedir}/glusterd rm -rf /etc/glusterd ln -sf %{_sharedstatedir}/glusterd /etc/glusterd fi # Rename old volfiles in an RPM-standard way. These aren't actually -# considered package config files, so %config doesn't work for them. +# considered package config files, so %%config doesn't work for them. if [ -d %{_sharedstatedir}/glusterd/vols ]; then for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do newfile=${file}.rpmsave @@ -771,41 +903,39 @@ if [ $1 -ge 1 ]; then fi %changelog -* Thu Apr 3 2014 Kaleb S. KEITHLEY - 3.4.3-2 -- GlusterFS 3.4.3-2 +* Fri Apr 4 2014 Kaleb S. KEITHLEY - 3.5.0-0.7.beta5 +- GlusterFS 3.5.0 beta5 -* Wed Apr 2 2014 Kaleb S. KEITHLEY - 3.4.3-1 -- GlusterFS 3.4.3 GA +* Sat Mar 8 2014 Kaleb S. KEITHLEY - 3.5.0-0.6.beta4 +- GlusterFS 3.5.0 beta4 -* Wed Mar 26 2014 Kaleb S. KEITHLEY - 3.4.3-0.3.beta2 -- GlusterFS 3.4.3 beta2 +* Tue Feb 11 2014 Kaleb S. KEITHLEY - 3.5.0-0.5.beta3 +- GlusterFS 3.5.0 beta3 -* Thu Mar 13 2014 Kaleb S. KEITHLEY - 3.4.3-0.2.beta1 -- GlusterFS 3.4.3 beta1 +* Mon Jan 27 2014 Kaleb S. KEITHLEY - 3.5.0-0.4.beta2 +- GlusterFS 3.5.0 beta2 -* Thu Feb 13 2014 Kaleb S. KEITHLEY - 3.4.3-0.1.alpha1 -- GlusterFS 3.4.3 alpha1 +* Thu Jan 16 2014 Kaleb S. KEITHLEY - 3.5.0-0.3.beta1 +- GlusterFS 3.5.0 beta1 -* Fri Jan 3 2014 Kaleb S. KEITHLEY - 3.4.2-1 -- GlusterFS 3.4.2 GA +* Thu Jan 16 2014 Ville Skyttä - 3.5.0-0.2.beta1 +- Drop unnecessary ldconfig calls, do remaining ones without shell. +- Drop INSTALL from docs. -* Wed Dec 25 2013 Niels de Vos - 3.4.2-0.1qa5 -- GlusterFS 3.4.2 QA5, glusterfs-3.4.2-0.1qa5 -- Correct source URL to automatic release location +* Wed Jan 15 2014 Kaleb S. KEITHLEY - 3.5.0-0.1.beta1 +- GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 -* Fri Dec 20 2013 Niels de Vos -- Include .../site-packages/gluster/gfapi.py in glusterfs-api - -* Thu Dec 19 2013 Niels de Vos -- Include the .../site-packages/gluster/__init__.py file by default, - skip EL-5 and earlier (#1045123) - -* Tue Dec 17 2013 Kaleb S. KEITHLEY - 3.4.2-0.1qa4 -- GlusterFS 3.4.2 QA4 , glusterfs-3.4.2-0.1qa4 - -* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1qa3 +* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1.qa3 - GlusterFS 3.5.0 QA3 , glusterfs-3.5.0-0.1qa3 +* Wed Nov 6 2013 Kaleb S. KEITHLEY +- obsolete glusterfs-ufo (#1025059) +- ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) +- clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not + in /usr/share/doc/glusterfs-server(-x.y.z) +- remove defattr (per pkg review of another package) +- don't use %%{__foo} macros (per package review of another package) + * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) - fix "warning: File listed twice: .../glusterd.info" while building diff --git a/sources b/sources index f0ec160..9b11929 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -52cf3b00d874818e653f075e7dfb82d7 glusterfs-3.4.3.tar.gz +ff9cd3a929f02645acbdb6f01ed91db9 glusterfs-3.5.0beta5.tar.gz From 71fcafd50d68408288f7eddc8b2f158889988505 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 14 Apr 2014 17:32:41 -0400 Subject: [PATCH 031/328] GlusterFS 3.4.3-3, patch xlators/nfs/server/src/nlm4.c --- ...terfs-3.4.3.xlator.nfs.server.nlm4.c.patch | 13 + glusterfs.spec | 405 ++++++------------ sources | 2 +- 3 files changed, 155 insertions(+), 265 deletions(-) create mode 100644 glusterfs-3.4.3.xlator.nfs.server.nlm4.c.patch diff --git a/glusterfs-3.4.3.xlator.nfs.server.nlm4.c.patch b/glusterfs-3.4.3.xlator.nfs.server.nlm4.c.patch new file mode 100644 index 0000000..c49eed5 --- /dev/null +++ b/glusterfs-3.4.3.xlator.nfs.server.nlm4.c.patch @@ -0,0 +1,13 @@ +diff --git a/xlators/nfs/server/src/nlm4.c b/xlators/nfs/server/src/nlm4.c +index e040aa5..eca107d 100644 +--- a/xlators/nfs/server/src/nlm4.c ++++ b/xlators/nfs/server/src/nlm4.c +@@ -941,7 +941,7 @@ nlm4_establish_callback (void *csarg) + case AF_INET: + inet_ntop (AF_INET, &sock_union.sin.sin_addr, peerip, + INET6_ADDRSTRLEN+1); +- inet_ntop (AF_INET, &(((struct sockaddr_in *)&cs->req->trans->myinfo.sockaddr)->sin_addr), ++ inet_ntop (AF_INET, &(((struct sockaddr_in *)&cs->trans->myinfo.sockaddr)->sin_addr), + myip, INET6_ADDRSTRLEN + 1); + + break; diff --git a/glusterfs.spec b/glusterfs.spec index abc453f..7909a87 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,9 +1,10 @@ + %global _hardened_build 1 %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta5 +# %%global prereltag beta2 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -30,15 +31,6 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} -# if you wish to build rpms without syslog logging, compile like this -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog -%{?_without_syslog:%global _without_syslog --disable-syslog} - -# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) -%global _without_syslog --disable-syslog -%endif - # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -50,15 +42,6 @@ %define _without_bd --disable-bd-xlator %endif -# if you wish to compile an rpm without the qemu-block support... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block -%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -# xlators/features/qemu-block fails to build on RHEL5, disable it -%define _without_qemu_block --disable-qemu-block -%endif - %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif @@ -72,8 +55,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.5.0 -Release: 0.7%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.4.3 +Release: 3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -85,7 +68,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -94,15 +77,16 @@ Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source11: glusterfsd.service Source13: glusterfsd.init +Patch0: %{name}-3.2.5.configure.ac.patch +Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch +Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch +Patch3: %{name}-3.4.3.xlator.nfs.server.nlm4.c.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -BuildRequires: python-simplejson -%endif %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE11}} @@ -115,7 +99,7 @@ Requires(postun): systemd-units %define _init_disable() /bin/systemctl disable %1.service ; %define _init_restart() /bin/systemctl try-restart %1.service ; %define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%define _init_install() %{__install} -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works %define _init_glusterd %{_unitdir}/glusterd.service %define _init_glusterfsd %{_unitdir}/glusterfsd.service @@ -131,7 +115,7 @@ Requires(postun): /sbin/service %define _init_disable() /sbin/chkconfig --del %1 ; %define _init_restart() /sbin/service %1 condrestart &>/dev/null ; %define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%define _init_install() %{__install} -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works %define _init_glusterd %{_sysconfdir}/init.d/glusterd %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd @@ -151,19 +135,12 @@ BuildRequires: systemtap-sdt-devel %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif -%if ( 0%{!?_without_qemu_block:1} ) -BuildRequires: glib2-devel -%endif -%if ( 0%{!?_without_georeplication:1} ) -BuildRequires: libattr-devel -%endif -Obsoletes: hekafs +Obsoletes: hekafs <= 0.7 Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} -Obsoletes: %{name}-ufo # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: @@ -172,7 +149,7 @@ Obsoletes: %{name}-ufo %if ( 0%{?rhel} == 6 ) # filter_setup exists in RHEL6 only %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' + %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' %filter_setup %else # modern rpm and current Fedora do not generate requires when the @@ -180,13 +157,6 @@ Obsoletes: %{name}-ufo %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) - # _sharedstatedir is not provided by RHEL5 - %define _sharedstatedir /var/lib -%endif - %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -203,14 +173,6 @@ both GlusterFS server and client framework. %package libs Summary: GlusterFS common libraries Group: Applications/File -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -Requires: rsyslog-mmjsonparse -%endif -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -Requires: rsyslog-mmcount -%endif -%endif %description libs GlusterFS is a clustered file-system capable of scaling to several @@ -265,7 +227,6 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} -Requires: python python-ctypes %description geo-replication GlusterFS is a clustered file-system capable of scaling to several @@ -307,6 +268,7 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} +Requires: e2fsprogs xfsprogs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) Requires: rpcbind %else @@ -328,7 +290,6 @@ This package provides the glusterfs server daemon. Summary: Clustered file-system api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} -Requires: %{name}-devel = %{version}-%{release} # we provide the Python package/namespace 'gluster' Provides: python-gluster = %{version}-%{release} @@ -409,105 +370,86 @@ is in user space and easily manageable. This package provides the api include files. -%package regression-tests -Summary: Development Tools -Group: Development/Tools -Requires: %{name} = %{version}-%{release} -Requires: %{name}-fuse = %{version}-%{release} -Requires: %{name}-server = %{version}-%{release} -Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 -Requires: python attr dbench git nfs-utils xfsprogs - -%description regression-tests -The Gluster Test Framework, is a suite of scripts used for -regression testing of Gluster. - %prep %setup -q -n %{name}-%{version}%{?prereltag} +%if ( 0%{_for_fedora_koji_builds} ) +#%patch0 -p0 +%patch1 -p0 -F4 +%if ( "%{version}" == "3.3.1" ) +%patch2 -p1 +%endif +%if ( "%{version}" == "3.4.3" ) +%patch3 -p1 +%endif +%endif %build ./autogen.sh -%configure \ - %{?_without_rdma} \ - %{?_without_epoll} \ - %{?_without_fusermount} \ - %{?_without_georeplication} \ - %{?_without_ocf} \ - %{?_without_syslog} \ - %{?_without_bd} \ - %{?_without_qemu_block} \ - %{?_without_systemtap} +%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} %{?_without_bd} %{?_without_systemtap} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool +%{__sed} -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif -sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool -sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool +%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool +%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -make %{?_smp_mflags} +%{__make} %{?_smp_mflags} pushd api/examples FLAGS="$RPM_OPT_FLAGS" python setup.py build popd %install -rm -rf %{buildroot} -make install DESTDIR=%{buildroot} +%{__rm} -rf %{buildroot} +%{__make} install DESTDIR=%{buildroot} # install the gfapi Python library in /usr/lib/python*/site-packages pushd api/examples python setup.py install --skip-build --verbose --root %{buildroot} popd # Install include directory -mkdir -p %{buildroot}%{_includedir}/glusterfs -install -p -m 0644 libglusterfs/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs +%{__install} -p -m 0644 libglusterfs/src/*.h \ %{buildroot}%{_includedir}/glusterfs/ -install -p -m 0644 contrib/uuid/*.h \ +%{__install} -p -m 0644 contrib/uuid/*.h \ %{buildroot}%{_includedir}/glusterfs/ # Following needed by hekafs multi-tenant translator -mkdir -p %{buildroot}%{_includedir}/glusterfs/rpc -install -p -m 0644 rpc/rpc-lib/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/rpc +%{__install} -p -m 0644 rpc/rpc-lib/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -install -p -m 0644 rpc/xdr/src/*.h \ +%{__install} -p -m 0644 rpc/xdr/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -mkdir -p %{buildroot}%{_includedir}/glusterfs/server -install -p -m 0644 xlators/protocol/server/src/*.h \ +%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server +%{__install} -p -m 0644 xlators/protocol/server/src/*.h \ %{buildroot}%{_includedir}/glusterfs/server/ %if ( 0%{_for_fedora_koji_builds} ) -install -D -p -m 0644 %{SOURCE1} \ +%{__install} -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd -install -D -p -m 0644 %{SOURCE2} \ +%{__install} -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %else -install -D -p -m 0644 extras/glusterd-sysconfig \ +%{__install} -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -install -D -p -m 0755 %{SOURCE6} \ +%{__install} -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif %endif -mkdir -p %{buildroot}%{_localstatedir}/log/glusterd -mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs -mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd -mkdir -p %{buildroot}%{_localstatedir}/run/gluster +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd +%{__mkdir_p} %{buildroot}%{_localstatedir}/run/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, the ones we want are included by %%doc, in -# /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending -# on the distribution -%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -rm -rf %{buildroot}%{_pkgdocdir}/* -%else -rm -rf %{buildroot}%{_defaultdocdir}/%{name} -mkdir -p %{buildroot}%{_pkgdocdir} -%endif +# Remove installed docs, they're included by %%doc +%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog @@ -516,20 +458,12 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -rm -rf %{buildroot}/benchmarking -rm -f %{buildroot}/glusterfs-mode.el -rm -f %{buildroot}/glusterfs.vim -%else -# make install always puts these in %%{_defaultdocdir}/%%{name} so don't -# use %%{_pkgdocdir}; that will be wrong on later Fedora distributions -rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking -rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el -rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim -%endif +%{__rm} -rf %{buildroot}/benchmarking +%{__rm} -f %{buildroot}/glusterfs-mode.el +%{__rm} -f %{buildroot}/glusterfs.vim # Create working directory -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd # Update configuration file to /var/lib working directory sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ @@ -542,116 +476,74 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry -install -D -p -m 0644 %{SOURCE3} \ +%{__install} -D -p -m 0644 %{SOURCE3} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse # Server logrotate entry -install -D -p -m 0644 %{SOURCE4} \ +%{__install} -D -p -m 0644 %{SOURCE4} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterd # Legacy server logrotate entry -install -D -p -m 0644 %{SOURCE5} \ +%{__install} -D -p -m 0644 %{SOURCE5} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd %else -install -D -p -m 0644 extras/glusterfs-logrotate \ +%{__install} -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs %endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication -touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf -install -D -p -m 0644 extras/glusterfs-georep-logrotate \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep -%endif - -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -install -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ - %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif - -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -install -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ - %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif - -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -install -D -p -m 0644 extras/logger.conf.example \ - %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example -%endif +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication +touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf %endif # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/groups -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/groups +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid -install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post - -find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs - %clean -rm -rf %{buildroot} +%{__rm} -rf %{buildroot} %post -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog -%endif -%endif +/sbin/ldconfig %postun -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog -%endif -%endif +/sbin/ldconfig %files -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 README THANKS +%defattr(-,root,root,-) +%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif -%endif %{_libdir}/glusterfs %{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* @@ -675,9 +567,11 @@ rm -rf %{buildroot} %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* -%post libs -p /sbin/ldconfig +%post libs +/sbin/ldconfig -%postun libs -p /sbin/ldconfig +%postun libs +/sbin/ldconfig %files libs %{_libdir}/*.so.* @@ -689,6 +583,7 @@ rm -rf %{buildroot} %if ( 0%{!?_without_rdma:1} ) %files rdma +%defattr(-,root,root,-) %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif @@ -700,27 +595,15 @@ if [ $1 -ge 1 ]; then fi %files geo-replication -%{_sysconfdir}/logrotate.d/glusterfs-georep +%defattr(-,root,root) %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* -%{_libexecdir}/glusterfs/gverify.sh -%{_libexecdir}/glusterfs/peer_add_secret_pub -%{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%dir %{_sharedstatedir}/glusterd/hooks -%dir %{_sharedstatedir}/glusterd/hooks/1 -%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create -%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh -%{_datadir}/glusterfs/scripts/get-gfid.sh -%{_datadir}/glusterfs/scripts/slave-upgrade.sh -%{_datadir}/glusterfs/scripts/gsync-upgrade.sh -%{_datadir}/glusterfs/scripts/generate-gfid-file.sh -%{_datadir}/glusterfs/scripts/gsync-sync-gfid -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf %endif %files fuse +%defattr(-,root,root,-) %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse %endif @@ -736,14 +619,13 @@ fi %endif %files server +%defattr(-,root,root,-) %doc extras/clear_xattrs.sh %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs -# %%dir %{_sharedstatedir}/glusterd/groups -# %%config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd @@ -761,12 +643,11 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -# hack to work around old rpm/rpmbuild %%doc misfeature %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options -# This is really ugly, but I have no idea how to mark these directories in -# any other way. They should belong to the glusterfs-server package, but -# don't exist after installation. They are generated on the first start... +# This is really ugly, but I have no idea how to mark these directories in an +# other way. They should belong to the glusterfs-server package, but don't +# exist after installation. They are generated on the first start... %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop @@ -799,9 +680,11 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%post api -p /sbin/ldconfig +%post api +/sbin/ldconfig -%postun api -p /sbin/ldconfig +%postun api +/sbin/ldconfig %files api %exclude %{_libdir}/*.so @@ -811,11 +694,13 @@ fi %if ( 0%{!?_without_ocf:1} ) %files resource-agents +%defattr(-,root,root) # /usr/lib is the standard for OCF, also on x86_64 %{_prefix}/lib/ocf/resource.d/glusterfs %endif %files devel +%defattr(-,root,root,-) %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h %exclude %{_includedir}/glusterfs/api @@ -824,41 +709,28 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc -%{_libdir}/pkgconfig/libgfchangelog.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* -%files regression-tests -%defattr(-,root,root,-) -%{_prefix}/share/glusterfs/* -%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t - %post server # Legacy server %_init_enable glusterd %_init_enable glusterfsd -# hack to work around old rpm/rpmbuild %%doc misfeature -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -if [ -d %{_pkgdocdir}.tmp ]; then - cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ - rm -rf %{_pkgdocdir}.tmp/* -%endif - # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib # in gluster.org RPMs.) Be careful to copy them on the off chance that # /etc and /var/lib are on separate file systems if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then - mkdir -p %{_sharedstatedir}/glusterd + %{__mkdir_p} %{_sharedstatedir}/glusterd cp -a /etc/glusterd %{_sharedstatedir}/glusterd rm -rf /etc/glusterd ln -sf %{_sharedstatedir}/glusterd /etc/glusterd fi # Rename old volfiles in an RPM-standard way. These aren't actually -# considered package config files, so %%config doesn't work for them. +# considered package config files, so %config doesn't work for them. if [ -d %{_sharedstatedir}/glusterd/vols ]; then for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do newfile=${file}.rpmsave @@ -903,39 +775,44 @@ if [ $1 -ge 1 ]; then fi %changelog -* Fri Apr 4 2014 Kaleb S. KEITHLEY - 3.5.0-0.7.beta5 -- GlusterFS 3.5.0 beta5 +* Mon Apr 14 2014 Kaleb S. KEITHLEY - 3.4.3-3 +- GlusterFS 3.4.3-3, patch xlators/nfs/server/src/nlm4.c -* Sat Mar 8 2014 Kaleb S. KEITHLEY - 3.5.0-0.6.beta4 -- GlusterFS 3.5.0 beta4 +* Thu Apr 3 2014 Kaleb S. KEITHLEY - 3.4.3-2 +- GlusterFS 3.4.3-2 -* Tue Feb 11 2014 Kaleb S. KEITHLEY - 3.5.0-0.5.beta3 -- GlusterFS 3.5.0 beta3 +* Wed Apr 2 2014 Kaleb S. KEITHLEY - 3.4.3-1 +- GlusterFS 3.4.3 GA -* Mon Jan 27 2014 Kaleb S. KEITHLEY - 3.5.0-0.4.beta2 -- GlusterFS 3.5.0 beta2 +* Wed Mar 26 2014 Kaleb S. KEITHLEY - 3.4.3-0.3.beta2 +- GlusterFS 3.4.3 beta2 -* Thu Jan 16 2014 Kaleb S. KEITHLEY - 3.5.0-0.3.beta1 -- GlusterFS 3.5.0 beta1 +* Thu Mar 13 2014 Kaleb S. KEITHLEY - 3.4.3-0.2.beta1 +- GlusterFS 3.4.3 beta1 -* Thu Jan 16 2014 Ville Skyttä - 3.5.0-0.2.beta1 -- Drop unnecessary ldconfig calls, do remaining ones without shell. -- Drop INSTALL from docs. +* Thu Feb 13 2014 Kaleb S. KEITHLEY - 3.4.3-0.1.alpha1 +- GlusterFS 3.4.3 alpha1 -* Wed Jan 15 2014 Kaleb S. KEITHLEY - 3.5.0-0.1.beta1 -- GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 +* Fri Jan 3 2014 Kaleb S. KEITHLEY - 3.4.2-1 +- GlusterFS 3.4.2 GA -* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1.qa3 +* Wed Dec 25 2013 Niels de Vos - 3.4.2-0.1qa5 +- GlusterFS 3.4.2 QA5, glusterfs-3.4.2-0.1qa5 +- Correct source URL to automatic release location + +* Fri Dec 20 2013 Niels de Vos +- Include .../site-packages/gluster/gfapi.py in glusterfs-api + +* Thu Dec 19 2013 Niels de Vos +- Include the .../site-packages/gluster/__init__.py file by default, + skip EL-5 and earlier (#1045123) + +* Tue Dec 17 2013 Kaleb S. KEITHLEY - 3.4.2-0.1qa4 +- GlusterFS 3.4.2 QA4 , glusterfs-3.4.2-0.1qa4 + +* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1qa3 - GlusterFS 3.5.0 QA3 , glusterfs-3.5.0-0.1qa3 -* Wed Nov 6 2013 Kaleb S. KEITHLEY -- obsolete glusterfs-ufo (#1025059) -- ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) -- clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not - in /usr/share/doc/glusterfs-server(-x.y.z) -- remove defattr (per pkg review of another package) -- don't use %%{__foo} macros (per package review of another package) - * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) - fix "warning: File listed twice: .../glusterd.info" while building diff --git a/sources b/sources index 9b11929..f0ec160 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -ff9cd3a929f02645acbdb6f01ed91db9 glusterfs-3.5.0beta5.tar.gz +52cf3b00d874818e653f075e7dfb82d7 glusterfs-3.4.3.tar.gz From 5cbf40d9904636130f1ab7ba165075eba8052a5f Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 17 Apr 2014 13:13:07 -0400 Subject: [PATCH 032/328] GlusterFS 3.5.0 GA --- glusterfs.spec | 471 ++++++++++++++++++++++++++++++++++--------------- sources | 2 +- 2 files changed, 328 insertions(+), 145 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 7909a87..3794841 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,10 +1,9 @@ - %global _hardened_build 1 %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag beta2 +# %%global prereltag beta5 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -25,12 +24,21 @@ # if you wish to compile an rpm without geo-replication support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication -%{?_without_georeplication:%global _without_georeplication --disable-geo-replication} +%{?_without_georeplication:%global _without_georeplication --disable-georeplication} # if you wish to compile an rpm without the OCF resource agents... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} +# if you wish to build rpms without syslog logging, compile like this +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog +%{?_without_syslog:%global _without_syslog --disable-syslog} + +# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount +%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%global _without_syslog --disable-syslog +%endif + # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -38,10 +46,19 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd %{?_without_bd:%global _without_bd --disable-bd-xlator} -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +%if ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) %define _without_bd --disable-bd-xlator %endif +# if you wish to compile an rpm without the qemu-block support... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block +%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +# xlators/features/qemu-block fails to build on RHEL5, disable it +%define _without_qemu_block --disable-qemu-block +%endif + %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif @@ -55,8 +72,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.4.3 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.5.0 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -68,7 +85,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -77,16 +94,15 @@ Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source11: glusterfsd.service Source13: glusterfsd.init -Patch0: %{name}-3.2.5.configure.ac.patch -Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch -Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch -Patch3: %{name}-3.4.3.xlator.nfs.server.nlm4.c.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +BuildRequires: python-simplejson +%endif %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE11}} @@ -99,7 +115,7 @@ Requires(postun): systemd-units %define _init_disable() /bin/systemctl disable %1.service ; %define _init_restart() /bin/systemctl try-restart %1.service ; %define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() %{__install} -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works %define _init_glusterd %{_unitdir}/glusterd.service %define _init_glusterfsd %{_unitdir}/glusterfsd.service @@ -115,7 +131,7 @@ Requires(postun): /sbin/service %define _init_disable() /sbin/chkconfig --del %1 ; %define _init_restart() /sbin/service %1 condrestart &>/dev/null ; %define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() %{__install} -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works %define _init_glusterd %{_sysconfdir}/init.d/glusterd %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd @@ -135,12 +151,19 @@ BuildRequires: systemtap-sdt-devel %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif +%if ( 0%{!?_without_qemu_block:1} ) +BuildRequires: glib2-devel +%endif +%if ( 0%{!?_without_georeplication:1} ) +BuildRequires: libattr-devel +%endif -Obsoletes: hekafs <= 0.7 +Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} +Obsoletes: %{name}-ufo # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: @@ -149,7 +172,7 @@ Provides: %{name}-core = %{version}-%{release} %if ( 0%{?rhel} == 6 ) # filter_setup exists in RHEL6 only %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' + %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' %filter_setup %else # modern rpm and current Fedora do not generate requires when the @@ -157,6 +180,13 @@ Provides: %{name}-core = %{version}-%{release} %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) + # _sharedstatedir is not provided by RHEL5 + %define _sharedstatedir /var/lib +%endif + %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -173,6 +203,14 @@ both GlusterFS server and client framework. %package libs Summary: GlusterFS common libraries Group: Applications/File +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +Requires: rsyslog-mmjsonparse +%endif +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +Requires: rsyslog-mmcount +%endif +%endif %description libs GlusterFS is a clustered file-system capable of scaling to several @@ -227,6 +265,7 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} +Requires: python python-ctypes %description geo-replication GlusterFS is a clustered file-system capable of scaling to several @@ -268,7 +307,6 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} -Requires: e2fsprogs xfsprogs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) Requires: rpcbind %else @@ -302,13 +340,32 @@ terms of features and extensibility. It borrows a powerful concept called Translators from GNU Hurd kernel. Much of the code in GlusterFS is in user space and easily manageable. -This package provides the glusterfs libgfapi library +This package provides the glusterfs libgfapi library. + +%package extra-xlators +Summary: Extra Gluster filesystem Translators +Group: Applications/File +# We need -api rpm for its __init__.py in Python site-packages area +Requires: %{name}-api = %{version}-%{release} +Requires: python python-ctypes + +%description extra-xlators +GlusterFS is a clustered file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides extra filesystem Translators, such as Glupy, +for GlusterFS. %if ( 0%{!?_without_ocf:1} ) %package resource-agents Summary: OCF Resource Agents for GlusterFS License: GPLv3+ -%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) +%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) ) # EL5 does not support noarch sub-packages BuildArch: noarch %endif @@ -341,6 +398,8 @@ like Pacemaker. Summary: Development Libraries Group: Development/Libraries Requires: %{name} = %{version}-%{release} +# Needed for the Glupy examples to work +Requires: %{name}-extra-xlators = %{version}-%{release} %description devel GlusterFS is a clustered file-system capable of scaling to several @@ -370,86 +429,115 @@ is in user space and easily manageable. This package provides the api include files. +%package regression-tests +Summary: Development Tools +Group: Development/Tools +Requires: %{name} = %{version}-%{release} +Requires: %{name}-fuse = %{version}-%{release} +Requires: %{name}-server = %{version}-%{release} +Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 +Requires: python attr dbench git nfs-utils xfsprogs + +%description regression-tests +The Gluster Test Framework, is a suite of scripts used for +regression testing of Gluster. + %prep %setup -q -n %{name}-%{version}%{?prereltag} -%if ( 0%{_for_fedora_koji_builds} ) -#%patch0 -p0 -%patch1 -p0 -F4 -%if ( "%{version}" == "3.3.1" ) -%patch2 -p1 -%endif -%if ( "%{version}" == "3.4.3" ) -%patch3 -p1 -%endif -%endif %build ./autogen.sh -%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} %{?_without_bd} %{?_without_systemtap} +%configure \ + %{?_without_rdma} \ + %{?_without_epoll} \ + %{?_without_fusermount} \ + %{?_without_georeplication} \ + %{?_without_ocf} \ + %{?_without_syslog} \ + %{?_without_bd} \ + %{?_without_qemu_block} \ + %{?_without_systemtap} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -%{__sed} -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool +sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif -%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool -%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -%{__make} %{?_smp_mflags} +make %{?_smp_mflags} +# Build Glupy +pushd xlators/features/glupy/src +FLAGS="$RPM_OPT_FLAGS" python setup.py build +popd + +# Build the Python libgfapi examples pushd api/examples FLAGS="$RPM_OPT_FLAGS" python setup.py build popd %install -%{__rm} -rf %{buildroot} -%{__make} install DESTDIR=%{buildroot} +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} +# install the Glupy Python library in /usr/lib/python*/site-packages +pushd xlators/features/glupy/src +python setup.py install --skip-build --verbose --root %{buildroot} +popd # install the gfapi Python library in /usr/lib/python*/site-packages pushd api/examples python setup.py install --skip-build --verbose --root %{buildroot} popd # Install include directory -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs -%{__install} -p -m 0644 libglusterfs/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs +install -p -m 0644 libglusterfs/src/*.h \ %{buildroot}%{_includedir}/glusterfs/ -%{__install} -p -m 0644 contrib/uuid/*.h \ +install -p -m 0644 contrib/uuid/*.h \ %{buildroot}%{_includedir}/glusterfs/ # Following needed by hekafs multi-tenant translator -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/rpc -%{__install} -p -m 0644 rpc/rpc-lib/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs/rpc +install -p -m 0644 rpc/rpc-lib/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__install} -p -m 0644 rpc/xdr/src/*.h \ +install -p -m 0644 rpc/xdr/src/*.h \ %{buildroot}%{_includedir}/glusterfs/rpc/ -%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server -%{__install} -p -m 0644 xlators/protocol/server/src/*.h \ +mkdir -p %{buildroot}%{_includedir}/glusterfs/server +install -p -m 0644 xlators/protocol/server/src/*.h \ %{buildroot}%{_includedir}/glusterfs/server/ %if ( 0%{_for_fedora_koji_builds} ) -%{__install} -D -p -m 0644 %{SOURCE1} \ +install -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd -%{__install} -D -p -m 0644 %{SOURCE2} \ +install -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterd-sysconfig \ +install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{__install} -D -p -m 0755 %{SOURCE6} \ +install -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif %endif -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs -%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd -%{__mkdir_p} %{buildroot}%{_localstatedir}/run/gluster +mkdir -p %{buildroot}%{_localstatedir}/log/glusterd +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs +mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd +mkdir -p %{buildroot}%{_localstatedir}/run/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, they're included by %%doc -%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ +# Remove installed docs, the ones we want are included by %%doc, in +# /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending +# on the distribution +%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +rm -rf %{buildroot}%{_pkgdocdir}/* +%else +rm -rf %{buildroot}%{_defaultdocdir}/%{name} +mkdir -p %{buildroot}%{_pkgdocdir} +%endif head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog @@ -458,12 +546,20 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -%{__rm} -rf %{buildroot}/benchmarking -%{__rm} -f %{buildroot}/glusterfs-mode.el -%{__rm} -f %{buildroot}/glusterfs.vim +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +rm -rf %{buildroot}/benchmarking +rm -f %{buildroot}/glusterfs-mode.el +rm -f %{buildroot}/glusterfs.vim +%else +# make install always puts these in %%{_defaultdocdir}/%%{name} so don't +# use %%{_pkgdocdir}; that will be wrong on later Fedora distributions +rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking +rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el +rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim +%endif # Create working directory -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd # Update configuration file to /var/lib working directory sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ @@ -476,74 +572,118 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry -%{__install} -D -p -m 0644 %{SOURCE3} \ +install -D -p -m 0644 %{SOURCE3} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse # Server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE4} \ +install -D -p -m 0644 %{SOURCE4} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterd # Legacy server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE5} \ +install -D -p -m 0644 %{SOURCE5} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd %else -%{__install} -D -p -m 0644 extras/glusterfs-logrotate \ +install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs %endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication -touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication +touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +install -D -p -m 0644 extras/glusterfs-georep-logrotate \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep +%endif + +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +install -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +install -D -p -m 0644 extras/logger.conf.example \ + %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example +%endif %endif # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/groups -%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs/run +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/groups +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid +%if ( 0%{!?_without_georeplication:1} ) +install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ + %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +%endif + +find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs + %clean -%{__rm} -rf %{buildroot} +rm -rf %{buildroot} %post -/sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %postun -/sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %files -%defattr(-,root,root,-) %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif +%endif %{_libdir}/glusterfs %{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* @@ -562,16 +702,18 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +# Glupy files are in the -extra-xlators package +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy* # sample xlators not generally used or usable %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* +%{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh +%{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh -%post libs -/sbin/ldconfig +%post libs -p /sbin/ldconfig -%postun libs -/sbin/ldconfig +%postun libs -p /sbin/ldconfig %files libs %{_libdir}/*.so.* @@ -583,7 +725,6 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid %if ( 0%{!?_without_rdma:1} ) %files rdma -%defattr(-,root,root,-) %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif @@ -595,15 +736,27 @@ if [ $1 -ge 1 ]; then fi %files geo-replication -%defattr(-,root,root) +%{_sysconfdir}/logrotate.d/glusterfs-georep %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* +%{_libexecdir}/glusterfs/gverify.sh +%{_libexecdir}/glusterfs/peer_add_secret_pub +%{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +%dir %{_sharedstatedir}/glusterd/hooks +%dir %{_sharedstatedir}/glusterd/hooks/1 +%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create +%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh +%{_datadir}/glusterfs/scripts/get-gfid.sh +%{_datadir}/glusterfs/scripts/slave-upgrade.sh +%{_datadir}/glusterfs/scripts/gsync-upgrade.sh +%{_datadir}/glusterfs/scripts/generate-gfid-file.sh +%{_datadir}/glusterfs/scripts/gsync-sync-gfid +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf %endif %files fuse -%defattr(-,root,root,-) %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse %endif @@ -619,13 +772,14 @@ fi %endif %files server -%defattr(-,root,root,-) %doc extras/clear_xattrs.sh %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs +# %%dir %{_sharedstatedir}/glusterd/groups +# %%config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd @@ -643,11 +797,12 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +# hack to work around old rpm/rpmbuild %%doc misfeature %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options -# This is really ugly, but I have no idea how to mark these directories in an -# other way. They should belong to the glusterfs-server package, but don't -# exist after installation. They are generated on the first start... +# This is really ugly, but I have no idea how to mark these directories in +# any other way. They should belong to the glusterfs-server package, but +# don't exist after installation. They are generated on the first start... %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop @@ -680,57 +835,87 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%post api -/sbin/ldconfig +%post api -p /sbin/ldconfig -%postun api -/sbin/ldconfig +%postun api -p /sbin/ldconfig %files api %exclude %{_libdir}/*.so +# Shared Python-GlusterFS files +%{python_sitelib}/gluster/__init__.* +# libgfapi files %{_libdir}/libgfapi.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* -%{python_sitelib}/* +%{python_sitelib}/gluster/gfapi.* +# Don't expect a .egg-info file on EL5 +%if ( 0%{?rhel} && 0%{?rhel} > 5 ) || ( 0%{?fedora} ) +%{python_sitelib}/glusterfs_api*.egg-info +%endif + +%files extra-xlators +# Glupy C shared library +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so +# Glupy Python files +%{python_sitelib}/gluster/glupy.* +# Don't expect a .egg-info file on EL5 +%if ( 0%{?rhel} && 0%{?rhel} > 5 ) || ( 0%{?fedora} ) +%{python_sitelib}/glusterfs_glupy*.egg-info +%endif %if ( 0%{!?_without_ocf:1} ) %files resource-agents -%defattr(-,root,root) # /usr/lib is the standard for OCF, also on x86_64 %{_prefix}/lib/ocf/resource.d/glusterfs %endif %files devel -%defattr(-,root,root,-) %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h %exclude %{_includedir}/glusterfs/api %exclude %{_libdir}/libgfapi.so %{_libdir}/*.so +# Glupy Translator examples +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/pkgconfig/libgfchangelog.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* +%files regression-tests +%defattr(-,root,root,-) +%{_prefix}/share/glusterfs/* +%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t + %post server # Legacy server %_init_enable glusterd %_init_enable glusterfsd +# hack to work around old rpm/rpmbuild %%doc misfeature +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +if [ -d %{_pkgdocdir}.tmp ]; then + cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ + rm -rf %{_pkgdocdir}.tmp/* +%endif + # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib # in gluster.org RPMs.) Be careful to copy them on the off chance that # /etc and /var/lib are on separate file systems if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then - %{__mkdir_p} %{_sharedstatedir}/glusterd + mkdir -p %{_sharedstatedir}/glusterd cp -a /etc/glusterd %{_sharedstatedir}/glusterd rm -rf /etc/glusterd ln -sf %{_sharedstatedir}/glusterd /etc/glusterd fi # Rename old volfiles in an RPM-standard way. These aren't actually -# considered package config files, so %config doesn't work for them. +# considered package config files, so %%config doesn't work for them. if [ -d %{_sharedstatedir}/glusterd/vols ]; then for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do newfile=${file}.rpmsave @@ -775,44 +960,42 @@ if [ $1 -ge 1 ]; then fi %changelog -* Mon Apr 14 2014 Kaleb S. KEITHLEY - 3.4.3-3 -- GlusterFS 3.4.3-3, patch xlators/nfs/server/src/nlm4.c +* Thu Apr 17 2014 Kaleb S. KEITHLEY - 3.5.0-1 +- GlusterFS 3.5.0 GA -* Thu Apr 3 2014 Kaleb S. KEITHLEY - 3.4.3-2 -- GlusterFS 3.4.3-2 +* Fri Apr 4 2014 Kaleb S. KEITHLEY - 3.5.0-0.7.beta5 +- GlusterFS 3.5.0 beta5 -* Wed Apr 2 2014 Kaleb S. KEITHLEY - 3.4.3-1 -- GlusterFS 3.4.3 GA +* Sat Mar 8 2014 Kaleb S. KEITHLEY - 3.5.0-0.6.beta4 +- GlusterFS 3.5.0 beta4 -* Wed Mar 26 2014 Kaleb S. KEITHLEY - 3.4.3-0.3.beta2 -- GlusterFS 3.4.3 beta2 +* Tue Feb 11 2014 Kaleb S. KEITHLEY - 3.5.0-0.5.beta3 +- GlusterFS 3.5.0 beta3 -* Thu Mar 13 2014 Kaleb S. KEITHLEY - 3.4.3-0.2.beta1 -- GlusterFS 3.4.3 beta1 +* Mon Jan 27 2014 Kaleb S. KEITHLEY - 3.5.0-0.4.beta2 +- GlusterFS 3.5.0 beta2 -* Thu Feb 13 2014 Kaleb S. KEITHLEY - 3.4.3-0.1.alpha1 -- GlusterFS 3.4.3 alpha1 +* Thu Jan 16 2014 Kaleb S. KEITHLEY - 3.5.0-0.3.beta1 +- GlusterFS 3.5.0 beta1 -* Fri Jan 3 2014 Kaleb S. KEITHLEY - 3.4.2-1 -- GlusterFS 3.4.2 GA +* Thu Jan 16 2014 Ville Skyttä - 3.5.0-0.2.beta1 +- Drop unnecessary ldconfig calls, do remaining ones without shell. +- Drop INSTALL from docs. -* Wed Dec 25 2013 Niels de Vos - 3.4.2-0.1qa5 -- GlusterFS 3.4.2 QA5, glusterfs-3.4.2-0.1qa5 -- Correct source URL to automatic release location +* Wed Jan 15 2014 Kaleb S. KEITHLEY - 3.5.0-0.1.beta1 +- GlusterFS 3.5.0 beta1 , glusterfs-3.5.0-0.1beta1 -* Fri Dec 20 2013 Niels de Vos -- Include .../site-packages/gluster/gfapi.py in glusterfs-api - -* Thu Dec 19 2013 Niels de Vos -- Include the .../site-packages/gluster/__init__.py file by default, - skip EL-5 and earlier (#1045123) - -* Tue Dec 17 2013 Kaleb S. KEITHLEY - 3.4.2-0.1qa4 -- GlusterFS 3.4.2 QA4 , glusterfs-3.4.2-0.1qa4 - -* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1qa3 +* Fri Dec 6 2013 Kaleb S. KEITHLEY - 3.5.0-0.1.qa3 - GlusterFS 3.5.0 QA3 , glusterfs-3.5.0-0.1qa3 +* Wed Nov 6 2013 Kaleb S. KEITHLEY +- obsolete glusterfs-ufo (#1025059) +- ownership of /usr/share/doc/glusterfs(-x.y.z) (#846737) +- clear_xattrs.sh belongs in /usr/share/doc/glusterfs(-x.y.z), not + in /usr/share/doc/glusterfs-server(-x.y.z) +- remove defattr (per pkg review of another package) +- don't use %%{__foo} macros (per package review of another package) + * Sun Oct 27 2013 Niels de Vos - 3.4.1-3 - Correctly start+stop glusterfsd.service (#1022542) - fix "warning: File listed twice: .../glusterd.info" while building diff --git a/sources b/sources index f0ec160..4003488 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -52cf3b00d874818e653f075e7dfb82d7 glusterfs-3.4.3.tar.gz +5c141ba3e5306d550d9092e3d1ad6d50 glusterfs-3.5.0.tar.gz From 5bd720eb477addccffe6d6611f0540c27bb73e85 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 23 Apr 2014 08:30:30 -0400 Subject: [PATCH 033/328] GlusterFS 3.5.0 GA, glusterfs-3.5.0-2, glusterfs.spec nits --- glusterfs.spec | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 3794841..89c61f2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -73,7 +73,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.0 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -848,7 +848,7 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* %{python_sitelib}/gluster/gfapi.* # Don't expect a .egg-info file on EL5 -%if ( 0%{?rhel} && 0%{?rhel} > 5 ) || ( 0%{?fedora} ) +%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) %{python_sitelib}/glusterfs_api*.egg-info %endif @@ -858,7 +858,7 @@ fi # Glupy Python files %{python_sitelib}/gluster/glupy.* # Don't expect a .egg-info file on EL5 -%if ( 0%{?rhel} && 0%{?rhel} > 5 ) || ( 0%{?fedora} ) +%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) %{python_sitelib}/glusterfs_glupy*.egg-info %endif @@ -900,6 +900,7 @@ fi if [ -d %{_pkgdocdir}.tmp ]; then cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ rm -rf %{_pkgdocdir}.tmp/* +fi %endif # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if @@ -960,6 +961,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Wed Apr 23 2014 Kaleb S. KEITHLEY - 3.5.0-2 +- GlusterFS 3.5.0 GA, glusterfs-3.5.0-2, glusterfs.spec nits + * Thu Apr 17 2014 Kaleb S. KEITHLEY - 3.5.0-1 - GlusterFS 3.5.0 GA From 0cd8f5ac00930648a416377a0ad3e75a67e3d010 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 25 Apr 2014 09:52:49 -0400 Subject: [PATCH 034/328] sync with upstream glusterfs.spec.in BZ #1091392 --- glusterfs.spec | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 89c61f2..027bf31 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -26,12 +26,17 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication %{?_without_georeplication:%global _without_georeplication --disable-georeplication} +# Disable geo-replication on EL5, as its default Python is too old +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +%global _without_georeplication --disable-georeplication +%endif + # if you wish to compile an rpm without the OCF resource agents... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} # if you wish to build rpms without syslog logging, compile like this -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without syslog %{?_without_syslog:%global _without_syslog --disable-syslog} # disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount @@ -85,7 +90,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -161,9 +166,12 @@ BuildRequires: libattr-devel Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} +Obsoletes: %{name}-ufo +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +Obsoletes: %{name}-geo-replication = %{version}-%{release} +%endif Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} -Obsoletes: %{name}-ufo # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: @@ -797,11 +805,10 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -# hack to work around old rpm/rpmbuild %%doc misfeature %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options # This is really ugly, but I have no idea how to mark these directories in -# any other way. They should belong to the glusterfs-server package, but +# any other way. They should belong to the glusterfs-server package, but # don't exist after installation. They are generated on the first start... %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 @@ -886,7 +893,6 @@ fi %{_includedir}/glusterfs/api/* %files regression-tests -%defattr(-,root,root,-) %{_prefix}/share/glusterfs/* %exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t @@ -961,6 +967,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Fri Apr 25 2014 Kaleb S. KEITHLEY +- sync with upstream glusterfs.spec.in BZ #1091392 + * Wed Apr 23 2014 Kaleb S. KEITHLEY - 3.5.0-2 - GlusterFS 3.5.0 GA, glusterfs-3.5.0-2, glusterfs.spec nits From 373c16e966880fb4ca1db544d18c202ddb051a4f Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 28 Apr 2014 07:25:48 -0400 Subject: [PATCH 035/328] sync with upstream glusterfs.spec.in BZ #1091392 --- glusterfs.spec | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 027bf31..bdceeac 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -167,9 +167,6 @@ Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} Obsoletes: %{name}-ufo -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -Obsoletes: %{name}-geo-replication = %{version}-%{release} -%endif Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -320,6 +317,9 @@ Requires: rpcbind %else Requires: portmap %endif +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +Obsoletes: %{name}-geo-replication = %{version}-%{release} +%endif %description server GlusterFS is a clustered file-system capable of scaling to several @@ -901,14 +901,6 @@ fi %_init_enable glusterd %_init_enable glusterfsd -# hack to work around old rpm/rpmbuild %%doc misfeature -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -if [ -d %{_pkgdocdir}.tmp ]; then - cp -p %{_pkgdocdir}.tmp/* %{_pkgdocdir}/ - rm -rf %{_pkgdocdir}.tmp/* -fi -%endif - # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib From f7d186df201e06df4dc0c139169a15093255335f Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 1 May 2014 07:47:04 -0400 Subject: [PATCH 036/328] syslog deprecated in Fedora20 BZ #1093318 --- glusterfs.spec | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index bdceeac..7b3163d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -40,7 +40,10 @@ %{?_without_syslog:%global _without_syslog --disable-syslog} # disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +# Fedora deprecated syslog, see +# https://fedoraproject.org/wiki/Changes/NoDefaultSyslog +# (And what about RHEL7?) +%if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} <= 6 ) %global _without_syslog --disable-syslog %endif @@ -78,7 +81,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.0 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Release: 3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -959,9 +962,14 @@ if [ $1 -ge 1 ]; then fi %changelog +* Thu May 1 2014 Kaleb S. KEITHLEY - 3.5.0-3 +- syslog deprecated in Fedora20 BZ #1093318 + * Fri Apr 25 2014 Kaleb S. KEITHLEY - sync with upstream glusterfs.spec.in BZ #1091392 +- sync with upstream glusterfs.spec.in BZ #1091392 + * Wed Apr 23 2014 Kaleb S. KEITHLEY - 3.5.0-2 - GlusterFS 3.5.0 GA, glusterfs-3.5.0-2, glusterfs.spec nits From 658ac97ef37a6faea2c28016d05ee24f70bef0fb Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 26 May 2014 10:12:07 -0400 Subject: [PATCH 037/328] GlusterFS 3.5.1 beta1 --- glusterfs.spec | 16 ++++++++++------ sources | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 7b3163d..e41e9e3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag beta5 +%global prereltag beta1 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -80,8 +80,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.5.0 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.5.1 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -457,7 +457,9 @@ regression testing of Gluster. %setup -q -n %{name}-%{version}%{?prereltag} %build -./autogen.sh +# For whatever reason, install-sh is sometimes missing. When this gets fixed, +# there is no need to run ./autogen or have a BuildRequires for automake. +[ -e 'install-sh' -o -e 'install.sh' ] || ./autogen.sh %configure \ %{?_without_rdma} \ %{?_without_epoll} \ @@ -803,6 +805,7 @@ fi %endif # binaries %{_sbindir}/glusterd +%{_sbindir}/glfsheal %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* @@ -962,14 +965,15 @@ if [ $1 -ge 1 ]; then fi %changelog +* Mon May 26 2014 Kaleb S. KEITHLEY - 3.5.1-0.1.beta1 +- GlusterFS 3.5.1 beta1 + * Thu May 1 2014 Kaleb S. KEITHLEY - 3.5.0-3 - syslog deprecated in Fedora20 BZ #1093318 * Fri Apr 25 2014 Kaleb S. KEITHLEY - sync with upstream glusterfs.spec.in BZ #1091392 -- sync with upstream glusterfs.spec.in BZ #1091392 - * Wed Apr 23 2014 Kaleb S. KEITHLEY - 3.5.0-2 - GlusterFS 3.5.0 GA, glusterfs-3.5.0-2, glusterfs.spec nits diff --git a/sources b/sources index 4003488..1b68328 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5c141ba3e5306d550d9092e3d1ad6d50 glusterfs-3.5.0.tar.gz +6b9a110b3ff17d8b9ed6411fd77c1309 glusterfs-3.5.1beta.tar.gz From 02481185b63c0a73ac89e21a999116b57b9b7492 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 26 May 2014 10:22:25 -0400 Subject: [PATCH 038/328] GlusterFS 3.5.1 beta1 --- glusterfs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index e41e9e3..5ca8666 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -93,7 +93,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}beta.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate From 73879ff2e442a0d2fb45fb578594d3e7b7393ebb Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 26 May 2014 10:33:15 -0400 Subject: [PATCH 039/328] GlusterFS 3.5.1 beta1 --- glusterfs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5ca8666..dd3b6b7 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -454,7 +454,7 @@ The Gluster Test Framework, is a suite of scripts used for regression testing of Gluster. %prep -%setup -q -n %{name}-%{version}%{?prereltag} +%setup -q -n %{name}-%{version}beta %build # For whatever reason, install-sh is sometimes missing. When this gets fixed, From 732a753f87be220274c763c906b82e23487988ee Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 26 May 2014 10:42:32 -0400 Subject: [PATCH 040/328] GlusterFS 3.5.1 beta1 --- glusterfs.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index dd3b6b7..e411b40 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta1 +%global prereltag beta # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -81,7 +81,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.1 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.1%{?prereltag:.%{prereltag}1}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -93,7 +93,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}beta.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -454,7 +454,7 @@ The Gluster Test Framework, is a suite of scripts used for regression testing of Gluster. %prep -%setup -q -n %{name}-%{version}beta +%setup -q -n %{name}-%{version}%{prereltag} %build # For whatever reason, install-sh is sometimes missing. When this gets fixed, From 28dc0974dd38a6d72d81ff71b4c81684291feba8 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sat, 7 Jun 2014 11:46:59 -0500 Subject: [PATCH 041/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e411b40..f18c6bb 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -81,12 +81,12 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.1 -Release: 0.1%{?prereltag:.%{prereltag}1}%{?dist} +Release: 0.2%{?prereltag:.%{prereltag}1}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 1%{?dist} +Release: 2%{?dist} Vendor: glusterfs.org %endif License: GPLv2 or LGPLv3+ @@ -965,6 +965,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Sat Jun 07 2014 Fedora Release Engineering - 3.5.1-0.2.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Mon May 26 2014 Kaleb S. KEITHLEY - 3.5.1-0.1.beta1 - GlusterFS 3.5.1 beta1 From 18fdedc9765d977ba2bbe34cb28d8f303f464ec4 Mon Sep 17 00:00:00 2001 From: hchiramm Date: Wed, 11 Jun 2014 11:17:30 +0530 Subject: [PATCH 042/328] GlusterFS 3.5.1 beta2 --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f18c6bb..d3301f3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta +%global prereltag beta2 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -81,7 +81,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.1 -Release: 0.2%{?prereltag:.%{prereltag}1}%{?dist} +Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -965,6 +965,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Wed Jun 11 2014 Humble Chirammal - 3.5.1-0.3.beta2 +- GlusterFS 3.5.1 beta2 + * Sat Jun 07 2014 Fedora Release Engineering - 3.5.1-0.2.beta1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild diff --git a/sources b/sources index 1b68328..94f4141 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6b9a110b3ff17d8b9ed6411fd77c1309 glusterfs-3.5.1beta.tar.gz +bcf7264ee5e41ec08c46088363218342 glusterfs-3.5.1beta2.tar.gz From 552921b9c2254ff381c4587d04c4b83bfdf99c24 Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Tue, 24 Jun 2014 20:07:27 +0530 Subject: [PATCH 043/328] GlusterFS 3.5.1 GA --- glusterfs.spec | 11 +++++++---- sources | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index d3301f3..8cd4096 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta2 +# %%global prereltag beta2 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -81,7 +81,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.1 -Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -93,7 +93,7 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source3: glusterfs-fuse.logrotate @@ -454,7 +454,7 @@ The Gluster Test Framework, is a suite of scripts used for regression testing of Gluster. %prep -%setup -q -n %{name}-%{version}%{prereltag} +%setup -q -n %{name}-%{version}%{?prereltag} %build # For whatever reason, install-sh is sometimes missing. When this gets fixed, @@ -965,6 +965,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Tue Jun 24 2014 Lalatendu Mohanty - 3.5.1-1 +- GlusterFS 3.5.1 GA + * Wed Jun 11 2014 Humble Chirammal - 3.5.1-0.3.beta2 - GlusterFS 3.5.1 beta2 diff --git a/sources b/sources index 94f4141..9e8a9d0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -bcf7264ee5e41ec08c46088363218342 glusterfs-3.5.1beta2.tar.gz +a68114c60a7d35831657116a68a42040 glusterfs-3.5.1.tar.gz From 04451c08dd966856736d9f2f559a6568221cac31 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 8 Jul 2014 06:38:40 -0400 Subject: [PATCH 044/328] glusterd init script: fix glusterfsd stop() not running at system shutdown or reboot. RHBZ 1073217 --- glusterd.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glusterd.init b/glusterd.init index 0007d2e..fecb77d 100644 --- a/glusterd.init +++ b/glusterd.init @@ -41,7 +41,7 @@ start() { daemon $exe${GLUSTERD_LOGFILE+" -l $GLUSTERD_LOGFILE"}${GLUSTERD_LOGLEVEL+" -L $GLUSTERD_LOGLEVEL"} -p $pidf retval=$? echo - [ $retval -eq 0 ] && touch $lockfile + [ $retval -eq 0 ] && touch $lockfile /var/lock/subsys/glusterfsd return $retval } From 4289dab87917e02f29eec5160fc0c87798915f40 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 9 Jul 2014 07:26:44 -0400 Subject: [PATCH 045/328] glusterd.init, BZ 1073217 --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8cd4096..0292249 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -81,7 +81,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.1 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -965,6 +965,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Wed Jul 9 2014 Kaleb S. KEITHLEY - 3.5.1-2 +- glusterd.init, BZ 1073217 + * Tue Jun 24 2014 Lalatendu Mohanty - 3.5.1-1 - GlusterFS 3.5.1 GA From 117ae4f966a66e49bb0edea61042ae473c5c0fd9 Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Tue, 22 Jul 2014 00:22:46 +0530 Subject: [PATCH 046/328] GlusterFS 3.5.2 beta1 --- glusterfs.spec | 19 +++++++++++++++---- sources | 2 +- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 0292249..cff7f69 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag beta2 +%global prereltag beta1 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -80,8 +80,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.5.1 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.5.2 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -315,6 +315,8 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} +#nfs-utils provides rpc.statd and it is a requirement for gluster-nfs +Requires: nfs-utils %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) Requires: rpcbind %else @@ -940,7 +942,7 @@ pidof -c -o %PPID -x glusterd &> /dev/null if [ $? -eq 0 ]; then kill -9 `pgrep -f gsyncd.py` &> /dev/null - killall glusterd &> /dev/null + killall --wait glusterd &> /dev/null glusterd --xlator-option *.upgrade=on -N else glusterd --xlator-option *.upgrade=on -N @@ -965,9 +967,18 @@ if [ $1 -ge 1 ]; then fi %changelog +* Mon Jul 21 2014 Lalatendu Mohanty - 3.5.2-0.1.beta1 +- GlusterFS 3.5.2 beta1 + * Wed Jul 9 2014 Kaleb S. KEITHLEY - 3.5.1-2 - glusterd.init, BZ 1073217 +* Fri Jun 27 2014 Kaleb S. KEITHLEY +- killall --wait in %%post server (#1113959, #1113745) + +* Wed Jun 25 2014 Vikhyat Umrao +- add nfs-utils package dependency for server package (#1113007) + * Tue Jun 24 2014 Lalatendu Mohanty - 3.5.1-1 - GlusterFS 3.5.1 GA diff --git a/sources b/sources index 9e8a9d0..107b860 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a68114c60a7d35831657116a68a42040 glusterfs-3.5.1.tar.gz +69d696eb51626d1e714b5375d7f47dd8 glusterfs-3.5.2beta1.tar.gz From 1474004c5d0c7d8369f5fb17afa5819cf3c1c8c5 Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Thu, 31 Jul 2014 23:43:44 +0530 Subject: [PATCH 047/328] GlusterFS 3.5.2 GA --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index cff7f69..7f34bc1 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta1 +# %%global prereltag beta1 # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -81,7 +81,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.2 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -967,6 +967,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Thu Jul 31 2014 Lalatendu Mohanty - 3.5.2-1 +- GlusterFS 3.5.2 GA + * Mon Jul 21 2014 Lalatendu Mohanty - 3.5.2-0.1.beta1 - GlusterFS 3.5.2 beta1 diff --git a/sources b/sources index 107b860..3323647 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -69d696eb51626d1e714b5375d7f47dd8 glusterfs-3.5.2beta1.tar.gz +715585ab441fbbff260ac7bb273b7f96 glusterfs-3.5.2.tar.gz From 7445b8c7a5c9a9cc8f506a9d0cb3411a80c1556b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 5 Aug 2014 08:40:27 -0400 Subject: [PATCH 048/328] use upstream logrotate files exclusively (#1126788) --- glusterfs.spec | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 7f34bc1..28ccc18 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -96,9 +96,6 @@ URL: http://www.gluster.org/docs/index.php/GlusterFS Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig -Source3: glusterfs-fuse.logrotate -Source4: glusterd.logrotate -Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source11: glusterfsd.service Source13: glusterfsd.init @@ -585,21 +582,8 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %_init_install %{glusterfsd_service} glusterfsd %endif -%if ( 0%{_for_fedora_koji_builds} ) -# Client logrotate entry -install -D -p -m 0644 %{SOURCE3} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse - -# Server logrotate entry -install -D -p -m 0644 %{SOURCE4} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterd -# Legacy server logrotate entry -install -D -p -m 0644 %{SOURCE5} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd -%else install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs -%endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts @@ -692,7 +676,7 @@ rm -rf %{buildroot} %files %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS -%config(noreplace) %{_sysconfdir}/logrotate.d/* +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs %config(noreplace) %{_sysconfdir}/sysconfig/* %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) @@ -751,7 +735,7 @@ if [ $1 -ge 1 ]; then fi %files geo-replication -%{_sysconfdir}/logrotate.d/glusterfs-georep +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* %{_libexecdir}/glusterfs/gverify.sh @@ -772,9 +756,6 @@ fi %endif %files fuse -%if ( 0%{_for_fedora_koji_builds} ) -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse -%endif %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* /sbin/mount.glusterfs %if ( 0%{!?_without_fusermount:1} ) @@ -788,16 +769,12 @@ fi %files server %doc extras/clear_xattrs.sh -%if ( 0%{_for_fedora_koji_builds} ) -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd -%endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs # %%dir %{_sharedstatedir}/glusterd/groups # %%config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd %endif # init files @@ -967,6 +944,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Tue Aug 5 2014 Kaleb S. KEITHLEY +- use upstream logrotate files exclusively (#1126788) + * Thu Jul 31 2014 Lalatendu Mohanty - 3.5.2-1 - GlusterFS 3.5.2 GA @@ -976,7 +956,7 @@ fi * Wed Jul 9 2014 Kaleb S. KEITHLEY - 3.5.1-2 - glusterd.init, BZ 1073217 -* Fri Jun 27 2014 Kaleb S. KEITHLEY +* Fri Jun 27 2014 Kaleb S. KEITHLEY - killall --wait in %%post server (#1113959, #1113745) * Wed Jun 25 2014 Vikhyat Umrao From 68643019100285443a58c8f4b4533442a746bd4b Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 16 Aug 2014 17:24:14 +0000 Subject: [PATCH 049/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 28ccc18..4495da9 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -81,7 +81,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.5.2 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -944,6 +944,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Sat Aug 16 2014 Fedora Release Engineering - 3.5.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + * Tue Aug 5 2014 Kaleb S. KEITHLEY - use upstream logrotate files exclusively (#1126788) From f49b86e7419161533a3f9773b5e095b25bebb254 Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Tue, 16 Sep 2014 23:29:55 +0530 Subject: [PATCH 050/328] Changed the description as "GlusterFS a distributed filesystem" --- glusterfs.spec | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4495da9..e32713f 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -193,7 +193,7 @@ Provides: %{name}-core = %{version}-%{release} %endif %description -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -218,7 +218,7 @@ Requires: rsyslog-mmcount %endif %description libs -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -234,7 +234,7 @@ Group: Applications/File Requires: %{name}-libs = %{version}-%{release} %description cli -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -253,7 +253,7 @@ BuildRequires: librdmacm-devel Requires: %{name} = %{version}-%{release} %description rdma -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -273,7 +273,7 @@ Requires: %{name}-server = %{version}-%{release} Requires: python python-ctypes %description geo-replication -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several peta-bytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file system in @@ -295,7 +295,7 @@ Obsoletes: %{name}-client < %{version}-%{release} Provides: %{name}-client = %{version}-%{release} %description fuse -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -324,7 +324,7 @@ Obsoletes: %{name}-geo-replication = %{version}-%{release} %endif %description server -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -342,7 +342,7 @@ Requires: %{name} = %{version}-%{release} Provides: python-gluster = %{version}-%{release} %description api -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -360,7 +360,7 @@ Requires: %{name}-api = %{version}-%{release} Requires: python python-ctypes %description extra-xlators -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -391,7 +391,7 @@ Requires: glusterfs-server Requires: %{_prefix}/lib/ocf/resource.d %description resource-agents -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -412,7 +412,7 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-extra-xlators = %{version}-%{release} %description devel -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -429,7 +429,7 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-devel = %{version}-%{release} %description api-devel -GlusterFS is a clustered file-system capable of scaling to several +GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -944,6 +944,9 @@ if [ $1 -ge 1 ]; then fi %changelog +* Fri Sep 5 2014 Lalatendu Mohanty +- Changed the description as "GlusterFS a distributed filesystem" + * Sat Aug 16 2014 Fedora Release Engineering - 3.5.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild From fd4b18e9f1495b63e3da6905a832b8ad6c48a921 Mon Sep 17 00:00:00 2001 From: Humble Chirammal Date: Wed, 24 Sep 2014 16:41:50 +0530 Subject: [PATCH 051/328] More make fedora master glusterfs spec compatible with upstream GlusterFS 3.6 spec --- glusterfs.spec | 944 +++++++++++++++++++++++++++---------------------- sources | 2 +- 2 files changed, 521 insertions(+), 425 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e32713f..ad47c88 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,11 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag beta1 +%global prereltag beta1 + +##----------------------------------------------------------------------------- +## All argument definitions should be placed here and keep them sorted +## # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -47,9 +51,6 @@ %global _without_syslog --disable-syslog %endif -# there is no systemtap support! Perhaps some day there will be -%global _without_systemtap --enable-systemtap=no - # if you wish to compile an rpm without the BD map support... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd %{?_without_bd:%global _without_bd --disable-bd-xlator} @@ -67,21 +68,83 @@ %define _without_qemu_block --disable-qemu-block %endif +##----------------------------------------------------------------------------- +## All %global definitions should be placed here and keep them sorted +## + %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -%global _with_systemd true +%global _with_systemd true %endif +# there is no systemtap support! Perhaps some day there will be +%global _without_systemtap --enable-systemtap=no + # From https://fedoraproject.org/wiki/Packaging:Python#Macros %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) %{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %endif +%if ( 0%{?_with_systemd:1} ) +%define _init_enable() /bin/systemctl enable %1.service ; +%define _init_disable() /bin/systemctl disable %1.service ; +%define _init_restart() /bin/systemctl try-restart %1.service ; +%define _init_stop() /bin/systemctl stop %1.service ; +%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +# can't seem to make a generic macro that works +%define _init_glusterd %{_unitdir}/glusterd.service +%define _init_glusterfsd %{_unitdir}/glusterfsd.service +%else +%define _init_enable() /sbin/chkconfig --add %1 ; +%define _init_disable() /sbin/chkconfig --del %1 ; +%define _init_restart() /sbin/service %1 condrestart &>/dev/null ; +%define _init_stop() /sbin/service %1 stop &>/dev/null ; +%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +# can't seem to make a generic macro that works +%define _init_glusterd %{_sysconfdir}/init.d/glusterd +%define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd +%endif + +%if ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{?_with_systemd:1} ) +%global glusterfsd_service glusterfsd.service +%else +%global glusterfsd_service glusterfsd.init +%endif +%endif + +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) + # _sharedstatedir is not provided by RHEL5 + %define _sharedstatedir /var/lib +%endif + +# We do not want to generate useless provides and requires for xlator +# .so files to be set for glusterfs packages. +# Filter all generated: +# +# TODO: RHEL5 does not have a convenient solution +%if ( 0%{?rhel} == 6 ) + # filter_setup exists in RHEL6 only + %filter_provides_in %{_libdir}/glusterfs/%{version}/ + %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' + %filter_setup +%else + # modern rpm and current Fedora do not generate requires when the + # provides are filtered + %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ +%endif + + +##----------------------------------------------------------------------------- +## All package definitions should be placed here and keep them sorted +## Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.5.2 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.6.0 +Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -96,9 +159,12 @@ URL: http://www.gluster.org/docs/index.php/GlusterFS Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig +Source3: glusterfs-fuse.logrotate +Source4: glusterd.logrotate +Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules -Source11: glusterfsd.service -Source13: glusterfsd.init +Source7: glusterfsd.service +Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif @@ -110,36 +176,20 @@ BuildRequires: python-simplejson %endif %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) -%global glusterfsd_service %{S:%{SOURCE11}} +%global glusterfsd_service %{S:%{SOURCE7}} %endif BuildRequires: systemd-units Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units -%define _init_enable() /bin/systemctl enable %1.service ; -%define _init_disable() /bin/systemctl disable %1.service ; -%define _init_restart() /bin/systemctl try-restart %1.service ; -%define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; -# can't seem to make a generic macro that works -%define _init_glusterd %{_unitdir}/glusterd.service -%define _init_glusterfsd %{_unitdir}/glusterfsd.service %else %if ( 0%{_for_fedora_koji_builds} ) -%global glusterfsd_service %{S:%{SOURCE13}} +%global glusterfsd_service %{S:%{SOURCE8}} %endif Requires(post): /sbin/chkconfig Requires(preun): /sbin/service Requires(preun): /sbin/chkconfig Requires(postun): /sbin/service -%define _init_enable() /sbin/chkconfig --add %1 ; -%define _init_disable() /sbin/chkconfig --del %1 ; -%define _init_restart() /sbin/service %1 condrestart &>/dev/null ; -%define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; -# can't seem to make a generic macro that works -%define _init_glusterd %{_sysconfdir}/init.d/glusterd -%define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd %endif Requires: %{name}-libs = %{version}-%{release} @@ -170,28 +220,6 @@ Obsoletes: %{name}-ufo Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} -# We do not want to generate useless provides and requires for xlator .so files -# Filter all generated: -# -# TODO: RHEL5 does not have a convenient solution -%if ( 0%{?rhel} == 6 ) - # filter_setup exists in RHEL6 only - %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' - %filter_setup -%else - # modern rpm and current Fedora do not generate requires when the - # provides are filtered - %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ -%endif - -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) - # _sharedstatedir is not provided by RHEL5 - %define _sharedstatedir /var/lib -%endif - %description GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -205,6 +233,136 @@ This package includes the glusterfs binary, the glusterfsd daemon and the gluster command line, libglusterfs and glusterfs translator modules common to both GlusterFS server and client framework. +%package api +Summary: Clustered file-system api library +Group: System Environment/Daemons +Requires: %{name} = %{version}-%{release} +# we provide the Python package/namespace 'gluster' +Provides: python-gluster = %{version}-%{release} + +%description api +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the glusterfs libgfapi library. + +%package api-devel +Summary: Development Libraries +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} + +%description api-devel +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the api include files. + +%package cli +Summary: GlusterFS CLI +Group: Applications/File +Requires: %{name}-libs = %{version}-%{release} + +%description cli +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the GlusterFS CLI application and its man page + +%package devel +Summary: Development Libraries +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +# Needed for the Glupy examples to work +Requires: %{name}-extra-xlators = %{version}-%{release} + +%description devel +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the development libraries and include files. + +%package extra-xlators +Summary: Extra Gluster filesystem Translators +Group: Applications/File +# We need -api rpm for its __init__.py in Python site-packages area +Requires: %{name}-api = %{version}-%{release} +Requires: python python-ctypes + +%description extra-xlators +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides extra filesystem Translators, such as Glupy, +for GlusterFS. + + +%package fuse +Summary: Fuse client +Group: Applications/File +BuildRequires: fuse-devel + +Requires: %{name} = %{version}-%{release} + +Obsoletes: %{name}-client < %{version}-%{release} +Provides: %{name}-client = %{version}-%{release} + +%description fuse +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides support to FUSE based clients. + +%if ( 0%{!?_without_georeplication:1} ) +%package geo-replication +Summary: GlusterFS Geo-replication +Group: Applications/File +Requires: %{name} = %{version}-%{release} +Requires: %{name}-server = %{version}-%{release} +Requires: python python-ctypes + +%description geo-replication +GlusterFS is a distributed file-system capable of scaling to several +peta-bytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file system in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in userspace and easily manageable. + +This package provides support to geo-replication. +%endif + %package libs Summary: GlusterFS common libraries Group: Applications/File @@ -228,22 +386,6 @@ is in user space and easily manageable. This package provides the base GlusterFS libraries -%package cli -Summary: GlusterFS CLI -Group: Applications/File -Requires: %{name}-libs = %{version}-%{release} - -%description cli -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides the GlusterFS CLI application and its man page - %if ( 0%{!?_without_rdma:1} ) %package rdma Summary: GlusterFS rdma support for ib-verbs @@ -264,112 +406,20 @@ is in user space and easily manageable. This package provides support to ib-verbs library. %endif -%if ( 0%{!?_without_georeplication:1} ) -%package geo-replication -Summary: GlusterFS Geo-replication -Group: Applications/File +%package regression-tests +Summary: Development Tools +Group: Development/Tools Requires: %{name} = %{version}-%{release} -Requires: %{name}-server = %{version}-%{release} -Requires: python python-ctypes - -%description geo-replication -GlusterFS is a distributed file-system capable of scaling to several -peta-bytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file system in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in userspace and easily manageable. - -This package provides support to geo-replication. -%endif - -%package fuse -Summary: Fuse client -Group: Applications/File -BuildRequires: fuse-devel - -Requires: %{name} = %{version}-%{release} - -Obsoletes: %{name}-client < %{version}-%{release} -Provides: %{name}-client = %{version}-%{release} - -%description fuse -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides support to FUSE based clients. - -%package server -Summary: Clustered file-system server -Group: System Environment/Daemons -Requires: %{name} = %{version}-%{release} -Requires: %{name}-cli = %{version}-%{release} -Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} -#nfs-utils provides rpc.statd and it is a requirement for gluster-nfs -Requires: nfs-utils -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -Requires: rpcbind -%else -Requires: portmap -%endif -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -Obsoletes: %{name}-geo-replication = %{version}-%{release} -%endif +Requires: %{name}-server = %{version}-%{release} +## thin provisioning support +Requires: lvm2 >= 2.02.89 +Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng +Requires: nfs-utils xfsprogs yajl -%description server -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides the glusterfs server daemon. - -%package api -Summary: Clustered file-system api library -Group: System Environment/Daemons -Requires: %{name} = %{version}-%{release} -# we provide the Python package/namespace 'gluster' -Provides: python-gluster = %{version}-%{release} - -%description api -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides the glusterfs libgfapi library. - -%package extra-xlators -Summary: Extra Gluster filesystem Translators -Group: Applications/File -# We need -api rpm for its __init__.py in Python site-packages area -Requires: %{name}-api = %{version}-%{release} -Requires: python python-ctypes - -%description extra-xlators -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides extra filesystem Translators, such as Glupy, -for GlusterFS. +%description regression-tests +The Gluster Test Framework, is a suite of scripts used for +regression testing of Gluster. %if ( 0%{!?_without_ocf:1} ) %package resource-agents @@ -404,53 +454,36 @@ Open Cluster Framework (OCF) compliant cluster resource managers, like Pacemaker. %endif -%package devel -Summary: Development Libraries -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -# Needed for the Glupy examples to work -Requires: %{name}-extra-xlators = %{version}-%{release} - -%description devel -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides the development libraries and include files. - -%package api-devel -Summary: Development Libraries -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Requires: %{name}-devel = %{version}-%{release} - -%description api-devel -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides the api include files. - -%package regression-tests -Summary: Development Tools -Group: Development/Tools +%package server +Summary: Clustered file-system server +Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} +Requires: %{name}-cli = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} -Requires: %{name}-server = %{version}-%{release} -Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 -Requires: python attr dbench git nfs-utils xfsprogs +# Runtime necessity for snapshot +Requires: lvm2 +# nfs-utils provides rpc.statd and it is a requirement for gluster-nfs +Requires: nfs-utils +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +Requires: rpcbind +%else +Requires: portmap +%endif +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +Obsoletes: %{name}-geo-replication = %{version}-%{release} +%endif -%description regression-tests -The Gluster Test Framework, is a suite of scripts used for -regression testing of Gluster. +%description server +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} @@ -484,11 +517,6 @@ pushd xlators/features/glupy/src FLAGS="$RPM_OPT_FLAGS" python setup.py build popd -# Build the Python libgfapi examples -pushd api/examples -FLAGS="$RPM_OPT_FLAGS" python setup.py build -popd - %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} @@ -496,10 +524,6 @@ make install DESTDIR=%{buildroot} pushd xlators/features/glupy/src python setup.py install --skip-build --verbose --root %{buildroot} popd -# install the gfapi Python library in /usr/lib/python*/site-packages -pushd api/examples -python setup.py install --skip-build --verbose --root %{buildroot} -popd # Install include directory mkdir -p %{buildroot}%{_includedir}/glusterfs install -p -m 0644 libglusterfs/src/*.h \ @@ -582,8 +606,21 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %_init_install %{glusterfsd_service} glusterfsd %endif +%if ( 0%{_for_fedora_koji_builds} ) +# Client logrotate entry +install -D -p -m 0644 %{SOURCE3} \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse + +# Server logrotate entry +install -D -p -m 0644 %{SOURCE4} \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterd +# Legacy server logrotate entry +install -D -p -m 0644 %{SOURCE5} \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd +%else install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs +%endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts @@ -621,6 +658,9 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/reset +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/reset/post +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/reset/pre mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre @@ -645,7 +685,6 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/groups mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid @@ -654,12 +693,33 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post %endif +%{__install} -p -m 0744 extras/hook-scripts/start/post/*.sh \ + %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post +%{__install} -p -m 0744 extras/hook-scripts/stop/pre/*.sh \ + %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre +%{__install} -p -m 0744 extras/hook-scripts/set/post/*.sh \ + %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post +%{__install} -p -m 0744 extras/hook-scripts/add-brick/post/*.sh \ + %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post +%{__install} -p -m 0744 extras/hook-scripts/add-brick/pre/*.sh \ + %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +%{__install} -p -m 0744 extras/hook-scripts/reset/post/*.sh \ + %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/reset/post + find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs +## Install bash completion for cli +install -p -m 0744 -D extras/command-completion/gluster.bash \ + %{buildroot}%{_sysconfdir}/bash_completion.d/gluster + + %clean rm -rf %{buildroot} +##----------------------------------------------------------------------------- +## All %post should be placed here and keep them sorted +## %post %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) @@ -667,64 +727,11 @@ rm -rf %{buildroot} %endif %endif -%postun -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog -%endif -%endif +%post api -p /sbin/ldconfig -%files -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs -%config(noreplace) %{_sysconfdir}/sysconfig/* -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif -%endif -%{_libdir}/glusterfs -%{_sbindir}/glusterfs* -%{_mandir}/man8/*gluster*.8* -%exclude %{_mandir}/man8/gluster.8* -%dir %{_localstatedir}/log/glusterfs -%dir %{_localstatedir}/run/gluster -%dir %{_sharedstatedir}/glusterd -%if ( 0%{!?_without_rdma:1} ) -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* -%endif -# server-side, etc., xlators in other RPMs -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -# Glupy files are in the -extra-xlators package -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy* -# sample xlators not generally used or usable -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* -%{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh -%{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh - -%post libs -p /sbin/ldconfig - -%postun libs -p /sbin/ldconfig - -%files libs -%{_libdir}/*.so.* -%exclude %{_libdir}/libgfapi.* - -%files cli -%{_sbindir}/gluster -%{_mandir}/man8/gluster.8* - -%if ( 0%{!?_without_rdma:1} ) -%files rdma -%{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* +%post fuse +%if ( 0%{?rhel} == 5 ) +modprobe fuse %endif %if ( 0%{!?_without_georeplication:1} ) @@ -733,153 +740,9 @@ rm -rf %{buildroot} if [ $1 -ge 1 ]; then %_init_restart glusterd fi - -%files geo-replication -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep -%{_libexecdir}/glusterfs/gsyncd -%{_libexecdir}/glusterfs/python/syncdaemon/* -%{_libexecdir}/glusterfs/gverify.sh -%{_libexecdir}/glusterfs/peer_add_secret_pub -%{_libexecdir}/glusterfs/peer_gsec_create -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%dir %{_sharedstatedir}/glusterd/hooks -%dir %{_sharedstatedir}/glusterd/hooks/1 -%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create -%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh -%{_datadir}/glusterfs/scripts/get-gfid.sh -%{_datadir}/glusterfs/scripts/slave-upgrade.sh -%{_datadir}/glusterfs/scripts/gsync-upgrade.sh -%{_datadir}/glusterfs/scripts/generate-gfid-file.sh -%{_datadir}/glusterfs/scripts/gsync-sync-gfid -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf %endif -%files fuse -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* -/sbin/mount.glusterfs -%if ( 0%{!?_without_fusermount:1} ) -%{_bindir}/fusermount-glusterfs -%endif -%if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules -%endif -%endif - -%files server -%doc extras/clear_xattrs.sh -%config(noreplace) %{_sysconfdir}/sysconfig/glusterd -%config(noreplace) %{_sysconfdir}/glusterfs -# %%dir %{_sharedstatedir}/glusterd/groups -# %%config(noreplace) %{_sharedstatedir}/glusterd/groups/virt -# Legacy configs -%if ( 0%{_for_fedora_koji_builds} ) -%config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd -%endif -# init files -%_init_glusterd -%if ( 0%{_for_fedora_koji_builds} ) -%_init_glusterfsd -%endif -# binaries -%{_sbindir}/glusterd -%{_sbindir}/glfsheal -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -%ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info -%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options -# This is really ugly, but I have no idea how to mark these directories in -# any other way. They should belong to the glusterfs-server package, but -# don't exist after installation. They are generated on the first start... -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/groups -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs -%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/nfs-server.vol -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run -%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid - -%post api -p /sbin/ldconfig - -%postun api -p /sbin/ldconfig - -%files api -%exclude %{_libdir}/*.so -# Shared Python-GlusterFS files -%{python_sitelib}/gluster/__init__.* -# libgfapi files -%{_libdir}/libgfapi.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* -%{python_sitelib}/gluster/gfapi.* -# Don't expect a .egg-info file on EL5 -%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) -%{python_sitelib}/glusterfs_api*.egg-info -%endif - -%files extra-xlators -# Glupy C shared library -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so -# Glupy Python files -%{python_sitelib}/gluster/glupy.* -# Don't expect a .egg-info file on EL5 -%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) -%{python_sitelib}/glusterfs_glupy*.egg-info -%endif - -%if ( 0%{!?_without_ocf:1} ) -%files resource-agents -# /usr/lib is the standard for OCF, also on x86_64 -%{_prefix}/lib/ocf/resource.d/glusterfs -%endif - -%files devel -%{_includedir}/glusterfs -%exclude %{_includedir}/glusterfs/y.tab.h -%exclude %{_includedir}/glusterfs/api -%exclude %{_libdir}/libgfapi.so -%{_libdir}/*.so -# Glupy Translator examples -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* - -%files api-devel -%{_libdir}/pkgconfig/glusterfs-api.pc -%{_libdir}/pkgconfig/libgfchangelog.pc -%{_libdir}/libgfapi.so -%{_includedir}/glusterfs/api/* - -%files regression-tests -%{_prefix}/share/glusterfs/* -%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t +%post libs -p /sbin/ldconfig %post server # Legacy server @@ -925,6 +788,9 @@ else glusterd --xlator-option *.upgrade=on -N fi +##----------------------------------------------------------------------------- +## All %preun should be placed here and keep them sorted +## %preun server if [ $1 -eq 0 ]; then if [ -f %_init_glusterfsd ]; then @@ -943,7 +809,237 @@ if [ $1 -ge 1 ]; then %_init_restart glusterd fi +##----------------------------------------------------------------------------- +## All %postun should be placed here and keep them sorted +## +%postun +/sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif + +%postun api -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig + +##----------------------------------------------------------------------------- +## All %files should be placed here and keep them sorted +## +%files +%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS +%config(noreplace) %{_sysconfdir}/logrotate.d/* +%config(noreplace) %{_sysconfdir}/sysconfig/* +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif +%endif +%{_libdir}/glusterfs +%{_sbindir}/glusterfs* +%{_mandir}/man8/*gluster*.8* +%exclude %{_mandir}/man8/gluster.8* +%dir %{_localstatedir}/log/glusterfs +%dir %{_localstatedir}/run/gluster +%dir %{_sharedstatedir}/glusterd +%if ( 0%{!?_without_rdma:1} ) +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* +%endif +# server-side, etc., xlators in other RPMs +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +# Glupy files are in the -extra-xlators package +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy* +# sample xlators not generally used or usable +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* +%{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh +%{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh + +%files api +%exclude %{_libdir}/*.so +# Shared Python-GlusterFS files +%{python_sitelib}/gluster/__init__.* +# libgfapi files +%{_libdir}/libgfapi.* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* + +%files api-devel +%{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/pkgconfig/libgfchangelog.pc +%{_libdir}/libgfapi.so +%{_includedir}/glusterfs/api/* + +%files cli +%{_sbindir}/gluster +%{_mandir}/man8/gluster.8* +%{_sysconfdir}/bash_completion.d/gluster + +%files devel +%{_includedir}/glusterfs +%exclude %{_includedir}/glusterfs/y.tab.h +%exclude %{_includedir}/glusterfs/api +%exclude %{_libdir}/libgfapi.so +%{_libdir}/*.so +# Glupy Translator examples +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* + +%files extra-xlators +# Glupy C shared library +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so +# Glupy Python files +%{python_sitelib}/gluster/glupy.* +# Don't expect a .egg-info file on EL5 +%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) +%{python_sitelib}/glusterfs_glupy*.egg-info +%endif + +%files fuse +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* +/sbin/mount.glusterfs +%if ( 0%{!?_without_fusermount:1} ) +%{_bindir}/fusermount-glusterfs +%endif +%if ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules +%endif +%endif + +%if ( 0%{!?_without_georeplication:1} ) +%files geo-replication +%{_sysconfdir}/logrotate.d/glusterfs-georep +%{_libexecdir}/glusterfs/gsyncd +%{_libexecdir}/glusterfs/python/syncdaemon/* +%{_libexecdir}/glusterfs/gverify.sh +%{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh +%{_libexecdir}/glusterfs/peer_add_secret_pub +%{_libexecdir}/glusterfs/peer_gsec_create +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication +%dir %{_sharedstatedir}/glusterd/hooks +%dir %{_sharedstatedir}/glusterd/hooks/1 +%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create +%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh +%{_datadir}/glusterfs/scripts/get-gfid.sh +%{_datadir}/glusterfs/scripts/slave-upgrade.sh +%{_datadir}/glusterfs/scripts/gsync-upgrade.sh +%{_datadir}/glusterfs/scripts/generate-gfid-file.sh +%{_datadir}/glusterfs/scripts/gsync-sync-gfid +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%endif + +%files libs +%{_libdir}/*.so.* +%exclude %{_libdir}/libgfapi.* + +%if ( 0%{!?_without_rdma:1} ) +%files rdma +%{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* +%endif + +%files regression-tests +%{_prefix}/share/glusterfs/* +%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t + +%if ( 0%{!?_without_ocf:1} ) +%files resource-agents +# /usr/lib is the standard for OCF, also on x86_64 +%{_prefix}/lib/ocf/resource.d/glusterfs +%endif + +%files server +%doc extras/clear_xattrs.sh +%if ( 0%{_for_fedora_koji_builds} ) +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd +%endif +%config(noreplace) %{_sysconfdir}/sysconfig/glusterd +%config(noreplace) %{_sysconfdir}/glusterfs +%dir %{_sharedstatedir}/glusterd/groups +%config(noreplace) %{_sharedstatedir}/glusterd/groups/virt +# Legacy configs +%if ( 0%{_for_fedora_koji_builds} ) +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd +%config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd +%endif +%config %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh +%config %{_sharedstatedir}/glusterd/hooks/1/set/post/S30samba-set.sh +%config %{_sharedstatedir}/glusterd/hooks/1/set/post/S31ganesha-set.sh +%config %{_sharedstatedir}/glusterd/hooks/1/start/post/S29CTDBsetup.sh +%config %{_sharedstatedir}/glusterd/hooks/1/start/post/S30samba-start.sh +%config %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh +%config %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh +%config %{_sharedstatedir}/glusterd/hooks/1/reset/post/S31ganesha-reset.sh +# init files +%_init_glusterd +%if ( 0%{_for_fedora_koji_builds} ) +%_init_glusterfsd +%endif +# binaries +%{_sbindir}/glusterd +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +%{_sharedstatedir}/glusterd +#hookscripts +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre + +%ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info +%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options +# This is really ugly, but I have no idea how to mark these directories in +# any other way. They should belong to the glusterfs-server package, but +# don't exist after installation. They are generated on the first start... +#%%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks +#%%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/post +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs +%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/nfs-server.vol +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run +%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid + %changelog +* Mon Sep 22 2014 Kaleb S. KEITHLEY +- More make fedora master glusterfs spec compatible with upstream GlusterFS 3.6 spec + +* Mon Sep 22 2014 Humble Chirammal +- Make fedora master glusterfs spec compatible with upstream GlusterFS 3.6 spec + * Fri Sep 5 2014 Lalatendu Mohanty - Changed the description as "GlusterFS a distributed filesystem" diff --git a/sources b/sources index 3323647..82b5a52 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -715585ab441fbbff260ac7bb273b7f96 glusterfs-3.5.2.tar.gz +18548737e9c4603045181621ea1cf6af glusterfs-3.6.0beta1.tar.gz From bf55b497ca9a2ac25ff55aa5111ac6db0d38c733 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 25 Sep 2014 07:11:14 -0400 Subject: [PATCH 052/328] glusterfs-3.6.0beta2.tar.gz to look-aside cache --- glusterfs.spec | 4 ++-- sources | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index ad47c88..4c5ede9 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta1 +%global prereltag beta2 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -144,7 +144,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.6.0 -Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ diff --git a/sources b/sources index 82b5a52..f44df23 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -18548737e9c4603045181621ea1cf6af glusterfs-3.6.0beta1.tar.gz +070f688e5e627f8beddb65516991c850 glusterfs-3.6.0beta2.tar.gz From 946053104702a8b90f60b1df4af0c204d297e10c Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 25 Sep 2014 07:13:50 -0400 Subject: [PATCH 053/328] oops, add a changelog entry --- glusterfs.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/glusterfs.spec b/glusterfs.spec index 4c5ede9..cce43ea 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1034,6 +1034,9 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Thu Sep 25 2014 Kaleb S. KEITHLEY +- glusterfs-3.6.0beta2.tar.gz + * Mon Sep 22 2014 Kaleb S. KEITHLEY - More make fedora master glusterfs spec compatible with upstream GlusterFS 3.6 spec From ac19e6ebd9e03360c8ef77d9d40b560a2b463c94 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 25 Sep 2014 07:42:46 -0400 Subject: [PATCH 054/328] synch a couple minor diffs with upstream in prep for next beta --- glusterfs.spec | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index cce43ea..9aa7127 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -149,7 +149,7 @@ Vendor: Fedora Project %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 2%{?dist} +Release: 0.@PACKAGE_RELEASE@%{?dist} Vendor: glusterfs.org %endif License: GPLv2 or LGPLv3+ @@ -415,6 +415,7 @@ Requires: %{name}-server = %{version}-%{release} ## thin provisioning support Requires: lvm2 >= 2.02.89 Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng +Requires: python attr dbench file git libacl-devel mock net-tools Requires: nfs-utils xfsprogs yajl %description regression-tests @@ -1010,8 +1011,6 @@ fi # This is really ugly, but I have no idea how to mark these directories in # any other way. They should belong to the glusterfs-server package, but # don't exist after installation. They are generated on the first start... -#%%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks -#%%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick From 45b19d1ab0302693f1b4d9c0882a57462c7ddf5a Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 25 Sep 2014 08:52:08 -0400 Subject: [PATCH 055/328] add Requires: psmisc to -server --- glusterfs.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9aa7127..120c7db 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -462,9 +462,10 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} -# Runtime necessity for snapshot +# psmisc for killall, lvm2 for snapshot, and nfs-utils and +# and rpcbind/portmap for gnfs server +Requires: psmisc Requires: lvm2 -# nfs-utils provides rpc.statd and it is a requirement for gluster-nfs Requires: nfs-utils %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) Requires: rpcbind @@ -1033,6 +1034,9 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Thu Sep 25 2014 Kaleb S. KEITHLEY +- add psmisc for -server + * Thu Sep 25 2014 Kaleb S. KEITHLEY - glusterfs-3.6.0beta2.tar.gz From 46e49863dc269a5fcce64beed4d8e1b6a9c670f8 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 25 Sep 2014 11:29:18 -0400 Subject: [PATCH 056/328] add smarter logic for restarting glusterd in %post server --- glusterfs.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/glusterfs.spec b/glusterfs.spec index 120c7db..3bf0c05 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -786,6 +786,9 @@ if [ $? -eq 0 ]; then killall --wait glusterd &> /dev/null glusterd --xlator-option *.upgrade=on -N + # glusterd _was_ running, we killed it, it exited after *.upgrade=on, + # so start it again + %_init_start glusterd else glusterd --xlator-option *.upgrade=on -N fi @@ -1036,6 +1039,7 @@ fi %changelog * Thu Sep 25 2014 Kaleb S. KEITHLEY - add psmisc for -server +- add smarter logic to restart glusterd in %post server * Thu Sep 25 2014 Kaleb S. KEITHLEY - glusterfs-3.6.0beta2.tar.gz From 112f23db7b4d9d5dc48b6c792fff4b41330c7787 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 25 Sep 2014 11:29:59 -0400 Subject: [PATCH 057/328] add smarter logic for restarting glusterd in %post server --- glusterfs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 3bf0c05..a32756f 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1039,7 +1039,7 @@ fi %changelog * Thu Sep 25 2014 Kaleb S. KEITHLEY - add psmisc for -server -- add smarter logic to restart glusterd in %post server +- add smarter logic to restart glusterd in %%post server * Thu Sep 25 2014 Kaleb S. KEITHLEY - glusterfs-3.6.0beta2.tar.gz From b963eff4a687b15887d44548633080916679a613 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 25 Sep 2014 12:23:48 -0400 Subject: [PATCH 058/328] see previous --- glusterfs.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/glusterfs.spec b/glusterfs.spec index a32756f..1180123 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -89,6 +89,7 @@ %define _init_enable() /bin/systemctl enable %1.service ; %define _init_disable() /bin/systemctl disable %1.service ; %define _init_restart() /bin/systemctl try-restart %1.service ; +%define _init_start() /bin/systemctl start %1.service ; %define _init_stop() /bin/systemctl stop %1.service ; %define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works @@ -98,6 +99,7 @@ %define _init_enable() /sbin/chkconfig --add %1 ; %define _init_disable() /sbin/chkconfig --del %1 ; %define _init_restart() /sbin/service %1 condrestart &>/dev/null ; +%define _init_start() /sbin/service %1 start &>/dev/null ; %define _init_stop() /sbin/service %1 stop &>/dev/null ; %define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works From ef0ff32ea3e1a8cff66a56981ca11173468a10b6 Mon Sep 17 00:00:00 2001 From: Lalatenud Mohanty Date: Thu, 25 Sep 2014 13:37:14 -0400 Subject: [PATCH 059/328] Fixes ldconfig issue #1145992 --- glusterfs.spec | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 1180123..a34d423 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -146,7 +146,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.6.0 -Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.4%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -731,7 +731,8 @@ rm -rf %{buildroot} %endif %endif -%post api -p /sbin/ldconfig +%post api +/sbin/ldconfig %post fuse %if ( 0%{?rhel} == 5 ) @@ -746,7 +747,8 @@ if [ $1 -ge 1 ]; then fi %endif -%post libs -p /sbin/ldconfig +%post libs +/sbin/ldconfig %post server # Legacy server @@ -827,9 +829,11 @@ fi %endif %endif -%postun api -p /sbin/ldconfig +%postun api +/sbin/ldconfig -%postun libs -p /sbin/ldconfig +%postun libs +/sbin/ldconfig ##----------------------------------------------------------------------------- ## All %files should be placed here and keep them sorted @@ -1046,6 +1050,9 @@ fi * Thu Sep 25 2014 Kaleb S. KEITHLEY - glusterfs-3.6.0beta2.tar.gz +* Wed Sep 24 2014 Balamurugan Arumugam +- remove /sbin/ldconfig as interpreter (#1145992) + * Mon Sep 22 2014 Kaleb S. KEITHLEY - More make fedora master glusterfs spec compatible with upstream GlusterFS 3.6 spec From 67eb6ffa0494f0191a222fb6901b9ebae53f9290 Mon Sep 17 00:00:00 2001 From: hchiramm Date: Wed, 1 Oct 2014 18:41:16 +0530 Subject: [PATCH 060/328] GlusterFs 3.6.0 beta3 release --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index a34d423..a84e063 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta2 +%global prereltag beta3 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -146,7 +146,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.6.0 -Release: 0.4%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.5%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1043,6 +1043,9 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Wed Oct 1 2014 Humble Chirammal +- glusterfs-3.6.0beta3 release + * Thu Sep 25 2014 Kaleb S. KEITHLEY - add psmisc for -server - add smarter logic to restart glusterd in %%post server diff --git a/sources b/sources index f44df23..ccebf21 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -070f688e5e627f8beddb65516991c850 glusterfs-3.6.0beta2.tar.gz +eb7c5600c22cb8ec5dac1009145c32d6 glusterfs-3.6.0beta3.tar.gz From c91de78e688a3b5b3ef6ebbe6f86fbfed9954db5 Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Fri, 7 Nov 2014 20:36:45 +0530 Subject: [PATCH 061/328] GlusterFS 3.6.1 GA --- glusterfs.spec | 9 ++++++--- sources | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index a84e063..6d01fd5 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta3 +#%%global prereltag beta3 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -145,8 +145,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.6.0 -Release: 0.5%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.6.1 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1043,6 +1043,9 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Fri Nov 07 2014 Lalatendu Mohanty +- GlusterFS 3.6.1 GA + * Wed Oct 1 2014 Humble Chirammal - glusterfs-3.6.0beta3 release diff --git a/sources b/sources index ccebf21..cd6b88b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -eb7c5600c22cb8ec5dac1009145c32d6 glusterfs-3.6.0beta3.tar.gz +ffc1c280fa4652124100a9b1c9ad5bb9 glusterfs-3.6.1.tar.gz From 5de4161ab1c837c16d77c6a81f0bd3a13660e68b Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Wed, 19 Nov 2014 20:58:19 +0530 Subject: [PATCH 062/328] Changes to remove regression-tests RPM from Fedora --- glusterfs.spec | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 6d01fd5..6ca0506 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -146,7 +146,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.6.1 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -408,6 +408,7 @@ is in user space and easily manageable. This package provides support to ib-verbs library. %endif +%if ( ! 0%{_for_fedora_koji_builds} ) %package regression-tests Summary: Development Tools Group: Development/Tools @@ -423,6 +424,7 @@ Requires: nfs-utils xfsprogs yajl %description regression-tests The Gluster Test Framework, is a suite of scripts used for regression testing of Gluster. +%endif %if ( 0%{!?_without_ocf:1} ) %package resource-agents @@ -710,8 +712,9 @@ install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ %{__install} -p -m 0744 extras/hook-scripts/reset/post/*.sh \ %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/reset/post - +%if ( ! 0%{_for_fedora_koji_builds} ) find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs +%endif ## Install bash completion for cli install -p -m 0744 -D extras/command-completion/gluster.bash \ @@ -958,9 +961,11 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif +%if ( ! 0%{_for_fedora_koji_builds} ) %files regression-tests %{_prefix}/share/glusterfs/* %exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t +%endif %if ( 0%{!?_without_ocf:1} ) %files resource-agents @@ -1043,6 +1048,9 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Wed Nov 19 2014 Lalatendu Mohanty +- Changes to remove regression-tests RPM from Fedora + * Fri Nov 07 2014 Lalatendu Mohanty - GlusterFS 3.6.1 GA From 858ffb7e452aad1aae4005cf9d22b30546c0864c Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Thu, 20 Nov 2014 16:40:57 +0100 Subject: [PATCH 063/328] Fix version in gluster-api.pc so other packages can get rebuild Samba (and others?) fail to rebuild because gluster-api.pc has a lower version than it used to. This has been introduced by the symbol versioning changes. An updated version of GlusterFS should get the correct version in the gluster-api.pc file. Further details can be found in http://review.gluster.org/9154. Related: 1166232 Signed-off-by: Niels de Vos --- glusterfs.spec | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 6ca0506..1d7edee 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -146,7 +146,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.6.1 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Release: 3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -720,6 +720,17 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus install -p -m 0744 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster +## While introducing symbol versioning in libgfapi.so, the pkg-config version +## for gluster-api got reset to 0. This is causing users of pkg-config to be +## confused, they can not reliably check the version anymore. In upstream +## Gluster we have changed the version in gluster-api to 4.3.6.x so that +## existing checks for ">= 4" are still valid. +## +## Upstream bug 1166232, should get fixed in 3.6.2 and then this note + sed +## patching can get dropped from this .spec. +sed -i 's/^Version: 0.0.0/Version: 4.%{version}/' \ + %{buildroot}%{_libdir}/pkgconfig/glusterfs-api.pc + %clean rm -rf %{buildroot} @@ -1048,6 +1059,9 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Thu Nov 20 2014 Niels de Vos 3.6.1-3 +- Fix version in gluster-api.pc (upstream bug 1166232) + * Wed Nov 19 2014 Lalatendu Mohanty - Changes to remove regression-tests RPM from Fedora From 48d9d9a5dd7a8615429996025d6bdd093da5c3b2 Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Sat, 29 Nov 2014 01:33:00 +0530 Subject: [PATCH 064/328] Fix build on el5 (upstream bug 1169004) --- glusterfs.spec | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 1d7edee..f15c137 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -146,7 +146,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.6.1 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Release: 4%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -720,6 +720,14 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus install -p -m 0744 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster +%if ( 0%{?_without_georeplication:1} ) +rm -rf %{buildroot}%{_datadir}/glusterfs/scripts/get-gfid.sh +rm -rf %{buildroot}%{_datadir}/glusterfs/scripts/slave-upgrade.sh +rm -rf %{buildroot}%{_datadir}/glusterfs/scripts/gsync-upgrade.sh +rm -rf %{buildroot}%{_datadir}/glusterfs/scripts/generate-gfid-file.sh +rm -rf %{buildroot}%{_datadir}/glusterfs/scripts/gsync-sync-gfid +%endif + ## While introducing symbol versioning in libgfapi.so, the pkg-config version ## for gluster-api got reset to 0. This is causing users of pkg-config to be ## confused, they can not reliably check the version anymore. In upstream @@ -975,7 +983,12 @@ fi %if ( ! 0%{_for_fedora_koji_builds} ) %files regression-tests %{_prefix}/share/glusterfs/* -%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t +%exclude %{_datadir}/glusterfs/tests/basic/rpm.t +%exclude %{_datadir}/glusterfs/scripts/generate-gfid-file.sh +%exclude %{_datadir}/glusterfs/scripts/get-gfid.sh +%exclude %{_datadir}/glusterfs/scripts/gsync-sync-gfid +%exclude %{_datadir}/glusterfs/scripts/gsync-upgrade.sh +%exclude %{_datadir}/glusterfs/scripts/slave-upgrade.sh %endif %if ( 0%{!?_without_ocf:1} ) @@ -1059,6 +1072,9 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Sat Nov 29 2014 Lalatendu Mohanty 3.6.1-4 +- Fix build on el5 (upstream bug 1169004) + * Thu Nov 20 2014 Niels de Vos 3.6.1-3 - Fix version in gluster-api.pc (upstream bug 1166232) From a34c2f113aebf663553d0b68ee35021c0d797304 Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Fri, 19 Dec 2014 20:03:12 +0530 Subject: [PATCH 065/328] GlusterFS 3.6.2beta1 and Fixing #1169005 (upstream) Signed-off-by: Lalatendu Mohanty --- glusterfs.spec | 41 ++++++++++++----------------------------- sources | 2 +- 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f15c137..90e129c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -#%%global prereltag beta3 +%global prereltag beta1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -145,8 +145,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.6.1 -Release: 4%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.6.2 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -720,26 +720,6 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus install -p -m 0744 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster -%if ( 0%{?_without_georeplication:1} ) -rm -rf %{buildroot}%{_datadir}/glusterfs/scripts/get-gfid.sh -rm -rf %{buildroot}%{_datadir}/glusterfs/scripts/slave-upgrade.sh -rm -rf %{buildroot}%{_datadir}/glusterfs/scripts/gsync-upgrade.sh -rm -rf %{buildroot}%{_datadir}/glusterfs/scripts/generate-gfid-file.sh -rm -rf %{buildroot}%{_datadir}/glusterfs/scripts/gsync-sync-gfid -%endif - -## While introducing symbol versioning in libgfapi.so, the pkg-config version -## for gluster-api got reset to 0. This is causing users of pkg-config to be -## confused, they can not reliably check the version anymore. In upstream -## Gluster we have changed the version in gluster-api to 4.3.6.x so that -## existing checks for ">= 4" are still valid. -## -## Upstream bug 1166232, should get fixed in 3.6.2 and then this note + sed -## patching can get dropped from this .spec. -sed -i 's/^Version: 0.0.0/Version: 4.%{version}/' \ - %{buildroot}%{_libdir}/pkgconfig/glusterfs-api.pc - - %clean rm -rf %{buildroot} @@ -893,6 +873,7 @@ fi %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* +%dir %{_datadir}/glusterfs/scripts %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh @@ -982,13 +963,9 @@ fi %if ( ! 0%{_for_fedora_koji_builds} ) %files regression-tests -%{_prefix}/share/glusterfs/* +%{_prefix}/share/glusterfs/run-tests.sh +%{_prefix}/share/glusterfs/tests %exclude %{_datadir}/glusterfs/tests/basic/rpm.t -%exclude %{_datadir}/glusterfs/scripts/generate-gfid-file.sh -%exclude %{_datadir}/glusterfs/scripts/get-gfid.sh -%exclude %{_datadir}/glusterfs/scripts/gsync-sync-gfid -%exclude %{_datadir}/glusterfs/scripts/gsync-upgrade.sh -%exclude %{_datadir}/glusterfs/scripts/slave-upgrade.sh %endif %if ( 0%{!?_without_ocf:1} ) @@ -1072,6 +1049,12 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Fri Dec 19 2014 Lalatendu Mohanty 3.6.2beta1 +- GlusterFS 3.6.2beta1 + +* Fri Dec 12 2014 Niels de Vos +- do not package all /usr/share/glusterfs/* files in regression-tests (#1169005) + * Sat Nov 29 2014 Lalatendu Mohanty 3.6.1-4 - Fix build on el5 (upstream bug 1169004) diff --git a/sources b/sources index cd6b88b..1498541 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -ffc1c280fa4652124100a9b1c9ad5bb9 glusterfs-3.6.1.tar.gz +1b8027733586c646a060a096c82b9b4e glusterfs-3.6.2beta1.tar.gz From e2563ee9e31879f48693e5f6e35f6f9354b406a0 Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Thu, 15 Jan 2015 14:53:38 +0530 Subject: [PATCH 066/328] GlusterFS 3.6.2beta2 --- glusterfs.spec | 11 +++++++++-- sources | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 90e129c..cfe6f74 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta1 +%global prereltag beta2 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -146,7 +146,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.6.2 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1003,6 +1003,7 @@ fi %endif # binaries %{_sbindir}/glusterd +%{_sbindir}/glfsheal %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* @@ -1049,6 +1050,12 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Thu Jan 15 2015 Lalatendu Mohanty 3.6.2beta2 +- GlusterFS 3.6.2beta2 + +* Tue Jan 06 2015 Pranith Kumar Karampuri +- Adding glfsheal binary + * Fri Dec 19 2014 Lalatendu Mohanty 3.6.2beta1 - GlusterFS 3.6.2beta1 diff --git a/sources b/sources index 1498541..a5886e9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -1b8027733586c646a060a096c82b9b4e glusterfs-3.6.2beta1.tar.gz +080898b25cc0966025b700bd7d8c0314 glusterfs-3.6.2beta2.tar.gz From 56b2672b3dc54151e892c55dfa723500cfd346a3 Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Thu, 22 Jan 2015 17:58:01 +0530 Subject: [PATCH 067/328] GlusterFS 3.6.2 GA --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index cfe6f74..15ed72f 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta2 +#%%global prereltag beta2 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -146,7 +146,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.6.2 -Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1050,6 +1050,9 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Thu Jan 22 2015 Lalatendu Mohanty 3.6.2 +- GlusterFS 3.6.2 GA + * Thu Jan 15 2015 Lalatendu Mohanty 3.6.2beta2 - GlusterFS 3.6.2beta2 diff --git a/sources b/sources index a5886e9..e0a8d05 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -080898b25cc0966025b700bd7d8c0314 glusterfs-3.6.2beta2.tar.gz +7c02f166a1b080923b14794839e0e64e glusterfs-3.6.2.tar.gz From 4029a850a5864dfd5c02449153b57aa1cd05d732 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 28 Jan 2015 10:17:46 -0500 Subject: [PATCH 068/328] glusterfs-fuse Requires: attr, see BZ 1184626, 1184627 --- glusterfs.spec | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 15ed72f..3fa40d3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -330,6 +330,7 @@ Group: Applications/File BuildRequires: fuse-devel Requires: %{name} = %{version}-%{release} +Requires: attr Obsoletes: %{name}-client < %{version}-%{release} Provides: %{name}-client = %{version}-%{release} @@ -1050,16 +1051,19 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog -* Thu Jan 22 2015 Lalatendu Mohanty 3.6.2 +* Wed Jan 28 2015 Kaleb S. KEITHLEY +- glusterfs-fuse Requires: attr. See BZ 1184626, 1184627 + +* Thu Jan 22 2015 Lalatendu Mohanty 3.6.2-1 - GlusterFS 3.6.2 GA -* Thu Jan 15 2015 Lalatendu Mohanty 3.6.2beta2 +* Thu Jan 15 2015 Lalatendu Mohanty 3.6.2beta2-1 - GlusterFS 3.6.2beta2 * Tue Jan 06 2015 Pranith Kumar Karampuri - Adding glfsheal binary -* Fri Dec 19 2014 Lalatendu Mohanty 3.6.2beta1 +* Fri Dec 19 2014 Lalatendu Mohanty 3.6.2beta1-1 - GlusterFS 3.6.2beta1 * Fri Dec 12 2014 Niels de Vos From ed5e70dfbb654233637934ca98d6874104094229 Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Mon, 2 Feb 2015 22:41:18 +0100 Subject: [PATCH 069/328] GlusterFS 3.6.2-2 --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 3fa40d3..ae16924 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -146,7 +146,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.6.2 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1051,6 +1051,9 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Mon Feb 02 2015 Lalatendu Mohanty 3.6.2-2 +- GlusterFS 3.6.2-2 + * Wed Jan 28 2015 Kaleb S. KEITHLEY - glusterfs-fuse Requires: attr. See BZ 1184626, 1184627 From 0e459037d2dd9fab85224bf991eab4b1bb6f62ef Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 10 Feb 2015 10:07:15 -0500 Subject: [PATCH 070/328] Ownership of /usr/lib/python2.7/site-packages/gluster, BZ 1190832 - N.B. gfapi.py was removed in 3.6 (to resurface another day?) --- glusterfs.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index ae16924..55c31b7 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -880,8 +880,6 @@ fi %files api %exclude %{_libdir}/*.so -# Shared Python-GlusterFS files -%{python_sitelib}/gluster/__init__.* # libgfapi files %{_libdir}/libgfapi.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* @@ -912,7 +910,7 @@ fi # Glupy C shared library %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so # Glupy Python files -%{python_sitelib}/gluster/glupy.* +%{python_sitelib}/gluster # Don't expect a .egg-info file on EL5 %if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) %{python_sitelib}/glusterfs_glupy*.egg-info @@ -1051,6 +1049,10 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Tue Feb 10 2015 Kaleb S. KEITHLEY +- Ownership of /usr/lib/python2.7/site-packages/gluster, BZ 1190832 +- N.B. gfapi.py was removed in 3.6 (to resurface another day?) + * Mon Feb 02 2015 Lalatendu Mohanty 3.6.2-2 - GlusterFS 3.6.2-2 From 5dbed49fb35033fccf6a8f198d829f79386544a0 Mon Sep 17 00:00:00 2001 From: hchiramm Date: Fri, 13 Feb 2015 12:13:44 +0530 Subject: [PATCH 071/328] GlusterFS 3.6.3beta1 release. --- glusterfs.spec | 13 ++++++++++--- sources | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 55c31b7..e07905c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,6 +4,7 @@ # uncomment and add '%' to use the prereltag for pre-releases #%%global prereltag beta2 +%global prereltag beta1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -145,8 +146,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.6.2 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.6.3 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -419,7 +420,7 @@ Requires: %{name}-server = %{version}-%{release} ## thin provisioning support Requires: lvm2 >= 2.02.89 Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng -Requires: python attr dbench file git libacl-devel mock net-tools +Requires: python attr dbench file git libacl-devel net-tools Requires: nfs-utils xfsprogs yajl %description regression-tests @@ -1049,6 +1050,9 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog +* Thu Feb 12 2015 Humble Chirammal +- GlusterFS 3.6.3beta1 release. + * Tue Feb 10 2015 Kaleb S. KEITHLEY - Ownership of /usr/lib/python2.7/site-packages/gluster, BZ 1190832 - N.B. gfapi.py was removed in 3.6 (to resurface another day?) @@ -1056,6 +1060,9 @@ fi * Mon Feb 02 2015 Lalatendu Mohanty 3.6.2-2 - GlusterFS 3.6.2-2 +* Fri Jan 30 2015 Nandaja Varma 1033 +- remove checks for rpmbuild/mock from run-tests.sh (#178008) + * Wed Jan 28 2015 Kaleb S. KEITHLEY - glusterfs-fuse Requires: attr. See BZ 1184626, 1184627 diff --git a/sources b/sources index e0a8d05..a0b7bdc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7c02f166a1b080923b14794839e0e64e glusterfs-3.6.2.tar.gz +58a13a3fd360f9a5a89db8cbba339348 glusterfs-3.6.3beta1.tar.gz From 12a7daa1e0220d6e43acbf15cbb0a25152fe3fcb Mon Sep 17 00:00:00 2001 From: hchiramm Date: Wed, 1 Apr 2015 15:37:10 +0530 Subject: [PATCH 072/328] GlusterFS 3.6.3beta2 release. --- glusterfs.spec | 9 ++++++--- sources | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e07905c..9a207c1 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,7 +4,7 @@ # uncomment and add '%' to use the prereltag for pre-releases #%%global prereltag beta2 -%global prereltag beta1 +%global prereltag beta2 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -147,7 +147,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.6.3 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1050,7 +1050,10 @@ fi %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %changelog -* Thu Feb 12 2015 Humble Chirammal +* Wed Apr 1 2015 Humble Chirammal 3.6.3beta2 +- GlusterFS 3.6.3beta2 release. + +* Thu Feb 12 2015 Humble Chirammal 3.6.3beta1 - GlusterFS 3.6.3beta1 release. * Tue Feb 10 2015 Kaleb S. KEITHLEY diff --git a/sources b/sources index a0b7bdc..f2280f6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -58a13a3fd360f9a5a89db8cbba339348 glusterfs-3.6.3beta1.tar.gz +55697fd4be9e42b5dc560ea4f7abb089 glusterfs-3.6.3beta2.tar.gz From 6a783fef31b01266079a00ce382faa23611d72ec Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 20 Apr 2015 08:46:05 -0400 Subject: [PATCH 073/328] preliminary for 3.7.0alpha --- glusterfs.spec | 136 ++++++++++++++++++++++++++++++++++++------------- sources | 2 +- 2 files changed, 101 insertions(+), 37 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9a207c1..5cd3b1b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,12 +4,16 @@ # uncomment and add '%' to use the prereltag for pre-releases #%%global prereltag beta2 -%global prereltag beta2 +%global prereltag alpha0 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted ## +# if you wish to compile an rpm with cmocka unit testing... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka +%{?_with_cmocka:%global _with_cmocka --enable-cmocka} + # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma %{?_without_rdma:%global _without_rdma --disable-ibverbs} @@ -45,7 +49,7 @@ %{?_without_syslog:%global _without_syslog --disable-syslog} # disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount -# Fedora deprecated syslog, see +# Fedora deprecated syslog, see # https://fedoraproject.org/wiki/Changes/NoDefaultSyslog # (And what about RHEL7?) %if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} <= 6 ) @@ -77,6 +81,12 @@ %global _with_systemd true %endif +%if 0%{?_tmpfilesdir:1} +%define _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} +%else +%define _with_tmpfilesdir --without-tmpfilesdir +%endif + # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -146,8 +156,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.6.3 -Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.7.0 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -162,9 +172,6 @@ URL: http://www.gluster.org/docs/index.php/GlusterFS Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig -Source3: glusterfs-fuse.logrotate -Source4: glusterd.logrotate -Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source7: glusterfsd.service Source8: glusterfsd.init @@ -200,9 +207,15 @@ BuildRequires: bison flex BuildRequires: gcc make automake libtool BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel -BuildRequires: libaio-devel +BuildRequires: libaio-devel libacl-devel BuildRequires: python-devel BuildRequires: python-ctypes +BuildRequires: userspace-rcu-devel >= 0.7 +BuildRequires: libuuid-devel +BuildRequires: sqlite-devel +%if ( 0%{?_with_cmocka:1} ) +BuildRequires: libcmocka-devel >= 1.0.1 +%endif %if ( 0%{!?_without_systemtap:1} ) BuildRequires: systemtap-sdt-devel %endif @@ -219,6 +232,9 @@ BuildRequires: libattr-devel Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} +%if ( 0%{_for_fedora_koji_builds} ) +Obsoletes: %{name}-regression-tests +%endif Obsoletes: %{name}-ufo Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -237,7 +253,7 @@ gluster command line, libglusterfs and glusterfs translator modules common to both GlusterFS server and client framework. %package api -Summary: Clustered file-system api library +Summary: GlusterFS api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} # we provide the Python package/namespace 'gluster' @@ -347,6 +363,26 @@ is in user space and easily manageable. This package provides support to FUSE based clients. +%package ganesha +Summary: NFS-Ganesha configuration +Group: Applications/File + +Requires: %{name}-server = %{version}-%{release} +Requires: nfs-ganesha-gluster +Requires: pcs + +%description ganesha +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the configuration and related files for using +NFS-Ganesha as the NFS server using GlusterFS + %if ( 0%{!?_without_georeplication:1} ) %package geo-replication Summary: GlusterFS Geo-replication @@ -395,7 +431,7 @@ This package provides the base GlusterFS libraries Summary: GlusterFS rdma support for ib-verbs Group: Applications/File BuildRequires: libibverbs-devel -BuildRequires: librdmacm-devel +BuildRequires: librdmacm-devel >= 1.0.15 Requires: %{name} = %{version}-%{release} %description rdma @@ -443,7 +479,7 @@ Group: System Environment/Base Group: Productivity/Clustering/HA %endif # for glusterd -Requires: glusterfs-server +Requires: %{name}-server # depending on the distribution, we need pacemaker or resource-agents Requires: %{_prefix}/lib/ocf/resource.d @@ -501,6 +537,7 @@ This package provides the glusterfs server daemon. # there is no need to run ./autogen or have a BuildRequires for automake. [ -e 'install-sh' -o -e 'install.sh' ] || ./autogen.sh %configure \ + %{?_with_tmpfilesdir} \ %{?_without_rdma} \ %{?_without_epoll} \ %{?_without_fusermount} \ @@ -509,7 +546,8 @@ This package provides the glusterfs server daemon. %{?_without_syslog} \ %{?_without_bd} \ %{?_without_qemu_block} \ - %{?_without_systemtap} + %{?_without_systemtap} \ + %{?_with_cmocka} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -525,6 +563,9 @@ pushd xlators/features/glupy/src FLAGS="$RPM_OPT_FLAGS" python setup.py build popd +%check +make check + %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} @@ -614,21 +655,8 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %_init_install %{glusterfsd_service} glusterfsd %endif -%if ( 0%{_for_fedora_koji_builds} ) -# Client logrotate entry -install -D -p -m 0644 %{SOURCE3} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse - -# Server logrotate entry -install -D -p -m 0644 %{SOURCE4} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterd -# Legacy server logrotate entry -install -D -p -m 0644 %{SOURCE5} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd -%else install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs -%endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts @@ -697,10 +725,6 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%if ( 0%{!?_without_georeplication:1} ) -install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -%endif %{__install} -p -m 0744 extras/hook-scripts/start/post/*.sh \ %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post %{__install} -p -m 0744 extras/hook-scripts/stop/pre/*.sh \ @@ -758,6 +782,14 @@ fi # Legacy server %_init_enable glusterd %_init_enable glusterfsd +# ".cmd_log_history" is renamed to "cmd_history.log" in GlusterFS-3.7 . +# While upgrading glusterfs-server package form GlusterFS version <= 3.6 to +# GlusterFS version 3.7, ".cmd_log_history" should be renamed to +# "cmd_history.log" to retain cli command history contents. +if [ -f %{_localstatedir}/log/glusterfs/.cmd_log_history ]; then + mv %{_localstatedir}/log/glusterfs/.cmd_log_history \ + %{_localstatedir}/log/glusterfs/cmd_history.log +fi # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them @@ -843,8 +875,8 @@ fi ## All %files should be placed here and keep them sorted ## %files -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS -%config(noreplace) %{_sysconfdir}/logrotate.d/* +%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README.md THANKS +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs %config(noreplace) %{_sysconfdir}/sysconfig/* %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) @@ -857,6 +889,9 @@ fi %exclude %{_mandir}/man8/gluster.8* %dir %{_localstatedir}/log/glusterfs %dir %{_localstatedir}/run/gluster +%if 0%{?_tmpfilesdir:1} +%{_tmpfilesdir}/gluster.conf +%endif %dir %{_sharedstatedir}/glusterd %if ( 0%{!?_without_rdma:1} ) %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* @@ -888,6 +923,7 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc %{_libdir}/pkgconfig/libgfchangelog.pc +%{_libdir}/pkgconfig/libgfdb.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* @@ -929,15 +965,21 @@ fi %endif %endif +%files ganesha +%{_sysconfdir}/ganesha/* +%{_libexecdir}/ganesha/* +%{_prefix}/lib/ocf/resource.d/heartbeat/* + %if ( 0%{!?_without_georeplication:1} ) %files geo-replication -%{_sysconfdir}/logrotate.d/glusterfs-georep +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* %{_libexecdir}/glusterfs/gverify.sh %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh %{_libexecdir}/glusterfs/peer_add_secret_pub %{_libexecdir}/glusterfs/peer_gsec_create +%{_libexecdir}/glusterfs/peer_mountbroker %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication %dir %{_sharedstatedir}/glusterd/hooks %dir %{_sharedstatedir}/glusterd/hooks/1 @@ -950,11 +992,17 @@ fi %{_datadir}/glusterfs/scripts/generate-gfid-file.sh %{_datadir}/glusterfs/scripts/gsync-sync-gfid %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%{_libexecdir}/glusterfs/gfind_missing_files +%{_sbindir}/gfind_missing_files +%exclude %{_libexecdir}/glusterfs/gfind_missing_files/gfid_to_path.pyo +%exclude %{_libexecdir}/glusterfs/gfind_missing_files/gfid_to_path.pyc %endif %files libs %{_libdir}/*.so.* %exclude %{_libdir}/libgfapi.* +# libgfdb is only needed server-side +%exclude %{_libdir}/libgfdb.* %if ( 0%{!?_without_rdma:1} ) %files rdma @@ -976,16 +1024,12 @@ fi %files server %doc extras/clear_xattrs.sh -%if ( 0%{_for_fedora_koji_builds} ) -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd -%endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs %dir %{_sharedstatedir}/glusterd/groups %config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd %endif %config %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh @@ -1009,7 +1053,13 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +%{_libdir}/libgfdb.so.* %{_sharedstatedir}/glusterd + +#snap_scheduler +%{_sbindir}/snap_scheduler.py +%{_sbindir}/gcron.py + #hookscripts %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 @@ -1049,7 +1099,21 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid +# Incrementalapi +%{_libexecdir}/glusterfs/glusterfind +%{_bindir}/glusterfind +%exclude %{_libexecdir}/glusterfs/glusterfind/brickfind.pyc +%exclude %{_libexecdir}/glusterfs/glusterfind/changelog.pyc +%exclude %{_libexecdir}/glusterfs/glusterfind/nodecleanup.pyc +%exclude %{_libexecdir}/glusterfs/glusterfind/brickfind.pyo +%exclude %{_libexecdir}/glusterfs/glusterfind/changelog.pyo +%exclude %{_libexecdir}/glusterfs/glusterfind/nodecleanup.pyo + + %changelog +* Wed Apr 15 2015 Kaleb S. KEITHLEY +- preliminary for 3.7.0alpha + * Wed Apr 1 2015 Humble Chirammal 3.6.3beta2 - GlusterFS 3.6.3beta2 release. diff --git a/sources b/sources index f2280f6..4861c40 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -55697fd4be9e42b5dc560ea4f7abb089 glusterfs-3.6.3beta2.tar.gz +65e5f58288b0e4ff9384f0aa5baeba7e glusterfs-3.7.0alpha0.tar.gz From 2b56692727690f7e2211e80f80ce26e413d9e7a5 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 24 Apr 2015 11:20:35 -0400 Subject: [PATCH 074/328] GlusterFS 3.6.3 GA --- glusterfs.spec | 146 +++++++++++++------------------------------------ sources | 2 +- 2 files changed, 40 insertions(+), 108 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5cd3b1b..ea00555 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,16 +4,11 @@ # uncomment and add '%' to use the prereltag for pre-releases #%%global prereltag beta2 -%global prereltag alpha0 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted ## -# if you wish to compile an rpm with cmocka unit testing... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka -%{?_with_cmocka:%global _with_cmocka --enable-cmocka} - # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma %{?_without_rdma:%global _without_rdma --disable-ibverbs} @@ -49,7 +44,7 @@ %{?_without_syslog:%global _without_syslog --disable-syslog} # disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount -# Fedora deprecated syslog, see +# Fedora deprecated syslog, see # https://fedoraproject.org/wiki/Changes/NoDefaultSyslog # (And what about RHEL7?) %if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} <= 6 ) @@ -81,12 +76,6 @@ %global _with_systemd true %endif -%if 0%{?_tmpfilesdir:1} -%define _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} -%else -%define _with_tmpfilesdir --without-tmpfilesdir -%endif - # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -156,8 +145,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.0 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.6.3 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -172,6 +161,9 @@ URL: http://www.gluster.org/docs/index.php/GlusterFS Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig +Source3: glusterfs-fuse.logrotate +Source4: glusterd.logrotate +Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source7: glusterfsd.service Source8: glusterfsd.init @@ -207,15 +199,9 @@ BuildRequires: bison flex BuildRequires: gcc make automake libtool BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel -BuildRequires: libaio-devel libacl-devel +BuildRequires: libaio-devel BuildRequires: python-devel BuildRequires: python-ctypes -BuildRequires: userspace-rcu-devel >= 0.7 -BuildRequires: libuuid-devel -BuildRequires: sqlite-devel -%if ( 0%{?_with_cmocka:1} ) -BuildRequires: libcmocka-devel >= 1.0.1 -%endif %if ( 0%{!?_without_systemtap:1} ) BuildRequires: systemtap-sdt-devel %endif @@ -232,10 +218,10 @@ BuildRequires: libattr-devel Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} +Obsoletes: %{name}-ufo %if ( 0%{_for_fedora_koji_builds} ) Obsoletes: %{name}-regression-tests %endif -Obsoletes: %{name}-ufo Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -253,7 +239,7 @@ gluster command line, libglusterfs and glusterfs translator modules common to both GlusterFS server and client framework. %package api -Summary: GlusterFS api library +Summary: Clustered file-system api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} # we provide the Python package/namespace 'gluster' @@ -363,26 +349,6 @@ is in user space and easily manageable. This package provides support to FUSE based clients. -%package ganesha -Summary: NFS-Ganesha configuration -Group: Applications/File - -Requires: %{name}-server = %{version}-%{release} -Requires: nfs-ganesha-gluster -Requires: pcs - -%description ganesha -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides the configuration and related files for using -NFS-Ganesha as the NFS server using GlusterFS - %if ( 0%{!?_without_georeplication:1} ) %package geo-replication Summary: GlusterFS Geo-replication @@ -431,7 +397,7 @@ This package provides the base GlusterFS libraries Summary: GlusterFS rdma support for ib-verbs Group: Applications/File BuildRequires: libibverbs-devel -BuildRequires: librdmacm-devel >= 1.0.15 +BuildRequires: librdmacm-devel Requires: %{name} = %{version}-%{release} %description rdma @@ -456,7 +422,7 @@ Requires: %{name}-server = %{version}-%{release} ## thin provisioning support Requires: lvm2 >= 2.02.89 Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng -Requires: python attr dbench file git libacl-devel net-tools +Requires: python attr dbench file git libacl-devel mock net-tools Requires: nfs-utils xfsprogs yajl %description regression-tests @@ -479,7 +445,7 @@ Group: System Environment/Base Group: Productivity/Clustering/HA %endif # for glusterd -Requires: %{name}-server +Requires: glusterfs-server # depending on the distribution, we need pacemaker or resource-agents Requires: %{_prefix}/lib/ocf/resource.d @@ -537,7 +503,6 @@ This package provides the glusterfs server daemon. # there is no need to run ./autogen or have a BuildRequires for automake. [ -e 'install-sh' -o -e 'install.sh' ] || ./autogen.sh %configure \ - %{?_with_tmpfilesdir} \ %{?_without_rdma} \ %{?_without_epoll} \ %{?_without_fusermount} \ @@ -546,8 +511,7 @@ This package provides the glusterfs server daemon. %{?_without_syslog} \ %{?_without_bd} \ %{?_without_qemu_block} \ - %{?_without_systemtap} \ - %{?_with_cmocka} + %{?_without_systemtap} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -563,9 +527,6 @@ pushd xlators/features/glupy/src FLAGS="$RPM_OPT_FLAGS" python setup.py build popd -%check -make check - %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} @@ -655,8 +616,21 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %_init_install %{glusterfsd_service} glusterfsd %endif +%if ( 0%{_for_fedora_koji_builds} ) +# Client logrotate entry +install -D -p -m 0644 %{SOURCE3} \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse + +# Server logrotate entry +install -D -p -m 0644 %{SOURCE4} \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterd +# Legacy server logrotate entry +install -D -p -m 0644 %{SOURCE5} \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd +%else install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs +%endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts @@ -725,6 +699,10 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid +%if ( 0%{!?_without_georeplication:1} ) +install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ + %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +%endif %{__install} -p -m 0744 extras/hook-scripts/start/post/*.sh \ %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post %{__install} -p -m 0744 extras/hook-scripts/stop/pre/*.sh \ @@ -782,14 +760,6 @@ fi # Legacy server %_init_enable glusterd %_init_enable glusterfsd -# ".cmd_log_history" is renamed to "cmd_history.log" in GlusterFS-3.7 . -# While upgrading glusterfs-server package form GlusterFS version <= 3.6 to -# GlusterFS version 3.7, ".cmd_log_history" should be renamed to -# "cmd_history.log" to retain cli command history contents. -if [ -f %{_localstatedir}/log/glusterfs/.cmd_log_history ]; then - mv %{_localstatedir}/log/glusterfs/.cmd_log_history \ - %{_localstatedir}/log/glusterfs/cmd_history.log -fi # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them @@ -875,8 +845,8 @@ fi ## All %files should be placed here and keep them sorted ## %files -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README.md THANKS -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs +%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS +%config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) @@ -889,9 +859,6 @@ fi %exclude %{_mandir}/man8/gluster.8* %dir %{_localstatedir}/log/glusterfs %dir %{_localstatedir}/run/gluster -%if 0%{?_tmpfilesdir:1} -%{_tmpfilesdir}/gluster.conf -%endif %dir %{_sharedstatedir}/glusterd %if ( 0%{!?_without_rdma:1} ) %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* @@ -923,7 +890,6 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc %{_libdir}/pkgconfig/libgfchangelog.pc -%{_libdir}/pkgconfig/libgfdb.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* @@ -965,21 +931,15 @@ fi %endif %endif -%files ganesha -%{_sysconfdir}/ganesha/* -%{_libexecdir}/ganesha/* -%{_prefix}/lib/ocf/resource.d/heartbeat/* - %if ( 0%{!?_without_georeplication:1} ) %files geo-replication -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep +%{_sysconfdir}/logrotate.d/glusterfs-georep %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* %{_libexecdir}/glusterfs/gverify.sh %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh %{_libexecdir}/glusterfs/peer_add_secret_pub %{_libexecdir}/glusterfs/peer_gsec_create -%{_libexecdir}/glusterfs/peer_mountbroker %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication %dir %{_sharedstatedir}/glusterd/hooks %dir %{_sharedstatedir}/glusterd/hooks/1 @@ -992,17 +952,11 @@ fi %{_datadir}/glusterfs/scripts/generate-gfid-file.sh %{_datadir}/glusterfs/scripts/gsync-sync-gfid %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf -%{_libexecdir}/glusterfs/gfind_missing_files -%{_sbindir}/gfind_missing_files -%exclude %{_libexecdir}/glusterfs/gfind_missing_files/gfid_to_path.pyo -%exclude %{_libexecdir}/glusterfs/gfind_missing_files/gfid_to_path.pyc %endif %files libs %{_libdir}/*.so.* %exclude %{_libdir}/libgfapi.* -# libgfdb is only needed server-side -%exclude %{_libdir}/libgfdb.* %if ( 0%{!?_without_rdma:1} ) %files rdma @@ -1024,12 +978,16 @@ fi %files server %doc extras/clear_xattrs.sh +%if ( 0%{_for_fedora_koji_builds} ) +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd +%endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs %dir %{_sharedstatedir}/glusterd/groups %config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd %endif %config %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh @@ -1053,13 +1011,7 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -%{_libdir}/libgfdb.so.* %{_sharedstatedir}/glusterd - -#snap_scheduler -%{_sbindir}/snap_scheduler.py -%{_sbindir}/gcron.py - #hookscripts %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 @@ -1099,26 +1051,9 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid -# Incrementalapi -%{_libexecdir}/glusterfs/glusterfind -%{_bindir}/glusterfind -%exclude %{_libexecdir}/glusterfs/glusterfind/brickfind.pyc -%exclude %{_libexecdir}/glusterfs/glusterfind/changelog.pyc -%exclude %{_libexecdir}/glusterfs/glusterfind/nodecleanup.pyc -%exclude %{_libexecdir}/glusterfs/glusterfind/brickfind.pyo -%exclude %{_libexecdir}/glusterfs/glusterfind/changelog.pyo -%exclude %{_libexecdir}/glusterfs/glusterfind/nodecleanup.pyo - - %changelog -* Wed Apr 15 2015 Kaleb S. KEITHLEY -- preliminary for 3.7.0alpha - -* Wed Apr 1 2015 Humble Chirammal 3.6.3beta2 -- GlusterFS 3.6.3beta2 release. - -* Thu Feb 12 2015 Humble Chirammal 3.6.3beta1 -- GlusterFS 3.6.3beta1 release. +* Wed Apr 22 2015 Kaleb S. KEITHLEY 3.6.3-1 +- GlusterFS 3.6.3 GA * Tue Feb 10 2015 Kaleb S. KEITHLEY - Ownership of /usr/lib/python2.7/site-packages/gluster, BZ 1190832 @@ -1127,9 +1062,6 @@ fi * Mon Feb 02 2015 Lalatendu Mohanty 3.6.2-2 - GlusterFS 3.6.2-2 -* Fri Jan 30 2015 Nandaja Varma 1033 -- remove checks for rpmbuild/mock from run-tests.sh (#178008) - * Wed Jan 28 2015 Kaleb S. KEITHLEY - glusterfs-fuse Requires: attr. See BZ 1184626, 1184627 diff --git a/sources b/sources index 4861c40..78d7600 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -65e5f58288b0e4ff9384f0aa5baeba7e glusterfs-3.7.0alpha0.tar.gz +057c2f26bfc4c36aaa9f358db63f0c28 glusterfs-3.6.3.tar.gz From dab0202469c53bd21adec45aba1c151fc1454cf6 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 29 Apr 2015 09:00:51 -0400 Subject: [PATCH 075/328] GlusterFS 3.7.0beta1 --- glusterfs.spec | 149 ++++++++++++++++++++++++++++++++++++------------- sources | 2 +- 2 files changed, 112 insertions(+), 39 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index ea00555..3af2202 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,12 +3,16 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -#%%global prereltag beta2 +%global prereltag beta1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted ## +# if you wish to compile an rpm with cmocka unit testing... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka +%{?_with_cmocka:%global _with_cmocka --enable-cmocka} + # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma %{?_without_rdma:%global _without_rdma --disable-ibverbs} @@ -44,7 +48,7 @@ %{?_without_syslog:%global _without_syslog --disable-syslog} # disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount -# Fedora deprecated syslog, see +# Fedora deprecated syslog, see # https://fedoraproject.org/wiki/Changes/NoDefaultSyslog # (And what about RHEL7?) %if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} <= 6 ) @@ -76,6 +80,12 @@ %global _with_systemd true %endif +%if 0%{?_tmpfilesdir:1} +%define _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} +%else +%define _with_tmpfilesdir --without-tmpfilesdir +%endif + # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -145,8 +155,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.6.3 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.7.0 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -161,9 +171,6 @@ URL: http://www.gluster.org/docs/index.php/GlusterFS Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig -Source3: glusterfs-fuse.logrotate -Source4: glusterd.logrotate -Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source7: glusterfsd.service Source8: glusterfsd.init @@ -199,9 +206,15 @@ BuildRequires: bison flex BuildRequires: gcc make automake libtool BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel -BuildRequires: libaio-devel +BuildRequires: libaio-devel libacl-devel BuildRequires: python-devel BuildRequires: python-ctypes +BuildRequires: userspace-rcu-devel >= 0.7 +BuildRequires: libuuid-devel +BuildRequires: sqlite-devel +%if ( 0%{?_with_cmocka:1} ) +BuildRequires: libcmocka-devel >= 1.0.1 +%endif %if ( 0%{!?_without_systemtap:1} ) BuildRequires: systemtap-sdt-devel %endif @@ -218,10 +231,10 @@ BuildRequires: libattr-devel Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} -Obsoletes: %{name}-ufo %if ( 0%{_for_fedora_koji_builds} ) Obsoletes: %{name}-regression-tests %endif +Obsoletes: %{name}-ufo Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -239,7 +252,7 @@ gluster command line, libglusterfs and glusterfs translator modules common to both GlusterFS server and client framework. %package api -Summary: Clustered file-system api library +Summary: GlusterFS api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} # we provide the Python package/namespace 'gluster' @@ -349,6 +362,26 @@ is in user space and easily manageable. This package provides support to FUSE based clients. +%package ganesha +Summary: NFS-Ganesha configuration +Group: Applications/File + +Requires: %{name}-server = %{version}-%{release} +Requires: nfs-ganesha-gluster +Requires: pcs + +%description ganesha +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the configuration and related files for using +NFS-Ganesha as the NFS server using GlusterFS + %if ( 0%{!?_without_georeplication:1} ) %package geo-replication Summary: GlusterFS Geo-replication @@ -397,7 +430,7 @@ This package provides the base GlusterFS libraries Summary: GlusterFS rdma support for ib-verbs Group: Applications/File BuildRequires: libibverbs-devel -BuildRequires: librdmacm-devel +BuildRequires: librdmacm-devel >= 1.0.15 Requires: %{name} = %{version}-%{release} %description rdma @@ -422,7 +455,7 @@ Requires: %{name}-server = %{version}-%{release} ## thin provisioning support Requires: lvm2 >= 2.02.89 Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng -Requires: python attr dbench file git libacl-devel mock net-tools +Requires: python attr dbench file git libacl-devel net-tools Requires: nfs-utils xfsprogs yajl %description regression-tests @@ -445,7 +478,7 @@ Group: System Environment/Base Group: Productivity/Clustering/HA %endif # for glusterd -Requires: glusterfs-server +Requires: %{name}-server # depending on the distribution, we need pacemaker or resource-agents Requires: %{_prefix}/lib/ocf/resource.d @@ -503,6 +536,7 @@ This package provides the glusterfs server daemon. # there is no need to run ./autogen or have a BuildRequires for automake. [ -e 'install-sh' -o -e 'install.sh' ] || ./autogen.sh %configure \ + %{?_with_tmpfilesdir} \ %{?_without_rdma} \ %{?_without_epoll} \ %{?_without_fusermount} \ @@ -511,7 +545,8 @@ This package provides the glusterfs server daemon. %{?_without_syslog} \ %{?_without_bd} \ %{?_without_qemu_block} \ - %{?_without_systemtap} + %{?_without_systemtap} \ + %{?_with_cmocka} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -527,6 +562,9 @@ pushd xlators/features/glupy/src FLAGS="$RPM_OPT_FLAGS" python setup.py build popd +%check +make check + %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} @@ -616,21 +654,8 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %_init_install %{glusterfsd_service} glusterfsd %endif -%if ( 0%{_for_fedora_koji_builds} ) -# Client logrotate entry -install -D -p -m 0644 %{SOURCE3} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse - -# Server logrotate entry -install -D -p -m 0644 %{SOURCE4} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterd -# Legacy server logrotate entry -install -D -p -m 0644 %{SOURCE5} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd -%else install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs -%endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts @@ -699,10 +724,6 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%if ( 0%{!?_without_georeplication:1} ) -install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -%endif %{__install} -p -m 0744 extras/hook-scripts/start/post/*.sh \ %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post %{__install} -p -m 0744 extras/hook-scripts/stop/pre/*.sh \ @@ -760,6 +781,14 @@ fi # Legacy server %_init_enable glusterd %_init_enable glusterfsd +# ".cmd_log_history" is renamed to "cmd_history.log" in GlusterFS-3.7 . +# While upgrading glusterfs-server package form GlusterFS version <= 3.6 to +# GlusterFS version 3.7, ".cmd_log_history" should be renamed to +# "cmd_history.log" to retain cli command history contents. +if [ -f %{_localstatedir}/log/glusterfs/.cmd_log_history ]; then + mv %{_localstatedir}/log/glusterfs/.cmd_log_history \ + %{_localstatedir}/log/glusterfs/cmd_history.log +fi # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them @@ -845,8 +874,8 @@ fi ## All %files should be placed here and keep them sorted ## %files -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS -%config(noreplace) %{_sysconfdir}/logrotate.d/* +%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README.md THANKS +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs %config(noreplace) %{_sysconfdir}/sysconfig/* %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) @@ -859,6 +888,9 @@ fi %exclude %{_mandir}/man8/gluster.8* %dir %{_localstatedir}/log/glusterfs %dir %{_localstatedir}/run/gluster +%if 0%{?_tmpfilesdir:1} +%{_tmpfilesdir}/gluster.conf +%endif %dir %{_sharedstatedir}/glusterd %if ( 0%{!?_without_rdma:1} ) %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* @@ -890,6 +922,7 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc %{_libdir}/pkgconfig/libgfchangelog.pc +%{_libdir}/pkgconfig/libgfdb.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* @@ -931,15 +964,21 @@ fi %endif %endif +%files ganesha +%{_sysconfdir}/ganesha/* +%{_libexecdir}/ganesha/* +%{_prefix}/lib/ocf/resource.d/heartbeat/* + %if ( 0%{!?_without_georeplication:1} ) %files geo-replication -%{_sysconfdir}/logrotate.d/glusterfs-georep +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* %{_libexecdir}/glusterfs/gverify.sh %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh %{_libexecdir}/glusterfs/peer_add_secret_pub %{_libexecdir}/glusterfs/peer_gsec_create +%{_libexecdir}/glusterfs/peer_mountbroker %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication %dir %{_sharedstatedir}/glusterd/hooks %dir %{_sharedstatedir}/glusterd/hooks/1 @@ -952,11 +991,17 @@ fi %{_datadir}/glusterfs/scripts/generate-gfid-file.sh %{_datadir}/glusterfs/scripts/gsync-sync-gfid %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%{_libexecdir}/glusterfs/gfind_missing_files +%{_sbindir}/gfind_missing_files +%exclude %{_libexecdir}/glusterfs/gfind_missing_files/gfid_to_path.pyo +%exclude %{_libexecdir}/glusterfs/gfind_missing_files/gfid_to_path.pyc %endif %files libs %{_libdir}/*.so.* %exclude %{_libdir}/libgfapi.* +# libgfdb is only needed server-side +%exclude %{_libdir}/libgfdb.* %if ( 0%{!?_without_rdma:1} ) %files rdma @@ -978,16 +1023,12 @@ fi %files server %doc extras/clear_xattrs.sh -%if ( 0%{_for_fedora_koji_builds} ) -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd -%endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs %dir %{_sharedstatedir}/glusterd/groups %config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd %endif %config %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh @@ -1011,7 +1052,13 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +%{_libdir}/libgfdb.so.* %{_sharedstatedir}/glusterd + +#snap_scheduler +%{_sbindir}/snap_scheduler.py +%{_sbindir}/gcron.py + #hookscripts %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 @@ -1051,10 +1098,33 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid +# Incrementalapi +%{_libexecdir}/glusterfs/glusterfind +%{_bindir}/glusterfind +%exclude %{_libexecdir}/glusterfs/glusterfind/brickfind.pyc +%exclude %{_libexecdir}/glusterfs/glusterfind/changelog.pyc +%exclude %{_libexecdir}/glusterfs/glusterfind/nodecleanup.pyc +%exclude %{_libexecdir}/glusterfs/glusterfind/brickfind.pyo +%exclude %{_libexecdir}/glusterfs/glusterfind/changelog.pyo +%exclude %{_libexecdir}/glusterfs/glusterfind/nodecleanup.pyo + + %changelog +* Wed Apr 29 2015 Kaleb S. KEITHLEY 3.7.0-0.1beta1 +- GlusterFS 3.7.0beta1 + * Wed Apr 22 2015 Kaleb S. KEITHLEY 3.6.3-1 - GlusterFS 3.6.3 GA +* Wed Apr 15 2015 Kaleb S. KEITHLEY +- preliminary for 3.7.0alpha + +* Wed Apr 1 2015 Humble Chirammal 3.6.3beta2 +- GlusterFS 3.6.3beta2 release. + +* Thu Feb 12 2015 Humble Chirammal 3.6.3beta1 +- GlusterFS 3.6.3beta1 release. + * Tue Feb 10 2015 Kaleb S. KEITHLEY - Ownership of /usr/lib/python2.7/site-packages/gluster, BZ 1190832 - N.B. gfapi.py was removed in 3.6 (to resurface another day?) @@ -1062,6 +1132,9 @@ fi * Mon Feb 02 2015 Lalatendu Mohanty 3.6.2-2 - GlusterFS 3.6.2-2 +* Fri Jan 30 2015 Nandaja Varma 1033 +- remove checks for rpmbuild/mock from run-tests.sh (#178008) + * Wed Jan 28 2015 Kaleb S. KEITHLEY - glusterfs-fuse Requires: attr. See BZ 1184626, 1184627 diff --git a/sources b/sources index 78d7600..2931980 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -057c2f26bfc4c36aaa9f358db63f0c28 glusterfs-3.6.3.tar.gz +a12d43b71d8b815b791bc1e33de3533e glusterfs-3.7.0beta1.tar.gz From b6a0a8610636e6d0406c43d83c1b547a896bed96 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 5 May 2015 08:19:31 -0400 Subject: [PATCH 076/328] GlusterFS 3.7.0beta1, BZ 1218359 --- glusterfs.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 3af2202..f0b3992 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -156,7 +156,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.0 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -274,6 +274,7 @@ Summary: Development Libraries Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: %{name}-devel = %{version}-%{release} +Requires: libacl-devel %description api-devel GlusterFS is a distributed file-system capable of scaling to several @@ -1110,6 +1111,9 @@ fi %changelog +* Tue May 5 2015 Kaleb S. KEITHLEY 3.7.0-0.2beta1 +- GlusterFS 3.7.0beta1, BZ 1218359 + * Wed Apr 29 2015 Kaleb S. KEITHLEY 3.7.0-0.1beta1 - GlusterFS 3.7.0beta1 From 3d7b48d76e2ac97cd3c7b5c581da854301fc79f6 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 5 May 2015 09:19:39 -0400 Subject: [PATCH 077/328] GlusterFS 3.7.0beta1, BZ 1218442 --- glusterfs.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index f0b3992..4b89fe1 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -96,7 +96,11 @@ %endif %if ( 0%{?_with_systemd:1} ) +%if ( 0%{_for_fedora_koji_builds} ) +%define _init_enable() /bin/true ; +%else %define _init_enable() /bin/systemctl enable %1.service ; +%endif %define _init_disable() /bin/systemctl disable %1.service ; %define _init_restart() /bin/systemctl try-restart %1.service ; %define _init_start() /bin/systemctl start %1.service ; @@ -156,7 +160,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.0 -Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1111,6 +1115,9 @@ fi %changelog +* Tue May 5 2015 Kaleb S. KEITHLEY 3.7.0-0.3beta1 +- GlusterFS 3.7.0beta1, BZ 1218442 + * Tue May 5 2015 Kaleb S. KEITHLEY 3.7.0-0.2beta1 - GlusterFS 3.7.0beta1, BZ 1218359 From 844877fb35123c90c88ea9120d6e55f2a2fd2e4d Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 8 May 2015 08:17:24 -0400 Subject: [PATCH 078/328] GlusterFS 3.7.0beta1, BZ 1195947, 1218440 --- glusterfs.spec | 162 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 116 insertions(+), 46 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4b89fe1..584798d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -160,7 +160,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.0 -Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.4%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -190,19 +190,9 @@ BuildRequires: python-simplejson %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE7}} -%endif -BuildRequires: systemd-units -Requires(post): systemd-units -Requires(preun): systemd-units -Requires(postun): systemd-units %else -%if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE8}} %endif -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/service -Requires(preun): /sbin/chkconfig -Requires(postun): /sbin/service %endif Requires: %{name}-libs = %{version}-%{release} @@ -251,14 +241,14 @@ terms of features and extensibility. It borrows a powerful concept called Translators from GNU Hurd kernel. Much of the code in GlusterFS is in user space and easily manageable. -This package includes the glusterfs binary, the glusterfsd daemon and the -gluster command line, libglusterfs and glusterfs translator modules common to -both GlusterFS server and client framework. +This package includes the libglusterfs and glusterfs translator modules +common to both GlusterFS server and client framework. %package api Summary: GlusterFS api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} +Requires: %{name}-client-xlators = %{version}-%{release} # we provide the Python package/namespace 'gluster' Provides: python-gluster = %{version}-%{release} @@ -351,6 +341,7 @@ Group: Applications/File BuildRequires: fuse-devel Requires: %{name} = %{version}-%{release} +Requires: %{name}-client-xlators = %{version}-%{release} Requires: attr Obsoletes: %{name}-client < %{version}-%{release} @@ -365,7 +356,8 @@ terms of features and extensibility. It borrows a powerful concept called Translators from GNU Hurd kernel. Much of the code in GlusterFS is in user space and easily manageable. -This package provides support to FUSE based clients. +This package provides support to FUSE based clients and includes the +glusterfsd and glusterfs binaries. %package ganesha Summary: NFS-Ganesha configuration @@ -505,14 +497,26 @@ like Pacemaker. Summary: Clustered file-system server Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} -Requires: %{name}-cli = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} +Requires: %{name}-cli = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} +Requires: %{name}-client-xlators = %{version}-%{release} # psmisc for killall, lvm2 for snapshot, and nfs-utils and # and rpcbind/portmap for gnfs server Requires: psmisc Requires: lvm2 Requires: nfs-utils +%if ( 0%{?_with_systemd:1} ) +BuildRequires: systemd-units +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +%else +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/service +Requires(preun): /sbin/chkconfig +Requires(postun): /sbin/service +%endif %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) Requires: rpcbind %else @@ -533,6 +537,23 @@ is in user space and easily manageable. This package provides the glusterfs server daemon. +%package client-xlators +Summary: GlusterFS client-side translators +Group: Applications/File + +Requires: %{name}-fuse = %{version}-%{release} + +%description client-xlators +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the translators needed on any GlusterFS client. + %prep %setup -q -n %{name}-%{version}%{?prereltag} @@ -876,53 +897,61 @@ fi /sbin/ldconfig ##----------------------------------------------------------------------------- -## All %files should be placed here and keep them sorted +## All %files should be placed here and keep them sorted by groups ## %files %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README.md THANKS -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs -%config(noreplace) %{_sysconfdir}/sysconfig/* %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %{_sysconfdir}/rsyslog.d/gluster.conf.example %endif %endif -%{_libdir}/glusterfs -%{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* %exclude %{_mandir}/man8/gluster.8* %dir %{_localstatedir}/log/glusterfs -%dir %{_localstatedir}/run/gluster -%if 0%{?_tmpfilesdir:1} -%{_tmpfilesdir}/gluster.conf -%endif -%dir %{_sharedstatedir}/glusterd %if ( 0%{!?_without_rdma:1} ) %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif -# server-side, etc., xlators in other RPMs -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -# Glupy files are in the -extra-xlators package -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy* -# sample xlators not generally used or usable -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* %dir %{_datadir}/glusterfs/scripts %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh +# xlators that are needed on the client- and on the server-side +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/auth +%{_libdir}/glusterfs/%{version}%{?prereltag}/auth/addr.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/auth/login.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport +%{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/socket.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/error-gen.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/crypt.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-client.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/worm.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/meta.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-cache.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-threads.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/md-cache.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/open-behind.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/quick-read.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/read-ahead.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/readdir-ahead.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so %files api %exclude %{_libdir}/*.so # libgfapi files %{_libdir}/libgfapi.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api.so %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc @@ -947,9 +976,24 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* +%files client-xlators +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/pump.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/ganesha.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/qemu-block.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so + %files extra-xlators -# Glupy C shared library +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/prot_client.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/prot_dht.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/prot_server.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features/template.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so # Glupy Python files %{python_sitelib}/gluster # Don't expect a .egg-info file on EL5 @@ -958,7 +1002,11 @@ fi %endif %files fuse -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* +# glusterfs is a symlink to glusterfsd, -server depends on -fuse. +%{_sbindir}/glusterfs +%{_sbindir}/glusterfsd +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so /sbin/mount.glusterfs %if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs @@ -1030,6 +1078,11 @@ fi %doc extras/clear_xattrs.sh %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs +%dir %{_localstatedir}/run/gluster +%if 0%{?_tmpfilesdir:1} +%{_tmpfilesdir}/gluster.conf +%endif +%dir %{_sharedstatedir}/glusterd %dir %{_sharedstatedir}/glusterd/groups %config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs @@ -1037,6 +1090,7 @@ fi %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd %endif %config %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh +%config %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh %config %{_sharedstatedir}/glusterd/hooks/1/set/post/S30samba-set.sh %config %{_sharedstatedir}/glusterd/hooks/1/set/post/S31ganesha-set.sh %config %{_sharedstatedir}/glusterd/hooks/1/start/post/S29CTDBsetup.sh @@ -1052,13 +1106,26 @@ fi # binaries %{_sbindir}/glusterd %{_sbindir}/glfsheal -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* +# {_sbindir}/glusterfsd is the actual binary, but glusterfs (client) is a +# symlink. The binary itself (and symlink) are part of the glusterfs-fuse +# package, because glusterfs-server depends on that anyway. +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/pump.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/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/changetimerecorder.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/index.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-server.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/upcall.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* %{_libdir}/libgfdb.so.* -%{_sharedstatedir}/glusterd #snap_scheduler %{_sbindir}/snap_scheduler.py @@ -1115,6 +1182,9 @@ fi %changelog +* Fri May 8 2015 Kaleb S. KEITHLEY 3.7.0-0.4beta1 +- GlusterFS 3.7.0beta1, BZ 1195947, 1218440 + * Tue May 5 2015 Kaleb S. KEITHLEY 3.7.0-0.3beta1 - GlusterFS 3.7.0beta1, BZ 1218442 From b666ad6bc809e735606e2f9bd84dbdcd0a278266 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 12 May 2015 04:55:28 -0400 Subject: [PATCH 079/328] GlusterFS 3.7.0beta2 --- glusterfs.spec | 109 ++++++++++++++++++++++++++++++------------------- sources | 2 +- 2 files changed, 68 insertions(+), 43 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 584798d..4449740 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta1 +%global prereltag beta2 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -160,7 +160,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.0 -Release: 0.4%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.5%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -241,16 +241,15 @@ terms of features and extensibility. It borrows a powerful concept called Translators from GNU Hurd kernel. Much of the code in GlusterFS is in user space and easily manageable. -This package includes the libglusterfs and glusterfs translator modules -common to both GlusterFS server and client framework. +This package includes the glusterfs binary, the glusterfsd daemon and the +libglusterfs and glusterfs translator modules common to both GlusterFS server +and client framework. %package api Summary: GlusterFS api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} -# we provide the Python package/namespace 'gluster' -Provides: python-gluster = %{version}-%{release} %description api GlusterFS is a distributed file-system capable of scaling to several @@ -297,6 +296,21 @@ is in user space and easily manageable. This package provides the GlusterFS CLI application and its man page +%package client-xlators +Summary: GlusterFS client-side translators +Group: Applications/File + +%description client-xlators +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the translators needed on any GlusterFS client. + %package devel Summary: Development Libraries Group: Development/Libraries @@ -319,7 +333,7 @@ This package provides the development libraries and include files. Summary: Extra Gluster filesystem Translators Group: Applications/File # We need -api rpm for its __init__.py in Python site-packages area -Requires: %{name}-api = %{version}-%{release} +Requires: python-%{name} = %{version}-%{release} Requires: python python-ctypes %description extra-xlators @@ -339,10 +353,10 @@ for GlusterFS. Summary: Fuse client Group: Applications/File BuildRequires: fuse-devel +Requires: attr Requires: %{name} = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} -Requires: attr Obsoletes: %{name}-client < %{version}-%{release} Provides: %{name}-client = %{version}-%{release} @@ -422,6 +436,24 @@ is in user space and easily manageable. This package provides the base GlusterFS libraries +%package -n python-gluster +Summary: GlusterFS python library +Group: Development/Tools +Requires: python + +%description -n python-gluster +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package contains the python modules of GlusterFS and own gluster +namespace. + + %if ( 0%{!?_without_rdma:1} ) %package rdma Summary: GlusterFS rdma support for ib-verbs @@ -499,7 +531,9 @@ Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} +# some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse Requires: %{name}-fuse = %{version}-%{release} +# self-heal daemon, rebalance, nfs-server etc. are actually clients Requires: %{name}-client-xlators = %{version}-%{release} # psmisc for killall, lvm2 for snapshot, and nfs-utils and # and rpcbind/portmap for gnfs server @@ -507,7 +541,6 @@ Requires: psmisc Requires: lvm2 Requires: nfs-utils %if ( 0%{?_with_systemd:1} ) -BuildRequires: systemd-units Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units @@ -525,6 +558,10 @@ Requires: portmap %if ( 0%{?rhel} && 0%{?rhel} < 6 ) Obsoletes: %{name}-geo-replication = %{version}-%{release} %endif +%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +Requires: python-argparse +%endif +Requires: pyxattr %description server GlusterFS is a distributed file-system capable of scaling to several @@ -537,22 +574,6 @@ is in user space and easily manageable. This package provides the glusterfs server daemon. -%package client-xlators -Summary: GlusterFS client-side translators -Group: Applications/File - -Requires: %{name}-fuse = %{version}-%{release} - -%description client-xlators -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides the translators needed on any GlusterFS client. %prep %setup -q -n %{name}-%{version}%{?prereltag} @@ -634,6 +655,8 @@ mkdir -p %{buildroot}%{_localstatedir}/log/glusterd mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd mkdir -p %{buildroot}%{_localstatedir}/run/gluster +touch %{buildroot}%{python_sitelib}/gluster/__init__.py + # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete @@ -897,7 +920,7 @@ fi /sbin/ldconfig ##----------------------------------------------------------------------------- -## All %files should be placed here and keep them sorted by groups +## All %%files should be placed here and keep them sorted by groups ## %files %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README.md THANKS @@ -965,6 +988,13 @@ fi %{_mandir}/man8/gluster.8* %{_sysconfdir}/bash_completion.d/gluster +%files client-xlators +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/pump.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/ganesha.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/qemu-block.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so + %files devel %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h @@ -976,18 +1006,10 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* -%files client-xlators -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/pump.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/ganesha.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/qemu-block.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so - %files extra-xlators %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/prot_client.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/prot_dht.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/prot_server.so @@ -1019,8 +1041,8 @@ fi %files ganesha %{_sysconfdir}/ganesha/* -%{_libexecdir}/ganesha/* -%{_prefix}/lib/ocf/resource.d/heartbeat/* +%attr(0755,-,-) %{_libexecdir}/ganesha/* +%attr(0755,-,-) %{_prefix}/lib/ocf/resource.d/heartbeat/* %if ( 0%{!?_without_georeplication:1} ) %files geo-replication @@ -1056,6 +1078,11 @@ fi # libgfdb is only needed server-side %exclude %{_libdir}/libgfdb.* +%files -n python-gluster +# introducing glusterfs module in site packages. +# so that all other gluster submodules can reside in the same namespace. +%{python_sitelib}/gluster/__init__.* + %if ( 0%{!?_without_rdma:1} ) %files rdma %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* @@ -1118,6 +1145,7 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-server.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/upcall.so @@ -1173,15 +1201,12 @@ fi # Incrementalapi %{_libexecdir}/glusterfs/glusterfind %{_bindir}/glusterfind -%exclude %{_libexecdir}/glusterfs/glusterfind/brickfind.pyc -%exclude %{_libexecdir}/glusterfs/glusterfind/changelog.pyc -%exclude %{_libexecdir}/glusterfs/glusterfind/nodecleanup.pyc -%exclude %{_libexecdir}/glusterfs/glusterfind/brickfind.pyo -%exclude %{_libexecdir}/glusterfs/glusterfind/changelog.pyo -%exclude %{_libexecdir}/glusterfs/glusterfind/nodecleanup.pyo %changelog +* Tue May 12 2015 Kaleb S. KEITHLEY 3.7.0-0.5beta2 +- GlusterFS 3.7.0beta2 + * Fri May 8 2015 Kaleb S. KEITHLEY 3.7.0-0.4beta1 - GlusterFS 3.7.0beta1, BZ 1195947, 1218440 diff --git a/sources b/sources index 2931980..d24f57f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a12d43b71d8b815b791bc1e33de3533e glusterfs-3.7.0beta1.tar.gz +5d36302d8c37f222f718166f52c5df11 glusterfs-3.7.0beta2.tar.gz From 05e1605d5dd5a9b1c294c58dee61ddbc4a390d7c Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 12 May 2015 05:08:03 -0400 Subject: [PATCH 080/328] GlusterFS 3.7.0beta2, noarch python-gluster --- glusterfs.spec | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4449740..3f61a6e 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -160,7 +160,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.0 -Release: 0.5%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.6%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -439,6 +439,11 @@ This package provides the base GlusterFS libraries %package -n python-gluster Summary: GlusterFS python library Group: Development/Tools +License: GPLv3+ +%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) ) +# EL5 does not support noarch sub-packages +BuildArch: noarch +%endif Requires: python %description -n python-gluster @@ -1204,6 +1209,9 @@ fi %changelog +* Tue May 12 2015 Kaleb S. KEITHLEY 3.7.0-0.6beta2 +- GlusterFS 3.7.0beta2, noarch python-gluster + * Tue May 12 2015 Kaleb S. KEITHLEY 3.7.0-0.5beta2 - GlusterFS 3.7.0beta2 From b36e8c8b34ffea0268dfc4671631f88034f585a6 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 12 May 2015 05:26:36 -0400 Subject: [PATCH 081/328] GlusterFS 3.7.0beta2, extra-xlators requires python-gluster --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 3f61a6e..5ca3beb 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -160,7 +160,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.0 -Release: 0.6%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.7%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -333,7 +333,7 @@ This package provides the development libraries and include files. Summary: Extra Gluster filesystem Translators Group: Applications/File # We need -api rpm for its __init__.py in Python site-packages area -Requires: python-%{name} = %{version}-%{release} +Requires: python-gluster = %{version}-%{release} Requires: python python-ctypes %description extra-xlators @@ -1209,6 +1209,9 @@ fi %changelog +* Tue May 12 2015 Kaleb S. KEITHLEY 3.7.0-0.7beta2 +- GlusterFS 3.7.0beta2, extra-xlators requires python-gluster + * Tue May 12 2015 Kaleb S. KEITHLEY 3.7.0-0.6beta2 - GlusterFS 3.7.0beta2, noarch python-gluster From dcf72a38bfbabc48e96d387fb1c2faffa1642af5 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 13 May 2015 09:07:21 -0400 Subject: [PATCH 082/328] GlusterFS 3.7.0beta2 --- glusterfs.spec | 50 +++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5ca3beb..22197bb 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -160,7 +160,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.0 -Release: 0.7%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.8%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -928,7 +928,8 @@ fi ## All %%files should be placed here and keep them sorted by groups ## %files -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README.md THANKS +%license COPYING-GPLV2 COPYING-LGPLV3 +%doc ChangeLog INSTALL README.md THANKS %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %{_sysconfdir}/rsyslog.d/gluster.conf.example @@ -1022,7 +1023,7 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features/template.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so # Glupy Python files -%{python_sitelib}/gluster +%{python_sitelib}/gluster/glupy/* # Don't expect a .egg-info file on EL5 %if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) %{python_sitelib}/glusterfs_glupy*.egg-info @@ -1209,44 +1210,47 @@ fi %changelog -* Tue May 12 2015 Kaleb S. KEITHLEY 3.7.0-0.7beta2 -- GlusterFS 3.7.0beta2, extra-xlators requires python-gluster - -* Tue May 12 2015 Kaleb S. KEITHLEY 3.7.0-0.6beta2 -- GlusterFS 3.7.0beta2, noarch python-gluster - -* Tue May 12 2015 Kaleb S. KEITHLEY 3.7.0-0.5beta2 +* Tue May 12 2015 Kaleb S. KEITHLEY - 3.7.0-0.8beta2 - GlusterFS 3.7.0beta2 -* Fri May 8 2015 Kaleb S. KEITHLEY 3.7.0-0.4beta1 +* Tue May 12 2015 Kaleb S. KEITHLEY - 3.7.0-0.7beta2 +- GlusterFS 3.7.0beta2, extra-xlators requires python-gluster + +* Tue May 12 2015 Kaleb S. KEITHLEY - 3.7.0-0.6beta2 +- GlusterFS 3.7.0beta2, noarch python-gluster + +* Tue May 12 2015 Kaleb S. KEITHLEY - 3.7.0-0.5beta2 +- GlusterFS 3.7.0beta2 + +* Fri May 8 2015 Kaleb S. KEITHLEY - 3.7.0-0.4beta1 - GlusterFS 3.7.0beta1, BZ 1195947, 1218440 -* Tue May 5 2015 Kaleb S. KEITHLEY 3.7.0-0.3beta1 +* Tue May 5 2015 Kaleb S. KEITHLEY - 3.7.0-0.3beta1 - GlusterFS 3.7.0beta1, BZ 1218442 -* Tue May 5 2015 Kaleb S. KEITHLEY 3.7.0-0.2beta1 +* Tue May 5 2015 Kaleb S. KEITHLEY - 3.7.0-0.2beta1 - GlusterFS 3.7.0beta1, BZ 1218359 -* Wed Apr 29 2015 Kaleb S. KEITHLEY 3.7.0-0.1beta1 +* Wed Apr 29 2015 Kaleb S. KEITHLEY - 3.7.0-0.1beta1 - GlusterFS 3.7.0beta1 -* Wed Apr 22 2015 Kaleb S. KEITHLEY 3.6.3-1 +* Wed Apr 22 2015 Kaleb S. KEITHLEY - 3.6.3-1 - GlusterFS 3.6.3 GA * Wed Apr 15 2015 Kaleb S. KEITHLEY - preliminary for 3.7.0alpha -* Wed Apr 1 2015 Humble Chirammal 3.6.3beta2 +* Wed Apr 1 2015 Humble Chirammal - 3.6.3beta2 - GlusterFS 3.6.3beta2 release. -* Thu Feb 12 2015 Humble Chirammal 3.6.3beta1 +* Thu Feb 12 2015 Humble Chirammal - 3.6.3beta1 - GlusterFS 3.6.3beta1 release. * Tue Feb 10 2015 Kaleb S. KEITHLEY - Ownership of /usr/lib/python2.7/site-packages/gluster, BZ 1190832 - N.B. gfapi.py was removed in 3.6 (to resurface another day?) -* Mon Feb 02 2015 Lalatendu Mohanty 3.6.2-2 +* Mon Feb 02 2015 Lalatendu Mohanty - 3.6.2-2 - GlusterFS 3.6.2-2 * Fri Jan 30 2015 Nandaja Varma 1033 @@ -1255,25 +1259,25 @@ fi * Wed Jan 28 2015 Kaleb S. KEITHLEY - glusterfs-fuse Requires: attr. See BZ 1184626, 1184627 -* Thu Jan 22 2015 Lalatendu Mohanty 3.6.2-1 +* Thu Jan 22 2015 Lalatendu Mohanty - 3.6.2-1 - GlusterFS 3.6.2 GA -* Thu Jan 15 2015 Lalatendu Mohanty 3.6.2beta2-1 +* Thu Jan 15 2015 Lalatendu Mohanty - 3.6.2beta2-1 - GlusterFS 3.6.2beta2 * Tue Jan 06 2015 Pranith Kumar Karampuri - Adding glfsheal binary -* Fri Dec 19 2014 Lalatendu Mohanty 3.6.2beta1-1 +* Fri Dec 19 2014 Lalatendu Mohanty - 3.6.2beta1-1 - GlusterFS 3.6.2beta1 * Fri Dec 12 2014 Niels de Vos - do not package all /usr/share/glusterfs/* files in regression-tests (#1169005) -* Sat Nov 29 2014 Lalatendu Mohanty 3.6.1-4 +* Sat Nov 29 2014 Lalatendu Mohanty - 3.6.1-4 - Fix build on el5 (upstream bug 1169004) -* Thu Nov 20 2014 Niels de Vos 3.6.1-3 +* Thu Nov 20 2014 Niels de Vos - 3.6.1-3 - Fix version in gluster-api.pc (upstream bug 1166232) * Wed Nov 19 2014 Lalatendu Mohanty From 6d8ca7cfb2200c1042ba76c41f1ff9af78de45c6 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 15 May 2015 08:11:09 -0400 Subject: [PATCH 083/328] GlusterFS 3.7.0 GA --- glusterfs.spec | 12 ++++++++---- sources | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 22197bb..37e62d2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag beta2 +# %%global prereltag beta2 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -160,7 +160,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.0 -Release: 0.8%{?prereltag:.%{prereltag}}%{?dist} +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -332,7 +332,8 @@ This package provides the development libraries and include files. %package extra-xlators Summary: Extra Gluster filesystem Translators Group: Applications/File -# We need -api rpm for its __init__.py in Python site-packages area +# We need -api rpm for its __init__.py in Python +# site-packages area Requires: python-gluster = %{version}-%{release} Requires: python python-ctypes @@ -1210,6 +1211,9 @@ fi %changelog +* Fri May 15 2015 Kaleb S. KEITHLEY - 3.7.0-1 +- GlusterFS 3.7.0 GA + * Tue May 12 2015 Kaleb S. KEITHLEY - 3.7.0-0.8beta2 - GlusterFS 3.7.0beta2 @@ -1217,7 +1221,7 @@ fi - GlusterFS 3.7.0beta2, extra-xlators requires python-gluster * Tue May 12 2015 Kaleb S. KEITHLEY - 3.7.0-0.6beta2 -- GlusterFS 3.7.0beta2, noarch python-gluster +- GlusterFS 3.7.0beta2, noarch python-gluster * Tue May 12 2015 Kaleb S. KEITHLEY - 3.7.0-0.5beta2 - GlusterFS 3.7.0beta2 diff --git a/sources b/sources index d24f57f..dc100cd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5d36302d8c37f222f718166f52c5df11 glusterfs-3.7.0beta2.tar.gz +d7b856a06c40b560860da9dc416bb007 glusterfs-3.7.0.tar.gz From be556769cd0ab7e8e01578b1deb0b305b4827075 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 15 May 2015 14:03:11 -0400 Subject: [PATCH 084/328] el6 nits, glusterfsd.init and %license --- glusterfs.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 37e62d2..4cb8652 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -187,8 +187,8 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) %if ( 0%{?rhel} && 0%{?rhel} <= 5 ) BuildRequires: python-simplejson %endif -%if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{?_with_systemd:1} ) %global glusterfsd_service %{S:%{SOURCE7}} %else %global glusterfsd_service %{S:%{SOURCE8}} @@ -929,6 +929,7 @@ fi ## All %%files should be placed here and keep them sorted by groups ## %files +%{!?_licensedir:%global license %%doc} %license COPYING-GPLV2 COPYING-LGPLV3 %doc ChangeLog INSTALL README.md THANKS %if ( 0%{!?_without_syslog:1} ) From 90020d16da1f1b438b149bb4c2dc0d7ef2b1b270 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 20 May 2015 08:50:58 -0400 Subject: [PATCH 085/328] GlusterFS 3.7.0, move lib{gfdb,gfchangelog}.pc from -api-devel to -devel --- glusterfs.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4cb8652..f0916e8 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -160,7 +160,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.0 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -986,8 +986,6 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc -%{_libdir}/pkgconfig/libgfchangelog.pc -%{_libdir}/pkgconfig/libgfdb.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* @@ -1013,6 +1011,8 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* +%{_libdir}/pkgconfig/libgfchangelog.pc +%{_libdir}/pkgconfig/libgfdb.pc %files extra-xlators %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so @@ -1212,6 +1212,9 @@ fi %changelog +* Wed May 20 2015 Kaleb S. KEITHLEY - 3.7.0-2 +- GlusterFS 3.7.0, move lib{gfdb,gfchangelog}.pc from -api-devel to -devel + * Fri May 15 2015 Kaleb S. KEITHLEY - 3.7.0-1 - GlusterFS 3.7.0 GA From c12fb1372cac64c4592253aa3da03e9d9bbee4e2 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 1 Jun 2015 13:16:02 -0400 Subject: [PATCH 086/328] GlusterFS 3.7.1 GA --- glusterfs.spec | 23 +++++++++++++++++++---- sources | 2 +- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f0916e8..3c33bb9 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -159,14 +159,14 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.0 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.7.1 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ Release: 0.@PACKAGE_RELEASE@%{?dist} -Vendor: glusterfs.org +Vendor: gluster.org %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base @@ -880,11 +880,20 @@ if [ $? -eq 0 ]; then killall --wait glusterd &> /dev/null glusterd --xlator-option *.upgrade=on -N + + #Cleaning leftover glusterd socket file which is created by glusterd in + #rpm_script_t context. + rm -rf /var/run/glusterd.socket + # glusterd _was_ running, we killed it, it exited after *.upgrade=on, # so start it again %_init_start glusterd else glusterd --xlator-option *.upgrade=on -N + + #Cleaning leftover glusterd socket file which is created by glusterd in + #rpm_script_t context. + rm -rf /var/run/glusterd.socket fi ##----------------------------------------------------------------------------- @@ -1059,7 +1068,6 @@ fi %{_libexecdir}/glusterfs/python/syncdaemon/* %{_libexecdir}/glusterfs/gverify.sh %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh -%{_libexecdir}/glusterfs/peer_add_secret_pub %{_libexecdir}/glusterfs/peer_gsec_create %{_libexecdir}/glusterfs/peer_mountbroker %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication @@ -1206,12 +1214,19 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid +# Extra utility script +%{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh + # Incrementalapi %{_libexecdir}/glusterfs/glusterfind %{_bindir}/glusterfind +%{_libexecdir}/glusterfs/peer_add_secret_pub %changelog +* Mon Jun 1 2015 Kaleb S. KEITHLEY - 3.7.1-1 +- GlusterFS 3.7.1 GA + * Wed May 20 2015 Kaleb S. KEITHLEY - 3.7.0-2 - GlusterFS 3.7.0, move lib{gfdb,gfchangelog}.pc from -api-devel to -devel diff --git a/sources b/sources index dc100cd..fdb396f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d7b856a06c40b560860da9dc416bb007 glusterfs-3.7.0.tar.gz +0b565f92a467f5aafab38c8343f0caa0 glusterfs-3.7.1.tar.gz From 29d4a4ad0cee10e93d69ad4e6569e2ce8cb687d4 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 17 Jun 2015 08:42:47 +0000 Subject: [PATCH 087/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 3c33bb9..1a080a7 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -160,12 +160,12 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.1 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist} +Release: 0.@PACKAGE_RELEASE@%{?dist}.1 Vendor: gluster.org %endif License: GPLv2 or LGPLv3+ @@ -1224,6 +1224,9 @@ fi %changelog +* Wed Jun 17 2015 Fedora Release Engineering - 3.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Mon Jun 1 2015 Kaleb S. KEITHLEY - 3.7.1-1 - GlusterFS 3.7.1 GA From 951f25adb4128a8898603aa3f34cfa8465d667d1 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 19 Jun 2015 10:05:39 -0400 Subject: [PATCH 088/328] GlusterFS 3.7.2 GA --- glusterfs.spec | 59 +++++++++++++++++++++++++++++++++++++++----------- sources | 2 +- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 1a080a7..5a7bcae 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -72,6 +72,11 @@ %define _without_qemu_block --disable-qemu-block %endif +# Disable data-tiering on EL5, sqlite is too old +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +%global _without_tiering --disable-tiering +%endif + ##----------------------------------------------------------------------------- ## All %global definitions should be placed here and keep them sorted ## @@ -159,14 +164,14 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.1 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.7.2 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ Release: 0.@PACKAGE_RELEASE@%{?dist}.1 -Vendor: gluster.org +Vendor: Gluster Community %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base @@ -204,11 +209,17 @@ BuildRequires: libaio-devel libacl-devel BuildRequires: python-devel BuildRequires: python-ctypes BuildRequires: userspace-rcu-devel >= 0.7 +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +BuildRequires: e2fsprogs-devel +%else BuildRequires: libuuid-devel -BuildRequires: sqlite-devel +%endif %if ( 0%{?_with_cmocka:1} ) BuildRequires: libcmocka-devel >= 1.0.1 %endif +%if ( 0%{!?_without_tiering:1} ) +BuildRequires: sqlite-devel +%endif %if ( 0%{!?_without_systemtap:1} ) BuildRequires: systemtap-sdt-devel %endif @@ -401,6 +412,7 @@ Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} Requires: python python-ctypes +Requires: rsync %description geo-replication GlusterFS is a distributed file-system capable of scaling to several @@ -589,17 +601,19 @@ This package provides the glusterfs server daemon. # there is no need to run ./autogen or have a BuildRequires for automake. [ -e 'install-sh' -o -e 'install.sh' ] || ./autogen.sh %configure \ +./autogen.sh && %configure \ + %{?_with_cmocka} \ %{?_with_tmpfilesdir} \ - %{?_without_rdma} \ + %{?_without_bd} \ %{?_without_epoll} \ %{?_without_fusermount} \ %{?_without_georeplication} \ %{?_without_ocf} \ - %{?_without_syslog} \ - %{?_without_bd} \ %{?_without_qemu_block} \ + %{?_without_rdma} \ + %{?_without_syslog} \ %{?_without_systemtap} \ - %{?_with_cmocka} + %{?_without_tiering} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -965,7 +979,10 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/error-gen.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so +%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) +# RHEL-5 based distributions have a too old openssl %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/crypt.so +%endif %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so @@ -986,6 +1003,8 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so +%{_libexecdir}/glusterfs/gfind_missing_files +%{_sbindir}/gfind_missing_files %files api %exclude %{_libdir}/*.so @@ -1007,7 +1026,9 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/pump.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/ganesha.so +%if ( 0%{!?_without_qemu_block:1} ) %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/qemu-block.so +%endif %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so %files devel @@ -1021,7 +1042,9 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* %{_libdir}/pkgconfig/libgfchangelog.pc +%if ( 0%{!?_without_tiering:1} ) %{_libdir}/pkgconfig/libgfdb.pc +%endif %files extra-xlators %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so @@ -1082,17 +1105,16 @@ fi %{_datadir}/glusterfs/scripts/generate-gfid-file.sh %{_datadir}/glusterfs/scripts/gsync-sync-gfid %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf -%{_libexecdir}/glusterfs/gfind_missing_files -%{_sbindir}/gfind_missing_files -%exclude %{_libexecdir}/glusterfs/gfind_missing_files/gfid_to_path.pyo -%exclude %{_libexecdir}/glusterfs/gfind_missing_files/gfid_to_path.pyc %endif %files libs %{_libdir}/*.so.* %exclude %{_libdir}/libgfapi.* # libgfdb is only needed server-side +%if ( 0%{!?_without_tiering:1} ) +# libgfdb is only needed server-side %exclude %{_libdir}/libgfdb.* +%endif %files -n python-gluster # introducing glusterfs module in site packages. @@ -1135,9 +1157,10 @@ fi %config %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh %config %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh %config %{_sharedstatedir}/glusterd/hooks/1/set/post/S30samba-set.sh -%config %{_sharedstatedir}/glusterd/hooks/1/set/post/S31ganesha-set.sh +%config %{_sharedstatedir}/glusterd/hooks/1/set/post/S32gluster_enable_shared_storage.sh %config %{_sharedstatedir}/glusterd/hooks/1/start/post/S29CTDBsetup.sh %config %{_sharedstatedir}/glusterd/hooks/1/start/post/S30samba-start.sh +%config %{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh %config %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh %config %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh %config %{_sharedstatedir}/glusterd/hooks/1/reset/post/S31ganesha-reset.sh @@ -1156,7 +1179,9 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/arbiter.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bit-rot.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bitrot-stub.so +%if ( 0%{!?_without_tiering:1} ) %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so +%endif %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/index.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* @@ -1169,7 +1194,9 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* +%if ( 0%{!?_without_tiering:1} ) %{_libdir}/libgfdb.so.* +%endif #snap_scheduler %{_sbindir}/snap_scheduler.py @@ -1221,9 +1248,15 @@ fi %{_libexecdir}/glusterfs/glusterfind %{_bindir}/glusterfind %{_libexecdir}/glusterfs/peer_add_secret_pub +%{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.py +%exclude %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.pyc +%exclude %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.pyo %changelog +* Fri Jun 19 2015 Kaleb S. KEITHLEY - 3.7.2-1 +- GlusterFS 3.7.2 GA + * Wed Jun 17 2015 Fedora Release Engineering - 3.7.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild diff --git a/sources b/sources index fdb396f..7f930f9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0b565f92a467f5aafab38c8343f0caa0 glusterfs-3.7.1.tar.gz +8354e1b830874a13c14a816e7c14c287 glusterfs-3.7.2.tar.gz From 4064a38db7860dba8044a7fcd8ee454d9ee13e95 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 22 Jun 2015 15:39:15 -0400 Subject: [PATCH 089/328] workaround for %ghost %{_sharedstatedir}/glusterd/hooks/1/delete/post pending correct fix that also packages the .pyc and .pyo files. --- glusterfs.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5a7bcae..6055bed 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -165,7 +165,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.2 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1231,7 +1231,7 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols @@ -1254,6 +1254,10 @@ fi %changelog +* Mon Jun 22 2015 Kaleb S. KEITHLEY - 3.7.2-2 +- workaround for %%ghost %{_sharedstatedir}/glusterd/hooks/1/delete/post + pending correct fix that also packages the .pyc and .pyo files. + * Fri Jun 19 2015 Kaleb S. KEITHLEY - 3.7.2-1 - GlusterFS 3.7.2 GA From 719bed34fde96640cba85573166ed9eb13c57fe5 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 23 Jun 2015 07:41:40 -0400 Subject: [PATCH 090/328] revised workaround for %ghost issue --- glusterfs.spec | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 6055bed..dbbf0a4 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -165,7 +165,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.2 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Release: 3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -814,6 +814,10 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus install -p -m 0744 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster +mv %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.* %{buildroot}%{_libexecdir}/glusterfs/ +ln -s %{_libexecdir}/glusterfs/S57glusterfind-delete-post.py %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.py + + %clean rm -rf %{buildroot} @@ -1231,7 +1235,6 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete - %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols @@ -1249,13 +1252,15 @@ fi %{_bindir}/glusterfind %{_libexecdir}/glusterfs/peer_add_secret_pub %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.py -%exclude %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.pyc -%exclude %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.pyo +%{_libexecdir}/glusterfs/S57glusterfind-delete-post.* %changelog +* Tue Jun 23 2015 Kaleb S. KEITHLEY - 3.7.2-3 +- revised workaround for %%ghost issue + * Mon Jun 22 2015 Kaleb S. KEITHLEY - 3.7.2-2 -- workaround for %%ghost %{_sharedstatedir}/glusterd/hooks/1/delete/post +- workaround for %%ghost %%{_sharedstatedir}/glusterd/hooks/1/delete/post pending correct fix that also packages the .pyc and .pyo files. * Fri Jun 19 2015 Kaleb S. KEITHLEY - 3.7.2-1 From c0f24d8fa2defc391a4d0a01b1434f845fc0749e Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 28 Jul 2015 10:04:20 -0400 Subject: [PATCH 091/328] GlusterFS 3.7.3 GA --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index dbbf0a4..581e4bf 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -164,8 +164,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.2 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.7.3 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1256,6 +1256,9 @@ fi %changelog +* Tue Jul 28 2015 Kaleb S. KEITHLEY - 3.7.3-1 +- GlusterFS 3.7.3 GA + * Tue Jun 23 2015 Kaleb S. KEITHLEY - 3.7.2-3 - revised workaround for %%ghost issue diff --git a/sources b/sources index 7f930f9..931c3ba 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -8354e1b830874a13c14a816e7c14c287 glusterfs-3.7.2.tar.gz +bb7a9fa5181a4ded7704d6cc1ca959b2 glusterfs-3.7.3.tar.gz From 961663827bbdcae753dc16afd121fd83e6aaafaa Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 31 Aug 2015 13:50:25 -0400 Subject: [PATCH 092/328] GlusterFS 3.7.4 GA --- glusterfs.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 581e4bf..04536f2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -164,7 +164,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.3 +Version: 3.7.4 Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else @@ -1235,6 +1235,7 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols @@ -1256,6 +1257,9 @@ fi %changelog +* Mon Aug 31 2015 Kaleb S. KEITHLEY - 3.7.4-1 +- GlusterFS 3.7.4 GA + * Tue Jul 28 2015 Kaleb S. KEITHLEY - 3.7.3-1 - GlusterFS 3.7.3 GA diff --git a/sources b/sources index 931c3ba..263a359 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -bb7a9fa5181a4ded7704d6cc1ca959b2 glusterfs-3.7.3.tar.gz +3e2ab64a35a54a43413c2d88971fe32b glusterfs-3.7.4.tar.gz From 08a994702cfc745712095ca97e6d11abfbb569c7 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 1 Sep 2015 11:41:28 -0400 Subject: [PATCH 093/328] GlusterFS 3.7.4 cpio mkdir /var/lib/glusterd/hooks/1/delete/post error --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 04536f2..7fdd703 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1218,6 +1218,8 @@ fi %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options @@ -1234,8 +1236,6 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete - %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols @@ -1257,6 +1257,9 @@ fi %changelog +* Tue Sep 1 2015 Kaleb S. KEITHLEY - 3.7.4-2 +- GlusterFS 3.7.4 cpio mkdir /var/lib/glusterd/hooks/1/delete/post error + * Mon Aug 31 2015 Kaleb S. KEITHLEY - 3.7.4-1 - GlusterFS 3.7.4 GA From b331f80b9e00c042f15248f4d8109b29dbf8d63c Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 1 Sep 2015 11:42:16 -0400 Subject: [PATCH 094/328] GlusterFS 3.7.4 cpio mkdir /var/lib/glusterd/hooks/1/delete/post error --- glusterfs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 7fdd703..fee0675 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -165,7 +165,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.4 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ From cb5bc97a3c8fce83ea692e0bf9b735ee53811cec Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 7 Oct 2015 11:12:41 -0400 Subject: [PATCH 095/328] GlusterFS 3.7.5 GA --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index fee0675..90cbdba 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -164,8 +164,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.4 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.7.5 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1257,6 +1257,9 @@ fi %changelog +* Wed Oct 7 2015 Kaleb S. KEITHLEY - 3.7.5-1 +- GlusterFS 3.7.5 GA + * Tue Sep 1 2015 Kaleb S. KEITHLEY - 3.7.4-2 - GlusterFS 3.7.4 cpio mkdir /var/lib/glusterd/hooks/1/delete/post error diff --git a/sources b/sources index 263a359..fb058a4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3e2ab64a35a54a43413c2d88971fe32b glusterfs-3.7.4.tar.gz +7c74cfcc5f3712de7ee2972819aaefd3 glusterfs-3.7.5.tar.gz From 6f04bf355c0c5468a9f97aaa9fe7e5d1825df981 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Mon, 9 Nov 2015 09:25:14 -0500 Subject: [PATCH 096/328] GlusterFS 3.7.6 GA --- glusterfs.spec | 54 +++++++++++++++++++++++++++++++++++++++----------- sources | 2 +- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 90cbdba..6f63365 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -78,13 +78,17 @@ %endif ##----------------------------------------------------------------------------- -## All %global definitions should be placed here and keep them sorted +## All %%global definitions should be placed here and keep them sorted ## -%if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +%global _with_firewalld --enable-firewalld +%endif + %if 0%{?_tmpfilesdir:1} %define _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} %else @@ -164,7 +168,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.5 +Version: 3.7.6 Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else @@ -233,6 +237,10 @@ BuildRequires: glib2-devel BuildRequires: libattr-devel %endif +%if (0%{?_with_firewalld:1}) +BuildRequires: firewalld +%endif + Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} @@ -343,7 +351,7 @@ This package provides the development libraries and include files. %package extra-xlators Summary: Extra Gluster filesystem Translators Group: Applications/File -# We need -api rpm for its __init__.py in Python +# We need python-gluster rpm for gluster module's __init__.py in Python # site-packages area Requires: python-gluster = %{version}-%{release} Requires: python python-ctypes @@ -360,7 +368,6 @@ is in user space and easily manageable. This package provides extra filesystem Translators, such as Glupy, for GlusterFS. - %package fuse Summary: Fuse client Group: Applications/File @@ -608,6 +615,7 @@ This package provides the glusterfs server daemon. %{?_without_epoll} \ %{?_without_fusermount} \ %{?_without_georeplication} \ + %{?_with_firewalld} \ %{?_without_ocf} \ %{?_without_qemu_block} \ %{?_without_rdma} \ @@ -616,7 +624,7 @@ This package provides the glusterfs server daemon. %{?_without_tiering} # fix hardening and remove rpath in shlibs -%if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool @@ -685,7 +693,7 @@ find %{buildroot}%{_libdir} -name '*.la' -delete # Remove installed docs, the ones we want are included by %%doc, in # /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending # on the distribution -%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) rm -rf %{buildroot}%{_pkgdocdir}/* %else rm -rf %{buildroot}%{_defaultdocdir}/%{name} @@ -822,7 +830,7 @@ ln -s %{_libexecdir}/glusterfs/S57glusterfind-delete-post.py %{buildroot}%{_shar rm -rf %{buildroot} ##----------------------------------------------------------------------------- -## All %post should be placed here and keep them sorted +## All %%post should be placed here and keep them sorted ## %post %if ( 0%{!?_without_syslog:1} ) @@ -892,6 +900,15 @@ if [ -e /etc/ld.so.conf.d/glusterfs.conf ]; then rm -f /etc/ld.so.conf.d/glusterfs.conf /sbin/ldconfig fi + +%if (0%{?_with_firewalld:1}) +#reload service files if firewalld running +if $(systemctl is-active firewalld 1>/dev/null 2>&1); then + #firewalld-filesystem is not available for rhel7, so command used for reload. + firewall-cmd --reload +fi +%endif + pidof -c -o %PPID -x glusterd &> /dev/null if [ $? -eq 0 ]; then kill -9 `pgrep -f gsyncd.py` &> /dev/null @@ -915,7 +932,7 @@ else fi ##----------------------------------------------------------------------------- -## All %preun should be placed here and keep them sorted +## All %%preun should be placed here and keep them sorted ## %preun server if [ $1 -eq 0 ]; then @@ -936,7 +953,7 @@ if [ $1 -ge 1 ]; then fi ##----------------------------------------------------------------------------- -## All %postun should be placed here and keep them sorted +## All %%postun should be placed here and keep them sorted ## %postun /sbin/ldconfig @@ -949,6 +966,14 @@ fi %postun api /sbin/ldconfig +%postun server +%if (0%{?_with_firewalld:1}) +#reload service files if firewalld running +if $(systemctl is-active firewalld 1>/dev/null 2>&1); then + firewall-cmd --reload +fi +%endif + %postun libs /sbin/ldconfig @@ -1158,8 +1183,8 @@ fi %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd %endif -%config %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh %config %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh +%config %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh %config %{_sharedstatedir}/glusterd/hooks/1/set/post/S30samba-set.sh %config %{_sharedstatedir}/glusterd/hooks/1/set/post/S32gluster_enable_shared_storage.sh %config %{_sharedstatedir}/glusterd/hooks/1/start/post/S29CTDBsetup.sh @@ -1232,7 +1257,6 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre @@ -1255,8 +1279,14 @@ fi %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.py %{_libexecdir}/glusterfs/S57glusterfind-delete-post.* +%if ( 0%{?_with_firewalld:1} ) +%{_prefix}/lib/firewalld/services/glusterfs.xml +%endif %changelog +* Mon Nov 9 2015 Kaleb S. KEITHLEY - 3.7.6-1 +- GlusterFS 3.7.6 GA + * Wed Oct 7 2015 Kaleb S. KEITHLEY - 3.7.5-1 - GlusterFS 3.7.5 GA diff --git a/sources b/sources index fb058a4..1031a69 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7c74cfcc5f3712de7ee2972819aaefd3 glusterfs-3.7.5.tar.gz +af8df703e4e6b44f8baa1fe6a9d81f5c glusterfs-3.7.6.tar.gz From d87ebcfe7c4b291568f901f337d52b9187585bf8 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Fri, 13 Nov 2015 12:46:05 -0500 Subject: [PATCH 097/328] gfind_missing_files belong in geo-rep --- glusterfs.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 6f63365..f2230e9 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1032,8 +1032,6 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so -%{_libexecdir}/glusterfs/gfind_missing_files -%{_sbindir}/gfind_missing_files %files api %exclude %{_libdir}/*.so @@ -1134,6 +1132,8 @@ fi %{_datadir}/glusterfs/scripts/generate-gfid-file.sh %{_datadir}/glusterfs/scripts/gsync-sync-gfid %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%{_libexecdir}/glusterfs/gfind_missing_files +%{_sbindir}/gfind_missing_files %endif %files libs From 4b94bf439e3175d62f3bb07b4feaf2e620544d21 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Mon, 23 Nov 2015 11:42:29 -0500 Subject: [PATCH 098/328] cleanup some RHEL5isms --- glusterfs.spec | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f2230e9..9fda7a6 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -392,6 +392,7 @@ is in user space and easily manageable. This package provides support to FUSE based clients and includes the glusterfsd and glusterfs binaries. +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %package ganesha Summary: NFS-Ganesha configuration Group: Applications/File @@ -411,6 +412,7 @@ is in user space and easily manageable. This package provides the configuration and related files for using NFS-Ganesha as the NFS server using GlusterFS +%endif %if ( 0%{!?_without_georeplication:1} ) %package geo-replication @@ -607,6 +609,10 @@ This package provides the glusterfs server daemon. # For whatever reason, install-sh is sometimes missing. When this gets fixed, # there is no need to run ./autogen or have a BuildRequires for automake. [ -e 'install-sh' -o -e 'install.sh' ] || ./autogen.sh +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +CFLAGS=-DUSE_INSECURE_OPENSSL +export CFLAGS +%endif %configure \ ./autogen.sh && %configure \ %{?_with_cmocka} \ @@ -673,7 +679,7 @@ install -D -p -m 0644 extras/glusterd-sysconfig \ %endif %if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) install -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif @@ -711,6 +717,11 @@ EOM rm -rf %{buildroot}/benchmarking rm -f %{buildroot}/glusterfs-mode.el rm -f %{buildroot}/glusterfs.vim +rm -rf %{buildroot}%{_libexecdir}/glusterfs/gfind_missing_files +rm -f %{buildroot}%{_sbindir}/gfind_missing_files +rm -rf %{buildroot}%{_sysconfdir}/ganesha +rm -rf %{buildroot}%{_libexecdir}/ganesha +rm -f %{buildroot}%{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_* %else # make install always puts these in %%{_defaultdocdir}/%%{name} so don't # use %%{_pkgdocdir}; that will be wrong on later Fedora distributions @@ -1106,10 +1117,13 @@ fi %endif %endif +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %files ganesha %{_sysconfdir}/ganesha/* +%dir %{_libexecdir}/ganesha %attr(0755,-,-) %{_libexecdir}/ganesha/* %attr(0755,-,-) %{_prefix}/lib/ocf/resource.d/heartbeat/* +%endif %if ( 0%{!?_without_georeplication:1} ) %files geo-replication @@ -1132,7 +1146,8 @@ fi %{_datadir}/glusterfs/scripts/generate-gfid-file.sh %{_datadir}/glusterfs/scripts/gsync-sync-gfid %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf -%{_libexecdir}/glusterfs/gfind_missing_files +%dir %{_libexecdir}/glusterfs/gfind_missing_files +%{_libexecdir}/glusterfs/gfind_missing_files/* %{_sbindir}/gfind_missing_files %endif From b0dbd8a747fb6f4d649434142de6ea99549f614e Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Thu, 24 Dec 2015 16:41:50 -0500 Subject: [PATCH 099/328] s/%define/%global/ --- glusterfs.spec | 64 ++++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9fda7a6..2192dd9 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -60,7 +60,7 @@ %{?_without_bd:%global _without_bd --disable-bd-xlator} %if ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) -%define _without_bd --disable-bd-xlator +%global _without_bd --disable-bd-xlator %endif # if you wish to compile an rpm without the qemu-block support... @@ -69,7 +69,7 @@ %if ( 0%{?rhel} && 0%{?rhel} < 6 ) # xlators/features/qemu-block fails to build on RHEL5, disable it -%define _without_qemu_block --disable-qemu-block +%global _without_qemu_block --disable-qemu-block %endif # Disable data-tiering on EL5, sqlite is too old @@ -90,9 +90,9 @@ %endif %if 0%{?_tmpfilesdir:1} -%define _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} +%global _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} %else -%define _with_tmpfilesdir --without-tmpfilesdir +%global _with_tmpfilesdir --without-tmpfilesdir %endif # there is no systemtap support! Perhaps some day there will be @@ -106,28 +106,28 @@ %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) -%define _init_enable() /bin/true ; +%global _init_enable() /bin/true ; %else -%define _init_enable() /bin/systemctl enable %1.service ; +%global _init_enable() /bin/systemctl enable %1.service ; %endif -%define _init_disable() /bin/systemctl disable %1.service ; -%define _init_restart() /bin/systemctl try-restart %1.service ; -%define _init_start() /bin/systemctl start %1.service ; -%define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%global _init_disable() /bin/systemctl disable %1.service ; +%global _init_restart() /bin/systemctl try-restart %1.service ; +%global _init_start() /bin/systemctl start %1.service ; +%global _init_stop() /bin/systemctl stop %1.service ; +%global _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works -%define _init_glusterd %{_unitdir}/glusterd.service -%define _init_glusterfsd %{_unitdir}/glusterfsd.service +%global _init_glusterd %{_unitdir}/glusterd.service +%global _init_glusterfsd %{_unitdir}/glusterfsd.service %else -%define _init_enable() /sbin/chkconfig --add %1 ; -%define _init_disable() /sbin/chkconfig --del %1 ; -%define _init_restart() /sbin/service %1 condrestart &>/dev/null ; -%define _init_start() /sbin/service %1 start &>/dev/null ; -%define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%global _init_enable() /sbin/chkconfig --add %1 ; +%global _init_disable() /sbin/chkconfig --del %1 ; +%global _init_restart() /sbin/service %1 condrestart &>/dev/null ; +%global _init_start() /sbin/service %1 start &>/dev/null ; +%global _init_stop() /sbin/service %1 stop &>/dev/null ; +%global _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works -%define _init_glusterd %{_sysconfdir}/init.d/glusterd -%define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd +%global _init_glusterd %{_sysconfdir}/init.d/glusterd +%global _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd %endif %if ( 0%{_for_fedora_koji_builds} ) @@ -141,8 +141,8 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} %if ( 0%{?rhel} && 0%{?rhel} < 6 ) - # _sharedstatedir is not provided by RHEL5 - %define _sharedstatedir /var/lib +# _sharedstatedir is not provided by RHEL5 +%global _sharedstatedir /var/lib %endif # We do not want to generate useless provides and requires for xlator @@ -151,14 +151,14 @@ # # TODO: RHEL5 does not have a convenient solution %if ( 0%{?rhel} == 6 ) - # filter_setup exists in RHEL6 only - %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' - %filter_setup +# filter_setup exists in RHEL6 only +%filter_provides_in %{_libdir}/glusterfs/%{version}/ +%global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' +%filter_setup %else - # modern rpm and current Fedora do not generate requires when the - # provides are filtered - %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ +# modern rpm and current Fedora do not generate requires when the +# provides are filtered +%global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif @@ -691,7 +691,6 @@ mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd mkdir -p %{buildroot}%{_localstatedir}/run/gluster touch %{buildroot}%{python_sitelib}/gluster/__init__.py - # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete @@ -1299,6 +1298,9 @@ fi %endif %changelog +* Thu Dec 24 2015 Kaleb S. KEITHLEY +- s/%define/%global/ + * Mon Nov 9 2015 Kaleb S. KEITHLEY - 3.7.6-1 - GlusterFS 3.7.6 GA From a8c94297a96a5dfe7305a2dcc9805970fc09e104 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Fri, 8 Jan 2016 11:03:12 -0500 Subject: [PATCH 100/328] glusterfs-server Requires: glusterfs-api = %{version}-%{release} --- glusterfs.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 2192dd9..9a59a03 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -165,7 +165,7 @@ ##----------------------------------------------------------------------------- ## All package definitions should be placed here and keep them sorted ## -Summary: Cluster File System +Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.6 @@ -553,10 +553,11 @@ like Pacemaker. %endif %package server -Summary: Clustered file-system server +Summary: Distributed file-system server Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} +Requires: %{name}-api = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse Requires: %{name}-fuse = %{version}-%{release} @@ -1298,6 +1299,9 @@ fi %endif %changelog +* Fri Jan 8 2016 Kaleb S. KEITHLEY - 3.7.6-2 +- glusterfs-server Requires: glusterfs-api = %{version}-%{release} + * Thu Dec 24 2015 Kaleb S. KEITHLEY - s/%define/%global/ From 1ed259f27b955fd874145d95583aa830c322f623 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Fri, 8 Jan 2016 11:04:03 -0500 Subject: [PATCH 101/328] glusterfs-server Requires: glusterfs-api = %{version}-%{release} --- glusterfs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9a59a03..4e6eec3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -169,7 +169,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.6 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ From de5643ac508fe037492c154807ad665a95dfd483 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Fri, 8 Jan 2016 11:17:07 -0500 Subject: [PATCH 102/328] glusterfs-server Requires: glusterfs-api - s/%define/%global/ --- glusterfs.spec | 71 +++++++++++++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 6f63365..0ee2cae 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -60,7 +60,7 @@ %{?_without_bd:%global _without_bd --disable-bd-xlator} %if ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) -%define _without_bd --disable-bd-xlator +%global _without_bd --disable-bd-xlator %endif # if you wish to compile an rpm without the qemu-block support... @@ -69,7 +69,7 @@ %if ( 0%{?rhel} && 0%{?rhel} < 6 ) # xlators/features/qemu-block fails to build on RHEL5, disable it -%define _without_qemu_block --disable-qemu-block +%global _without_qemu_block --disable-qemu-block %endif # Disable data-tiering on EL5, sqlite is too old @@ -90,9 +90,9 @@ %endif %if 0%{?_tmpfilesdir:1} -%define _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} +%global _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} %else -%define _with_tmpfilesdir --without-tmpfilesdir +%global _with_tmpfilesdir --without-tmpfilesdir %endif # there is no systemtap support! Perhaps some day there will be @@ -106,28 +106,28 @@ %if ( 0%{?_with_systemd:1} ) %if ( 0%{_for_fedora_koji_builds} ) -%define _init_enable() /bin/true ; +%global _init_enable() /bin/true ; %else -%define _init_enable() /bin/systemctl enable %1.service ; +%global _init_enable() /bin/systemctl enable %1.service ; %endif -%define _init_disable() /bin/systemctl disable %1.service ; -%define _init_restart() /bin/systemctl try-restart %1.service ; -%define _init_start() /bin/systemctl start %1.service ; -%define _init_stop() /bin/systemctl stop %1.service ; -%define _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%global _init_disable() /bin/systemctl disable %1.service ; +%global _init_restart() /bin/systemctl try-restart %1.service ; +%global _init_start() /bin/systemctl start %1.service ; +%global _init_stop() /bin/systemctl stop %1.service ; +%global _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; # can't seem to make a generic macro that works -%define _init_glusterd %{_unitdir}/glusterd.service -%define _init_glusterfsd %{_unitdir}/glusterfsd.service +%global _init_glusterd %{_unitdir}/glusterd.service +%global _init_glusterfsd %{_unitdir}/glusterfsd.service %else -%define _init_enable() /sbin/chkconfig --add %1 ; -%define _init_disable() /sbin/chkconfig --del %1 ; -%define _init_restart() /sbin/service %1 condrestart &>/dev/null ; -%define _init_start() /sbin/service %1 start &>/dev/null ; -%define _init_stop() /sbin/service %1 stop &>/dev/null ; -%define _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%global _init_enable() /sbin/chkconfig --add %1 ; +%global _init_disable() /sbin/chkconfig --del %1 ; +%global _init_restart() /sbin/service %1 condrestart &>/dev/null ; +%global _init_start() /sbin/service %1 start &>/dev/null ; +%global _init_stop() /sbin/service %1 stop &>/dev/null ; +%global _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; # can't seem to make a generic macro that works -%define _init_glusterd %{_sysconfdir}/init.d/glusterd -%define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd +%global _init_glusterd %{_sysconfdir}/init.d/glusterd +%global _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd %endif %if ( 0%{_for_fedora_koji_builds} ) @@ -141,8 +141,8 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} %if ( 0%{?rhel} && 0%{?rhel} < 6 ) - # _sharedstatedir is not provided by RHEL5 - %define _sharedstatedir /var/lib +# _sharedstatedir is not provided by RHEL5 +%global _sharedstatedir /var/lib %endif # We do not want to generate useless provides and requires for xlator @@ -151,25 +151,25 @@ # # TODO: RHEL5 does not have a convenient solution %if ( 0%{?rhel} == 6 ) - # filter_setup exists in RHEL6 only - %filter_provides_in %{_libdir}/glusterfs/%{version}/ - %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' - %filter_setup +# filter_setup exists in RHEL6 only +%filter_provides_in %{_libdir}/glusterfs/%{version}/ +%global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' +%filter_setup %else - # modern rpm and current Fedora do not generate requires when the - # provides are filtered - %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ +# modern rpm and current Fedora do not generate requires when the +# provides are filtered +%global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif ##----------------------------------------------------------------------------- ## All package definitions should be placed here and keep them sorted ## -Summary: Cluster File System +Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.6 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -551,10 +551,11 @@ like Pacemaker. %endif %package server -Summary: Clustered file-system server +Summary: Distributed file-system server Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} +Requires: %{name}-api = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse Requires: %{name}-fuse = %{version}-%{release} @@ -1284,6 +1285,10 @@ fi %endif %changelog +* Mon Nov 9 2015 Kaleb S. KEITHLEY - 3.7.6-2 +- glusterfs-server Requires: glusterfs-api +- s/%define/%global/ + * Mon Nov 9 2015 Kaleb S. KEITHLEY - 3.7.6-1 - GlusterFS 3.7.6 GA From 7937fd3816223566206ddb43af2b66f38d369c2d Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Mon, 1 Feb 2016 10:02:33 -0500 Subject: [PATCH 103/328] GlusterFS 3.7.7 GA --- glusterfs.spec | 26 +++++++++++++++++--------- sources | 2 +- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 0ee2cae..f9997b2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -51,7 +51,7 @@ # Fedora deprecated syslog, see # https://fedoraproject.org/wiki/Changes/NoDefaultSyslog # (And what about RHEL7?) -%if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} < 7 ) %global _without_syslog --disable-syslog %endif @@ -99,7 +99,7 @@ %global _without_systemtap --enable-systemtap=no # From https://fedoraproject.org/wiki/Packaging:Python#Macros -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) %{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %endif @@ -168,8 +168,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.6 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.7.7 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -193,7 +193,7 @@ Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) BuildRequires: python-simplejson %endif %if ( 0%{_for_fedora_koji_builds} ) @@ -213,7 +213,7 @@ BuildRequires: libaio-devel libacl-devel BuildRequires: python-devel BuildRequires: python-ctypes BuildRequires: userspace-rcu-devel >= 0.7 -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) BuildRequires: e2fsprogs-devel %else BuildRequires: libuuid-devel @@ -560,6 +560,7 @@ Requires: %{name}-cli = %{version}-%{release} # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse Requires: %{name}-fuse = %{version}-%{release} # self-heal daemon, rebalance, nfs-server etc. are actually clients +Requires: %{name}-api = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} # psmisc for killall, lvm2 for snapshot, and nfs-utils and # and rpcbind/portmap for gnfs server @@ -608,6 +609,10 @@ This package provides the glusterfs server daemon. # For whatever reason, install-sh is sometimes missing. When this gets fixed, # there is no need to run ./autogen or have a BuildRequires for automake. [ -e 'install-sh' -o -e 'install.sh' ] || ./autogen.sh +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +CFLAGS=-DUSE_INSECURE_OPENSSL +export CFLAGS +%endif %configure \ ./autogen.sh && %configure \ %{?_with_cmocka} \ @@ -1033,8 +1038,6 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so -%{_libexecdir}/glusterfs/gfind_missing_files -%{_sbindir}/gfind_missing_files %files api %exclude %{_libdir}/*.so @@ -1135,6 +1138,8 @@ fi %{_datadir}/glusterfs/scripts/generate-gfid-file.sh %{_datadir}/glusterfs/scripts/gsync-sync-gfid %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%{_libexecdir}/glusterfs/gfind_missing_files +%{_sbindir}/gfind_missing_files %endif %files libs @@ -1285,9 +1290,12 @@ fi %endif %changelog +* Mon Feb 1 2016 Kaleb S. KEITHLEY - 3.7.7-1 +- GlusterFS 3.7.7 GA + * Mon Nov 9 2015 Kaleb S. KEITHLEY - 3.7.6-2 - glusterfs-server Requires: glusterfs-api -- s/%define/%global/ +- s/%%define/%%global/ * Mon Nov 9 2015 Kaleb S. KEITHLEY - 3.7.6-1 - GlusterFS 3.7.6 GA diff --git a/sources b/sources index 1031a69..2955c3a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -af8df703e4e6b44f8baa1fe6a9d81f5c glusterfs-3.7.6.tar.gz +fcde32df66a78249d389fc90e8bf2f68 glusterfs-3.7.7.tar.gz From ba694c754bc238a1d0fcb9e1d6bb3570256bb3fb Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 3 Feb 2016 22:16:21 +0000 Subject: [PATCH 104/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index b88be59..3534c75 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -169,12 +169,12 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.7 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.1 +Release: 0.@PACKAGE_RELEASE@%{?dist}.2 Vendor: Gluster Community %endif License: GPLv2 or LGPLv3+ @@ -1299,6 +1299,9 @@ fi %endif %changelog +* Wed Feb 03 2016 Fedora Release Engineering - 3.7.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Mon Feb 1 2016 Kaleb S. KEITHLEY - 3.7.7-1 - GlusterFS 3.7.7 GA From d5269c8483c040dd1ad1e1883ab0ac9aaeee5217 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Mon, 8 Feb 2016 15:26:08 -0500 Subject: [PATCH 105/328] GlusterFS 3.7.8 GA --- glusterfs.spec | 91 ++++++++++++++++++-------------------------------- sources | 2 +- 2 files changed, 34 insertions(+), 59 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 3534c75..305ddb2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -168,13 +168,13 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.7 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.7.8 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.2 +Release: 0.@PACKAGE_RELEASE@%{?dist}.1 Vendor: Gluster Community %endif License: GPLv2 or LGPLv3+ @@ -399,7 +399,7 @@ Group: Applications/File Requires: %{name}-server = %{version}-%{release} Requires: nfs-ganesha-gluster -Requires: pcs +Requires: pcs, /usr/bin/dbus-send %description ganesha GlusterFS is a distributed file-system capable of scaling to several @@ -528,13 +528,9 @@ License: GPLv3+ BuildArch: noarch %endif # this Group handling comes from the Fedora resource-agents package -%if ( 0%{?fedora} || 0%{?centos_version} || 0%{?rhel} ) Group: System Environment/Base -%else -Group: Productivity/Clustering/HA -%endif # for glusterd -Requires: %{name}-server +Requires: %{name}-server = %{version}-%{release} # depending on the distribution, we need pacemaker or resource-agents Requires: %{_prefix}/lib/ocf/resource.d @@ -778,21 +774,12 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/reset -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/reset/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/reset/pre mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post @@ -813,25 +800,12 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%{__install} -p -m 0744 extras/hook-scripts/start/post/*.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post -%{__install} -p -m 0744 extras/hook-scripts/stop/pre/*.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre -%{__install} -p -m 0744 extras/hook-scripts/set/post/*.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post -%{__install} -p -m 0744 extras/hook-scripts/add-brick/post/*.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post -%{__install} -p -m 0744 extras/hook-scripts/add-brick/pre/*.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -%{__install} -p -m 0744 extras/hook-scripts/reset/post/*.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/reset/post - %if ( ! 0%{_for_fedora_koji_builds} ) find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs %endif ## Install bash completion for cli -install -p -m 0744 -D extras/command-completion/gluster.bash \ +install -p -m 0755 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster mv %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.* %{buildroot}%{_libexecdir}/glusterfs/ @@ -851,8 +825,7 @@ rm -rf %{buildroot} %endif %endif -%post api -/sbin/ldconfig +%post api -p /sbin/ldconfig %post fuse %if ( 0%{?rhel} == 5 ) @@ -867,8 +840,7 @@ if [ $1 -ge 1 ]; then fi %endif -%post libs -/sbin/ldconfig +%post libs -p /sbin/ldconfig %post server # Legacy server @@ -975,8 +947,7 @@ fi %endif %endif -%postun api -/sbin/ldconfig +%postun api -p /sbin/ldconfig %postun server %if (0%{?_with_firewalld:1}) @@ -986,8 +957,7 @@ if $(systemctl is-active firewalld 1>/dev/null 2>&1); then fi %endif -%postun libs -/sbin/ldconfig +%postun libs -p /sbin/ldconfig ##----------------------------------------------------------------------------- ## All %%files should be placed here and keep them sorted by groups @@ -1124,6 +1094,8 @@ fi %dir %{_libexecdir}/ganesha %attr(0755,-,-) %{_libexecdir}/ganesha/* %attr(0755,-,-) %{_prefix}/lib/ocf/resource.d/heartbeat/* +%{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh +%{_sharedstatedir}/glusterd/hooks/1/reset/post/S31ganesha-reset.sh %endif %if ( 0%{!?_without_georeplication:1} ) @@ -1198,16 +1170,14 @@ fi %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd %endif -%config %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh -%config %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh -%config %{_sharedstatedir}/glusterd/hooks/1/set/post/S30samba-set.sh -%config %{_sharedstatedir}/glusterd/hooks/1/set/post/S32gluster_enable_shared_storage.sh -%config %{_sharedstatedir}/glusterd/hooks/1/start/post/S29CTDBsetup.sh -%config %{_sharedstatedir}/glusterd/hooks/1/start/post/S30samba-start.sh -%config %{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh -%config %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh -%config %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh -%config %{_sharedstatedir}/glusterd/hooks/1/reset/post/S31ganesha-reset.sh +%{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh +%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh +%{_sharedstatedir}/glusterd/hooks/1/set/post/S30samba-set.sh +%{_sharedstatedir}/glusterd/hooks/1/set/post/S32gluster_enable_shared_storage.sh +%{_sharedstatedir}/glusterd/hooks/1/start/post/S29CTDBsetup.sh +%{_sharedstatedir}/glusterd/hooks/1/start/post/S30samba-start.sh +%{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh +%{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh # init files %_init_glusterd %if ( 0%{_for_fedora_koji_builds} ) @@ -1252,30 +1222,32 @@ fi %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options # This is really ugly, but I have no idea how to mark these directories in # any other way. They should belong to the glusterfs-server package, but # don't exist after installation. They are generated on the first start... -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers @@ -1299,6 +1271,9 @@ fi %endif %changelog +* Mon Feb 8 2016 Kaleb S. KEITHLEY - 3.7.8-1 +- GlusterFS 3.7.8 GA + * Wed Feb 03 2016 Fedora Release Engineering - 3.7.7-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild diff --git a/sources b/sources index 2955c3a..09420aa 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fcde32df66a78249d389fc90e8bf2f68 glusterfs-3.7.7.tar.gz +c488a2f546f9c24ce873e3de6289e9aa glusterfs-3.7.8.tar.gz From e7aefb690090d353137ab5bcf9d4f0e86f8ecd45 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Fri, 26 Feb 2016 17:40:49 +0100 Subject: [PATCH 106/328] run /sbin/ldconfig without arguments, not as interpreter Resolves: rhbz#1312374 Signed-off-by: Niels de Vos --- glusterfs.spec | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 305ddb2..97dd4fd 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -169,7 +169,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.8 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -825,7 +825,8 @@ rm -rf %{buildroot} %endif %endif -%post api -p /sbin/ldconfig +%post api +/sbin/ldconfig %post fuse %if ( 0%{?rhel} == 5 ) @@ -840,7 +841,8 @@ if [ $1 -ge 1 ]; then fi %endif -%post libs -p /sbin/ldconfig +%post libs +/sbin/ldconfig %post server # Legacy server @@ -947,7 +949,8 @@ fi %endif %endif -%postun api -p /sbin/ldconfig +%postun api +/sbin/ldconfig %postun server %if (0%{?_with_firewalld:1}) @@ -957,7 +960,8 @@ if $(systemctl is-active firewalld 1>/dev/null 2>&1); then fi %endif -%postun libs -p /sbin/ldconfig +%postun libs +/sbin/ldconfig ##----------------------------------------------------------------------------- ## All %%files should be placed here and keep them sorted by groups @@ -1271,6 +1275,9 @@ fi %endif %changelog +* Fri Feb 26 2016 Niels de Vos - 3.7.8-2 +- Just run /sbin/ldconfig without arguments, not as interpreter (#1312374) + * Mon Feb 8 2016 Kaleb S. KEITHLEY - 3.7.8-1 - GlusterFS 3.7.8 GA From 04588ed835e8583a7477b9d7a6a2e12e937bcaad Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Fri, 4 Mar 2016 20:07:40 -0500 Subject: [PATCH 107/328] Requires /bin/dbus -> dbus - quiet %post server (1312897) - syslog dependency (1310437) --- glusterfs.spec | 51 ++++++++------------------------------------------ 1 file changed, 8 insertions(+), 43 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 97dd4fd..eaf79a3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -169,7 +169,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.8 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Release: 3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -399,7 +399,7 @@ Group: Applications/File Requires: %{name}-server = %{version}-%{release} Requires: nfs-ganesha-gluster -Requires: pcs, /usr/bin/dbus-send +Requires: pcs, dbus %description ganesha GlusterFS is a distributed file-system capable of scaling to several @@ -438,14 +438,6 @@ This package provides support to geo-replication. %package libs Summary: GlusterFS common libraries Group: Applications/File -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -Requires: rsyslog-mmjsonparse -%endif -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -Requires: rsyslog-mmcount -%endif -%endif %description libs GlusterFS is a distributed file-system capable of scaling to several @@ -750,23 +742,6 @@ install -D -p -m 0644 extras/glusterfs-georep-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep %endif -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -install -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ - %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif - -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -install -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ - %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif - -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -install -D -p -m 0644 extras/logger.conf.example \ - %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example -%endif -%endif - # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options @@ -819,11 +794,6 @@ rm -rf %{buildroot} ## All %%post should be placed here and keep them sorted ## %post -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog -%endif -%endif %post api /sbin/ldconfig @@ -891,7 +861,7 @@ fi #reload service files if firewalld running if $(systemctl is-active firewalld 1>/dev/null 2>&1); then #firewalld-filesystem is not available for rhel7, so command used for reload. - firewall-cmd --reload + firewall-cmd --reload 1>/dev/null 2>&1 fi %endif @@ -943,11 +913,6 @@ fi ## %postun /sbin/ldconfig -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog -%endif -%endif %postun api /sbin/ldconfig @@ -970,11 +935,6 @@ fi %{!?_licensedir:%global license %%doc} %license COPYING-GPLV2 COPYING-LGPLV3 %doc ChangeLog INSTALL README.md THANKS -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%{_sysconfdir}/rsyslog.d/gluster.conf.example -%endif -%endif %{_mandir}/man8/*gluster*.8* %exclude %{_mandir}/man8/gluster.8* %dir %{_localstatedir}/log/glusterfs @@ -1275,6 +1235,11 @@ fi %endif %changelog +* Fri Mar 4 2016 Kaleb S. KEITHLEY - 3.7.8-3 +- Requires /bin/dbus -> dbus +- quiet %%post server (1312897) +- syslog dependency (1310437) + * Fri Feb 26 2016 Niels de Vos - 3.7.8-2 - Just run /sbin/ldconfig without arguments, not as interpreter (#1312374) From 4baf64249ad465a1bfa3d4317ed332c4393dce0d Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Tue, 8 Mar 2016 15:27:45 -0500 Subject: [PATCH 108/328] %post, %pre -p /sbin/ldconfig handling (1312374, 1315024) --- glusterfs.spec | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index eaf79a3..17a7a7e 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -169,7 +169,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.8 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Release: 4%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -793,26 +793,25 @@ rm -rf %{buildroot} ##----------------------------------------------------------------------------- ## All %%post should be placed here and keep them sorted ## -%post +%post -p /sbin/ldconfig -%post api -/sbin/ldconfig +%post api -p /sbin/ldconfig -%post fuse %if ( 0%{?rhel} == 5 ) +%post fuse modprobe fuse +exit 0 %endif %if ( 0%{!?_without_georeplication:1} ) %post geo-replication -#restart glusterd. if [ $1 -ge 1 ]; then %_init_restart glusterd fi +exit 0 %endif -%post libs -/sbin/ldconfig +%post libs -p /sbin/ldconfig %post server # Legacy server @@ -886,6 +885,7 @@ else #rpm_script_t context. rm -rf /var/run/glusterd.socket fi +exit 0 ##----------------------------------------------------------------------------- ## All %%preun should be placed here and keep them sorted @@ -907,27 +907,26 @@ if [ $1 -ge 1 ]; then fi %_init_restart glusterd fi +exit 0 ##----------------------------------------------------------------------------- ## All %%postun should be placed here and keep them sorted ## -%postun -/sbin/ldconfig +%postun -p /sbin/ldconfig -%postun api -/sbin/ldconfig +%postun api -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig -%postun server %if (0%{?_with_firewalld:1}) +%postun server #reload service files if firewalld running if $(systemctl is-active firewalld 1>/dev/null 2>&1); then firewall-cmd --reload fi +exit 0 %endif -%postun libs -/sbin/ldconfig - ##----------------------------------------------------------------------------- ## All %%files should be placed here and keep them sorted by groups ## @@ -1235,6 +1234,9 @@ fi %endif %changelog +* Fri Mar 4 2016 Kaleb S. KEITHLEY - 3.7.8-4 +- %%post, %%pre -p /sbin/ldconfig handling (1312374, 1315024) + * Fri Mar 4 2016 Kaleb S. KEITHLEY - 3.7.8-3 - Requires /bin/dbus -> dbus - quiet %%post server (1312897) From 0a03de21f1c04b0c38f44bf3b26dd518d786dedf Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Sat, 19 Mar 2016 12:50:50 -0400 Subject: [PATCH 109/328] GlusterFS 3.7.9 GA --- glusterfs.spec | 22 +++++++++++++++++++--- sources | 2 +- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 17a7a7e..241e9e7 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -168,8 +168,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.8 -Release: 4%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.7.9 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -793,7 +793,15 @@ rm -rf %{buildroot} ##----------------------------------------------------------------------------- ## All %%post should be placed here and keep them sorted ## -%post -p /sbin/ldconfig +%post +/sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +exit 0 +%endif +%endif + %post api -p /sbin/ldconfig @@ -977,6 +985,10 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so +%dir %{_localstatedir}/run/gluster +%if 0%{?_tmpfilesdir:1} +%{_tmpfilesdir}/gluster.conf +%endif %files api %exclude %{_libdir}/*.so @@ -1081,6 +1093,7 @@ exit 0 %{_datadir}/glusterfs/scripts/gsync-upgrade.sh %{_datadir}/glusterfs/scripts/generate-gfid-file.sh %{_datadir}/glusterfs/scripts/gsync-sync-gfid +%{_datadir}/glusterfs/scripts/schedule_georep.py* %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf %{_libexecdir}/glusterfs/gfind_missing_files %{_sbindir}/gfind_missing_files @@ -1234,6 +1247,9 @@ exit 0 %endif %changelog +* Sat Mar 19 2016 Kaleb S. KEITHLEY - 3.7.9-1 +- GlusterFS 3.7.9 GA + * Fri Mar 4 2016 Kaleb S. KEITHLEY - 3.7.8-4 - %%post, %%pre -p /sbin/ldconfig handling (1312374, 1315024) diff --git a/sources b/sources index 09420aa..07c42f5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c488a2f546f9c24ce873e3de6289e9aa glusterfs-3.7.8.tar.gz +622e8d3557992554528f33d577c95d8b glusterfs-3.7.9.tar.gz From 3b5a3fa4790b0ff9a9103a2758761a2d75cac48b Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Thu, 31 Mar 2016 07:24:38 -0400 Subject: [PATCH 110/328] glusterfs-ganesha requires cman, pacemaker, corosync on RHEL6 --- glusterfs.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 241e9e7..cc85012 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -169,7 +169,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.9 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -400,6 +400,9 @@ Group: Applications/File Requires: %{name}-server = %{version}-%{release} Requires: nfs-ganesha-gluster Requires: pcs, dbus +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +Requires: cman, pacemaker, corosync +%endif %description ganesha GlusterFS is a distributed file-system capable of scaling to several @@ -1247,6 +1250,9 @@ exit 0 %endif %changelog +* Sat Mar 19 2016 Kaleb S. KEITHLEY - 3.7.9-2 +- glusterfs-ganesha requires cman, pacemaker, corosync on RHEL6 + * Sat Mar 19 2016 Kaleb S. KEITHLEY - 3.7.9-1 - GlusterFS 3.7.9 GA From 5681a31eeca1ee64ed79e99bb74bfad978b8906b Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Fri, 1 Apr 2016 07:52:50 -0400 Subject: [PATCH 111/328] GlusterFS 3.7.10 GA --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index cc85012..5043d27 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -168,8 +168,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.9 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.7.10 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1250,6 +1250,9 @@ exit 0 %endif %changelog +* Fri Apr 1 2016 Kaleb S. KEITHLEY - 3.7.10-1 +- GlusterFS 3.7.10 GA + * Sat Mar 19 2016 Kaleb S. KEITHLEY - 3.7.9-2 - glusterfs-ganesha requires cman, pacemaker, corosync on RHEL6 diff --git a/sources b/sources index 07c42f5..eb6d250 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -622e8d3557992554528f33d577c95d8b glusterfs-3.7.9.tar.gz +174ebbca909e77f933cc6d58d02efa94 glusterfs-3.7.10.tar.gz From 07bb35fd475374bd73a7e1e61d09ecb896511d4e Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Mon, 18 Apr 2016 08:14:43 -0400 Subject: [PATCH 112/328] GlusterFS 3.7.11 GA --- glusterfs.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5043d27..f9c39c8 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -168,7 +168,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.10 +Version: 3.7.11 Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else @@ -1250,6 +1250,9 @@ exit 0 %endif %changelog +* Fri Apr 18 2016 Kaleb S. KEITHLEY - 3.7.11-1 +- GlusterFS 3.7.11 GA + * Fri Apr 1 2016 Kaleb S. KEITHLEY - 3.7.10-1 - GlusterFS 3.7.10 GA diff --git a/sources b/sources index eb6d250..e17b315 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -174ebbca909e77f933cc6d58d02efa94 glusterfs-3.7.10.tar.gz +b617d007c967cc482abf1077e2a2968f glusterfs-3.7.11.tar.gz From cdd60bb03d1ef55358f88cdfeceaf96aa14f78a0 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Wed, 27 Apr 2016 10:01:52 -0400 Subject: [PATCH 113/328] %postun libs on RHEL6 w/o firewalld --- glusterfs.spec | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f9c39c8..4448958 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -169,7 +169,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.7.11 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -801,9 +801,9 @@ rm -rf %{buildroot} %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %_init_restart rsyslog +%endif +%endif exit 0 -%endif -%endif %post api -p /sbin/ldconfig @@ -929,14 +929,15 @@ exit 0 %postun libs -p /sbin/ldconfig -%if (0%{?_with_firewalld:1}) %postun server +/sbin/ldconfig +%if (0%{?_with_firewalld:1}) #reload service files if firewalld running if $(systemctl is-active firewalld 1>/dev/null 2>&1); then firewall-cmd --reload fi -exit 0 %endif +exit 0 ##----------------------------------------------------------------------------- ## All %%files should be placed here and keep them sorted by groups @@ -1250,6 +1251,9 @@ exit 0 %endif %changelog +* Fri Apr 18 2016 Kaleb S. KEITHLEY - 3.7.11-2 +- %postun libs on RHEL6 w/o firewalld + * Fri Apr 18 2016 Kaleb S. KEITHLEY - 3.7.11-1 - GlusterFS 3.7.11 GA From 96ba93c7712a9c41d22a5118bd703365709d01f1 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Wed, 27 Apr 2016 10:03:17 -0400 Subject: [PATCH 114/328] fix dates in %change --- glusterfs.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4448958..bdd1689 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1251,10 +1251,10 @@ exit 0 %endif %changelog -* Fri Apr 18 2016 Kaleb S. KEITHLEY - 3.7.11-2 +* Wed Apr 27 2016 Kaleb S. KEITHLEY - 3.7.11-2 - %postun libs on RHEL6 w/o firewalld -* Fri Apr 18 2016 Kaleb S. KEITHLEY - 3.7.11-1 +* Mon Apr 18 2016 Kaleb S. KEITHLEY - 3.7.11-1 - GlusterFS 3.7.11 GA * Fri Apr 1 2016 Kaleb S. KEITHLEY - 3.7.10-1 From db8ed6acee7af6034160b7b6921c97db2c8bfd81 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Mon, 16 May 2016 11:28:12 -0400 Subject: [PATCH 115/328] 3.8.0 RC1 --- glusterfs-3.8.0rc1.VERSION.patch | 6 + glusterfs.spec | 283 ++++++++++++++----------------- sources | 2 +- 3 files changed, 131 insertions(+), 160 deletions(-) create mode 100644 glusterfs-3.8.0rc1.VERSION.patch diff --git a/glusterfs-3.8.0rc1.VERSION.patch b/glusterfs-3.8.0rc1.VERSION.patch new file mode 100644 index 0000000..fb800c7 --- /dev/null +++ b/glusterfs-3.8.0rc1.VERSION.patch @@ -0,0 +1,6 @@ +--- glusterfs-3.8rc1/VERSION.orig 2016-05-16 10:59:02.691769734 -0400 ++++ glusterfs-3.8rc1/VERSION 2016-05-16 11:01:16.408769734 -0400 +@@ -1 +1 @@ +-v3.8rc1-0 +\ No newline at end of file ++v3.8.0rc1 diff --git a/glusterfs.spec b/glusterfs.spec index bdd1689..5b90436 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,12 +3,16 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag beta2 +%global prereltag rc1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted ## +# if you wish to compile an rpm with debugging... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with debug +%{?_with_debug:%global _with_debug --enable-debug} + # if you wish to compile an rpm with cmocka unit testing... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka %{?_with_cmocka:%global _with_cmocka --enable-cmocka} @@ -63,15 +67,6 @@ %global _without_bd --disable-bd-xlator %endif -# if you wish to compile an rpm without the qemu-block support... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block -%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -# xlators/features/qemu-block fails to build on RHEL5, disable it -%global _without_qemu_block --disable-qemu-block -%endif - # Disable data-tiering on EL5, sqlite is too old %if ( 0%{?rhel} && 0%{?rhel} < 6 ) %global _without_tiering --disable-tiering @@ -95,9 +90,6 @@ %global _with_tmpfilesdir --without-tmpfilesdir %endif -# there is no systemtap support! Perhaps some day there will be -%global _without_systemtap --enable-systemtap=no - # From https://fedoraproject.org/wiki/Packaging:Python#Macros %if ( 0%{?rhel} && 0%{?rhel} < 6 ) %{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} @@ -168,8 +160,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.7.11 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.8.0 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -181,12 +173,13 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-3.8%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source6: rhel5-load-fuse-modules Source7: glusterfsd.service Source8: glusterfsd.init +Patch0: glusterfs-3.8.0rc1.VERSION.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif @@ -224,15 +217,9 @@ BuildRequires: libcmocka-devel >= 1.0.1 %if ( 0%{!?_without_tiering:1} ) BuildRequires: sqlite-devel %endif -%if ( 0%{!?_without_systemtap:1} ) -BuildRequires: systemtap-sdt-devel -%endif %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif -%if ( 0%{!?_without_qemu_block:1} ) -BuildRequires: glib2-devel -%endif %if ( 0%{!?_without_georeplication:1} ) BuildRequires: libattr-devel %endif @@ -392,7 +379,6 @@ is in user space and easily manageable. This package provides support to FUSE based clients and includes the glusterfsd and glusterfs binaries. -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %package ganesha Summary: NFS-Ganesha configuration Group: Applications/File @@ -415,7 +401,6 @@ is in user space and easily manageable. This package provides the configuration and related files for using NFS-Ganesha as the NFS server using GlusterFS -%endif %if ( 0%{!?_without_georeplication:1} ) %package geo-replication @@ -523,7 +508,11 @@ License: GPLv3+ BuildArch: noarch %endif # this Group handling comes from the Fedora resource-agents package +%if ( 0%{?fedora} || 0%{?centos_version} || 0%{?rhel} ) Group: System Environment/Base +%else +Group: Productivity/Clustering/HA +%endif # for glusterd Requires: %{name}-server = %{version}-%{release} # depending on the distribution, we need pacemaker or resource-agents @@ -548,7 +537,6 @@ Summary: Distributed file-system server Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} -Requires: %{name}-api = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse Requires: %{name}-fuse = %{version}-%{release} @@ -556,7 +544,7 @@ Requires: %{name}-fuse = %{version}-%{release} Requires: %{name}-api = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} # psmisc for killall, lvm2 for snapshot, and nfs-utils and -# and rpcbind/portmap for gnfs server +# rpcbind/portmap for gnfs server Requires: psmisc Requires: lvm2 Requires: nfs-utils @@ -596,19 +584,18 @@ This package provides the glusterfs server daemon. %prep -%setup -q -n %{name}-%{version}%{?prereltag} +%setup -q -n %{name}-3.8%{?prereltag} +%patch0 -p1 %build -# For whatever reason, install-sh is sometimes missing. When this gets fixed, -# there is no need to run ./autogen or have a BuildRequires for automake. -[ -e 'install-sh' -o -e 'install.sh' ] || ./autogen.sh %if ( 0%{?rhel} && 0%{?rhel} < 6 ) CFLAGS=-DUSE_INSECURE_OPENSSL export CFLAGS %endif -%configure \ + ./autogen.sh && %configure \ %{?_with_cmocka} \ + %{?_with_debug} \ %{?_with_tmpfilesdir} \ %{?_without_bd} \ %{?_without_epoll} \ @@ -616,10 +603,8 @@ export CFLAGS %{?_without_georeplication} \ %{?_with_firewalld} \ %{?_without_ocf} \ - %{?_without_qemu_block} \ %{?_without_rdma} \ %{?_without_syslog} \ - %{?_without_systemtap} \ %{?_without_tiering} # fix hardening and remove rpath in shlibs @@ -631,36 +616,15 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool make %{?_smp_mflags} -# Build Glupy -pushd xlators/features/glupy/src -FLAGS="$RPM_OPT_FLAGS" python setup.py build -popd - %check make check %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} -# install the Glupy Python library in /usr/lib/python*/site-packages -pushd xlators/features/glupy/src -python setup.py install --skip-build --verbose --root %{buildroot} -popd # Install include directory -mkdir -p %{buildroot}%{_includedir}/glusterfs -install -p -m 0644 libglusterfs/src/*.h \ - %{buildroot}%{_includedir}/glusterfs/ install -p -m 0644 contrib/uuid/*.h \ %{buildroot}%{_includedir}/glusterfs/ -# Following needed by hekafs multi-tenant translator -mkdir -p %{buildroot}%{_includedir}/glusterfs/rpc -install -p -m 0644 rpc/rpc-lib/src/*.h \ - %{buildroot}%{_includedir}/glusterfs/rpc/ -install -p -m 0644 rpc/xdr/src/*.h \ - %{buildroot}%{_includedir}/glusterfs/rpc/ -mkdir -p %{buildroot}%{_includedir}/glusterfs/server -install -p -m 0644 xlators/protocol/server/src/*.h \ - %{buildroot}%{_includedir}/glusterfs/server/ %if ( 0%{_for_fedora_koji_builds} ) install -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd @@ -682,7 +646,6 @@ mkdir -p %{buildroot}%{_localstatedir}/log/glusterd mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd mkdir -p %{buildroot}%{_localstatedir}/run/gluster -touch %{buildroot}%{python_sitelib}/gluster/__init__.py # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete @@ -709,11 +672,6 @@ EOM rm -rf %{buildroot}/benchmarking rm -f %{buildroot}/glusterfs-mode.el rm -f %{buildroot}/glusterfs.vim -rm -rf %{buildroot}%{_libexecdir}/glusterfs/gfind_missing_files -rm -f %{buildroot}%{_sbindir}/gfind_missing_files -rm -rf %{buildroot}%{_sysconfdir}/ganesha -rm -rf %{buildroot}%{_libexecdir}/ganesha -rm -f %{buildroot}%{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_* %else # make install always puts these in %%{_defaultdocdir}/%%{name} so don't # use %%{_pkgdocdir}; that will be wrong on later Fedora distributions @@ -748,33 +706,19 @@ install -D -p -m 0644 extras/glusterfs-georep-logrotate \ # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1 -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre +subdirs=(add-brick create copy-file delete gsync-create remove-brick reset set start stop) +for dir in ${subdirs[@]}; do + mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/"$dir"/{pre,post} +done mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/bitd +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/quotad +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/scrub +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/snaps +mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/ss_brick touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid @@ -786,10 +730,6 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus install -p -m 0755 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster -mv %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.* %{buildroot}%{_libexecdir}/glusterfs/ -ln -s %{_libexecdir}/glusterfs/S57glusterfind-delete-post.py %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.py - - %clean rm -rf %{buildroot} @@ -805,7 +745,6 @@ rm -rf %{buildroot} %endif exit 0 - %post api -p /sbin/ldconfig %if ( 0%{?rhel} == 5 ) @@ -822,12 +761,16 @@ fi exit 0 %endif -%post libs -p /sbin/ldconfig +%post libs +/sbin/ldconfig +exit 0 %post server # Legacy server %_init_enable glusterd +%if ( 0%{_for_fedora_koji_builds} ) %_init_enable glusterfsd +%endif # ".cmd_log_history" is renamed to "cmd_history.log" in GlusterFS-3.7 . # While upgrading glusterfs-server package form GlusterFS version <= 3.6 to # GlusterFS version 3.7, ".cmd_log_history" should be renamed to @@ -923,11 +866,22 @@ exit 0 ##----------------------------------------------------------------------------- ## All %%postun should be placed here and keep them sorted ## -%postun -p /sbin/ldconfig +%postun +/sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif +exit 0 -%postun api -p /sbin/ldconfig +%postun api +/sbin/ldconfig +exit 0 -%postun libs -p /sbin/ldconfig +%postun libs +/sbin/ldconfig +exit 0 %postun server /sbin/ldconfig @@ -973,6 +927,7 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/fdl.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so @@ -1014,14 +969,12 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/pump.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/ganesha.so -%if ( 0%{!?_without_qemu_block:1} ) -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/qemu-block.so -%endif %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/dht2c.so %files devel -%{_includedir}/glusterfs -%exclude %{_includedir}/glusterfs/y.tab.h +%dir %{_includedir}/glusterfs +%{_includedir}/glusterfs/* %exclude %{_includedir}/glusterfs/api %exclude %{_libdir}/libgfapi.so %{_libdir}/*.so @@ -1046,10 +999,6 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so # Glupy Python files %{python_sitelib}/gluster/glupy/* -# Don't expect a .egg-info file on EL5 -%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) -%{python_sitelib}/glusterfs_glupy*.egg-info -%endif %files fuse # glusterfs is a symlink to glusterfsd, -server depends on -fuse. @@ -1067,40 +1016,39 @@ exit 0 %endif %endif -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %files ganesha %{_sysconfdir}/ganesha/* -%dir %{_libexecdir}/ganesha -%attr(0755,-,-) %{_libexecdir}/ganesha/* -%attr(0755,-,-) %{_prefix}/lib/ocf/resource.d/heartbeat/* +%{_libexecdir}/ganesha/* +%{_prefix}/lib/ocf/resource.d/heartbeat/* %{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh %{_sharedstatedir}/glusterd/hooks/1/reset/post/S31ganesha-reset.sh -%endif %if ( 0%{!?_without_georeplication:1} ) %files geo-replication %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep + +%{_sbindir}/gfind_missing_files %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* %{_libexecdir}/glusterfs/gverify.sh %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh %{_libexecdir}/glusterfs/peer_gsec_create %{_libexecdir}/glusterfs/peer_mountbroker -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%dir %{_sharedstatedir}/glusterd/hooks -%dir %{_sharedstatedir}/glusterd/hooks/1 -%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create -%dir %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh +%{_libexecdir}/glusterfs/gfind_missing_files + + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre + %{_datadir}/glusterfs/scripts/get-gfid.sh %{_datadir}/glusterfs/scripts/slave-upgrade.sh %{_datadir}/glusterfs/scripts/gsync-upgrade.sh %{_datadir}/glusterfs/scripts/generate-gfid-file.sh %{_datadir}/glusterfs/scripts/gsync-sync-gfid %{_datadir}/glusterfs/scripts/schedule_georep.py* -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf -%{_libexecdir}/glusterfs/gfind_missing_files -%{_sbindir}/gfind_missing_files %endif %files libs @@ -1126,7 +1074,8 @@ exit 0 %files regression-tests %{_prefix}/share/glusterfs/run-tests.sh %{_prefix}/share/glusterfs/tests -%exclude %{_datadir}/glusterfs/tests/basic/rpm.t +%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t +%exclude %{_prefix}/share/glusterfs/tests/vagrant %endif %if ( 0%{!?_without_ocf:1} ) @@ -1137,32 +1086,20 @@ exit 0 %files server %doc extras/clear_xattrs.sh -%config(noreplace) %{_sysconfdir}/sysconfig/glusterd +# sysconf %config(noreplace) %{_sysconfdir}/glusterfs %dir %{_localstatedir}/run/gluster -%if 0%{?_tmpfilesdir:1} -%{_tmpfilesdir}/gluster.conf -%endif -%dir %{_sharedstatedir}/glusterd -%dir %{_sharedstatedir}/glusterd/groups -%config(noreplace) %{_sharedstatedir}/glusterd/groups/virt -# Legacy configs +%config(noreplace) %{_sysconfdir}/sysconfig/glusterd %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd %endif -%{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh -%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh -%{_sharedstatedir}/glusterd/hooks/1/set/post/S30samba-set.sh -%{_sharedstatedir}/glusterd/hooks/1/set/post/S32gluster_enable_shared_storage.sh -%{_sharedstatedir}/glusterd/hooks/1/start/post/S29CTDBsetup.sh -%{_sharedstatedir}/glusterd/hooks/1/start/post/S30samba-start.sh -%{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh -%{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh + # init files %_init_glusterd %if ( 0%{_for_fedora_koji_builds} ) %_init_glusterfsd %endif + # binaries %{_sbindir}/glusterd %{_sbindir}/glfsheal @@ -1173,6 +1110,9 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/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/experimental/jbrc.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/jbr.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/dht2s.so %if ( 0%{!?_without_tiering:1} ) %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so %endif @@ -1184,57 +1124,78 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/upcall.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/leases.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/decompounder.so %if ( 0%{!?_without_tiering:1} ) %{_libdir}/libgfdb.so.* %endif -#snap_scheduler +# snap_scheduler %{_sbindir}/snap_scheduler.py %{_sbindir}/gcron.py -#hookscripts -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre - -%ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info -%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options -# This is really ugly, but I have no idea how to mark these directories in -# any other way. They should belong to the glusterfs-server package, but -# don't exist after installation. They are generated on the first start... +# /var/lib/glusterd, e.g. hookscripts, etc. +%ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/bitd + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/groups + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/virt + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file/post +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file/pre + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post + %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.py %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset/pre + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post/S30samba-set.sh + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post/S32gluster_enable_shared_storage.sh %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/pre + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post/S29CTDBsetup.sh + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post/S30samba-start.sh %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/pre + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/nfs-server.vol %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid +%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/quotad +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/scrub +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/snaps +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/ss_brick +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols # Extra utility script %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh @@ -1243,14 +1204,18 @@ exit 0 %{_libexecdir}/glusterfs/glusterfind %{_bindir}/glusterfind %{_libexecdir}/glusterfs/peer_add_secret_pub -%{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.py -%{_libexecdir}/glusterfs/S57glusterfind-delete-post.* %if ( 0%{?_with_firewalld:1} ) %{_prefix}/lib/firewalld/services/glusterfs.xml %endif +%{_sbindir}/gf_logdump +%{_sbindir}/gf_recon + %changelog +* Mon May 16 2016 Kaleb S. KEITHLEY - 3.8.0-0.1rc1 +- 3.8.0 RC1 + * Wed Apr 27 2016 Kaleb S. KEITHLEY - 3.7.11-2 - %postun libs on RHEL6 w/o firewalld diff --git a/sources b/sources index e17b315..798f201 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b617d007c967cc482abf1077e2a2968f glusterfs-3.7.11.tar.gz +52a146ad28525b8b447d1b9bcc5c36e7 glusterfs-3.8rc1.tar.gz From 94615c1abac07a0b4a3579cb0b59606cc6398cd4 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Wed, 25 May 2016 09:07:45 -0400 Subject: [PATCH 116/328] 3.8.0 RC2 --- glusterfs-3.8.0rc2.VERSION.patch | 6 ++++++ glusterfs.spec | 16 ++++++++++------ sources | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 glusterfs-3.8.0rc2.VERSION.patch diff --git a/glusterfs-3.8.0rc2.VERSION.patch b/glusterfs-3.8.0rc2.VERSION.patch new file mode 100644 index 0000000..456d617 --- /dev/null +++ b/glusterfs-3.8.0rc2.VERSION.patch @@ -0,0 +1,6 @@ +--- glusterfs-3.8rc1/VERSION.orig 2016-05-16 10:59:02.691769734 -0400 ++++ glusterfs-3.8rc1/VERSION 2016-05-16 11:01:16.408769734 -0400 +@@ -1 +1 @@ +-v3.8rc2-0 +\ No newline at end of file ++v3.8.0rc2 diff --git a/glusterfs.spec b/glusterfs.spec index 5b90436..cbade14 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag rc1 +%global prereltag rc2 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -161,7 +161,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.8.0 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -179,7 +179,7 @@ Source2: glusterfsd.sysconfig Source6: rhel5-load-fuse-modules Source7: glusterfsd.service Source8: glusterfsd.init -Patch0: glusterfs-3.8.0rc1.VERSION.patch +Patch0: glusterfs-3.8.0rc2.VERSION.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif @@ -199,13 +199,16 @@ BuildRequires: python-simplejson Requires: %{name}-libs = %{version}-%{release} BuildRequires: bison flex -BuildRequires: gcc make automake libtool +BuildRequires: gcc make libtool BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel BuildRequires: libaio-devel libacl-devel BuildRequires: python-devel BuildRequires: python-ctypes BuildRequires: userspace-rcu-devel >= 0.7 +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +BuildRequires: automake +%endif %if ( 0%{?rhel} && 0%{?rhel} < 6 ) BuildRequires: e2fsprogs-devel %else @@ -970,7 +973,6 @@ exit 0 %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/pump.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/ganesha.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/dht2c.so %files devel %dir %{_includedir}/glusterfs @@ -1112,7 +1114,6 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bitrot-stub.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/jbrc.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/jbr.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/dht2s.so %if ( 0%{!?_without_tiering:1} ) %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so %endif @@ -1213,6 +1214,9 @@ exit 0 %{_sbindir}/gf_recon %changelog +* Wed May 25 2016 Kaleb S. KEITHLEY - 3.8.0-0.2rc2 +- 3.8.0 RC2 + * Mon May 16 2016 Kaleb S. KEITHLEY - 3.8.0-0.1rc1 - 3.8.0 RC1 diff --git a/sources b/sources index 798f201..0e35c59 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -52a146ad28525b8b447d1b9bcc5c36e7 glusterfs-3.8rc1.tar.gz +e4d9c5d36714f6471f865c7c5724e6db glusterfs-3.8rc2.tar.gz From f5e2ac87e4d51660f9055e43d16ca79bd188776f Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Tue, 14 Jun 2016 12:17:04 -0400 Subject: [PATCH 117/328] 3.8.0 GA --- glusterfs.spec | 19 +++++++------------ sources | 2 +- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index cbade14..a3556de 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag rc2 +# %%global prereltag rc2 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -161,7 +161,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.8.0 -Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -173,13 +173,12 @@ License: GPLv2 or LGPLv3+ Group: System Environment/Base URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-3.8%{?prereltag}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/%{name}/src/%{name}-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source6: rhel5-load-fuse-modules Source7: glusterfsd.service Source8: glusterfsd.init -Patch0: glusterfs-3.8.0rc2.VERSION.patch %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif @@ -587,8 +586,7 @@ This package provides the glusterfs server daemon. %prep -%setup -q -n %{name}-3.8%{?prereltag} -%patch0 -p1 +%setup -q -n %{name}-%{version}%{?prereltag} %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -930,7 +928,6 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/fdl.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so @@ -1112,8 +1109,6 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/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/experimental/jbrc.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/jbr.so %if ( 0%{!?_without_tiering:1} ) %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so %endif @@ -1210,10 +1205,10 @@ exit 0 %{_prefix}/lib/firewalld/services/glusterfs.xml %endif -%{_sbindir}/gf_logdump -%{_sbindir}/gf_recon - %changelog +* Tue Jun 14 2016 Kaleb S. KEITHLEY - 3.8.0-1 +- 3.8.0 GA + * Wed May 25 2016 Kaleb S. KEITHLEY - 3.8.0-0.2rc2 - 3.8.0 RC2 diff --git a/sources b/sources index 0e35c59..46de43a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e4d9c5d36714f6471f865c7c5724e6db glusterfs-3.8rc2.tar.gz +db1880ad32ef1114ce52060b266907cb glusterfs-3.8.0.tar.gz From d3513ee46cee7ad2147ac3095087f1d86b595417 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Wed, 22 Jun 2016 07:15:00 -0400 Subject: [PATCH 118/328] 3.8.0 GA, rebuild after userspace-rcu SONAME bump --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index a3556de..e355d54 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -161,7 +161,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.8.0 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1206,6 +1206,9 @@ exit 0 %endif %changelog +* Wed Jun 22 2016 Kaleb S. KEITHLEY - 3.8.0-2 +- 3.8.0 GA, rebuild after userspace-rcu SONAME bump + * Tue Jun 14 2016 Kaleb S. KEITHLEY - 3.8.0-1 - 3.8.0 GA From 8ea67ac2c93238eb6f5f43ebe29f56680784ccd8 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Mon, 27 Jun 2016 08:55:16 -0400 Subject: [PATCH 119/328] 3.8.0 GA, http://review.gluster.org/#/c/14779/ --- glusterfs-3.8.0.api.glfs-fops.patch | 23 +++++++++++++++++++++++ glusterfs.spec | 7 ++++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 glusterfs-3.8.0.api.glfs-fops.patch diff --git a/glusterfs-3.8.0.api.glfs-fops.patch b/glusterfs-3.8.0.api.glfs-fops.patch new file mode 100644 index 0000000..b903562 --- /dev/null +++ b/glusterfs-3.8.0.api.glfs-fops.patch @@ -0,0 +1,23 @@ +--- glusterfs-3.8.0/api/src/glfs-fops.c.orig 2016-06-27 08:38:37.523161014 -0400 ++++ glusterfs-3.8.0/api/src/glfs-fops.c 2016-06-27 08:40:06.591161014 -0400 +@@ -803,7 +803,6 @@ + + GF_VALIDATE_OR_GOTO ("gfapi", frame, inval); + GF_VALIDATE_OR_GOTO ("gfapi", cookie, inval); +- GF_VALIDATE_OR_GOTO ("gfapi", iovec, inval); + + gio = frame->local; + frame->local = NULL; +@@ -817,6 +816,12 @@ + if (op_ret <= 0) { + goto out; + } else if (gio->op == GF_FOP_READ) { ++ if (!iovec) { ++ op_ret = -1; ++ op_errno = EINVAL; ++ goto out; ++ } ++ + op_ret = iov_copy (gio->iov, gio->count, iovec, count); + glfd->offset = gio->offset + op_ret; + } else if (gio->op == GF_FOP_WRITE) { diff --git a/glusterfs.spec b/glusterfs.spec index e355d54..133e9e8 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -161,7 +161,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.8.0 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Release: 3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -182,6 +182,7 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif +Patch0: glusterfs-3.8.0.api.glfs-fops.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -587,6 +588,7 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} +%patch0 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -1206,6 +1208,9 @@ exit 0 %endif %changelog +* Mon Jun 27 2016 Kaleb S. KEITHLEY - 3.8.0-3 +- 3.8.0 GA, http://review.gluster.org/#/c/14779/ + * Wed Jun 22 2016 Kaleb S. KEITHLEY - 3.8.0-2 - 3.8.0 GA, rebuild after userspace-rcu SONAME bump From 7f0c4b4b18beb3ed9df5c3a7bc4d5a96efed4d59 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Fri, 8 Jul 2016 12:44:29 -0400 Subject: [PATCH 120/328] 3.8.1 GA --- glusterfs.spec | 9 +++++---- sources | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 133e9e8..7024efb 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -160,8 +160,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.8.0 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.8.1 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -182,7 +182,6 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0: glusterfs-3.8.0.api.glfs-fops.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -588,7 +587,6 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} -%patch0 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -1208,6 +1206,9 @@ exit 0 %endif %changelog +* Fri Jul 8 2016 Kaleb S. KEITHLEY - 3.8.1-1 +- 3.8.1 GA + * Mon Jun 27 2016 Kaleb S. KEITHLEY - 3.8.0-3 - 3.8.0 GA, http://review.gluster.org/#/c/14779/ diff --git a/sources b/sources index 46de43a..612d688 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ db1880ad32ef1114ce52060b266907cb glusterfs-3.8.0.tar.gz +91ea44c6138c74a743a04c16c3ac73d1 glusterfs-3.8.1.tar.gz From 40617ad8026ab3bf5998d5058f013f793a31b88d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 19 Jul 2016 07:13:29 +0000 Subject: [PATCH 121/328] - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 7024efb..e719be3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -161,12 +161,12 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.8.1 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.1 +Release: 0.@PACKAGE_RELEASE@%{?dist}.2 Vendor: Gluster Community %endif License: GPLv2 or LGPLv3+ @@ -1206,6 +1206,9 @@ exit 0 %endif %changelog +* Tue Jul 19 2016 Fedora Release Engineering - 3.8.1-2 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + * Fri Jul 8 2016 Kaleb S. KEITHLEY - 3.8.1-1 - 3.8.1 GA From 6b7922b2d6104265bfa8b9ee4a46b4fceae190e3 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 26 Jul 2016 10:53:51 -0400 Subject: [PATCH 122/328] https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages --- sources | 1 - 1 file changed, 1 deletion(-) diff --git a/sources b/sources index 612d688..a8246cd 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -db1880ad32ef1114ce52060b266907cb glusterfs-3.8.0.tar.gz 91ea44c6138c74a743a04c16c3ac73d1 glusterfs-3.8.1.tar.gz From 2444c5dc9ee7dd426da1145032b4d6c039aba8e8 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 10 Aug 2016 11:11:37 -0400 Subject: [PATCH 123/328] 3.8.2 GA --- glusterfs.spec | 9 ++++++--- sources | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e719be3..fdf7e8e 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -160,8 +160,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.8.1 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.8.2 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -1158,7 +1158,7 @@ exit 0 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file/pre %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post - %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.py + %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post @@ -1206,6 +1206,9 @@ exit 0 %endif %changelog +* Wed Aug 10 2016 Kaleb S. KEITHLEY - 3.8.2-1 +- 3.8.2 GA + * Tue Jul 19 2016 Fedora Release Engineering - 3.8.1-2 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages diff --git a/sources b/sources index a8246cd..5963678 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -91ea44c6138c74a743a04c16c3ac73d1 glusterfs-3.8.1.tar.gz +4e3609b6a9b7e0ff49adee6581e03d5c glusterfs-3.8.2.tar.gz From 039a0b3b855ecea5b27e0258241f11b8031903c1 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 22 Aug 2016 08:55:08 -0400 Subject: [PATCH 124/328] 3.8.3 GA --- glusterfs.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index fdf7e8e..9d70651 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -160,7 +160,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.8.2 +Version: 3.8.3 Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else @@ -1206,6 +1206,9 @@ exit 0 %endif %changelog +* Mon Aug 22 2016 Kaleb S. KEITHLEY - 3.8.3-1 +- 3.8.3 GA + * Wed Aug 10 2016 Kaleb S. KEITHLEY - 3.8.2-1 - 3.8.2 GA diff --git a/sources b/sources index 5963678..925ac80 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -4e3609b6a9b7e0ff49adee6581e03d5c glusterfs-3.8.2.tar.gz +3910afa6db5850a9149fb8299be43b07 glusterfs-3.8.3.tar.gz From dfbfed3499e8322ca8ea65b16860b3f87c408fca Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Sat, 10 Sep 2016 12:08:18 -0400 Subject: [PATCH 125/328] 3.8.4 GA --- glusterfs.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9d70651..30603a2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -160,7 +160,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.8.3 +Version: 3.8.4 Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else @@ -362,6 +362,7 @@ Summary: Fuse client Group: Applications/File BuildRequires: fuse-devel Requires: attr +Requires: psmisc Requires: %{name} = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} @@ -1206,6 +1207,9 @@ exit 0 %endif %changelog +* Sat Sep 10 2016 Kaleb S. KEITHLEY - 3.8.4-1 +- 3.8.4 GA + * Mon Aug 22 2016 Kaleb S. KEITHLEY - 3.8.3-1 - 3.8.3 GA diff --git a/sources b/sources index 925ac80..7c34b14 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3910afa6db5850a9149fb8299be43b07 glusterfs-3.8.3.tar.gz +9e1bf53947c263f774e45fbe3e6b9236 glusterfs-3.8.4.tar.gz From efd051180f055dc1743b7be2d631e6c693607881 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 21 Sep 2016 13:41:34 -0400 Subject: [PATCH 126/328] 3.8.4 GA, remove python-ctypes in rawhide per cstratak at redhat.com --- glusterfs.spec | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 30603a2..f97b947 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -161,7 +161,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.8.4 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -203,7 +203,6 @@ BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel BuildRequires: libaio-devel libacl-devel BuildRequires: python-devel -BuildRequires: python-ctypes BuildRequires: userspace-rcu-devel >= 0.7 %if ( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: automake @@ -343,7 +342,7 @@ Group: Applications/File # We need python-gluster rpm for gluster module's __init__.py in Python # site-packages area Requires: python-gluster = %{version}-%{release} -Requires: python python-ctypes +Requires: python %description extra-xlators GlusterFS is a distributed file-system capable of scaling to several @@ -411,7 +410,7 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} -Requires: python python-ctypes +Requires: python Requires: rsync %description geo-replication @@ -1207,6 +1206,9 @@ exit 0 %endif %changelog +* Wed Sep 21 2016 Kaleb S. KEITHLEY - 3.8.4-2 +- 3.8.4 GA, remove python-ctypes in rawhide per cstratak at redhat.com + * Sat Sep 10 2016 Kaleb S. KEITHLEY - 3.8.4-1 - 3.8.4 GA From 3115c11ea8d920a2ad8636f6091e407386668966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 3 Oct 2016 10:49:26 -0400 Subject: [PATCH 127/328] Use --quiet with firewall-cmd Otherwise it prints "success" in the dnf cleanup phase. --- glusterfs.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f97b947..4d791a4 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -815,7 +815,7 @@ fi #reload service files if firewalld running if $(systemctl is-active firewalld 1>/dev/null 2>&1); then #firewalld-filesystem is not available for rhel7, so command used for reload. - firewall-cmd --reload 1>/dev/null 2>&1 + firewall-cmd --quiet --reload 1>/dev/null 2>&1 fi %endif @@ -889,7 +889,7 @@ exit 0 %if (0%{?_with_firewalld:1}) #reload service files if firewalld running if $(systemctl is-active firewalld 1>/dev/null 2>&1); then - firewall-cmd --reload + firewall-cmd --quiet --reload fi %endif exit 0 From 7330480682d955d1fb6b8b89238eac6679763360 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 13 Oct 2016 08:08:35 -0400 Subject: [PATCH 128/328] 3.8.5 GA --- glusterfs.spec | 10 ++++++++-- sources | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4d791a4..f4a951d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -160,8 +160,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.8.4 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.8.5 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -182,6 +182,7 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif +Patch0: glusterfs-3.8.5.xlators.crypt.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -551,6 +552,7 @@ Requires: psmisc Requires: lvm2 Requires: nfs-utils %if ( 0%{?_with_systemd:1} ) +Requires(post): systemd Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units @@ -587,6 +589,7 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} +%patch0 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -1206,6 +1209,9 @@ exit 0 %endif %changelog +* Thu Oct 13 2016 Kaleb S. KEITHLEY - 3.8.5-1 +- 3.8.5 GA + * Wed Sep 21 2016 Kaleb S. KEITHLEY - 3.8.4-2 - 3.8.4 GA, remove python-ctypes in rawhide per cstratak at redhat.com diff --git a/sources b/sources index 7c34b14..7d9fdc8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9e1bf53947c263f774e45fbe3e6b9236 glusterfs-3.8.4.tar.gz +371b853f946bb50ddac9a0df648690f8 glusterfs-3.8.5.tar.gz From f7c808dc05110e999c4f888cb5aa71b01a06c53f Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 13 Oct 2016 08:11:58 -0400 Subject: [PATCH 129/328] 3.8.5 GA --- glusterfs-3.8.5.xlators.crypt.patch | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 glusterfs-3.8.5.xlators.crypt.patch diff --git a/glusterfs-3.8.5.xlators.crypt.patch b/glusterfs-3.8.5.xlators.crypt.patch new file mode 100644 index 0000000..abf3663 --- /dev/null +++ b/glusterfs-3.8.5.xlators.crypt.patch @@ -0,0 +1,48 @@ +--- glusterfs-3.8.5/xlators/encryption/crypt/src/keys.c.orig 2016-10-13 05:44:08.218131827 -0400 ++++ glusterfs-3.8.5/xlators/encryption/crypt/src/keys.c 2016-10-13 07:56:39.783730111 -0400 +@@ -113,29 +113,41 @@ + static void kderive_update(struct kderive_context *ctx) + { + uint32_t i; ++#if (OPENSSL_VERSION_NUMBER < 0x1010002f) + HMAC_CTX hctx; ++#endif ++ HMAC_CTX *phctx = NULL; + unsigned char *pos = ctx->out; + uint32_t *p_iter = (uint32_t *)ctx->fid; + uint32_t num_iters = ctx->out_len / PRF_OUTPUT_SIZE; + + check_prf_iters(num_iters); + ++#if (OPENSSL_VERSION_NUMBER < 0x1010002f) + HMAC_CTX_init(&hctx); ++ phctx = &hctx; ++#else ++ phctx = HMAC_CTX_new(); ++#endif + for (i = 0; i < num_iters; i++) { + /* + * update the iteration number in the fid + */ + *p_iter = htobe32(i); +- HMAC_Init_ex(&hctx, ++ HMAC_Init_ex(phctx, + ctx->pkey, ctx->pkey_len >> 3, + EVP_sha256(), + NULL); +- HMAC_Update(&hctx, ctx->fid, ctx->fid_len); +- HMAC_Final(&hctx, pos, NULL); ++ HMAC_Update(phctx, ctx->fid, ctx->fid_len); ++ HMAC_Final(phctx, pos, NULL); + + pos += PRF_OUTPUT_SIZE; + } +- HMAC_CTX_cleanup(&hctx); ++#if (OPENSSL_VERSION_NUMBER < 0x1010002f) ++ HMAC_CTX_cleanup(phctx); ++#else ++ HMAC_CTX_free(phctx); ++#endif + } + + static void kderive_final(struct kderive_context *ctx, unsigned char *child) From f78d93315a92bdc02836db497d8ffedd89342c67 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 26 Oct 2016 12:49:55 -0400 Subject: [PATCH 130/328] 3.9.0rc2 --- glusterfs-3.9.0rc2.xlators.crypt.patch | 48 +++++++++++ glusterfs.spec | 112 ++++++++++++++++++++++--- sources | 2 +- 3 files changed, 151 insertions(+), 11 deletions(-) create mode 100644 glusterfs-3.9.0rc2.xlators.crypt.patch diff --git a/glusterfs-3.9.0rc2.xlators.crypt.patch b/glusterfs-3.9.0rc2.xlators.crypt.patch new file mode 100644 index 0000000..4429f9f --- /dev/null +++ b/glusterfs-3.9.0rc2.xlators.crypt.patch @@ -0,0 +1,48 @@ +--- glusterfs-3.9.0rc2/xlators/encryption/crypt/src/keys.c.orig 2016-10-26 10:28:14.832787325 -0400 ++++ glusterfs-3.9.0rc2/xlators/encryption/crypt/src/keys.c 2016-10-26 12:04:34.175730111 -0400 +@@ -113,29 +113,41 @@ + static void kderive_update(struct kderive_context *ctx) + { + uint32_t i; ++#if (OPENSSL_VERSION_NUMBER < 0x1010002f) + HMAC_CTX hctx; ++#endif ++ HMAC_CTX *phctx = NULL; + unsigned char *pos = ctx->out; + uint32_t *p_iter = (uint32_t *)ctx->fid; + uint32_t num_iters = ctx->out_len / PRF_OUTPUT_SIZE; + + check_prf_iters(num_iters); + ++#if (OPENSSL_VERSION_NUMBER < 0x1010002f) + HMAC_CTX_init(&hctx); ++ phctx = &hctx; ++#else ++ phctx = HMAC_CTX_new(); ++#endif + for (i = 0; i < num_iters; i++) { + /* + * update the iteration number in the fid + */ + *p_iter = htobe32(i); +- HMAC_Init_ex(&hctx, ++ HMAC_Init_ex(phctx, + ctx->pkey, ctx->pkey_len >> 3, + EVP_sha256(), + NULL); +- HMAC_Update(&hctx, ctx->fid, ctx->fid_len); +- HMAC_Final(&hctx, pos, NULL); ++ HMAC_Update(phctx, ctx->fid, ctx->fid_len); ++ HMAC_Final(phctx, pos, NULL); + + pos += PRF_OUTPUT_SIZE; + } +- HMAC_CTX_cleanup(&hctx); ++#if (OPENSSL_VERSION_NUMBER < 0x1010002f) ++ HMAC_CTX_cleanup(phctx); ++#else ++ HMAC_CTX_free(phctx); ++#endif + } + + static void kderive_final(struct kderive_context *ctx, unsigned char *child) diff --git a/glusterfs.spec b/glusterfs.spec index f4a951d..fac9804 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag rc2 +%global prereltag rc2 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -90,6 +90,11 @@ %global _with_tmpfilesdir --without-tmpfilesdir %endif +# Eventing +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +%global _without_events --disable-events +%endif + # From https://fedoraproject.org/wiki/Packaging:Python#Macros %if ( 0%{?rhel} && 0%{?rhel} < 6 ) %{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} @@ -110,6 +115,7 @@ # can't seem to make a generic macro that works %global _init_glusterd %{_unitdir}/glusterd.service %global _init_glusterfsd %{_unitdir}/glusterfsd.service +%global _init_glustereventsd %{_unitdir}/glustereventsd.service %else %global _init_enable() /sbin/chkconfig --add %1 ; %global _init_disable() /sbin/chkconfig --del %1 ; @@ -120,6 +126,7 @@ # can't seem to make a generic macro that works %global _init_glusterd %{_sysconfdir}/init.d/glusterd %global _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd +%global _init_glustereventsd %{_sysconfdir}/init.d/glustereventsd %endif %if ( 0%{_for_fedora_koji_builds} ) @@ -160,8 +167,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.8.5 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.9.0 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -171,7 +178,7 @@ Vendor: Gluster Community %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base -URL: http://www.gluster.org/docs/index.php/GlusterFS +URL: http://gluster.readthedocs.io/en/latest/ %if ( 0%{_for_fedora_koji_builds} ) Source0: http://bits.gluster.org/pub/gluster/%{name}/src/%{name}-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig @@ -182,7 +189,7 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0: glusterfs-3.8.5.xlators.crypt.patch +Patch0: glusterfs-3.9.0rc2.xlators.crypt.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -337,6 +344,31 @@ is in user space and easily manageable. This package provides the development libraries and include files. + +%if ( 0%{!?_without_events:1} ) +%package events +Summary: GlusterFS Events +Group: Applications/File +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: python python-fasteners python-requests python-flask +Requires: python-prettytable +Requires: python-gluster = %{version}-%{release} +%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +Requires: python-argparse +%endif + +%description events +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the GlusterFS Events +%endif + %package extra-xlators Summary: Extra Gluster filesystem Translators Group: Applications/File @@ -392,6 +424,8 @@ Requires: pcs, dbus %if ( 0%{?rhel} && 0%{?rhel} == 6 ) Requires: cman, pacemaker, corosync %endif +# we need portblock resource-agent +Requires: %{_prefix}/lib/ocf/resource.d/portblock %description ganesha GlusterFS is a distributed file-system capable of scaling to several @@ -411,7 +445,8 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} -Requires: python +Requires: python python-prettytable +Requires: python-gluster = %{version}-%{release} Requires: rsync %description geo-replication @@ -609,7 +644,8 @@ export CFLAGS %{?_without_ocf} \ %{?_without_rdma} \ %{?_without_syslog} \ - %{?_without_tiering} + %{?_without_tiering} \ + %{?_without_events} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -751,6 +787,12 @@ exit 0 %post api -p /sbin/ldconfig +%if ( 0%{!?_without_events:1} ) +%post events +%_init_restart glustereventsd +exit 0 +%endif + %if ( 0%{?rhel} == 5 ) %post fuse modprobe fuse @@ -818,7 +860,7 @@ fi #reload service files if firewalld running if $(systemctl is-active firewalld 1>/dev/null 2>&1); then #firewalld-filesystem is not available for rhel7, so command used for reload. - firewall-cmd --quiet --reload 1>/dev/null 2>&1 + firewall-cmd --reload 1>/dev/null 2>&1 fi %endif @@ -848,6 +890,17 @@ exit 0 ##----------------------------------------------------------------------------- ## All %%preun should be placed here and keep them sorted ## +%if ( 0%{!?_without_events:1} ) +%preun events +if [ $1 -eq 0 ]; then + if [ -f %_init_glustereventsd ]; then + %_init_stop glustereventsd + %_init_disable glustereventsd + fi +fi +exit 0 +%endif + %preun server if [ $1 -eq 0 ]; then if [ -f %_init_glusterfsd ]; then @@ -892,7 +945,7 @@ exit 0 %if (0%{?_with_firewalld:1}) #reload service files if firewalld running if $(systemctl is-active firewalld 1>/dev/null 2>&1); then - firewall-cmd --quiet --reload + firewall-cmd --reload fi %endif exit 0 @@ -931,6 +984,7 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/fdl.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so @@ -971,8 +1025,9 @@ exit 0 %files client-xlators %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/pump.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/ganesha.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/dht2c.so + %files devel %dir %{_includedir}/glusterfs @@ -1030,13 +1085,18 @@ exit 0 %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep %{_sbindir}/gfind_missing_files +%{_sbindir}/gluster-mountbroker %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* %{_libexecdir}/glusterfs/gverify.sh %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh %{_libexecdir}/glusterfs/peer_gsec_create %{_libexecdir}/glusterfs/peer_mountbroker +%{_libexecdir}/glusterfs/peer_mountbroker.py* %{_libexecdir}/glusterfs/gfind_missing_files +%{_libexecdir}/glusterfs/peer_georep-sshkey.py* +%{_sbindir}/gluster-georep-sshkey + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf @@ -1066,6 +1126,7 @@ exit 0 # introducing glusterfs module in site packages. # so that all other gluster submodules can reside in the same namespace. %{python_sitelib}/gluster/__init__.* +%{python_sitelib}/gluster/cliutils %if ( 0%{!?_without_rdma:1} ) %files rdma @@ -1090,6 +1151,7 @@ exit 0 %doc extras/clear_xattrs.sh # sysconf %config(noreplace) %{_sysconfdir}/glusterfs +%exclude %{_sysconfdir}/glusterfs/eventsconfig.json %dir %{_localstatedir}/run/gluster %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %if ( 0%{_for_fedora_koji_builds} ) @@ -1112,6 +1174,12 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/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/experimental/jbrc.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/jbr.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/dht2s.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/posix2-ds.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/posix2-mds.so +%{_libdir}/libposix2common.so %if ( 0%{!?_without_tiering:1} ) %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so %endif @@ -1136,6 +1204,7 @@ exit 0 # snap_scheduler %{_sbindir}/snap_scheduler.py %{_sbindir}/gcron.py +%{_sbindir}/conf.py # /var/lib/glusterd, e.g. hookscripts, etc. %ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info @@ -1208,7 +1277,30 @@ exit 0 %{_prefix}/lib/firewalld/services/glusterfs.xml %endif +%{_sbindir}/gf_logdump +%{_sbindir}/gf_recon + +# Events +%if ( 0%{!?_without_events:1} ) +%files events +%config(noreplace) %{_sysconfdir}/glusterfs/eventsconfig.json +%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/events +%{_libexecdir}/glusterfs/events +%{_libexecdir}/glusterfs/peer_eventsapi.py* +%{_sbindir}/glustereventsd +%{_sbindir}/gluster-eventsapi +%{_datadir}/glusterfs/scripts/eventsdash.py* +%if ( 0%{?_with_systemd:1} ) +%{_unitdir}/glustereventsd.service +%else +%{_sysconfdir}/init.d/glustereventsd +%endif +%endif + %changelog +* Wed Oct 26 2016 Kaleb S. KEITHLEY - 3.9.0-0.1rc2 +- 3.9.0rc2 + * Thu Oct 13 2016 Kaleb S. KEITHLEY - 3.8.5-1 - 3.8.5 GA diff --git a/sources b/sources index 7d9fdc8..82d6821 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -371b853f946bb50ddac9a0df648690f8 glusterfs-3.8.5.tar.gz +f15980be6b404008169d512bbc7ebec8 glusterfs-3.9.0rc2.tar.gz From efe2e85190a65234c0e4f0028679ae36fb4bc918 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 27 Oct 2016 11:52:58 -0400 Subject: [PATCH 131/328] portblock RA (1389293) --- glusterfs.spec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index fac9804..3cc6ded 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -168,7 +168,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.9.0 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -424,8 +424,10 @@ Requires: pcs, dbus %if ( 0%{?rhel} && 0%{?rhel} == 6 ) Requires: cman, pacemaker, corosync %endif -# we need portblock resource-agent -Requires: %{_prefix}/lib/ocf/resource.d/portblock +%if ( 0%{?fedora} ) +# we need portblock resource-agent in 3.9.6 and later. +Requires: resource-agents >= 3.9.6 +%endif %description ganesha GlusterFS is a distributed file-system capable of scaling to several @@ -1298,6 +1300,9 @@ exit 0 %endif %changelog +* Thu Oct 27 2016 Kaleb S. KEITHLEY - 3.9.0-0.2rc2 +- portblock RA (1389293) + * Wed Oct 26 2016 Kaleb S. KEITHLEY - 3.9.0-0.1rc2 - 3.9.0rc2 From f27878dc50d3963776d7289448e084ccdd5e2c43 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 31 Oct 2016 08:51:31 -0400 Subject: [PATCH 132/328] glfs_free(), needed for nfs-ganesha-2.4.1 w/ patched FSAL_GLUSTER --- glusterfs-3.9.0rc2.api.glfs_free.patch | 66 ++++++++++++++++++++++++++ glusterfs.spec | 7 ++- 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 glusterfs-3.9.0rc2.api.glfs_free.patch diff --git a/glusterfs-3.9.0rc2.api.glfs_free.patch b/glusterfs-3.9.0rc2.api.glfs_free.patch new file mode 100644 index 0000000..6f44d88 --- /dev/null +++ b/glusterfs-3.9.0rc2.api.glfs_free.patch @@ -0,0 +1,66 @@ +From 5ab0b43ce67d8d131242542a80b6aa6b129ed5ee Mon Sep 17 00:00:00 2001 +From: Niels de Vos +Date: Mon, 17 Oct 2016 11:58:30 +0200 +Subject: [PATCH] gfapi: add glfs_free() to glfs.h + +Commit 4721188a154acd9a0a4c096d8d73e97f3bf1b2a9 introduces glfs_free() +but missed adding the function to the header. The symbol is correctly +available in the library though. Testcases do not seem to fail when a +function is missing for the headers... + +The glusterfs-3.7.16 packages have been released with the missing +declaration in the header and symbol-maps. Still, the function is +available for applications: + + $ objdump -T usr/lib64/libgfapi.so.0 | grep -w glfs_free + 0000000000006aa0 g DF .text 0000000000000035 GFAPI_3.7.16 glfs_free + +Change-Id: Ia707ee957f090dbfca028192fcc81a83dfdf4ae0 +BUG: 1344714 +Reported-by: Jiffin Tony Thottan +Signed-off-by: Niels de Vos +Reviewed-on: http://review.gluster.org/15653 +CentOS-regression: Gluster Build System +Smoke: Gluster Build System +Reviewed-by: jiffin tony Thottan +NetBSD-regression: NetBSD Build System +--- + +diff --git a/api/src/gfapi.aliases b/api/src/gfapi.aliases +index 74ef4d3..d2c4ba2 100644 +--- a/api/src/gfapi.aliases ++++ b/api/src/gfapi.aliases +@@ -141,6 +141,7 @@ + + _pub_glfs_h_lookupat _glfs_h_lookupat$GFAPI_3.7.4 + ++_pub_glfs_free _glfs_free$GFAPI_3.7.16 + _pub_glfs_h_poll_upcall _glfs_h_poll_upcall$GFAPI_3.7.16 + _pub_glfs_upcall_get_fs _glfs_upcall_get_fs$GFAPI_3.7.16 + _pub_glfs_upcall_get_reason _glfs_upcall_get_reason$GFAPI_3.7.16 +diff --git a/api/src/gfapi.map b/api/src/gfapi.map +index 964db76..d022380 100644 +--- a/api/src/gfapi.map ++++ b/api/src/gfapi.map +@@ -175,6 +175,7 @@ + + GFAPI_3.7.16 { + global: ++ glfs_free; + glfs_upcall_get_fs; + glfs_upcall_get_reason; + glfs_upcall_inode_get_event; +diff --git a/api/src/glfs.h b/api/src/glfs.h +index c81b7cc..903492a 100644 +--- a/api/src/glfs.h ++++ b/api/src/glfs.h +@@ -769,6 +769,9 @@ + glfs_fd_t *glfs_dup (glfs_fd_t *fd) __THROW + GFAPI_PUBLIC(glfs_dup, 3.4.0); + ++void glfs_free (void *ptr) __THROW ++ GFAPI_PUBLIC(glfs_free, 3.7.16); ++ + /* + * Nobody needs this call at all yet except for the test script. + */ diff --git a/glusterfs.spec b/glusterfs.spec index 3cc6ded..57c029e 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -168,7 +168,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.9.0 -Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -190,6 +190,7 @@ Source8: glusterfsd.init Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif Patch0: glusterfs-3.9.0rc2.xlators.crypt.patch +Patch1: glusterfs-3.9.0rc2.api.glfs_free.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -627,6 +628,7 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} %patch0 -p1 +%patch1 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -1300,6 +1302,9 @@ exit 0 %endif %changelog +* Mon Oct 31 2016 Kaleb S. KEITHLEY - 3.9.0-0.3rc2 +- glfs_free(), needed for nfs-ganesha-2.4.1 w/ patched FSAL_GLUSTER + * Thu Oct 27 2016 Kaleb S. KEITHLEY - 3.9.0-0.2rc2 - portblock RA (1389293) From 222bc9ec95965832d3bfba7e0e94e67723b5f5a6 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 15 Nov 2016 10:51:00 -0500 Subject: [PATCH 133/328] 3.9.0 GA - w/ glfs_free(), needed for nfs-ganesha-2.4.1 w/ patched FSAL_GLUSTER --- glusterfs.spec | 29 ++++++++++------------------- sources | 2 +- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 57c029e..11560a7 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag rc2 +# global prereltag rc2 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -168,7 +168,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.9.0 -Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -189,8 +189,7 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0: glusterfs-3.9.0rc2.xlators.crypt.patch -Patch1: glusterfs-3.9.0rc2.api.glfs_free.patch +Patch0: glusterfs-3.9.0rc2.api.glfs_free.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -425,9 +424,9 @@ Requires: pcs, dbus %if ( 0%{?rhel} && 0%{?rhel} == 6 ) Requires: cman, pacemaker, corosync %endif -%if ( 0%{?fedora} ) -# we need portblock resource-agent in 3.9.6 and later. -Requires: resource-agents >= 3.9.6 +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 5 ) +# we need portblock resource-agent in 3.9.5 and later. +Requires: resource-agents >= 3.9.5 %endif %description ganesha @@ -628,7 +627,6 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} %patch0 -p1 -%patch1 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -988,7 +986,6 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/fdl.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so @@ -1030,7 +1027,6 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/pump.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/dht2c.so %files devel @@ -1178,12 +1174,6 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/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/experimental/jbrc.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/jbr.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/dht2s.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/posix2-ds.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/posix2-mds.so -%{_libdir}/libposix2common.so %if ( 0%{!?_without_tiering:1} ) %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so %endif @@ -1281,9 +1271,6 @@ exit 0 %{_prefix}/lib/firewalld/services/glusterfs.xml %endif -%{_sbindir}/gf_logdump -%{_sbindir}/gf_recon - # Events %if ( 0%{!?_without_events:1} ) %files events @@ -1302,6 +1289,10 @@ exit 0 %endif %changelog +* Tue Nov 15 2016 Kaleb S. KEITHLEY - 3.9.0-1 +- 3.9.0 GA +- w/ glfs_free(), needed for nfs-ganesha-2.4.1 w/ patched FSAL_GLUSTER + * Mon Oct 31 2016 Kaleb S. KEITHLEY - 3.9.0-0.3rc2 - glfs_free(), needed for nfs-ganesha-2.4.1 w/ patched FSAL_GLUSTER diff --git a/sources b/sources index 82d6821..5eaf890 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f15980be6b404008169d512bbc7ebec8 glusterfs-3.9.0rc2.tar.gz +23bb9c65a46ff74c0f1e15b9a8fe20a2 glusterfs-3.9.0.tar.gz From c1dc434dbb135614acdedecf8d66db7a2c383790 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 6 Jan 2017 12:57:26 -0500 Subject: [PATCH 134/328] firewalld fixes --- glusterfs-3.9.0.configure.ac.patch | 11 +++++++++++ glusterfs.spec | 23 +++++++++++++---------- 2 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 glusterfs-3.9.0.configure.ac.patch diff --git a/glusterfs-3.9.0.configure.ac.patch b/glusterfs-3.9.0.configure.ac.patch new file mode 100644 index 0000000..b5f4b81 --- /dev/null +++ b/glusterfs-3.9.0.configure.ac.patch @@ -0,0 +1,11 @@ +--- glusterfs-3.9.0/configure.ac.orig 2017-01-06 12:44:28.270940821 -0500 ++++ glusterfs-3.9.0/configure.ac 2017-01-06 12:46:19.781940821 -0500 +@@ -810,7 +810,7 @@ + [BUILD_FIREWALLD="${enableval}"], [BUILD_FIREWALLD="no"]) + + if test "x${BUILD_FIREWALLD}" = "xyes"; then +- if !(which firewalld 1>/dev/null 2>&1) ; then ++ if !(test -d /usr/lib/firewalld/services 1>/dev/null 2>&1) ; then + BUILD_FIREWALLD="no (firewalld not installed)" + fi + fi diff --git a/glusterfs.spec b/glusterfs.spec index 11560a7..ee8dadb 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -168,7 +168,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.9.0 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -190,6 +190,7 @@ Source8: glusterfsd.init Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif Patch0: glusterfs-3.9.0rc2.api.glfs_free.patch +Patch1: glusterfs-3.9.0.configure.ac.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -234,7 +235,7 @@ BuildRequires: libattr-devel %endif %if (0%{?_with_firewalld:1}) -BuildRequires: firewalld +BuildRequires: firewalld-filesystem %endif Obsoletes: hekafs @@ -599,6 +600,10 @@ Requires(preun): /sbin/service Requires(preun): /sbin/chkconfig Requires(postun): /sbin/service %endif +%if (0%{?_with_firewalld:1}) +# we install firewalld rules, so we need to have the directory owned +Requires: firewalld-filesystem +%endif %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) Requires: rpcbind %else @@ -627,6 +632,7 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} %patch0 -p1 +%patch1 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -859,10 +865,7 @@ if [ -e /etc/ld.so.conf.d/glusterfs.conf ]; then fi %if (0%{?_with_firewalld:1}) -#reload service files if firewalld running -if $(systemctl is-active firewalld 1>/dev/null 2>&1); then - #firewalld-filesystem is not available for rhel7, so command used for reload. - firewall-cmd --reload 1>/dev/null 2>&1 + %firewalld_reload fi %endif @@ -945,10 +948,7 @@ exit 0 %postun server /sbin/ldconfig %if (0%{?_with_firewalld:1}) -#reload service files if firewalld running -if $(systemctl is-active firewalld 1>/dev/null 2>&1); then - firewall-cmd --reload -fi + %firewalld_reload %endif exit 0 @@ -1289,6 +1289,9 @@ exit 0 %endif %changelog +* Fri Jan 6 2017 Kaleb S. KEITHLEY - 3.9.0-2 +- firewalld fixes + * Tue Nov 15 2016 Kaleb S. KEITHLEY - 3.9.0-1 - 3.9.0 GA - w/ glfs_free(), needed for nfs-ganesha-2.4.1 w/ patched FSAL_GLUSTER From d37017bea7dc57dba7a3dd40a2ef4f7d5de32e9e Mon Sep 17 00:00:00 2001 From: Anoop C S Date: Wed, 11 Jan 2017 15:38:16 +0530 Subject: [PATCH 135/328] Remove older patch files Signed-off-by: Anoop C S --- ...e-for-serialization-in-memcache-but-.patch | 351 -------- ...llel-install-versions-of-epel-packag.patch | 53 -- ...d-fixes-for-building-the-doc-package.patch | 37 - ...xes-for-building-the-doc-package.patch.180 | 37 - ...here-serialization_format-is-ignored.patch | 70 -- glusterfs-3.2.5.configure.ac.patch | 11 - glusterfs-3.2.5.libglusterfs.Makefile.patch | 23 - ...ors.mgmt.glusterd.glusterd-rpc-ops.c.patch | 474 ----------- glusterfs-3.3.0.cli.cli-rpc-ops.c.patch | 20 - glusterfs-3.3.0.libglusterfs.Makefile.patch | 24 - glusterfs-3.3.0.swift.patch | 797 ------------------ ....3.0.xlator.mount.fuse.fuse-bridge.c.patch | 76 -- glusterfs-3.3.1.rpc.rpcxprt.rdma.name.c.patch | 11 - ...3.1.swift.constraints.backport-1.7.4.patch | 567 ------------- ...rfs-3.3.1.swift.constraints.backport.patch | 518 ------------ ...fo.gluster.multi-volume.backport-1.1.patch | 406 --------- ....gluster.swift.common.DiskFile-1.7.4.patch | 12 - glusterfs-3.3.2.libglusterfs.Makefile.patch | 24 - glusterfs-3.4.0.swift.egginfo-grizzly.patch | 9 - ...fs-3.4.1.add.base-port.config.option.patch | 156 ---- ...terfs-3.4.3.xlator.nfs.server.nlm4.c.patch | 13 - glusterfs-3.8.0.api.glfs-fops.patch | 23 - glusterfs-3.8.0rc1.VERSION.patch | 6 - glusterfs-3.8.0rc2.VERSION.patch | 6 - glusterfs-3.8.5.xlators.crypt.patch | 48 -- glusterfs-3.9.0rc2.xlators.crypt.patch | 48 -- openstack-swift-docmod.patch | 14 - openstack-swift-newdeps.patch | 36 - openstack-swift-nonet.patch | 11 - 29 files changed, 3881 deletions(-) delete mode 100644 0001-Do-not-use-pickle-for-serialization-in-memcache-but-.patch delete mode 100644 0001-Use-updated-parallel-install-versions-of-epel-packag.patch delete mode 100644 0002-Add-fixes-for-building-the-doc-package.patch delete mode 100644 0002-Add-fixes-for-building-the-doc-package.patch.180 delete mode 100644 0002-Fix-bug-where-serialization_format-is-ignored.patch delete mode 100644 glusterfs-3.2.5.configure.ac.patch delete mode 100644 glusterfs-3.2.5.libglusterfs.Makefile.patch delete mode 100644 glusterfs-3.2.7.xlators.mgmt.glusterd.glusterd-rpc-ops.c.patch delete mode 100644 glusterfs-3.3.0.cli.cli-rpc-ops.c.patch delete mode 100644 glusterfs-3.3.0.libglusterfs.Makefile.patch delete mode 100644 glusterfs-3.3.0.swift.patch delete mode 100644 glusterfs-3.3.0.xlator.mount.fuse.fuse-bridge.c.patch delete mode 100644 glusterfs-3.3.1.rpc.rpcxprt.rdma.name.c.patch delete mode 100644 glusterfs-3.3.1.swift.constraints.backport-1.7.4.patch delete mode 100644 glusterfs-3.3.1.swift.constraints.backport.patch delete mode 100644 glusterfs-3.3.1.ufo.gluster.multi-volume.backport-1.1.patch delete mode 100644 glusterfs-3.3.1.ufo.gluster.swift.common.DiskFile-1.7.4.patch delete mode 100644 glusterfs-3.3.2.libglusterfs.Makefile.patch delete mode 100644 glusterfs-3.4.0.swift.egginfo-grizzly.patch delete mode 100644 glusterfs-3.4.1.add.base-port.config.option.patch delete mode 100644 glusterfs-3.4.3.xlator.nfs.server.nlm4.c.patch delete mode 100644 glusterfs-3.8.0.api.glfs-fops.patch delete mode 100644 glusterfs-3.8.0rc1.VERSION.patch delete mode 100644 glusterfs-3.8.0rc2.VERSION.patch delete mode 100644 glusterfs-3.8.5.xlators.crypt.patch delete mode 100644 glusterfs-3.9.0rc2.xlators.crypt.patch delete mode 100644 openstack-swift-docmod.patch delete mode 100644 openstack-swift-newdeps.patch delete mode 100644 openstack-swift-nonet.patch diff --git a/0001-Do-not-use-pickle-for-serialization-in-memcache-but-.patch b/0001-Do-not-use-pickle-for-serialization-in-memcache-but-.patch deleted file mode 100644 index 6179ced..0000000 --- a/0001-Do-not-use-pickle-for-serialization-in-memcache-but-.patch +++ /dev/null @@ -1,351 +0,0 @@ -From c0619bd0c5eeb3d2f8af8b37575e11847664272c Mon Sep 17 00:00:00 2001 -From: Vincent Untz -Date: Thu, 21 Jun 2012 14:37:41 +0200 -Subject: [PATCH] Do not use pickle for serialization in memcache, but JSON - -We don't want to use pickle as it can execute arbitrary code. JSON is -safer. However, note that it supports serialization for only some -specific subset of object types; this should be enough for what we need, -though. - -To avoid issues on upgrades (unability to read pickled values, and cache -poisoning for old servers not understanding JSON), we add a -memcache_serialization_support configuration option, with the following -values: - - 0 = older, insecure pickle serialization (compatible, default in this release) - 1 = json serialization but pickles can still be read (still insecure) - 2 = json serialization only (secure, suggested, and the future default) - -To avoid an instant full cache flush, existing installations should -upgrade with 0, then set to 1 and reload, then after some time (24 -hours) set to 2 and reload. Support for 0 and 1 will be removed in -future versions. - -Part of bug 1006414. - -Patch Set 2: Added Vincent Untz to AUTHORS - -Change-Id: Id7d6d547b103b4f23ebf5be98b88f09ec6027ce4 ---- - doc/manpages/proxy-server.conf.5 | 15 ++++++++ - etc/memcache.conf-sample | 10 +++++ - etc/proxy-server.conf-sample | 12 ++++++ - swift/common/memcached.py | 48 +++++++++++++++++++++----- - swift/common/middleware/memcache.py | 30 ++++++++++++---- - test/unit/common/middleware/test_memcache.py | 5 ++- - test/unit/common/test_memcached.py | 22 ++++++++++++ - 7 files changed, 125 insertions(+), 17 deletions(-) - -diff --git a/doc/manpages/proxy-server.conf.5 b/doc/manpages/proxy-server.conf.5 -index 4979e4d..5cf5a7e 100644 ---- a/doc/manpages/proxy-server.conf.5 -+++ b/doc/manpages/proxy-server.conf.5 -@@ -205,6 +205,21 @@ Enables the ability to log request headers. The default is False. - .IP \fBmemcache_servers\fR - The memcache servers that are available. This can be a list separated by commas. The default - is 127.0.0.1:11211. -+.IP \fBmemcache_serialization_support\fR -+This sets how memcache values are serialized and deserialized: -+.RE -+ -+.PD 0 -+.RS 10 -+.IP "0 = older, insecure pickle serialization (default)" -+.IP "1 = json serialization but pickles can still be read (still insecure)" -+.IP "2 = json serialization only (secure)" -+.RE -+ -+.RS 10 -+To avoid an instant full cache flush, existing installations should upgrade with 0, then set to 1 and reload, then after some time (24 hours) set to 2 and reload. In the future, the ability to use pickle serialization will be removed. -+ -+If not set in the configuration file, the value for memcache_serialization_support will be read from /etc/swift/memcache.conf if it exists (see memcache.conf-sample). Otherwise, the default value as indicated above will be used. - .RE - - -diff --git a/etc/memcache.conf-sample b/etc/memcache.conf-sample -index 580d94a..cedfc19 100644 ---- a/etc/memcache.conf-sample -+++ b/etc/memcache.conf-sample -@@ -3,3 +3,13 @@ - # several other conf files under [filter:cache] for example. You can specify - # multiple servers separated with commas, as in: 10.1.2.3:11211,10.1.2.4:11211 - # memcache_servers = 127.0.0.1:11211 -+# -+# Sets how memcache values are serialized and deserialized: -+# 0 = older, insecure pickle serialization (compatible, default in this release) -+# 1 = json serialization but pickles can still be read (still insecure) -+# 2 = json serialization only (secure, suggested, and the future default) -+# To avoid an instant full cache flush, existing installations should -+# upgrade with 0, then set to 1 and reload, then after some time (24 hours) -+# set to 2 and reload. -+# In the future, the ability to use pickle serialization will be removed. -+# memcache_serialization_support = 0 -diff --git a/etc/proxy-server.conf-sample b/etc/proxy-server.conf-sample -index 148616b..18f711a 100644 ---- a/etc/proxy-server.conf-sample -+++ b/etc/proxy-server.conf-sample -@@ -122,6 +122,18 @@ use = egg:swift#memcache - # default to the value below. You can specify multiple servers separated with - # commas, as in: 10.1.2.3:11211,10.1.2.4:11211 - # memcache_servers = 127.0.0.1:11211 -+# -+# Sets how memcache values are serialized and deserialized: -+# 0 = older, insecure pickle serialization (compatible, default in this release) -+# 1 = json serialization but pickles can still be read (still insecure) -+# 2 = json serialization only (secure, suggested, and the future default) -+# If not set here, the value for memcache_serialization_support will be read -+# from /etc/swift/memcache.conf (see memcache.conf-sample). -+# To avoid an instant full cache flush, existing installations should -+# upgrade with 0, then set to 1 and reload, then after some time (24 hours) -+# set to 2 and reload. -+# In the future, the ability to use pickle serialization will be removed. -+# memcache_serialization_support = 0 - - [filter:ratelimit] - use = egg:swift#ratelimit -diff --git a/swift/common/memcached.py b/swift/common/memcached.py -index ecd9332..82ebb7a 100644 ---- a/swift/common/memcached.py -+++ b/swift/common/memcached.py -@@ -27,11 +27,17 @@ import time - from bisect import bisect - from hashlib import md5 - -+try: -+ import simplejson as json -+except ImportError: -+ import json -+ - DEFAULT_MEMCACHED_PORT = 11211 - - CONN_TIMEOUT = 0.3 - IO_TIMEOUT = 2.0 - PICKLE_FLAG = 1 -+JSON_FLAG = 2 - NODE_WEIGHT = 50 - PICKLE_PROTOCOL = 2 - TRY_COUNT = 3 -@@ -57,7 +63,8 @@ class MemcacheRing(object): - """ - - def __init__(self, servers, connect_timeout=CONN_TIMEOUT, -- io_timeout=IO_TIMEOUT, tries=TRY_COUNT): -+ io_timeout=IO_TIMEOUT, tries=TRY_COUNT, -+ allow_pickle=False, allow_unpickle=False): - self._ring = {} - self._errors = dict(((serv, []) for serv in servers)) - self._error_limited = dict(((serv, 0) for serv in servers)) -@@ -69,6 +76,8 @@ class MemcacheRing(object): - self._client_cache = dict(((server, []) for server in servers)) - self._connect_timeout = connect_timeout - self._io_timeout = io_timeout -+ self._allow_pickle = allow_pickle -+ self._allow_unpickle = allow_unpickle or allow_pickle - - def _exception_occurred(self, server, e, action='talking'): - if isinstance(e, socket.timeout): -@@ -130,16 +139,21 @@ class MemcacheRing(object): - - :param key: key - :param value: value -- :param serialize: if True, value is pickled before sending to memcache -+ :param serialize: if True, value is serialized with JSON before sending -+ to memcache, or with pickle if configured to use -+ pickle instead of JSON (to avoid cache poisoning) - :param timeout: ttl in memcache - """ - key = md5hash(key) - if timeout > 0: - timeout += time.time() - flags = 0 -- if serialize: -+ if serialize and self._allow_pickle: - value = pickle.dumps(value, PICKLE_PROTOCOL) - flags |= PICKLE_FLAG -+ elif serialize: -+ value = json.dumps(value) -+ flags |= JSON_FLAG - for (server, fp, sock) in self._get_conns(key): - try: - sock.sendall('set %s %d %d %s noreply\r\n%s\r\n' % \ -@@ -151,8 +165,9 @@ class MemcacheRing(object): - - def get(self, key): - """ -- Gets the object specified by key. It will also unpickle the object -- before returning if it is pickled in memcache. -+ Gets the object specified by key. It will also unserialize the object -+ before returning if it is serialized in memcache with JSON, or if it -+ is pickled and unpickling is allowed. - - :param key: key - :returns: value of the key in memcache -@@ -168,7 +183,12 @@ class MemcacheRing(object): - size = int(line[3]) - value = fp.read(size) - if int(line[2]) & PICKLE_FLAG: -- value = pickle.loads(value) -+ if self._allow_unpickle: -+ value = pickle.loads(value) -+ else: -+ value = None -+ elif int(line[2]) & JSON_FLAG: -+ value = json.loads(value) - fp.readline() - line = fp.readline().strip().split() - self._return_conn(server, fp, sock) -@@ -258,7 +278,9 @@ class MemcacheRing(object): - :param mapping: dictonary of keys and values to be set in memcache - :param servery_key: key to use in determining which server in the ring - is used -- :param serialize: if True, value is pickled before sending to memcache -+ :param serialize: if True, value is serialized with JSON before sending -+ to memcache, or with pickle if configured to use -+ pickle instead of JSON (to avoid cache poisoning) - :param timeout: ttl for memcache - """ - server_key = md5hash(server_key) -@@ -268,9 +290,12 @@ class MemcacheRing(object): - for key, value in mapping.iteritems(): - key = md5hash(key) - flags = 0 -- if serialize: -+ if serialize and self._allow_pickle: - value = pickle.dumps(value, PICKLE_PROTOCOL) - flags |= PICKLE_FLAG -+ elif serialize: -+ value = json.dumps(value) -+ flags |= JSON_FLAG - msg += ('set %s %d %d %s noreply\r\n%s\r\n' % - (key, flags, timeout, len(value), value)) - for (server, fp, sock) in self._get_conns(server_key): -@@ -302,7 +327,12 @@ class MemcacheRing(object): - size = int(line[3]) - value = fp.read(size) - if int(line[2]) & PICKLE_FLAG: -- value = pickle.loads(value) -+ if self._allow_unpickle: -+ value = pickle.loads(value) -+ else: -+ value = None -+ elif int(line[2]) & JSON_FLAG: -+ value = json.loads(value) - responses[line[1]] = value - fp.readline() - line = fp.readline().strip().split() -diff --git a/swift/common/middleware/memcache.py b/swift/common/middleware/memcache.py -index eb988bd..20121c9 100644 ---- a/swift/common/middleware/memcache.py -+++ b/swift/common/middleware/memcache.py -@@ -27,20 +27,36 @@ class MemcacheMiddleware(object): - def __init__(self, app, conf): - self.app = app - self.memcache_servers = conf.get('memcache_servers') -- if not self.memcache_servers: -+ serialization_format = conf.get('memcache_serialization_support') -+ -+ if not self.memcache_servers or serialization_format is None: - path = os.path.join(conf.get('swift_dir', '/etc/swift'), - 'memcache.conf') - memcache_conf = ConfigParser() - if memcache_conf.read(path): -- try: -- self.memcache_servers = \ -- memcache_conf.get('memcache', 'memcache_servers') -- except (NoSectionError, NoOptionError): -- pass -+ if not self.memcache_servers: -+ try: -+ self.memcache_servers = \ -+ memcache_conf.get('memcache', 'memcache_servers') -+ except (NoSectionError, NoOptionError): -+ pass -+ if serialization_format is None: -+ try: -+ serialization_format = \ -+ memcache_conf.get('memcache', -+ 'memcache_serialization_support') -+ except (NoSectionError, NoOptionError): -+ pass -+ - if not self.memcache_servers: - self.memcache_servers = '127.0.0.1:11211' -+ if serialization_format is None: -+ serialization_format = 0 -+ - self.memcache = MemcacheRing( -- [s.strip() for s in self.memcache_servers.split(',') if s.strip()]) -+ [s.strip() for s in self.memcache_servers.split(',') if s.strip()], -+ allow_pickle=(serialization_format == 0), -+ allow_unpickle=(serialization_format <= 1)) - - def __call__(self, env, start_response): - env['swift.cache'] = self.memcache -diff --git a/test/unit/common/middleware/test_memcache.py b/test/unit/common/middleware/test_memcache.py -index 6b94bd1..e217a96 100644 ---- a/test/unit/common/middleware/test_memcache.py -+++ b/test/unit/common/middleware/test_memcache.py -@@ -47,6 +47,8 @@ class SetConfigParser(object): - if section == 'memcache': - if option == 'memcache_servers': - return '1.2.3.4:5' -+ elif option == 'memcache_serialization_support': -+ return '2' - else: - raise NoOptionError(option) - else: -@@ -86,7 +88,8 @@ class TestCacheMiddleware(unittest.TestCase): - exc = None - try: - app = memcache.MemcacheMiddleware( -- FakeApp(), {'memcache_servers': '1.2.3.4:5'}) -+ FakeApp(), {'memcache_servers': '1.2.3.4:5', -+ 'memcache_serialization_support': '2'}) - except Exception, err: - exc = err - finally: -diff --git a/test/unit/common/test_memcached.py b/test/unit/common/test_memcached.py -index dff6e80..3016d10 100644 ---- a/test/unit/common/test_memcached.py -+++ b/test/unit/common/test_memcached.py -@@ -1,3 +1,4 @@ -+ # -*- coding: utf8 -*- - # Copyright (c) 2010-2012 OpenStack, LLC. - # - # Licensed under the Apache License, Version 2.0 (the "License"); -@@ -166,6 +167,9 @@ class TestMemcached(unittest.TestCase): - self.assertEquals(memcache_client.get('some_key'), [1, 2, 3]) - memcache_client.set('some_key', [4, 5, 6]) - self.assertEquals(memcache_client.get('some_key'), [4, 5, 6]) -+ memcache_client.set('some_key', ['simple str', 'utf8 str éà']) -+ # As per http://wiki.openstack.org/encoding, we should expect to have unicode -+ self.assertEquals(memcache_client.get('some_key'), ['simple str', u'utf8 str éà']) - self.assert_(float(mock.cache.values()[0][1]) == 0) - esttimeout = time.time() + 10 - memcache_client.set('some_key', [1, 2, 3], timeout=10) -@@ -244,6 +248,24 @@ class TestMemcached(unittest.TestCase): - self.assertEquals(memcache_client.get_multi(('some_key2', 'some_key1', - 'not_exists'), 'multi_key'), [[4, 5, 6], [1, 2, 3], None]) - -+ def test_serialization(self): -+ memcache_client = memcached.MemcacheRing(['1.2.3.4:11211'], -+ allow_pickle=True) -+ mock = MockMemcached() -+ memcache_client._client_cache['1.2.3.4:11211'] = [(mock, mock)] * 2 -+ memcache_client.set('some_key', [1, 2, 3]) -+ self.assertEquals(memcache_client.get('some_key'), [1, 2, 3]) -+ memcache_client._allow_pickle = False -+ memcache_client._allow_unpickle = True -+ self.assertEquals(memcache_client.get('some_key'), [1, 2, 3]) -+ memcache_client._allow_unpickle = False -+ self.assertEquals(memcache_client.get('some_key'), None) -+ memcache_client.set('some_key', [1, 2, 3]) -+ self.assertEquals(memcache_client.get('some_key'), [1, 2, 3]) -+ memcache_client._allow_unpickle = True -+ self.assertEquals(memcache_client.get('some_key'), [1, 2, 3]) -+ memcache_client._allow_pickle = True -+ self.assertEquals(memcache_client.get('some_key'), [1, 2, 3]) - - if __name__ == '__main__': - unittest.main() diff --git a/0001-Use-updated-parallel-install-versions-of-epel-packag.patch b/0001-Use-updated-parallel-install-versions-of-epel-packag.patch deleted file mode 100644 index 309b08b..0000000 --- a/0001-Use-updated-parallel-install-versions-of-epel-packag.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 43e8681d5cbd6c919e379fe25cccc189827e2d60 Mon Sep 17 00:00:00 2001 -From: Alan Pevec -Date: Wed, 4 Jan 2012 00:15:05 +0100 -Subject: [PATCH] Use updated parallel install versions of epel package -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Use WebOb >= 1.0 -and depend on the EPEL parallel installable versions of the package -to satisfy those requirements. -Based on Nova/Glance EPEL patch by Pádraig Brady ---- - swift/__init__.py | 29 +++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/swift/__init__.py b/swift/__init__.py -index 9065801..9600d1e 100644 ---- a/swift/__init__.py -+++ b/swift/__init__.py -@@ -1,3 +1,32 @@ -+import sys -+import pkg_resources -+ -+# If there is a conflicting non egg module, -+# i.e. an older standard system module installed, -+# then replace it with this requirement -+def replace_dist(requirement): -+ try: -+ return pkg_resources.require(requirement) -+ except pkg_resources.VersionConflict: -+ e = sys.exc_info()[1] -+ dist=e.args[0] -+ req=e.args[1] -+ if dist.key == req.key and not dist.location.endswith('.egg'): -+ del pkg_resources.working_set.by_key[dist.key] -+ # We assume there is no need to adjust sys.path -+ # and the associated pkg_resources.working_set.entries -+ return pkg_resources.require(requirement) -+ -+replace_dist("WebOb >= 1.0") -+ -+replace_dist("PasteDeploy >= 1.5.0") -+# This hack is needed because replace_dist() results in -+# the standard paste module path being at the start of __path__. -+# TODO: See can we get pkg_resources to do the right thing directly -+import paste -+paste.__path__.insert(0, paste.__path__.pop(-1)) -+ -+ - import gettext - - diff --git a/0002-Add-fixes-for-building-the-doc-package.patch b/0002-Add-fixes-for-building-the-doc-package.patch deleted file mode 100644 index f8a173d..0000000 --- a/0002-Add-fixes-for-building-the-doc-package.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 7df10fb14d27e35faa590770594ea1b05552576f Mon Sep 17 00:00:00 2001 -From: Alan Pevec -Date: Thu, 5 Jan 2012 00:03:00 +0100 -Subject: [PATCH] Add fixes for building the doc package -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Don't access the net and always reference -the swift module from the package we're building -Based on Nova/Glance EPEL patch by Pádraig Brady ---- - doc/source/conf.py | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/doc/source/conf.py b/doc/source/conf.py -index e6a43b0..3734cd4 100644 ---- a/doc/source/conf.py -+++ b/doc/source/conf.py -@@ -33,14 +33,14 @@ import os - # If extensions (or modules to document with autodoc) are in another directory, - # add these directories to sys.path here. If the directory is relative to the - # documentation root, use os.path.abspath to make it absolute, like shown here. --sys.path.append([os.path.abspath('../swift'), os.path.abspath('..'), -- os.path.abspath('../bin')]) -+sys.path.extend([os.path.abspath('../../swift'), os.path.abspath('../..'), -+ os.path.abspath('../../bin')]) - - # -- General configuration ---------------------------------------------------- - - # Add any Sphinx extension module names here, as strings. They can be - # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. --extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', -+extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', - 'sphinx.ext.ifconfig'] - todo_include_todos = True diff --git a/0002-Add-fixes-for-building-the-doc-package.patch.180 b/0002-Add-fixes-for-building-the-doc-package.patch.180 deleted file mode 100644 index a3c1856..0000000 --- a/0002-Add-fixes-for-building-the-doc-package.patch.180 +++ /dev/null @@ -1,37 +0,0 @@ -From 7df10fb14d27e35faa590770594ea1b05552576f Mon Sep 17 00:00:00 2001 -From: Alan Pevec -Date: Thu, 5 Jan 2012 00:03:00 +0100 -Subject: [PATCH] Add fixes for building the doc package -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Don't access the net and always reference -the swift module from the package we're building -Based on Nova/Glance EPEL patch by Pádraig Brady ---- - doc/source/conf.py | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/doc/source/conf.py b/doc/source/conf.py -index e6a43b0..3734cd4 100644 ---- a/doc/source/conf.py -+++ b/doc/source/conf.py -@@ -20,14 +20,14 @@ import os - # If extensions (or modules to document with autodoc) are in another directory, - # add these directories to sys.path here. If the directory is relative to the - # documentation root, use os.path.abspath to make it absolute, like shown here. --sys.path.extend([os.path.abspath('../swift'), os.path.abspath('..'), -- os.path.abspath('../bin')]) -+sys.path.extend([os.path.abspath('../../swift'), os.path.abspath('../..'), -+ os.path.abspath('../../bin')]) - - # -- General configuration ---------------------------------------------------- - - # Add any Sphinx extension module names here, as strings. They can be - # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. --extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', -+extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', - 'sphinx.ext.ifconfig'] - todo_include_todos = True diff --git a/0002-Fix-bug-where-serialization_format-is-ignored.patch b/0002-Fix-bug-where-serialization_format-is-ignored.patch deleted file mode 100644 index 4f7e4b4..0000000 --- a/0002-Fix-bug-where-serialization_format-is-ignored.patch +++ /dev/null @@ -1,70 +0,0 @@ -From c38568f026853f64f2669f03bd56441b007f13be Mon Sep 17 00:00:00 2001 -From: gholt -Date: Tue, 18 Sep 2012 18:24:47 +0000 -Subject: [PATCH] Fix bug where serialization_format is ignored - -Change-Id: I5a5ac8b5f18e077105ab12e9b1f0ccafac3983f7 ---- - swift/common/middleware/memcache.py | 2 ++ - test/unit/common/middleware/test_memcache.py | 12 ++++++++++-- - 2 files changed, 12 insertions(+), 2 deletions(-) - -diff --git a/swift/common/middleware/memcache.py b/swift/common/middleware/memcache.py -index 20121c9..06678c4 100644 ---- a/swift/common/middleware/memcache.py -+++ b/swift/common/middleware/memcache.py -@@ -52,6 +52,8 @@ class MemcacheMiddleware(object): - self.memcache_servers = '127.0.0.1:11211' - if serialization_format is None: - serialization_format = 0 -+ else: -+ serialization_format = int(serialization_format) - - self.memcache = MemcacheRing( - [s.strip() for s in self.memcache_servers.split(',') if s.strip()], -diff --git a/test/unit/common/middleware/test_memcache.py b/test/unit/common/middleware/test_memcache.py -index e217a96..28c7b13 100644 ---- a/test/unit/common/middleware/test_memcache.py -+++ b/test/unit/common/middleware/test_memcache.py -@@ -48,7 +48,7 @@ class SetConfigParser(object): - if option == 'memcache_servers': - return '1.2.3.4:5' - elif option == 'memcache_serialization_support': -- return '2' -+ return '1' - else: - raise NoOptionError(option) - else: -@@ -104,6 +104,8 @@ class TestCacheMiddleware(unittest.TestCase): - finally: - memcache.ConfigParser = orig_parser - self.assertEquals(app.memcache_servers, '127.0.0.1:11211') -+ self.assertEquals(app.memcache._allow_pickle, True) -+ self.assertEquals(app.memcache._allow_unpickle, True) - - def test_conf_from_extra_conf(self): - orig_parser = memcache.ConfigParser -@@ -113,16 +115,22 @@ class TestCacheMiddleware(unittest.TestCase): - finally: - memcache.ConfigParser = orig_parser - self.assertEquals(app.memcache_servers, '1.2.3.4:5') -+ self.assertEquals(app.memcache._allow_pickle, False) -+ self.assertEquals(app.memcache._allow_unpickle, True) - - def test_conf_from_inline_conf(self): - orig_parser = memcache.ConfigParser - memcache.ConfigParser = SetConfigParser - try: - app = memcache.MemcacheMiddleware( -- FakeApp(), {'memcache_servers': '6.7.8.9:10'}) -+ FakeApp(), -+ {'memcache_servers': '6.7.8.9:10', -+ 'serialization_format': '0'}) - finally: - memcache.ConfigParser = orig_parser - self.assertEquals(app.memcache_servers, '6.7.8.9:10') -+ self.assertEquals(app.memcache._allow_pickle, False) -+ self.assertEquals(app.memcache._allow_unpickle, True) - - - if __name__ == '__main__': diff --git a/glusterfs-3.2.5.configure.ac.patch b/glusterfs-3.2.5.configure.ac.patch deleted file mode 100644 index 122af1a..0000000 --- a/glusterfs-3.2.5.configure.ac.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.ac.orig 2012-01-16 13:38:53.020000114 -0500 -+++ configure.ac 2012-01-16 13:39:29.177000589 -0500 -@@ -431,7 +431,7 @@ - linux*) - dnl GF_LINUX_HOST_OS=1 - GF_HOST_OS="GF_LINUX_HOST_OS" -- GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -O0" -+ GF_CFLAGS="${ARGP_STANDALONE_CPPFLAGS} -O2" - GF_GLUSTERFS_CFLAGS="${GF_CFLAGS}" - GF_LDADD="${ARGP_STANDALONE_LDADD}" - GF_FUSE_CFLAGS="-DFUSERMOUNT_DIR=\\\"\$(bindir)\\\"" diff --git a/glusterfs-3.2.5.libglusterfs.Makefile.patch b/glusterfs-3.2.5.libglusterfs.Makefile.patch deleted file mode 100644 index 56a84b0..0000000 --- a/glusterfs-3.2.5.libglusterfs.Makefile.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- libglusterfs/src/Makefile.am.orig 2011-11-23 14:04:41.810001717 -0500 -+++ libglusterfs/src/Makefile.am 2011-11-23 14:30:49.940000394 -0500 -@@ -16,6 +16,7 @@ - $(LEX) -t $(srcdir)/graph.l > $@ - - y.tab.c y.tab.h: graph.y -- $(YACC) -d $(srcdir)/graph.y -+ $(YACC) -d -b foo $(srcdir)/graph.y -+ mv foo.tab.h y.tab.h && mv foo.tab.c y.tab.c - - CLEANFILES = graph.lex.c y.tab.c y.tab.h ---- libglusterfs/src/Makefile.in.orig 2011-11-23 14:04:35.995001451 -0500 -+++ libglusterfs/src/Makefile.in 2011-11-23 14:31:01.730999353 -0500 -@@ -866,7 +866,8 @@ - $(LEX) -t $(srcdir)/graph.l > $@ - - y.tab.c y.tab.h: graph.y -- $(YACC) -d $(srcdir)/graph.y -+ $(YACC) -d -b foo $(srcdir)/graph.y -+ mv foo.tab.h y.tab.h && mv foo.tab.c y.tab.c - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: diff --git a/glusterfs-3.2.7.xlators.mgmt.glusterd.glusterd-rpc-ops.c.patch b/glusterfs-3.2.7.xlators.mgmt.glusterd.glusterd-rpc-ops.c.patch deleted file mode 100644 index d19799b..0000000 --- a/glusterfs-3.2.7.xlators.mgmt.glusterd.glusterd-rpc-ops.c.patch +++ /dev/null @@ -1,474 +0,0 @@ ---- xlators/mgmt/glusterd/src/glusterd-rpc-ops.c -+++ xlators/mgmt/glusterd/src/glusterd-rpc-ops.c -@@ -51,9 +51,26 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret, - int32_t op_errno, rpcsvc_request_t *req, - void *op_ctx, char *op_errstr) - { -- int32_t ret = -1; -- gd_serialize_t sfunc = NULL; -- void *cli_rsp = NULL; -+ union { -+ gf1_cli_create_vol_rsp createv_rsp; -+ gf1_cli_start_vol_rsp startv_rsp; -+ gf1_cli_stop_vol_rsp stopv_rsp; -+ gf1_cli_delete_vol_rsp delv_rsp; -+ gf1_cli_defrag_vol_rsp defragv_rsp; -+ gf1_cli_set_vol_rsp setv_rsp; -+ gf1_cli_reset_vol_rsp resetv_rsp; -+ gf1_cli_sync_volume_rsp syncv_rsp; -+ gf1_cli_stats_volume_rsp statsv_rsp; -+ gf1_cli_add_brick_rsp addb_rsp; -+ gf1_cli_remove_brick_rsp rmb_rsp; -+ gf1_cli_replace_brick_rsp replb_rsp; -+ gf1_cli_log_filename_rsp logfn_rsp; -+ gf1_cli_log_rotate_rsp logrot_rsp; -+ gf1_cli_gsync_set_rsp gsyncs_rsp; -+ gf1_cli_quota_rsp quota_rsp; -+ } cli_rsp; -+ int32_t ret = -1; -+ gd_serialize_t sfunc = NULL; - dict_t *ctx = NULL; - char *free_ptr = NULL; - glusterd_conf_t *conf = NULL; -@@ -67,145 +84,103 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret, - switch (op) { - case GD_OP_CREATE_VOLUME: - { -- gf1_cli_create_vol_rsp rsp = {0,}; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- rsp.volname = ""; -- if (op_errstr) -- rsp.op_errstr = op_errstr; -- else -- rsp.op_errstr = ""; -- cli_rsp = &rsp; -+ cli_rsp.createv_rsp.op_ret = op_ret; -+ cli_rsp.createv_rsp.op_errno = op_errno; -+ cli_rsp.createv_rsp.volname = ""; -+ cli_rsp.createv_rsp.op_errstr = op_errstr ? op_errstr : ""; - sfunc = gf_xdr_serialize_cli_create_vol_rsp; - break; - } - - case GD_OP_START_VOLUME: - { -- gf1_cli_start_vol_rsp rsp = {0,}; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- rsp.volname = ""; -- if (op_errstr) -- rsp.op_errstr = op_errstr; -- else -- rsp.op_errstr = ""; -- cli_rsp = &rsp; -+ cli_rsp.startv_rsp.op_ret = op_ret; -+ cli_rsp.startv_rsp.op_errno = op_errno; -+ cli_rsp.startv_rsp.volname = ""; -+ cli_rsp.startv_rsp.op_errstr = op_errstr ? op_errstr : ""; - sfunc = gf_xdr_serialize_cli_start_vol_rsp; - break; - } - - case GD_OP_STOP_VOLUME: - { -- gf1_cli_stop_vol_rsp rsp = {0,}; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- rsp.volname = ""; -- if (op_errstr) -- rsp.op_errstr = op_errstr; -- else -- rsp.op_errstr = ""; -- cli_rsp = &rsp; -+ cli_rsp.stopv_rsp.op_ret = op_ret; -+ cli_rsp.stopv_rsp.op_errno = op_errno; -+ cli_rsp.stopv_rsp.volname = ""; -+ cli_rsp.stopv_rsp.op_errstr = op_errstr ? op_errstr : ""; - sfunc = gf_xdr_serialize_cli_stop_vol_rsp; - break; - } - - case GD_OP_DELETE_VOLUME: - { -- gf1_cli_delete_vol_rsp rsp = {0,}; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- rsp.volname = ""; -- if (op_errstr) -- rsp.op_errstr = op_errstr; -- else -- rsp.op_errstr = ""; -- cli_rsp = &rsp; -+ cli_rsp.delv_rsp.op_ret = op_ret; -+ cli_rsp.delv_rsp.op_errno = op_errno; -+ cli_rsp.delv_rsp.volname = ""; -+ cli_rsp.delv_rsp.op_errstr = op_errstr ? op_errstr : ""; - sfunc = gf_xdr_serialize_cli_delete_vol_rsp; - break; - } - - case GD_OP_DEFRAG_VOLUME: - { -- gf1_cli_defrag_vol_rsp rsp = {0,}; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- //rsp.volname = ""; -- cli_rsp = &rsp; -+ cli_rsp.defragv_rsp.op_ret = op_ret; -+ cli_rsp.defragv_rsp.op_errno = op_errno; -+ //cli_rsp.defragv_rsp.volname = ""; - sfunc = gf_xdr_serialize_cli_defrag_vol_rsp; - break; - } - - case GD_OP_ADD_BRICK: - { -- gf1_cli_add_brick_rsp rsp = {0,}; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- rsp.volname = ""; -- if (op_errstr) -- rsp.op_errstr = op_errstr; -- else -- rsp.op_errstr = ""; -- cli_rsp = &rsp; -+ cli_rsp.addb_rsp.op_ret = op_ret; -+ cli_rsp.addb_rsp.op_errno = op_errno; -+ cli_rsp.addb_rsp.volname = ""; -+ cli_rsp.addb_rsp.op_errstr = op_errstr ? op_errstr : ""; - sfunc = gf_xdr_serialize_cli_add_brick_rsp; - break; - } - - case GD_OP_REMOVE_BRICK: - { -- gf1_cli_remove_brick_rsp rsp = {0,}; - ctx = op_ctx; - if (ctx && -- dict_get_str (ctx, "errstr", &rsp.op_errstr)) -- rsp.op_errstr = ""; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- rsp.volname = ""; -- cli_rsp = &rsp; -+ dict_get_str (ctx, "errstr", &cli_rsp.rmb_rsp.op_errstr)) -+ cli_rsp.rmb_rsp.op_errstr = ""; -+ cli_rsp.rmb_rsp.op_ret = op_ret; -+ cli_rsp.rmb_rsp.op_errno = op_errno; -+ cli_rsp.rmb_rsp.volname = ""; - sfunc = gf_xdr_serialize_cli_remove_brick_rsp; - break; - } - - case GD_OP_REPLACE_BRICK: - { -- gf1_cli_replace_brick_rsp rsp = {0,}; - ctx = op_ctx; - if (ctx && -- dict_get_str (ctx, "status-reply", &rsp.status)) -- rsp.status = ""; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- if (op_errstr) -- rsp.op_errstr = op_errstr; -- else -- rsp.op_errstr = ""; -- rsp.volname = ""; -- cli_rsp = &rsp; -+ dict_get_str (ctx, "status-reply", &cli_rsp.replb_rsp.status)) -+ cli_rsp.replb_rsp.status = ""; -+ cli_rsp.replb_rsp.op_ret = op_ret; -+ cli_rsp.replb_rsp.op_errno = op_errno; -+ cli_rsp.replb_rsp.volname = ""; -+ cli_rsp.replb_rsp.op_errstr = op_errstr ? op_errstr : ""; - sfunc = gf_xdr_serialize_cli_replace_brick_rsp; - break; - } - - case GD_OP_SET_VOLUME: - { -- gf1_cli_set_vol_rsp rsp = {0,}; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- rsp.volname = ""; - ctx = op_ctx; -- -- if (op_errstr) -- rsp.op_errstr = op_errstr; -- else -- rsp.op_errstr = ""; - if (ctx) { - ret = dict_allocate_and_serialize (ctx, -- &rsp.dict.dict_val, -- (size_t*)&rsp.dict.dict_len); -+ &cli_rsp.setv_rsp.dict.dict_val, -+ (size_t*)&cli_rsp.setv_rsp.dict.dict_len); - if (ret == 0) -- free_ptr = rsp.dict.dict_val; -+ free_ptr = cli_rsp.setv_rsp.dict.dict_val; - } -- -- cli_rsp = &rsp; -+ cli_rsp.setv_rsp.op_errno = op_errno; -+ cli_rsp.setv_rsp.volname = ""; -+ cli_rsp.setv_rsp.op_errstr = op_errstr ? op_errstr : ""; - sfunc = gf_xdr_serialize_cli_set_vol_rsp; - break; - } -@@ -213,55 +188,35 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret, - case GD_OP_RESET_VOLUME: - { - gf_log ("", GF_LOG_DEBUG, "Return value to CLI"); -- gf1_cli_reset_vol_rsp rsp = {0,}; -- rsp.op_ret = op_ret; -- rsp.op_errno = 1; -- rsp.volname = ""; -- if (op_errstr) -- rsp.op_errstr = op_errstr; -- else -- rsp.op_errstr = "Error while resetting options"; -- cli_rsp = &rsp; -+ cli_rsp.resetv_rsp.op_ret = op_ret; -+ cli_rsp.resetv_rsp.op_errno = 1; -+ cli_rsp.resetv_rsp.volname = ""; -+ cli_rsp.resetv_rsp.op_errstr = op_errstr ? op_errstr : "Error while resetting options"; - sfunc = gf_xdr_serialize_cli_reset_vol_rsp; - break; - } - - case GD_OP_LOG_FILENAME: - { -- gf1_cli_log_filename_rsp rsp = {0,}; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- if (op_errstr) -- rsp.errstr = op_errstr; -- else -- rsp.errstr = ""; -- cli_rsp = &rsp; -+ cli_rsp.logfn_rsp.op_ret = op_ret; -+ cli_rsp.logfn_rsp.op_errno = op_errno; -+ cli_rsp.logfn_rsp.errstr = op_errstr ? op_errstr : ""; - sfunc = gf_xdr_serialize_cli_log_filename_rsp; - break; - } - case GD_OP_LOG_ROTATE: - { -- gf1_cli_log_rotate_rsp rsp = {0,}; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- if (op_errstr) -- rsp.errstr = op_errstr; -- else -- rsp.errstr = ""; -- cli_rsp = &rsp; -+ cli_rsp.logrot_rsp.op_ret = op_ret; -+ cli_rsp.logrot_rsp.op_errno = op_errno; -+ cli_rsp.logrot_rsp.errstr = op_errstr ? op_errstr : ""; - sfunc = gf_xdr_serialize_cli_log_rotate_rsp; - break; - } - case GD_OP_SYNC_VOLUME: - { -- gf1_cli_sync_volume_rsp rsp = {0,}; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- if (op_errstr) -- rsp.op_errstr = op_errstr; -- else -- rsp.op_errstr = ""; -- cli_rsp = &rsp; -+ cli_rsp.syncv_rsp.op_ret = op_ret; -+ cli_rsp.syncv_rsp.op_errno = op_errno; -+ cli_rsp.syncv_rsp.op_errstr = op_errstr ? op_errstr : ""; - sfunc = gf_xdr_from_cli_sync_volume_rsp; - break; - } -@@ -273,72 +228,56 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret, - char *slave = NULL; - char *op_name = NULL; - char *subop = NULL; -- gf1_cli_gsync_set_rsp rsp = {0,}; - -+ cli_rsp.gsyncs_rsp.op_ret = op_ret; -+ cli_rsp.gsyncs_rsp.op_errno = op_errno; -+ cli_rsp.gsyncs_rsp.op_errstr = op_errstr ? op_errstr : ""; -+ cli_rsp.gsyncs_rsp.op_name = ""; -+ cli_rsp.gsyncs_rsp.subop = ""; -+ cli_rsp.gsyncs_rsp.master = ""; -+ cli_rsp.gsyncs_rsp.slave = ""; -+ cli_rsp.gsyncs_rsp.glusterd_workdir = conf->workdir; -+ cli_rsp.gsyncs_rsp.gsync_prefix = GSYNCD_PREFIX; - ctx = op_ctx; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- rsp.op_errstr = ""; -- rsp.op_name = ""; -- rsp.subop = ""; -- rsp.master = ""; -- rsp.slave = ""; -- rsp.glusterd_workdir = conf->workdir; -- rsp.gsync_prefix = GSYNCD_PREFIX; - if (ctx) { - ret = dict_get_str (ctx, "errstr", &str); - if (ret == 0) -- rsp.op_errstr = str; -+ cli_rsp.gsyncs_rsp.op_errstr = str; - ret = dict_get_int32 (ctx, "type", &type); - if (ret == 0) -- rsp.type = type; -+ cli_rsp.gsyncs_rsp.type = type; - ret = dict_get_str (ctx, "master", &master); - if (ret == 0) -- rsp.master = master; -+ cli_rsp.gsyncs_rsp.master = master; - - ret = dict_get_str (ctx, "slave", &slave); - if (ret == 0) -- rsp.slave = slave; -+ cli_rsp.gsyncs_rsp.slave = slave; - - if (type == GF_GSYNC_OPTION_TYPE_CONFIG) { - if (dict_get_str (ctx, "op_name", &op_name) == 0) -- rsp.op_name = op_name; -+ cli_rsp.gsyncs_rsp.op_name = op_name; - if (dict_get_str (ctx, "subop", &subop) == 0) -- rsp.subop = subop; -+ cli_rsp.gsyncs_rsp.subop = subop; - } - - ret = dict_allocate_and_serialize (ctx, -- &rsp.status_dict.status_dict_val, -- (size_t*)&rsp.status_dict.status_dict_len); -+ &cli_rsp.gsyncs_rsp.status_dict.status_dict_val, -+ (size_t*)&cli_rsp.gsyncs_rsp.status_dict.status_dict_len); - - if (ret == 0) -- free_ptr = rsp.status_dict.status_dict_val; -+ free_ptr = cli_rsp.gsyncs_rsp.status_dict.status_dict_val; - - } -- if (op_errstr) -- rsp.op_errstr = op_errstr; -- cli_rsp = &rsp; - sfunc = gf_xdr_serialize_cli_gsync_set_rsp; - break; - } -- case GD_OP_RENAME_VOLUME: -- case GD_OP_START_BRICK: -- case GD_OP_STOP_BRICK: -- case GD_OP_LOG_LOCATE: -- { -- gf_log ("", GF_LOG_DEBUG, "not supported op %d", op); -- break; -- } - case GD_OP_PROFILE_VOLUME: - { -- gf1_cli_stats_volume_rsp rsp = {0,}; - int32_t count = 0; -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- if (op_errstr) -- rsp.op_errstr = op_errstr; -- else -- rsp.op_errstr = ""; -+ cli_rsp.statsv_rsp.op_ret = op_ret; -+ cli_rsp.statsv_rsp.op_errno = op_errno; -+ cli_rsp.statsv_rsp.op_errstr = op_errstr ? op_errstr : ""; - ctx = op_ctx; - if (dict_get_int32 (ctx, "count", &count)) { - ret = dict_set_int32 (ctx, "count", 0); -@@ -347,10 +286,9 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret, - "to set brick count."); - } - dict_allocate_and_serialize (ctx, -- &rsp.stats_info.stats_info_val, -- (size_t*)&rsp.stats_info.stats_info_len); -- free_ptr = rsp.stats_info.stats_info_val; -- cli_rsp = &rsp; -+ &cli_rsp.statsv_rsp.stats_info.stats_info_val, -+ (size_t*)&cli_rsp.statsv_rsp.stats_info.stats_info_len); -+ free_ptr = cli_rsp.statsv_rsp.stats_info.stats_info_val; - sfunc = gf_xdr_from_cli_stats_volume_rsp; - break; - } -@@ -360,49 +298,56 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret, - int32_t type; - char *str = NULL; - char *errstr = NULL; -- gf1_cli_quota_rsp rsp = {0,}; - -- rsp.op_ret = op_ret; -- rsp.op_errno = op_errno; -- rsp.volname = ""; -+ cli_rsp.quota_rsp.op_ret = op_ret; -+ cli_rsp.quota_rsp.op_errno = op_errno; -+ cli_rsp.quota_rsp.volname = ""; - - ctx = op_ctx; - - if (op_errstr) -- rsp.op_errstr = op_errstr; -+ cli_rsp.quota_rsp.op_errstr = op_errstr; - else { - ret = dict_get_str (ctx, "errstr", &errstr); - if (ret == 0) -- rsp.op_errstr = errstr; -+ cli_rsp.quota_rsp.op_errstr = errstr; - else -- rsp.op_errstr = ""; -+ cli_rsp.quota_rsp.op_errstr = ""; - } - -- rsp.limit_list = ""; -+ cli_rsp.quota_rsp.limit_list = ""; - - if (op_ret == 0 && ctx) { - ret = dict_get_str (ctx, "volname", &str); - if (ret == 0) -- rsp.volname = str; -+ cli_rsp.quota_rsp.volname = str; - - ret = dict_get_int32 (ctx, "type", &type); - if (ret == 0) -- rsp.type = type; -+ cli_rsp.quota_rsp.type = type; - else -- rsp.type = 0; -+ cli_rsp.quota_rsp.type = 0; - - if (type == GF_QUOTA_OPTION_TYPE_LIST) { - ret = dict_get_str (ctx,"limit_list", &str); - - if (ret == 0) -- rsp.limit_list = str; -+ cli_rsp.quota_rsp.limit_list = str; - } - } -- cli_rsp = &rsp; - sfunc = gf_xdr_serialize_cli_quota_rsp; - break; - } - -+ case GD_OP_RENAME_VOLUME: -+ case GD_OP_START_BRICK: -+ case GD_OP_STOP_BRICK: -+ case GD_OP_LOG_LOCATE: -+ { -+ gf_log ("", GF_LOG_DEBUG, "not supported op %d", op); -+ break; -+ } -+ - case GD_OP_NONE: - case GD_OP_MAX: - { -@@ -411,7 +356,7 @@ glusterd_op_send_cli_response (glusterd_op_t op, int32_t op_ret, - } - } - -- ret = glusterd_submit_reply (req, cli_rsp, NULL, 0, NULL, -+ ret = glusterd_submit_reply (req, &cli_rsp, NULL, 0, NULL, - sfunc); - - if (free_ptr) diff --git a/glusterfs-3.3.0.cli.cli-rpc-ops.c.patch b/glusterfs-3.3.0.cli.cli-rpc-ops.c.patch deleted file mode 100644 index 3d7ca10..0000000 --- a/glusterfs-3.3.0.cli.cli-rpc-ops.c.patch +++ /dev/null @@ -1,20 +0,0 @@ -*** cli/src/cli-rpc-ops.c.orig 2012-07-18 13:16:43.720998232 -0400 ---- cli/src/cli-rpc-ops.c 2012-07-18 13:19:52.463999495 -0400 -*************** -*** 5832,5838 **** - if (!time) { - cli_out ("%s", path); - } else { -! tm = localtime ((time_t*)(&time)); - strftime (timestr, sizeof (timestr), - "%Y-%m-%d %H:%M:%S", tm); - if (i ==0) { ---- 5832,5839 ---- - if (!time) { - cli_out ("%s", path); - } else { -! time_t hack = time; -! tm = localtime (&hack); - strftime (timestr, sizeof (timestr), - "%Y-%m-%d %H:%M:%S", tm); - if (i ==0) { diff --git a/glusterfs-3.3.0.libglusterfs.Makefile.patch b/glusterfs-3.3.0.libglusterfs.Makefile.patch deleted file mode 100644 index bd9bde7..0000000 --- a/glusterfs-3.3.0.libglusterfs.Makefile.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- libglusterfs/src/Makefile.am.orig 2012-05-17 12:30:57.000000000 -0400 -+++ libglusterfs/src/Makefile.am 2012-05-18 08:52:55.469998306 -0400 -@@ -44,7 +44,8 @@ - $(LEX) -t $(srcdir)/graph.l > $@ - - y.tab.h: graph.y -- $(YACC) -d $(srcdir)/graph.y -+ $(YACC) -d -b foo $(srcdir)/graph.y -+ mv foo.tab.h y.tab.h && mv foo.tab.c y.tab.c - - CLEANFILES = graph.lex.c y.tab.c y.tab.h - CONFIG_CLEAN_FILES = $(CONTRIB_BUILDDIR)/uuid/uuid_types.h ---- libglusterfs/src/Makefile.in.orig 2012-05-17 12:31:12.000000000 -0400 -+++ libglusterfs/src/Makefile.in 2012-05-18 09:02:31.108002281 -0400 -@@ -941,7 +941,8 @@ - $(LEX) -t $(srcdir)/graph.l > $@ - - y.tab.h: graph.y -- $(YACC) -d $(srcdir)/graph.y -+ $(YACC) -d -b foo $(srcdir)/graph.y -+ mv foo.tab.h y.tab.h && mv foo.tab.c y.tab.c - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: diff --git a/glusterfs-3.3.0.swift.patch b/glusterfs-3.3.0.swift.patch deleted file mode 100644 index 8ed5070..0000000 --- a/glusterfs-3.3.0.swift.patch +++ /dev/null @@ -1,797 +0,0 @@ -diff --git a/setup.py b/setup.py -index d195d34..b5b5ca2 100644 ---- a/setup.py -+++ b/setup.py -@@ -1,5 +1,6 @@ - #!/usr/bin/python - # Copyright (c) 2010-2012 OpenStack, LLC. -+# Copyright (c) 2011 Red Hat, Inc. - # - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. -@@ -94,6 +95,7 @@ setup( - 'tempurl=swift.common.middleware.tempurl:filter_factory', - 'formpost=swift.common.middleware.formpost:filter_factory', - 'name_check=swift.common.middleware.name_check:filter_factory', -+ 'gluster=swift.common.middleware.gluster:filter_factory', - ], - }, - ) -diff --git a/swift/account/server.py b/swift/account/server.py -index 800b3c0..cb17970 100644 ---- a/swift/account/server.py -+++ b/swift/account/server.py -@@ -1,4 +1,5 @@ - # Copyright (c) 2010-2012 OpenStack, LLC. -+# Copyright (c) 2011 Red Hat, Inc. - # - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. -@@ -31,7 +32,7 @@ import simplejson - - from swift.common.db import AccountBroker - from swift.common.utils import get_logger, get_param, hash_path, \ -- normalize_timestamp, split_path, storage_directory -+ normalize_timestamp, split_path, storage_directory, plugin_enabled - from swift.common.constraints import ACCOUNT_LISTING_LIMIT, \ - check_mount, check_float, check_utf8 - from swift.common.db_replicator import ReplicatorRpc -@@ -39,6 +40,8 @@ from swift.common.db_replicator import ReplicatorRpc - - DATADIR = 'accounts' - -+if plugin_enabled(): -+ from swift.plugins.DiskDir import DiskAccount - - class AccountController(object): - """WSGI controller for the account server.""" -@@ -52,8 +55,12 @@ class AccountController(object): - self.mount_check, logger=self.logger) - self.auto_create_account_prefix = \ - conf.get('auto_create_account_prefix') or '.' -+ self.fs_object = None - - def _get_account_broker(self, drive, part, account): -+ if self.fs_object: -+ return DiskAccount(self.root, account, self.fs_object); -+ - hsh = hash_path(account) - db_dir = storage_directory(DATADIR, part, hsh) - db_path = os.path.join(self.root, drive, db_dir, hsh + '.db') -@@ -121,9 +128,15 @@ class AccountController(object): - if broker.is_deleted(): - return HTTPConflict(request=req) - metadata = {} -- metadata.update((key, (value, timestamp)) -- for key, value in req.headers.iteritems() -- if key.lower().startswith('x-account-meta-')) -+ if not self.fs_object: -+ metadata.update((key, (value, timestamp)) -+ for key, value in req.headers.iteritems() -+ if key.lower().startswith('x-account-meta-')) -+ else: -+ metadata.update((key, value) -+ for key, value in req.headers.iteritems() -+ if key.lower().startswith('x-account-meta-')) -+ - if metadata: - broker.update_metadata(metadata) - if created: -@@ -153,6 +166,9 @@ class AccountController(object): - broker.stale_reads_ok = True - if broker.is_deleted(): - return HTTPNotFound(request=req) -+ if self.fs_object and not self.fs_object.object_only: -+ broker.list_containers_iter(None, None,None, -+ None, None) - info = broker.get_info() - headers = { - 'X-Account-Container-Count': info['container_count'], -@@ -164,9 +180,16 @@ class AccountController(object): - container_ts = broker.get_container_timestamp(container) - if container_ts is not None: - headers['X-Container-Timestamp'] = container_ts -- headers.update((key, value) -- for key, (value, timestamp) in broker.metadata.iteritems() -- if value != '') -+ if not self.fs_object: -+ headers.update((key, value) -+ for key, (value, timestamp) in broker.metadata.iteritems() -+ if value != '') -+ else: -+ headers.update((key, value) -+ for key, value in broker.metadata.iteritems() -+ if value != '') -+ -+ - return HTTPNoContent(request=req, headers=headers) - - def GET(self, req): -@@ -190,9 +213,15 @@ class AccountController(object): - 'X-Account-Bytes-Used': info['bytes_used'], - 'X-Timestamp': info['created_at'], - 'X-PUT-Timestamp': info['put_timestamp']} -- resp_headers.update((key, value) -- for key, (value, timestamp) in broker.metadata.iteritems() -- if value != '') -+ if not self.fs_object: -+ resp_headers.update((key, value) -+ for key, (value, timestamp) in broker.metadata.iteritems() -+ if value != '') -+ else: -+ resp_headers.update((key, value) -+ for key, value in broker.metadata.iteritems() -+ if value != '') -+ - try: - prefix = get_param(req, 'prefix') - delimiter = get_param(req, 'delimiter') -@@ -224,6 +253,7 @@ class AccountController(object): - content_type='text/plain', request=req) - account_list = broker.list_containers_iter(limit, marker, end_marker, - prefix, delimiter) -+ - if out_content_type == 'application/json': - json_pattern = ['"name":%s', '"count":%s', '"bytes":%s'] - json_pattern = '{' + ','.join(json_pattern) + '}' -@@ -298,15 +328,29 @@ class AccountController(object): - return HTTPNotFound(request=req) - timestamp = normalize_timestamp(req.headers['x-timestamp']) - metadata = {} -- metadata.update((key, (value, timestamp)) -- for key, value in req.headers.iteritems() -- if key.lower().startswith('x-account-meta-')) -+ if not self.fs_object: -+ metadata.update((key, (value, timestamp)) -+ for key, value in req.headers.iteritems() -+ if key.lower().startswith('x-account-meta-')) -+ else: -+ metadata.update((key, value) -+ for key, value in req.headers.iteritems() -+ if key.lower().startswith('x-account-meta-')) - if metadata: - broker.update_metadata(metadata) - return HTTPNoContent(request=req) - -+ def plugin(self, env): -+ if env.get('Gluster_enabled', False): -+ self.fs_object = env.get('fs_object') -+ self.root = env.get('root') -+ self.mount_check = False -+ else: -+ self.fs_object = None -+ - def __call__(self, env, start_response): - start_time = time.time() -+ self.plugin(env) - req = Request(env) - self.logger.txn_id = req.headers.get('x-trans-id', None) - if not check_utf8(req.path_info): -diff --git a/swift/common/middleware/gluster.py b/swift/common/middleware/gluster.py -new file mode 100644 -index 0000000..341285d ---- /dev/null -+++ b/swift/common/middleware/gluster.py -@@ -0,0 +1,55 @@ -+# Copyright (c) 2011 Red Hat, Inc. -+# -+# Licensed under the Apache License, Version 2.0 (the "License"); -+# you may not use this file except in compliance with the License. -+# You may obtain a copy of the License at -+# -+# http://www.apache.org/licenses/LICENSE-2.0 -+# -+# Unless required by applicable law or agreed to in writing, software -+# distributed under the License is distributed on an "AS IS" BASIS, -+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -+# implied. -+# See the License for the specific language governing permissions and -+# limitations under the License. -+ -+from swift.common.utils import get_logger, plugin_enabled -+from swift import plugins -+from ConfigParser import ConfigParser -+ -+class Gluster_plugin(object): -+ """ -+ Update the environment with keys that reflect Gluster_plugin enabled -+ """ -+ -+ def __init__(self, app, conf): -+ self.app = app -+ self.conf = conf -+ self.fs_name = 'Glusterfs' -+ self.logger = get_logger(conf, log_route='gluster') -+ -+ def __call__(self, env, start_response): -+ if not plugin_enabled(): -+ return self.app(env, start_response) -+ env['Gluster_enabled'] =True -+ fs_object = getattr(plugins, self.fs_name, False) -+ if not fs_object: -+ raise Exception('%s plugin not found', self.fs_name) -+ -+ env['fs_object'] = fs_object() -+ fs_conf = ConfigParser() -+ if fs_conf.read('/etc/swift/fs.conf'): -+ try: -+ env['root'] = fs_conf.get ('DEFAULT', 'mount_path') -+ except NoSectionError, NoOptionError: -+ self.logger.exception(_('ERROR mount_path not present')) -+ return self.app(env, start_response) -+ -+def filter_factory(global_conf, **local_conf): -+ """Returns a WSGI filter app for use with paste.deploy.""" -+ conf = global_conf.copy() -+ conf.update(local_conf) -+ -+ def gluster_filter(app): -+ return Gluster_plugin(app, conf) -+ return gluster_filter -diff --git a/swift/common/utils.py b/swift/common/utils.py -index 47edce8..03701ce 100644 ---- a/swift/common/utils.py -+++ b/swift/common/utils.py -@@ -1,4 +1,5 @@ - # Copyright (c) 2010-2012 OpenStack, LLC. -+# Copyright (c) 2011 Red Hat, Inc. - # - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. -@@ -1138,3 +1139,11 @@ def streq_const_time(s1, s2): - for (a, b) in zip(s1, s2): - result |= ord(a) ^ ord(b) - return result == 0 -+ -+def plugin_enabled(): -+ swift_conf = ConfigParser() -+ swift_conf.read(os.path.join('/etc/swift', 'swift.conf')) -+ try: -+ return swift_conf.get('DEFAULT', 'Enable_plugin', 'no') in TRUE_VALUES -+ except NoOptionError, NoSectionError: -+ return False -diff --git a/swift/container/server.py b/swift/container/server.py -index 8a18cfd..93943a3 100644 ---- a/swift/container/server.py -+++ b/swift/container/server.py -@@ -1,4 +1,5 @@ - # Copyright (c) 2010-2012 OpenStack, LLC. -+# Copyright (c) 2011 Red Hat, Inc. - # - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. -@@ -31,7 +32,8 @@ from webob.exc import HTTPAccepted, HTTPBadRequest, HTTPConflict, \ - - from swift.common.db import ContainerBroker - from swift.common.utils import get_logger, get_param, hash_path, \ -- normalize_timestamp, storage_directory, split_path, validate_sync_to -+ normalize_timestamp, storage_directory, split_path, validate_sync_to, \ -+ plugin_enabled - from swift.common.constraints import CONTAINER_LISTING_LIMIT, \ - check_mount, check_float, check_utf8 - from swift.common.bufferedhttp import http_connect -@@ -40,6 +42,9 @@ from swift.common.db_replicator import ReplicatorRpc - - DATADIR = 'containers' - -+if plugin_enabled(): -+ from swift.plugins.DiskDir import DiskDir -+ - - class ContainerController(object): - """WSGI Controller for the container server.""" -@@ -62,6 +67,7 @@ class ContainerController(object): - ContainerBroker, self.mount_check, logger=self.logger) - self.auto_create_account_prefix = \ - conf.get('auto_create_account_prefix') or '.' -+ self.fs_object = None - - def _get_container_broker(self, drive, part, account, container): - """ -@@ -73,6 +79,11 @@ class ContainerController(object): - :param container: container name - :returns: ContainerBroker object - """ -+ if self.fs_object: -+ return DiskDir(self.root, drive, part, account, -+ container, self.logger, -+ fs_object = self.fs_object) -+ - hsh = hash_path(account, container) - db_dir = storage_directory(DATADIR, part, hsh) - db_path = os.path.join(self.root, drive, db_dir, hsh + '.db') -@@ -211,10 +222,18 @@ class ContainerController(object): - if broker.is_deleted(): - return HTTPConflict(request=req) - metadata = {} -- metadata.update((key, (value, timestamp)) -- for key, value in req.headers.iteritems() -- if key.lower() in self.save_headers or -- key.lower().startswith('x-container-meta-')) -+ #Note: check the structure of req.headers -+ if not self.fs_object: -+ metadata.update((key, (value, timestamp)) -+ for key, value in req.headers.iteritems() -+ if key.lower() in self.save_headers or -+ key.lower().startswith('x-container-meta-')) -+ else: -+ metadata.update((key, value) -+ for key, value in req.headers.iteritems() -+ if key.lower() in self.save_headers or -+ key.lower().startswith('x-container-meta-')) -+ - if metadata: - if 'X-Container-Sync-To' in metadata: - if 'X-Container-Sync-To' not in broker.metadata or \ -@@ -222,6 +241,7 @@ class ContainerController(object): - broker.metadata['X-Container-Sync-To'][0]: - broker.set_x_container_sync_points(-1, -1) - broker.update_metadata(metadata) -+ - resp = self.account_update(req, account, container, broker) - if resp: - return resp -@@ -245,6 +265,11 @@ class ContainerController(object): - broker.stale_reads_ok = True - if broker.is_deleted(): - return HTTPNotFound(request=req) -+ -+ if self.fs_object and not self.fs_object.object_only: -+ broker.list_objects_iter(None, None, None, None, -+ None, None) -+ - info = broker.get_info() - headers = { - 'X-Container-Object-Count': info['object_count'], -@@ -252,10 +277,17 @@ class ContainerController(object): - 'X-Timestamp': info['created_at'], - 'X-PUT-Timestamp': info['put_timestamp'], - } -- headers.update((key, value) -- for key, (value, timestamp) in broker.metadata.iteritems() -- if value != '' and (key.lower() in self.save_headers or -- key.lower().startswith('x-container-meta-'))) -+ if not self.fs_object: -+ headers.update((key, value) -+ for key, (value, timestamp) in broker.metadata.iteritems() -+ if value != '' and (key.lower() in self.save_headers or -+ key.lower().startswith('x-container-meta-'))) -+ else: -+ headers.update((key, value) -+ for key, value in broker.metadata.iteritems() -+ if value != '' and (key.lower() in self.save_headers or -+ key.lower().startswith('x-container-meta-'))) -+ - return HTTPNoContent(request=req, headers=headers) - - def GET(self, req): -@@ -268,6 +300,7 @@ class ContainerController(object): - request=req) - if self.mount_check and not check_mount(self.root, drive): - return Response(status='507 %s is not mounted' % drive) -+ - broker = self._get_container_broker(drive, part, account, container) - broker.pending_timeout = 0.1 - broker.stale_reads_ok = True -@@ -280,10 +313,17 @@ class ContainerController(object): - 'X-Timestamp': info['created_at'], - 'X-PUT-Timestamp': info['put_timestamp'], - } -- resp_headers.update((key, value) -- for key, (value, timestamp) in broker.metadata.iteritems() -- if value != '' and (key.lower() in self.save_headers or -- key.lower().startswith('x-container-meta-'))) -+ if not self.fs_object: -+ resp_headers.update((key, value) -+ for key, (value, timestamp) in broker.metadata.iteritems() -+ if value != '' and (key.lower() in self.save_headers or -+ key.lower().startswith('x-container-meta-'))) -+ else: -+ resp_headers.update((key, value) -+ for key, value in broker.metadata.iteritems() -+ if value != '' and (key.lower() in self.save_headers or -+ key.lower().startswith('x-container-meta-'))) -+ - try: - path = get_param(req, 'path') - prefix = get_param(req, 'prefix') -@@ -414,10 +454,17 @@ class ContainerController(object): - return HTTPNotFound(request=req) - timestamp = normalize_timestamp(req.headers['x-timestamp']) - metadata = {} -- metadata.update((key, (value, timestamp)) -- for key, value in req.headers.iteritems() -- if key.lower() in self.save_headers or -- key.lower().startswith('x-container-meta-')) -+ if not self.fs_object: -+ metadata.update((key, (value, timestamp)) -+ for key, value in req.headers.iteritems() -+ if key.lower() in self.save_headers or -+ key.lower().startswith('x-container-meta-')) -+ else: -+ metadata.update((key, value) -+ for key, value in req.headers.iteritems() -+ if key.lower() in self.save_headers or -+ key.lower().startswith('x-container-meta-')) -+ - if metadata: - if 'X-Container-Sync-To' in metadata: - if 'X-Container-Sync-To' not in broker.metadata or \ -@@ -427,8 +474,19 @@ class ContainerController(object): - broker.update_metadata(metadata) - return HTTPNoContent(request=req) - -+ def plugin(self, env): -+ if env.get('Gluster_enabled', False): -+ self.fs_object = env.get('fs_object') -+ if not self.fs_object: -+ raise NoneTypeError -+ self.root = env.get('root') -+ self.mount_check = False -+ else: -+ self.fs_object = None -+ - def __call__(self, env, start_response): - start_time = time.time() -+ self.plugin(env) - req = Request(env) - self.logger.txn_id = req.headers.get('x-trans-id', None) - if not check_utf8(req.path_info): -diff --git a/swift/obj/server.py b/swift/obj/server.py -index 9cca16b..a45daff 100644 ---- a/swift/obj/server.py -+++ b/swift/obj/server.py -@@ -1,4 +1,5 @@ - # Copyright (c) 2010-2012 OpenStack, LLC. -+# Copyright (c) 2011 Red Hat, Inc. - # - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. -@@ -26,6 +27,7 @@ from hashlib import md5 - from tempfile import mkstemp - from urllib import unquote - from contextlib import contextmanager -+from ConfigParser import ConfigParser - - from webob import Request, Response, UTC - from webob.exc import HTTPAccepted, HTTPBadRequest, HTTPCreated, \ -@@ -37,16 +39,23 @@ from eventlet import sleep, Timeout, tpool - - from swift.common.utils import mkdirs, normalize_timestamp, \ - storage_directory, hash_path, renamer, fallocate, \ -- split_path, drop_buffer_cache, get_logger, write_pickle -+ split_path, drop_buffer_cache, get_logger, write_pickle, \ -+ plugin_enabled - from swift.common.bufferedhttp import http_connect --from swift.common.constraints import check_object_creation, check_mount, \ -- check_float, check_utf8 -+if plugin_enabled(): -+ from swift.plugins.constraints import check_object_creation -+ from swift.plugins.utils import X_TYPE, X_OBJECT_TYPE, FILE, DIR, MARKER_DIR, \ -+ OBJECT, DIR_TYPE, FILE_TYPE -+else: -+ from swift.common.constraints import check_object_creation -+ -+from swift.common.constraints import check_mount, check_float, check_utf8 -+ - from swift.common.exceptions import ConnectionTimeout, DiskFileError, \ - DiskFileNotExist - from swift.obj.replicator import tpooled_get_hashes, invalidate_hash, \ - quarantine_renamer - -- - DATADIR = 'objects' - ASYNCDIR = 'async_pending' - PICKLE_PROTOCOL = 2 -@@ -339,6 +348,9 @@ class DiskFile(object): - raise - raise DiskFileNotExist('Data File does not exist.') - -+if plugin_enabled(): -+ from swift.plugins.DiskFile import Gluster_DiskFile -+ - - class ObjectController(object): - """Implements the WSGI application for the Swift Object Server.""" -@@ -377,6 +389,17 @@ class ObjectController(object): - 'expiring_objects' - self.expiring_objects_container_divisor = \ - int(conf.get('expiring_objects_container_divisor') or 86400) -+ self.fs_object = None -+ -+ def get_DiskFile_obj(self, path, device, partition, account, container, obj, -+ logger, keep_data_fp=False, disk_chunk_size=65536): -+ if self.fs_object: -+ return Gluster_DiskFile(path, device, partition, account, container, -+ obj, logger, keep_data_fp, -+ disk_chunk_size, fs_object = self.fs_object); -+ else: -+ return DiskFile(path, device, partition, account, container, -+ obj, logger, keep_data_fp, disk_chunk_size) - - def async_update(self, op, account, container, obj, host, partition, - contdevice, headers_out, objdevice): -@@ -493,7 +516,7 @@ class ObjectController(object): - content_type='text/plain') - if self.mount_check and not check_mount(self.devices, device): - return Response(status='507 %s is not mounted' % device) -- file = DiskFile(self.devices, device, partition, account, container, -+ file = self.get_DiskFile_obj(self.devices, device, partition, account, container, - obj, self.logger, disk_chunk_size=self.disk_chunk_size) - - if 'X-Delete-At' in file.metadata and \ -@@ -548,7 +571,7 @@ class ObjectController(object): - if new_delete_at and new_delete_at < time.time(): - return HTTPBadRequest(body='X-Delete-At in past', request=request, - content_type='text/plain') -- file = DiskFile(self.devices, device, partition, account, container, -+ file = self.get_DiskFile_obj(self.devices, device, partition, account, container, - obj, self.logger, disk_chunk_size=self.disk_chunk_size) - orig_timestamp = file.metadata.get('X-Timestamp') - upload_expiration = time.time() + self.max_upload_time -@@ -580,12 +603,29 @@ class ObjectController(object): - if 'etag' in request.headers and \ - request.headers['etag'].lower() != etag: - return HTTPUnprocessableEntity(request=request) -- metadata = { -- 'X-Timestamp': request.headers['x-timestamp'], -- 'Content-Type': request.headers['content-type'], -- 'ETag': etag, -- 'Content-Length': str(os.fstat(fd).st_size), -- } -+ content_type = request.headers['content-type'] -+ if self.fs_object and not content_type: -+ content_type = FILE_TYPE -+ if not self.fs_object: -+ metadata = { -+ 'X-Timestamp': request.headers['x-timestamp'], -+ 'Content-Type': request.headers['content-type'], -+ 'ETag': etag, -+ 'Content-Length': str(os.fstat(fd).st_size), -+ } -+ else: -+ metadata = { -+ 'X-Timestamp': request.headers['x-timestamp'], -+ 'Content-Type': request.headers['content-type'], -+ 'ETag': etag, -+ 'Content-Length': str(os.fstat(fd).st_size), -+ X_TYPE: OBJECT, -+ X_OBJECT_TYPE: FILE, -+ } -+ -+ if self.fs_object and \ -+ request.headers['content-type'].lower() == DIR_TYPE: -+ metadata.update({X_OBJECT_TYPE: MARKER_DIR}) - metadata.update(val for val in request.headers.iteritems() - if val[0].lower().startswith('x-object-meta-') and - len(val[0]) > 14) -@@ -612,7 +652,7 @@ class ObjectController(object): - 'x-timestamp': file.metadata['X-Timestamp'], - 'x-etag': file.metadata['ETag'], - 'x-trans-id': request.headers.get('x-trans-id', '-')}, -- device) -+ (self.fs_object and account) or device) - resp = HTTPCreated(request=request, etag=etag) - return resp - -@@ -626,9 +666,9 @@ class ObjectController(object): - content_type='text/plain') - if self.mount_check and not check_mount(self.devices, device): - return Response(status='507 %s is not mounted' % device) -- file = DiskFile(self.devices, device, partition, account, container, -- obj, self.logger, keep_data_fp=True, -- disk_chunk_size=self.disk_chunk_size) -+ file = self.get_DiskFile_obj(self.devices, device, partition, account, container, -+ obj, self.logger, keep_data_fp=True, -+ disk_chunk_size=self.disk_chunk_size) - if file.is_deleted() or ('X-Delete-At' in file.metadata and - int(file.metadata['X-Delete-At']) <= time.time()): - if request.headers.get('if-match') == '*': -@@ -702,7 +742,7 @@ class ObjectController(object): - return resp - if self.mount_check and not check_mount(self.devices, device): - return Response(status='507 %s is not mounted' % device) -- file = DiskFile(self.devices, device, partition, account, container, -+ file = self.get_DiskFile_obj(self.devices, device, partition, account, container, - obj, self.logger, disk_chunk_size=self.disk_chunk_size) - if file.is_deleted() or ('X-Delete-At' in file.metadata and - int(file.metadata['X-Delete-At']) <= time.time()): -@@ -744,7 +784,7 @@ class ObjectController(object): - if self.mount_check and not check_mount(self.devices, device): - return Response(status='507 %s is not mounted' % device) - response_class = HTTPNoContent -- file = DiskFile(self.devices, device, partition, account, container, -+ file = self.get_DiskFile_obj(self.devices, device, partition, account, container, - obj, self.logger, disk_chunk_size=self.disk_chunk_size) - if 'x-if-delete-at' in request.headers and \ - int(request.headers['x-if-delete-at']) != \ -@@ -797,9 +837,18 @@ class ObjectController(object): - raise hashes - return Response(body=pickle.dumps(hashes)) - -+ def plugin(self, env): -+ if env.get('Gluster_enabled', False): -+ self.fs_object = env.get('fs_object') -+ self.devices = env.get('root') -+ self.mount_check = False -+ else: -+ self.fs_object = None -+ - def __call__(self, env, start_response): - """WSGI Application entry point for the Swift Object Server.""" - start_time = time.time() -+ self.plugin(env) - req = Request(env) - self.logger.txn_id = req.headers.get('x-trans-id', None) - if not check_utf8(req.path_info): -diff --git a/swift/proxy/server.py b/swift/proxy/server.py -index 17613b8..d277d28 100644 ---- a/swift/proxy/server.py -+++ b/swift/proxy/server.py -@@ -1,4 +1,5 @@ - # Copyright (c) 2010-2012 OpenStack, LLC. -+# Copyright (c) 2011 Red Hat, Inc. - # - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. -@@ -53,11 +54,20 @@ from webob import Request, Response - - from swift.common.ring import Ring - from swift.common.utils import cache_from_env, ContextPool, get_logger, \ -- get_remote_client, normalize_timestamp, split_path, TRUE_VALUES -+ get_remote_client, normalize_timestamp, split_path, TRUE_VALUES, \ -+ plugin_enabled - from swift.common.bufferedhttp import http_connect --from swift.common.constraints import check_metadata, check_object_creation, \ -- check_utf8, CONTAINER_LISTING_LIMIT, MAX_ACCOUNT_NAME_LENGTH, \ -- MAX_CONTAINER_NAME_LENGTH, MAX_FILE_SIZE -+ -+if plugin_enabled(): -+ from swift.plugins.constraints import check_object_creation, \ -+ MAX_ACCOUNT_NAME_LENGTH, MAX_CONTAINER_NAME_LENGTH, MAX_FILE_SIZE -+else: -+ from swift.common.constraints import check_object_creation, \ -+ MAX_ACCOUNT_NAME_LENGTH, MAX_CONTAINER_NAME_LENGTH, MAX_FILE_SIZE -+ -+from swift.common.constraints import check_metadata, check_utf8, \ -+ CONTAINER_LISTING_LIMIT -+ - from swift.common.exceptions import ChunkReadTimeout, \ - ChunkWriteTimeout, ConnectionTimeout - -diff --git a/test/__init__.py b/test/__init__.py -index ef2ce31..363a051 100644 ---- a/test/__init__.py -+++ b/test/__init__.py -@@ -6,8 +6,16 @@ import sys - import os - from ConfigParser import MissingSectionHeaderError - from StringIO import StringIO -- - from swift.common.utils import readconf -+from swift.common.utils import plugin_enabled -+if plugin_enabled(): -+ from swift.plugins.constraints import MAX_OBJECT_NAME_LENGTH, \ -+ MAX_CONTAINER_NAME_LENGTH, MAX_ACCOUNT_NAME_LENGTH, \ -+ MAX_FILE_SIZE -+else: -+ from swift.common.constraints import MAX_OBJECT_NAME_LENGTH, \ -+ MAX_CONTAINER_NAME_LENGTH, MAX_ACCOUNT_NAME_LENGTH, \ -+ MAX_FILE_SIZE - - setattr(__builtin__, '_', lambda x: x) - -diff --git a/test/functional/tests.py b/test/functional/tests.py -index b25b4fd..8d12f58 100644 ---- a/test/functional/tests.py -+++ b/test/functional/tests.py -@@ -31,6 +31,16 @@ import urllib - from test import get_config - from swift import Account, AuthenticationFailed, Connection, Container, \ - File, ResponseError -+from test import plugin_enabled -+if plugin_enabled(): -+ from test import MAX_OBJECT_NAME_LENGTH, \ -+ MAX_CONTAINER_NAME_LENGTH, MAX_ACCOUNT_NAME_LENGTH, \ -+ MAX_FILE_SIZE -+else: -+ from test import MAX_OBJECT_NAME_LENGTH, \ -+ MAX_CONTAINER_NAME_LENGTH, MAX_ACCOUNT_NAME_LENGTH, \ -+ MAX_FILE_SIZE -+ - - config = get_config() - -@@ -361,7 +371,7 @@ class TestContainer(Base): - set_up = False - - def testContainerNameLimit(self): -- limit = 256 -+ limit = MAX_CONTAINER_NAME_LENGTH - - for l in (limit-100, limit-10, limit-1, limit, - limit+1, limit+10, limit+100): -@@ -949,7 +959,7 @@ class TestFile(Base): - self.assert_status(404) - - def testNameLimit(self): -- limit = 1024 -+ limit = MAX_OBJECT_NAME_LENGTH - - for l in (1, 10, limit/2, limit-1, limit, limit+1, limit*2): - file = self.env.container.file('a'*l) -@@ -1093,7 +1103,7 @@ class TestFile(Base): - self.assert_(file.read(hdrs={'Range': r}) == data[0:1000]) - - def testFileSizeLimit(self): -- limit = 5*2**30 + 2 -+ limit = MAX_FILE_SIZE - tsecs = 3 - - for i in (limit-100, limit-10, limit-1, limit, limit+1, limit+10, -diff --git a/test/unit/obj/test_server.py b/test/unit/obj/test_server.py -index 075700e..5b6f32d 100644 ---- a/test/unit/obj/test_server.py -+++ b/test/unit/obj/test_server.py -@@ -1355,7 +1355,7 @@ class TestObjectController(unittest.TestCase): - - def test_max_object_name_length(self): - timestamp = normalize_timestamp(time()) -- req = Request.blank('/sda1/p/a/c/' + ('1' * 1024), -+ req = Request.blank('/sda1/p/a/c/' + ('1' * MAX_OBJECT_NAME_LENGTH), - environ={'REQUEST_METHOD': 'PUT'}, - headers={'X-Timestamp': timestamp, - 'Content-Length': '4', -diff --git a/test/unit/proxy/test_server.py b/test/unit/proxy/test_server.py -index 364370e..c17fe59 100644 ---- a/test/unit/proxy/test_server.py -+++ b/test/unit/proxy/test_server.py -@@ -21,7 +21,6 @@ import os - import sys - import unittest - from nose import SkipTest --from ConfigParser import ConfigParser - from contextlib import contextmanager - from cStringIO import StringIO - from gzip import GzipFile -@@ -44,8 +43,18 @@ from swift.account import server as account_server - from swift.container import server as container_server - from swift.obj import server as object_server - from swift.common import ring --from swift.common.constraints import MAX_META_NAME_LENGTH, \ -- MAX_META_VALUE_LENGTH, MAX_META_COUNT, MAX_META_OVERALL_SIZE, MAX_FILE_SIZE -+from swift.common.utils import plugin_enabled -+if plugin_enabled(): -+ from swift.plugins.constraints import MAX_META_NAME_LENGTH, \ -+ MAX_META_VALUE_LENGTH, MAX_META_COUNT, MAX_META_OVERALL_SIZE, \ -+ MAX_FILE_SIZE, MAX_ACCOUNT_NAME_LENGTH, MAX_CONTAINER_NAME_LENGTH, \ -+ MAX_OBJECT_NAME_LENGTH -+else: -+ from swift.plugins.constraints import MAX_META_NAME_LENGTH, \ -+ MAX_META_VALUE_LENGTH, MAX_META_COUNT, MAX_META_OVERALL_SIZE, \ -+ MAX_FILE_SIZE, MAX_ACCOUNT_NAME_LENGTH, MAX_CONTAINER_NAME_LENGTH, \ -+ MAX_OBJECT_NAME_LENGTH -+ - from swift.common.utils import mkdirs, normalize_timestamp, NullLogger - from swift.common.wsgi import monkey_patch_mimetools - -@@ -3207,7 +3216,8 @@ class TestContainerController(unittest.TestCase): - def test_PUT_max_container_name_length(self): - with save_globals(): - controller = proxy_server.ContainerController(self.app, 'account', -- '1' * 256) -+ '1' * -+ MAX_CONTAINER_NAME_LENGTH,) - self.assert_status_map(controller.PUT, - (200, 200, 200, 201, 201, 201), 201, - missing_container=True) -@@ -3813,7 +3823,8 @@ class TestAccountController(unittest.TestCase): - def test_PUT_max_account_name_length(self): - with save_globals(): - self.app.allow_account_management = True -- controller = proxy_server.AccountController(self.app, '1' * 256) -+ controller = proxy_server.AccountController(self.app, '1' * -+ MAX_ACCOUNT_NAME_LENGTH) - self.assert_status_map(controller.PUT, (201, 201, 201), 201) - controller = proxy_server.AccountController(self.app, '2' * 257) - self.assert_status_map(controller.PUT, (201, 201, 201), 400) diff --git a/glusterfs-3.3.0.xlator.mount.fuse.fuse-bridge.c.patch b/glusterfs-3.3.0.xlator.mount.fuse.fuse-bridge.c.patch deleted file mode 100644 index 13fbb58..0000000 --- a/glusterfs-3.3.0.xlator.mount.fuse.fuse-bridge.c.patch +++ /dev/null @@ -1,76 +0,0 @@ ---- xlators/mount/fuse/src/fuse-bridge.c.orig -+++ xlators/mount/fuse/src/fuse-bridge.c -@@ -4198,13 +4198,11 @@ fuse_thread_proc (void *data) - finh->uid == priv->uid_map_root) - finh->uid = 0; - --#ifdef GF_DARWIN_HOST_OS - if (finh->opcode >= FUSE_OP_HIGH) - /* turn down MacFUSE specific messages */ - fuse_enosys (this, finh, msg); - else --#endif -- fuse_ops[finh->opcode] (this, finh, msg); -+ fuse_ops[finh->opcode] (this, finh, msg); - - iobuf_unref (iobuf); - continue; -@@ -4423,40 +4421,47 @@ mem_acct_init (xlator_t *this) - - - static fuse_handler_t *fuse_std_ops[FUSE_OP_HIGH] = { -- [FUSE_INIT] = fuse_init, -- [FUSE_DESTROY] = fuse_destroy, - [FUSE_LOOKUP] = fuse_lookup, - [FUSE_FORGET] = fuse_forget, - [FUSE_GETATTR] = fuse_getattr, - [FUSE_SETATTR] = fuse_setattr, -- [FUSE_OPENDIR] = fuse_opendir, -- [FUSE_READDIR] = fuse_readdir, -- [FUSE_RELEASEDIR] = fuse_releasedir, -- [FUSE_ACCESS] = fuse_access, - [FUSE_READLINK] = fuse_readlink, -+ [FUSE_SYMLINK] = fuse_symlink, - [FUSE_MKNOD] = fuse_mknod, - [FUSE_MKDIR] = fuse_mkdir, - [FUSE_UNLINK] = fuse_unlink, - [FUSE_RMDIR] = fuse_rmdir, -- [FUSE_SYMLINK] = fuse_symlink, - [FUSE_RENAME] = fuse_rename, - [FUSE_LINK] = fuse_link, -- [FUSE_CREATE] = fuse_create, - [FUSE_OPEN] = fuse_open, - [FUSE_READ] = fuse_readv, - [FUSE_WRITE] = fuse_write, -- [FUSE_FLUSH] = fuse_flush, -+ [FUSE_STATFS] = fuse_statfs, - [FUSE_RELEASE] = fuse_release, - [FUSE_FSYNC] = fuse_fsync, -- [FUSE_FSYNCDIR] = fuse_fsyncdir, -- [FUSE_STATFS] = fuse_statfs, - [FUSE_SETXATTR] = fuse_setxattr, - [FUSE_GETXATTR] = fuse_getxattr, - [FUSE_LISTXATTR] = fuse_listxattr, - [FUSE_REMOVEXATTR] = fuse_removexattr, -+ [FUSE_FLUSH] = fuse_flush, -+ [FUSE_INIT] = fuse_init, -+ [FUSE_OPENDIR] = fuse_opendir, -+ [FUSE_READDIR] = fuse_readdir, -+ [FUSE_RELEASEDIR] = fuse_releasedir, -+ [FUSE_FSYNCDIR] = fuse_fsyncdir, - [FUSE_GETLK] = fuse_getlk, - [FUSE_SETLK] = fuse_setlk, - [FUSE_SETLKW] = fuse_setlk, -+ [FUSE_ACCESS] = fuse_access, -+ [FUSE_CREATE] = fuse_create, -+ /* [FUSE_INTERRUPT] */ -+ /* [FUSE_BMAP] */ -+ [FUSE_DESTROY] = fuse_destroy, -+ /* [FUSE_IOCTL] */ -+ /* [FUSE_POLL] */ -+ /* [FUSE_NOTIFY_REPLY] */ -+ /* [FUSE_BATCH_FORGET] */ -+ /* [FUSE_FALLOCATE] */ - }; - - diff --git a/glusterfs-3.3.1.rpc.rpcxprt.rdma.name.c.patch b/glusterfs-3.3.1.rpc.rpcxprt.rdma.name.c.patch deleted file mode 100644 index 67367ae..0000000 --- a/glusterfs-3.3.1.rpc.rpcxprt.rdma.name.c.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/rpc/rpc-transport/rdma/src/name.c 2012-10-11 13:38:22.000000000 -0400 -+++ b/rpc/rpc-transport/rdma/src/name.c 2013-04-12 13:50:07.000000000 -0400 -@@ -352,6 +352,8 @@ - if (listen_port_data) { - listen_port = data_to_uint16 (listen_port_data); - } else { -+ listen_port = GF_DEFAULT_RDMA_LISTEN_PORT; -+ - if (addr->sa_family == AF_INET6) { - struct sockaddr_in6 *in = (struct sockaddr_in6 *) addr; - in->sin6_addr = in6addr_any; diff --git a/glusterfs-3.3.1.swift.constraints.backport-1.7.4.patch b/glusterfs-3.3.1.swift.constraints.backport-1.7.4.patch deleted file mode 100644 index 78e3220..0000000 --- a/glusterfs-3.3.1.swift.constraints.backport-1.7.4.patch +++ /dev/null @@ -1,567 +0,0 @@ -From 9ce581c9c548c6a843e682f79f9ae510121501ac Mon Sep 17 00:00:00 2001 -From: Peter Portante -Date: Thu, 4 Oct 2012 11:32:56 -0400 -Subject: [PATCH] Backport commit a2ac5efaa64f57fbbe059066c6c4636dfd0715c2, - 'swift constraints are now settable via config', excluding - PEP8 changes that did not involve the constraints. - ---- - etc/swift.conf-sample | 73 ++++++++++++++++++++++++++++++++++ - swift/common/constraints.py | 29 +++++++++++++ - swift/container/sync.py | 8 +++- - test/functional/tests.py | 63 ++++++++++++++++++++++++----- - test/sample.conf | 15 +++++++ - test/unit/common/test_constraints.py | 9 +++- - test/unit/obj/test_server.py | 6 ++- - test/unit/proxy/test_server.py | 50 ++++++++++++++--------- - 8 files changed, 218 insertions(+), 35 deletions(-) - -diff --git a/etc/swift.conf-sample b/etc/swift.conf-sample -index 7e1c31d..2f4192a 100644 ---- a/etc/swift.conf-sample -+++ b/etc/swift.conf-sample -@@ -1,3 +1,76 @@ - [swift-hash] -+ -+# swift_hash_path_suffix is used as part of the hashing algorithm -+# when determining data placement in the cluster. This value should -+# remain secret and MUST NOT change once a cluster has been deployed. -+ - swift_hash_path_suffix = changeme - -+ -+ -+# The swift-constraints section sets the basic constraints on data -+# saved in the swift cluster. -+ -+[swift-constraints] -+ -+# max_file_size is the largest "normal" object that can be saved in -+# the cluster. This is also the limit on the size of each segment of -+# a "large" object when using the large object manifest support. -+# This value is set in bytes. Setting it to lower than 1MiB will cause -+# some tests to fail. It is STRONGLY recommended to leave this value at -+# the default (5 * 2**30 + 2). -+ -+#max_file_size = 5368709122 -+ -+ -+# max_meta_name_length is the max number of bytes in the utf8 encoding -+# of the name portion of a metadata header. -+ -+#max_meta_name_length = 128 -+ -+ -+# max_meta_value_length is the max number of bytes in the utf8 encoding -+# of a metadata value -+ -+#max_meta_value_length = 256 -+ -+ -+# max_meta_count is the max number of metadata keys that can be stored -+# on a single account, container, or object -+ -+#max_meta_count = 90 -+ -+ -+# max_meta_overall_size is the max number of bytes in the utf8 encoding -+# of the metadata (keys + values) -+ -+#max_meta_overall_size = 4096 -+ -+ -+# max_object_name_length is the max number of bytes in the utf8 encoding -+# of an object name -+ -+#max_object_name_length = 1024 -+ -+ -+# container_listing_limit is the default (and max) number of items -+# returned for a container listing request -+ -+#container_listing_limit = 10000 -+ -+ -+# account_listing_limit is the default (and max) number of items returned -+# for an account listing request -+#account_listing_limit = 10000 -+ -+ -+# max_account_name_length is the max number of bytes in the utf8 encoding -+# of an account name -+ -+#max_account_name_length = 256 -+ -+ -+# max_container_name_length is the max number of bytes in the utf8 encoding -+# of a container name -+ -+#max_container_name_length = 256 -diff --git a/swift/common/constraints.py b/swift/common/constraints.py -index a797b8b..0083346 100644 ---- a/swift/common/constraints.py -+++ b/swift/common/constraints.py -@@ -14,29 +14,58 @@ - # limitations under the License. - - import os -+from ConfigParser import ConfigParser, NoSectionError, NoOptionError, \ -+ RawConfigParser - - from webob.exc import HTTPBadRequest, HTTPLengthRequired, \ - HTTPRequestEntityTooLarge - -+constraints_conf = ConfigParser() -+constraints_conf.read('/etc/swift/swift.conf') -+ -+ -+def constraints_conf_int(name, default): -+ try: -+ return int(constraints_conf.get('swift-constraints', name)) -+ except (NoSectionError, NoOptionError): -+ return default -+ - - #: Max file size allowed for objects - MAX_FILE_SIZE = 5 * 1024 * 1024 * 1024 + 2 -+MAX_FILE_SIZE = constraints_conf_int('max_file_size', -+ 5368709122) # 5 * 1024 * 1024 * 1024 + 2 - #: Max length of the name of a key for metadata - MAX_META_NAME_LENGTH = 128 -+MAX_META_NAME_LENGTH = constraints_conf_int('max_meta_name_length', 128) - #: Max length of the value of a key for metadata - MAX_META_VALUE_LENGTH = 256 -+MAX_META_VALUE_LENGTH = constraints_conf_int('max_meta_value_length', 256) - #: Max number of metadata items - MAX_META_COUNT = 90 -+MAX_META_COUNT = constraints_conf_int('max_meta_count', 90) - #: Max overall size of metadata - MAX_META_OVERALL_SIZE = 4096 -+MAX_META_OVERALL_SIZE = constraints_conf_int('max_meta_overall_size', 4096) - #: Max object name length - MAX_OBJECT_NAME_LENGTH = 1024 -+MAX_OBJECT_NAME_LENGTH = constraints_conf_int('max_object_name_length', 1024) - #: Max object list length of a get request for a container - CONTAINER_LISTING_LIMIT = 10000 -+CONTAINER_LISTING_LIMIT = constraints_conf_int('container_listing_limit', -+ 10000) - #: Max container list length of a get request for an account - ACCOUNT_LISTING_LIMIT = 10000 - MAX_ACCOUNT_NAME_LENGTH = 256 - MAX_CONTAINER_NAME_LENGTH = 256 -+ACCOUNT_LISTING_LIMIT = constraints_conf_int('account_listing_limit', 10000) -+#: Max account name length -+MAX_ACCOUNT_NAME_LENGTH = constraints_conf_int('max_account_name_length', 256) -+#: Max container name length -+MAX_CONTAINER_NAME_LENGTH = constraints_conf_int('max_container_name_length', -+ 256) -+ -+ - #: Query string format= values to their corresponding content-type values - FORMAT2CONTENT_TYPE = {'plain': 'text/plain', 'json': 'application/json', - 'xml': 'application/xml'} -diff --git a/swift/container/sync.py b/swift/container/sync.py -index d7152ac..472d33a 100644 ---- a/swift/container/sync.py -+++ b/swift/container/sync.py -@@ -21,8 +21,12 @@ from eventlet import sleep, Timeout - - import swift.common.db - from swift.container import server as container_server --from swiftclient import ClientException, delete_object, put_object, \ -- quote -+try: -+ from swiftclient import ClientException, delete_object, put_object, \ -+ quote -+except: -+ import sys -+ raise Exception("\n".join(sys.path)) - from swift.common.direct_client import direct_get_object - from swift.common.ring import Ring - from swift.common.db import ContainerBroker -diff --git a/test/functional/tests.py b/test/functional/tests.py -index a412f83..bcdd76f 100644 ---- a/test/functional/tests.py -+++ b/test/functional/tests.py -@@ -15,6 +15,7 @@ - # limitations under the License. - - from datetime import datetime -+from ConfigParser import ConfigParser - import locale - import random - import StringIO -@@ -26,8 +27,50 @@ from nose import SkipTest - - from test import get_config - from test.functional.swift import Account, Connection, File, ResponseError -- -+from swift.common.constraints import MAX_FILE_SIZE, MAX_META_NAME_LENGTH, \ -+ MAX_META_VALUE_LENGTH, MAX_META_COUNT, MAX_META_OVERALL_SIZE, \ -+ MAX_OBJECT_NAME_LENGTH, CONTAINER_LISTING_LIMIT, ACCOUNT_LISTING_LIMIT, \ -+ MAX_ACCOUNT_NAME_LENGTH, MAX_CONTAINER_NAME_LENGTH -+ -+default_constraints = dict(( -+ ('max_file_size', MAX_FILE_SIZE), -+ ('max_meta_name_length', MAX_META_NAME_LENGTH), -+ ('max_meta_value_length', MAX_META_VALUE_LENGTH), -+ ('max_meta_count', MAX_META_COUNT), -+ ('max_meta_overall_size', MAX_META_OVERALL_SIZE), -+ ('max_object_name_length', MAX_OBJECT_NAME_LENGTH), -+ ('container_listing_limit', CONTAINER_LISTING_LIMIT), -+ ('account_listing_limit', ACCOUNT_LISTING_LIMIT), -+ ('max_account_name_length', MAX_ACCOUNT_NAME_LENGTH), -+ ('max_container_name_length', MAX_CONTAINER_NAME_LENGTH))) -+constraints_conf = ConfigParser() -+conf_exists = constraints_conf.read('/etc/swift/swift.conf') -+# Constraints are set first from the test config, then from -+# /etc/swift/swift.conf if it exists. If swift.conf doesn't exist, -+# then limit test coverage. This allows SAIO tests to work fine but -+# requires remote funtional testing to know something about the cluster -+# that is being tested. - config = get_config('func_test') -+for k in default_constraints: -+ if k in config: -+ # prefer what's in test.conf -+ config[k] = int(config[k]) -+ elif conf_exists: -+ # swift.conf exists, so use what's defined there (or swift defaults) -+ # This normally happens when the test is running locally to the cluster -+ # as in a SAIO. -+ config[k] = default_constraints[k] -+ else: -+ # .functests don't know what the constraints of the tested cluster are, -+ # so the tests can't reliably pass or fail. Therefore, skip those -+ # tests. -+ config[k] = '%s constraint is not defined' % k -+ -+def load_constraint(name): -+ c = config[name] -+ if not isinstance(c, int): -+ raise SkipTest(c) -+ return c - - locale.setlocale(locale.LC_COLLATE, config.get('collate', 'C')) - -@@ -225,8 +268,7 @@ class TestAccount(Base): - 'application/xml; charset=utf-8') - - def testListingLimit(self): -- limit = 10000 -- -+ limit = load_constraint('account_listing_limit') - for l in (1, 100, limit/2, limit-1, limit, limit+1, limit*2): - p = {'limit':l} - -@@ -353,7 +395,7 @@ class TestContainer(Base): - set_up = False - - def testContainerNameLimit(self): -- limit = 256 -+ limit = load_constraint('max_container_name_length') - - for l in (limit-100, limit-10, limit-1, limit, - limit+1, limit+10, limit+100): -@@ -398,6 +440,7 @@ class TestContainer(Base): - self.assert_(cont.files(parms={'prefix': f}) == [f]) - - def testPrefixAndLimit(self): -+ load_constraint('container_listing_limit') - cont = self.env.account.container(Utils.create_name()) - self.assert_(cont.create()) - -@@ -941,7 +984,7 @@ class TestFile(Base): - self.assert_status(404) - - def testNameLimit(self): -- limit = 1024 -+ limit = load_constraint('max_object_name_length') - - for l in (1, 10, limit/2, limit-1, limit, limit+1, limit*2): - file = self.env.container.file('a'*l) -@@ -989,13 +1032,12 @@ class TestFile(Base): - self.assert_status(400) - - def testMetadataNumberLimit(self): -- number_limit = 90 -+ number_limit = load_constraint('max_meta_count') -+ size_limit = load_constraint('max_meta_overall_size') - - for i in (number_limit-10, number_limit-1, number_limit, - number_limit+1, number_limit+10, number_limit+100): - -- size_limit = 4096 -- - j = size_limit/(i * 2) - - size = 0 -@@ -1096,7 +1138,7 @@ class TestFile(Base): - self.assert_(file.read(hdrs={'Range': r}) == data[0:1000]) - - def testFileSizeLimit(self): -- limit = 5*2**30 + 2 -+ limit = load_constraint('max_file_size') - tsecs = 3 - - for i in (limit-100, limit-10, limit-1, limit, limit+1, limit+10, -@@ -1150,7 +1192,8 @@ class TestFile(Base): - self.assert_status(200) - - def testMetadataLengthLimits(self): -- key_limit, value_limit = 128, 256 -+ key_limit = load_constraint('max_meta_name_length') -+ value_limit = load_constraint('max_meta_value_length') - lengths = [[key_limit, value_limit], [key_limit, value_limit+1], \ - [key_limit+1, value_limit], [key_limit, 0], \ - [key_limit, value_limit*10], [key_limit*10, value_limit]] -diff --git a/test/sample.conf b/test/sample.conf -index 7594c02..d3eced0 100644 ---- a/test/sample.conf -+++ b/test/sample.conf -@@ -19,6 +19,21 @@ password2 = testing2 - username3 = tester3 - password3 = testing3 - -+# Default constraints if not defined here, the test runner will try -+# to set them from /etc/swift/swift.conf. If that file isn't found, -+# the test runner will skip tests that depend on these values. -+# Note that the cluster must have "sane" values for the test suite to pass. -+#max_file_size = 5368709122 -+#max_meta_name_length = 128 -+#max_meta_value_length = 256 -+#max_meta_count = 90 -+#max_meta_overall_size = 4096 -+#max_object_name_length = 1024 -+#container_listing_limit = 10000 -+#account_listing_limit = 10000 -+#max_account_name_length = 256 -+#max_container_name_length = 256 -+ - collate = C - - [unit_test] -diff --git a/test/unit/common/test_constraints.py b/test/unit/common/test_constraints.py -index 37ed225..000a0b4 100644 ---- a/test/unit/common/test_constraints.py -+++ b/test/unit/common/test_constraints.py -@@ -84,8 +84,13 @@ class TestConstraints(unittest.TestCase): - x += 1 - self.assertEquals(constraints.check_metadata(Request.blank('/', - headers=headers), 'object'), None) -- headers['X-Object-Meta-9999%s' % -- ('a' * (constraints.MAX_META_NAME_LENGTH - 4))] = \ -+ # add two more headers in case adding just one falls exactly on the -+ # limit (eg one header adds 1024 and the limit is 2048) -+ headers['X-Object-Meta-%04d%s' % -+ (x, 'a' * (constraints.MAX_META_NAME_LENGTH - 4))] = \ -+ 'v' * constraints.MAX_META_VALUE_LENGTH -+ headers['X-Object-Meta-%04d%s' % -+ (x + 1, 'a' * (constraints.MAX_META_NAME_LENGTH - 4))] = \ - 'v' * constraints.MAX_META_VALUE_LENGTH - self.assert_(isinstance(constraints.check_metadata(Request.blank('/', - headers=headers), 'object'), HTTPBadRequest)) -diff --git a/test/unit/obj/test_server.py b/test/unit/obj/test_server.py -index 0d94dba..f78baa1 100644 ---- a/test/unit/obj/test_server.py -+++ b/test/unit/obj/test_server.py -@@ -35,6 +35,7 @@ from swift.common import utils - from swift.common.utils import hash_path, mkdirs, normalize_timestamp, \ - NullLogger, storage_directory - from swift.common.exceptions import DiskFileNotExist -+from swift.common import constraints - from eventlet import tpool - - -@@ -1389,7 +1390,8 @@ class TestObjectController(unittest.TestCase): - - def test_max_object_name_length(self): - timestamp = normalize_timestamp(time()) -- req = Request.blank('/sda1/p/a/c/' + ('1' * 1024), -+ max_name_len = constraints.MAX_OBJECT_NAME_LENGTH -+ req = Request.blank('/sda1/p/a/c/' + ('1' * max_name_len), - environ={'REQUEST_METHOD': 'PUT'}, - headers={'X-Timestamp': timestamp, - 'Content-Length': '4', -@@ -1397,7 +1399,7 @@ class TestObjectController(unittest.TestCase): - req.body = 'DATA' - resp = self.object_controller.PUT(req) - self.assertEquals(resp.status_int, 201) -- req = Request.blank('/sda1/p/a/c/' + ('2' * 1025), -+ req = Request.blank('/sda1/p/a/c/' + ('2' * (max_name_len + 1)), - environ={'REQUEST_METHOD': 'PUT'}, - headers={'X-Timestamp': timestamp, - 'Content-Length': '4', -diff --git a/test/unit/proxy/test_server.py b/test/unit/proxy/test_server.py -index 80ef9f7..0e3f30d 100644 ---- a/test/unit/proxy/test_server.py -+++ b/test/unit/proxy/test_server.py -@@ -46,7 +46,8 @@ from swift.obj import server as object_server - from swift.common import ring - from swift.common.exceptions import ChunkReadTimeout - from swift.common.constraints import MAX_META_NAME_LENGTH, \ -- MAX_META_VALUE_LENGTH, MAX_META_COUNT, MAX_META_OVERALL_SIZE, MAX_FILE_SIZE -+ MAX_META_VALUE_LENGTH, MAX_META_COUNT, MAX_META_OVERALL_SIZE, \ -+ MAX_FILE_SIZE, MAX_ACCOUNT_NAME_LENGTH, MAX_CONTAINER_NAME_LENGTH - from swift.common.utils import mkdirs, normalize_timestamp, NullLogger - from swift.common.wsgi import monkey_patch_mimetools - from swift.proxy.controllers.obj import SegmentedIterable -@@ -1060,47 +1061,50 @@ class TestObjectController(unittest.TestCase): - - def test_POST_meta_val_len(self): - with save_globals(): -+ limit = MAX_META_VALUE_LENGTH - self.app.object_post_as_copy = False - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') - set_http_connect(200, 200, 202, 202, 202) - # acct cont obj obj obj - req = Request.blank('/a/c/o', {}, headers={ -- 'Content-Type': 'foo/bar', -- 'X-Object-Meta-Foo': 'x' * 256}) -+ 'Content-Type': 'foo/bar', -+ 'X-Object-Meta-Foo': 'x' * limit}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 202) - set_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers={ -- 'Content-Type': 'foo/bar', -- 'X-Object-Meta-Foo': 'x' * 257}) -+ 'Content-Type': 'foo/bar', -+ 'X-Object-Meta-Foo': 'x' * (limit + 1)}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 400) - - def test_POST_as_copy_meta_val_len(self): - with save_globals(): -+ limit = MAX_META_VALUE_LENGTH - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') - set_http_connect(200, 200, 200, 200, 200, 202, 202, 202) - # acct cont objc objc objc obj obj obj - req = Request.blank('/a/c/o', {}, headers={ -- 'Content-Type': 'foo/bar', -- 'X-Object-Meta-Foo': 'x' * 256}) -+ 'Content-Type': 'foo/bar', -+ 'X-Object-Meta-Foo': 'x' * limit}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 202) - set_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers={ -- 'Content-Type': 'foo/bar', -- 'X-Object-Meta-Foo': 'x' * 257}) -+ 'Content-Type': 'foo/bar', -+ 'X-Object-Meta-Foo': 'x' * (limit + 1)}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 400) - - def test_POST_meta_key_len(self): - with save_globals(): -+ limit = MAX_META_NAME_LENGTH - self.app.object_post_as_copy = False - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') -@@ -1108,44 +1112,46 @@ class TestObjectController(unittest.TestCase): - # acct cont obj obj obj - req = Request.blank('/a/c/o', {}, headers={ - 'Content-Type': 'foo/bar', -- ('X-Object-Meta-' + 'x' * 128): 'x'}) -+ ('X-Object-Meta-' + 'x' * limit): 'x'}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 202) - set_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers={ - 'Content-Type': 'foo/bar', -- ('X-Object-Meta-' + 'x' * 129): 'x'}) -+ ('X-Object-Meta-' + 'x' * (limit + 1)): 'x'}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 400) - - def test_POST_as_copy_meta_key_len(self): - with save_globals(): -+ limit = MAX_META_NAME_LENGTH - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') - set_http_connect(200, 200, 200, 200, 200, 202, 202, 202) - # acct cont objc objc objc obj obj obj - req = Request.blank('/a/c/o', {}, headers={ - 'Content-Type': 'foo/bar', -- ('X-Object-Meta-' + 'x' * 128): 'x'}) -+ ('X-Object-Meta-' + 'x' * limit): 'x'}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 202) - set_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers={ - 'Content-Type': 'foo/bar', -- ('X-Object-Meta-' + 'x' * 129): 'x'}) -+ ('X-Object-Meta-' + 'x' * (limit + 1)): 'x'}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 400) - - def test_POST_meta_count(self): - with save_globals(): -+ limit = MAX_META_COUNT - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') - headers = dict( -- (('X-Object-Meta-' + str(i), 'a') for i in xrange(91))) -+ (('X-Object-Meta-' + str(i), 'a') for i in xrange(limit + 1))) - headers.update({'Content-Type': 'foo/bar'}) - set_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers=headers) -@@ -1155,10 +1161,13 @@ class TestObjectController(unittest.TestCase): - - def test_POST_meta_size(self): - with save_globals(): -+ limit = MAX_META_OVERALL_SIZE - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') -+ count = limit / 256 # enough to cause the limit to be reched - headers = dict( -- (('X-Object-Meta-' + str(i), 'a' * 256) for i in xrange(1000))) -+ (('X-Object-Meta-' + str(i), 'a' * 256) -+ for i in xrange(count + 1))) - headers.update({'Content-Type': 'foo/bar'}) - set_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers=headers) -@@ -3408,13 +3417,14 @@ class TestContainerController(unittest.TestCase): - - def test_PUT_max_container_name_length(self): - with save_globals(): -+ limit = MAX_CONTAINER_NAME_LENGTH - controller = proxy_server.ContainerController(self.app, 'account', -- '1' * 256) -+ '1' * limit) - self.assert_status_map(controller.PUT, - (200, 200, 200, 201, 201, 201), 201, - missing_container=True) - controller = proxy_server.ContainerController(self.app, 'account', -- '2' * 257) -+ '2' * (limit + 1)) - self.assert_status_map(controller.PUT, (201, 201, 201), 400, - missing_container=True) - -@@ -3961,9 +3971,11 @@ class TestAccountController(unittest.TestCase): - def test_PUT_max_account_name_length(self): - with save_globals(): - self.app.allow_account_management = True -- controller = proxy_server.AccountController(self.app, '1' * 256) -+ limit = MAX_ACCOUNT_NAME_LENGTH -+ controller = proxy_server.AccountController(self.app, '1' * limit) - self.assert_status_map(controller.PUT, (201, 201, 201), 201) -- controller = proxy_server.AccountController(self.app, '2' * 257) -+ controller = proxy_server.AccountController( -+ self.app, '2' * (limit + 1)) - self.assert_status_map(controller.PUT, (201, 201, 201), 400) - - def test_PUT_connect_exceptions(self): --- -1.7.7.6 - diff --git a/glusterfs-3.3.1.swift.constraints.backport.patch b/glusterfs-3.3.1.swift.constraints.backport.patch deleted file mode 100644 index bb61a67..0000000 --- a/glusterfs-3.3.1.swift.constraints.backport.patch +++ /dev/null @@ -1,518 +0,0 @@ -From fc2421b04022ac6bbe9d5014362ec5f99f94c5e0 Mon Sep 17 00:00:00 2001 -From: Peter Portante -Date: Tue, 25 Sep 2012 13:27:59 -0400 -Subject: [PATCH] Backport commit a2ac5efaa64f57fbbe059066c6c4636dfd0715c2, - 'swift constraints are now settable via config', excluding - PEP8 changes that did not involve the constraints. - ---- - etc/swift.conf-sample | 73 ++++++++++++++++++++++++++++++++++ - swift/common/constraints.py | 37 ++++++++++++----- - test/functional/tests.py | 62 ++++++++++++++++++++++++---- - test/unit/common/test_constraints.py | 9 +++- - test/unit/obj/test_server.py | 7 ++- - test/unit/proxy/test_server.py | 50 ++++++++++++++--------- - 6 files changed, 196 insertions(+), 42 deletions(-) - -diff --git a/etc/swift.conf-sample b/etc/swift.conf-sample -index 7e1c31d..2f4192a 100644 ---- a/etc/swift.conf-sample -+++ b/etc/swift.conf-sample -@@ -1,3 +1,76 @@ - [swift-hash] -+ -+# swift_hash_path_suffix is used as part of the hashing algorithm -+# when determining data placement in the cluster. This value should -+# remain secret and MUST NOT change once a cluster has been deployed. -+ - swift_hash_path_suffix = changeme - -+ -+ -+# The swift-constraints section sets the basic constraints on data -+# saved in the swift cluster. -+ -+[swift-constraints] -+ -+# max_file_size is the largest "normal" object that can be saved in -+# the cluster. This is also the limit on the size of each segment of -+# a "large" object when using the large object manifest support. -+# This value is set in bytes. Setting it to lower than 1MiB will cause -+# some tests to fail. It is STRONGLY recommended to leave this value at -+# the default (5 * 2**30 + 2). -+ -+#max_file_size = 5368709122 -+ -+ -+# max_meta_name_length is the max number of bytes in the utf8 encoding -+# of the name portion of a metadata header. -+ -+#max_meta_name_length = 128 -+ -+ -+# max_meta_value_length is the max number of bytes in the utf8 encoding -+# of a metadata value -+ -+#max_meta_value_length = 256 -+ -+ -+# max_meta_count is the max number of metadata keys that can be stored -+# on a single account, container, or object -+ -+#max_meta_count = 90 -+ -+ -+# max_meta_overall_size is the max number of bytes in the utf8 encoding -+# of the metadata (keys + values) -+ -+#max_meta_overall_size = 4096 -+ -+ -+# max_object_name_length is the max number of bytes in the utf8 encoding -+# of an object name -+ -+#max_object_name_length = 1024 -+ -+ -+# container_listing_limit is the default (and max) number of items -+# returned for a container listing request -+ -+#container_listing_limit = 10000 -+ -+ -+# account_listing_limit is the default (and max) number of items returned -+# for an account listing request -+#account_listing_limit = 10000 -+ -+ -+# max_account_name_length is the max number of bytes in the utf8 encoding -+# of an account name -+ -+#max_account_name_length = 256 -+ -+ -+# max_container_name_length is the max number of bytes in the utf8 encoding -+# of a container name -+ -+#max_container_name_length = 256 -diff --git a/swift/common/constraints.py b/swift/common/constraints.py -index 235dcca..0fe5078 100644 ---- a/swift/common/constraints.py -+++ b/swift/common/constraints.py -@@ -14,29 +14,46 @@ - # limitations under the License. - - import os -+from ConfigParser import ConfigParser, NoSectionError, NoOptionError, \ -+ RawConfigParser - - from webob.exc import HTTPBadRequest, HTTPLengthRequired, \ - HTTPRequestEntityTooLarge - -+constraints_conf = ConfigParser() -+constraints_conf.read('/etc/swift/swift.conf') -+ -+ -+def constraints_conf_int(name, default): -+ try: -+ return int(constraints_conf.get('swift-constraints', name)) -+ except (NoSectionError, NoOptionError): -+ return default -+ - - #: Max file size allowed for objects --MAX_FILE_SIZE = 5 * 1024 * 1024 * 1024 + 2 -+MAX_FILE_SIZE = constraints_conf_int('max_file_size', -+ 5368709122) # 5 * 1024 * 1024 * 1024 + 2 - #: Max length of the name of a key for metadata --MAX_META_NAME_LENGTH = 128 -+MAX_META_NAME_LENGTH = constraints_conf_int('max_meta_name_length', 128) - #: Max length of the value of a key for metadata --MAX_META_VALUE_LENGTH = 256 -+MAX_META_VALUE_LENGTH = constraints_conf_int('max_meta_value_length', 256) - #: Max number of metadata items --MAX_META_COUNT = 90 -+MAX_META_COUNT = constraints_conf_int('max_meta_count', 90) - #: Max overall size of metadata --MAX_META_OVERALL_SIZE = 4096 -+MAX_META_OVERALL_SIZE = constraints_conf_int('max_meta_overall_size', 4096) - #: Max object name length --MAX_OBJECT_NAME_LENGTH = 1024 -+MAX_OBJECT_NAME_LENGTH = constraints_conf_int('max_object_name_length', 1024) - #: Max object list length of a get request for a container --CONTAINER_LISTING_LIMIT = 10000 -+CONTAINER_LISTING_LIMIT = constraints_conf_int('container_listing_limit', -+ 10000) - #: Max container list length of a get request for an account --ACCOUNT_LISTING_LIMIT = 10000 --MAX_ACCOUNT_NAME_LENGTH = 256 --MAX_CONTAINER_NAME_LENGTH = 256 -+ACCOUNT_LISTING_LIMIT = constraints_conf_int('account_listing_limit', 10000) -+#: Max account name length -+MAX_ACCOUNT_NAME_LENGTH = constraints_conf_int('max_account_name_length', 256) -+#: Max container name length -+MAX_CONTAINER_NAME_LENGTH = constraints_conf_int('max_container_name_length', -+ 256) - - - def check_metadata(req, target_type): -diff --git a/test/functional/tests.py b/test/functional/tests.py -index b25b4fd..3b18fc4 100644 ---- a/test/functional/tests.py -+++ b/test/functional/tests.py -@@ -27,12 +27,55 @@ import threading - import uuid - import unittest - import urllib -+from ConfigParser import ConfigParser - - from test import get_config - from swift import Account, AuthenticationFailed, Connection, Container, \ - File, ResponseError -- -+from swift.common.constraints import MAX_FILE_SIZE, MAX_META_NAME_LENGTH, \ -+ MAX_META_VALUE_LENGTH, MAX_META_COUNT, MAX_META_OVERALL_SIZE, \ -+ MAX_OBJECT_NAME_LENGTH, CONTAINER_LISTING_LIMIT, ACCOUNT_LISTING_LIMIT, \ -+ MAX_ACCOUNT_NAME_LENGTH, MAX_CONTAINER_NAME_LENGTH -+ -+default_constraints = dict(( -+ ('max_file_size', MAX_FILE_SIZE), -+ ('max_meta_name_length', MAX_META_NAME_LENGTH), -+ ('max_meta_value_length', MAX_META_VALUE_LENGTH), -+ ('max_meta_count', MAX_META_COUNT), -+ ('max_meta_overall_size', MAX_META_OVERALL_SIZE), -+ ('max_object_name_length', MAX_OBJECT_NAME_LENGTH), -+ ('container_listing_limit', CONTAINER_LISTING_LIMIT), -+ ('account_listing_limit', ACCOUNT_LISTING_LIMIT), -+ ('max_account_name_length', MAX_ACCOUNT_NAME_LENGTH), -+ ('max_container_name_length', MAX_CONTAINER_NAME_LENGTH))) -+constraints_conf = ConfigParser() -+conf_exists = constraints_conf.read('/etc/swift/swift.conf') -+# Constraints are set first from the test config, then from -+# /etc/swift/swift.conf if it exists. If swift.conf doesn't exist, -+# then limit test coverage. This allows SAIO tests to work fine but -+# requires remote funtional testing to know something about the cluster -+# that is being tested. - config = get_config() -+for k in default_constraints: -+ if k in config: -+ # prefer what's in test.conf -+ config[k] = int(config[k]) -+ elif conf_exists: -+ # swift.conf exists, so use what's defined there (or swift defaults) -+ # This normally happens when the test is running locally to the cluster -+ # as in a SAIO. -+ config[k] = default_constraints[k] -+ else: -+ # .functests don't know what the constraints of the tested cluster are, -+ # so the tests can't reliably pass or fail. Therefore, skip those -+ # tests. -+ config[k] = '%s constraint is not defined' % k -+ -+def load_constraint(name): -+ c = config[name] -+ if not isinstance(c, int): -+ raise SkipTest(c) -+ return c - - locale.setlocale(locale.LC_COLLATE, config.get('collate', 'C')) - -@@ -233,7 +276,7 @@ class TestAccount(Base): - 'application/xml; charset=utf-8') - - def testListingLimit(self): -- limit = 10000 -+ limit = load_constraint('account_listing_limit') - - for l in (1, 100, limit/2, limit-1, limit, limit+1, limit*2): - p = {'limit':l} -@@ -361,7 +404,7 @@ class TestContainer(Base): - set_up = False - - def testContainerNameLimit(self): -- limit = 256 -+ limit = load_constraint('max_container_name_length') - - for l in (limit-100, limit-10, limit-1, limit, - limit+1, limit+10, limit+100): -@@ -406,6 +449,7 @@ class TestContainer(Base): - self.assert_(cont.files(parms={'prefix': f}) == [f]) - - def testPrefixAndLimit(self): -+ load_constraint('container_listing_limit') - cont = self.env.account.container(Utils.create_name()) - self.assert_(cont.create()) - -@@ -949,7 +993,7 @@ class TestFile(Base): - self.assert_status(404) - - def testNameLimit(self): -- limit = 1024 -+ limit = load_constraint('max_object_name_length') - - for l in (1, 10, limit/2, limit-1, limit, limit+1, limit*2): - file = self.env.container.file('a'*l) -@@ -997,13 +1041,12 @@ class TestFile(Base): - self.assert_status(400) - - def testMetadataNumberLimit(self): -- number_limit = 90 -+ number_limit = load_constraint('max_meta_count') -+ size_limit = load_constraint('max_meta_overall_size') - - for i in (number_limit-10, number_limit-1, number_limit, - number_limit+1, number_limit+10, number_limit+100): - -- size_limit = 4096 -- - j = size_limit/(i * 2) - - size = 0 -@@ -1093,7 +1136,7 @@ class TestFile(Base): - self.assert_(file.read(hdrs={'Range': r}) == data[0:1000]) - - def testFileSizeLimit(self): -- limit = 5*2**30 + 2 -+ limit = load_constraint('max_file_size') - tsecs = 3 - - for i in (limit-100, limit-10, limit-1, limit, limit+1, limit+10, -@@ -1147,7 +1190,8 @@ class TestFile(Base): - self.assert_status(200) - - def testMetadataLengthLimits(self): -- key_limit, value_limit = 128, 256 -+ key_limit = load_constraint('max_meta_name_length') -+ value_limit = load_constraint('max_meta_value_length') - lengths = [[key_limit, value_limit], [key_limit, value_limit+1], \ - [key_limit+1, value_limit], [key_limit, 0], \ - [key_limit, value_limit*10], [key_limit*10, value_limit]] -diff --git a/test/unit/common/test_constraints.py b/test/unit/common/test_constraints.py -index 478b2a8..4b0c997 100644 ---- a/test/unit/common/test_constraints.py -+++ b/test/unit/common/test_constraints.py -@@ -84,8 +84,13 @@ class TestConstraints(unittest.TestCase): - x += 1 - self.assertEquals(constraints.check_metadata(Request.blank('/', - headers=headers), 'object'), None) -- headers['X-Object-Meta-9999%s' % -- ('a' * (constraints.MAX_META_NAME_LENGTH - 4))] = \ -+ # add two more headers in case adding just one falls exactly on the -+ # limit (eg one header adds 1024 and the limit is 2048) -+ headers['X-Object-Meta-%04d%s' % -+ (x, 'a' * (constraints.MAX_META_NAME_LENGTH - 4))] = \ -+ 'v' * constraints.MAX_META_VALUE_LENGTH -+ headers['X-Object-Meta-%04d%s' % -+ (x + 1, 'a' * (constraints.MAX_META_NAME_LENGTH - 4))] = \ - 'v' * constraints.MAX_META_VALUE_LENGTH - self.assert_(isinstance(constraints.check_metadata(Request.blank('/', - headers=headers), 'object'), HTTPBadRequest)) -diff --git a/test/unit/obj/test_server.py b/test/unit/obj/test_server.py -index 075700e..5160830 100644 ---- a/test/unit/obj/test_server.py -+++ b/test/unit/obj/test_server.py -@@ -38,6 +38,7 @@ from swift.common import utils - from swift.common.utils import hash_path, mkdirs, normalize_timestamp, \ - NullLogger, storage_directory - from swift.common.exceptions import DiskFileNotExist -+from swift.common import constraints - from swift.obj import replicator - from eventlet import tpool - -@@ -1355,7 +1356,9 @@ class TestObjectController(unittest.TestCase): - - def test_max_object_name_length(self): - timestamp = normalize_timestamp(time()) -- req = Request.blank('/sda1/p/a/c/' + ('1' * 1024), -+ max_name_len = constraints.MAX_OBJECT_NAME_LENGTH -+ req = Request.blank('/sda1/p/a/c/' + ('1' * max_name_len), -+ - environ={'REQUEST_METHOD': 'PUT'}, - headers={'X-Timestamp': timestamp, - 'Content-Length': '4', -@@ -1363,7 +1366,7 @@ class TestObjectController(unittest.TestCase): - req.body = 'DATA' - resp = self.object_controller.PUT(req) - self.assertEquals(resp.status_int, 201) -- req = Request.blank('/sda1/p/a/c/' + ('2' * 1025), -+ req = Request.blank('/sda1/p/a/c/' + ('2' * (max_name_len + 1)), - environ={'REQUEST_METHOD': 'PUT'}, - headers={'X-Timestamp': timestamp, - 'Content-Length': '4', -diff --git a/test/unit/proxy/test_server.py b/test/unit/proxy/test_server.py -index 364370e..d28f604 100644 ---- a/test/unit/proxy/test_server.py -+++ b/test/unit/proxy/test_server.py -@@ -45,7 +45,8 @@ from swift.container import server as container_server - from swift.obj import server as object_server - from swift.common import ring - from swift.common.constraints import MAX_META_NAME_LENGTH, \ -- MAX_META_VALUE_LENGTH, MAX_META_COUNT, MAX_META_OVERALL_SIZE, MAX_FILE_SIZE -+ MAX_META_VALUE_LENGTH, MAX_META_COUNT, MAX_META_OVERALL_SIZE, \ -+ MAX_FILE_SIZE, MAX_ACCOUNT_NAME_LENGTH, MAX_CONTAINER_NAME_LENGTH - from swift.common.utils import mkdirs, normalize_timestamp, NullLogger - from swift.common.wsgi import monkey_patch_mimetools - -@@ -1168,6 +1169,7 @@ class TestObjectController(unittest.TestCase): - - def test_POST_meta_val_len(self): - with save_globals(): -+ limit = MAX_META_VALUE_LENGTH - self.app.object_post_as_copy = False - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') -@@ -1175,42 +1177,44 @@ class TestObjectController(unittest.TestCase): - fake_http_connect(200, 200, 202, 202, 202) - # acct cont obj obj obj - req = Request.blank('/a/c/o', {}, headers={ -- 'Content-Type': 'foo/bar', -- 'X-Object-Meta-Foo': 'x' * 256}) -+ 'Content-Type': 'foo/bar', -+ 'X-Object-Meta-Foo': 'x' * limit}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 202) - proxy_server.http_connect = fake_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers={ -- 'Content-Type': 'foo/bar', -- 'X-Object-Meta-Foo': 'x' * 257}) -+ 'Content-Type': 'foo/bar', -+ 'X-Object-Meta-Foo': 'x' * (limit + 1)}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 400) - - def test_POST_as_copy_meta_val_len(self): - with save_globals(): -+ limit = MAX_META_VALUE_LENGTH - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') - proxy_server.http_connect = \ - fake_http_connect(200, 200, 200, 200, 200, 202, 202, 202) - # acct cont objc objc objc obj obj obj - req = Request.blank('/a/c/o', {}, headers={ -- 'Content-Type': 'foo/bar', -- 'X-Object-Meta-Foo': 'x' * 256}) -+ 'Content-Type': 'foo/bar', -+ 'X-Object-Meta-Foo': 'x' * limit}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 202) - proxy_server.http_connect = fake_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers={ -- 'Content-Type': 'foo/bar', -- 'X-Object-Meta-Foo': 'x' * 257}) -+ 'Content-Type': 'foo/bar', -+ 'X-Object-Meta-Foo': 'x' * (limit + 1)}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 400) - - def test_POST_meta_key_len(self): - with save_globals(): -+ limit = MAX_META_NAME_LENGTH - self.app.object_post_as_copy = False - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') -@@ -1219,20 +1223,21 @@ class TestObjectController(unittest.TestCase): - # acct cont obj obj obj - req = Request.blank('/a/c/o', {}, headers={ - 'Content-Type': 'foo/bar', -- ('X-Object-Meta-' + 'x' * 128): 'x'}) -+ ('X-Object-Meta-' + 'x' * limit): 'x'}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 202) - proxy_server.http_connect = fake_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers={ - 'Content-Type': 'foo/bar', -- ('X-Object-Meta-' + 'x' * 129): 'x'}) -+ ('X-Object-Meta-' + 'x' * (limit + 1)): 'x'}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 400) - - def test_POST_as_copy_meta_key_len(self): - with save_globals(): -+ limit = MAX_META_NAME_LENGTH - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') - proxy_server.http_connect = \ -@@ -1240,24 +1245,25 @@ class TestObjectController(unittest.TestCase): - # acct cont objc objc objc obj obj obj - req = Request.blank('/a/c/o', {}, headers={ - 'Content-Type': 'foo/bar', -- ('X-Object-Meta-' + 'x' * 128): 'x'}) -+ ('X-Object-Meta-' + 'x' * limit): 'x'}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 202) - proxy_server.http_connect = fake_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers={ - 'Content-Type': 'foo/bar', -- ('X-Object-Meta-' + 'x' * 129): 'x'}) -+ ('X-Object-Meta-' + 'x' * (limit + 1)): 'x'}) - self.app.update_request(req) - res = controller.POST(req) - self.assertEquals(res.status_int, 400) - - def test_POST_meta_count(self): - with save_globals(): -+ limit = MAX_META_COUNT - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') - headers = dict( -- (('X-Object-Meta-' + str(i), 'a') for i in xrange(91))) -+ (('X-Object-Meta-' + str(i), 'a') for i in xrange(limit + 1))) - headers.update({'Content-Type': 'foo/bar'}) - proxy_server.http_connect = fake_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers=headers) -@@ -1267,10 +1273,13 @@ class TestObjectController(unittest.TestCase): - - def test_POST_meta_size(self): - with save_globals(): -+ limit = MAX_META_OVERALL_SIZE - controller = proxy_server.ObjectController(self.app, 'account', - 'container', 'object') -+ count = limit / 256 # enough to cause the limit to be reched - headers = dict( -- (('X-Object-Meta-' + str(i), 'a' * 256) for i in xrange(1000))) -+ (('X-Object-Meta-' + str(i), 'a' * 256) -+ for i in xrange(count + 1))) - headers.update({'Content-Type': 'foo/bar'}) - proxy_server.http_connect = fake_http_connect(202, 202, 202) - req = Request.blank('/a/c/o', {}, headers=headers) -@@ -3206,13 +3215,14 @@ class TestContainerController(unittest.TestCase): - - def test_PUT_max_container_name_length(self): - with save_globals(): -+ limit = MAX_CONTAINER_NAME_LENGTH - controller = proxy_server.ContainerController(self.app, 'account', -- '1' * 256) -+ '1' * limit) - self.assert_status_map(controller.PUT, - (200, 200, 200, 201, 201, 201), 201, - missing_container=True) - controller = proxy_server.ContainerController(self.app, 'account', -- '2' * 257) -+ '2' * (limit + 1)) - self.assert_status_map(controller.PUT, (201, 201, 201), 400, - missing_container=True) - -@@ -3813,9 +3823,11 @@ class TestAccountController(unittest.TestCase): - def test_PUT_max_account_name_length(self): - with save_globals(): - self.app.allow_account_management = True -- controller = proxy_server.AccountController(self.app, '1' * 256) -+ limit = MAX_ACCOUNT_NAME_LENGTH -+ controller = proxy_server.AccountController(self.app, '1' * limit) - self.assert_status_map(controller.PUT, (201, 201, 201), 201) -- controller = proxy_server.AccountController(self.app, '2' * 257) -+ controller = proxy_server.AccountController( -+ self.app, '2' * (limit + 1)) - self.assert_status_map(controller.PUT, (201, 201, 201), 400) - - def test_PUT_connect_exceptions(self): --- -1.7.7.6 - diff --git a/glusterfs-3.3.1.ufo.gluster.multi-volume.backport-1.1.patch b/glusterfs-3.3.1.ufo.gluster.multi-volume.backport-1.1.patch deleted file mode 100644 index 6d7830b..0000000 --- a/glusterfs-3.3.1.ufo.gluster.multi-volume.backport-1.1.patch +++ /dev/null @@ -1,406 +0,0 @@ -diff -ru a/ufo/bin/gluster-swift-gen-builders b/ufo/bin/gluster-swift-gen-builders ---- a/ufo/bin/gluster-swift-gen-builders 2012-12-07 12:24:00.000000000 -0500 -+++ b/ufo/bin/gluster-swift-gen-builders 2013-04-29 15:16:22.748000000 -0400 -@@ -1,9 +1,25 @@ - #!/bin/bash - -+# Note that these port numbers must match the configured values for the -+# various servers in their configuration files. -+declare -A port=(["account.builder"]=6012 ["container.builder"]=6011 \ -+ ["object.builder"]=6010) -+ -+builder_files="account.builder container.builder object.builder" -+ - function create { -- swift-ring-builder $1 create 0 1 1 -- swift-ring-builder $1 add z1-127.0.0.1:$2/$3_ 100.0 -+ swift-ring-builder $1 create 1 1 1 >> /tmp/out -+} -+ -+function add { -+ swift-ring-builder $1 add z$2-127.0.0.1:$3/$4_ 100.0 -+} -+ -+function rebalance { - swift-ring-builder $1 rebalance -+} -+ -+function build { - swift-ring-builder $1 - } - -@@ -12,8 +28,17 @@ - exit 1 - fi - --# Note that these port numbers must match the configured values for the --# various servers in their configuration files. --create account.builder 6012 $1 --create container.builder 6011 $1 --create object.builder 6010 $1 -+for builder_file in $builder_files -+do -+ create $builder_file -+ -+ zone=1 -+ for volname in $@ -+ do -+ add $builder_file $zone ${port[$builder_file]} $volname -+ zone=$(expr $zone + 1) -+ done -+ -+ rebalance $builder_file -+ build $builder_file -+done -diff -ru a/ufo/etc/fs.conf-gluster b/ufo/etc/fs.conf-gluster ---- a/ufo/etc/fs.conf-gluster 2012-12-07 12:24:00.000000000 -0500 -+++ b/ufo/etc/fs.conf-gluster 2013-04-29 15:16:22.752000000 -0400 -@@ -3,10 +3,6 @@ - # local host. - mount_ip = localhost - --# The GlusterFS server need not be local, a remote server can also be used --# by setting "remote_cluster = yes". --remote_cluster = no -- - # By default it is assumed the Gluster volumes can be accessed using other - # methods besides UFO (not object only), which disables a caching - # optimizations in order to keep in sync with file system changes. -diff -ru a/ufo/gluster/swift/common/constraints.py b/ufo/gluster/swift/common/constraints.py ---- a/ufo/gluster/swift/common/constraints.py 2012-12-07 12:24:00.000000000 -0500 -+++ b/ufo/gluster/swift/common/constraints.py 2013-04-29 15:16:22.749000000 -0400 -@@ -16,7 +16,8 @@ - from webob.exc import HTTPBadRequest - - import swift.common.constraints --from gluster.swift.common import Glusterfs -+import swift.common.ring as _ring -+from gluster.swift.common import Glusterfs, ring - - - MAX_OBJECT_NAME_COMPONENT_LENGTH = swift.common.constraints.constraints_conf_int( -@@ -80,3 +81,9 @@ - - # Replace the original check mount with ours - swift.common.constraints.check_mount = gluster_check_mount -+ -+# Save the original Ring class -+__Ring = _ring.Ring -+ -+# Replace the original Ring class -+_ring.Ring = ring.Ring -diff -ru a/ufo/gluster/swift/common/Glusterfs.py b/ufo/gluster/swift/common/Glusterfs.py ---- a/ufo/gluster/swift/common/Glusterfs.py 2012-12-07 12:24:00.000000000 -0500 -+++ b/ufo/gluster/swift/common/Glusterfs.py 2013-04-29 15:16:22.753000000 -0400 -@@ -12,33 +12,35 @@ - # implied. - # See the License for the specific language governing permissions and - # limitations under the License. -+ - import logging - import os, fcntl, time --from ConfigParser import ConfigParser --from swift.common.utils import TRUE_VALUES -+from ConfigParser import ConfigParser, NoSectionError, NoOptionError -+from swift.common.utils import TRUE_VALUES, search_tree - from gluster.swift.common.fs_utils import mkdirs - -- - # - # Read the fs.conf file once at startup (module load) - # - _fs_conf = ConfigParser() - MOUNT_IP = 'localhost' --REMOTE_CLUSTER = False - OBJECT_ONLY = False -+RUN_DIR='/var/run/swift' -+SWIFT_DIR = '/etc/swift' - if _fs_conf.read(os.path.join('/etc/swift', 'fs.conf')): - try: - MOUNT_IP = _fs_conf.get('DEFAULT', 'mount_ip', 'localhost') - except (NoSectionError, NoOptionError): - pass - try: -- REMOTE_CLUSTER = _fs_conf.get('DEFAULT', 'remote_cluster', False) in TRUE_VALUES -+ OBJECT_ONLY = _fs_conf.get('DEFAULT', 'object_only', "no") in TRUE_VALUES - except (NoSectionError, NoOptionError): - pass - try: -- OBJECT_ONLY = _fs_conf.get('DEFAULT', 'object_only', "no") in TRUE_VALUES -+ RUN_DIR = _fs_conf.get('DEFAULT', 'run_dir', '/var/run/swift') - except (NoSectionError, NoOptionError): - pass -+ - NAME = 'glusterfs' - - -@@ -60,7 +62,7 @@ - if drive == export: - break - else: -- logging.error('No export found in %r matching drive %s', el, drive) -+ logging.error('No export found in %r matching drive, %s', el, drive) - return False - - # NOTE: root is typically the default value of /mnt/gluster-object -@@ -68,13 +70,12 @@ - if not os.path.isdir(full_mount_path): - mkdirs(full_mount_path) - -- pid_dir = "/var/lib/glusterd/vols/%s/run/" % drive -- pid_file = os.path.join(pid_dir, 'swift.pid'); -+ lck_file = os.path.join(RUN_DIR, '%s.lock' %drive); - -- if not os.path.exists(pid_dir): -- mkdirs(pid_dir) -+ if not os.path.exists(RUN_DIR): -+ mkdirs(RUN_DIR) - -- fd = os.open(pid_file, os.O_CREAT|os.O_RDWR) -+ fd = os.open(lck_file, os.O_CREAT|os.O_RDWR) - with os.fdopen(fd, 'r+b') as f: - try: - fcntl.lockf(f, fcntl.LOCK_EX|fcntl.LOCK_NB) -@@ -100,19 +101,12 @@ - logging.error('Unable to unmount %s %s' % (full_mount_path, NAME)) - - def _get_export_list(): -- if REMOTE_CLUSTER: -- cmnd = 'gluster --remote-host=%s volume info' % MOUNT_IP -- else: -- cmnd = 'gluster volume info' -+ cmnd = 'gluster --remote-host=%s volume info' % MOUNT_IP - - export_list = [] - - if os.system(cmnd + ' >> /dev/null'): -- if REMOTE_CLUSTER: -- logging.error('Getting volume info failed for %s, make sure '\ -- 'gluster --remote-host=%s works', NAME, MOUNT_IP) -- else: -- logging.error('Getting volume info failed for %s', NAME) -+ logging.error('Getting volume info failed for %s', NAME) - else: - fp = os.popen(cmnd) - while True: -@@ -124,3 +118,20 @@ - export_list.append(item.split(':')[1].strip(' ')) - - return export_list -+ -+def get_mnt_point(vol_name, conf_dir=SWIFT_DIR, conf_file="object-server*"): -+ """Read the object-server's configuration file and return -+ the device value""" -+ -+ mnt_dir = '' -+ conf_files = search_tree(conf_dir, conf_file, '.conf') -+ if not conf_files: -+ raise Exception("Config file not found") -+ -+ _conf = ConfigParser() -+ if _conf.read(conf_files[0]): -+ try: -+ mnt_dir = _conf.get('DEFAULT', 'devices', '') -+ except (NoSectionError, NoOptionError): -+ raise -+ return os.path.join(mnt_dir, vol_name) -diff -ru a/ufo/gluster/swift/common/ring.py b/ufo/gluster/swift/common/ring.py ---- a/ufo/gluster/swift/common/ring.py 2013-04-30 08:21:55.948000000 -0400 -+++ b/ufo/gluster/swift/common/ring.py 2013-04-29 15:16:22.755000000 -0400 -@@ -0,0 +1,111 @@ -+# Copyright (c) 2013 Red Hat, Inc. -+# -+# Licensed under the Apache License, Version 2.0 (the "License"); -+# you may not use this file except in compliance with the License. -+# You may obtain a copy of the License at -+# -+# http://www.apache.org/licenses/LICENSE-2.0 -+# -+# Unless required by applicable law or agreed to in writing, software -+# distributed under the License is distributed on an "AS IS" BASIS, -+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -+# implied. -+# See the License for the specific language governing permissions and -+# limitations under the License. -+ -+from ConfigParser import ConfigParser -+from swift.common.ring import ring -+from swift.common.utils import search_tree -+from gluster.swift.common.Glusterfs import SWIFT_DIR -+ -+reseller_prefix = "AUTH_" -+conf_files = search_tree(SWIFT_DIR, "proxy-server*", 'conf') -+if conf_files: -+ conf_file = conf_files[0] -+ -+_conf = ConfigParser() -+if conf_files and _conf.read(conf_file): -+ if _conf.defaults().get("reseller_prefix", None): -+ reseller_prefix = _conf.defaults().get("reseller_prefix") -+ else: -+ for key, value in _conf._sections.items(): -+ if value.get("reseller_prefix", None): -+ reseller_prefix = value["reseller_prefix"] -+ break -+ -+if not reseller_prefix.endswith('_'): -+ reseller_prefix = reseller_prefix + '_' -+ -+class Ring(ring.Ring): -+ def _get_part_nodes(self, part): -+ seen_ids = set() -+ nodes = [dev for dev in self._devs \ -+ if dev['device'] == self.acc_name \ -+ and not (dev['id'] in seen_ids \ -+ or seen_ids.add(dev['id']))] -+ if not nodes: -+ nodes = [self.false_node] -+ return nodes -+ -+ def get_part_nodes(self, part): -+ """ -+ Get the nodes that are responsible for the partition. If one -+ node is responsible for more than one replica of the same -+ partition, it will only appear in the output once. -+ -+ :param part: partition to get nodes for -+ :returns: list of node dicts -+ -+ See :func:`get_nodes` for a description of the node dicts. -+ """ -+ return self._get_part_nodes(part) -+ -+ def get_nodes(self, account, container=None, obj=None): -+ """ -+ Get the partition and nodes for an account/container/object. -+ If a node is responsible for more than one replica, it will -+ only appear in the output once. -+ :param account: account name -+ :param container: container name -+ :param obj: object name -+ :returns: a tuple of (partition, list of node dicts) -+ -+ Each node dict will have at least the following keys: -+ ====== =============================================================== -+ id unique integer identifier amongst devices -+ weight a float of the relative weight of this device as compared to -+ others; this indicates how many partitions the builder will try -+ to assign to this device -+ zone integer indicating which zone the device is in; a given -+ partition will not be assigned to multiple devices within the -+ same zone -+ ip the ip address of the device -+ port the tcp port of the device -+ device the device's name on disk (sdb1, for example) -+ meta general use 'extra' field; for example: the online date, the -+ hardware description -+ ====== =============================================================== -+ """ -+ self.false_node = {'zone': 1, 'weight': 100.0, 'ip': '127.0.0.1', 'id': 0, \ -+ 'meta': '', 'device': 'volume_not_in_ring', \ -+ 'port': 6012} -+ if account.startswith(reseller_prefix): -+ self.acc_name = account.replace(reseller_prefix, '', 1) -+ else: -+ self.acc_name = account -+ -+ part = 0 -+ return part, self._get_part_nodes(part) -+ -+ -+ def get_more_nodes(self, part): -+ """ -+ Generator to get extra nodes for a partition for hinted handoff. -+ -+ :param part: partition to get handoff nodes for -+ :returns: generator of node dicts -+ -+ See :func:`get_nodes` for a description of the node dicts. -+ Should never be called in the swift UFO environment, so yield nothing -+ """ -+ yield self.false_node -diff -ru a/ufo/test/unit/common/test_ring.py b/ufo/test/unit/common/test_ring.py ---- a/ufo/test/unit/common/test_ring.py 2013-04-30 08:22:08.975000000 -0400 -+++ b/ufo/test/unit/common/test_ring.py 2013-04-29 15:16:22.756000000 -0400 -@@ -0,0 +1,81 @@ -+# Copyright (c) 2013 Red Hat, Inc. -+# -+# Licensed under the Apache License, Version 2.0 (the "License"); -+# you may not use this file except in compliance with the License. -+# You may obtain a copy of the License at -+# -+# http://www.apache.org/licenses/LICENSE-2.0 -+# -+# Unless required by applicable law or agreed to in writing, software -+# distributed under the License is distributed on an "AS IS" BASIS, -+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -+# implied. -+# See the License for the specific language governing permissions and -+# limitations under the License. -+ -+import unittest -+import gluster.swift.common.constraints -+from gluster.swift.common.ring import * -+from gluster.swift.common.Glusterfs import SWIFT_DIR -+ -+def _mock_ring_data(): -+ return [{'zone': 1, 'weight': 100.0, 'ip': '127.0.0.1', 'port': 6012, \ -+ 'meta': '', 'device': 'test', 'id': 0}, -+ {'zone': 2, 'weight': 100.0, 'ip': '127.0.0.1', 'id': 1, \ -+ 'meta': '', 'device': 'iops', 'port': 6012}] -+ -+class TestRing(unittest.TestCase): -+ """ Tests for common.utils """ -+ -+ def setUp(self): -+ self.ring = Ring(SWIFT_DIR, ring_name='object') -+ -+ def test_first_device(self): -+ try: -+ __devs = self.ring._devs -+ self.ring._devs = _mock_ring_data() -+ -+ part, node = self.ring.get_nodes('test') -+ assert node[0]['device'] == 'test' -+ node = self.ring.get_part_nodes(0) -+ assert node[0]['device'] == 'test' -+ for node in self.ring.get_more_nodes(0): -+ assert node['device'] == 'volume_not_in_ring' -+ finally: -+ self.ring._devs = __devs -+ -+ def test_invalid_device(self): -+ try: -+ __devs = self.ring._devs -+ self.ring._devs = _mock_ring_data() -+ -+ part, node = self.ring.get_nodes('test2') -+ assert node[0]['device'] == 'volume_not_in_ring' -+ node = self.ring.get_part_nodes(0) -+ assert node[0]['device'] == 'volume_not_in_ring' -+ finally: -+ self.ring._devs = __devs -+ -+ def test_second_device(self): -+ try: -+ __devs = self.ring._devs -+ self.ring._devs = _mock_ring_data() -+ -+ part, node = self.ring.get_nodes('iops') -+ assert node[0]['device'] == 'iops' -+ node = self.ring.get_part_nodes(0) -+ assert node[0]['device'] == 'iops' -+ for node in self.ring.get_more_nodes(0): -+ assert node['device'] == 'volume_not_in_ring' -+ finally: -+ self.ring._devs = __devs -+ -+ def test_second_device_with_reseller_prefix(self): -+ try: -+ __devs = self.ring._devs -+ self.ring._devs = _mock_ring_data() -+ -+ part, node = self.ring.get_nodes('AUTH_iops') -+ assert node[0]['device'] == 'iops' -+ finally: -+ self.ring._devs = __devs diff --git a/glusterfs-3.3.1.ufo.gluster.swift.common.DiskFile-1.7.4.patch b/glusterfs-3.3.1.ufo.gluster.swift.common.DiskFile-1.7.4.patch deleted file mode 100644 index 24af87f..0000000 --- a/glusterfs-3.3.1.ufo.gluster.swift.common.DiskFile-1.7.4.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- ufo/gluster/swift/common/DiskFile.py.orig 2012-12-21 11:40:12.763297073 -0500 -+++ ufo/gluster/swift/common/DiskFile.py 2013-01-09 16:44:02.607838685 -0500 -@@ -55,7 +55,8 @@ - - def __init__(self, path, device, partition, account, container, obj, - logger, keep_data_fp=False, disk_chunk_size=65536, -- uid=DEFAULT_UID, gid=DEFAULT_GID): -+ uid=DEFAULT_UID, gid=DEFAULT_GID, iter_hook=None): -+ self.iter_hook = iter_hook - self.disk_chunk_size = disk_chunk_size - #Don't support obj_name ending/begining with '/', like /a, a/, /a/b/ etc - obj = obj.strip('/') diff --git a/glusterfs-3.3.2.libglusterfs.Makefile.patch b/glusterfs-3.3.2.libglusterfs.Makefile.patch deleted file mode 100644 index f539b91..0000000 --- a/glusterfs-3.3.2.libglusterfs.Makefile.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- libglusterfs/src/Makefile.am.orig 2013-07-12 13:50:20.000000000 -0400 -+++ libglusterfs/src/Makefile.am 2013-07-12 20:10:12.156000000 -0400 -@@ -48,7 +48,8 @@ - $(LEX) -t $(srcdir)/graph.l > $@ - - y.tab.h: graph.y -- $(YACC) -d $(srcdir)/graph.y -+ $(YACC) -d -b foo $(srcdir)/graph.y -+ mv foo.tab.h y.tab.h && mv foo.tab.c y.tab.c - - CLEANFILES = graph.lex.c y.tab.c y.tab.h - CONFIG_CLEAN_FILES = $(CONTRIB_BUILDDIR)/uuid/uuid_types.h ---- libglusterfs/src/Makefile.in.orig 2013-07-12 20:10:12.157000000 -0400 -+++ libglusterfs/src/Makefile.in 2013-07-12 20:12:43.022000000 -0400 -@@ -1101,7 +1101,8 @@ - $(LEX) -t $(srcdir)/graph.l > $@ - - y.tab.h: graph.y -- $(YACC) -d $(srcdir)/graph.y -+ $(YACC) -d -b foo $(srcdir)/graph.y -+ mv foo.tab.h y.tab.h && mv foo.tab.c y.tab.c - - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/glusterfs-3.4.0.swift.egginfo-grizzly.patch b/glusterfs-3.4.0.swift.egginfo-grizzly.patch deleted file mode 100644 index ec9661b..0000000 --- a/glusterfs-3.4.0.swift.egginfo-grizzly.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- a/tools/pip-requires 2013-04-05 10:55:21.988000000 -0400 -+++ b/tools/pip-requires 2013-04-05 10:55:28.649000000 -0400 -@@ -3,5 +3,5 @@ - netifaces>=0.5 - pastedeploy>=1.3.3 - simplejson>=2.0.9 --xattr>=0.4 -+pyxattr>=0.4 - python-swiftclient diff --git a/glusterfs-3.4.1.add.base-port.config.option.patch b/glusterfs-3.4.1.add.base-port.config.option.patch deleted file mode 100644 index 4282a03..0000000 --- a/glusterfs-3.4.1.add.base-port.config.option.patch +++ /dev/null @@ -1,156 +0,0 @@ -From http://review.gluster.org/6147 -From b1d288f6d24a3fe439730c2f4e28bcc7a9ae7ecd Mon Sep 17 00:00:00 2001 -From: Kaleb S. KEITHLEY -Date: Fri, 25 Oct 2013 09:05:18 -0400 -Subject: [PATCH] mgmt/glusterd: add option to specify a different base-port - -This is (arguably) a hack to work around a bug in libvirt which is not -well behaved wrt to using TCP ports in the unreserved space between -49152-65535. (See RFC 6335) - -Normally glusterd starts and binds to the first available port in range, -usually 49152. libvirt's live migration also tries to use ports in this -range, but has no fallback to use (an)other port(s) when the one it wants -is already in use. - -libvirt cannot fix this in time for their impending release. This is -submitted to gerrit to provide some minimal visibility upstream to justify -hacking this change (as a temporary patch) into the glusterfs-3.4.1 RPMs -for Fedora 18-21 until libvirt can fix their implementation. - -Change-Id: Ie77b00ac60730d1e48907dd0b38ddae92f3ac345 -Signed-off-by: Kaleb S. KEITHLEY ---- - doc/glusterd.vol | 1 + - xlators/mgmt/glusterd/src/glusterd-pmap.c | 10 +++++----- - xlators/mgmt/glusterd/src/glusterd-store.c | 5 ++--- - xlators/mgmt/glusterd/src/glusterd.c | 12 ++++++++++-- - xlators/mgmt/glusterd/src/glusterd.h | 1 + - 5 files changed, 19 insertions(+), 10 deletions(-) - -diff --git a/doc/glusterd.vol b/doc/glusterd.vol -index de17d8f..9bac52a 100644 ---- a/doc/glusterd.vol -+++ b/doc/glusterd.vol -@@ -5,4 +5,5 @@ volume management - option transport.socket.keepalive-time 10 - option transport.socket.keepalive-interval 2 - option transport.socket.read-fail-log off -+# option base-port 49152 - end-volume -diff --git a/xlators/mgmt/glusterd/src/glusterd-pmap.c b/xlators/mgmt/glusterd/src/glusterd-pmap.c -index aab6744..7dec27c 100644 ---- a/xlators/mgmt/glusterd/src/glusterd-pmap.c -+++ b/xlators/mgmt/glusterd/src/glusterd-pmap.c -@@ -52,8 +52,8 @@ pmap_port_isfree (int port) - } - - --struct pmap_registry * --pmap_registry_new (void) -+static struct pmap_registry * -+pmap_registry_new (xlator_t *this) - { - struct pmap_registry *pmap = NULL; - int i = 0; -@@ -69,8 +69,8 @@ pmap_registry_new (void) - pmap->ports[i].type = GF_PMAP_PORT_FOREIGN; - } - -- pmap->base_port = GF_IANA_PRIV_PORTS_START; -- pmap->last_alloc = GF_IANA_PRIV_PORTS_START; -+ pmap->base_port = ((glusterd_conf_t *)(this->private))->base_port; -+ pmap->last_alloc = ((glusterd_conf_t *)(this->private))->base_port; - - return pmap; - } -@@ -86,7 +86,7 @@ pmap_registry_get (xlator_t *this) - - pmap = priv->pmap; - if (!pmap) { -- pmap = pmap_registry_new (); -+ pmap = pmap_registry_new (this); - if (!pmap) - return NULL; - priv->pmap = pmap; -diff --git a/xlators/mgmt/glusterd/src/glusterd-store.c b/xlators/mgmt/glusterd/src/glusterd-store.c -index ae0c4e8..1790c5a 100644 ---- a/xlators/mgmt/glusterd/src/glusterd-store.c -+++ b/xlators/mgmt/glusterd/src/glusterd-store.c -@@ -1484,7 +1484,7 @@ glusterd_store_retrieve_bricks (glusterd_volinfo_t *volinfo) - strlen (GLUSTERD_STORE_KEY_BRICK_PORT))) { - gf_string2int (value, &brickinfo->port); - -- if (brickinfo->port < GF_IANA_PRIV_PORTS_START){ -+ if (brickinfo->port < priv->base_port){ - /* This is required to adhere to the - IANA standards */ - brickinfo->port = 0; -@@ -1500,8 +1500,7 @@ glusterd_store_retrieve_bricks (glusterd_volinfo_t *volinfo) - strlen (GLUSTERD_STORE_KEY_BRICK_RDMA_PORT))) { - gf_string2int (value, &brickinfo->rdma_port); - -- if (brickinfo->rdma_port < -- GF_IANA_PRIV_PORTS_START){ -+ if (brickinfo->rdma_port < priv->base_port) { - /* This is required to adhere to the - IANA standards */ - brickinfo->rdma_port = 0; -diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c -index 785e67a..62c4a57 100644 ---- a/xlators/mgmt/glusterd/src/glusterd.c -+++ b/xlators/mgmt/glusterd/src/glusterd.c -@@ -916,7 +916,6 @@ init (xlator_t *this) - int first_time = 0; - char *mountbroker_root = NULL; - int i = 0; -- - #ifdef DEBUG - char *valgrind_str = NULL; - #endif -@@ -1101,6 +1100,12 @@ init (xlator_t *this) - if (ret) - goto out; - -+ conf->base_port = GF_IANA_PRIV_PORTS_START; -+ if (dict_get_uint32(this->options, "base-port", &conf->base_port) == 0) { -+ gf_log (this->name, GF_LOG_INFO, -+ "base-port override: %d", conf->base_port); -+ } -+ - /* Set option to run bricks on valgrind if enabled in glusterd.vol */ - #ifdef DEBUG - conf->valgrind = _gf_false; -@@ -1116,7 +1121,6 @@ init (xlator_t *this) - } - } - #endif -- - this->private = conf; - (void) glusterd_nodesvc_set_online_status ("glustershd", _gf_false); - -@@ -1309,5 +1313,9 @@ struct volume_options options[] = { - .description = "Sets the quorum percentage for the trusted " - "storage pool." - }, -+ { .key = {"base-port"}, -+ .type = GF_OPTION_TYPE_INT, -+ .description = "Sets the base port for portmap query" -+ }, - { .key = {NULL} }, - }; -diff --git a/xlators/mgmt/glusterd/src/glusterd.h b/xlators/mgmt/glusterd/src/glusterd.h -index 0033125..1054574 100644 ---- a/xlators/mgmt/glusterd/src/glusterd.h -+++ b/xlators/mgmt/glusterd/src/glusterd.h -@@ -148,6 +148,7 @@ typedef struct { - dict_t *opts; - synclock_t big_lock; - gf_boolean_t restart_done; -+ uint32_t base_port; - } glusterd_conf_t; - - --- -1.7.1 - diff --git a/glusterfs-3.4.3.xlator.nfs.server.nlm4.c.patch b/glusterfs-3.4.3.xlator.nfs.server.nlm4.c.patch deleted file mode 100644 index c49eed5..0000000 --- a/glusterfs-3.4.3.xlator.nfs.server.nlm4.c.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/xlators/nfs/server/src/nlm4.c b/xlators/nfs/server/src/nlm4.c -index e040aa5..eca107d 100644 ---- a/xlators/nfs/server/src/nlm4.c -+++ b/xlators/nfs/server/src/nlm4.c -@@ -941,7 +941,7 @@ nlm4_establish_callback (void *csarg) - case AF_INET: - inet_ntop (AF_INET, &sock_union.sin.sin_addr, peerip, - INET6_ADDRSTRLEN+1); -- inet_ntop (AF_INET, &(((struct sockaddr_in *)&cs->req->trans->myinfo.sockaddr)->sin_addr), -+ inet_ntop (AF_INET, &(((struct sockaddr_in *)&cs->trans->myinfo.sockaddr)->sin_addr), - myip, INET6_ADDRSTRLEN + 1); - - break; diff --git a/glusterfs-3.8.0.api.glfs-fops.patch b/glusterfs-3.8.0.api.glfs-fops.patch deleted file mode 100644 index b903562..0000000 --- a/glusterfs-3.8.0.api.glfs-fops.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- glusterfs-3.8.0/api/src/glfs-fops.c.orig 2016-06-27 08:38:37.523161014 -0400 -+++ glusterfs-3.8.0/api/src/glfs-fops.c 2016-06-27 08:40:06.591161014 -0400 -@@ -803,7 +803,6 @@ - - GF_VALIDATE_OR_GOTO ("gfapi", frame, inval); - GF_VALIDATE_OR_GOTO ("gfapi", cookie, inval); -- GF_VALIDATE_OR_GOTO ("gfapi", iovec, inval); - - gio = frame->local; - frame->local = NULL; -@@ -817,6 +816,12 @@ - if (op_ret <= 0) { - goto out; - } else if (gio->op == GF_FOP_READ) { -+ if (!iovec) { -+ op_ret = -1; -+ op_errno = EINVAL; -+ goto out; -+ } -+ - op_ret = iov_copy (gio->iov, gio->count, iovec, count); - glfd->offset = gio->offset + op_ret; - } else if (gio->op == GF_FOP_WRITE) { diff --git a/glusterfs-3.8.0rc1.VERSION.patch b/glusterfs-3.8.0rc1.VERSION.patch deleted file mode 100644 index fb800c7..0000000 --- a/glusterfs-3.8.0rc1.VERSION.patch +++ /dev/null @@ -1,6 +0,0 @@ ---- glusterfs-3.8rc1/VERSION.orig 2016-05-16 10:59:02.691769734 -0400 -+++ glusterfs-3.8rc1/VERSION 2016-05-16 11:01:16.408769734 -0400 -@@ -1 +1 @@ --v3.8rc1-0 -\ No newline at end of file -+v3.8.0rc1 diff --git a/glusterfs-3.8.0rc2.VERSION.patch b/glusterfs-3.8.0rc2.VERSION.patch deleted file mode 100644 index 456d617..0000000 --- a/glusterfs-3.8.0rc2.VERSION.patch +++ /dev/null @@ -1,6 +0,0 @@ ---- glusterfs-3.8rc1/VERSION.orig 2016-05-16 10:59:02.691769734 -0400 -+++ glusterfs-3.8rc1/VERSION 2016-05-16 11:01:16.408769734 -0400 -@@ -1 +1 @@ --v3.8rc2-0 -\ No newline at end of file -+v3.8.0rc2 diff --git a/glusterfs-3.8.5.xlators.crypt.patch b/glusterfs-3.8.5.xlators.crypt.patch deleted file mode 100644 index abf3663..0000000 --- a/glusterfs-3.8.5.xlators.crypt.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- glusterfs-3.8.5/xlators/encryption/crypt/src/keys.c.orig 2016-10-13 05:44:08.218131827 -0400 -+++ glusterfs-3.8.5/xlators/encryption/crypt/src/keys.c 2016-10-13 07:56:39.783730111 -0400 -@@ -113,29 +113,41 @@ - static void kderive_update(struct kderive_context *ctx) - { - uint32_t i; -+#if (OPENSSL_VERSION_NUMBER < 0x1010002f) - HMAC_CTX hctx; -+#endif -+ HMAC_CTX *phctx = NULL; - unsigned char *pos = ctx->out; - uint32_t *p_iter = (uint32_t *)ctx->fid; - uint32_t num_iters = ctx->out_len / PRF_OUTPUT_SIZE; - - check_prf_iters(num_iters); - -+#if (OPENSSL_VERSION_NUMBER < 0x1010002f) - HMAC_CTX_init(&hctx); -+ phctx = &hctx; -+#else -+ phctx = HMAC_CTX_new(); -+#endif - for (i = 0; i < num_iters; i++) { - /* - * update the iteration number in the fid - */ - *p_iter = htobe32(i); -- HMAC_Init_ex(&hctx, -+ HMAC_Init_ex(phctx, - ctx->pkey, ctx->pkey_len >> 3, - EVP_sha256(), - NULL); -- HMAC_Update(&hctx, ctx->fid, ctx->fid_len); -- HMAC_Final(&hctx, pos, NULL); -+ HMAC_Update(phctx, ctx->fid, ctx->fid_len); -+ HMAC_Final(phctx, pos, NULL); - - pos += PRF_OUTPUT_SIZE; - } -- HMAC_CTX_cleanup(&hctx); -+#if (OPENSSL_VERSION_NUMBER < 0x1010002f) -+ HMAC_CTX_cleanup(phctx); -+#else -+ HMAC_CTX_free(phctx); -+#endif - } - - static void kderive_final(struct kderive_context *ctx, unsigned char *child) diff --git a/glusterfs-3.9.0rc2.xlators.crypt.patch b/glusterfs-3.9.0rc2.xlators.crypt.patch deleted file mode 100644 index 4429f9f..0000000 --- a/glusterfs-3.9.0rc2.xlators.crypt.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- glusterfs-3.9.0rc2/xlators/encryption/crypt/src/keys.c.orig 2016-10-26 10:28:14.832787325 -0400 -+++ glusterfs-3.9.0rc2/xlators/encryption/crypt/src/keys.c 2016-10-26 12:04:34.175730111 -0400 -@@ -113,29 +113,41 @@ - static void kderive_update(struct kderive_context *ctx) - { - uint32_t i; -+#if (OPENSSL_VERSION_NUMBER < 0x1010002f) - HMAC_CTX hctx; -+#endif -+ HMAC_CTX *phctx = NULL; - unsigned char *pos = ctx->out; - uint32_t *p_iter = (uint32_t *)ctx->fid; - uint32_t num_iters = ctx->out_len / PRF_OUTPUT_SIZE; - - check_prf_iters(num_iters); - -+#if (OPENSSL_VERSION_NUMBER < 0x1010002f) - HMAC_CTX_init(&hctx); -+ phctx = &hctx; -+#else -+ phctx = HMAC_CTX_new(); -+#endif - for (i = 0; i < num_iters; i++) { - /* - * update the iteration number in the fid - */ - *p_iter = htobe32(i); -- HMAC_Init_ex(&hctx, -+ HMAC_Init_ex(phctx, - ctx->pkey, ctx->pkey_len >> 3, - EVP_sha256(), - NULL); -- HMAC_Update(&hctx, ctx->fid, ctx->fid_len); -- HMAC_Final(&hctx, pos, NULL); -+ HMAC_Update(phctx, ctx->fid, ctx->fid_len); -+ HMAC_Final(phctx, pos, NULL); - - pos += PRF_OUTPUT_SIZE; - } -- HMAC_CTX_cleanup(&hctx); -+#if (OPENSSL_VERSION_NUMBER < 0x1010002f) -+ HMAC_CTX_cleanup(phctx); -+#else -+ HMAC_CTX_free(phctx); -+#endif - } - - static void kderive_final(struct kderive_context *ctx, unsigned char *child) diff --git a/openstack-swift-docmod.patch b/openstack-swift-docmod.patch deleted file mode 100644 index 03f193c..0000000 --- a/openstack-swift-docmod.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- swift-1.4.4/doc/source/conf.py.orig 2011-11-24 08:59:50.000000000 -0500 -+++ swift-1.4.4/doc/source/conf.py 2012-01-04 22:35:55.571492761 -0500 -@@ -31,7 +31,10 @@ - # If extensions (or modules to document with autodoc) are in another directory, - # add these directories to sys.path here. If the directory is relative to the - # documentation root, use os.path.abspath to make it absolute, like shown here. --sys.path.append([os.path.abspath('../swift'), os.path.abspath('..'), os.path.abspath('../bin')]) -+sys.path = [os.path.abspath('../../swift'), -+ os.path.abspath('../..'), -+ os.path.abspath('../../bin') -+ ] + sys.path - - # -- General configuration ----------------------------------------------------- - diff --git a/openstack-swift-newdeps.patch b/openstack-swift-newdeps.patch deleted file mode 100644 index 3b4222a..0000000 --- a/openstack-swift-newdeps.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -ru swift-1.4.4-ORIG/swift/__init__.py swift-1.4.4/swift/__init__.py ---- swift-1.4.4-ORIG/swift/__init__.py 2011-11-24 14:59:50.000000000 +0100 -+++ swift-1.4.4/swift/__init__.py 2012-01-04 00:09:10.122030579 +0100 -@@ -1,3 +1,32 @@ -+import sys -+import pkg_resources -+ -+# If there is a conflicting non egg module, -+# i.e. an older standard system module installed, -+# then replace it with this requirement -+def replace_dist(requirement): -+ try: -+ return pkg_resources.require(requirement) -+ except pkg_resources.VersionConflict: -+ e = sys.exc_info()[1] -+ dist=e.args[0] -+ req=e.args[1] -+ if dist.key == req.key and not dist.location.endswith('.egg'): -+ del pkg_resources.working_set.by_key[dist.key] -+ # We assume there is no need to adjust sys.path -+ # and the associated pkg_resources.working_set.entries -+ return pkg_resources.require(requirement) -+ -+replace_dist("WebOb >= 1.0") -+ -+replace_dist("PasteDeploy >= 1.5.0") -+# This hack is needed because replace_dist() results in -+# the standard paste module path being at the start of __path__. -+# TODO: See can we get pkg_resources to do the right thing directly -+import paste -+paste.__path__.insert(0, paste.__path__.pop(-1)) -+ -+ - import gettext - - diff --git a/openstack-swift-nonet.patch b/openstack-swift-nonet.patch deleted file mode 100644 index af8cad4..0000000 --- a/openstack-swift-nonet.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- swift-1.4.4/doc/source/conf.py.orig 2012-01-04 22:40:43.190300958 -0500 -+++ swift-1.4.4/doc/source/conf.py 2012-01-04 22:41:26.980492712 -0500 -@@ -40,7 +40,7 @@ - - # Add any Sphinx extension module names here, as strings. They can be extensions - # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. --extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', 'sphinx.ext.ifconfig'] -+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', 'sphinx.ext.ifconfig'] - todo_include_todos = True - - # Add any paths that contain templates here, relative to this directory. From 039e3afba49f58cb4547a6fc89820c1d8b2c5949 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Thu, 12 Jan 2017 17:30:29 +0100 Subject: [PATCH 136/328] Rebuild for readline 7.x Signed-off-by: Igor Gnatenko --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index ee8dadb..8e11bcf 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -168,12 +168,12 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.9.0 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Release: 3%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.2 +Release: 0.@PACKAGE_RELEASE@%{?dist}.3 Vendor: Gluster Community %endif License: GPLv2 or LGPLv3+ @@ -1289,6 +1289,9 @@ exit 0 %endif %changelog +* Thu Jan 12 2017 Igor Gnatenko - 3.9.0-3 +- Rebuild for readline 7.x + * Fri Jan 6 2017 Kaleb S. KEITHLEY - 3.9.0-2 - firewalld fixes From 45216c5be6dd4f6098a7acd3d371b2b169de7e02 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 16 Jan 2017 07:20:10 -0500 Subject: [PATCH 137/328] firewalld nit --- glusterfs.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8e11bcf..c295207 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -168,7 +168,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.9.0 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Release: 4%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -866,7 +866,6 @@ fi %if (0%{?_with_firewalld:1}) %firewalld_reload -fi %endif pidof -c -o %PPID -x glusterd &> /dev/null @@ -1289,6 +1288,9 @@ exit 0 %endif %changelog +* Mon Jan 16 2017 Kaleb S. KEITHLEY - 3.9.0-4 +- firewalld nit + * Thu Jan 12 2017 Igor Gnatenko - 3.9.0-3 - Rebuild for readline 7.x From 980cc825b7720e4b54465e41a2bd54a279631a7f Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 17 Jan 2017 14:47:13 -0500 Subject: [PATCH 138/328] 3.9.1 GA --- glusterfs.spec | 27 ++++++++++++++++----------- sources | 2 +- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index c295207..5d89795 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -167,8 +167,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.9.0 -Release: 4%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.9.1 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -189,14 +189,16 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0: glusterfs-3.9.0rc2.api.glfs_free.patch -Patch1: glusterfs-3.9.0.configure.ac.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) %if ( 0%{?rhel} && 0%{?rhel} < 6 ) BuildRequires: python-simplejson %endif +%if ( 0%{?_with_systemd:1} ) +BuildRequires: systemd +%endif + %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?_with_systemd:1} ) %global glusterfsd_service %{S:%{SOURCE7}} @@ -206,6 +208,9 @@ BuildRequires: python-simplejson %endif Requires: %{name}-libs = %{version}-%{release} +%if ( 0%{?_with_systemd:1} ) +%{?systemd_requires} +%endif BuildRequires: bison flex BuildRequires: gcc make libtool BuildRequires: ncurses-devel readline-devel @@ -357,6 +362,9 @@ Requires: python-gluster = %{version}-%{release} %if ( 0%{?rhel} && 0%{?rhel} <= 6 ) Requires: python-argparse %endif +%if ( 0%{?_with_systemd:1} ) +%{?systemd_requires} +%endif %description events GlusterFS is a distributed file-system capable of scaling to several @@ -590,10 +598,7 @@ Requires: psmisc Requires: lvm2 Requires: nfs-utils %if ( 0%{?_with_systemd:1} ) -Requires(post): systemd -Requires(post): systemd-units -Requires(preun): systemd-units -Requires(postun): systemd-units +%{?systemd_requires} %else Requires(post): /sbin/chkconfig Requires(preun): /sbin/service @@ -631,8 +636,6 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} -%patch0 -p1 -%patch1 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -1077,7 +1080,6 @@ exit 0 %{_libexecdir}/ganesha/* %{_prefix}/lib/ocf/resource.d/heartbeat/* %{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh -%{_sharedstatedir}/glusterd/hooks/1/reset/post/S31ganesha-reset.sh %if ( 0%{!?_without_georeplication:1} ) %files geo-replication @@ -1288,6 +1290,9 @@ exit 0 %endif %changelog +* Tue Jan 17 2017 Kaleb S. KEITHLEY - 3.9.1-1 +- 3.9.1 GA + * Mon Jan 16 2017 Kaleb S. KEITHLEY - 3.9.0-4 - firewalld nit diff --git a/sources b/sources index 5eaf890..08f95fa 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -23bb9c65a46ff74c0f1e15b9a8fe20a2 glusterfs-3.9.0.tar.gz +SHA512 (glusterfs-3.9.1.tar.gz) = ffd786567be73b6b0c3569dc24769cb2bc1aed17675747d1192f96da755acde63d8f2ab8bbad6f1ba687a8484d0a9b7dd71fe0cce7fab0fa7b8b0dae9576a1cc From 3ea46bf5c2ee28b1763f7a8bd2d668a62c50a3c5 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 18 Jan 2017 09:00:21 -0500 Subject: [PATCH 139/328] delete obsolete patches --- glusterfs-3.9.0.configure.ac.patch | 11 ----- glusterfs-3.9.0rc2.api.glfs_free.patch | 66 -------------------------- 2 files changed, 77 deletions(-) delete mode 100644 glusterfs-3.9.0.configure.ac.patch delete mode 100644 glusterfs-3.9.0rc2.api.glfs_free.patch diff --git a/glusterfs-3.9.0.configure.ac.patch b/glusterfs-3.9.0.configure.ac.patch deleted file mode 100644 index b5f4b81..0000000 --- a/glusterfs-3.9.0.configure.ac.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- glusterfs-3.9.0/configure.ac.orig 2017-01-06 12:44:28.270940821 -0500 -+++ glusterfs-3.9.0/configure.ac 2017-01-06 12:46:19.781940821 -0500 -@@ -810,7 +810,7 @@ - [BUILD_FIREWALLD="${enableval}"], [BUILD_FIREWALLD="no"]) - - if test "x${BUILD_FIREWALLD}" = "xyes"; then -- if !(which firewalld 1>/dev/null 2>&1) ; then -+ if !(test -d /usr/lib/firewalld/services 1>/dev/null 2>&1) ; then - BUILD_FIREWALLD="no (firewalld not installed)" - fi - fi diff --git a/glusterfs-3.9.0rc2.api.glfs_free.patch b/glusterfs-3.9.0rc2.api.glfs_free.patch deleted file mode 100644 index 6f44d88..0000000 --- a/glusterfs-3.9.0rc2.api.glfs_free.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 5ab0b43ce67d8d131242542a80b6aa6b129ed5ee Mon Sep 17 00:00:00 2001 -From: Niels de Vos -Date: Mon, 17 Oct 2016 11:58:30 +0200 -Subject: [PATCH] gfapi: add glfs_free() to glfs.h - -Commit 4721188a154acd9a0a4c096d8d73e97f3bf1b2a9 introduces glfs_free() -but missed adding the function to the header. The symbol is correctly -available in the library though. Testcases do not seem to fail when a -function is missing for the headers... - -The glusterfs-3.7.16 packages have been released with the missing -declaration in the header and symbol-maps. Still, the function is -available for applications: - - $ objdump -T usr/lib64/libgfapi.so.0 | grep -w glfs_free - 0000000000006aa0 g DF .text 0000000000000035 GFAPI_3.7.16 glfs_free - -Change-Id: Ia707ee957f090dbfca028192fcc81a83dfdf4ae0 -BUG: 1344714 -Reported-by: Jiffin Tony Thottan -Signed-off-by: Niels de Vos -Reviewed-on: http://review.gluster.org/15653 -CentOS-regression: Gluster Build System -Smoke: Gluster Build System -Reviewed-by: jiffin tony Thottan -NetBSD-regression: NetBSD Build System ---- - -diff --git a/api/src/gfapi.aliases b/api/src/gfapi.aliases -index 74ef4d3..d2c4ba2 100644 ---- a/api/src/gfapi.aliases -+++ b/api/src/gfapi.aliases -@@ -141,6 +141,7 @@ - - _pub_glfs_h_lookupat _glfs_h_lookupat$GFAPI_3.7.4 - -+_pub_glfs_free _glfs_free$GFAPI_3.7.16 - _pub_glfs_h_poll_upcall _glfs_h_poll_upcall$GFAPI_3.7.16 - _pub_glfs_upcall_get_fs _glfs_upcall_get_fs$GFAPI_3.7.16 - _pub_glfs_upcall_get_reason _glfs_upcall_get_reason$GFAPI_3.7.16 -diff --git a/api/src/gfapi.map b/api/src/gfapi.map -index 964db76..d022380 100644 ---- a/api/src/gfapi.map -+++ b/api/src/gfapi.map -@@ -175,6 +175,7 @@ - - GFAPI_3.7.16 { - global: -+ glfs_free; - glfs_upcall_get_fs; - glfs_upcall_get_reason; - glfs_upcall_inode_get_event; -diff --git a/api/src/glfs.h b/api/src/glfs.h -index c81b7cc..903492a 100644 ---- a/api/src/glfs.h -+++ b/api/src/glfs.h -@@ -769,6 +769,9 @@ - glfs_fd_t *glfs_dup (glfs_fd_t *fd) __THROW - GFAPI_PUBLIC(glfs_dup, 3.4.0); - -+void glfs_free (void *ptr) __THROW -+ GFAPI_PUBLIC(glfs_free, 3.7.16); -+ - /* - * Nobody needs this call at all yet except for the test script. - */ From 9e47677bc99cd9b9f477655b9535c6a586b5c66e Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 7 Feb 2017 07:58:35 -0500 Subject: [PATCH 140/328] 3.10.0 RC0 --- glusterfs.spec | 96 +++++++++++++++++++++++++++++--------------------- sources | 2 +- 2 files changed, 56 insertions(+), 42 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5d89795..93cd2c0 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# global prereltag rc2 +%global prereltag rc0 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -97,8 +97,8 @@ # From https://fedoraproject.org/wiki/Packaging:Python#Macros %if ( 0%{?rhel} && 0%{?rhel} < 6 ) -%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%{!?python2_sitelib: %global python2_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python2_sitearch: %global python2_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %endif %if ( 0%{?_with_systemd:1} ) @@ -167,14 +167,12 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.9.1 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} -Vendor: Fedora Project +Version: 3.10.0 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ Release: 0.@PACKAGE_RELEASE@%{?dist}.3 -Vendor: Gluster Community %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base @@ -216,7 +214,10 @@ BuildRequires: gcc make libtool BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel BuildRequires: libaio-devel libacl-devel -BuildRequires: python-devel +BuildRequires: python2-devel +%if ( 0%{?rhel} ) +BuildRequires: python-ctypes +%endif BuildRequires: userspace-rcu-devel >= 0.7 %if ( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: automake @@ -356,9 +357,9 @@ This package provides the development libraries and include files. Summary: GlusterFS Events Group: Applications/File Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: python python-fasteners python-requests python-flask +Requires: python2 python2-requests Requires: python-prettytable -Requires: python-gluster = %{version}-%{release} +Requires: python2-gluster = %{version}-%{release} %if ( 0%{?rhel} && 0%{?rhel} <= 6 ) Requires: python-argparse %endif @@ -381,10 +382,13 @@ This package provides the GlusterFS Events %package extra-xlators Summary: Extra Gluster filesystem Translators Group: Applications/File -# We need python-gluster rpm for gluster module's __init__.py in Python +# We need python2-gluster rpm for gluster module's __init__.py in Python # site-packages area -Requires: python-gluster = %{version}-%{release} -Requires: python +Requires: python2-gluster = %{version}-%{release} +Requires: python2 +%if ( 0%{?rhel} ) +BuildRequires: python-ctypes +%endif %description extra-xlators GlusterFS is a distributed file-system capable of scaling to several @@ -437,6 +441,7 @@ Requires: cman, pacemaker, corosync # we need portblock resource-agent in 3.9.5 and later. Requires: resource-agents >= 3.9.5 %endif +Requires: nfs-ganesha-gluster >= 2.4.1 %description ganesha GlusterFS is a distributed file-system capable of scaling to several @@ -456,8 +461,12 @@ Summary: GlusterFS Geo-replication Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} -Requires: python python-prettytable -Requires: python-gluster = %{version}-%{release} +Requires: python2 +Requires: python-prettytable +%if ( 0%{?rhel} ) +BuildRequires: python-ctypes +%endif +Requires: python2-gluster = %{version}-%{release} Requires: rsync %description geo-replication @@ -490,25 +499,32 @@ This package provides the base GlusterFS libraries %package -n python-gluster Summary: GlusterFS python library Group: Development/Tools -License: GPLv3+ %if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) ) # EL5 does not support noarch sub-packages BuildArch: noarch %endif -Requires: python -%description -n python-gluster -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package contains the python modules of GlusterFS and own gluster +%global _python_gluster_description \ +GlusterFS is a distributed file-system capable of scaling to several\ +petabytes. It aggregates various storage bricks over Infiniband RDMA\ +or TCP/IP interconnect into one large parallel network file\ +system. GlusterFS is one of the most sophisticated file systems in\ +terms of features and extensibility. It borrows a powerful concept\ +called Translators from GNU Hurd kernel. Much of the code in GlusterFS\ +is in user space and easily manageable.\ +\ +This package contains the python modules of GlusterFS and own gluster\ namespace. +%description -n python-gluster %{_python_gluster_description} + +%package -n python2-gluster +Summary: GlusterFS python library +Group: Development/Tools +%{?python_provide:%python_provide python2-gluster} +Requires: python2 + +%description -n python2-gluster %{_python_gluster_description} %if ( 0%{!?_without_rdma:1} ) %package rdma @@ -540,7 +556,7 @@ Requires: %{name}-server = %{version}-%{release} ## thin provisioning support Requires: lvm2 >= 2.02.89 Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng -Requires: python attr dbench file git libacl-devel net-tools +Requires: python2 attr dbench file git libacl-devel net-tools Requires: nfs-utils xfsprogs yajl %description regression-tests @@ -1027,7 +1043,6 @@ exit 0 %files client-xlators %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/pump.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so @@ -1049,20 +1064,17 @@ exit 0 %files extra-xlators %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/prot_client.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/prot_dht.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/prot_server.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features/template.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so # Glupy Python files -%{python_sitelib}/gluster/glupy/* +%{python2_sitelib}/gluster/glupy/* %files fuse # glusterfs is a symlink to glusterfsd, -server depends on -fuse. %{_sbindir}/glusterfs %{_sbindir}/glusterfsd +%{_sbindir}/gf_attach %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so /sbin/mount.glusterfs @@ -1078,7 +1090,6 @@ exit 0 %files ganesha %{_sysconfdir}/ganesha/* %{_libexecdir}/ganesha/* -%{_prefix}/lib/ocf/resource.d/heartbeat/* %{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh %if ( 0%{!?_without_georeplication:1} ) @@ -1123,11 +1134,11 @@ exit 0 %exclude %{_libdir}/libgfdb.* %endif -%files -n python-gluster +%files -n python2-gluster # introducing glusterfs module in site packages. # so that all other gluster submodules can reside in the same namespace. -%{python_sitelib}/gluster/__init__.* -%{python_sitelib}/gluster/cliutils +%{python2_sitelib}/gluster/__init__.* +%{python2_sitelib}/gluster/cliutils %if ( 0%{!?_without_rdma:1} ) %files rdma @@ -1138,8 +1149,9 @@ exit 0 %files regression-tests %{_prefix}/share/glusterfs/run-tests.sh %{_prefix}/share/glusterfs/tests -%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t -%exclude %{_prefix}/share/glusterfs/tests/vagrant +%{_datadir}/glusterfs/run-tests.sh +%{_datadir}/glusterfs/tests +%exclude %{_datadir}/glusterfs/tests/vagrant %endif %if ( 0%{!?_without_ocf:1} ) @@ -1171,7 +1183,6 @@ exit 0 # {_sbindir}/glusterfsd is the actual binary, but glusterfs (client) is a # symlink. The binary itself (and symlink) are part of the glusterfs-fuse # package, because glusterfs-server depends on that anyway. -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/pump.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/arbiter.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bit-rot.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bitrot-stub.so @@ -1290,6 +1301,9 @@ exit 0 %endif %changelog +* Tue Feb 7 2017 Kaleb S. KEITHLEY - 3.10.0-0.1rc0 +- 3.10.0 RC0 + * Tue Jan 17 2017 Kaleb S. KEITHLEY - 3.9.1-1 - 3.9.1 GA diff --git a/sources b/sources index 08f95fa..7000c8c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.9.1.tar.gz) = ffd786567be73b6b0c3569dc24769cb2bc1aed17675747d1192f96da755acde63d8f2ab8bbad6f1ba687a8484d0a9b7dd71fe0cce7fab0fa7b8b0dae9576a1cc +SHA512 (glusterfs-3.10.0rc0.tar.gz) = 5df13a5e791f92de203c82c345cc88d0472cd06c45b078b924d97a4ae954b4028b125b7a2100800797763b08b3e619ada205cc423ff29e71925171b31591b4ef From f770f0cd9c0c4005c871c7bcd15a15e751ad4be3 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 21 Feb 2017 22:39:08 -0500 Subject: [PATCH 141/328] 3.10.0 RC1 --- glusterfs.spec | 23 +++++++++++++++++------ sources | 2 +- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 93cd2c0..79ae704 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,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 @@ -168,7 +168,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.10.0 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -357,10 +357,14 @@ This package provides the development libraries and include files. Summary: GlusterFS Events Group: Applications/File Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: python2 python2-requests -Requires: python-prettytable +Requires: python2 python-prettytable Requires: python2-gluster = %{version}-%{release} -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%if ( 0%{?rhel} ) +Requires: python-requests +%else +Requires: python2-requests +%endif +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse %endif %if ( 0%{?_with_systemd:1} ) @@ -523,6 +527,8 @@ Summary: GlusterFS python library Group: Development/Tools %{?python_provide:%python_provide python2-gluster} Requires: python2 +Provides: python-gluster = %{version}-%{release} +Obsoletes: python-gluster < 3.10 %description -n python2-gluster %{_python_gluster_description} @@ -1074,7 +1080,6 @@ exit 0 # glusterfs is a symlink to glusterfsd, -server depends on -fuse. %{_sbindir}/glusterfs %{_sbindir}/glusterfsd -%{_sbindir}/gf_attach %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so /sbin/mount.glusterfs @@ -1090,6 +1095,7 @@ exit 0 %files ganesha %{_sysconfdir}/ganesha/* %{_libexecdir}/ganesha/* +%{_prefix}/lib/ocf/resource.d/heartbeat/* %{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh %if ( 0%{!?_without_georeplication:1} ) @@ -1180,6 +1186,7 @@ exit 0 # binaries %{_sbindir}/glusterd %{_sbindir}/glfsheal +%{_sbindir}/gf_attach # {_sbindir}/glusterfsd is the actual binary, but glusterfs (client) is a # symlink. The binary itself (and symlink) are part of the glusterfs-fuse # package, because glusterfs-server depends on that anyway. @@ -1218,6 +1225,7 @@ exit 0 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/bitd %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/groups %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/virt + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/metadata-cache %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd @@ -1301,6 +1309,9 @@ exit 0 %endif %changelog +* Tue Feb 21 2017 Kaleb S. KEITHLEY - 3.10.0-0.2rc1 +- 3.10.0 RC1 + * Tue Feb 7 2017 Kaleb S. KEITHLEY - 3.10.0-0.1rc0 - 3.10.0 RC0 diff --git a/sources b/sources index 7000c8c..545ac73 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.10.0rc0.tar.gz) = 5df13a5e791f92de203c82c345cc88d0472cd06c45b078b924d97a4ae954b4028b125b7a2100800797763b08b3e619ada205cc423ff29e71925171b31591b4ef +SHA512 (glusterfs-3.10.0rc1.tar.gz) = 85b76c6e53f63949575c084f9505e4d1272ca4ca289047dac45dec5ce2c624080ffe14cb902b6b4f84d9bf818c5118c8e65e7ba5c1d9ccff4a0cf6ee1cee47d3 From 52721583d1d1dea4fd4c31a99fbd44e42f4f5509 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 23 Feb 2017 22:02:01 -0500 Subject: [PATCH 142/328] 3.10.0 GA --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 79ae704..d8aaf1a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag rc1 +# %%global prereltag rc1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -168,7 +168,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.10.0 -Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} +Release: 1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1309,6 +1309,9 @@ exit 0 %endif %changelog +* Thu Feb 23 2017 Kaleb S. KEITHLEY - 3.10.0-1 +- 3.10.0 GA + * Tue Feb 21 2017 Kaleb S. KEITHLEY - 3.10.0-0.2rc1 - 3.10.0 RC1 diff --git a/sources b/sources index 545ac73..10277d9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.10.0rc1.tar.gz) = 85b76c6e53f63949575c084f9505e4d1272ca4ca289047dac45dec5ce2c624080ffe14cb902b6b4f84d9bf818c5118c8e65e7ba5c1d9ccff4a0cf6ee1cee47d3 +SHA512 (glusterfs-3.10.0.tar.gz) = eeb6ef61e33b9a5afd59802aa641d67ac9b48dc1d1e08c302a744765b3f63dc479cd13b41df9e874dc2a194b038e85d1f94209112df4269d8b00cd5bf6b05449 From 4d77409de017e15b33b0aa48a66337104d382db2 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 24 Feb 2017 15:19:01 -0500 Subject: [PATCH 143/328] 3.10.0 GA --- glusterfs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index d8aaf1a..58c4560 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -96,7 +96,7 @@ %endif # From https://fedoraproject.org/wiki/Packaging:Python#Macros -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) %{!?python2_sitelib: %global python2_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %{!?python2_sitearch: %global python2_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %endif From 92c089099d713a29627538c60e774a0880ec2f6a Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 30 Mar 2017 15:19:37 -0400 Subject: [PATCH 144/328] 3.10.1 GA --- glusterfs.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 58c4560..01efb0a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -167,7 +167,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.10.0 +Version: 3.10.1 Release: 1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1309,6 +1309,9 @@ exit 0 %endif %changelog +* Thu Mar 30 2017 Kaleb S. KEITHLEY - 3.10.1-1 +- 3.10.1 GA + * Thu Feb 23 2017 Kaleb S. KEITHLEY - 3.10.0-1 - 3.10.0 GA diff --git a/sources b/sources index 10277d9..6ff1e62 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.10.0.tar.gz) = eeb6ef61e33b9a5afd59802aa641d67ac9b48dc1d1e08c302a744765b3f63dc479cd13b41df9e874dc2a194b038e85d1f94209112df4269d8b00cd5bf6b05449 +SHA512 (glusterfs-3.10.1.tar.gz) = 35acf10d37db7ca9cf7d88e4eabcac4febdccfe15cbe68df86c44042987547f3a56447a1ced5ed238d171efdbcb97dd1fc6917283641bdcd7d476deb37ad0871 From 94a3248f2970e94072bec83ef61ecbe231a03bca Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 8 May 2017 15:22:56 -0400 Subject: [PATCH 145/328] 3.11.0 RC0 --- glusterfs.spec | 135 ++++++++++++++++++++++++++++++------------------- sources | 2 +- 2 files changed, 83 insertions(+), 54 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 01efb0a..9ba0501 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag rc1 +%global prereltag rc0 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -13,6 +13,10 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with debug %{?_with_debug:%global _with_debug --enable-debug} +# if you wish to compile an rpm to run all processes under valgrind... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind +%{?_with_valgrind:%global _with_valgrind --enable-valgrind} + # if you wish to compile an rpm with cmocka unit testing... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka %{?_with_cmocka:%global _with_cmocka --enable-cmocka} @@ -38,6 +42,10 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication %{?_without_georeplication:%global _without_georeplication --disable-georeplication} +# if you wish to compile an rpm with the legacy gNFS server xlator +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs +%{?_with_gnfs:%global _with_gnfs --enable-gnfs} + # Disable geo-replication on EL5, as its default Python is too old %if ( 0%{?rhel} && 0%{?rhel} < 6 ) %global _without_georeplication --disable-georeplication @@ -167,8 +175,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.10.1 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.11.0 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -190,6 +198,7 @@ Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +Requires(pre): shadow-utils %if ( 0%{?rhel} && 0%{?rhel} < 6 ) BuildRequires: python-simplejson %endif @@ -241,7 +250,7 @@ BuildRequires: libattr-devel %endif %if (0%{?_with_firewalld:1}) -BuildRequires: firewalld-filesystem +BuildRequires: firewalld %endif Obsoletes: hekafs @@ -251,6 +260,7 @@ Obsoletes: %{name}-core < %{version}-%{release} Obsoletes: %{name}-regression-tests %endif Obsoletes: %{name}-ufo +Obsoletes: %{name}-ganesha Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -431,34 +441,6 @@ is in user space and easily manageable. This package provides support to FUSE based clients and includes the glusterfsd and glusterfs binaries. -%package ganesha -Summary: NFS-Ganesha configuration -Group: Applications/File - -Requires: %{name}-server = %{version}-%{release} -Requires: nfs-ganesha-gluster -Requires: pcs, dbus -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -Requires: cman, pacemaker, corosync -%endif -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 5 ) -# we need portblock resource-agent in 3.9.5 and later. -Requires: resource-agents >= 3.9.5 -%endif -Requires: nfs-ganesha-gluster >= 2.4.1 - -%description ganesha -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides the configuration and related files for using -NFS-Ganesha as the NFS server using GlusterFS - %if ( 0%{!?_without_georeplication:1} ) %package geo-replication Summary: GlusterFS Geo-replication @@ -485,6 +467,26 @@ is in userspace and easily manageable. This package provides support to geo-replication. %endif +%if ( 0%{?_with_gnfs:1} ) +%package gnfs +Summary: GlusterFS gNFS server +Group: System Environment/Daemons +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-client-xlators%{?_isa} = %{version}-%{release} +Requires: nfs-utils + +%description gnfs +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides the glusterfs legacy gNFS server xlator +%endif + %package libs Summary: GlusterFS common libraries Group: Applications/File @@ -563,7 +565,7 @@ Requires: %{name}-server = %{version}-%{release} Requires: lvm2 >= 2.02.89 Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng Requires: python2 attr dbench file git libacl-devel net-tools -Requires: nfs-utils xfsprogs yajl +Requires: nfs-utils xfsprogs yajl psmisc bc %description regression-tests The Gluster Test Framework, is a suite of scripts used for @@ -614,11 +616,9 @@ Requires: %{name}-fuse = %{version}-%{release} # self-heal daemon, rebalance, nfs-server etc. are actually clients Requires: %{name}-api = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} -# psmisc for killall, lvm2 for snapshot, and nfs-utils and -# rpcbind/portmap for gnfs server +# lvm2 for snapshot, and nfs-utils and rpcbind/portmap for gnfs server Requires: psmisc Requires: lvm2 -Requires: nfs-utils %if ( 0%{?_with_systemd:1} ) %{?systemd_requires} %else @@ -629,8 +629,12 @@ Requires(postun): /sbin/service %endif %if (0%{?_with_firewalld:1}) # we install firewalld rules, so we need to have the directory owned +%if ( 0%{!?rhel} ) +# not on RHEL because firewalld-filesystem appeared in 7.3 +# when EL7 rpm gets weak dependencies we can add a Suggests: Requires: firewalld-filesystem %endif +%endif %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) Requires: rpcbind %else @@ -643,6 +647,9 @@ Obsoletes: %{name}-geo-replication = %{version}-%{release} Requires: python-argparse %endif Requires: pyxattr +%if (0%{?_with_valgrind:1}) +Requires: valgrind +%endif %description server GlusterFS is a distributed file-system capable of scaling to several @@ -668,17 +675,19 @@ export CFLAGS ./autogen.sh && %configure \ %{?_with_cmocka} \ %{?_with_debug} \ + %{?_with_firewalld} \ + %{?_with_gnfs} \ %{?_with_tmpfilesdir} \ + %{?_with_valgrind} \ %{?_without_bd} \ %{?_without_epoll} \ + %{?_without_events} \ %{?_without_fusermount} \ %{?_without_georeplication} \ - %{?_with_firewalld} \ %{?_without_ocf} \ %{?_without_rdma} \ %{?_without_syslog} \ - %{?_without_tiering} \ - %{?_without_events} + %{?_without_tiering} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -914,6 +923,14 @@ else #rpm_script_t context. rm -rf /var/run/glusterd.socket fi +exit 0 + + ##----------------------------------------------------------------------------- +## All %%pre should be placed here and keep them sorted +## +%pre +getent group gluster > /dev/null || groupadd -r gluster +getent passwd gluster > /dev/null || useradd -r -g gluster -d /var/run/gluster -s /sbin/nologin -c "GlusterFS daemons" gluster exit 0 ##----------------------------------------------------------------------------- @@ -1001,6 +1018,7 @@ exit 0 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/error-gen.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so %if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) # RHEL-5 based distributions have a too old openssl @@ -1025,8 +1043,9 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/readdir-ahead.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/nl-cache.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so -%dir %{_localstatedir}/run/gluster +%dir %attr(0775,gluster,gluster) %{_localstatedir}/run/gluster %if 0%{?_tmpfilesdir:1} %{_tmpfilesdir}/gluster.conf %endif @@ -1092,11 +1111,15 @@ exit 0 %endif %endif -%files ganesha -%{_sysconfdir}/ganesha/* -%{_libexecdir}/ganesha/* -%{_prefix}/lib/ocf/resource.d/heartbeat/* -%{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh +%if ( 0%{?_with_gnfs:1} ) +%files gnfs +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/* +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs +%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/nfs-server.vol +%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run +%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid +%endif %if ( 0%{!?_without_georeplication:1} ) %files geo-replication @@ -1171,6 +1194,11 @@ exit 0 # sysconf %config(noreplace) %{_sysconfdir}/glusterfs %exclude %{_sysconfdir}/glusterfs/eventsconfig.json +%exclude %{_sharedstatedir}/glusterd/nfs/nfs-server.vol +%exclude %{_sharedstatedir}/glusterd/nfs/run/nfs.pid +%if ( 0%{?_with_gnfs:1} ) +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/* +%endif %dir %{_localstatedir}/run/gluster %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %if ( 0%{_for_fedora_koji_builds} ) @@ -1202,11 +1230,11 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-server.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/selinux.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/upcall.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/leases.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/decompounder.so @@ -1236,8 +1264,9 @@ exit 0 %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post/S10selinux-label-brick.sh %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file/post @@ -1245,7 +1274,8 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre/S10selinux-del-fcontext.sh %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre @@ -1267,10 +1297,6 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs -%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/nfs-server.vol -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run -%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/quotad @@ -1309,6 +1335,9 @@ exit 0 %endif %changelog +* Mon May 8 2017 Kaleb S. KEITHLEY - 3.11.0-0.1rc0 +- 3.11.0 RC0 + * Thu Mar 30 2017 Kaleb S. KEITHLEY - 3.10.1-1 - 3.10.1 GA diff --git a/sources b/sources index 6ff1e62..42f6a5a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.10.1.tar.gz) = 35acf10d37db7ca9cf7d88e4eabcac4febdccfe15cbe68df86c44042987547f3a56447a1ced5ed238d171efdbcb97dd1fc6917283641bdcd7d476deb37ad0871 +SHA512 (glusterfs-3.11.0rc0.tar.gz) = 6c7d0db5daff85e8fd907ec4d0b583c4c10ba1abfd89b5862d65e93c28a8199bf63a2e08fd6425ebd3b2e780f4984d72ee88eda1e9221e250e99bb4ab02fd8f4 From 6bd56d6b07b03189b0242deb17e3007ae2573d04 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Tue, 9 May 2017 10:08:32 +0200 Subject: [PATCH 146/328] Remove conflicting _localstatedir_/run/gluster The two RPMs 'glusterfs' and 'glusterfs-server' have _localstatedir_/run/gluster in their %files section. Because these are not equal, the installation of 'glusterfs-server' fails (as it pulls in 'glusterfs' too): DEBUG util.py:439: Dependencies resolved. DEBUG util.py:439: ================================================================================ DEBUG util.py:439: Package Arch Version Repository DEBUG util.py:439: Size DEBUG util.py:439: ================================================================================ DEBUG util.py:439: Installing: ... DEBUG util.py:439: glusterfs x86_64 3.11.0-0.1.rc0.fc27 build 575 k DEBUG util.py:439: glusterfs-api x86_64 3.11.0-0.1.rc0.fc27 build 99 k DEBUG util.py:439: glusterfs-api-devel x86_64 3.11.0-0.1.rc0.fc27 build 44 k DEBUG util.py:439: glusterfs-cli x86_64 3.11.0-0.1.rc0.fc27 build 204 k DEBUG util.py:439: glusterfs-client-xlators x86_64 3.11.0-0.1.rc0.fc27 build 844 k DEBUG util.py:439: glusterfs-devel x86_64 3.11.0-0.1.rc0.fc27 build 183 k DEBUG util.py:439: glusterfs-extra-xlators x86_64 3.11.0-0.1.rc0.fc27 build 95 k DEBUG util.py:439: glusterfs-fuse x86_64 3.11.0-0.1.rc0.fc27 build 144 k DEBUG util.py:439: glusterfs-libs x86_64 3.11.0-0.1.rc0.fc27 build 389 k DEBUG util.py:439: glusterfs-server x86_64 3.11.0-0.1.rc0.fc27 build 1.3 M ... DEBUG util.py:439: Running transaction test DEBUG util.py:439: Error: Transaction check error: DEBUG util.py:439: file /var/run/gluster conflicts between attempted installs of glusterfs-server-3.11.0-0.1.rc0.fc27.x86_64 and glusterfs-3.11.0-0.1.rc0.fc27.x86_64 Koshei reported this while rebuilding glusterfs-coreutils: - https://apps.fedoraproject.org/koschei/package/glusterfs-coreutils?collection=f27 - https://koji.fedoraproject.org/koji/taskinfo?taskID=19461192 Signed-off-by: Niels de Vos --- glusterfs.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9ba0501..1f19640 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -176,7 +176,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.11.0 -Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1199,7 +1199,6 @@ exit 0 %if ( 0%{?_with_gnfs:1} ) %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/* %endif -%dir %{_localstatedir}/run/gluster %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd @@ -1335,6 +1334,9 @@ exit 0 %endif %changelog +* Tue May 9 2017 Niels de Vos - 3.11.0-0.2rc0 +- remove conflicting _localstate_/run/gluster dir + * Mon May 8 2017 Kaleb S. KEITHLEY - 3.11.0-0.1rc0 - 3.11.0 RC0 From fede34f90155387c3994e46ac5ae3355bab81ef6 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 9 May 2017 07:40:36 -0400 Subject: [PATCH 147/328] Enable gnfs subpackage --- glusterfs.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 1f19640..354a190 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -46,6 +46,10 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs %{?_with_gnfs:%global _with_gnfs --enable-gnfs} +%if ( 0%{_for_fedora_koji_builds} ) +%global _with_gnfs --enable-gnfs +%endif + # Disable geo-replication on EL5, as its default Python is too old %if ( 0%{?rhel} && 0%{?rhel} < 6 ) %global _without_georeplication --disable-georeplication @@ -176,7 +180,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.11.0 -Release: 0.2%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1334,6 +1338,9 @@ exit 0 %endif %changelog +* Tue May 9 2017 Kaleb S. KEITHLEY - 3.11.0-0.3rc0 +- Enable gnfs subpackage + * Tue May 9 2017 Niels de Vos - 3.11.0-0.2rc0 - remove conflicting _localstate_/run/gluster dir From e0a04e8c04b3004c90caaf8653d36d1bd9f776dc Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 23 May 2017 06:36:27 -0400 Subject: [PATCH 148/328] 3.11.0 RC1 --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 354a190..6fd118c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,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 @@ -180,7 +180,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.11.0 -Release: 0.3%{?prereltag:.%{prereltag}}%{?dist} +Release: 0.4%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1338,6 +1338,9 @@ exit 0 %endif %changelog +* Tue May 23 2017 Kaleb S. KEITHLEY - 3.11.0-0.4rc1 +- 3.11.0 RC1 + * Tue May 9 2017 Kaleb S. KEITHLEY - 3.11.0-0.3rc0 - Enable gnfs subpackage diff --git a/sources b/sources index 42f6a5a..3447818 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.11.0rc0.tar.gz) = 6c7d0db5daff85e8fd907ec4d0b583c4c10ba1abfd89b5862d65e93c28a8199bf63a2e08fd6425ebd3b2e780f4984d72ee88eda1e9221e250e99bb4ab02fd8f4 +SHA512 (glusterfs-3.11.0rc1.tar.gz) = db0be5302d9b5c482ba23fc5992eb6cd2d8a3566b3a64ebf903cfba0879cf1409768a0e240933bde27e1822a0a3ee984133d4a66e0be54a9bf1b504b0a149d91 From 306fed24e2da38ee22e9e0d2d1f883af64f9ce27 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 30 May 2017 09:56:19 -0400 Subject: [PATCH 149/328] 3.11.0 GA --- glusterfs.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 6fd118c..05ee4c1 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag rc1 +# %%global prereltag rc1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -180,7 +180,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.11.0 -Release: 0.4%{?prereltag:.%{prereltag}}%{?dist} +Release: 1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1257,6 +1257,7 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/groups %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/virt %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/metadata-cache + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/gluster-block %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd @@ -1338,6 +1339,9 @@ exit 0 %endif %changelog +* Tue May 30 2017 Kaleb S. KEITHLEY - 3.11.0-1 +- 3.11.0 GA + * Tue May 23 2017 Kaleb S. KEITHLEY - 3.11.0-0.4rc1 - 3.11.0 RC1 diff --git a/sources b/sources index 3447818..a203240 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.11.0rc1.tar.gz) = db0be5302d9b5c482ba23fc5992eb6cd2d8a3566b3a64ebf903cfba0879cf1409768a0e240933bde27e1822a0a3ee984133d4a66e0be54a9bf1b504b0a149d91 +SHA512 (glusterfs-3.11.0.tar.gz) = 939aa4515ff7b62d939d817e05bf38f77d6ed2ace2564c632ca726de13dfcf99623ad414dc142332a784bbd2276d76a3c06c59aec8d468b010ce5711b74d95e4 From 92fa91449e285eb35e6c6b939f4d0d22d154b2f5 Mon Sep 17 00:00:00 2001 From: Anoop C S Date: Tue, 7 Feb 2017 20:06:38 +0530 Subject: [PATCH 150/328] Remove obsolete glusterd service file We use the service file available with upstream tarball. Signed-off-by: Anoop C S --- glusterd.service | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 glusterd.service diff --git a/glusterd.service b/glusterd.service deleted file mode 100644 index d19d962..0000000 --- a/glusterd.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=GlusterFS an clustered file-system server -Wants=glusterfsd.service -After=network.target rpcbind.service - -[Service] -Type=forking -PIDFile=/run/glusterd.pid -LimitNOFILE=65536 -ExecStart=/usr/sbin/glusterd -p /run/glusterd.pid - -[Install] -WantedBy=multi-user.target From e9fccb0003a8e57f7f71cc85c00c52a7fbd92a7b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Sun, 25 Jun 2017 18:47:29 -0400 Subject: [PATCH 151/328] rebuild with userspace-rcu-0.10.0 (liburcu-bp.so.6) --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 05ee4c1..0446360 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -180,7 +180,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.11.0 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1339,6 +1339,9 @@ exit 0 %endif %changelog +* Sun Jun 25 2017 Kaleb S. KEITHLEY - 3.11.0-2 +- rebuild with userspace-rcu-0.10.0 (liburcu-bp.so.6) + * Tue May 30 2017 Kaleb S. KEITHLEY - 3.11.0-1 - 3.11.0 GA From 762498f85f9f4249c8b893d6f64e1d8a1a9bccdc Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 28 Jun 2017 08:44:51 -0400 Subject: [PATCH 152/328] 3.11.1 GA --- glusterfs.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 0446360..8e0175c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -179,8 +179,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.11.0 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.11.1 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1258,6 +1258,7 @@ exit 0 %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/virt %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/metadata-cache %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/gluster-block + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/nl-cache %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd @@ -1339,6 +1340,9 @@ exit 0 %endif %changelog +* Wed Jun 28 2017 Kaleb S. KEITHLEY - 3.11.1-1 +- 3.11.1 GA + * Sun Jun 25 2017 Kaleb S. KEITHLEY - 3.11.0-2 - rebuild with userspace-rcu-0.10.0 (liburcu-bp.so.6) diff --git a/sources b/sources index a203240..4680e6f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.11.0.tar.gz) = 939aa4515ff7b62d939d817e05bf38f77d6ed2ace2564c632ca726de13dfcf99623ad414dc142332a784bbd2276d76a3c06c59aec8d468b010ce5711b74d95e4 +SHA512 (glusterfs-3.11.1.tar.gz) = dc8aa3dd7186a38823dd5f316cc11aafbffc64aa021731e7e07850dff8be2442a461135b9484d0419e33158cbc55573bf954d9e4893a18928318fd5509d4e249 From cf719a5584021fd2f6997e5ddd0b4e5548cd3c5c Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Fri, 7 Jul 2017 12:16:56 +0200 Subject: [PATCH 153/328] Rebuild due to bug in RPM (RHBZ #1468476) Signed-off-by: Igor Gnatenko --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8e0175c..88b8511 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -180,11 +180,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.11.1 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.3 +Release: 0.@PACKAGE_RELEASE@%{?dist}.4 %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base @@ -1340,6 +1340,9 @@ exit 0 %endif %changelog +* Fri Jul 07 2017 Igor Gnatenko - 3.11.1-2 +- Rebuild due to bug in RPM (RHBZ #1468476) + * Wed Jun 28 2017 Kaleb S. KEITHLEY - 3.11.1-1 - 3.11.1 GA From 34353f2c46f34b9a71fcb894f2802f335a715823 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 21 Jul 2017 14:51:25 -0400 Subject: [PATCH 154/328] 3.11.2 GA --- account-server.conf | 16 -- container-server.conf | 18 -- gluster-swift-account-auditor.service | 12 - gluster-swift-account-auditor@.service | 11 - gluster-swift-account-reaper.service | 11 - gluster-swift-account-reaper@.service | 11 - gluster-swift-account-replicator.service | 12 - gluster-swift-account-replicator@.service | 11 - gluster-swift-account.init | 78 ------- gluster-swift-account.service | 11 - gluster-swift-account@.service | 11 - gluster-swift-container-auditor.service | 11 - gluster-swift-container-auditor@.service | 11 - gluster-swift-container-replicator.service | 12 - gluster-swift-container-replicator@.service | 11 - gluster-swift-container-updater.service | 11 - gluster-swift-container-updater@.service | 11 - gluster-swift-container.init | 78 ------- gluster-swift-container.service | 11 - gluster-swift-container@.service | 11 - gluster-swift-functions | 64 ----- gluster-swift-object-auditor.service | 12 - gluster-swift-object-auditor@.service | 11 - gluster-swift-object-expirer.service | 11 - gluster-swift-object-expirer@.service | 11 - gluster-swift-object-replicator.service | 12 - gluster-swift-object-replicator@.service | 11 - gluster-swift-object-updater.service | 11 - gluster-swift-object-updater@.service | 11 - gluster-swift-object.init | 79 ------- gluster-swift-object.service | 11 - gluster-swift-object@.service | 11 - gluster-swift-proxy.init | 79 ------- gluster-swift-proxy.service | 11 - gluster-swift.tmpfs | 6 - glusterd.logrotate | 6 - glusterfs-fuse.logrotate | 6 - glusterfs.logrotate | 6 - glusterfs.spec | 244 ++++++++++++-------- glusterfsd.logrotate | 6 - object-expirer.conf | 17 -- object-server.conf | 16 -- proxy-server.conf | 39 ---- sources | 2 +- swift.conf | 2 - 45 files changed, 148 insertions(+), 916 deletions(-) delete mode 100644 account-server.conf delete mode 100644 container-server.conf delete mode 100644 gluster-swift-account-auditor.service delete mode 100644 gluster-swift-account-auditor@.service delete mode 100644 gluster-swift-account-reaper.service delete mode 100644 gluster-swift-account-reaper@.service delete mode 100644 gluster-swift-account-replicator.service delete mode 100644 gluster-swift-account-replicator@.service delete mode 100755 gluster-swift-account.init delete mode 100644 gluster-swift-account.service delete mode 100644 gluster-swift-account@.service delete mode 100644 gluster-swift-container-auditor.service delete mode 100644 gluster-swift-container-auditor@.service delete mode 100644 gluster-swift-container-replicator.service delete mode 100644 gluster-swift-container-replicator@.service delete mode 100644 gluster-swift-container-updater.service delete mode 100644 gluster-swift-container-updater@.service delete mode 100755 gluster-swift-container.init delete mode 100644 gluster-swift-container.service delete mode 100644 gluster-swift-container@.service delete mode 100644 gluster-swift-functions delete mode 100644 gluster-swift-object-auditor.service delete mode 100644 gluster-swift-object-auditor@.service delete mode 100644 gluster-swift-object-expirer.service delete mode 100644 gluster-swift-object-expirer@.service delete mode 100644 gluster-swift-object-replicator.service delete mode 100644 gluster-swift-object-replicator@.service delete mode 100644 gluster-swift-object-updater.service delete mode 100644 gluster-swift-object-updater@.service delete mode 100755 gluster-swift-object.init delete mode 100644 gluster-swift-object.service delete mode 100644 gluster-swift-object@.service delete mode 100755 gluster-swift-proxy.init delete mode 100644 gluster-swift-proxy.service delete mode 100644 gluster-swift.tmpfs delete mode 100644 glusterd.logrotate delete mode 100644 glusterfs-fuse.logrotate delete mode 100644 glusterfs.logrotate delete mode 100644 glusterfsd.logrotate delete mode 100644 object-expirer.conf delete mode 100644 object-server.conf delete mode 100644 proxy-server.conf delete mode 100644 swift.conf diff --git a/account-server.conf b/account-server.conf deleted file mode 100644 index 1ffca8b..0000000 --- a/account-server.conf +++ /dev/null @@ -1,16 +0,0 @@ -[DEFAULT] -bind_ip = 127.0.0.1 -bind_port = 6012 -workers = 2 - -[pipeline:main] -pipeline = account-server - -[app:account-server] -use = egg:swift#account - -[account-replicator] - -[account-auditor] - -[account-reaper] diff --git a/container-server.conf b/container-server.conf deleted file mode 100644 index fa0de88..0000000 --- a/container-server.conf +++ /dev/null @@ -1,18 +0,0 @@ -[DEFAULT] -bind_ip = 127.0.0.1 -bind_port = 6011 -workers = 2 - -[pipeline:main] -pipeline = container-server - -[app:container-server] -use = egg:swift#container - -[container-replicator] - -[container-updater] - -[container-auditor] - -[container-sync] diff --git a/gluster-swift-account-auditor.service b/gluster-swift-account-auditor.service deleted file mode 100644 index 35413ce..0000000 --- a/gluster-swift-account-auditor.service +++ /dev/null @@ -1,12 +0,0 @@ -# After network.target just because. -[Unit] -Description=OpenStack Object Storage (swift) - Account Auditor -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-auditor /etc/swift/account-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account-auditor@.service b/gluster-swift-account-auditor@.service deleted file mode 100644 index 8b44df9..0000000 --- a/gluster-swift-account-auditor@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Auditor instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-auditor /etc/swift/account-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account-reaper.service b/gluster-swift-account-reaper.service deleted file mode 100644 index dd6fb00..0000000 --- a/gluster-swift-account-reaper.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Reaper -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-reaper /etc/swift/account-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account-reaper@.service b/gluster-swift-account-reaper@.service deleted file mode 100644 index dbd5aa4..0000000 --- a/gluster-swift-account-reaper@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Reaper instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-reaper /etc/swift/account-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account-replicator.service b/gluster-swift-account-replicator.service deleted file mode 100644 index 0cad889..0000000 --- a/gluster-swift-account-replicator.service +++ /dev/null @@ -1,12 +0,0 @@ -# After network.target just so replicator can talk to other nodes. -[Unit] -Description=OpenStack Object Storage (swift) - Account Replicator -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-replicator /etc/swift/account-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account-replicator@.service b/gluster-swift-account-replicator@.service deleted file mode 100644 index 65fbaa3..0000000 --- a/gluster-swift-account-replicator@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Replicator instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-replicator /etc/swift/account-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account.init b/gluster-swift-account.init deleted file mode 100755 index 4f1dbfd..0000000 --- a/gluster-swift-account.init +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh - -### BEGIN INIT INFO -# Provides: gluster-swift-account -# Required-Start: $remote_fs -# Required-Stop: $remote_fs -# Default-Stop: 0 1 6 -# Short-Description: Swift account server -# Description: Account server for swift. -### END INIT INFO - -# gluster-swift-account: swift account server -# -# chkconfig: - 20 80 -# description: Account server for swift. - -. /etc/rc.d/init.d/functions -. /usr/share/gluster-swift/functions - -name="account" - -[ -e "/etc/sysconfig/gluster-swift-$name" ] && . "/etc/sysconfig/gluster-swift-$name" - -lockfile="/var/lock/subsys/gluster-swift-account" - -start() { - swift_action "$name" start - retval=$? - [ $retval -eq 0 ] && touch $lockfile - return $retval -} - -stop() { - swift_action "$name" stop - retval=$? - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -rh_status() { - swift_action "$name" status -} - -rh_status_q() { - rh_status &> /dev/null -} - -case "$1" in - start) - rh_status_q && exit 0 - $1 - ;; - stop) - rh_status_q || exit 0 - $1 - ;; - restart) - $1 - ;; - reload) - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}" - exit 2 -esac -exit $? diff --git a/gluster-swift-account.service b/gluster-swift-account.service deleted file mode 100644 index 782b06a..0000000 --- a/gluster-swift-account.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Server -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-server /etc/swift/account-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account@.service b/gluster-swift-account@.service deleted file mode 100644 index cae48c7..0000000 --- a/gluster-swift-account@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Server instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-server /etc/swift/account-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-auditor.service b/gluster-swift-container-auditor.service deleted file mode 100644 index 6359b91..0000000 --- a/gluster-swift-container-auditor.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Auditor -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-auditor /etc/swift/container-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-auditor@.service b/gluster-swift-container-auditor@.service deleted file mode 100644 index 7c046da..0000000 --- a/gluster-swift-container-auditor@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Auditor instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-auditor /etc/swift/container-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-replicator.service b/gluster-swift-container-replicator.service deleted file mode 100644 index 399f7b4..0000000 --- a/gluster-swift-container-replicator.service +++ /dev/null @@ -1,12 +0,0 @@ -# After network.target just so replicator can talk to other nodes. -[Unit] -Description=OpenStack Object Storage (swift) - Container Replicator -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-replicator /etc/swift/container-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-replicator@.service b/gluster-swift-container-replicator@.service deleted file mode 100644 index 4803503..0000000 --- a/gluster-swift-container-replicator@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Replicator instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-replicator /etc/swift/container-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-updater.service b/gluster-swift-container-updater.service deleted file mode 100644 index 6efc57e..0000000 --- a/gluster-swift-container-updater.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Updater -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-updater /etc/swift/container-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-updater@.service b/gluster-swift-container-updater@.service deleted file mode 100644 index 19f99ff..0000000 --- a/gluster-swift-container-updater@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Updater instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-updater /etc/swift/container-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container.init b/gluster-swift-container.init deleted file mode 100755 index 1d27989..0000000 --- a/gluster-swift-container.init +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh - -### BEGIN INIT INFO -# Provides: gluster-swift-container -# Required-Start: $remote_fs -# Required-Stop: $remote_fs -# Default-Stop: 0 1 6 -# Short-Description: Swift container server -# Description: Container server for swift. -### END INIT INFO - -# gluster-swift-container: swift container server -# -# chkconfig: - 20 80 -# description: Container server for swift. - -. /etc/rc.d/init.d/functions -. /usr/share/gluster-swift/functions - -name="container" - -[ -e "/etc/sysconfig/gluster-swift-$name" ] && . "/etc/sysconfig/gluster-swift-$name" - -lockfile="/var/lock/subsys/gluster-swift-container" - -start() { - swift_action "$name" start - retval=$? - [ $retval -eq 0 ] && touch $lockfile - return $retval -} - -stop() { - swift_action "$name" stop - retval=$? - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -rh_status() { - swift_action "$name" status -} - -rh_status_q() { - rh_status &> /dev/null -} - -case "$1" in - start) - rh_status_q && exit 0 - $1 - ;; - stop) - rh_status_q || exit 0 - $1 - ;; - restart) - $1 - ;; - reload) - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}" - exit 2 -esac -exit $? diff --git a/gluster-swift-container.service b/gluster-swift-container.service deleted file mode 100644 index 6db2b51..0000000 --- a/gluster-swift-container.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Server -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-server /etc/swift/container-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container@.service b/gluster-swift-container@.service deleted file mode 100644 index 4f51e3f..0000000 --- a/gluster-swift-container@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Server instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-server /etc/swift/container-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-functions b/gluster-swift-functions deleted file mode 100644 index 4b69ed8..0000000 --- a/gluster-swift-functions +++ /dev/null @@ -1,64 +0,0 @@ -# vim: filetype=sh - -. /etc/rc.d/init.d/functions - -swift_action() { - retval=0 - server="$1" - call="swift_$2" - - if [[ -f "/etc/swift/$server-server.conf" ]]; then - $call "$server" \ - "/etc/swift/$server-server.conf" \ - "/var/run/swift/$server-server.pid" - [ $? -ne 0 ] && retval=1 - elif [[ -d "/etc/swift/$server-server/" ]]; then - declare -i count=0 - mkdir -p /var/run/swift/$server-server - for name in $( ls "/etc/swift/$server-server/" ); do - $call "$server" \ - "/etc/swift/$server-server/$name" \ - "/var/run/swift/$server-server/$count.pid" - [ $? -ne 0 ] && retval=1 - count=$count+1 - done - fi - return $retval -} - -swift_start() { - name="$1" - long_name="$name-server" - conf_file="$2" - pid_file="$3" - - ulimit -n ${SWIFT_MAX_FILES-32768} - echo -n "Starting swift-$long_name: " - daemon --pidfile $pid_file \ - "/usr/bin/swift-$long_name $conf_file &>/var/log/swift-startup.log & echo \$! > $pid_file" - retval=$? - echo - return $retval -} - -swift_stop() { - name="$1" - long_name="$name-server" - conf_name="$2" - pid_file="$3" - - echo -n "Stopping swift-$long_name: " - killproc -p $pid_file -d ${SWIFT_STOP_DELAY-15} $long_name - retval=$? - echo - return $retval -} - -swift_status() { - name="$1" - long_name="$name-server" - conf_name="$2" - pid_file="$3" - - status -p $pid_file $long_name -} diff --git a/gluster-swift-object-auditor.service b/gluster-swift-object-auditor.service deleted file mode 100644 index 498d53e..0000000 --- a/gluster-swift-object-auditor.service +++ /dev/null @@ -1,12 +0,0 @@ -# After network.target just because. -[Unit] -Description=OpenStack Object Storage (swift) - Object Auditor -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-auditor /etc/swift/object-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-auditor@.service b/gluster-swift-object-auditor@.service deleted file mode 100644 index f5c2537..0000000 --- a/gluster-swift-object-auditor@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Auditor instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-auditor /etc/swift/object-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-expirer.service b/gluster-swift-object-expirer.service deleted file mode 100644 index 1438427..0000000 --- a/gluster-swift-object-expirer.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Expirer -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-expirer /etc/swift/object-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-expirer@.service b/gluster-swift-object-expirer@.service deleted file mode 100644 index e7d03c3..0000000 --- a/gluster-swift-object-expirer@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Expirer instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-expirer /etc/swift/object-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-replicator.service b/gluster-swift-object-replicator.service deleted file mode 100644 index be1d3fa..0000000 --- a/gluster-swift-object-replicator.service +++ /dev/null @@ -1,12 +0,0 @@ -# After network.target just so replicator can talk to other nodes. -[Unit] -Description=OpenStack Object Storage (swift) - Object Replicator -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-replicator /etc/swift/object-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-replicator@.service b/gluster-swift-object-replicator@.service deleted file mode 100644 index 7493398..0000000 --- a/gluster-swift-object-replicator@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Replicator instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-replicator /etc/swift/object-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-updater.service b/gluster-swift-object-updater.service deleted file mode 100644 index d9697a5..0000000 --- a/gluster-swift-object-updater.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Updater -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-updater /etc/swift/object-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-updater@.service b/gluster-swift-object-updater@.service deleted file mode 100644 index 9f223c7..0000000 --- a/gluster-swift-object-updater@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Updater instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-updater /etc/swift/object-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object.init b/gluster-swift-object.init deleted file mode 100755 index f0fe540..0000000 --- a/gluster-swift-object.init +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh - -### BEGIN INIT INFO -# Provides: gluster-swift-object -# Required-Start: $remote_fs -# Required-Stop: $remote_fs -# Default-Stop: 0 1 6 -# Short-Description: Swift object server -# Description: Object server for swift. -### END INIT INFO - -# gluster-swift-object: swift object server -# -# chkconfig: - 20 80 -# description: Object server for swift. - -. /etc/rc.d/init.d/functions -. /usr/share/gluster-swift/functions - -name="object" - -[ -e "/etc/sysconfig/gluster-swift-$name" ] && . "/etc/sysconfig/gluster-swift-$name" - -lockfile="/var/lock/subsys/gluster-swift-object" - -start() { - swift_action "$name" start - retval=$? - [ $retval -eq 0 ] && touch $lockfile - return $retval -} - -stop() { - swift_action "$name" stop - retval=$? - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -rh_status() { - swift_action "$name" status -} - -rh_status_q() { - rh_status &> /dev/null -} - - -case "$1" in - start) - rh_status_q && exit 0 - $1 - ;; - stop) - rh_status_q || exit 0 - $1 - ;; - restart) - $1 - ;; - reload) - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}" - exit 2 -esac -exit $? diff --git a/gluster-swift-object.service b/gluster-swift-object.service deleted file mode 100644 index 1cd5020..0000000 --- a/gluster-swift-object.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Server -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-server /etc/swift/object-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object@.service b/gluster-swift-object@.service deleted file mode 100644 index 172e322..0000000 --- a/gluster-swift-object@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Server instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-server /etc/swift/object-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-proxy.init b/gluster-swift-proxy.init deleted file mode 100755 index 052e05f..0000000 --- a/gluster-swift-proxy.init +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh - -### BEGIN INIT INFO -# Provides: gluster-swift-proxy -# Required-Start: $remote_fs -# Required-Stop: $remote_fs -# Default-Stop: 0 1 6 -# Short-Description: Swift proxy server -# Description: Account server for swift. -### END INIT INFO - -# gluster-swift-proxy: swift proxy server -# -# chkconfig: - 20 80 -# description: Proxy server for swift. - -. /etc/rc.d/init.d/functions -. /usr/share/gluster-swift/functions - -name="proxy" - -[ -e "/etc/sysconfig/gluster-swift-$name" ] && . "/etc/sysconfig/gluster-swift-$name" - -lockfile="/var/lock/subsys/gluster-swift-proxy" - -start() { - swift_action "$name" start - retval=$? - [ $retval -eq 0 ] && touch $lockfile - return $retval -} - -stop() { - swift_action "$name" stop - retval=$? - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -rh_status() { - swift_action "$name" status -} - -rh_status_q() { - rh_status &> /dev/null -} - - -case "$1" in - start) - rh_status_q && exit 0 - $1 - ;; - stop) - rh_status_q || exit 0 - $1 - ;; - restart) - $1 - ;; - reload) - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}" - exit 2 -esac -exit $? diff --git a/gluster-swift-proxy.service b/gluster-swift-proxy.service deleted file mode 100644 index 4078f50..0000000 --- a/gluster-swift-proxy.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Proxy Server -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-proxy-server /etc/swift/proxy-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift.tmpfs b/gluster-swift.tmpfs deleted file mode 100644 index 8f4f5a5..0000000 --- a/gluster-swift.tmpfs +++ /dev/null @@ -1,6 +0,0 @@ -# swift needs a couple of directories in /var/run -d /var/run/swift 0755 swift root -d /var/run/swift/account-server 0755 swift root -d /var/run/swift/container-server 0755 swift root -d /var/run/swift/object-server 0755 swift root -d /var/run/swift/proxy-server 0755 swift root diff --git a/glusterd.logrotate b/glusterd.logrotate deleted file mode 100644 index 3fce646..0000000 --- a/glusterd.logrotate +++ /dev/null @@ -1,6 +0,0 @@ -/var/log/glusterfs/*glusterd.vol.log { - missingok - postrotate - /bin/kill -HUP `cat /var/run/glusterd.pid 2>/dev/null` 2>/dev/null || true - endscript -} diff --git a/glusterfs-fuse.logrotate b/glusterfs-fuse.logrotate deleted file mode 100644 index d96663b..0000000 --- a/glusterfs-fuse.logrotate +++ /dev/null @@ -1,6 +0,0 @@ -/var/log/glusterfs/glusterfs.log { - missingok - postrotate - /usr/bin/killall -HUP gluster 2>/dev/null || true - endscript -} diff --git a/glusterfs.logrotate b/glusterfs.logrotate deleted file mode 100644 index 32b3ef9..0000000 --- a/glusterfs.logrotate +++ /dev/null @@ -1,6 +0,0 @@ -/var/log/glusterfs/glusterfs.log { - missingok - postrotate - /usr/bin/killall -HUP glusterfs 2>/dev/null || true - endscript -} diff --git a/glusterfs.spec b/glusterfs.spec index 88b8511..bcfe14f 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -179,8 +179,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.11.1 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.11.2 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1010,45 +1010,53 @@ exit 0 %if ( 0%{!?_without_rdma:1} ) %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif +%dir %{_datadir}/glusterfs %dir %{_datadir}/glusterfs/scripts -%{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh -%{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh + %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh + %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh # xlators that are needed on the client- and on the server-side +%dir %{_libdir}/glusterfs +%dir %{_libdir}/glusterfs/%{version}%{?prereltag} %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/auth -%{_libdir}/glusterfs/%{version}%{?prereltag}/auth/addr.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/auth/login.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/auth/addr.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/auth/login.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport -%{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/socket.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/socket.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/error-gen.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/error-gen.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so %if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) # RHEL-5 based distributions have a too old openssl -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/crypt.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/crypt.so %endif -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-client.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/worm.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/meta.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-cache.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-threads.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/md-cache.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/open-behind.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/quick-read.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/read-ahead.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/readdir-ahead.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/nl-cache.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-client.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/worm.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/meta.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-cache.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-threads.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/md-cache.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/open-behind.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/quick-read.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/read-ahead.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/readdir-ahead.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/nl-cache.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so %dir %attr(0775,gluster,gluster) %{_localstatedir}/run/gluster %if 0%{?_tmpfilesdir:1} %{_tmpfilesdir}/gluster.conf @@ -1058,12 +1066,15 @@ exit 0 %exclude %{_libdir}/*.so # libgfapi files %{_libdir}/libgfapi.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api.so %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc %{_libdir}/libgfapi.so -%{_includedir}/glusterfs/api/* +%dir %{_includedir}/glusterfs +%dir %{_includedir}/glusterfs/api + %{_includedir}/glusterfs/api/* %files cli %{_sbindir}/gluster @@ -1071,40 +1082,57 @@ exit 0 %{_sysconfdir}/bash_completion.d/gluster %files client-xlators -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so %files devel %dir %{_includedir}/glusterfs -%{_includedir}/glusterfs/* + %{_includedir}/glusterfs/* %exclude %{_includedir}/glusterfs/api %exclude %{_libdir}/libgfapi.so %{_libdir}/*.so # Glupy Translator examples -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.* + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* %{_libdir}/pkgconfig/libgfchangelog.pc %if ( 0%{!?_without_tiering:1} ) %{_libdir}/pkgconfig/libgfdb.pc %endif %files extra-xlators -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features/template.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features/template.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so # Glupy Python files -%{python2_sitelib}/gluster/glupy/* +%dir %{python2_sitelib}/gluster +%dir %{python2_sitelib}/gluster/glupy + %{python2_sitelib}/gluster/glupy/* %files fuse # glusterfs is a symlink to glusterfsd, -server depends on -fuse. %{_sbindir}/glusterfs %{_sbindir}/glusterfsd %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so /sbin/mount.glusterfs %if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs @@ -1117,8 +1145,9 @@ exit 0 %if ( 0%{?_with_gnfs:1} ) %files gnfs +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/* + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/* %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/nfs-server.vol %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run @@ -1131,15 +1160,18 @@ exit 0 %{_sbindir}/gfind_missing_files %{_sbindir}/gluster-mountbroker -%{_libexecdir}/glusterfs/gsyncd -%{_libexecdir}/glusterfs/python/syncdaemon/* -%{_libexecdir}/glusterfs/gverify.sh -%{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh -%{_libexecdir}/glusterfs/peer_gsec_create -%{_libexecdir}/glusterfs/peer_mountbroker -%{_libexecdir}/glusterfs/peer_mountbroker.py* -%{_libexecdir}/glusterfs/gfind_missing_files -%{_libexecdir}/glusterfs/peer_georep-sshkey.py* +%dir %{_libexecdir}/glusterfs +%dir %{_libexecdir}/glusterfs/python +%dir %{_libexecdir}/glusterfs/python/syncdaemon + %{_libexecdir}/glusterfs/gsyncd + %{_libexecdir}/glusterfs/python/syncdaemon/* + %{_libexecdir}/glusterfs/gverify.sh + %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh + %{_libexecdir}/glusterfs/peer_gsec_create + %{_libexecdir}/glusterfs/peer_mountbroker + %{_libexecdir}/glusterfs/peer_mountbroker.py* + %{_libexecdir}/glusterfs/gfind_missing_files + %{_libexecdir}/glusterfs/peer_georep-sshkey.py* %{_sbindir}/gluster-georep-sshkey @@ -1150,12 +1182,14 @@ exit 0 %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre -%{_datadir}/glusterfs/scripts/get-gfid.sh -%{_datadir}/glusterfs/scripts/slave-upgrade.sh -%{_datadir}/glusterfs/scripts/gsync-upgrade.sh -%{_datadir}/glusterfs/scripts/generate-gfid-file.sh -%{_datadir}/glusterfs/scripts/gsync-sync-gfid -%{_datadir}/glusterfs/scripts/schedule_georep.py* +%dir %{_datadir}/glusterfs +%dir %{_datadir}/glusterfs/scripts + %{_datadir}/glusterfs/scripts/get-gfid.sh + %{_datadir}/glusterfs/scripts/slave-upgrade.sh + %{_datadir}/glusterfs/scripts/gsync-upgrade.sh + %{_datadir}/glusterfs/scripts/generate-gfid-file.sh + %{_datadir}/glusterfs/scripts/gsync-sync-gfid + %{_datadir}/glusterfs/scripts/schedule_georep.py* %endif %files libs @@ -1170,20 +1204,22 @@ exit 0 %files -n python2-gluster # introducing glusterfs module in site packages. # so that all other gluster submodules can reside in the same namespace. -%{python2_sitelib}/gluster/__init__.* -%{python2_sitelib}/gluster/cliutils +%dir %{python2_sitelib}/gluster + %{python2_sitelib}/gluster/__init__.* + %{python2_sitelib}/gluster/cliutils %if ( 0%{!?_without_rdma:1} ) %files rdma -%{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport + %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif %if ( ! 0%{_for_fedora_koji_builds} ) %files regression-tests -%{_prefix}/share/glusterfs/run-tests.sh -%{_prefix}/share/glusterfs/tests -%{_datadir}/glusterfs/run-tests.sh -%{_datadir}/glusterfs/tests +%dir %{_prefix}/share/glusterfs + %{_prefix}/share/glusterfs/run-tests.sh +%dir %{_prefix}/share/glusterfs/tests + %{_datadir}/glusterfs/tests/* %exclude %{_datadir}/glusterfs/tests/vagrant %endif @@ -1221,29 +1257,34 @@ exit 0 # {_sbindir}/glusterfsd is the actual binary, but glusterfs (client) is a # symlink. The binary itself (and symlink) are part of the glusterfs-fuse # package, because glusterfs-server depends on that anyway. -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/arbiter.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bit-rot.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bitrot-stub.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/arbiter.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bit-rot.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bitrot-stub.so %if ( 0%{!?_without_tiering:1} ) -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so -%endif -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/index.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-server.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/selinux.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/upcall.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/leases.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/decompounder.so -%if ( 0%{!?_without_tiering:1} ) -%{_libdir}/libgfdb.so.* + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so + %{_libdir}/libgfdb.so.* %endif + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/index.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-server.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota* + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/selinux.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/upcall.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/leases.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt/glusterd.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/bd.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/posix.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/decompounder.so # snap_scheduler %{_sbindir}/snap_scheduler.py @@ -1311,12 +1352,15 @@ exit 0 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols # Extra utility script +%dir %{_datadir}/glusterfs +%dir %{_datadir}/glusterfs/scripts %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh # Incrementalapi -%{_libexecdir}/glusterfs/glusterfind +%dir %{_libexecdir}/glusterfs + %{_libexecdir}/glusterfs/glusterfind + %{_libexecdir}/glusterfs/peer_add_secret_pub %{_bindir}/glusterfind -%{_libexecdir}/glusterfs/peer_add_secret_pub %if ( 0%{?_with_firewalld:1} ) %{_prefix}/lib/firewalld/services/glusterfs.xml @@ -1326,9 +1370,12 @@ exit 0 %if ( 0%{!?_without_events:1} ) %files events %config(noreplace) %{_sysconfdir}/glusterfs/eventsconfig.json -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/events -%{_libexecdir}/glusterfs/events -%{_libexecdir}/glusterfs/peer_eventsapi.py* +%dir %{_sharedstatedir}/glusterd +%dir %{_sharedstatedir}/glusterd/events +%dir %{_libexecdir}/glusterfs +%dir %{_libexecdir}/glusterfs/events + %{_libexecdir}/glusterfs/events/* + %{_libexecdir}/glusterfs/peer_eventsapi.py* %{_sbindir}/glustereventsd %{_sbindir}/gluster-eventsapi %{_datadir}/glusterfs/scripts/eventsdash.py* @@ -1340,6 +1387,9 @@ exit 0 %endif %changelog +* Fri Jul 21 2017 Kaleb S. KEITHLEY - 3.11.2-1 +- 3.11.2 GA + * Fri Jul 07 2017 Igor Gnatenko - 3.11.1-2 - Rebuild due to bug in RPM (RHBZ #1468476) @@ -1438,7 +1488,7 @@ exit 0 - 3.8.0 RC1 * Wed Apr 27 2016 Kaleb S. KEITHLEY - 3.7.11-2 -- %postun libs on RHEL6 w/o firewalld +- %%postun libs on RHEL6 w/o firewalld * Mon Apr 18 2016 Kaleb S. KEITHLEY - 3.7.11-1 - GlusterFS 3.7.11 GA diff --git a/glusterfsd.logrotate b/glusterfsd.logrotate deleted file mode 100644 index 81d1abc..0000000 --- a/glusterfsd.logrotate +++ /dev/null @@ -1,6 +0,0 @@ -/var/log/glusterfs/*glusterfsd.log /var/log/glusterfs/bricks/*.log { - missingok - postrotate - /bin/kill -HUP `cat /var/run/glusterfsd.pid 2>/dev/null` 2>/dev/null || true - endscript -} diff --git a/object-expirer.conf b/object-expirer.conf deleted file mode 100644 index b75963c..0000000 --- a/object-expirer.conf +++ /dev/null @@ -1,17 +0,0 @@ -[DEFAULT] - -[object-expirer] -# auto_create_account_prefix = . - -[pipeline:main] -pipeline = catch_errors cache proxy-server - -[app:proxy-server] -use = egg:swift#proxy - -[filter:cache] -use = egg:swift#memcache -memcache_servers = 127.0.0.1:11211 - -[filter:catch_errors] -use = egg:swift#catch_errors diff --git a/object-server.conf b/object-server.conf deleted file mode 100644 index 3a3d9be..0000000 --- a/object-server.conf +++ /dev/null @@ -1,16 +0,0 @@ -[DEFAULT] -bind_ip = 127.0.0.1 -bind_port = 6010 -workers = 3 - -[pipeline:main] -pipeline = object-server - -[app:object-server] -use = egg:swift#object - -[object-replicator] - -[object-updater] - -[object-auditor] diff --git a/proxy-server.conf b/proxy-server.conf deleted file mode 100644 index 3e4b88a..0000000 --- a/proxy-server.conf +++ /dev/null @@ -1,39 +0,0 @@ -[DEFAULT] -bind_port = 8080 -workers = 8 -user = swift - -[pipeline:main] -pipeline = healthcheck cache authtoken keystone proxy-server - -[app:proxy-server] -use = egg:swift#proxy -allow_account_management = true -account_autocreate = true - -[filter:cache] -use = egg:swift#memcache -memcache_servers = 127.0.0.1:11211 - -[filter:catch_errors] -use = egg:swift#catch_errors - -[filter:healthcheck] -use = egg:swift#healthcheck - -[filter:keystone] -paste.filter_factory = keystone.middleware.swift_auth:filter_factory -operator_roles = admin, SwiftOperator -is_admin = true -cache = swift.cache - -[filter:authtoken] -paste.filter_factory = keystone.middleware.auth_token:filter_factory -admin_tenant_name = %SERVICE_TENANT_NAME% -admin_user = %SERVICE_USER% -admin_password = %SERVICE_PASSWORD% -auth_host = 127.0.0.1 -auth_port = 35357 -auth_protocol = http -signing_dir = /tmp/keystone-signing-swift - diff --git a/sources b/sources index 4680e6f..85cbf9e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.11.1.tar.gz) = dc8aa3dd7186a38823dd5f316cc11aafbffc64aa021731e7e07850dff8be2442a461135b9484d0419e33158cbc55573bf954d9e4893a18928318fd5509d4e249 +SHA512 (glusterfs-3.11.2.tar.gz) = 98dec5d50f17adcb37a928172b84711b4214cab869141c777eb78415fe997924c9d6ba5fe871e94d2dc4eabf23f8a125643fa4c16af1565553e15092b5c26c88 diff --git a/swift.conf b/swift.conf deleted file mode 100644 index adbd96f..0000000 --- a/swift.conf +++ /dev/null @@ -1,2 +0,0 @@ -[swift-hash] -swift_hash_path_suffix = %SWIFT_HASH_PATH_SUFFIX% From cb3c8223c5adcad1792f154765b8b16fa89b1fd9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 26 Jul 2017 10:33:14 +0000 Subject: [PATCH 155/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index bcfe14f..c6fd53f 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -180,11 +180,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.11.2 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.4 +Release: 0.@PACKAGE_RELEASE@%{?dist}.5 %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base @@ -1387,6 +1387,9 @@ exit 0 %endif %changelog +* Wed Jul 26 2017 Fedora Release Engineering - 3.11.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + * Fri Jul 21 2017 Kaleb S. KEITHLEY - 3.11.2-1 - 3.11.2 GA From 231c60bd0a81d871ebd0bb0acae18cbc6b594927 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 2 Aug 2017 21:56:36 +0000 Subject: [PATCH 156/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index c6fd53f..a15c948 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -180,11 +180,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.11.2 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Release: 3%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.5 +Release: 0.@PACKAGE_RELEASE@%{?dist}.6 %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base @@ -1387,6 +1387,9 @@ exit 0 %endif %changelog +* Wed Aug 02 2017 Fedora Release Engineering - 3.11.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + * Wed Jul 26 2017 Fedora Release Engineering - 3.11.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild From 69821efcd606e72b8c07aa293730de199a4c283c Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 21 Aug 2017 11:00:54 -0400 Subject: [PATCH 157/328] 3.11.3 GA --- glusterfs.spec | 30 ++++++++++++++++++------------ sources | 2 +- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index a15c948..ef82d30 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -111,6 +111,9 @@ %if ( 0%{?rhel} && 0%{?rhel} < 7 ) %{!?python2_sitelib: %global python2_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %{!?python2_sitearch: %global python2_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%global _rundir %{_localstatedir}/run +%else +%global _rundir /run %endif %if ( 0%{?_with_systemd:1} ) @@ -179,12 +182,12 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.11.2 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.11.3 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.6 +Release: 0.@PACKAGE_RELEASE@%{?dist}.5 %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base @@ -228,7 +231,7 @@ BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel BuildRequires: libaio-devel libacl-devel BuildRequires: python2-devel -%if ( 0%{?rhel} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif BuildRequires: userspace-rcu-devel >= 0.7 @@ -404,7 +407,7 @@ Group: Applications/File # site-packages area Requires: python2-gluster = %{version}-%{release} Requires: python2 -%if ( 0%{?rhel} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif @@ -453,7 +456,7 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} Requires: python2 Requires: python-prettytable -%if ( 0%{?rhel} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif Requires: python2-gluster = %{version}-%{release} @@ -731,7 +734,7 @@ install -D -p -m 0755 %{SOURCE6} \ mkdir -p %{buildroot}%{_localstatedir}/log/glusterd mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd -mkdir -p %{buildroot}%{_localstatedir}/run/gluster +mkdir -p %{buildroot}%{_rundir}/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete @@ -915,7 +918,7 @@ if [ $? -eq 0 ]; then #Cleaning leftover glusterd socket file which is created by glusterd in #rpm_script_t context. - rm -rf /var/run/glusterd.socket + rm -f %{_rundir}/glusterd.socket # glusterd _was_ running, we killed it, it exited after *.upgrade=on, # so start it again @@ -925,7 +928,7 @@ else #Cleaning leftover glusterd socket file which is created by glusterd in #rpm_script_t context. - rm -rf /var/run/glusterd.socket + rm -f %{_rundir}/glusterd.socket fi exit 0 @@ -934,7 +937,7 @@ exit 0 ## %pre getent group gluster > /dev/null || groupadd -r gluster -getent passwd gluster > /dev/null || useradd -r -g gluster -d /var/run/gluster -s /sbin/nologin -c "GlusterFS daemons" gluster +getent passwd gluster > /dev/null || useradd -r -g gluster -d %{_rundir}/gluster -s /sbin/nologin -c "GlusterFS daemons" gluster exit 0 ##----------------------------------------------------------------------------- @@ -1057,7 +1060,7 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/nl-cache.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so -%dir %attr(0775,gluster,gluster) %{_localstatedir}/run/gluster +%dir %attr(0775,gluster,gluster) %{_rundir}/gluster %if 0%{?_tmpfilesdir:1} %{_tmpfilesdir}/gluster.conf %endif @@ -1343,7 +1346,7 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh -%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options +%config(noreplace) %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/quotad %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/scrub @@ -1387,6 +1390,9 @@ exit 0 %endif %changelog +* Mon Aug 21 2017 Kaleb S. KEITHLEY - 3.11.3-1 +- 3.11.3 GA + * Wed Aug 02 2017 Fedora Release Engineering - 3.11.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild diff --git a/sources b/sources index 85cbf9e..ad79895 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.11.2.tar.gz) = 98dec5d50f17adcb37a928172b84711b4214cab869141c777eb78415fe997924c9d6ba5fe871e94d2dc4eabf23f8a125643fa4c16af1565553e15092b5c26c88 +SHA512 (glusterfs-3.11.3.tar.gz) = a4ef8717873283fce6bc21ef5c6950e92706b473c1148e7d3e82bf57b348d70bcb3c8e6744aa3aed3a4f036869383d99cd29c21bd7b67b478a958ea374165eb6 From 81a5d672fc5107a48b81cae3dc5d5b65f491169a Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 21 Aug 2017 11:31:27 -0400 Subject: [PATCH 158/328] 3.11.3 GA --- glusterfs.spec | 30 ++++++++++++++++++------------ sources | 2 +- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index a15c948..ef82d30 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -111,6 +111,9 @@ %if ( 0%{?rhel} && 0%{?rhel} < 7 ) %{!?python2_sitelib: %global python2_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %{!?python2_sitearch: %global python2_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%global _rundir %{_localstatedir}/run +%else +%global _rundir /run %endif %if ( 0%{?_with_systemd:1} ) @@ -179,12 +182,12 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.11.2 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.11.3 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.6 +Release: 0.@PACKAGE_RELEASE@%{?dist}.5 %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base @@ -228,7 +231,7 @@ BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel BuildRequires: libaio-devel libacl-devel BuildRequires: python2-devel -%if ( 0%{?rhel} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif BuildRequires: userspace-rcu-devel >= 0.7 @@ -404,7 +407,7 @@ Group: Applications/File # site-packages area Requires: python2-gluster = %{version}-%{release} Requires: python2 -%if ( 0%{?rhel} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif @@ -453,7 +456,7 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} Requires: python2 Requires: python-prettytable -%if ( 0%{?rhel} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif Requires: python2-gluster = %{version}-%{release} @@ -731,7 +734,7 @@ install -D -p -m 0755 %{SOURCE6} \ mkdir -p %{buildroot}%{_localstatedir}/log/glusterd mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd -mkdir -p %{buildroot}%{_localstatedir}/run/gluster +mkdir -p %{buildroot}%{_rundir}/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete @@ -915,7 +918,7 @@ if [ $? -eq 0 ]; then #Cleaning leftover glusterd socket file which is created by glusterd in #rpm_script_t context. - rm -rf /var/run/glusterd.socket + rm -f %{_rundir}/glusterd.socket # glusterd _was_ running, we killed it, it exited after *.upgrade=on, # so start it again @@ -925,7 +928,7 @@ else #Cleaning leftover glusterd socket file which is created by glusterd in #rpm_script_t context. - rm -rf /var/run/glusterd.socket + rm -f %{_rundir}/glusterd.socket fi exit 0 @@ -934,7 +937,7 @@ exit 0 ## %pre getent group gluster > /dev/null || groupadd -r gluster -getent passwd gluster > /dev/null || useradd -r -g gluster -d /var/run/gluster -s /sbin/nologin -c "GlusterFS daemons" gluster +getent passwd gluster > /dev/null || useradd -r -g gluster -d %{_rundir}/gluster -s /sbin/nologin -c "GlusterFS daemons" gluster exit 0 ##----------------------------------------------------------------------------- @@ -1057,7 +1060,7 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/nl-cache.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so -%dir %attr(0775,gluster,gluster) %{_localstatedir}/run/gluster +%dir %attr(0775,gluster,gluster) %{_rundir}/gluster %if 0%{?_tmpfilesdir:1} %{_tmpfilesdir}/gluster.conf %endif @@ -1343,7 +1346,7 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh -%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options +%config(noreplace) %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/quotad %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/scrub @@ -1387,6 +1390,9 @@ exit 0 %endif %changelog +* Mon Aug 21 2017 Kaleb S. KEITHLEY - 3.11.3-1 +- 3.11.3 GA + * Wed Aug 02 2017 Fedora Release Engineering - 3.11.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild diff --git a/sources b/sources index 85cbf9e..ad79895 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.11.2.tar.gz) = 98dec5d50f17adcb37a928172b84711b4214cab869141c777eb78415fe997924c9d6ba5fe871e94d2dc4eabf23f8a125643fa4c16af1565553e15092b5c26c88 +SHA512 (glusterfs-3.11.3.tar.gz) = a4ef8717873283fce6bc21ef5c6950e92706b473c1148e7d3e82bf57b348d70bcb3c8e6744aa3aed3a4f036869383d99cd29c21bd7b67b478a958ea374165eb6 From 03fdb92c9c7e9c2d71fd4a1f199c4b169b5c95de Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 22 Aug 2017 08:36:06 -0400 Subject: [PATCH 159/328] 3.11.3 libibverbs-devel, librdmacm-devel -> rdma-core-devel --- glusterfs.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index ef82d30..dd61e4b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -26,7 +26,7 @@ %{?_without_rdma:%global _without_rdma --disable-ibverbs} # No RDMA Support on s390(x) -%ifarch s390 s390x +%ifarch s390 s390x armv7hl %global _without_rdma --disable-ibverbs %endif @@ -183,7 +183,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.11.3 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -545,8 +545,12 @@ Obsoletes: python-gluster < 3.10 %package rdma Summary: GlusterFS rdma support for ib-verbs Group: Applications/File +%if ( 0%{?fedora} && 0%{?fedora} > 26 ) +BuildRequires: rdma-core-devel +%else BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel >= 1.0.15 +%endif Requires: %{name} = %{version}-%{release} %description rdma @@ -1390,6 +1394,9 @@ exit 0 %endif %changelog +* Tue Aug 22 2017 Kaleb S. KEITHLEY - 3.11.3-2 +- 3.11.3 libibverbs-devel, librdmacm-devel -> rdma-core-devel + * Mon Aug 21 2017 Kaleb S. KEITHLEY - 3.11.3-1 - 3.11.3 GA From 0c05a6df7d4bda9d75ca43f811d0b3406cb4bd67 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 22 Aug 2017 09:06:50 -0400 Subject: [PATCH 160/328] 3.11.3 libibverbs-devel, librdmacm-devel -> rdma-core-devel --- glusterfs.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index ef82d30..dd61e4b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -26,7 +26,7 @@ %{?_without_rdma:%global _without_rdma --disable-ibverbs} # No RDMA Support on s390(x) -%ifarch s390 s390x +%ifarch s390 s390x armv7hl %global _without_rdma --disable-ibverbs %endif @@ -183,7 +183,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.11.3 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -545,8 +545,12 @@ Obsoletes: python-gluster < 3.10 %package rdma Summary: GlusterFS rdma support for ib-verbs Group: Applications/File +%if ( 0%{?fedora} && 0%{?fedora} > 26 ) +BuildRequires: rdma-core-devel +%else BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel >= 1.0.15 +%endif Requires: %{name} = %{version}-%{release} %description rdma @@ -1390,6 +1394,9 @@ exit 0 %endif %changelog +* Tue Aug 22 2017 Kaleb S. KEITHLEY - 3.11.3-2 +- 3.11.3 libibverbs-devel, librdmacm-devel -> rdma-core-devel + * Mon Aug 21 2017 Kaleb S. KEITHLEY - 3.11.3-1 - 3.11.3 GA From 7d3834b71ce9ea03a9c06e5fbaa2b9369cefb1ba Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Wed, 23 Aug 2017 12:04:52 -0700 Subject: [PATCH 161/328] Use %{arm} macro rather than just armv7hl --- glusterfs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index dd61e4b..ce21841 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -26,7 +26,7 @@ %{?_without_rdma:%global _without_rdma --disable-ibverbs} # No RDMA Support on s390(x) -%ifarch s390 s390x armv7hl +%ifarch s390 s390x %{arm} %global _without_rdma --disable-ibverbs %endif From 8d7270b3d4314cb96335a653253f7bd56f753c80 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 30 Aug 2017 10:01:16 -0400 Subject: [PATCH 162/328] 3.12.0 GA --- glusterfs.spec | 28 +++++++++++++++++----------- sources | 2 +- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index ce21841..3f3a749 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -112,8 +112,6 @@ %{!?python2_sitelib: %global python2_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %{!?python2_sitearch: %global python2_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %global _rundir %{_localstatedir}/run -%else -%global _rundir /run %endif %if ( 0%{?_with_systemd:1} ) @@ -131,6 +129,7 @@ %global _init_glusterd %{_unitdir}/glusterd.service %global _init_glusterfsd %{_unitdir}/glusterfsd.service %global _init_glustereventsd %{_unitdir}/glustereventsd.service +%global _init_glusterfssharedstorage %{_unitdir}/glusterfssharedstorage.service %else %global _init_enable() /sbin/chkconfig --add %1 ; %global _init_disable() /sbin/chkconfig --del %1 ; @@ -182,8 +181,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.11.3 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.12.0 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1089,10 +1088,8 @@ exit 0 %{_sysconfdir}/bash_completion.d/gluster %files client-xlators -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so @@ -1104,7 +1101,6 @@ exit 0 %exclude %{_libdir}/libgfapi.so %{_libdir}/*.so # Glupy Translator examples -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.* @@ -1116,7 +1112,6 @@ exit 0 %endif %files extra-xlators -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features @@ -1137,7 +1132,6 @@ exit 0 %{_sbindir}/glusterfs %{_sbindir}/glusterfsd %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so /sbin/mount.glusterfs @@ -1152,7 +1146,6 @@ exit 0 %if ( 0%{?_with_gnfs:1} ) %files gnfs -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/* %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs @@ -1256,15 +1249,22 @@ exit 0 %if ( 0%{_for_fedora_koji_builds} ) %_init_glusterfsd %endif +%if ( 0%{?_with_systemd:1} ) +%_init_glusterfssharedstorage +%endif # binaries %{_sbindir}/glusterd %{_sbindir}/glfsheal %{_sbindir}/gf_attach +%{_sbindir}/gluster-setgfid2path # {_sbindir}/glusterfsd is the actual binary, but glusterfs (client) is a # symlink. The binary itself (and symlink) are part of the glusterfs-fuse # package, because glusterfs-server depends on that anyway. -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator + +# Manpages +%{_mandir}/man8/gluster-setgfid2path.8* + %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/arbiter.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bit-rot.so @@ -1362,6 +1362,9 @@ exit 0 %dir %{_datadir}/glusterfs %dir %{_datadir}/glusterfs/scripts %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh +%if ( 0%{?_with_systemd:1} ) + %{_libexecdir}/glusterfs/mount-shared-storage.sh +%endif # Incrementalapi %dir %{_libexecdir}/glusterfs @@ -1394,6 +1397,9 @@ exit 0 %endif %changelog +* Wed Aug 30 2017 Kaleb S. KEITHLEY - 3.12.0-1 +- 3.12.0 GA + * Tue Aug 22 2017 Kaleb S. KEITHLEY - 3.11.3-2 - 3.11.3 libibverbs-devel, librdmacm-devel -> rdma-core-devel diff --git a/sources b/sources index ad79895..9bb5743 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.11.3.tar.gz) = a4ef8717873283fce6bc21ef5c6950e92706b473c1148e7d3e82bf57b348d70bcb3c8e6744aa3aed3a4f036869383d99cd29c21bd7b67b478a958ea374165eb6 +SHA512 (glusterfs-3.12.0.tar.gz) = 49d8925f3a59e2fce561d1dede3807f2df3822377b6c06c60f95dd8e2798335dc552068341a3d5e6152f7f98992fb7dc7df9634db59c6575327de57f6bf20e47 From b03a4df06fee16b898d8f564abdd12626843c54b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 11 Sep 2017 13:44:42 -0400 Subject: [PATCH 163/328] 3.12.1 GA --- glusterfs.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 3f3a749..cf14d26 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -181,7 +181,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.12.0 +Version: 3.12.1 Release: 1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1397,6 +1397,9 @@ exit 0 %endif %changelog +* Mon Sep 11 2017 Kaleb S. KEITHLEY - 3.12.1-1 +- 3.12.1 GA + * Wed Aug 30 2017 Kaleb S. KEITHLEY - 3.12.0-1 - 3.12.0 GA diff --git a/sources b/sources index 9bb5743..38fe202 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.12.0.tar.gz) = 49d8925f3a59e2fce561d1dede3807f2df3822377b6c06c60f95dd8e2798335dc552068341a3d5e6152f7f98992fb7dc7df9634db59c6575327de57f6bf20e47 +SHA512 (glusterfs-3.12.1.tar.gz) = f142572ae4ad4f416e5d3e699f48d4dbb5674e0ca5c15a096a3b535fb2058a9294e3161f13a5f4e9479f630f331fc067b610dd67493345aaacd0f095c2e25b60 From d042eba18261a4ff97cf7e55ecd3345ff48f78da Mon Sep 17 00:00:00 2001 From: Anoop C S Date: Fri, 25 Aug 2017 09:45:39 +0530 Subject: [PATCH 164/328] Add README from upstream --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1cab5c1 --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# Gluster + Gluster is a software defined distributed storage that can scale to several + petabytes. It provides interfaces for object, block and file storage. + +## Development + Contributions to gluster in the form of patches and new feature additions can + be made by following steps outlined at [Developers Guide](https://gluster.readthedocs.io/en/latest/Developer-guide/Developers-Index/#contributing-to-the-gluster-community). + +## Documentation + The Gluster documentation can be found at [Gluster Docs](http://gluster.readthedocs.io/en/latest). + +## Deployment + Quick instructions to build and install can be found in [INSTALL](INSTALL) file. + +## Maintainers + The list of Gluster maintainers is available in [MAINTAINERS](MAINTAINERS) file. + +## License + Gluster is dual licensed under [GPLV2](COPYING-GPLV2) and [LGPLV3+](COPYING-LGPLV3). + + Please visit the [Gluster Home Page](http://www.gluster.org/) to find out more about Gluster. From e9d8bde8fe19c5d309479ad55e556a6ecd631e0e Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 28 Sep 2017 11:32:34 -0400 Subject: [PATCH 165/328] 3.12.1 bz 1495858 --- 0001-cli_src_cli-cmd-parser.c.patch | 71 +++++++++++++++++++++++++++++ glusterfs.spec | 7 ++- 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 0001-cli_src_cli-cmd-parser.c.patch diff --git a/0001-cli_src_cli-cmd-parser.c.patch b/0001-cli_src_cli-cmd-parser.c.patch new file mode 100644 index 0000000..868e56f --- /dev/null +++ b/0001-cli_src_cli-cmd-parser.c.patch @@ -0,0 +1,71 @@ +From 2562b1c40d790da00d218f8df30bf190f00dd41c Mon Sep 17 00:00:00 2001 +From: Niels de Vos +Date: Tue, 26 Sep 2017 14:51:27 +0200 +Subject: [PATCH] cli: Bypass the confirmation question creating replica 2 + volume with force + +When a replica 2 volume is created with the force option, +remove the warning message with the confirmation question, +whether they want to continue or not and Succeed the +volume creation. + +Cherry picked from commit f449e53df7c07301b495b4ff688d165026dfd2d0: +> Change-Id: I4f3306659fa4cbf53dd8d45269a32d19ce86ac88 +> BUG: 1493893 +> Signed-off-by: karthik-us + +While backporting the URL for the documentation has been adjusted as +well. This comes from commit eb2f1ab4cd which also corrects other URLs +(those are not included in this backport). + +Change-Id: I4f3306659fa4cbf53dd8d45269a32d19ce86ac88 +BUG: 1495858 +Signed-off-by: Niels de Vos +--- + cli/src/cli-cmd-parser.c | 30 +++++++++++++++++------------- + 1 file changed, 17 insertions(+), 13 deletions(-) + +diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c +index 984ce5bba..a7ebd5ce3 100644 +--- a/cli/src/cli-cmd-parser.c ++++ b/cli/src/cli-cmd-parser.c +@@ -529,19 +529,23 @@ cli_cmd_volume_create_parse (struct cli_state *state, const char **words, + goto out; + } + if (replica_count == 2) { +- question = "Replica 2 volumes are prone to " +- "split-brain. Use Arbiter or Replica" +- " 3 to avoid this. See: " +- " https://gluster.readthedocs.io/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/." +- "\nDo you still want to continue?\n"; +- answer = cli_cmd_get_confirmation (state, +- question); +- if (GF_ANSWER_NO == answer) { +- gf_log ("cli", GF_LOG_ERROR, +- "Volume create cancelled, " +- "exiting"); +- ret = -1; +- goto out; ++ if (strcmp (words[wordcount - 1], "force")) { ++ question = "Replica 2 volumes are prone" ++ " to split-brain. Use " ++ "Arbiter or Replica 3 to " ++ "avoid this. See: " ++ "http://docs.gluster.org/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/." ++ "\nDo you still want to " ++ "continue?\n"; ++ answer = cli_cmd_get_confirmation (state, ++ question); ++ if (GF_ANSWER_NO == answer) { ++ gf_log ("cli", GF_LOG_ERROR, ++ "Volume create " ++ "cancelled, exiting"); ++ ret = -1; ++ goto out; ++ } + } + } + ret = dict_set_int32 (dict, "replica-count", replica_count); +-- +2.13.5 + diff --git a/glusterfs.spec b/glusterfs.spec index cf14d26..adc0d94 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -182,7 +182,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.12.1 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -201,6 +201,7 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif +Patch0: 0001-cli_src_cli-cmd-parser.c.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -675,6 +676,7 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} +%patch0 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -1397,6 +1399,9 @@ exit 0 %endif %changelog +* Thu Sep 28 2017 Kaleb S. KEITHLEY - 3.12.1-2 +- 3.12.1 bz 1495858 + * Mon Sep 11 2017 Kaleb S. KEITHLEY - 3.12.1-1 - 3.12.1 GA From 1fb1541133a270b4367e5cb85eb327b5ae34e97a Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 13 Oct 2017 08:13:58 -0400 Subject: [PATCH 166/328] 3.12.2 GA --- glusterfs.spec | 119 ++++++++++++++++++++++--------------------------- sources | 2 +- 2 files changed, 54 insertions(+), 67 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index adc0d94..53c36b3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -115,40 +115,34 @@ %endif %if ( 0%{?_with_systemd:1} ) -%if ( 0%{_for_fedora_koji_builds} ) -%global _init_enable() /bin/true ; -%else -%global _init_enable() /bin/systemctl enable %1.service ; -%endif -%global _init_disable() /bin/systemctl disable %1.service ; -%global _init_restart() /bin/systemctl try-restart %1.service ; -%global _init_start() /bin/systemctl start %1.service ; -%global _init_stop() /bin/systemctl stop %1.service ; -%global _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; +%global service_start() /bin/systemctl --quiet start %1.service || : \ +%{nil} +%global service_stop() /bin/systemctl --quiet stop %1.service || :\ +%{nil} +%global service_install() install -D -p -m 0644 %{_sourcedir}/%1.service %{buildroot}%2 \ +%{nil} # can't seem to make a generic macro that works -%global _init_glusterd %{_unitdir}/glusterd.service -%global _init_glusterfsd %{_unitdir}/glusterfsd.service -%global _init_glustereventsd %{_unitdir}/glustereventsd.service -%global _init_glusterfssharedstorage %{_unitdir}/glusterfssharedstorage.service +%global glusterd_svcfile %{_unitdir}/glusterd.service +%global glusterfsd_svcfile %{_unitdir}/glusterfsd.service +%global glustereventsd_svcfile %{_unitdir}/glustereventsd.service +%global glusterfssharedstorage_svcfile %{_unitdir}/glusterfssharedstorage.service %else -%global _init_enable() /sbin/chkconfig --add %1 ; -%global _init_disable() /sbin/chkconfig --del %1 ; -%global _init_restart() /sbin/service %1 condrestart &>/dev/null ; -%global _init_start() /sbin/service %1 start &>/dev/null ; -%global _init_stop() /sbin/service %1 stop &>/dev/null ; -%global _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; +%global systemd_post() /sbin/chkconfig --add %1 >/dev/null 2>&1 || : \ +%{nil} +%global systemd_preun() /sbin/chkconfig --del %1 >/dev/null 2>&1 || : \ +%{nil} +%global systemd_postun_with_restart() /sbin/service %1 condrestart >/dev/null 2>&1 || : \ +%{nil} +%global service_start() /sbin/service %1 start >/dev/null 2>&1 || : \ +%{nil} +%global service_stop() /sbin/service %1 stop >/dev/null 2>&1 || : \ +%{nil} +%global service_install() install -D -p -m 0755 %{_sourcedir}/%1.init %{buildroot}%2 \ +%{nil} # can't seem to make a generic macro that works -%global _init_glusterd %{_sysconfdir}/init.d/glusterd -%global _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd -%global _init_glustereventsd %{_sysconfdir}/init.d/glustereventsd -%endif - -%if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{?_with_systemd:1} ) -%global glusterfsd_service glusterfsd.service -%else -%global glusterfsd_service glusterfsd.init -%endif +%global glusterd_svcfile %{_sysconfdir}/init.d/glusterd +%global glusterfsd_svcfile %{_sysconfdir}/init.d/glusterfsd +%global glustereventsd_svcfile %{_sysconfdir}/init.d/glustereventsd %endif %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -181,8 +175,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.12.1 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.12.2 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -201,7 +195,6 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0: 0001-cli_src_cli-cmd-parser.c.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -213,14 +206,6 @@ BuildRequires: python-simplejson BuildRequires: systemd %endif -%if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{?_with_systemd:1} ) -%global glusterfsd_service %{S:%{SOURCE7}} -%else -%global glusterfsd_service %{S:%{SOURCE8}} -%endif -%endif - Requires: %{name}-libs = %{version}-%{release} %if ( 0%{?_with_systemd:1} ) %{?systemd_requires} @@ -676,7 +661,6 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} -%patch0 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -783,7 +767,7 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha # Install glusterfsd .service or init.d file %if ( 0%{_for_fedora_koji_builds} ) -%_init_install %{glusterfsd_service} glusterfsd +%service_install glusterfsd %{glusterfsd_svcfile} %endif install -D -p -m 0644 extras/glusterfs-logrotate \ @@ -834,7 +818,7 @@ rm -rf %{buildroot} /sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog +%systemd_postun_with_restart rsyslog %endif %endif exit 0 @@ -843,7 +827,7 @@ exit 0 %if ( 0%{!?_without_events:1} ) %post events -%_init_restart glustereventsd +%systemd_post glustereventsd exit 0 %endif @@ -856,7 +840,7 @@ exit 0 %if ( 0%{!?_without_georeplication:1} ) %post geo-replication if [ $1 -ge 1 ]; then - %_init_restart glusterd + %systemd_postun_with_restart glusterd fi exit 0 %endif @@ -867,9 +851,9 @@ exit 0 %post server # Legacy server -%_init_enable glusterd +%systemd_post glusterd %if ( 0%{_for_fedora_koji_builds} ) -%_init_enable glusterfsd +%systemd_post glusterfsd %endif # ".cmd_log_history" is renamed to "cmd_history.log" in GlusterFS-3.7 . # While upgrading glusterfs-server package form GlusterFS version <= 3.6 to @@ -927,7 +911,7 @@ if [ $? -eq 0 ]; then # glusterd _was_ running, we killed it, it exited after *.upgrade=on, # so start it again - %_init_start glusterd + %service_start glusterd else glusterd --xlator-option *.upgrade=on -N @@ -951,9 +935,9 @@ exit 0 %if ( 0%{!?_without_events:1} ) %preun events if [ $1 -eq 0 ]; then - if [ -f %_init_glustereventsd ]; then - %_init_stop glustereventsd - %_init_disable glustereventsd + if [ -f %glustereventsd_svcfile ]; then + %service_stop glustereventsd + %systemd_preun glustereventsd fi fi exit 0 @@ -961,20 +945,20 @@ exit 0 %preun server if [ $1 -eq 0 ]; then - if [ -f %_init_glusterfsd ]; then - %_init_stop glusterfsd + if [ -f %glusterfsd_svcfile ]; then + %service_stop glusterfsd fi - %_init_stop glusterd - if [ -f %_init_glusterfsd ]; then - %_init_disable glusterfsd + %service_stop glusterd + if [ -f %glusterfsd_svcfile ]; then + %systemd_preun glusterfsd fi - %_init_disable glusterd + %systemd_preun glusterd fi if [ $1 -ge 1 ]; then - if [ -f %_init_glusterfsd ]; then - %_init_restart glusterfsd + if [ -f %glusterfsd_svcfile ]; then + %systemd_postun_with_restart glusterfsd fi - %_init_restart glusterd + %systemd_postun_with_restart glusterd fi exit 0 @@ -985,7 +969,7 @@ exit 0 /sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog +%systemd_postun_with_restart rsyslog %endif %endif exit 0 @@ -1247,12 +1231,12 @@ exit 0 %endif # init files -%_init_glusterd +%glusterd_svcfile %if ( 0%{_for_fedora_koji_builds} ) -%_init_glusterfsd +%glusterfsd_svcfile %endif %if ( 0%{?_with_systemd:1} ) -%_init_glusterfssharedstorage +%glusterfssharedstorage_svcfile %endif # binaries @@ -1399,6 +1383,9 @@ exit 0 %endif %changelog +* Fri Oct 13 2017 Kaleb S. KEITHLEY - 3.12.2-1 +- 3.12.2 GA + * Thu Sep 28 2017 Kaleb S. KEITHLEY - 3.12.1-2 - 3.12.1 bz 1495858 diff --git a/sources b/sources index 38fe202..bfe6b6d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.12.1.tar.gz) = f142572ae4ad4f416e5d3e699f48d4dbb5674e0ca5c15a096a3b535fb2058a9294e3161f13a5f4e9479f630f331fc067b610dd67493345aaacd0f095c2e25b60 +SHA512 (glusterfs-3.12.2.tar.gz) = 2bcb3e9356964ea8557ea4291cf6b641122c58a3beb59c00de0acb6772b05b22c0610db4f2bde2e506e15233cfa610db415c6622933e04600ddee3cc55b01166 From a0a907a7d6e52f6a842b9b5491eda7a210eecdb8 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 13 Oct 2017 08:19:55 -0400 Subject: [PATCH 167/328] 3.12.2 GA --- 0001-cli_src_cli-cmd-parser.c.patch | 71 ----------------------------- 1 file changed, 71 deletions(-) delete mode 100644 0001-cli_src_cli-cmd-parser.c.patch diff --git a/0001-cli_src_cli-cmd-parser.c.patch b/0001-cli_src_cli-cmd-parser.c.patch deleted file mode 100644 index 868e56f..0000000 --- a/0001-cli_src_cli-cmd-parser.c.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 2562b1c40d790da00d218f8df30bf190f00dd41c Mon Sep 17 00:00:00 2001 -From: Niels de Vos -Date: Tue, 26 Sep 2017 14:51:27 +0200 -Subject: [PATCH] cli: Bypass the confirmation question creating replica 2 - volume with force - -When a replica 2 volume is created with the force option, -remove the warning message with the confirmation question, -whether they want to continue or not and Succeed the -volume creation. - -Cherry picked from commit f449e53df7c07301b495b4ff688d165026dfd2d0: -> Change-Id: I4f3306659fa4cbf53dd8d45269a32d19ce86ac88 -> BUG: 1493893 -> Signed-off-by: karthik-us - -While backporting the URL for the documentation has been adjusted as -well. This comes from commit eb2f1ab4cd which also corrects other URLs -(those are not included in this backport). - -Change-Id: I4f3306659fa4cbf53dd8d45269a32d19ce86ac88 -BUG: 1495858 -Signed-off-by: Niels de Vos ---- - cli/src/cli-cmd-parser.c | 30 +++++++++++++++++------------- - 1 file changed, 17 insertions(+), 13 deletions(-) - -diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c -index 984ce5bba..a7ebd5ce3 100644 ---- a/cli/src/cli-cmd-parser.c -+++ b/cli/src/cli-cmd-parser.c -@@ -529,19 +529,23 @@ cli_cmd_volume_create_parse (struct cli_state *state, const char **words, - goto out; - } - if (replica_count == 2) { -- question = "Replica 2 volumes are prone to " -- "split-brain. Use Arbiter or Replica" -- " 3 to avoid this. See: " -- " https://gluster.readthedocs.io/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/." -- "\nDo you still want to continue?\n"; -- answer = cli_cmd_get_confirmation (state, -- question); -- if (GF_ANSWER_NO == answer) { -- gf_log ("cli", GF_LOG_ERROR, -- "Volume create cancelled, " -- "exiting"); -- ret = -1; -- goto out; -+ if (strcmp (words[wordcount - 1], "force")) { -+ question = "Replica 2 volumes are prone" -+ " to split-brain. Use " -+ "Arbiter or Replica 3 to " -+ "avoid this. See: " -+ "http://docs.gluster.org/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/." -+ "\nDo you still want to " -+ "continue?\n"; -+ answer = cli_cmd_get_confirmation (state, -+ question); -+ if (GF_ANSWER_NO == answer) { -+ gf_log ("cli", GF_LOG_ERROR, -+ "Volume create " -+ "cancelled, exiting"); -+ ret = -1; -+ goto out; -+ } - } - } - ret = dict_set_int32 (dict, "replica-count", replica_count); --- -2.13.5 - From 202c34e6826fd2cba34ee61fc14312126ede808f Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 23 Oct 2017 09:51:44 -0400 Subject: [PATCH 168/328] 3.12.2, bz #1504256 --- ...erfsd-Dereferencing-the-null-pointer.patch | 39 +++++++++++++++++++ glusterfs.spec | 7 +++- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 0001-glusterfsd-Dereferencing-the-null-pointer.patch diff --git a/0001-glusterfsd-Dereferencing-the-null-pointer.patch b/0001-glusterfsd-Dereferencing-the-null-pointer.patch new file mode 100644 index 0000000..eabad8a --- /dev/null +++ b/0001-glusterfsd-Dereferencing-the-null-pointer.patch @@ -0,0 +1,39 @@ +From 87bd25b64ae34cce95e87e724acfeab4c13d60a4 Mon Sep 17 00:00:00 2001 +From: Sanju Rakonde +Date: Wed, 18 Oct 2017 08:06:24 +0530 +Subject: [PATCH] glusterfsd: Dereferencing the null pointer + +Problem: When control reaches to out, one of (iobref, iobuf, frame) can +be null.for iobref, iobuf iobref_unref() and iobuf_unref() functions +are called respectively, which are using GF_VALIDATE_OR_GOTO(), so +there won't be null pointer dereference. But for frame without null +checking STACK_DESTROY(frame->root) is called causing null pointer +dereference. + +Fix: adding a line for null checking, the function +STACK_DESTROY(frame->root) is called only when frame is not null. + +Change-Id: I3a6684c11fb7b694b81d6ad4fec3bced5562ad88 +BUG: 1503394 +Signed-off-by: Sanju Rakonde +--- + glusterfsd/src/gf_attach.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/glusterfsd/src/gf_attach.c b/glusterfsd/src/gf_attach.c +index 05119e4f4..3f248292d 100644 +--- a/glusterfsd/src/gf_attach.c ++++ b/glusterfsd/src/gf_attach.c +@@ -144,7 +144,8 @@ out: + + iobref_unref (iobref); + iobuf_unref (iobuf); +- STACK_DESTROY (frame->root); ++ if (frame) ++ STACK_DESTROY (frame->root); + + if (rpc_status != 0) { + fprintf (stderr, "got error %d on RPC\n", rpc_status); +-- +2.13.5 + diff --git a/glusterfs.spec b/glusterfs.spec index 53c36b3..e3e2a59 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -176,7 +176,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.12.2 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -195,6 +195,7 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif +Patch0: 0001-glusterfsd-Dereferencing-the-null-pointer.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -661,6 +662,7 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} +%patch0 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -1383,6 +1385,9 @@ exit 0 %endif %changelog +* Mon Oct 23 2017 Kaleb S. KEITHLEY - 3.12.2-2 +- 3.12.2, bz #1504256 + * Fri Oct 13 2017 Kaleb S. KEITHLEY - 3.12.2-1 - 3.12.2 GA From cf8cb02885dd86cd8e398c6f8ab9b6d72debf8de Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 13 Nov 2017 10:30:44 -0500 Subject: [PATCH 169/328] 3.12.3 GA --- glusterfs.spec | 11 +++++++---- sources | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e3e2a59..45c4482 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -175,8 +175,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.12.2 -Release: 2%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.12.3 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -195,7 +195,6 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0: 0001-glusterfsd-Dereferencing-the-null-pointer.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -364,8 +363,10 @@ Requires: python2 python-prettytable Requires: python2-gluster = %{version}-%{release} %if ( 0%{?rhel} ) Requires: python-requests +Requires: python-jwt %else Requires: python2-requests +Requires: python2-jwt %endif %if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse @@ -662,7 +663,6 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} -%patch0 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -1385,6 +1385,9 @@ exit 0 %endif %changelog +* Mon Nov 13 2017 Kaleb S. KEITHLEY - 3.12.3-1 +- 3.12.3 GA + * Mon Oct 23 2017 Kaleb S. KEITHLEY - 3.12.2-2 - 3.12.2, bz #1504256 diff --git a/sources b/sources index bfe6b6d..8e6a84d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.12.2.tar.gz) = 2bcb3e9356964ea8557ea4291cf6b641122c58a3beb59c00de0acb6772b05b22c0610db4f2bde2e506e15233cfa610db415c6622933e04600ddee3cc55b01166 +SHA512 (glusterfs-3.12.3.tar.gz) = f648b8324a69360b510c947e49918467c969dcc21b6a408b6916b780aa78c44abe027b6c84d696eed7d5f381b055edd3be1dfe4f3ea8f76d15d9319cd08cfa3d From 60eece97e70d7c829596cb544b56c7fc07e11a57 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Sat, 2 Dec 2017 06:55:45 -0500 Subject: [PATCH 170/328] 3.13.0 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 26 ++++++++++++++++++++++---- sources | 2 +- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 45c4482..cc0ba49 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -17,6 +17,10 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind %{?_with_valgrind:%global _with_valgrind --enable-valgrind} +# if you wish to compile an rpm with IPv6 default... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default +%{?_with_ipv6default:%global _with_ipv6default --with-ipv6default} + # if you wish to compile an rpm with cmocka unit testing... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka %{?_with_cmocka:%global _with_cmocka --enable-cmocka} @@ -175,8 +179,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.12.3 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.13.0 +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -184,7 +188,7 @@ Release: 0.@PACKAGE_RELEASE@%{?dist}.5 %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base -URL: http://gluster.readthedocs.io/en/latest/ +URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) Source0: http://bits.gluster.org/pub/gluster/%{name}/src/%{name}-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig @@ -219,6 +223,9 @@ BuildRequires: python2-devel %if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif +%if ( 0%{?_with_ipv6default:1} ) +BuildRequires: libtirpc-devel +%endif BuildRequires: userspace-rcu-devel >= 0.7 %if ( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: automake @@ -611,6 +618,9 @@ Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse Requires: %{name}-fuse = %{version}-%{release} +%if ( 0%{?_with_ipv6default:1} ) +Requires: libtirpc +%endif # self-heal daemon, rebalance, nfs-server etc. are actually clients Requires: %{name}-api = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} @@ -685,7 +695,8 @@ export CFLAGS %{?_without_ocf} \ %{?_without_rdma} \ %{?_without_syslog} \ - %{?_without_tiering} + %{?_without_tiering} \ + %{?_with_ipv6default} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -1019,6 +1030,7 @@ exit 0 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/error-gen.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/delay-gen.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so @@ -1385,6 +1397,12 @@ exit 0 %endif %changelog +* Sat Dec 2 2017 Kaleb S. KEITHLEY - 3.13.0-1 +- 3.13.0 GA + +* Wed Nov 22 2017 Kaleb S. KEITHLEY - 3.13.0-0.1.rc0 +- 3.13.0 RC0 + * Mon Nov 13 2017 Kaleb S. KEITHLEY - 3.12.3-1 - 3.12.3 GA diff --git a/sources b/sources index 8e6a84d..9dda890 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.12.3.tar.gz) = f648b8324a69360b510c947e49918467c969dcc21b6a408b6916b780aa78c44abe027b6c84d696eed7d5f381b055edd3be1dfe4f3ea8f76d15d9319cd08cfa3d +SHA512 (glusterfs-3.13.0.tar.gz) = 36d89866658ed10b84ba38a1d7f2afd90f1b7fcc5e40f7e8a2c8e1d05e5b282e7f4e9e20dbe64e093b997a05f884563b8b57aef9ed6b17d61400275c3553c5e1 From e241395b7e8c32a55720d4dd53a557e29fcb584d Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 21 Dec 2017 06:28:27 -0500 Subject: [PATCH 171/328] 3.13.1 GA Signed-off-by: Kaleb S. KEITHLEY --- ...erfsd-Dereferencing-the-null-pointer.patch | 39 ------------------- glusterfs.spec | 5 ++- sources | 2 +- 3 files changed, 5 insertions(+), 41 deletions(-) delete mode 100644 0001-glusterfsd-Dereferencing-the-null-pointer.patch diff --git a/0001-glusterfsd-Dereferencing-the-null-pointer.patch b/0001-glusterfsd-Dereferencing-the-null-pointer.patch deleted file mode 100644 index eabad8a..0000000 --- a/0001-glusterfsd-Dereferencing-the-null-pointer.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 87bd25b64ae34cce95e87e724acfeab4c13d60a4 Mon Sep 17 00:00:00 2001 -From: Sanju Rakonde -Date: Wed, 18 Oct 2017 08:06:24 +0530 -Subject: [PATCH] glusterfsd: Dereferencing the null pointer - -Problem: When control reaches to out, one of (iobref, iobuf, frame) can -be null.for iobref, iobuf iobref_unref() and iobuf_unref() functions -are called respectively, which are using GF_VALIDATE_OR_GOTO(), so -there won't be null pointer dereference. But for frame without null -checking STACK_DESTROY(frame->root) is called causing null pointer -dereference. - -Fix: adding a line for null checking, the function -STACK_DESTROY(frame->root) is called only when frame is not null. - -Change-Id: I3a6684c11fb7b694b81d6ad4fec3bced5562ad88 -BUG: 1503394 -Signed-off-by: Sanju Rakonde ---- - glusterfsd/src/gf_attach.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/glusterfsd/src/gf_attach.c b/glusterfsd/src/gf_attach.c -index 05119e4f4..3f248292d 100644 ---- a/glusterfsd/src/gf_attach.c -+++ b/glusterfsd/src/gf_attach.c -@@ -144,7 +144,8 @@ out: - - iobref_unref (iobref); - iobuf_unref (iobuf); -- STACK_DESTROY (frame->root); -+ if (frame) -+ STACK_DESTROY (frame->root); - - if (rpc_status != 0) { - fprintf (stderr, "got error %d on RPC\n", rpc_status); --- -2.13.5 - diff --git a/glusterfs.spec b/glusterfs.spec index cc0ba49..b33f9c5 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -179,7 +179,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.13.0 +Version: 3.13.1 Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1397,6 +1397,9 @@ exit 0 %endif %changelog +* Thu Dec 21 2017 Kaleb S. KEITHLEY - 3.13.1-1 +- 3.13.1 GA + * Sat Dec 2 2017 Kaleb S. KEITHLEY - 3.13.0-1 - 3.13.0 GA diff --git a/sources b/sources index 9dda890..1b71241 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.13.0.tar.gz) = 36d89866658ed10b84ba38a1d7f2afd90f1b7fcc5e40f7e8a2c8e1d05e5b282e7f4e9e20dbe64e093b997a05f884563b8b57aef9ed6b17d61400275c3553c5e1 +SHA512 (glusterfs-3.13.1.tar.gz) = 74685a070d96c4e4250435bd915d1f8d18221c044cbfa9ed01a552c3b5d2450022d1a552de7cdf1f3834c747f1e88118a56348a2b66d19027a4794d25f7c5187 From b2dc9600e4ff5bb0d415a2bf4484688bec1794d6 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Mon, 25 Dec 2017 14:43:28 +0100 Subject: [PATCH 172/328] Fedora 28 has renamed pyxattr BUG: 1528975 URL: https://review.gluster.org/19074 Signed-off-by: Niels de Vos --- glusterfs.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index b33f9c5..6543df3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -180,7 +180,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.13.1 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -654,7 +654,11 @@ Obsoletes: %{name}-geo-replication = %{version}-%{release} %if ( 0%{?rhel} && 0%{?rhel} <= 6 ) Requires: python-argparse %endif +%if ( 0%{?fedora} && 0%{?fedora} >= 28 ) +Requires: python2-pyxattr +%else Requires: pyxattr +%endif %if (0%{?_with_valgrind:1}) Requires: valgrind %endif @@ -1397,6 +1401,9 @@ exit 0 %endif %changelog +* Mon Dec 25 2017 Niels de Vos - 3.13.1-2 +- Fedora 28 has renamed pyxattr + * Thu Dec 21 2017 Kaleb S. KEITHLEY - 3.13.1-1 - 3.13.1 GA From a39583ebb72dd2ac021f34ffea8130c699b8ccee Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 12 Jan 2018 09:41:42 -0500 Subject: [PATCH 173/328] Group: is deprecated, as seen in another unrelated package review --- glusterfs.spec | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 6543df3..66a9304 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -187,7 +187,6 @@ Version: @PACKAGE_VERSION@ Release: 0.@PACKAGE_RELEASE@%{?dist}.5 %endif License: GPLv2 or LGPLv3+ -Group: System Environment/Base URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) Source0: http://bits.gluster.org/pub/gluster/%{name}/src/%{name}-%{version}%{?prereltag}.tar.gz @@ -278,7 +277,6 @@ and client framework. %package api Summary: GlusterFS api library -Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} @@ -295,7 +293,6 @@ This package provides the glusterfs libgfapi library. %package api-devel Summary: Development Libraries -Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: %{name}-devel = %{version}-%{release} Requires: libacl-devel @@ -313,7 +310,6 @@ This package provides the api include files. %package cli Summary: GlusterFS CLI -Group: Applications/File Requires: %{name}-libs = %{version}-%{release} %description cli @@ -329,7 +325,6 @@ This package provides the GlusterFS CLI application and its man page %package client-xlators Summary: GlusterFS client-side translators -Group: Applications/File %description client-xlators GlusterFS is a distributed file-system capable of scaling to several @@ -344,7 +339,6 @@ This package provides the translators needed on any GlusterFS client. %package devel Summary: Development Libraries -Group: Development/Libraries Requires: %{name} = %{version}-%{release} # Needed for the Glupy examples to work Requires: %{name}-extra-xlators = %{version}-%{release} @@ -364,7 +358,6 @@ This package provides the development libraries and include files. %if ( 0%{!?_without_events:1} ) %package events Summary: GlusterFS Events -Group: Applications/File Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: python2 python-prettytable Requires: python2-gluster = %{version}-%{release} @@ -396,7 +389,6 @@ This package provides the GlusterFS Events %package extra-xlators Summary: Extra Gluster filesystem Translators -Group: Applications/File # We need python2-gluster rpm for gluster module's __init__.py in Python # site-packages area Requires: python2-gluster = %{version}-%{release} @@ -419,7 +411,6 @@ for GlusterFS. %package fuse Summary: Fuse client -Group: Applications/File BuildRequires: fuse-devel Requires: attr Requires: psmisc @@ -445,7 +436,6 @@ glusterfsd and glusterfs binaries. %if ( 0%{!?_without_georeplication:1} ) %package geo-replication Summary: GlusterFS Geo-replication -Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} Requires: python2 @@ -471,7 +461,6 @@ This package provides support to geo-replication. %if ( 0%{?_with_gnfs:1} ) %package gnfs Summary: GlusterFS gNFS server -Group: System Environment/Daemons Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-client-xlators%{?_isa} = %{version}-%{release} Requires: nfs-utils @@ -490,7 +479,6 @@ This package provides the glusterfs legacy gNFS server xlator %package libs Summary: GlusterFS common libraries -Group: Applications/File %description libs GlusterFS is a distributed file-system capable of scaling to several @@ -505,7 +493,6 @@ This package provides the base GlusterFS libraries %package -n python-gluster Summary: GlusterFS python library -Group: Development/Tools %if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) ) # EL5 does not support noarch sub-packages BuildArch: noarch @@ -527,7 +514,6 @@ namespace. %package -n python2-gluster Summary: GlusterFS python library -Group: Development/Tools %{?python_provide:%python_provide python2-gluster} Requires: python2 Provides: python-gluster = %{version}-%{release} @@ -538,7 +524,6 @@ Obsoletes: python-gluster < 3.10 %if ( 0%{!?_without_rdma:1} ) %package rdma Summary: GlusterFS rdma support for ib-verbs -Group: Applications/File %if ( 0%{?fedora} && 0%{?fedora} > 26 ) BuildRequires: rdma-core-devel %else @@ -562,7 +547,6 @@ This package provides support to ib-verbs library. %if ( ! 0%{_for_fedora_koji_builds} ) %package regression-tests Summary: Development Tools -Group: Development/Tools Requires: %{name} = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} @@ -585,12 +569,6 @@ License: GPLv3+ # EL5 does not support noarch sub-packages BuildArch: noarch %endif -# this Group handling comes from the Fedora resource-agents package -%if ( 0%{?fedora} || 0%{?centos_version} || 0%{?rhel} ) -Group: System Environment/Base -%else -Group: Productivity/Clustering/HA -%endif # for glusterd Requires: %{name}-server = %{version}-%{release} # depending on the distribution, we need pacemaker or resource-agents @@ -612,7 +590,6 @@ like Pacemaker. %package server Summary: Distributed file-system server -Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} From 3a9e8490b755eebb5ceca19aadd4cc89df7832e4 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 18 Jan 2018 12:45:53 -0500 Subject: [PATCH 174/328] glibc in Fedora 28 has removed rpc headers and rpcgen, use libtirpc Signed-off-by: Kaleb S. KEITHLEY --- 0001-libtirpc.patch | 30 ++++++++++++++++++++++++++++++ glusterfs.spec | 22 ++++++++++++++++++---- 2 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 0001-libtirpc.patch diff --git a/0001-libtirpc.patch b/0001-libtirpc.patch new file mode 100644 index 0000000..a88e781 --- /dev/null +++ b/0001-libtirpc.patch @@ -0,0 +1,30 @@ +diff --git a/configure.ac b/configure.ac +index 14fc0b826..0b48807f1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -293,6 +293,10 @@ else + CFLAGS="${CFLAGS} -g -rdynamic" + fi + ++AC_ARG_WITH([libtirpc], ++ AS_HELP_STRING([--with-libtirpc], [Use libtirpc as RPC implementation (instead of sunrpc)]), ++ [], [with_libtirpc=no]) ++ + AC_ARG_WITH([ipv6-default], AC_HELP_STRING([--with-ipv6-default], [Set IPv6 as default.])) + if test "x$with_ipv6_default" = "xyes"; then + IPV6_DEFAULT=yes +@@ -1066,6 +1070,14 @@ AC_SUBST(GF_DISTRIBUTION) + GF_HOST_OS="" + GF_LDFLAGS="-rdynamic" + ++dnl include tirpc for IPv6 builds ++if test "x$with_libtirpc" = "xyes" || test "x$IPV6_DEFAULT" = "xyes" ; then ++ PKG_CHECK_MODULES([TIRPC], [libtirpc], ++ [GF_CFLAGS="$GF_CFLAGS $TIRPC_CFLAGS"; GF_LDFLAGS="$GF_LDFLAGS $TIRPC_LIBS";], ++ [AC_MSG_ERROR([libtirpc requested or needed for IPv6 default but library not found])] ++ ) ++fi ++ + dnl include tirpc for IPv6 builds + if test "x$IPV6_DEFAULT" = "xyes"; then + AC_CHECK_LIB([tirpc], [xdr_string], , AC_MSG_ERROR([libtirpc is required to build glusterfs with IPv6 default])) diff --git a/glusterfs.spec b/glusterfs.spec index 66a9304..400befd 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -88,6 +88,10 @@ %global _without_tiering --disable-tiering %endif +%if ( 0%{?fedora} && 0%{?fedora} > 27 ) +%global _with_libtirpc --with-libtirpc +%endif + ##----------------------------------------------------------------------------- ## All %%global definitions should be placed here and keep them sorted ## @@ -180,7 +184,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.13.1 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}3%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -198,6 +202,7 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif +Patch0: 0001-libtirpc.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -222,9 +227,12 @@ BuildRequires: python2-devel %if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif -%if ( 0%{?_with_ipv6default:1} ) +%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?_with_ipv6default:1} ) BuildRequires: libtirpc-devel %endif +%if ( 0%{?fedora} && 0%{?fedora} > 27 ) +BuildRequires: rpcgen +%endif BuildRequires: userspace-rcu-devel >= 0.7 %if ( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: automake @@ -654,6 +662,7 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} +%patch0 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -661,6 +670,7 @@ CFLAGS=-DUSE_INSECURE_OPENSSL export CFLAGS %endif +sed -i -e 's/--quiet//' configure.ac ./autogen.sh && %configure \ %{?_with_cmocka} \ %{?_with_debug} \ @@ -677,7 +687,8 @@ export CFLAGS %{?_without_rdma} \ %{?_without_syslog} \ %{?_without_tiering} \ - %{?_with_ipv6default} + %{?_with_ipv6default} \ + %{?_with_libtirpc} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -686,7 +697,7 @@ sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -make %{?_smp_mflags} +make %{?_smp_mflags} V=1 %check make check @@ -1378,6 +1389,9 @@ exit 0 %endif %changelog +* Thu Jan 18 2018 Kaleb S. KEITHLEY - 3.13.1-3 +- glibc in Fedora 28 has removed rpc headers and rpcgen, use libtirpc + * Mon Dec 25 2017 Niels de Vos - 3.13.1-2 - Fedora 28 has renamed pyxattr From 1b91ec82ecf8e8565c6d70751107bd8985825b39 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Sat, 20 Jan 2018 08:46:50 -0500 Subject: [PATCH 175/328] 3.13.2 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 400befd..6379091 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -183,8 +183,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.13.1 -Release: %{?prereltag:0.}3%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.13.2 +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1389,6 +1389,9 @@ exit 0 %endif %changelog +* Sat Jan 20 2018 Kaleb S. KEITHLEY - 3.13.2-1 +- 3.13.2 GA + * Thu Jan 18 2018 Kaleb S. KEITHLEY - 3.13.1-3 - glibc in Fedora 28 has removed rpc headers and rpcgen, use libtirpc diff --git a/sources b/sources index 1b71241..fd2ca38 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.13.1.tar.gz) = 74685a070d96c4e4250435bd915d1f8d18221c044cbfa9ed01a552c3b5d2450022d1a552de7cdf1f3834c747f1e88118a56348a2b66d19027a4794d25f7c5187 +SHA512 (glusterfs-3.13.2.tar.gz) = 5c89390805b8c5cb3b1eed91300e239a3772a076c2ee1c14332688b509cb396e7ef5772d0b45905807515798bcaeef26c806017bdcdbb0efc83048c07b772d81 From b2d4e49cd8830345cdc58ce2ab82a1133d9efcff Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 7 Feb 2018 13:09:02 +0000 Subject: [PATCH 176/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 6379091..ae14ee4 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -184,11 +184,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.13.2 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}.1 %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.5 +Release: 0.@PACKAGE_RELEASE@%{?dist}.6 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1389,6 +1389,9 @@ exit 0 %endif %changelog +* Wed Feb 07 2018 Fedora Release Engineering - 3.13.2-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Sat Jan 20 2018 Kaleb S. KEITHLEY - 3.13.2-1 - 3.13.2 GA From c24be22e5c5378b9c8809589437571c672f1bb73 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Tue, 13 Feb 2018 23:26:43 +0100 Subject: [PATCH 177/328] Remove BuildRoot definition None of currently supported distributions need that. It was needed last for EL5 which is EOL now Signed-off-by: Igor Gnatenko --- glusterfs.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index ae14ee4..adabb48 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -204,7 +204,6 @@ Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif Patch0: 0001-libtirpc.patch -BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) Requires(pre): shadow-utils %if ( 0%{?rhel} && 0%{?rhel} < 6 ) From 662178f0dd6a71e9691868bd3d55fd920e9640e5 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Wed, 14 Feb 2018 07:13:56 +0100 Subject: [PATCH 178/328] Remove %clean section None of currently supported distributions need that. Last one was EL5 which is EOL for a while. Signed-off-by: Igor Gnatenko --- glusterfs.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index adabb48..25df8a3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -812,9 +812,6 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus install -p -m 0755 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster -%clean -rm -rf %{buildroot} - ##----------------------------------------------------------------------------- ## All %%post should be placed here and keep them sorted ## From 4708c093f7b75db61253546105340fa5ba9a2106 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 15 Feb 2018 12:15:21 -0500 Subject: [PATCH 179/328] shared lib scriptlets, ldconfig Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 6379091..965aa61 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -184,7 +184,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.13.2 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -820,7 +820,6 @@ rm -rf %{buildroot} ## All %%post should be placed here and keep them sorted ## %post -/sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %systemd_postun_with_restart rsyslog @@ -828,8 +827,6 @@ rm -rf %{buildroot} %endif exit 0 -%post api -p /sbin/ldconfig - %if ( 0%{!?_without_events:1} ) %post events %systemd_post glustereventsd @@ -850,10 +847,6 @@ fi exit 0 %endif -%post libs -/sbin/ldconfig -exit 0 - %post server # Legacy server %systemd_post glusterd @@ -896,7 +889,6 @@ fi # BZ 834847 if [ -e /etc/ld.so.conf.d/glusterfs.conf ]; then rm -f /etc/ld.so.conf.d/glusterfs.conf - /sbin/ldconfig fi %if (0%{?_with_firewalld:1}) @@ -971,7 +963,6 @@ exit 0 ## All %%postun should be placed here and keep them sorted ## %postun -/sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %systemd_postun_with_restart rsyslog @@ -979,16 +970,7 @@ exit 0 %endif exit 0 -%postun api -/sbin/ldconfig -exit 0 - -%postun libs -/sbin/ldconfig -exit 0 - %postun server -/sbin/ldconfig %if (0%{?_with_firewalld:1}) %firewalld_reload %endif @@ -1389,6 +1371,9 @@ exit 0 %endif %changelog +* Thu Feb 15 2018 Kaleb S. KEITHLEY - 3.13.2-2 +- shared lib scriptlets, ldconfig + * Sat Jan 20 2018 Kaleb S. KEITHLEY - 3.13.2-1 - 3.13.2 GA From 06620abb6ea10bd86972d5305340115d8f258a04 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 27 Feb 2018 08:58:41 -0500 Subject: [PATCH 180/328] 4.0.0 RC1 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 231 ++++++++++++++++++++++++++++++++++--------------- sources | 2 +- 2 files changed, 160 insertions(+), 73 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 471c082..f204578 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,30 +1,88 @@ %global _hardened_build 1 +%if ( 0%{?fedora} && 0%{?fedora} > 27 ) +%undefine _strict_symbol_defs_build +%endif + %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag rc1 +%global prereltag rc1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted ## -# if you wish to compile an rpm with debugging... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with debug -%{?_with_debug:%global _with_debug --enable-debug} +# bd +# if you wish to compile an rpm without the BD map support... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd +%{?_without_bd:%global _without_bd --disable-bd-xlator} -# if you wish to compile an rpm to run all processes under valgrind... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind -%{?_with_valgrind:%global _with_valgrind --enable-valgrind} - -# if you wish to compile an rpm with IPv6 default... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default -%{?_with_ipv6default:%global _with_ipv6default --with-ipv6default} +%if ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) +%global _without_bd --disable-bd-xlator +%endif +# cmocka # if you wish to compile an rpm with cmocka unit testing... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka %{?_with_cmocka:%global _with_cmocka --enable-cmocka} +# debug +# if you wish to compile an rpm with debugging... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with debug +%{?_with_debug:%global _with_debug --enable-debug} + +# epoll +# if you wish to compile an rpm without epoll... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without epoll +%{?_without_epoll:%global _without_epoll --disable-epoll} + +# fusermount +# if you wish to compile an rpm without fusermount... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without fusermount +%{?_without_fusermount:%global _without_fusermount --disable-fusermount} + +# geo-rep +# if you wish to compile an rpm without geo-replication support, compile like this... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication +%{?_without_georeplication:%global _without_georeplication --disable-georeplication} + +# Disable geo-replication on EL5, as its default Python is too old +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +%global _without_georeplication --disable-georeplication +%endif + +# gnfs +# if you wish to compile an rpm with the legacy gNFS server xlator +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs +%{?_with_gnfs:%global _with_gnfs --enable-gnfs} + +%if ( 0%{_for_fedora_koji_builds} ) +%global _with_gnfs --enable-gnfs +%endif + +# ipv6default +# if you wish to compile an rpm with IPv6 default... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default +%{?_with_ipv6default:%global _with_ipv6default --with-ipv6default} + +# libtirpc +# if you wish to compile an rpm without TIRPC (i.e. use legacy glibc rpc) +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without libtirpc +%{?_without_libtirpc:%global _without_libtirpc --without-libtirpc} + +# Do not use libtirpc on EL6, it does not have xdr_uint64_t() and xdr_uint32_t +# Do not use libtirpc on EL7, it does not have xdr_sizeof() +%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) +%global _without_libtirpc --without-libtirpc +%endif + +# ocf +# if you wish to compile an rpm without the OCF resource agents... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf +%{?_without_ocf:%global _without_ocf --without-ocf} + +#rdma # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma %{?_without_rdma:%global _without_rdma --disable-ibverbs} @@ -34,35 +92,17 @@ %global _without_rdma --disable-ibverbs %endif -# if you wish to compile an rpm without epoll... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without epoll -%{?_without_epoll:%global _without_epoll --disable-epoll} +# server +# if you wish to build rpms without server components, compile like this +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without server +%{?_without_server:%global _without_server --without-server} -# if you wish to compile an rpm without fusermount... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without fusermount -%{?_without_fusermount:%global _without_fusermount --disable-fusermount} - -# if you wish to compile an rpm without geo-replication support, compile like this... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication -%{?_without_georeplication:%global _without_georeplication --disable-georeplication} - -# if you wish to compile an rpm with the legacy gNFS server xlator -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs -%{?_with_gnfs:%global _with_gnfs --enable-gnfs} - -%if ( 0%{_for_fedora_koji_builds} ) -%global _with_gnfs --enable-gnfs +# disable server components forcefully as rhel <= 6 +%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%global _without_server --without-server %endif -# Disable geo-replication on EL5, as its default Python is too old -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -%global _without_georeplication --disable-georeplication -%endif - -# if you wish to compile an rpm without the OCF resource agents... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf -%{?_without_ocf:%global _without_ocf --without-ocf} - +# syslog # if you wish to build rpms without syslog logging, compile like this # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without syslog %{?_without_syslog:%global _without_syslog --disable-syslog} @@ -71,40 +111,34 @@ # Fedora deprecated syslog, see # https://fedoraproject.org/wiki/Changes/NoDefaultSyslog # (And what about RHEL7?) -%if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} < 7 ) +%if ( ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} < 7 ) ) %global _without_syslog --disable-syslog %endif -# if you wish to compile an rpm without the BD map support... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd -%{?_without_bd:%global _without_bd --disable-bd-xlator} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) -%global _without_bd --disable-bd-xlator -%endif - +# tier # Disable data-tiering on EL5, sqlite is too old %if ( 0%{?rhel} && 0%{?rhel} < 6 ) %global _without_tiering --disable-tiering %endif -%if ( 0%{?fedora} && 0%{?fedora} > 27 ) -%global _with_libtirpc --with-libtirpc -%endif +# valgrind +# if you wish to compile an rpm to run all processes under valgrind... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind +%{?_with_valgrind:%global _with_valgrind --enable-valgrind} ##----------------------------------------------------------------------------- ## All %%global definitions should be placed here and keep them sorted ## -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +%if ( 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) %global _with_systemd true %endif -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +%if ( 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) %global _with_firewalld --enable-firewalld %endif -%if 0%{?_tmpfilesdir:1} +%if ( 0%{?_tmpfilesdir:1} ) %global _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} %else %global _with_tmpfilesdir --without-tmpfilesdir @@ -115,6 +149,14 @@ %global _without_events --disable-events %endif +# without server should also disable some server-only components +%if ( 0%{?_without_server:1} ) +%global _without_events --disable-events +%global _without_georeplication --disable-georeplication +%global _with_gnfs %{nil} +%global _without_tiering --disable-tiering +%endif + # From https://fedoraproject.org/wiki/Packaging:Python#Macros %if ( 0%{?rhel} && 0%{?rhel} < 7 ) %{!?python2_sitelib: %global python2_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} @@ -183,17 +225,17 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.13.2 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} +Version: 4.0.0 +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.6 +Release: 0.@PACKAGE_RELEASE@%{?dist}.5 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/%{name}/src/%{name}-%{version}%{?prereltag}.tar.gz +Source0: http://download.gluster.org/pub/gluster/%{name}/qa-releases/%{version}%{?prereltag}/%{name}-%{version}%{prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source6: rhel5-load-fuse-modules @@ -202,8 +244,8 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0: 0001-libtirpc.patch +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) Requires(pre): shadow-utils %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -226,7 +268,7 @@ BuildRequires: python2-devel %if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif -%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?_with_ipv6default:1} ) +%if ( 0%{?_with_ipv6default:1} || 0%{!?_without_libtirpc:1} ) BuildRequires: libtirpc-devel %endif %if ( 0%{?fedora} && 0%{?fedora} > 27 ) @@ -254,7 +296,7 @@ BuildRequires: lvm2-devel BuildRequires: libattr-devel %endif -%if (0%{?_with_firewalld:1}) +%if ( 0%{?_with_firewalld:1} ) BuildRequires: firewalld %endif @@ -315,6 +357,7 @@ is in user space and easily manageable. This package provides the api include files. +%if ( 0%{!?_without_server:1} ) %package cli Summary: GlusterFS CLI Requires: %{name}-libs = %{version}-%{release} @@ -329,6 +372,7 @@ called Translators from GNU Hurd kernel. Much of the code in GlusterFS is in user space and easily manageable. This package provides the GlusterFS CLI application and its man page +%endif %package client-xlators Summary: GlusterFS client-side translators @@ -370,10 +414,8 @@ Requires: python2 python-prettytable Requires: python2-gluster = %{version}-%{release} %if ( 0%{?rhel} ) Requires: python-requests -Requires: python-jwt %else Requires: python2-requests -Requires: python2-jwt %endif %if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse @@ -595,6 +637,7 @@ Open Cluster Framework (OCF) compliant cluster resource managers, like Pacemaker. %endif +%if ( 0%{!?_without_server:1} ) %package server Summary: Distributed file-system server Requires: %{name} = %{version}-%{release} @@ -602,9 +645,6 @@ Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse Requires: %{name}-fuse = %{version}-%{release} -%if ( 0%{?_with_ipv6default:1} ) -Requires: libtirpc -%endif # self-heal daemon, rebalance, nfs-server etc. are actually clients Requires: %{name}-api = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} @@ -657,11 +697,11 @@ called Translators from GNU Hurd kernel. Much of the code in GlusterFS is in user space and easily manageable. This package provides the glusterfs server daemon. +%endif %prep %setup -q -n %{name}-%{version}%{?prereltag} -%patch0 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -685,9 +725,10 @@ sed -i -e 's/--quiet//' configure.ac %{?_without_ocf} \ %{?_without_rdma} \ %{?_without_syslog} \ + %{?_without_server} \ %{?_without_tiering} \ %{?_with_ipv6default} \ - %{?_with_libtirpc} + %{?_without_libtirpc} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -713,9 +754,11 @@ install -D -p -m 0644 %{SOURCE1} \ install -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd %else +%if ( 0%{!?_without_server:1} ) install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif +%endif %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -762,12 +805,14 @@ rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim %endif +%if ( 0%{!?_without_server:1} ) # Create working directory mkdir -p %{buildroot}%{_sharedstatedir}/glusterd # Update configuration file to /var/lib working directory sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ %{buildroot}%{_sysconfdir}/glusterfs/glusterd.vol +%endif # Install glusterfsd .service or init.d file %if ( 0%{_for_fedora_koji_builds} ) @@ -785,6 +830,7 @@ install -D -p -m 0644 extras/glusterfs-georep-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep %endif +%if ( 0%{!?_without_server:1} ) # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options @@ -803,19 +849,26 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/snaps mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/ss_brick touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid +%endif %if ( ! 0%{_for_fedora_koji_builds} ) find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs %endif +%if ( 0%{!?_without_server:1} ) ## Install bash completion for cli install -p -m 0755 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster +%endif + +%clean +rm -rf %{buildroot} ##----------------------------------------------------------------------------- ## All %%post should be placed here and keep them sorted ## %post +/sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %systemd_postun_with_restart rsyslog @@ -823,6 +876,8 @@ install -p -m 0755 -D extras/command-completion/gluster.bash \ %endif exit 0 +%post api -p /sbin/ldconfig + %if ( 0%{!?_without_events:1} ) %post events %systemd_post glustereventsd @@ -843,6 +898,11 @@ fi exit 0 %endif +%post libs +/sbin/ldconfig +exit 0 + +%if ( 0%{!?_without_server:1} ) %post server # Legacy server %systemd_post glusterd @@ -885,6 +945,7 @@ fi # BZ 834847 if [ -e /etc/ld.so.conf.d/glusterfs.conf ]; then rm -f /etc/ld.so.conf.d/glusterfs.conf + /sbin/ldconfig fi %if (0%{?_with_firewalld:1}) @@ -913,6 +974,7 @@ else rm -f %{_rundir}/glusterd.socket fi exit 0 +%endif ##----------------------------------------------------------------------------- ## All %%pre should be placed here and keep them sorted @@ -936,6 +998,7 @@ fi exit 0 %endif +%if ( 0%{!?_without_server:1} ) %preun server if [ $1 -eq 0 ]; then if [ -f %glusterfsd_svcfile ]; then @@ -954,11 +1017,13 @@ if [ $1 -ge 1 ]; then %systemd_postun_with_restart glusterd fi exit 0 +%endif ##----------------------------------------------------------------------------- ## All %%postun should be placed here and keep them sorted ## %postun +/sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) %systemd_postun_with_restart rsyslog @@ -966,11 +1031,22 @@ exit 0 %endif exit 0 +%postun api +/sbin/ldconfig +exit 0 + +%postun libs +/sbin/ldconfig +exit 0 + +%if ( 0%{!?_without_server:1} ) %postun server +/sbin/ldconfig %if (0%{?_with_firewalld:1}) %firewalld_reload %endif exit 0 +%endif ##----------------------------------------------------------------------------- ## All %%files should be placed here and keep them sorted by groups @@ -979,16 +1055,20 @@ exit 0 %{!?_licensedir:%global license %%doc} %license COPYING-GPLV2 COPYING-LGPLV3 %doc ChangeLog INSTALL README.md THANKS +%if ( 0%{!?_without_server:1} ) %{_mandir}/man8/*gluster*.8* +%endif %exclude %{_mandir}/man8/gluster.8* %dir %{_localstatedir}/log/glusterfs %if ( 0%{!?_without_rdma:1} ) %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif +%if ( 0%{!?_without_server:1} ) %dir %{_datadir}/glusterfs %dir %{_datadir}/glusterfs/scripts %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh +%endif # xlators that are needed on the client- and on the server-side %dir %{_libdir}/glusterfs %dir %{_libdir}/glusterfs/%{version}%{?prereltag} @@ -1034,7 +1114,7 @@ exit 0 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so %dir %attr(0775,gluster,gluster) %{_rundir}/gluster -%if 0%{?_tmpfilesdir:1} +%if 0%{?_tmpfilesdir:1} && 0%{!?_without_server:1} %{_tmpfilesdir}/gluster.conf %endif @@ -1052,10 +1132,12 @@ exit 0 %dir %{_includedir}/glusterfs/api %{_includedir}/glusterfs/api/* +%if ( 0%{!?_without_server:1} ) %files cli %{_sbindir}/gluster %{_mandir}/man8/gluster.8* %{_sysconfdir}/bash_completion.d/gluster +%endif %files client-xlators %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster @@ -1114,7 +1196,7 @@ exit 0 %endif %endif -%if ( 0%{?_with_gnfs:1} ) +%if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} ) %files gnfs %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/* @@ -1199,6 +1281,7 @@ exit 0 %{_prefix}/lib/ocf/resource.d/glusterfs %endif +%if ( 0%{!?_without_server:1} ) %files server %doc extras/clear_xattrs.sh # sysconf @@ -1239,6 +1322,7 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/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 %if ( 0%{!?_without_tiering:1} ) %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so %{_libdir}/libgfdb.so.* @@ -1334,6 +1418,8 @@ exit 0 %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh %if ( 0%{?_with_systemd:1} ) %{_libexecdir}/glusterfs/mount-shared-storage.sh + %{_datadir}/glusterfs/scripts/control-cpu-load.sh + %{_datadir}/glusterfs/scripts/control-mem.sh %endif # Incrementalapi @@ -1345,6 +1431,7 @@ exit 0 %if ( 0%{?_with_firewalld:1} ) %{_prefix}/lib/firewalld/services/glusterfs.xml %endif +%endif # Events %if ( 0%{!?_without_events:1} ) @@ -1367,11 +1454,11 @@ exit 0 %endif %changelog -* Thu Feb 15 2018 Kaleb S. KEITHLEY - 3.13.2-2 -- shared lib scriptlets, ldconfig +* Tue Feb 27 2018 Kaleb S. KEITHLEY - 4.0.0rc1-1 +- 4.0.0 RC1 -* Wed Feb 07 2018 Fedora Release Engineering - 3.13.2-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild +* Fri Feb 2 2018 Kaleb S. KEITHLEY - 4.0.0rc0-1 +- 4.0.0 RC0 * Sat Jan 20 2018 Kaleb S. KEITHLEY - 3.13.2-1 - 3.13.2 GA diff --git a/sources b/sources index fd2ca38..d42037c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.13.2.tar.gz) = 5c89390805b8c5cb3b1eed91300e239a3772a076c2ee1c14332688b509cb396e7ef5772d0b45905807515798bcaeef26c806017bdcdbb0efc83048c07b772d81 +SHA512 (glusterfs-4.0.0rc1.tar.gz) = afba232d8d4c7ce3932f64463bd41d902c97dea48bd6b2fc6dd52d2e35d69233adbada2e564f91752e25370d92e4a6de74bc3f6883a9133dfed8545d57ff0a06 From 2853f8d9239a857a818787550c6861c98f63f8de Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 1 Mar 2018 07:58:23 -0500 Subject: [PATCH 181/328] 4.0.0 RC1, python2-prettytable, .../rpms/glusterfs/pull-request/3 Signed-off-by: Kaleb S. KEITHLEY --- 0001-libtirpc.patch | 30 ------------------------------ glusterfs.spec | 11 +++++++---- 2 files changed, 7 insertions(+), 34 deletions(-) delete mode 100644 0001-libtirpc.patch diff --git a/0001-libtirpc.patch b/0001-libtirpc.patch deleted file mode 100644 index a88e781..0000000 --- a/0001-libtirpc.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 14fc0b826..0b48807f1 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -293,6 +293,10 @@ else - CFLAGS="${CFLAGS} -g -rdynamic" - fi - -+AC_ARG_WITH([libtirpc], -+ AS_HELP_STRING([--with-libtirpc], [Use libtirpc as RPC implementation (instead of sunrpc)]), -+ [], [with_libtirpc=no]) -+ - AC_ARG_WITH([ipv6-default], AC_HELP_STRING([--with-ipv6-default], [Set IPv6 as default.])) - if test "x$with_ipv6_default" = "xyes"; then - IPV6_DEFAULT=yes -@@ -1066,6 +1070,14 @@ AC_SUBST(GF_DISTRIBUTION) - GF_HOST_OS="" - GF_LDFLAGS="-rdynamic" - -+dnl include tirpc for IPv6 builds -+if test "x$with_libtirpc" = "xyes" || test "x$IPV6_DEFAULT" = "xyes" ; then -+ PKG_CHECK_MODULES([TIRPC], [libtirpc], -+ [GF_CFLAGS="$GF_CFLAGS $TIRPC_CFLAGS"; GF_LDFLAGS="$GF_LDFLAGS $TIRPC_LIBS";], -+ [AC_MSG_ERROR([libtirpc requested or needed for IPv6 default but library not found])] -+ ) -+fi -+ - dnl include tirpc for IPv6 builds - if test "x$IPV6_DEFAULT" = "xyes"; then - AC_CHECK_LIB([tirpc], [xdr_string], , AC_MSG_ERROR([libtirpc is required to build glusterfs with IPv6 default])) diff --git a/glusterfs.spec b/glusterfs.spec index f204578..3348c35 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -226,7 +226,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 4.0.0 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -410,7 +410,7 @@ This package provides the development libraries and include files. %package events Summary: GlusterFS Events Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: python2 python-prettytable +Requires: python2 python2-prettytable Requires: python2-gluster = %{version}-%{release} %if ( 0%{?rhel} ) Requires: python-requests @@ -488,7 +488,7 @@ Summary: GlusterFS Geo-replication Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} Requires: python2 -Requires: python-prettytable +Requires: python2-prettytable %if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif @@ -1454,7 +1454,10 @@ exit 0 %endif %changelog -* Tue Feb 27 2018 Kaleb S. KEITHLEY - 4.0.0rc1-1 +* Thu Mar 1 2018 Kaleb S. KEITHLEY - 4.0.0-0.2rc1 +- 4.0.0 RC1, python2-prettytable, .../rpms/glusterfs/pull-request/3 + +* Tue Feb 27 2018 Kaleb S. KEITHLEY - 4.0.0-0.1rc1 - 4.0.0 RC1 * Fri Feb 2 2018 Kaleb S. KEITHLEY - 4.0.0rc0-1 From bef36a0b9d32873222bdadd722f160b6351bdfdb Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 6 Mar 2018 11:11:10 -0500 Subject: [PATCH 182/328] 4.0.0 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 13 ++++++------- sources | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 3348c35..ec19e4b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,13 +1,9 @@ %global _hardened_build 1 -%if ( 0%{?fedora} && 0%{?fedora} > 27 ) -%undefine _strict_symbol_defs_build -%endif - %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag rc1 +# %%global prereltag rc1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -226,7 +222,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 4.0.0 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -235,7 +231,7 @@ Release: 0.@PACKAGE_RELEASE@%{?dist}.5 License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://download.gluster.org/pub/gluster/%{name}/qa-releases/%{version}%{?prereltag}/%{name}-%{version}%{prereltag}.tar.gz +Source0: http://download.gluster.org/pub/gluster/%{name}/4.0/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source6: rhel5-load-fuse-modules @@ -1454,6 +1450,9 @@ exit 0 %endif %changelog +* Tue Mar 6 2018 Kaleb S. KEITHLEY - 4.0.0-1 +- 4.0.0 GA + * Thu Mar 1 2018 Kaleb S. KEITHLEY - 4.0.0-0.2rc1 - 4.0.0 RC1, python2-prettytable, .../rpms/glusterfs/pull-request/3 diff --git a/sources b/sources index d42037c..a48fd64 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-4.0.0rc1.tar.gz) = afba232d8d4c7ce3932f64463bd41d902c97dea48bd6b2fc6dd52d2e35d69233adbada2e564f91752e25370d92e4a6de74bc3f6883a9133dfed8545d57ff0a06 +SHA512 (glusterfs-4.0.0.tar.gz) = acd3c462a8e15fb31f4b30d2e217928488e32d66ae7d1061df3e166354a4ddcdeb0ba0bcc994b7563f83376c882800fad07e190e0086fda987915c195266421f From 97c4e2fb0440d34dde2bffcf6338d8b04cd023fb Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 12 Mar 2018 07:31:40 -0400 Subject: [PATCH 183/328] 4.0.0 GA (v4.0.0-2) Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 9 ++++++--- sources | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index ec19e4b..9f62e55 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -222,7 +222,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 4.0.0 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -406,7 +406,7 @@ This package provides the development libraries and include files. %package events Summary: GlusterFS Events Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: python2 python2-prettytable +Requires: python2 python-prettytable Requires: python2-gluster = %{version}-%{release} %if ( 0%{?rhel} ) Requires: python-requests @@ -484,7 +484,7 @@ Summary: GlusterFS Geo-replication Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} Requires: python2 -Requires: python2-prettytable +Requires: python-prettytable %if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif @@ -1450,6 +1450,9 @@ exit 0 %endif %changelog +* Tue Mar 6 2018 Kaleb S. KEITHLEY - 4.0.0-2 +- 4.0.0 GA (v4.0.0-2) + * Tue Mar 6 2018 Kaleb S. KEITHLEY - 4.0.0-1 - 4.0.0 GA diff --git a/sources b/sources index a48fd64..0472c10 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-4.0.0.tar.gz) = acd3c462a8e15fb31f4b30d2e217928488e32d66ae7d1061df3e166354a4ddcdeb0ba0bcc994b7563f83376c882800fad07e190e0086fda987915c195266421f +SHA512 (glusterfs-4.0.0.tar.gz) = fca4020fb0e3fd7dbabb7b6e6ec270157a7a577941a73bf213770ba2f12a30e281e2a08d796c3a3e101fbef5f6f1958cf12e0696c7dd90d826fbd4d281d9afe4 From 476b98d21e98d9a1491498fc1591e82d67d6a8c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 20 Mar 2018 14:19:57 +0100 Subject: [PATCH 184/328] all platform provide the RDMA stack --- glusterfs.spec | 5 ----- 1 file changed, 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9f62e55..62e2887 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -83,11 +83,6 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma %{?_without_rdma:%global _without_rdma --disable-ibverbs} -# No RDMA Support on s390(x) -%ifarch s390 s390x %{arm} -%global _without_rdma --disable-ibverbs -%endif - # server # if you wish to build rpms without server components, compile like this # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without server From 9ab8bcb85ec3d1be38df15f9bcf3d9dfd3d94043 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 21 Mar 2018 11:21:14 -0400 Subject: [PATCH 185/328] 4.0.1 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 62e2887..f7a0a6c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -216,7 +216,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 4.0.0 +Version: 4.0.1 Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1445,8 +1445,11 @@ exit 0 %endif %changelog +* Wed Mar 21 2018 Kaleb S. KEITHLEY - 4.0.1-1 +- 4.0.1 GA + * Tue Mar 6 2018 Kaleb S. KEITHLEY - 4.0.0-2 -- 4.0.0 GA (v4.0.0-2) +- 4.0.0 GA (v4.0.0-2 respin) * Tue Mar 6 2018 Kaleb S. KEITHLEY - 4.0.0-1 - 4.0.0 GA diff --git a/sources b/sources index 0472c10..23d2fb1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-4.0.0.tar.gz) = fca4020fb0e3fd7dbabb7b6e6ec270157a7a577941a73bf213770ba2f12a30e281e2a08d796c3a3e101fbef5f6f1958cf12e0696c7dd90d826fbd4d281d9afe4 +SHA512 (glusterfs-4.0.1.tar.gz) = 1eb2d088ab9235866054ce05a9195ddfc8e961ec062aa03bddfbd9b3dc47867d7e0759e08bc95d4eec482920bef40ac7e380f930659fb5be6c5fac196e7c7ec9 From df17b7b7d0c7055d25bee58fe5d8017c9bb24267 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 19 Apr 2018 15:27:23 -0400 Subject: [PATCH 186/328] 4.0.1, restore python->python2 -prettytable Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f7a0a6c..ada4ca7 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -217,7 +217,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 4.0.1 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}3%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -401,7 +401,8 @@ This package provides the development libraries and include files. %package events Summary: GlusterFS Events Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: python2 python-prettytable +Requires: python2 +Requires: python2-prettytable Requires: python2-gluster = %{version}-%{release} %if ( 0%{?rhel} ) Requires: python-requests @@ -479,7 +480,7 @@ Summary: GlusterFS Geo-replication Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} Requires: python2 -Requires: python-prettytable +Requires: python2-prettytable %if ( 0%{?rhel} && 0%{?rhel} <= 7 ) BuildRequires: python-ctypes %endif @@ -1445,9 +1446,15 @@ exit 0 %endif %changelog -* Wed Mar 21 2018 Kaleb S. KEITHLEY - 4.0.1-1 +* Thu Apr 19 2018 Kaleb S. KEITHLEY - 4.0.1-3 +- 4.0.1, restore python->python2 -prettytable + +* Wed Mar 21 2018 Kaleb S. KEITHLEY - 4.0.1-2 - 4.0.1 GA +* Wed Mar 21 2018 Kaleb S. KEITHLEY - 4.0.1-1 +- (skipped by accident) + * Tue Mar 6 2018 Kaleb S. KEITHLEY - 4.0.0-2 - 4.0.0 GA (v4.0.0-2 respin) From e114b0a9d22266706282eb11590c68d1a80fcf59 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Tue, 24 Apr 2018 17:01:22 +0200 Subject: [PATCH 187/328] 4.0.2 GA Signed-off-by: Niels de Vos --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index ada4ca7..8e6e6f7 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -216,8 +216,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 4.0.1 -Release: %{?prereltag:0.}3%{?prereltag:.%{prereltag}}%{?dist} +Version: 4.0.2 +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1446,6 +1446,9 @@ exit 0 %endif %changelog +* Tue Apr 24 2018 Niels de Vos - 4.0.2-1 +- 4.0.2 GA + * Thu Apr 19 2018 Kaleb S. KEITHLEY - 4.0.1-3 - 4.0.1, restore python->python2 -prettytable diff --git a/sources b/sources index 23d2fb1..7ac1e3e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-4.0.1.tar.gz) = 1eb2d088ab9235866054ce05a9195ddfc8e961ec062aa03bddfbd9b3dc47867d7e0759e08bc95d4eec482920bef40ac7e380f930659fb5be6c5fac196e7c7ec9 +SHA512 (glusterfs-4.0.2.tar.gz) = 33afed4fb4f6d63f1d2b7caedae1ce41e7f6aa4299fb4a7ee2f5e4bc14c97d66f68097171fded6d1f2141dd7127eb408596cce4f5f7287038a14e387ad5ec5e6 From f0511a2a179dfe2e03aa622b23fe9781e1882ef0 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Tue, 13 Feb 2018 23:26:43 +0100 Subject: [PATCH 188/328] Remove BuildRoot definition None of currently supported distributions need that. It was needed last for EL5 which is EOL now Signed-off-by: Igor Gnatenko --- glusterfs.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8e6e6f7..d36a2d9 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -236,7 +236,6 @@ Source8: glusterfsd.init Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) Requires(pre): shadow-utils %if ( 0%{?rhel} && 0%{?rhel} < 6 ) From e99c7abbb9c67cb73e496014a0b1d00e17408a94 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Wed, 14 Feb 2018 07:13:56 +0100 Subject: [PATCH 189/328] Remove %clean section None of currently supported distributions need that. Last one was EL5 which is EOL for a while. Signed-off-by: Igor Gnatenko --- glusterfs.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index d36a2d9..d94d0ef 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -852,9 +852,6 @@ install -p -m 0755 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster %endif -%clean -rm -rf %{buildroot} - ##----------------------------------------------------------------------------- ## All %%post should be placed here and keep them sorted ## From 76e44828a59e25341f6e211c8fdc8c5734b346d2 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 12 Jun 2018 13:36:06 -0400 Subject: [PATCH 190/328] 4.1.0 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 56 ++++++++++++++++++++++++++------------------------ sources | 2 +- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index d94d0ef..394155b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag rc1 +# %%global prereltag rc0 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -69,7 +69,7 @@ # Do not use libtirpc on EL6, it does not have xdr_uint64_t() and xdr_uint32_t # Do not use libtirpc on EL7, it does not have xdr_sizeof() -%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) %global _without_libtirpc --without-libtirpc %endif @@ -78,7 +78,7 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} -#rdma +# rdma # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma %{?_without_rdma:%global _without_rdma --disable-ibverbs} @@ -89,7 +89,7 @@ %{?_without_server:%global _without_server --without-server} # disable server components forcefully as rhel <= 6 -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) %global _without_server --without-server %endif @@ -102,7 +102,7 @@ # Fedora deprecated syslog, see # https://fedoraproject.org/wiki/Changes/NoDefaultSyslog # (And what about RHEL7?) -%if ( ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} < 7 ) ) +%if ( ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} < 7 ) ) %global _without_syslog --disable-syslog %endif @@ -216,7 +216,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 4.0.2 +Version: 4.1.0 Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -226,7 +226,7 @@ Release: 0.@PACKAGE_RELEASE@%{?dist}.5 License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://download.gluster.org/pub/gluster/%{name}/4.0/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz +Source0: http://download.gluster.org/pub/gluster/%{name}/4.1/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source6: rhel5-load-fuse-modules @@ -239,7 +239,7 @@ Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz Requires(pre): shadow-utils %if ( 0%{?rhel} && 0%{?rhel} < 6 ) -BuildRequires: python-simplejson +BuildRequires: python2-simplejson %endif %if ( 0%{?_with_systemd:1} ) BuildRequires: systemd @@ -255,10 +255,10 @@ BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel BuildRequires: libaio-devel libacl-devel BuildRequires: python2-devel -%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) BuildRequires: python-ctypes %endif -%if ( 0%{?_with_ipv6default:1} || 0%{!?_without_libtirpc:1} ) +%if ( ( 0%{?_with_ipv6default:1} ) || ( 0%{!?_without_libtirpc:1} ) ) BuildRequires: libtirpc-devel %endif %if ( 0%{?fedora} && 0%{?fedora} > 27 ) @@ -433,9 +433,6 @@ Summary: Extra Gluster filesystem Translators # site-packages area Requires: python2-gluster = %{version}-%{release} Requires: python2 -%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) -BuildRequires: python-ctypes -%endif %description extra-xlators GlusterFS is a distributed file-system capable of scaling to several @@ -480,9 +477,6 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} Requires: python2 Requires: python2-prettytable -%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) -BuildRequires: python-ctypes -%endif Requires: python2-gluster = %{version}-%{release} Requires: rsync @@ -658,7 +652,7 @@ Requires(postun): /sbin/service Requires: firewalld-filesystem %endif %endif -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} ) Requires: rpcbind %else Requires: portmap @@ -666,10 +660,10 @@ Requires: portmap %if ( 0%{?rhel} && 0%{?rhel} < 6 ) Obsoletes: %{name}-geo-replication = %{version}-%{release} %endif -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse %endif -%if ( 0%{?fedora} && 0%{?fedora} >= 28 ) +%if ( 0%{?fedora} && 0%{?fedora} > 27 ) Requires: python2-pyxattr %else Requires: pyxattr @@ -715,8 +709,8 @@ sed -i -e 's/--quiet//' configure.ac %{?_without_georeplication} \ %{?_without_ocf} \ %{?_without_rdma} \ - %{?_without_syslog} \ %{?_without_server} \ + %{?_without_syslog} \ %{?_without_tiering} \ %{?_with_ipv6default} \ %{?_without_libtirpc} @@ -858,7 +852,7 @@ install -p -m 0755 -D extras/command-completion/gluster.bash \ %post /sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} ) %systemd_postun_with_restart rsyslog %endif %endif @@ -964,7 +958,7 @@ fi exit 0 %endif - ##----------------------------------------------------------------------------- +##----------------------------------------------------------------------------- ## All %%pre should be placed here and keep them sorted ## %pre @@ -1013,7 +1007,7 @@ exit 0 %postun /sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} ) %systemd_postun_with_restart rsyslog %endif %endif @@ -1082,11 +1076,14 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/utime.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/namespace.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-client.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/worm.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cloudsync.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/meta.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-cache.so @@ -1179,9 +1176,6 @@ exit 0 %{_bindir}/fusermount-glusterfs %endif %if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules -%endif %endif %if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} ) @@ -1308,6 +1302,7 @@ 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 @@ -1357,8 +1352,9 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh - %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S13create-subdir-mounts.sh %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post/S10selinux-label-brick.sh @@ -1442,6 +1438,12 @@ exit 0 %endif %changelog +* Tue Jun 12 2018 Kaleb S. KEITHLEY - 4.1.0-1 +- 4.1.0 GA + +* Fri Jun 1 2018 Kaleb S. KEITHLEY - 4.1.0rc0 +- 4.1.0 RC0 + * Tue Apr 24 2018 Niels de Vos - 4.0.2-1 - 4.0.2 GA diff --git a/sources b/sources index 7ac1e3e..749100b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-4.0.2.tar.gz) = 33afed4fb4f6d63f1d2b7caedae1ce41e7f6aa4299fb4a7ee2f5e4bc14c97d66f68097171fded6d1f2141dd7127eb408596cce4f5f7287038a14e387ad5ec5e6 +SHA512 (glusterfs-4.1.0.tar.gz) = 4cb84c93dfff7e533fb135f4e0631dd3c7dfb513c1b9ff4f1a23ed92acc1d839965d10b54cf71dbe1a756b09d89f80d6bfb8226956b01438149421102c902e0e From b9d82b8a449bc3f847bfdd908781eb29263f4ee7 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 25 Jun 2018 23:46:02 -0400 Subject: [PATCH 191/328] 4.1.0 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 394155b..0518b1c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -216,7 +216,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 4.1.0 +Version: 4.1.1 Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1438,6 +1438,9 @@ exit 0 %endif %changelog +* Tue Jun 26 2018 Kaleb S. KEITHLEY - 4.1.1-1 +- 4.1.0 GA + * Tue Jun 12 2018 Kaleb S. KEITHLEY - 4.1.0-1 - 4.1.0 GA diff --git a/sources b/sources index 749100b..16b4d54 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-4.1.0.tar.gz) = 4cb84c93dfff7e533fb135f4e0631dd3c7dfb513c1b9ff4f1a23ed92acc1d839965d10b54cf71dbe1a756b09d89f80d6bfb8226956b01438149421102c902e0e +SHA512 (glusterfs-4.1.1.tar.gz) = 86dc4572b1fa6fb3b773f252fae6dcfc07b9f617759aa0b0288b59addca956a035451e99ed3671d7f72a385eb6a55df539062f529e2a60771f5e6f7cbe6e2856 From b05ab73fc93df54d219a8e5fae0cfd8a2a60dd11 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 11 Jul 2018 09:57:26 -0400 Subject: [PATCH 192/328] missed python->python2 in shebang Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 9 +++++++-- python.patch | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 python.patch diff --git a/glusterfs.spec b/glusterfs.spec index 0518b1c..8d44015 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -217,7 +217,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 4.1.1 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -227,6 +227,7 @@ License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) Source0: http://download.gluster.org/pub/gluster/%{name}/4.1/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz +Patch0: python.patch Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source6: rhel5-load-fuse-modules @@ -687,6 +688,7 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} +%patch0 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -1438,8 +1440,11 @@ exit 0 %endif %changelog +* Wed Jul 11 2018 Kaleb S. KEITHLEY - 4.1.1-2 +- missed python->python2 in shebang + * Tue Jun 26 2018 Kaleb S. KEITHLEY - 4.1.1-1 -- 4.1.0 GA +- 4.1.1 GA * Tue Jun 12 2018 Kaleb S. KEITHLEY - 4.1.0-1 - 4.1.0 GA diff --git a/python.patch b/python.patch new file mode 100644 index 0000000..b8d8730 --- /dev/null +++ b/python.patch @@ -0,0 +1,32 @@ +--- glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-c.py.orig 2018-07-11 09:40:35.166390285 -0400 ++++ glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-c.py 2018-07-11 09:41:00.743390285 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + + import os + import sys +--- glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-h.py.orig 2018-07-11 09:40:49.035390285 -0400 ++++ glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-h.py 2018-07-11 09:41:06.015390285 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + + import os + import sys +--- glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-c.py.orig 2018-07-11 09:41:30.646390285 -0400 ++++ glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-c.py 2018-07-11 09:41:53.033390285 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + + from __future__ import print_function + import os +--- glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-h.py.orig 2018-07-11 09:41:38.198390285 -0400 ++++ glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-h.py 2018-07-11 09:41:55.423390285 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + + from __future__ import print_function + import os From 05c09e5c263303bdf094a81492bc6a505989c675 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 13 Jul 2018 02:45:55 +0000 Subject: [PATCH 193/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8d44015..2aef96d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -217,11 +217,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 4.1.1 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist}.1 %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.5 +Release: 0.@PACKAGE_RELEASE@%{?dist}.6 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1440,6 +1440,9 @@ exit 0 %endif %changelog +* Fri Jul 13 2018 Fedora Release Engineering - 4.1.1-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Wed Jul 11 2018 Kaleb S. KEITHLEY - 4.1.1-2 - missed python->python2 in shebang From 139ee9d390beb37a3bcc59589f4b6599bb62cfb1 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 24 Jul 2018 09:57:02 -0400 Subject: [PATCH 194/328] 4.1.2 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 2aef96d..f982ab3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -216,8 +216,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 4.1.1 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist}.1 +Version: 4.1.2 +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}.1 %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1440,6 +1440,9 @@ exit 0 %endif %changelog +* Tue Jul 24 2018 Kaleb S. KEITHLEY - 4.1.2-1 +- 4.1.2 GA + * Fri Jul 13 2018 Fedora Release Engineering - 4.1.1-2.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild diff --git a/sources b/sources index 16b4d54..2f0205e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-4.1.1.tar.gz) = 86dc4572b1fa6fb3b773f252fae6dcfc07b9f617759aa0b0288b59addca956a035451e99ed3671d7f72a385eb6a55df539062f529e2a60771f5e6f7cbe6e2856 +SHA512 (glusterfs-4.1.2.tar.gz) = 1db46edd78a72c928f617ad31aa70d84e3bce9498273df3ff1021b1308fb99f02cb99d518fbe2d8e6c19956d03411b13b88b6f2b2cf23d9accdf8c486fe4db0b From bf7716b0cc880811028f1a792f9f3de776e59053 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 24 Jul 2018 15:31:42 -0400 Subject: [PATCH 195/328] 4.1.2, gsyncd.conf /usr/local/sbin Signed-off-by: Kaleb S. KEITHLEY --- ...x-hard-coded-paths-in-gsyncd.conf.in.patch | 38 +++++++++++++++++++ glusterfs.spec | 7 +++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch diff --git a/0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch b/0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch new file mode 100644 index 0000000..c2229f1 --- /dev/null +++ b/0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch @@ -0,0 +1,38 @@ +From a0a0afc59bb1d2deddfdb776bc9e49e02f58ce32 Mon Sep 17 00:00:00 2001 +From: "Kaleb S. KEITHLEY" +Date: Tue, 24 Jul 2018 14:40:51 -0400 +Subject: [PATCH] georep: fix hard-coded paths in gsyncd.conf.in + +Why anyone puts a hard-coded path like /usr/local/sbin in a +config file is beyond me. + +I wonder how many more are lurking in our sources + +Change-Id: I6523894416cc06236ea1f99529efd36e957bd98e +updates: bz#1193929 +Signed-off-by: Kaleb S. KEITHLEY +--- + geo-replication/gsyncd.conf.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/geo-replication/gsyncd.conf.in b/geo-replication/gsyncd.conf.in +index 0a842cf2b..bd04400ff 100644 +--- a/geo-replication/gsyncd.conf.in ++++ b/geo-replication/gsyncd.conf.in +@@ -138,11 +138,11 @@ value = + help=If SSH keys are not secured with gsyncd prefix then use this configuration to set the actual path of gsyncd(Usually /usr/libexec/glusterfs/gsyncd) + + [gluster-command-dir] +-value=/usr/local/sbin/ ++value=@SBIN_DIR@ + help=Directory where Gluster binaries exist on master + + [slave-gluster-command-dir] +-value=/usr/local/sbin/ ++value=@SBIN_DIR@ + help=Directory where Gluster binaries exist on slave + + [gluster-params] +-- +2.17.1 + diff --git a/glusterfs.spec b/glusterfs.spec index f982ab3..02a4c2f 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -217,7 +217,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 4.1.2 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}.1 +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist}.1 %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -228,6 +228,7 @@ URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) Source0: http://download.gluster.org/pub/gluster/%{name}/4.1/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz Patch0: python.patch +Patch1: 0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source6: rhel5-load-fuse-modules @@ -689,6 +690,7 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} %patch0 -p1 +%patch1 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -1440,6 +1442,9 @@ exit 0 %endif %changelog +* Tue Jul 24 2018 Kaleb S. KEITHLEY - 4.1.2-2 +- 4.1.2, gsyncd.conf /usr/local/sbin + * Tue Jul 24 2018 Kaleb S. KEITHLEY - 4.1.2-1 - 4.1.2 GA From 6727d5244ddd423cd9bf931ad176db5f701a8a81 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 25 Jul 2018 10:32:55 -0400 Subject: [PATCH 196/328] 4.1.2, again Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 02a4c2f..69306cc 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -217,7 +217,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 4.1.2 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist}.1 +Release: %{?prereltag:1.}3%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1442,6 +1442,9 @@ exit 0 %endif %changelog +* Wed Jul 26 2018 Kaleb S. KEITHLEY - 4.1.2-3 +- 4.1.2, again + * Tue Jul 24 2018 Kaleb S. KEITHLEY - 4.1.2-2 - 4.1.2, gsyncd.conf /usr/local/sbin From f1c3e1ab5f32436ad9b205c29a53e4683cced6bb Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 27 Aug 2018 09:46:20 -0400 Subject: [PATCH 197/328] 4.1.3 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 10 +++++++--- sources | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 69306cc..0f3ee7e 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -146,6 +146,7 @@ %global _without_georeplication --disable-georeplication %global _with_gnfs %{nil} %global _without_tiering --disable-tiering +%global _without_ocf --without-ocf %endif # From https://fedoraproject.org/wiki/Packaging:Python#Macros @@ -216,8 +217,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 4.1.2 -Release: %{?prereltag:1.}3%{?prereltag:.%{prereltag}}%{?dist} +Version: 4.1.3 +Release: %{?prereltag:1.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1442,7 +1443,10 @@ exit 0 %endif %changelog -* Wed Jul 26 2018 Kaleb S. KEITHLEY - 4.1.2-3 +* Mon Aug 27 2018 Kaleb S. KEITHLEY - 4.1.3-1 +- 4.1.3 GA + +* Wed Jul 25 2018 Kaleb S. KEITHLEY - 4.1.2-3 - 4.1.2, again * Tue Jul 24 2018 Kaleb S. KEITHLEY - 4.1.2-2 diff --git a/sources b/sources index 2f0205e..eeb3e1a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-4.1.2.tar.gz) = 1db46edd78a72c928f617ad31aa70d84e3bce9498273df3ff1021b1308fb99f02cb99d518fbe2d8e6c19956d03411b13b88b6f2b2cf23d9accdf8c486fe4db0b +SHA512 (glusterfs-4.1.3.tar.gz) = 5da28a8680c5ff6b1785ff92b630a489fa73e0a3068041ec9b259a3ea536f0c3847a8892c0e5abc166b5179ddca4058affbbd46494558b23922c512fc2fefd12 From a7dfa968c6c921538237283f06652e68381bcc8c Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 4 Sep 2018 07:04:30 -0400 Subject: [PATCH 198/328] --with-ipv6-default Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 0f3ee7e..80cfcc2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -60,7 +60,7 @@ # ipv6default # if you wish to compile an rpm with IPv6 default... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default -%{?_with_ipv6default:%global _with_ipv6default --with-ipv6default} +%{?_with_ipv6default:%global _with_ipv6default --with-ipv6-default} # libtirpc # if you wish to compile an rpm without TIRPC (i.e. use legacy glibc rpc) @@ -1443,6 +1443,9 @@ exit 0 %endif %changelog +* Tue Sep 4 2018 Kaleb S. KEITHLEY +- --with-ipv6-default + * Mon Aug 27 2018 Kaleb S. KEITHLEY - 4.1.3-1 - 4.1.3 GA From 85ce4a1da668828babca9a1d1e3d2f8281709fbb Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 4 Sep 2018 07:16:16 -0400 Subject: [PATCH 199/328] missing /run/gluster/metrics, see bz#1624006 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 80cfcc2..7ee1995 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -218,7 +218,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 4.1.3 -Release: %{?prereltag:1.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:1.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -760,7 +760,7 @@ install -D -p -m 0755 %{SOURCE6} \ mkdir -p %{buildroot}%{_localstatedir}/log/glusterd mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd -mkdir -p %{buildroot}%{_rundir}/gluster +mkdir -p %{buildroot}%{_rundir}/gluster/metrics # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete @@ -1104,6 +1104,7 @@ exit 0 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so %dir %attr(0775,gluster,gluster) %{_rundir}/gluster +%dir %attr(0775,gluster,gluster) %{_rundir}/gluster/metrics %if 0%{?_tmpfilesdir:1} && 0%{!?_without_server:1} %{_tmpfilesdir}/gluster.conf %endif @@ -1443,8 +1444,11 @@ exit 0 %endif %changelog +* Tue Sep 4 2018 Kaleb S. KEITHLEY - 4.1.3-2 +- missing /run/gluster/metrics, see bz#1624006 + * Tue Sep 4 2018 Kaleb S. KEITHLEY -- --with-ipv6-default +- --with-ipv6-default bz#1614769 * Mon Aug 27 2018 Kaleb S. KEITHLEY - 4.1.3-1 - 4.1.3 GA From 4526f13f807e59e67fa7752bc2fc9c1dac3c231b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 6 Sep 2018 13:39:28 -0400 Subject: [PATCH 200/328] 4.1.4 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 7ee1995..2019fdc 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -217,8 +217,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 4.1.3 -Release: %{?prereltag:1.}2%{?prereltag:.%{prereltag}}%{?dist} +Version: 4.1.4 +Release: %{?prereltag:1.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1444,6 +1444,9 @@ exit 0 %endif %changelog +* Thu Sep 6 2018 Kaleb S. KEITHLEY - 4.1.4-1 +- 4.1.4 GA + * Tue Sep 4 2018 Kaleb S. KEITHLEY - 4.1.3-2 - missing /run/gluster/metrics, see bz#1624006 diff --git a/sources b/sources index eeb3e1a..568f205 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-4.1.3.tar.gz) = 5da28a8680c5ff6b1785ff92b630a489fa73e0a3068041ec9b259a3ea536f0c3847a8892c0e5abc166b5179ddca4058affbbd46494558b23922c512fc2fefd12 +SHA512 (glusterfs-4.1.4.tar.gz) = 7ef82170c9025ea74867382acc17e4fde55af82d4b04138fb74800c3fc28f018f9ec493069fd14961310dece6cb386973fb07e00d5cad59a9aaf6020155cba56 From 68233240eb20d0555f99c7ee119c9c15c7a4d8bb Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 18 Sep 2018 07:35:21 -0400 Subject: [PATCH 201/328] 5.0 RC0 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 156 +++++++++++++++++++++++++++++++------------------ sources | 2 +- 2 files changed, 101 insertions(+), 57 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 2019fdc..4c7aa3c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,12 +3,21 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag rc0 +%global prereltag rc0 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted ## +# asan +# if you wish to compile an rpm with address sanitizer... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with asan +%{?_with_asan:%global _with_asan --enable-asan} + +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +%global _with_asan %{nil} +%endif + # bd # if you wish to compile an rpm without the BD map support... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd @@ -149,6 +158,14 @@ %global _without_ocf --without-ocf %endif +%if ( 0%{?fedora} && 0%{?fedora} > 26 ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) +%global _usepython3 1 +%global _pythonver 3 +%else +%global _usepython3 0 +%global _pythonver 2 +%endif + # From https://fedoraproject.org/wiki/Packaging:Python#Macros %if ( 0%{?rhel} && 0%{?rhel} < 7 ) %{!?python2_sitelib: %global python2_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} @@ -217,8 +234,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 4.1.4 -Release: %{?prereltag:1.}1%{?prereltag:.%{prereltag}}%{?dist} +Version: 5.0 +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -228,8 +245,6 @@ License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) Source0: http://download.gluster.org/pub/gluster/%{name}/4.1/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz -Patch0: python.patch -Patch1: 0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source6: rhel5-load-fuse-modules @@ -241,9 +256,6 @@ Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz Requires(pre): shadow-utils -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -BuildRequires: python2-simplejson -%endif %if ( 0%{?_with_systemd:1} ) BuildRequires: systemd %endif @@ -252,12 +264,15 @@ Requires: %{name}-libs = %{version}-%{release} %if ( 0%{?_with_systemd:1} ) %{?systemd_requires} %endif +%if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 ) +BuildRequires: libasan +%endif BuildRequires: bison flex BuildRequires: gcc make libtool BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel BuildRequires: libaio-devel libacl-devel -BuildRequires: python2-devel +BuildRequires: python%{_pythonver}-devel %if ( 0%{?rhel} && 0%{?rhel} < 8 ) BuildRequires: python-ctypes %endif @@ -403,13 +418,13 @@ This package provides the development libraries and include files. %package events Summary: GlusterFS Events Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: python2 -Requires: python2-prettytable -Requires: python2-gluster = %{version}-%{release} +Requires: python%{_python_ver} +Requires: python%{_python_ver}-prettytable +Requires: python%{_python_ver}-gluster = %{version}-%{release} %if ( 0%{?rhel} ) Requires: python-requests %else -Requires: python2-requests +Requires: python%{_python_ver}-requests %endif %if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse @@ -434,8 +449,8 @@ This package provides the GlusterFS Events Summary: Extra Gluster filesystem Translators # We need python2-gluster rpm for gluster module's __init__.py in Python # site-packages area -Requires: python2-gluster = %{version}-%{release} -Requires: python2 +Requires: python%{_python_ver}-gluster = %{version}-%{release} +Requires: python%{_python_ver} %description extra-xlators GlusterFS is a distributed file-system capable of scaling to several @@ -473,14 +488,29 @@ is in user space and easily manageable. This package provides support to FUSE based clients and includes the glusterfsd and glusterfs binaries. +%package cloudsync-plugins +Summary: Cloudsync Plugins +BuildRequires: libcurl-devel + +%description cloudsync-plugins +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides cloudsync plugins for archival feature. + %if ( 0%{!?_without_georeplication:1} ) %package geo-replication Summary: GlusterFS Geo-replication Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} -Requires: python2 -Requires: python2-prettytable -Requires: python2-gluster = %{version}-%{release} +Requires: python%{_pythonver} +Requires: python%{_pythonver}-prettytable +Requires: python%{_pythonver}-gluster = %{version}-%{release} Requires: rsync %description geo-replication @@ -528,35 +558,26 @@ is in user space and easily manageable. This package provides the base GlusterFS libraries -%package -n python-gluster +%package -n python%{_pythonver}-gluster Summary: GlusterFS python library -%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) ) -# EL5 does not support noarch sub-packages -BuildArch: noarch -%endif - -%global _python_gluster_description \ -GlusterFS is a distributed file-system capable of scaling to several\ -petabytes. It aggregates various storage bricks over Infiniband RDMA\ -or TCP/IP interconnect into one large parallel network file\ -system. GlusterFS is one of the most sophisticated file systems in\ -terms of features and extensibility. It borrows a powerful concept\ -called Translators from GNU Hurd kernel. Much of the code in GlusterFS\ -is in user space and easily manageable.\ -\ -This package contains the python modules of GlusterFS and own gluster\ -namespace. - -%description -n python-gluster %{_python_gluster_description} - -%package -n python2-gluster -Summary: GlusterFS python library -%{?python_provide:%python_provide python2-gluster} -Requires: python2 +Requires: python%{_pythonver} +%if ( ! %{_usepython3} ) +%{?python_provide:%python_provide python-gluster} Provides: python-gluster = %{version}-%{release} Obsoletes: python-gluster < 3.10 +%endif -%description -n python2-gluster %{_python_gluster_description} +%description -n python%{_pythonver}-gluster +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package contains the python modules of GlusterFS and own gluster +namespace. %if ( 0%{!?_without_rdma:1} ) %package rdma @@ -590,7 +611,7 @@ Requires: %{name}-server = %{version}-%{release} ## thin provisioning support Requires: lvm2 >= 2.02.89 Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng -Requires: python2 attr dbench file git libacl-devel net-tools +Requires: python%{_pythonver} attr dbench file git libacl-devel net-tools Requires: nfs-utils xfsprogs yajl psmisc bc %description regression-tests @@ -666,8 +687,8 @@ Obsoletes: %{name}-geo-replication = %{version}-%{release} %if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse %endif -%if ( 0%{?fedora} && 0%{?fedora} > 27 ) -Requires: python2-pyxattr +%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) +Requires: python%{_pythonver}-pyxattr %else Requires: pyxattr %endif @@ -690,8 +711,6 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} -%patch0 -p1 -%patch1 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -701,6 +720,7 @@ export CFLAGS sed -i -e 's/--quiet//' configure.ac ./autogen.sh && %configure \ + %{?_with_asan} \ %{?_with_cmocka} \ %{?_with_debug} \ %{?_with_firewalld} \ @@ -735,9 +755,6 @@ make check %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} -# Install include directory -install -p -m 0644 contrib/uuid/*.h \ - %{buildroot}%{_includedir}/glusterfs/ %if ( 0%{_for_fedora_koji_builds} ) install -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd @@ -1041,7 +1058,7 @@ exit 0 %files %{!?_licensedir:%global license %%doc} %license COPYING-GPLV2 COPYING-LGPLV3 -%doc ChangeLog INSTALL README.md THANKS +%doc ChangeLog INSTALL README.md THANKS COMMITMENT %if ( 0%{!?_without_server:1} ) %{_mandir}/man8/*gluster*.8* %endif @@ -1136,7 +1153,6 @@ exit 0 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so - %files devel %dir %{_includedir}/glusterfs %{_includedir}/glusterfs/* @@ -1159,16 +1175,28 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so +%if ( %{_usepython3} ) +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/__pycache__ + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/__pycache__/* +%endif %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground/template.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features/template.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so # Glupy Python files +%if ( %{_usepython3} ) +%dir %{python3_sitelib}/gluster +%dir %{python3_sitelib}/gluster/__pycache__ + %{python3_sitelib}/gluster/__pycache__/* +%dir %{python3_sitelib}/gluster/glupy + %{python3_sitelib}/gluster/glupy/* +%else %dir %{python2_sitelib}/gluster %dir %{python2_sitelib}/gluster/glupy %{python2_sitelib}/gluster/glupy/* +%endif %files fuse # glusterfs is a symlink to glusterfsd, -server depends on -fuse. @@ -1184,6 +1212,10 @@ exit 0 %if ( 0%{_for_fedora_koji_builds} ) %endif +%files cloudsync-plugins +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins + %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so + %if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} ) %files gnfs %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs @@ -1241,12 +1273,18 @@ exit 0 %exclude %{_libdir}/libgfdb.* %endif -%files -n python2-gluster +%files -n python%{_pythonver}-gluster # introducing glusterfs module in site packages. # 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/cliutils +%else %dir %{python2_sitelib}/gluster %{python2_sitelib}/gluster/__init__.* %{python2_sitelib}/gluster/cliutils +%endif %if ( 0%{!?_without_rdma:1} ) %files rdma @@ -1350,6 +1388,7 @@ exit 0 %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/metadata-cache %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/gluster-block %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/nl-cache + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/db-workload %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd @@ -1421,6 +1460,8 @@ exit 0 %if ( 0%{?_with_firewalld:1} ) %{_prefix}/lib/firewalld/services/glusterfs.xml %endif + +# end of server files %endif # Events @@ -1444,6 +1485,9 @@ exit 0 %endif %changelog +* Tue Sep 18 2018 Kaleb S. KEITHLEY - 5.0rc0-0.1 +- 5.0 RC0 + * Thu Sep 6 2018 Kaleb S. KEITHLEY - 4.1.4-1 - 4.1.4 GA diff --git a/sources b/sources index 568f205..9af4727 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-4.1.4.tar.gz) = 7ef82170c9025ea74867382acc17e4fde55af82d4b04138fb74800c3fc28f018f9ec493069fd14961310dece6cb386973fb07e00d5cad59a9aaf6020155cba56 +SHA512 (glusterfs-5.0rc0.tar.gz) = 70e7cc94885b3646f4f995eb6cfe4e589c7b18473471375e6f4ebb279d784a0b155cd5e440cd928d5482e80f131d63149b1e01fad5629b103ad99c8dd2c7f83e From f014efdf53a67ec59ea4cd88dace8c68e1b9f39c Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 20 Sep 2018 09:35:23 -0400 Subject: [PATCH 202/328] 5.0 RC0 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4c7aa3c..947cc05 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -62,10 +62,6 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs %{?_with_gnfs:%global _with_gnfs --enable-gnfs} -%if ( 0%{_for_fedora_koji_builds} ) -%global _with_gnfs --enable-gnfs -%endif - # ipv6default # if you wish to compile an rpm with IPv6 default... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default @@ -235,7 +231,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 5.0 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -418,13 +414,13 @@ This package provides the development libraries and include files. %package events Summary: GlusterFS Events Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: python%{_python_ver} -Requires: python%{_python_ver}-prettytable -Requires: python%{_python_ver}-gluster = %{version}-%{release} +Requires: python%{_pythonver} +Requires: python%{_pythonver}-prettytable +Requires: python%{_pythonver}-gluster = %{version}-%{release} %if ( 0%{?rhel} ) Requires: python-requests %else -Requires: python%{_python_ver}-requests +Requires: python%{_pythonver}-requests %endif %if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse @@ -449,8 +445,8 @@ This package provides the GlusterFS Events Summary: Extra Gluster filesystem Translators # We need python2-gluster rpm for gluster module's __init__.py in Python # site-packages area -Requires: python%{_python_ver}-gluster = %{version}-%{release} -Requires: python%{_python_ver} +Requires: python%{_pythonver}-gluster = %{version}-%{release} +Requires: python%{_pythonver} %description extra-xlators GlusterFS is a distributed file-system capable of scaling to several @@ -756,10 +752,12 @@ make check rm -rf %{buildroot} make install DESTDIR=%{buildroot} %if ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{!?_without_server:1} ) install -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd 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 \ @@ -822,9 +820,11 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %endif # Install glusterfsd .service or init.d file +%if ( 0%{!?_without_server:1} ) %if ( 0%{_for_fedora_koji_builds} ) %service_install glusterfsd %{glusterfsd_svcfile} %endif +%endif install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs @@ -1059,10 +1059,10 @@ exit 0 %{!?_licensedir:%global license %%doc} %license COPYING-GPLV2 COPYING-LGPLV3 %doc ChangeLog INSTALL README.md THANKS COMMITMENT -%if ( 0%{!?_without_server:1} ) %{_mandir}/man8/*gluster*.8* -%endif +%if ( 0%{!?_without_server:1} ) %exclude %{_mandir}/man8/gluster.8* +%endif %dir %{_localstatedir}/log/glusterfs %if ( 0%{!?_without_rdma:1} ) %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* @@ -1485,6 +1485,9 @@ exit 0 %endif %changelog +* Thu Sep 20 2018 Kaleb S. KEITHLEY - 5.0rc0-0.2 +- 5.0 RC0 + * Tue Sep 18 2018 Kaleb S. KEITHLEY - 5.0rc0-0.1 - 5.0 RC0 From 7c1761e92ee4ed35fc12d8d64e3f33f827765c68 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 25 Sep 2018 06:52:26 -0400 Subject: [PATCH 203/328] 5.0 RC0, unbork python shebangs Signed-off-by: Kaleb S. KEITHLEY --- 0001-configure.ac.patch | 42 +++++++++++++++++++ ...x-hard-coded-paths-in-gsyncd.conf.in.patch | 38 ----------------- glusterfs.spec | 12 +++++- 3 files changed, 53 insertions(+), 39 deletions(-) create mode 100644 0001-configure.ac.patch delete mode 100644 0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch diff --git a/0001-configure.ac.patch b/0001-configure.ac.patch new file mode 100644 index 0000000..55733ad --- /dev/null +++ b/0001-configure.ac.patch @@ -0,0 +1,42 @@ +--- glusterfs-5.0rc0/configure.ac.orig 2018-09-24 12:44:51.547254900 -0400 ++++ glusterfs-5.0rc0/configure.ac 2018-09-24 12:55:49.464254900 -0400 +@@ -629,12 +629,14 @@ + *) + if test -x /usr/bin/python3; then + PYTHON=/usr/bin/python3 +- else ++ fi ++ if test -x /usr/bin/python2; then + PYTHON=/usr/bin/python2 + fi + ;; + esac + fi ++ + AM_PATH_PYTHON([2.6],,[:]) + if test -n "${PYTHON}"; then + have_python=yes +@@ -1688,13 +1690,16 @@ + + pushd $(dirname $0) &> /dev/null + if test ! -e python-shebangs; then +- touch python-shebangs +- if test "x${PYTHON}" = "x/usr/bin/python2"; then +- echo "fixing python shebangs..." +- for f in api events extras geo-replication libglusterfs tests tools xlators; do +- find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \; +- done +- echo "...done" ++ dnl koji's mock buildSRPMFromSCM subtask run's configure, with ++ if test -n "${PYTHON}"; then ++ touch python-shebangs ++ if test "x${PYTHON}" = "x/usr/bin/python2"; then ++ echo "fixing python shebangs..." ++ for f in api events extras geo-replication libglusterfs tests tools xlators; do ++ find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \; ++ done ++ echo "...done" ++ fi + fi + fi + popd &> /dev/null diff --git a/0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch b/0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch deleted file mode 100644 index c2229f1..0000000 --- a/0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch +++ /dev/null @@ -1,38 +0,0 @@ -From a0a0afc59bb1d2deddfdb776bc9e49e02f58ce32 Mon Sep 17 00:00:00 2001 -From: "Kaleb S. KEITHLEY" -Date: Tue, 24 Jul 2018 14:40:51 -0400 -Subject: [PATCH] georep: fix hard-coded paths in gsyncd.conf.in - -Why anyone puts a hard-coded path like /usr/local/sbin in a -config file is beyond me. - -I wonder how many more are lurking in our sources - -Change-Id: I6523894416cc06236ea1f99529efd36e957bd98e -updates: bz#1193929 -Signed-off-by: Kaleb S. KEITHLEY ---- - geo-replication/gsyncd.conf.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/geo-replication/gsyncd.conf.in b/geo-replication/gsyncd.conf.in -index 0a842cf2b..bd04400ff 100644 ---- a/geo-replication/gsyncd.conf.in -+++ b/geo-replication/gsyncd.conf.in -@@ -138,11 +138,11 @@ value = - help=If SSH keys are not secured with gsyncd prefix then use this configuration to set the actual path of gsyncd(Usually /usr/libexec/glusterfs/gsyncd) - - [gluster-command-dir] --value=/usr/local/sbin/ -+value=@SBIN_DIR@ - help=Directory where Gluster binaries exist on master - - [slave-gluster-command-dir] --value=/usr/local/sbin/ -+value=@SBIN_DIR@ - help=Directory where Gluster binaries exist on slave - - [gluster-params] --- -2.17.1 - diff --git a/glusterfs.spec b/glusterfs.spec index 947cc05..0321b74 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -231,7 +231,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 5.0 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}3%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -707,6 +707,13 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} +# jenkins release(-new) job (running on CentOS 7) did `./autogen.sh; +# ./configure; make dist`, and the python shebangs were borked. +# this is a temporary work-around +echo "unborking python shebangs..." +for f in api events extras geo-replication libglusterfs tests tools xlators; do +find $f -type f -exec sed -i 's|/usr/bin/python2|/usr/bin/python3|' {} \; +done %build %if ( 0%{?rhel} && 0%{?rhel} < 6 ) @@ -1485,6 +1492,9 @@ exit 0 %endif %changelog +* Mon Sep 24 2018 Kaleb S. KEITHLEY - 5.0rc0-0.3 +- 5.0 RC0, unbork python shebangs + * Thu Sep 20 2018 Kaleb S. KEITHLEY - 5.0rc0-0.2 - 5.0 RC0 From 25c167f12a694448559d5f76ce1c1a675418e228 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 25 Sep 2018 06:55:56 -0400 Subject: [PATCH 204/328] 5.0 RC0, unbork python shebangs Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/glusterfs.spec b/glusterfs.spec index 0321b74..84b665f 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -62,6 +62,11 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs %{?_with_gnfs:%global _with_gnfs --enable-gnfs} +# gnfs subpackages for glusterfs-5, will be obsoleted in glusterfs-6 +%if ( 0%{_for_fedora_koji_builds} ) +%global _with_gnfs --enable-gnfs +%endif + # ipv6default # if you wish to compile an rpm with IPv6 default... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default From 2ff76cf9f328585943db08a083131ed4e1e93eea Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 5 Oct 2018 13:20:02 -0400 Subject: [PATCH 205/328] 5.0 RC1 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 81 +++++++++----------------------------------------- sources | 2 +- 2 files changed, 15 insertions(+), 68 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 84b665f..782870d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,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 @@ -23,10 +23,6 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd %{?_without_bd:%global _without_bd --disable-bd-xlator} -%if ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) -%global _without_bd --disable-bd-xlator -%endif - # cmocka # if you wish to compile an rpm with cmocka unit testing... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka @@ -52,11 +48,6 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication %{?_without_georeplication:%global _without_georeplication --disable-georeplication} -# Disable geo-replication on EL5, as its default Python is too old -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -%global _without_georeplication --disable-georeplication -%endif - # gnfs # if you wish to compile an rpm with the legacy gNFS server xlator # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs @@ -116,12 +107,6 @@ %global _without_syslog --disable-syslog %endif -# tier -# Disable data-tiering on EL5, sqlite is too old -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -%global _without_tiering --disable-tiering -%endif - # valgrind # if you wish to compile an rpm to run all processes under valgrind... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind @@ -145,11 +130,6 @@ %global _with_tmpfilesdir --without-tmpfilesdir %endif -# Eventing -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -%global _without_events --disable-events -%endif - # without server should also disable some server-only components %if ( 0%{?_without_server:1} ) %global _without_events --disable-events @@ -207,11 +187,6 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -# _sharedstatedir is not provided by RHEL5 -%global _sharedstatedir /var/lib -%endif - # We do not want to generate useless provides and requires for xlator # .so files to be set for glusterfs packages. # Filter all generated: @@ -236,7 +211,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 5.0 -Release: %{?prereltag:0.}3%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}4%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -287,11 +262,7 @@ BuildRequires: userspace-rcu-devel >= 0.7 %if ( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: automake %endif -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -BuildRequires: e2fsprogs-devel -%else BuildRequires: libuuid-devel -%endif %if ( 0%{?_with_cmocka:1} ) BuildRequires: libcmocka-devel >= 1.0.1 %endif @@ -624,10 +595,6 @@ regression testing of Gluster. %package resource-agents Summary: OCF Resource Agents for GlusterFS License: GPLv3+ -%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) ) -# EL5 does not support noarch sub-packages -BuildArch: noarch -%endif # for glusterd Requires: %{name}-server = %{version}-%{release} # depending on the distribution, we need pacemaker or resource-agents @@ -682,9 +649,6 @@ Requires: rpcbind %else Requires: portmap %endif -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -Obsoletes: %{name}-geo-replication = %{version}-%{release} -%endif %if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse %endif @@ -712,19 +676,14 @@ This package provides the glusterfs server daemon. %prep %setup -q -n %{name}-%{version}%{?prereltag} -# jenkins release(-new) job (running on CentOS 7) did `./autogen.sh; -# ./configure; make dist`, and the python shebangs were borked. -# this is a temporary work-around -echo "unborking python shebangs..." -for f in api events extras geo-replication libglusterfs tests tools xlators; do -find $f -type f -exec sed -i 's|/usr/bin/python2|/usr/bin/python3|' {} \; +%if ( ! %{_usepython3} ) +echo "fixing python shebangs..." +for f in api events extras geo-replication libglusterfs tools xlators; do +find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \; done +%endif %build -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -CFLAGS=-DUSE_INSECURE_OPENSSL -export CFLAGS -%endif sed -i -e 's/--quiet//' configure.ac ./autogen.sh && %configure \ @@ -755,6 +714,7 @@ sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool +gcc -v make %{?_smp_mflags} V=1 %check @@ -777,13 +737,6 @@ install -D -p -m 0644 extras/glusterd-sysconfig \ %endif %endif -%if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -install -D -p -m 0755 %{SOURCE6} \ - %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules -%endif -%endif - mkdir -p %{buildroot}%{_localstatedir}/log/glusterd mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd @@ -810,17 +763,11 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -rm -rf %{buildroot}/benchmarking -rm -f %{buildroot}/glusterfs-mode.el -rm -f %{buildroot}/glusterfs.vim -%else # make install always puts these in %%{_defaultdocdir}/%%{name} so don't # use %%{_pkgdocdir}; that will be wrong on later Fedora distributions rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim -%endif %if ( 0%{!?_without_server:1} ) # Create working directory @@ -1100,11 +1047,8 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so -%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) -# RHEL-5 based distributions have a too old openssl %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/crypt.so -%endif %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so @@ -1497,13 +1441,16 @@ exit 0 %endif %changelog -* Mon Sep 24 2018 Kaleb S. KEITHLEY - 5.0rc0-0.3 +* Fri Oct 5 2018 Kaleb S. KEITHLEY - 5.0-0.4.rc1 +- 5.0 RC1 + +* Mon Sep 24 2018 Kaleb S. KEITHLEY - 5.0-0.3.rc0 - 5.0 RC0, unbork python shebangs -* Thu Sep 20 2018 Kaleb S. KEITHLEY - 5.0rc0-0.2 +* Thu Sep 20 2018 Kaleb S. KEITHLEY - 5.0-0.2.rc0 - 5.0 RC0 -* Tue Sep 18 2018 Kaleb S. KEITHLEY - 5.0rc0-0.1 +* Tue Sep 18 2018 Kaleb S. KEITHLEY - 5.0-0.1.rc0 - 5.0 RC0 * Thu Sep 6 2018 Kaleb S. KEITHLEY - 4.1.4-1 diff --git a/sources b/sources index 9af4727..273e159 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-5.0rc0.tar.gz) = 70e7cc94885b3646f4f995eb6cfe4e589c7b18473471375e6f4ebb279d784a0b155cd5e440cd928d5482e80f131d63149b1e01fad5629b103ad99c8dd2c7f83e +SHA512 (glusterfs-5.0rc1.tar.gz) = 0cebb22df34a6dab9729d00d5afbfa03a4858fbd8af8db225f02997c238cc59b9b3feceaace4a2cead1a0a7ce82d01faeb55ba3afd363fab2eeae7864146ce3f From 3f1032a6fa76146b10e4f5839f3ffd7edbbb74e0 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 5 Oct 2018 14:02:04 -0400 Subject: [PATCH 206/328] 5.0 RC1 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 782870d..46a8d02 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -211,7 +211,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 5.0 -Release: %{?prereltag:0.}4%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}5%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -595,6 +595,7 @@ regression testing of Gluster. %package resource-agents Summary: OCF Resource Agents for GlusterFS License: GPLv3+ +BuildArch: noarch # for glusterd Requires: %{name}-server = %{version}-%{release} # depending on the distribution, we need pacemaker or resource-agents @@ -1441,7 +1442,7 @@ exit 0 %endif %changelog -* Fri Oct 5 2018 Kaleb S. KEITHLEY - 5.0-0.4.rc1 +* Fri Oct 5 2018 Kaleb S. KEITHLEY - 5.0-0.5.rc1 - 5.0 RC1 * Mon Sep 24 2018 Kaleb S. KEITHLEY - 5.0-0.3.rc0 From 0b39dfc7f520259ded283e7adddbeef5a8aa1a02 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Sun, 14 Oct 2018 07:48:59 -0400 Subject: [PATCH 207/328] remove rhel5 fuse module Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 3 --- rhel5-load-fuse-modules | 7 ------- 2 files changed, 10 deletions(-) delete mode 100755 rhel5-load-fuse-modules diff --git a/glusterfs.spec b/glusterfs.spec index 46a8d02..4cb0f23 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -223,7 +223,6 @@ URL: http://docs.gluster.org/ Source0: http://download.gluster.org/pub/gluster/%{name}/4.1/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig -Source6: rhel5-load-fuse-modules Source7: glusterfsd.service Source8: glusterfsd.init %else @@ -1166,8 +1165,6 @@ exit 0 %if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs %endif -%if ( 0%{_for_fedora_koji_builds} ) -%endif %files cloudsync-plugins %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins diff --git a/rhel5-load-fuse-modules b/rhel5-load-fuse-modules deleted file mode 100755 index ee194db..0000000 --- a/rhel5-load-fuse-modules +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# -# fusermount-glusterfs requires the /dev/fuse character device. The fuse module -# provides this and is loaded on demand in newer Linux distributions. -# - -[ -c /dev/fuse ] || /sbin/modprobe fuse From fad240f71e0ddc50c25e2174496f48394587db83 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 18 Oct 2018 10:31:04 -0400 Subject: [PATCH 208/328] 5.0 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4cb0f23..171d4f4 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -%global prereltag rc1 +# %%global prereltag rc1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -211,7 +211,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 5.0 -Release: %{?prereltag:0.}5%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1439,6 +1439,9 @@ exit 0 %endif %changelog +* Thu Oct 18 2018 Kaleb S. KEITHLEY - 5.0-1 +- 5.0 GA + * Fri Oct 5 2018 Kaleb S. KEITHLEY - 5.0-0.5.rc1 - 5.0 RC1 diff --git a/sources b/sources index 273e159..ac8e38d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-5.0rc1.tar.gz) = 0cebb22df34a6dab9729d00d5afbfa03a4858fbd8af8db225f02997c238cc59b9b3feceaace4a2cead1a0a7ce82d01faeb55ba3afd363fab2eeae7864146ce3f +SHA512 (glusterfs-5.0.tar.gz) = 45ccd3f3bbc9653998850f618f9776642da4a16508c056febc19c9db6aef2d1c58232f398e29ce034de45960b62d3e5bd54614aaf7030ba7e6025ff23968d475 From 229c739e5b6eda2eaa9784637b1c7ff66f73d1a0 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 14 Nov 2018 13:22:40 -0500 Subject: [PATCH 209/328] 5.1 GA Signed-off-by: Kaleb S. KEITHLEY --- 0001-configure.ac.patch | 42 ----------------------------------------- glusterfs.spec | 13 +++++++++++-- sources | 2 +- 3 files changed, 12 insertions(+), 45 deletions(-) delete mode 100644 0001-configure.ac.patch diff --git a/0001-configure.ac.patch b/0001-configure.ac.patch deleted file mode 100644 index 55733ad..0000000 --- a/0001-configure.ac.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- glusterfs-5.0rc0/configure.ac.orig 2018-09-24 12:44:51.547254900 -0400 -+++ glusterfs-5.0rc0/configure.ac 2018-09-24 12:55:49.464254900 -0400 -@@ -629,12 +629,14 @@ - *) - if test -x /usr/bin/python3; then - PYTHON=/usr/bin/python3 -- else -+ fi -+ if test -x /usr/bin/python2; then - PYTHON=/usr/bin/python2 - fi - ;; - esac - fi -+ - AM_PATH_PYTHON([2.6],,[:]) - if test -n "${PYTHON}"; then - have_python=yes -@@ -1688,13 +1690,16 @@ - - pushd $(dirname $0) &> /dev/null - if test ! -e python-shebangs; then -- touch python-shebangs -- if test "x${PYTHON}" = "x/usr/bin/python2"; then -- echo "fixing python shebangs..." -- for f in api events extras geo-replication libglusterfs tests tools xlators; do -- find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \; -- done -- echo "...done" -+ dnl koji's mock buildSRPMFromSCM subtask run's configure, with -+ if test -n "${PYTHON}"; then -+ touch python-shebangs -+ if test "x${PYTHON}" = "x/usr/bin/python2"; then -+ echo "fixing python shebangs..." -+ for f in api events extras geo-replication libglusterfs tests tools xlators; do -+ find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \; -+ done -+ echo "...done" -+ fi - fi - fi - popd &> /dev/null diff --git a/glusterfs.spec b/glusterfs.spec index 171d4f4..297446a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -23,6 +23,10 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd %{?_without_bd:%global _without_bd --disable-bd-xlator} +%if ( 0%{?rhel} && 0%{?rhel} > 7 ) +%global _without_bd --without-bd +%endif + # cmocka # if you wish to compile an rpm with cmocka unit testing... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka @@ -210,7 +214,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 5.0 +Version: 5.1 Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -254,7 +258,7 @@ BuildRequires: python-ctypes %if ( ( 0%{?_with_ipv6default:1} ) || ( 0%{!?_without_libtirpc:1} ) ) BuildRequires: libtirpc-devel %endif -%if ( 0%{?fedora} && 0%{?fedora} > 27 ) +%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) BuildRequires: rpcgen %endif BuildRequires: userspace-rcu-devel >= 0.7 @@ -1323,7 +1327,9 @@ exit 0 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage +%if ( 0%{!?_without_bd:1} ) %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/bd.so +%endif %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/posix.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/decompounder.so @@ -1439,6 +1445,9 @@ exit 0 %endif %changelog +* Wed Nov 14 2018 Kaleb S. KEITHLEY - 5.1-1 +- 5.1 GA + * Thu Oct 18 2018 Kaleb S. KEITHLEY - 5.0-1 - 5.0 GA diff --git a/sources b/sources index ac8e38d..1e71997 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-5.0.tar.gz) = 45ccd3f3bbc9653998850f618f9776642da4a16508c056febc19c9db6aef2d1c58232f398e29ce034de45960b62d3e5bd54614aaf7030ba7e6025ff23968d475 +SHA512 (glusterfs-5.1.tar.gz) = db5649166c960c894162b2f2e706d85accff663fff71e80ed5a9f24a3863d2a0e0d94bc42d39baf1002f1ec8ef5445ff791d6d3edd539bfc8d6f6d00d7897db2 From 5738ffb966aed1a9352d6c35cd5886187f576dee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 15 Nov 2018 12:53:55 +0100 Subject: [PATCH 210/328] https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 --- glusterfs.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/glusterfs.spec b/glusterfs.spec index 297446a..3c86916 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,3 +1,7 @@ +# This package depends on automagic byte compilation +# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 +%global _python_bytecompile_extra 1 + %global _hardened_build 1 %global _for_fedora_koji_builds 1 From 19700a7e5f22d18ff04446f19eeb3d56b6914e43 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 13 Dec 2018 07:38:54 -0500 Subject: [PATCH 211/328] 5.2 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- sources | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 3c86916..639ec72 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -218,7 +218,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 5.1 +Version: 5.2 Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1449,6 +1449,9 @@ exit 0 %endif %changelog +* Thu Dec 13 2018 Kaleb S. KEITHLEY - 5.2-1 +- 5.2 GA + * Wed Nov 14 2018 Kaleb S. KEITHLEY - 5.1-1 - 5.1 GA diff --git a/sources b/sources index 1e71997..d264949 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (glusterfs-5.1.tar.gz) = db5649166c960c894162b2f2e706d85accff663fff71e80ed5a9f24a3863d2a0e0d94bc42d39baf1002f1ec8ef5445ff791d6d3edd539bfc8d6f6d00d7897db2 +SHA512 (glusterfs-5.2.tar.gz) = e676a604410310406dd283d5bc8e17143e2d70d4955497a88e61952193a525978e177949a962bf47405c423ef8d4109e4309b600824eb3984127c4e231ce16f0 From 48abd2568d3b3d5c358d2de48d4f55bb8000a02e Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 17 Jan 2019 07:12:55 -0500 Subject: [PATCH 212/328] 5.3 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- sources | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 639ec72..91723e6 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -218,7 +218,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 5.2 +Version: 5.3 Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1449,6 +1449,9 @@ exit 0 %endif %changelog +* Thu Jan 17 2019 Kaleb S. KEITHLEY - 5.3-1 +- 5.3 GA + * Thu Dec 13 2018 Kaleb S. KEITHLEY - 5.2-1 - 5.2 GA diff --git a/sources b/sources index d264949..db028a9 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (glusterfs-5.1.tar.gz) = db5649166c960c894162b2f2e706d85accff663fff71e80ed5a9f24a3863d2a0e0d94bc42d39baf1002f1ec8ef5445ff791d6d3edd539bfc8d6f6d00d7897db2 -SHA512 (glusterfs-5.2.tar.gz) = e676a604410310406dd283d5bc8e17143e2d70d4955497a88e61952193a525978e177949a962bf47405c423ef8d4109e4309b600824eb3984127c4e231ce16f0 +SHA512 (glusterfs-5.3.tar.gz) = 8b5405dbbfcc57ece25ac5934c1d63e9a1f8936bcf6d53ebfdca5c144e963550d99bdee667b7ed7b06c608ddfbf40b5738e9c15b17a11362c8478b02a7e0e15f From 06830c2e70391cfa57cb698a2007139e11c52525 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 31 Jan 2019 22:57:27 +0000 Subject: [PATCH 213/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 91723e6..d113054 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -219,11 +219,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 5.3 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}.1 %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.6 +Release: 0.@PACKAGE_RELEASE@%{?dist}.7 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1449,6 +1449,9 @@ exit 0 %endif %changelog +* Thu Jan 31 2019 Fedora Release Engineering - 5.3-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Thu Jan 17 2019 Kaleb S. KEITHLEY - 5.3-1 - 5.3 GA From d03e52a05986170cfc56b777569a833c6b41e831 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 14 Feb 2019 08:51:53 -0500 Subject: [PATCH 214/328] Re-rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index d113054..01a2b82 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -219,7 +219,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 5.3 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}.1 +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1449,6 +1449,9 @@ exit 0 %endif %changelog +* Thu Feb 14 2019 Kaleb S. KEITHLEY - 5.3-2 +- Re-rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Thu Jan 31 2019 Fedora Release Engineering - 5.3-1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From cc997d2c7a04349bf1c4d06edbf92ec6db737b81 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Sun, 17 Feb 2019 09:30:51 +0100 Subject: [PATCH 215/328] Rebuild for readline 8.0 --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 01a2b82..4b4d919 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -219,11 +219,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 5.3 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist}.1 %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.7 +Release: 0.@PACKAGE_RELEASE@%{?dist}.8 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1449,6 +1449,9 @@ exit 0 %endif %changelog +* Sun Feb 17 2019 Igor Gnatenko - 5.3-2.1 +- Rebuild for readline 8.0 + * Thu Feb 14 2019 Kaleb S. KEITHLEY - 5.3-2 - Re-rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From d7bf19145a99c063f17588ce6dcf94871fce28e3 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 20 Feb 2019 09:55:11 -0500 Subject: [PATCH 216/328] rebuild for f31/rawhide Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4b4d919..74a8fee 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -219,7 +219,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 5.3 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist}.1 +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}.1 %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1449,6 +1449,9 @@ exit 0 %endif %changelog +* Wed Feb 20 2019 Kaleb S. KEITHLEY - 5.3-1 +- rebuild for f31/rawhide + * Sun Feb 17 2019 Igor Gnatenko - 5.3-2.1 - Rebuild for readline 8.0 From 3bfdc85542b25e6fcff360b929829535b40f124a Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 20 Feb 2019 10:35:53 -0500 Subject: [PATCH 217/328] re-rebuild for f31/rawhide Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 74a8fee..f9c599a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -219,7 +219,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 5.3 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}.1 +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1449,6 +1449,9 @@ exit 0 %endif %changelog +* Wed Feb 20 2019 Kaleb S. KEITHLEY - 5.3-2 +- re-rebuild for f31/rawhide + * Wed Feb 20 2019 Kaleb S. KEITHLEY - 5.3-1 - rebuild for f31/rawhide From 188860a17f3da9f7eac6744008c9d214d48302f0 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 22 Feb 2019 11:38:52 -0500 Subject: [PATCH 218/328] 6.0 RC0 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 | 125 +++++++----------- sources | 2 +- 4 files changed, 227 insertions(+), 80 deletions(-) create mode 100644 0001-glusterfind-revert-shebangs-to-usr-bin-python3.patch create 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 new file mode 100644 index 0000000..3398d49 --- /dev/null +++ b/0001-glusterfind-revert-shebangs-to-usr-bin-python3.patch @@ -0,0 +1,78 @@ +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 new file mode 100644 index 0000000..35c5c52 --- /dev/null +++ b/0002-build-include-gluster-__init__.-files-for-python-pac.patch @@ -0,0 +1,102 @@ +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 f9c599a..062b85c 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 rc1 +%global prereltag rc0 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -115,6 +115,15 @@ %global _without_syslog --disable-syslog %endif +# tsan +# if you wish to compile an rpm with thread sanitizer... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with tsan +%{?_with_tsan:%global _with_tsan --enable-tsan} + +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +%global _with_tsan %{nil} +%endif + # valgrind # if you wish to compile an rpm to run all processes under valgrind... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind @@ -143,11 +152,10 @@ %global _without_events --disable-events %global _without_georeplication --disable-georeplication %global _with_gnfs %{nil} -%global _without_tiering --disable-tiering %global _without_ocf --without-ocf %endif -%if ( 0%{?fedora} && 0%{?fedora} > 26 ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) %global _usepython3 1 %global _pythonver 3 %else @@ -218,8 +226,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 5.3 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} +Version: 6.0 +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -236,7 +244,8 @@ 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} ) @@ -250,6 +259,9 @@ Requires: %{name}-libs = %{version}-%{release} %if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: libasan %endif +%if 0%{?_with_tsan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 ) +BuildRequires: libtsan +%endif BuildRequires: bison flex BuildRequires: gcc make libtool BuildRequires: ncurses-devel readline-devel @@ -273,9 +285,6 @@ BuildRequires: libuuid-devel %if ( 0%{?_with_cmocka:1} ) BuildRequires: libcmocka-devel >= 1.0.1 %endif -%if ( 0%{!?_without_tiering:1} ) -BuildRequires: sqlite-devel -%endif %if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif @@ -375,6 +384,21 @@ is in user space and easily manageable. This package provides the translators needed on any GlusterFS client. +%package cloudsync-plugins +Summary: Cloudsync Plugins +BuildRequires: libcurl-devel + +%description cloudsync-plugins +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over Infiniband RDMA +or TCP/IP interconnect into one large parallel network file +system. GlusterFS is one of the most sophisticated file systems in +terms of features and extensibility. It borrows a powerful concept +called Translators from GNU Hurd kernel. Much of the code in GlusterFS +is in user space and easily manageable. + +This package provides cloudsync plugins for archival feature. + %package devel Summary: Development Libraries Requires: %{name} = %{version}-%{release} @@ -467,21 +491,6 @@ is in user space and easily manageable. This package provides support to FUSE based clients and includes the glusterfsd and glusterfs binaries. -%package cloudsync-plugins -Summary: Cloudsync Plugins -BuildRequires: libcurl-devel - -%description cloudsync-plugins -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides cloudsync plugins for archival feature. - %if ( 0%{!?_without_georeplication:1} ) %package geo-replication Summary: GlusterFS Geo-replication @@ -684,6 +693,8 @@ This package provides the glusterfs server daemon. %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 @@ -701,6 +712,7 @@ sed -i -e 's/--quiet//' configure.ac %{?_with_firewalld} \ %{?_with_gnfs} \ %{?_with_tmpfilesdir} \ + %{?_with_tsan} \ %{?_with_valgrind} \ %{?_without_bd} \ %{?_without_epoll} \ @@ -711,7 +723,6 @@ sed -i -e 's/--quiet//' configure.ac %{?_without_rdma} \ %{?_without_server} \ %{?_without_syslog} \ - %{?_without_tiering} \ %{?_with_ipv6default} \ %{?_without_libtirpc} @@ -855,12 +866,6 @@ exit 0 exit 0 %endif -%if ( 0%{?rhel} == 5 ) -%post fuse -modprobe fuse -exit 0 -%endif - %if ( 0%{!?_without_georeplication:1} ) %post geo-replication if [ $1 -ge 1 ]; then @@ -1055,8 +1060,6 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/crypt.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so @@ -1117,50 +1120,23 @@ exit 0 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so +%files cloudsync-plugins +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins + %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so + %files devel %dir %{_includedir}/glusterfs %{_includedir}/glusterfs/* %exclude %{_includedir}/glusterfs/api %exclude %{_libdir}/libgfapi.so %{_libdir}/*.so -# Glupy Translator examples -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.* - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* %{_libdir}/pkgconfig/libgfchangelog.pc -%if ( 0%{!?_without_tiering:1} ) -%{_libdir}/pkgconfig/libgfdb.pc -%endif %files extra-xlators -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so -%if ( %{_usepython3} ) -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/__pycache__ - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/__pycache__/* -%endif %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground/template.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so -# Glupy Python files -%if ( %{_usepython3} ) -%dir %{python3_sitelib}/gluster -%dir %{python3_sitelib}/gluster/__pycache__ - %{python3_sitelib}/gluster/__pycache__/* -%dir %{python3_sitelib}/gluster/glupy - %{python3_sitelib}/gluster/glupy/* -%else -%dir %{python2_sitelib}/gluster -%dir %{python2_sitelib}/gluster/glupy - %{python2_sitelib}/gluster/glupy/* -%endif %files fuse # glusterfs is a symlink to glusterfsd, -server depends on -fuse. @@ -1174,10 +1150,6 @@ exit 0 %{_bindir}/fusermount-glusterfs %endif -%files cloudsync-plugins -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins - %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so - %if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} ) %files gnfs %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs @@ -1230,10 +1202,6 @@ exit 0 %{_libdir}/*.so.* %exclude %{_libdir}/libgfapi.* # libgfdb is only needed server-side -%if ( 0%{!?_without_tiering:1} ) -# libgfdb is only needed server-side -%exclude %{_libdir}/libgfdb.* -%endif %files -n python%{_pythonver}-gluster # introducing glusterfs module in site packages. @@ -1241,6 +1209,7 @@ exit 0 %if ( %{_usepython3} ) %dir %{python3_sitelib}/gluster %{python3_sitelib}/gluster/__init__.* + %{python3_sitelib}/gluster/__pycache__ %{python3_sitelib}/gluster/cliutils %else %dir %{python2_sitelib}/gluster @@ -1312,10 +1281,6 @@ exit 0 %{_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 -%if ( 0%{!?_without_tiering:1} ) - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so - %{_libdir}/libgfdb.so.* -%endif %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/index.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* @@ -1331,9 +1296,6 @@ exit 0 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage -%if ( 0%{!?_without_bd:1} ) - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/bd.so -%endif %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/posix.so %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/decompounder.so @@ -1353,6 +1315,8 @@ exit 0 %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/gluster-block %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/nl-cache %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/db-workload + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/distributed-virt + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/samba %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd @@ -1449,6 +1413,9 @@ exit 0 %endif %changelog +* Fri Feb 22 2019 Kaleb S. KEITHLEY - 6.0rc0-0.1 +- 6.0 RC0 + * Wed Feb 20 2019 Kaleb S. KEITHLEY - 5.3-2 - re-rebuild for f31/rawhide diff --git a/sources b/sources index db028a9..a03c843 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-5.3.tar.gz) = 8b5405dbbfcc57ece25ac5934c1d63e9a1f8936bcf6d53ebfdca5c144e963550d99bdee667b7ed7b06c608ddfbf40b5738e9c15b17a11362c8478b02a7e0e15f +SHA512 (glusterfs-6.0rc0.tar.gz) = 637a73c59ecbad4c4ab2db5af10f1e2dd6ed4a566ab58a6f5641c50a85962a411b46b73e45e0d59cb2c4136e9b3c86e92ff0119991ed9fadbb2789dde3e21ce2 From b598b104d5b3104ef11779a5320ad05809b3bd46 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 1 Mar 2019 09:01:38 -0500 Subject: [PATCH 219/328] 6.0 RC0, s390x, armv7hl no rdma Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 062b85c..c5ffbc1 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -92,6 +92,11 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma %{?_without_rdma:%global _without_rdma --disable-ibverbs} +# No RDMA Support on s390(x) +%ifarch s390 s390x armv7hl +%global _without_rdma --disable-ibverbs +%endif + # server # if you wish to build rpms without server components, compile like this # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without server @@ -227,7 +232,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.0 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1413,6 +1418,9 @@ exit 0 %endif %changelog +* Fri Mar 1 2019 Kaleb S. KEITHLEY - 6.0rc0-0.2 +- 6.0 RC0, s390x, armv7hl no rdma + * Fri Feb 22 2019 Kaleb S. KEITHLEY - 6.0rc0-0.1 - 6.0 RC0 From c09fc157b924820904f7537f736940e050f941c5 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 6 Mar 2019 08:08:50 -0500 Subject: [PATCH 220/328] 6.0 RC0 restore s390x rdma remove obsolete scripts from https://src.fedoraproject.org/rpms/glusterfs/pull-request/5 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index c5ffbc1..60cc48d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -92,8 +92,8 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma %{?_without_rdma:%global _without_rdma --disable-ibverbs} -# No RDMA Support on s390(x) -%ifarch s390 s390x armv7hl +# No RDMA Support on armv7hl +%ifarch armv7hl %global _without_rdma --disable-ibverbs %endif @@ -232,7 +232,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.0 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}3%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1004,7 +1004,6 @@ exit 0 ## All %%postun should be placed here and keep them sorted ## %postun -/sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} ) %systemd_postun_with_restart rsyslog @@ -1012,17 +1011,8 @@ exit 0 %endif exit 0 -%postun api -/sbin/ldconfig -exit 0 - -%postun libs -/sbin/ldconfig -exit 0 - %if ( 0%{!?_without_server:1} ) %postun server -/sbin/ldconfig %if (0%{?_with_firewalld:1}) %firewalld_reload %endif @@ -1418,6 +1408,12 @@ exit 0 %endif %changelog +* Wed Mar 6 2019 Kaleb S. KEITHLEY - 6.0rc0-0.3 +- 6.0 RC0 +- restore s390x rdma +- remove obsolete scripts from +- https://src.fedoraproject.org/rpms/glusterfs/pull-request/5 + * Fri Mar 1 2019 Kaleb S. KEITHLEY - 6.0rc0-0.2 - 6.0 RC0, s390x, armv7hl no rdma From b59e6efcf21a7fe07460e7a4d585684e898309a6 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 13 Mar 2019 08:14:52 -0400 Subject: [PATCH 221/328] 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 From 110a05d88bdd426c7df00677fbe1cbbe7fff9673 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 20 Mar 2019 00:03:09 -0400 Subject: [PATCH 222/328] 6.0 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4c15b25..d7e7256 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 rc1 +# %%global prereltag rc1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -233,7 +233,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.0 -Release: %{?prereltag:0.}4%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1450,6 +1450,9 @@ exit 0 %endif %changelog +* Wed Mar 20 2019 Kaleb S. KEITHLEY - 6.0-1 +- 6.0 GA + * Wed Mar 13 2019 Kaleb S. KEITHLEY - 6.0rc1-0.4 - 6.0 RC1 diff --git a/sources b/sources index 94adb60..dcf42ed 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-6.0rc1.tar.gz) = 3f8c8d922a7bc64dfba03719e7fde3923166e2795baa1d8fedc443a3f42b67ba69d14caa658ec00e6adc56865b8119dfbba521e5268f20012ef3dc3705d67b35 +SHA512 (glusterfs-6.0.tar.gz) = fc4f4ee75b3936469b7c4be146545eb88d2cf3583d5f101bcacb2805c842aa95f69d1c023dee4dac32ebe01cdc9ede4814f9364482e8815e451e43660e6c74b9 From 67c0a3bce49ae07268096eeb041b7c0a729e846d Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 18 Apr 2019 06:59:08 -0400 Subject: [PATCH 223/328] 6.1 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 51 ++++---------------------------------------------- sources | 2 +- 2 files changed, 5 insertions(+), 48 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index d7e7256..8cedab9 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -138,10 +138,6 @@ ## All %%global definitions should be placed here and keep them sorted ## -%if ( 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) -%global _with_systemd true -%endif - %if ( 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) %global _with_firewalld --enable-firewalld %endif @@ -175,7 +171,6 @@ %global _rundir %{_localstatedir}/run %endif -%if ( 0%{?_with_systemd:1} ) %global service_start() /bin/systemctl --quiet start %1.service || : \ %{nil} %global service_stop() /bin/systemctl --quiet stop %1.service || :\ @@ -188,24 +183,6 @@ %global glusterta_svcfile %{_unitdir}/gluster-ta-volume.service %global glustereventsd_svcfile %{_unitdir}/glustereventsd.service %global glusterfssharedstorage_svcfile %{_unitdir}/glusterfssharedstorage.service -%else -%global systemd_post() /sbin/chkconfig --add %1 >/dev/null 2>&1 || : \ -%{nil} -%global systemd_preun() /sbin/chkconfig --del %1 >/dev/null 2>&1 || : \ -%{nil} -%global systemd_postun_with_restart() /sbin/service %1 condrestart >/dev/null 2>&1 || : \ -%{nil} -%global service_start() /sbin/service %1 start >/dev/null 2>&1 || : \ -%{nil} -%global service_stop() /sbin/service %1 stop >/dev/null 2>&1 || : \ -%{nil} -%global service_install() install -D -p -m 0755 %{_sourcedir}/%1.init %{buildroot}%2 \ -%{nil} -# can't seem to make a generic macro that works -%global glusterd_svcfile %{_sysconfdir}/init.d/glusterd -%global glusterfsd_svcfile %{_sysconfdir}/init.d/glusterfsd -%global glustereventsd_svcfile %{_sysconfdir}/init.d/glustereventsd -%endif %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -232,7 +209,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 6.0 +Version: 6.1 Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -252,14 +229,10 @@ Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif Requires(pre): shadow-utils -%if ( 0%{?_with_systemd:1} ) BuildRequires: systemd -%endif 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 ) @@ -443,9 +416,7 @@ Requires: python%{_pythonver}-requests %if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse %endif -%if ( 0%{?_with_systemd:1} ) %{?systemd_requires} -%endif %description events GlusterFS is a distributed file-system capable of scaling to several @@ -658,14 +629,7 @@ Requires: %{name}-client-xlators = %{version}-%{release} # lvm2 for snapshot, and nfs-utils and rpcbind/portmap for gnfs server Requires: psmisc Requires: lvm2 -%if ( 0%{?_with_systemd:1} ) %{?systemd_requires} -%else -Requires(post): /sbin/chkconfig -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}) @@ -1192,9 +1156,7 @@ exit 0 %{_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} ) @@ -1297,9 +1259,7 @@ exit 0 %if ( 0%{_for_fedora_koji_builds} ) %glusterfsd_svcfile %endif -%if ( 0%{?_with_systemd:1} ) %glusterfssharedstorage_svcfile -%endif # binaries %{_sbindir}/glusterd @@ -1410,11 +1370,9 @@ exit 0 %dir %{_datadir}/glusterfs %dir %{_datadir}/glusterfs/scripts %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh -%if ( 0%{?_with_systemd:1} ) %{_libexecdir}/glusterfs/mount-shared-storage.sh %{_datadir}/glusterfs/scripts/control-cpu-load.sh %{_datadir}/glusterfs/scripts/control-mem.sh -%endif # Incrementalapi %dir %{_libexecdir}/glusterfs @@ -1442,14 +1400,13 @@ exit 0 %{_sbindir}/glustereventsd %{_sbindir}/gluster-eventsapi %{_datadir}/glusterfs/scripts/eventsdash.py* -%if ( 0%{?_with_systemd:1} ) %{_unitdir}/glustereventsd.service -%else -%{_sysconfdir}/init.d/glustereventsd -%endif %endif %changelog +* Wed Apr 17 2019 Kaleb S. KEITHLEY - 6.1-1 +- 6.1 GA + * Wed Mar 20 2019 Kaleb S. KEITHLEY - 6.0-1 - 6.0 GA diff --git a/sources b/sources index dcf42ed..c9b192d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-6.0.tar.gz) = fc4f4ee75b3936469b7c4be146545eb88d2cf3583d5f101bcacb2805c842aa95f69d1c023dee4dac32ebe01cdc9ede4814f9364482e8815e451e43660e6c74b9 +SHA512 (glusterfs-6.1.tar.gz) = 53f4195ecb565a8dcc0d66e74d07dd7334e3c8b1cc1671517612be32a00e9e9bbfb5e983955c4f116b25f7df990bcd1c05bbd3d0b740e9f8c76a16b9b16bec00 From ce08bc220126c5ae6b3f49dc5a6907828ff001d4 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 22 Apr 2019 11:02:16 -0400 Subject: [PATCH 224/328] 6.1 GA, glusterfs-thin-arbiter Requires: glusterfs-libs Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8cedab9..78ad29d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -210,7 +210,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.1 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -672,6 +672,7 @@ This package provides the glusterfs server daemon. %package thin-arbiter Summary: GlusterFS thin-arbiter module Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release} %description thin-arbiter @@ -1404,6 +1405,9 @@ exit 0 %endif %changelog +* Mon Apr 22 2019 Kaleb S. KEITHLEY - 6.1-2 +- 6.1 GA, glusterfs-thin-arbiter Requires: glusterfs-libs + * Wed Apr 17 2019 Kaleb S. KEITHLEY - 6.1-1 - 6.1 GA From 57717b9df96cf07ee76590e8d91f92ab6dea316f Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 24 May 2019 09:06:51 -0400 Subject: [PATCH 225/328] 6.2 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 78ad29d..48a09e7 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -209,8 +209,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 6.1 -Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist} +Version: 6.2 +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1405,6 +1405,9 @@ exit 0 %endif %changelog +* Fri May 24 2019 Kaleb S. KEITHLEY - 6.2-1 +- 6.2 GA + * Mon Apr 22 2019 Kaleb S. KEITHLEY - 6.1-2 - 6.1 GA, glusterfs-thin-arbiter Requires: glusterfs-libs diff --git a/sources b/sources index c9b192d..f982f7e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-6.1.tar.gz) = 53f4195ecb565a8dcc0d66e74d07dd7334e3c8b1cc1671517612be32a00e9e9bbfb5e983955c4f116b25f7df990bcd1c05bbd3d0b740e9f8c76a16b9b16bec00 +SHA512 (glusterfs-6.2.tar.gz) = 4773d5d23deb933ec3cf14d1efa086125946a35284d86cfcd12b26cb4c9602b01fa529c44e7b43c8730ba3f20539cb50fe200e9a505e5f7f418cd651422f85dc From 0e7456ecf40b96d98255c707fdf98c5bcee73d09 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 11 Jun 2019 09:59:15 -0400 Subject: [PATCH 226/328] 6.3 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 48a09e7..29c61eb 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -209,7 +209,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 6.2 +Version: 6.3 Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1405,6 +1405,9 @@ exit 0 %endif %changelog +* Tue Jun 11 2019 Kaleb S. KEITHLEY - 6.3-1 +- 6.3 GA + * Fri May 24 2019 Kaleb S. KEITHLEY - 6.2-1 - 6.2 GA diff --git a/sources b/sources index f982f7e..f8a0a6a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-6.2.tar.gz) = 4773d5d23deb933ec3cf14d1efa086125946a35284d86cfcd12b26cb4c9602b01fa529c44e7b43c8730ba3f20539cb50fe200e9a505e5f7f418cd651422f85dc +SHA512 (glusterfs-6.3.tar.gz) = 1e9a1b86c40afb774249149200e075b7ee41ea38be9ffcd1b040ca715d8586a64020f4ba19534bb1a4653dc3e8d7ebdca283619bc01c324fc0899e594dcd19a6 From 8df5809743f104715e3fcb974ae57fccbb1c5a8d Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 17 Jul 2019 08:00:45 -0400 Subject: [PATCH 227/328] 6.4 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 29c61eb..a0ea8e8 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -209,7 +209,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 6.3 +Version: 6.4 Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1323,6 +1323,7 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S10selinux-label-brick.sh %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S13create-subdir-mounts.sh %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh @@ -1405,6 +1406,9 @@ exit 0 %endif %changelog +* Wed Jul 17 2019 Kaleb S. KEITHLEY - 6.4-1 +- 6.4 GA + * Tue Jun 11 2019 Kaleb S. KEITHLEY - 6.3-1 - 6.3 GA diff --git a/sources b/sources index f8a0a6a..b51f5a1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-6.3.tar.gz) = 1e9a1b86c40afb774249149200e075b7ee41ea38be9ffcd1b040ca715d8586a64020f4ba19534bb1a4653dc3e8d7ebdca283619bc01c324fc0899e594dcd19a6 +SHA512 (glusterfs-6.4.tar.gz) = 17dd8a61991c9e7eea75fdba8aa9d560f3d556869e3e04704d29821c5be9034bb0761697d51fb54a0777d8c48bb9f846fd8e1b69c68fea0a4e39f0902b0c6635 From face7bb1d821ba8a4cba1a5ff673c5a690718d66 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 25 Jul 2019 03:58:18 +0000 Subject: [PATCH 228/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index a0ea8e8..0f92b17 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -210,11 +210,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.4 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}.1 %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.8 +Release: 0.@PACKAGE_RELEASE@%{?dist}.9 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1406,6 +1406,9 @@ exit 0 %endif %changelog +* Thu Jul 25 2019 Fedora Release Engineering - 6.4-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Wed Jul 17 2019 Kaleb S. KEITHLEY - 6.4-1 - 6.4 GA From f2eb7b64033df6627c94b7cdb53ff06a8e4266ab Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 1 Aug 2019 07:25:27 -0400 Subject: [PATCH 229/328] temporarily exclude i686 pending firewalld resolution Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 0f92b17..a84ed79 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -210,7 +210,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.4 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}.1 +Release: %{?prereltag:1.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -218,6 +218,11 @@ Release: 0.@PACKAGE_RELEASE@%{?dist}.9 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ +# temporary Exclude i686 until firewalld issue is resolved +# https://bugzilla.redhat.com/show_bug.cgi?id=1734866 +# https://bugzilla.redhat.com/show_bug.cgi?id=1735397 +# https://bugzilla.redhat.com/show_bug.cgi?id=1733602 +ExcludeArch: i686 %if ( 0%{_for_fedora_koji_builds} ) Source0: http://download.gluster.org/pub/gluster/%{name}/4.1/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig @@ -1406,6 +1411,9 @@ exit 0 %endif %changelog +* Thu Aug 1 2019 Kaleb S. KEITHLEY - 6.4-2 +- temporarily exclude i686 pending firewalld resolution + * Thu Jul 25 2019 Fedora Release Engineering - 6.4-1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 334e4ddc879144a738237bed0d630d273342571b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 1 Aug 2019 15:31:45 -0400 Subject: [PATCH 230/328] restore i686 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index a84ed79..e28da2d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -210,7 +210,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.4 -Release: %{?prereltag:1.}2%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:1.}3%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -218,11 +218,6 @@ Release: 0.@PACKAGE_RELEASE@%{?dist}.9 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ -# temporary Exclude i686 until firewalld issue is resolved -# https://bugzilla.redhat.com/show_bug.cgi?id=1734866 -# https://bugzilla.redhat.com/show_bug.cgi?id=1735397 -# https://bugzilla.redhat.com/show_bug.cgi?id=1733602 -ExcludeArch: i686 %if ( 0%{_for_fedora_koji_builds} ) Source0: http://download.gluster.org/pub/gluster/%{name}/4.1/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig @@ -1411,6 +1406,9 @@ exit 0 %endif %changelog +* Thu Aug 1 2019 Kaleb S. KEITHLEY - 6.4-3 +- restore i686 + * Thu Aug 1 2019 Kaleb S. KEITHLEY - 6.4-2 - temporarily exclude i686 pending firewalld resolution From 365e930bba6235ef38ffebb3d6df7af123444be8 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 7 Aug 2019 08:06:10 -0400 Subject: [PATCH 231/328] 6.5 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 10 ++++++++-- sources | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e28da2d..7ef5065 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -209,8 +209,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 6.4 -Release: %{?prereltag:1.}3%{?prereltag:.%{prereltag}}%{?dist} +Version: 6.5 +Release: %{?prereltag:1.}1%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1406,6 +1406,9 @@ exit 0 %endif %changelog +* Wed Aug 7 2019 Kaleb S. KEITHLEY - 6.5-1 +- 6.5 GA + * Thu Aug 1 2019 Kaleb S. KEITHLEY - 6.4-3 - restore i686 @@ -1418,6 +1421,9 @@ exit 0 * Wed Jul 17 2019 Kaleb S. KEITHLEY - 6.4-1 - 6.4 GA +* Wed Jul 17 2019 Kaleb S. KEITHLEY - 6.4-1 +- 6.4 GA + * Tue Jun 11 2019 Kaleb S. KEITHLEY - 6.3-1 - 6.3 GA diff --git a/sources b/sources index b51f5a1..eff1213 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-6.4.tar.gz) = 17dd8a61991c9e7eea75fdba8aa9d560f3d556869e3e04704d29821c5be9034bb0761697d51fb54a0777d8c48bb9f846fd8e1b69c68fea0a4e39f0902b0c6635 +SHA512 (glusterfs-6.5.tar.gz) = b7356de07e8126aea80b0489b9ac39ce0d10ea324fe38d05ff5740765e886f80fc7e6bdda9d4db1371d7b955b055cb76ea29e918e759a575db331a6436bad90f From fb215b652aae920bd354e1948055df57f8345f79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 19 Aug 2019 10:14:56 +0200 Subject: [PATCH 232/328] Rebuilt for Python 3.8 --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 7ef5065..879c87a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -210,11 +210,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.5 -Release: %{?prereltag:1.}1%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:1.}1%{?prereltag:.%{prereltag}}%{?dist}.1 %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.9 +Release: 0.@PACKAGE_RELEASE@%{?dist}.10 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1406,6 +1406,9 @@ exit 0 %endif %changelog +* Mon Aug 19 2019 Miro Hrončok - 6.5-1.1 +- Rebuilt for Python 3.8 + * Wed Aug 7 2019 Kaleb S. KEITHLEY - 6.5-1 - 6.5 GA From 2c697f5ce405a30adefe42eb5fdbd3459bbc2b56 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 19 Aug 2019 09:55:22 -0400 Subject: [PATCH 233/328] Rebuilt for Python 3.8, again Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 879c87a..18da19b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -210,7 +210,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.5 -Release: %{?prereltag:1.}1%{?prereltag:.%{prereltag}}%{?dist}.1 +Release: %{?prereltag:1.}2%{?prereltag:.%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1406,6 +1406,9 @@ exit 0 %endif %changelog +* Mon Aug 19 2019 Kaleb S. KEITHLEY - 6.5-2 +- Rebuilt for Python 3.8, again + * Mon Aug 19 2019 Miro Hrončok - 6.5-1.1 - Rebuilt for Python 3.8 From e766c1f8d25f6217c772bb52451691a46e073dc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 19 Aug 2019 16:42:55 +0200 Subject: [PATCH 234/328] Rebuilt for Python 3.8 --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 18da19b..c87b757 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -210,11 +210,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.5 -Release: %{?prereltag:1.}2%{?prereltag:.%{prereltag}}%{?dist} +Release: %{?prereltag:1.}2%{?prereltag:.%{prereltag}}%{?dist}.1 %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.10 +Release: 0.@PACKAGE_RELEASE@%{?dist}.11 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1406,6 +1406,9 @@ exit 0 %endif %changelog +* Mon Aug 19 2019 Miro Hrončok - 6.5-2.1 +- Rebuilt for Python 3.8 + * Mon Aug 19 2019 Kaleb S. KEITHLEY - 6.5-2 - Rebuilt for Python 3.8, again From cc64a2befd165cd9a6e5de2ab29d60345214d409 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 19 Aug 2019 11:19:00 -0400 Subject: [PATCH 235/328] Rebuilt for Python 3.8, again Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 18da19b..00eb8a2 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 rc1 +# %%global dev rc1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -210,7 +210,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 6.5 -Release: %{?prereltag:1.}2%{?prereltag:.%{prereltag}}%{?dist} +Release: 2%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ From 379fc60f04d4662cc0d675213cf8c6f90043a48b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 28 Aug 2019 13:45:08 -0400 Subject: [PATCH 236/328] python3-requests, el-8 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index d0cf69a..18fd71e 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -210,11 +210,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 7.0 -Release: 0.1%{?dev:%{dev}}%{?dist} +Release: 0.2%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.8 +Release: 0.@PACKAGE_RELEASE@%{?dist}.1 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -406,7 +406,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: python%{_pythonver} Requires: python%{_pythonver}-prettytable Requires: python%{_pythonver}-gluster = %{version}-%{release} -%if ( 0%{?rhel} ) +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) Requires: python-requests %else Requires: python%{_pythonver}-requests @@ -1399,6 +1399,9 @@ exit 0 %endif %changelog +* Wed Aug 28 2019 Kaleb S. KEITHLEY - 7.0-0.2rc0 +- python3-requests, el-8 + * Thu Aug 22 2019 Kaleb S. KEITHLEY - 7.0-0.1rc0 - 7.0 RC0 From 76308eab068694e9c54f1395269999cc95eda9d7 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 16 Sep 2019 08:18:22 -0400 Subject: [PATCH 237/328] 7.0 RC1 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 18fd71e..9b26e4e 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -7,7 +7,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the %%dev for pre-releases -%global dev rc0 +%global dev rc1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -210,7 +210,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 7.0 -Release: 0.2%{?dev:%{dev}}%{?dist} +Release: 0.3%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1399,6 +1399,9 @@ exit 0 %endif %changelog +* Mon Sep 16 2019 Kaleb S. KEITHLEY - 7.0-0.1rc1 +- 7.0 RC1 + * Wed Aug 28 2019 Kaleb S. KEITHLEY - 7.0-0.2rc0 - python3-requests, el-8 diff --git a/sources b/sources index 8511800..350bd5e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-7.0rc0.tar.gz) = 857fa70f415d66f80aa2aebd8d9994aaf11a50898a3f4c48c6a96fba3d7ee11cbdaf6f01ff15c33e39821210c4ee0f975e7bb877fce639c6d1a7831a3aae2e4a +SHA512 (glusterfs-7.0rc1.tar.gz) = 3b17dfca38ec5230943ad4fa80a4c7dedd9fb7881afc20058099d5985683139d8a2c5a54124507aabc5cf33c94fd827671edd4303b5bb170c38c504e3d90d833 From bbae6ba75c836c76ba6b336a40f7ba0e270983ca Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 16 Sep 2019 11:38:49 -0400 Subject: [PATCH 238/328] disable gnfs by default Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9b26e4e..aed0071 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -59,12 +59,7 @@ # gnfs # if you wish to compile an rpm with the legacy gNFS server xlator # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs -%{?_with_gnfs:%global _with_gnfs --enable-gnfs} - -# gnfs subpackages for glusterfs-5, will be obsoleted in glusterfs-6 -%if ( 0%{_for_fedora_koji_builds} ) -%global _with_gnfs --enable-gnfs -%endif +%{?_without_gnfs:%global _with_gnfs --disable-gnfs} # ipv6default # if you wish to compile an rpm with IPv6 default... @@ -1399,7 +1394,10 @@ exit 0 %endif %changelog -* Mon Sep 16 2019 Kaleb S. KEITHLEY - 7.0-0.1rc1 +* Mon Sep 16 2019 Kaleb S. KEITHLEY +- disable gnfs by default + +* Mon Sep 16 2019 Kaleb S. KEITHLEY - 7.0-0.3rc1 - 7.0 RC1 * Wed Aug 28 2019 Kaleb S. KEITHLEY - 7.0-0.2rc0 From 4b75c6dfc9355192898a7e6421b0c4bb64a319fa Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 16 Sep 2019 12:49:47 -0400 Subject: [PATCH 239/328] disable gnfs by default Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index aed0071..5827115 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -205,7 +205,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 7.0 -Release: 0.3%{?dev:%{dev}}%{?dist} +Release: 0.4%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1394,7 +1394,7 @@ exit 0 %endif %changelog -* Mon Sep 16 2019 Kaleb S. KEITHLEY +* Mon Sep 16 2019 Kaleb S. KEITHLEY - 7.0-0.4rc1 - disable gnfs by default * Mon Sep 16 2019 Kaleb S. KEITHLEY - 7.0-0.3rc1 From d5545d0c6661d868645261752cfe75ccf6558762 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 1 Oct 2019 07:19:42 -0400 Subject: [PATCH 240/328] 7.0 RC3 (note, rc2 was tagged but not released) Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5827115..a33c761 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -7,7 +7,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the %%dev for pre-releases -%global dev rc1 +%global dev rc3 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -205,7 +205,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 7.0 -Release: 0.4%{?dev:%{dev}}%{?dist} +Release: 0.5%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1394,6 +1394,9 @@ exit 0 %endif %changelog +* Tue Oct 1 2019 Kaleb S. KEITHLEY - 7.0-0.5rc3 +- 7.0 RC3 (note, rc2 was tagged but not released) + * Mon Sep 16 2019 Kaleb S. KEITHLEY - 7.0-0.4rc1 - disable gnfs by default diff --git a/sources b/sources index 350bd5e..01ae78b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-7.0rc1.tar.gz) = 3b17dfca38ec5230943ad4fa80a4c7dedd9fb7881afc20058099d5985683139d8a2c5a54124507aabc5cf33c94fd827671edd4303b5bb170c38c504e3d90d833 +SHA512 (glusterfs-7.0rc3.tar.gz) = fc36b40dd92b8a3e8e796a30a9017757a49d8c3d746554a40037b0ffc056eab5a69e5c91fa687a0dd065a8ea519043a46be6402ec7c1d23e88788df12f748b08 From 121656e62df8eb849747a1f09c4cc613eeed2ac4 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 9 Oct 2019 10:17:44 -0400 Subject: [PATCH 241/328] f31+ --without-bd Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index a33c761..d5170c8 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -27,7 +27,7 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd %{?_without_bd:%global _without_bd --disable-bd-xlator} -%if ( 0%{?rhel} && 0%{?rhel} > 7 ) +%if ( 0%{?fedora} && 0%{?fedora} > 30 ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) %global _without_bd --without-bd %endif @@ -1394,6 +1394,9 @@ exit 0 %endif %changelog +* Wed Oct 9 2019 Kaleb S. KEITHLEY +- f31+ --without-bd + * Tue Oct 1 2019 Kaleb S. KEITHLEY - 7.0-0.5rc3 - 7.0 RC3 (note, rc2 was tagged but not released) From 3987d5f2477f25163eab2d4ad8bb68a8e74c74a0 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 10 Oct 2019 07:56:25 -0400 Subject: [PATCH 242/328] bd xlator was removed in glusterfs-6 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index d5170c8..88ecfca 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -22,15 +22,6 @@ %global _with_asan %{nil} %endif -# bd -# if you wish to compile an rpm without the BD map support... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd -%{?_without_bd:%global _without_bd --disable-bd-xlator} - -%if ( 0%{?fedora} && 0%{?fedora} > 30 ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) -%global _without_bd --without-bd -%endif - # cmocka # if you wish to compile an rpm with cmocka unit testing... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka @@ -1395,7 +1386,7 @@ exit 0 %changelog * Wed Oct 9 2019 Kaleb S. KEITHLEY -- f31+ --without-bd +- bd xlator was removed in glusterfs-6 * Tue Oct 1 2019 Kaleb S. KEITHLEY - 7.0-0.5rc3 - 7.0 RC3 (note, rc2 was tagged but not released) From 4e87734e63a2fb13877a5f56ec881c6f67fb3add Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 15 Oct 2019 09:14:59 -0400 Subject: [PATCH 243/328] 7.0 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 88ecfca..98b7406 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -7,7 +7,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the %%dev for pre-releases -%global dev rc3 +#%%global dev rc3 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -196,7 +196,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 7.0 -Release: 0.5%{?dev:%{dev}}%{?dist} +Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1385,6 +1385,9 @@ exit 0 %endif %changelog +* Tue Oct 15 2019 Kaleb S. KEITHLEY - 7.0-1 +- 7.0 GA + * Wed Oct 9 2019 Kaleb S. KEITHLEY - bd xlator was removed in glusterfs-6 diff --git a/sources b/sources index 01ae78b..6a84084 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-7.0rc3.tar.gz) = fc36b40dd92b8a3e8e796a30a9017757a49d8c3d746554a40037b0ffc056eab5a69e5c91fa687a0dd065a8ea519043a46be6402ec7c1d23e88788df12f748b08 +SHA512 (glusterfs-7.0.tar.gz) = 688b7ef32736ea71ab8d1e42d46090c6dd52f25c5d216cc29b88d11b59c28383523379dae10b8c986ad0132b3c4fa5ec35d814cf8c217c88b7e60456c40ccbe7 From ebdd1b76cb690585768576b1428824d99bbfd751 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 23 Dec 2019 07:58:35 -0500 Subject: [PATCH 244/328] 7.1 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 9 ++++----- sources | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 98b7406..f26714b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -195,7 +195,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 7.0 +Version: 7.1 Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -250,9 +250,6 @@ BuildRequires: libuuid-devel %if ( 0%{?_with_cmocka:1} ) BuildRequires: libcmocka-devel >= 1.0.1 %endif -%if ( 0%{!?_without_bd:1} ) -BuildRequires: lvm2-devel -%endif %if ( 0%{!?_without_georeplication:1} ) BuildRequires: libattr-devel %endif @@ -687,7 +684,6 @@ sed -i -e 's/--quiet//' configure.ac %{?_with_tmpfilesdir} \ %{?_with_tsan} \ %{?_with_valgrind} \ - %{?_without_bd} \ %{?_without_epoll} \ %{?_without_events} \ %{?_without_fusermount} \ @@ -1385,6 +1381,9 @@ exit 0 %endif %changelog +* Mon Dec 23 2019 Kaleb S. KEITHLEY - 7.1-1 +- 7.1 GA + * Tue Oct 15 2019 Kaleb S. KEITHLEY - 7.0-1 - 7.0 GA diff --git a/sources b/sources index 6a84084..4a09a74 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-7.0.tar.gz) = 688b7ef32736ea71ab8d1e42d46090c6dd52f25c5d216cc29b88d11b59c28383523379dae10b8c986ad0132b3c4fa5ec35d814cf8c217c88b7e60456c40ccbe7 +SHA512 (glusterfs-7.1.tar.gz) = d6f3e3732af4c4bac7b4da2a3829198d81d7158fb284556a146a597d25e7ce467f13dda4f4b04d2b4591c7f95f4867eadf0e307b3267595140292ead06c67b44 From 618a66b189556b0e35440a595086c10759482353 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 15 Jan 2020 13:28:34 -0500 Subject: [PATCH 245/328] 7.2 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f26714b..365dd07 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -195,7 +195,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 7.1 +Version: 7.2 Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1381,6 +1381,9 @@ exit 0 %endif %changelog +* Wed Jan 15 2020 Kaleb S. KEITHLEY - 7.2-1 +- 7.2 GA + * Mon Dec 23 2019 Kaleb S. KEITHLEY - 7.1-1 - 7.1 GA diff --git a/sources b/sources index 4a09a74..baea6b4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-7.1.tar.gz) = d6f3e3732af4c4bac7b4da2a3829198d81d7158fb284556a146a597d25e7ce467f13dda4f4b04d2b4591c7f95f4867eadf0e307b3267595140292ead06c67b44 +SHA512 (glusterfs-7.2.tar.gz) = fd1059222c4d30fa5c4011083c3c53af44433180ae124c884a774628051d31d95386bef71d4d25ed2b0c5dd8d9a6936601e8e37d963b34d291cb88ea45e31ff2 From f9153ccd81f5a9d35ef71abc63203c85f7c2ecf2 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 22 Jan 2020 13:42:27 -0500 Subject: [PATCH 246/328] 7.2, gcc-10 fix Signed-off-by: Kaleb S. KEITHLEY --- ...fns-of-cli_default_conn_timeout-and-.patch | 101 ++++++++++++++++++ glusterfs.spec | 7 +- 2 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 0001-cli-duplicate-defns-of-cli_default_conn_timeout-and-.patch diff --git a/0001-cli-duplicate-defns-of-cli_default_conn_timeout-and-.patch b/0001-cli-duplicate-defns-of-cli_default_conn_timeout-and-.patch new file mode 100644 index 0000000..47c63d8 --- /dev/null +++ b/0001-cli-duplicate-defns-of-cli_default_conn_timeout-and-.patch @@ -0,0 +1,101 @@ +From 5ccd50176b4e45abf528ef6870c332ef5f05448e Mon Sep 17 00:00:00 2001 +From: "Kaleb S. KEITHLEY" +Date: Thu, 2 Jan 2020 07:46:23 -0500 +Subject: [PATCH] cli: duplicate defns of cli_default_conn_timeout and + cli_ten_minutes_timeout + +Winter is coming. So is gcc-10. + +Compiling with gcc-10-20191219 snapshot reveals dupe defns of +cli_default_conn_timeout and cli_ten_minutes_timeout in +.../cli/src/cli.[ch] due to missing extern decl. + +There are many changes coming in gcc-10 described in +https://gcc.gnu.org/gcc-10/changes.html + +compiling cli.c with gcc-9 we see: + ... + .quad .LC88 + .comm cli_ten_minutes_timeout,4,4 + .comm cli_default_conn_timeout,4,4 + .text + .Letext0: + ... + +and with gcc-10: + ... + .quad .LC88 + .globl cli_ten_minutes_timeout + .bss + .align 4 + .type cli_ten_minutes_timeout, @object + .size cli_ten_minutes_timeout, 4 + cli_ten_minutes_timeout: + .zero 4 + .globl cli_default_conn_timeout + .align 4 + .type cli_default_conn_timeout, @object + .size cli_default_conn_timeout, 4 + cli_default_conn_timeout: + .zero 4 + .text + .Letext0: + ... + +which is reflected in the .o file as (gcc-9): +... +0000000000000004 C cli_ten_minutes_timeout +0000000000000004 C cli_default_conn_timeout +... + +and (gcc-10): +... +0000000000000020 B cli_ten_minutes_timeout +0000000000000024 B cli_default_conn_timeout +... + +See nm(1) and ld(1) for a description C (common) and B (BSS) and how +they are treated by the linker. + +Note: gcc-10 will land in Fedora-32! + +Change-Id: I54ea485736a4910254eeb21222ad263721cdef3c +Fixes: bz#1793492 +Signed-off-by: Kaleb S. KEITHLEY +--- + cli/src/cli.c | 3 +++ + cli/src/cli.h | 4 ++-- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/cli/src/cli.c b/cli/src/cli.c +index fac32d3e9..6ac9c7901 100644 +--- a/cli/src/cli.c ++++ b/cli/src/cli.c +@@ -84,6 +84,9 @@ rpc_clnt_prog_t *cli_rpc_prog; + + extern struct rpc_clnt_program cli_prog; + ++int cli_default_conn_timeout = 120; ++int cli_ten_minutes_timeout = 600; ++ + static int + glusterfs_ctx_defaults_init(glusterfs_ctx_t *ctx) + { +diff --git a/cli/src/cli.h b/cli/src/cli.h +index 7166991a7..09d824ed0 100644 +--- a/cli/src/cli.h ++++ b/cli/src/cli.h +@@ -39,8 +39,8 @@ enum argp_option_keys { + ARGP_PORT_KEY = 'p', + }; + +-int cli_default_conn_timeout; +-int cli_ten_minutes_timeout; ++extern int cli_default_conn_timeout; ++extern int cli_ten_minutes_timeout; + + typedef enum { + COLD_BRICK_COUNT, +-- +2.24.1 + diff --git a/glusterfs.spec b/glusterfs.spec index 365dd07..44a4ae3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,7 +196,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 7.2 -Release: 1%{?dev:%{dev}}%{?dist} +Release: 2%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -213,6 +213,7 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif +Patch0001: 0001-cli-duplicate-defns-of-cli_default_conn_timeout-and-.patch Requires(pre): shadow-utils BuildRequires: systemd @@ -665,6 +666,7 @@ This package provides the glusterfs thin-arbiter translator. %prep %setup -q -n %{name}-%{version}%{?dev} +%patch0001 -p1 %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do @@ -1381,6 +1383,9 @@ exit 0 %endif %changelog +* Wed Jan 22 2020 Kaleb S. KEITHLEY - 7.2-2 +- 7.2, gcc-10 fix + * Wed Jan 15 2020 Kaleb S. KEITHLEY - 7.2-1 - 7.2 GA From ab2ac21499db8c2c3ef0799b2e223059fb28e5c2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jan 2020 22:29:22 +0000 Subject: [PATCH 247/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 44a4ae3..6c00476 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 7.2 -Release: 2%{?dev:%{dev}}%{?dist} +Release: 3%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.1 +Release: 0.@PACKAGE_RELEASE@%{?dist}.2 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1383,6 +1383,9 @@ exit 0 %endif %changelog +* Tue Jan 28 2020 Fedora Release Engineering - 7.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Wed Jan 22 2020 Kaleb S. KEITHLEY - 7.2-2 - 7.2, gcc-10 fix From 3f1fa241c8e8a451ef1d982f02e939216eedb145 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 17 Feb 2020 08:15:05 -0500 Subject: [PATCH 248/328] 7.3 GA Signed-off-by: Kaleb S. KEITHLEY --- ...fns-of-cli_default_conn_timeout-and-.patch | 101 ------------------ glusterfs.spec | 9 +- sources | 1 + 3 files changed, 6 insertions(+), 105 deletions(-) delete mode 100644 0001-cli-duplicate-defns-of-cli_default_conn_timeout-and-.patch diff --git a/0001-cli-duplicate-defns-of-cli_default_conn_timeout-and-.patch b/0001-cli-duplicate-defns-of-cli_default_conn_timeout-and-.patch deleted file mode 100644 index 47c63d8..0000000 --- a/0001-cli-duplicate-defns-of-cli_default_conn_timeout-and-.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 5ccd50176b4e45abf528ef6870c332ef5f05448e Mon Sep 17 00:00:00 2001 -From: "Kaleb S. KEITHLEY" -Date: Thu, 2 Jan 2020 07:46:23 -0500 -Subject: [PATCH] cli: duplicate defns of cli_default_conn_timeout and - cli_ten_minutes_timeout - -Winter is coming. So is gcc-10. - -Compiling with gcc-10-20191219 snapshot reveals dupe defns of -cli_default_conn_timeout and cli_ten_minutes_timeout in -.../cli/src/cli.[ch] due to missing extern decl. - -There are many changes coming in gcc-10 described in -https://gcc.gnu.org/gcc-10/changes.html - -compiling cli.c with gcc-9 we see: - ... - .quad .LC88 - .comm cli_ten_minutes_timeout,4,4 - .comm cli_default_conn_timeout,4,4 - .text - .Letext0: - ... - -and with gcc-10: - ... - .quad .LC88 - .globl cli_ten_minutes_timeout - .bss - .align 4 - .type cli_ten_minutes_timeout, @object - .size cli_ten_minutes_timeout, 4 - cli_ten_minutes_timeout: - .zero 4 - .globl cli_default_conn_timeout - .align 4 - .type cli_default_conn_timeout, @object - .size cli_default_conn_timeout, 4 - cli_default_conn_timeout: - .zero 4 - .text - .Letext0: - ... - -which is reflected in the .o file as (gcc-9): -... -0000000000000004 C cli_ten_minutes_timeout -0000000000000004 C cli_default_conn_timeout -... - -and (gcc-10): -... -0000000000000020 B cli_ten_minutes_timeout -0000000000000024 B cli_default_conn_timeout -... - -See nm(1) and ld(1) for a description C (common) and B (BSS) and how -they are treated by the linker. - -Note: gcc-10 will land in Fedora-32! - -Change-Id: I54ea485736a4910254eeb21222ad263721cdef3c -Fixes: bz#1793492 -Signed-off-by: Kaleb S. KEITHLEY ---- - cli/src/cli.c | 3 +++ - cli/src/cli.h | 4 ++-- - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/cli/src/cli.c b/cli/src/cli.c -index fac32d3e9..6ac9c7901 100644 ---- a/cli/src/cli.c -+++ b/cli/src/cli.c -@@ -84,6 +84,9 @@ rpc_clnt_prog_t *cli_rpc_prog; - - extern struct rpc_clnt_program cli_prog; - -+int cli_default_conn_timeout = 120; -+int cli_ten_minutes_timeout = 600; -+ - static int - glusterfs_ctx_defaults_init(glusterfs_ctx_t *ctx) - { -diff --git a/cli/src/cli.h b/cli/src/cli.h -index 7166991a7..09d824ed0 100644 ---- a/cli/src/cli.h -+++ b/cli/src/cli.h -@@ -39,8 +39,8 @@ enum argp_option_keys { - ARGP_PORT_KEY = 'p', - }; - --int cli_default_conn_timeout; --int cli_ten_minutes_timeout; -+extern int cli_default_conn_timeout; -+extern int cli_ten_minutes_timeout; - - typedef enum { - COLD_BRICK_COUNT, --- -2.24.1 - diff --git a/glusterfs.spec b/glusterfs.spec index 6c00476..50448d5 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -195,8 +195,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 7.2 -Release: 3%{?dev:%{dev}}%{?dist} +Version: 7.3 +Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -213,7 +213,6 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0001: 0001-cli-duplicate-defns-of-cli_default_conn_timeout-and-.patch Requires(pre): shadow-utils BuildRequires: systemd @@ -666,7 +665,6 @@ This package provides the glusterfs thin-arbiter translator. %prep %setup -q -n %{name}-%{version}%{?dev} -%patch0001 -p1 %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do @@ -1383,6 +1381,9 @@ exit 0 %endif %changelog +* Mon Feb 17 2020 Kaleb S. KEITHLEY - 7.3-1 +- 7.3 GA + * Tue Jan 28 2020 Fedora Release Engineering - 7.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/sources b/sources index baea6b4..ee006e9 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (glusterfs-7.2.tar.gz) = fd1059222c4d30fa5c4011083c3c53af44433180ae124c884a774628051d31d95386bef71d4d25ed2b0c5dd8d9a6936601e8e37d963b34d291cb88ea45e31ff2 +SHA512 (glusterfs-7.3.tar.gz) = 901f55d5084e90f4b5907fbbe7d5f7d1937198b500efc369651970053029b727c0bfc6180b6058a3211523b4e16a63bf821b1a9f81dfc1b87b2061d271ec9b3f From 7d209ed114b17c93089962c5c4a8a740f17e1a29 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 18 Mar 2020 10:20:55 -0400 Subject: [PATCH 249/328] 7.4 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- sources | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 50448d5..5bbe32d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -195,7 +195,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 7.3 +Version: 7.4 Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1381,6 +1381,9 @@ exit 0 %endif %changelog +* Wed Mar 18 2020 Kaleb S. KEITHLEY - 7.4-1 +- 7.4 GA + * Mon Feb 17 2020 Kaleb S. KEITHLEY - 7.3-1 - 7.3 GA diff --git a/sources b/sources index ee006e9..c9ae878 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (glusterfs-7.2.tar.gz) = fd1059222c4d30fa5c4011083c3c53af44433180ae124c884a774628051d31d95386bef71d4d25ed2b0c5dd8d9a6936601e8e37d963b34d291cb88ea45e31ff2 -SHA512 (glusterfs-7.3.tar.gz) = 901f55d5084e90f4b5907fbbe7d5f7d1937198b500efc369651970053029b727c0bfc6180b6058a3211523b4e16a63bf821b1a9f81dfc1b87b2061d271ec9b3f +SHA512 (glusterfs-7.4.tar.gz) = e22452230f73672bfd6ff2f012e36dceb3fc33992767487a2b11b2a004fbe141707704f9830423076ccb51d74269b62ef50bbda8fe1c064f4d19f13c037dea58 From 2e0259eaf6deec55aff35598b6de8be8b8e4b2c1 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 16 Apr 2020 07:23:41 -0400 Subject: [PATCH 250/328] 7.5 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5bbe32d..e0bcfea 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -195,7 +195,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 7.4 +Version: 7.5 Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1381,6 +1381,9 @@ exit 0 %endif %changelog +* Thu Apr 16 2020 Kaleb S. KEITHLEY - 7.5-1 +- 7.5 GA + * Wed Mar 18 2020 Kaleb S. KEITHLEY - 7.4-1 - 7.4 GA diff --git a/sources b/sources index c9ae878..64e50a6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-7.4.tar.gz) = e22452230f73672bfd6ff2f012e36dceb3fc33992767487a2b11b2a004fbe141707704f9830423076ccb51d74269b62ef50bbda8fe1c064f4d19f13c037dea58 +SHA512 (glusterfs-7.5.tar.gz) = dfd8f04fb398daa7d7f58ef978ab69c0a55a313ac2af3287f7e1e7044f708317227c8749af5fd8d56844dfb8ad47bbd3214c42b806e2e21191a6a8617ab0be38 From eb07bdf9c03a91df6d756158866aa4c344b71db6 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 18 May 2020 17:18:17 -0400 Subject: [PATCH 251/328] 7.6 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e0bcfea..295137b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -195,7 +195,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 7.5 +Version: 7.6 Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1381,6 +1381,9 @@ exit 0 %endif %changelog +* Mon May 18 2020 Kaleb S. KEITHLEY - 7.6-1 +- 7.6 GA + * Thu Apr 16 2020 Kaleb S. KEITHLEY - 7.5-1 - 7.5 GA diff --git a/sources b/sources index 64e50a6..862d37d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-7.5.tar.gz) = dfd8f04fb398daa7d7f58ef978ab69c0a55a313ac2af3287f7e1e7044f708317227c8749af5fd8d56844dfb8ad47bbd3214c42b806e2e21191a6a8617ab0be38 +SHA512 (glusterfs-7.6.tar.gz) = c26b2046e7afdbb37fdd395fd9f692a0513ebb58c91ea223fbbaf9f8b41641b1fd009f2975e187f0feb8d83fb5cd4a8a0c2fdf4591a8a31e920d6bba75ae7c0f From 3737e320522717cc393a0024f296aef567edcaf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 26 May 2020 02:46:43 +0200 Subject: [PATCH 252/328] Rebuilt for Python 3.9 --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 295137b..b60ef0e 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 7.6 -Release: 1%{?dev:%{dev}}%{?dist} +Release: 2%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.2 +Release: 0.@PACKAGE_RELEASE@%{?dist}.3 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1381,6 +1381,9 @@ exit 0 %endif %changelog +* Tue May 26 2020 Miro Hrončok - 7.6-2 +- Rebuilt for Python 3.9 + * Mon May 18 2020 Kaleb S. KEITHLEY - 7.6-1 - 7.6 GA From 1a06b53cf644a69cba75b08ee3e1fc22ddf3971f Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 1 Jun 2020 08:10:40 -0400 Subject: [PATCH 253/328] 8.0 RC0 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 388 ++++++++++++++++++++++++++++--------------------- sources | 2 +- 2 files changed, 224 insertions(+), 166 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index b60ef0e..f8f2ee2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -7,7 +7,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the %%dev for pre-releases -#%%global dev rc3 +%global dev rc0 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -73,16 +73,6 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} -# rdma -# if you wish to compile an rpm without rdma support, compile like this... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma -%{?_without_rdma:%global _without_rdma --disable-ibverbs} - -# No RDMA Support on armv7hl -%ifarch armv7hl -%global _without_rdma --disable-ibverbs -%endif - # server # if you wish to build rpms without server components, compile like this # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without server @@ -195,8 +185,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 7.6 -Release: 2%{?dev:%{dev}}%{?dist} +Version: 8.0 +Release: 0.1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -258,28 +248,27 @@ BuildRequires: libattr-devel BuildRequires: firewalld %endif -Obsoletes: hekafs +Obsoletes: hekafs <= %{version}-%{release} Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} %if ( 0%{_for_fedora_koji_builds} ) -Obsoletes: %{name}-regression-tests +Obsoletes: %{name}-regression-tests <= %{version}-%{release} %endif -Obsoletes: %{name}-ufo +Obsoletes: %{name}-ufo <= %{version}-%{release} %if ( 0%{!?_with_gnfs:1} ) -Obsoletes: %{name}-gnfs +Obsoletes: %{name}-gnfs <= %{version}-%{release} %endif -Obsoletes: %{name}-ganesha +Obsoletes: %{name}-rdma < %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} %description GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package includes the glusterfs binary, the glusterfsd daemon and the libglusterfs and glusterfs translator modules common to both GlusterFS server @@ -294,12 +283,11 @@ Requires(postun): /sbin/ldconfig %description api GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides the glusterfs libgfapi library. @@ -311,12 +299,11 @@ Requires: libacl-devel %description api-devel GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides the api include files. @@ -326,12 +313,11 @@ Requires: %{name}-libs = %{version}-%{release} %description cli GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides the GlusterFS CLI application and its man page @@ -340,12 +326,11 @@ Summary: GlusterFS client-side translators %description client-xlators GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides the translators needed on any GlusterFS client. @@ -355,12 +340,11 @@ BuildRequires: libcurl-devel %description cloudsync-plugins GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides cloudsync plugins for archival feature. @@ -372,12 +356,11 @@ Requires: %{name}-extra-xlators = %{version}-%{release} %description devel GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides the development libraries and include files. @@ -401,12 +384,11 @@ Requires: python-argparse %description events GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides the GlusterFS Events %endif @@ -420,12 +402,11 @@ Requires: python%{_pythonver} %description extra-xlators GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides extra filesystem Translators, such as Glupy, for GlusterFS. @@ -444,16 +425,59 @@ Provides: %{name}-client = %{version}-%{release} %description fuse GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides support to FUSE based clients and includes the glusterfsd and glusterfs binaries. +%if ( 0%{!?_without_server:1} ) +%package ganesha +Summary: NFS-Ganesha configuration +Group: Applications/File + +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: nfs-ganesha-selinux >= 2.7.6 +Requires: nfs-ganesha-gluster >= 2.7.6 +Requires: pcs >= 0.10.0 +Requires: resource-agents >= 4.2.0 +Requires: dbus + +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +Requires: cman, pacemaker, corosync +%endif + +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 5 ) +# we need portblock resource-agent in 3.9.5 and later. +Requires: net-tools +%endif + +%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) +Requires: selinux-policy >= 3.13.1-160 +Requires(post): policycoreutils-python +Requires(postun): policycoreutils-python +%else +Requires(post): policycoreutils-python-utils +Requires(postun): policycoreutils-python-utils +%endif +%endif + +%description ganesha +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. + +This package provides the configuration and related files for using +NFS-Ganesha as the NFS server using GlusterFS +%endif + %if ( 0%{!?_without_georeplication:1} ) %package geo-replication Summary: GlusterFS Geo-replication @@ -466,12 +490,11 @@ Requires: rsync %description geo-replication GlusterFS is a distributed file-system capable of scaling to several -peta-bytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file system in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in userspace and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides support to geo-replication. %endif @@ -502,12 +525,11 @@ Requires(postun): /sbin/ldconfig %description libs GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides the base GlusterFS libraries @@ -522,39 +544,15 @@ Obsoletes: python-gluster < 3.10 %description -n python%{_pythonver}-gluster GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package contains the python modules of GlusterFS and own gluster namespace. -%if ( 0%{!?_without_rdma:1} ) -%package rdma -Summary: GlusterFS rdma support for ib-verbs -%if ( 0%{?fedora} && 0%{?fedora} > 26 ) -BuildRequires: rdma-core-devel -%else -BuildRequires: libibverbs-devel -BuildRequires: librdmacm-devel >= 1.0.15 -%endif -Requires: %{name} = %{version}-%{release} - -%description rdma -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides support to ib-verbs library. -%endif - %if ( ! 0%{_for_fedora_koji_builds} ) %package regression-tests Summary: Development Tools @@ -584,12 +582,11 @@ Requires: %{_prefix}/lib/ocf/resource.d %description resource-agents GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. This package provides the resource agents which plug glusterd into Open Cluster Framework (OCF) compliant cluster resource managers, @@ -776,6 +773,15 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs +# ganesha ghosts +%if ( 0%{!?_without_server:1} ) +mkdir -p %{buildroot}%{_sysconfdir}/ganesha +touch %{buildroot}%{_sysconfdir}/ganesha/ganesha-ha.conf +mkdir -p %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ +touch %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha.conf +touch %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha-ha.conf +%endif + %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication @@ -834,6 +840,14 @@ exit 0 exit 0 %endif +%if ( 0%{!?_without_server:1} ) +%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) +%post ganesha +semanage boolean -m ganesha_use_fusefs --on +exit 0 +%endif +%endif + %if ( 0%{!?_without_georeplication:1} ) %post geo-replication if [ $1 -ge 1 ]; then @@ -991,6 +1005,36 @@ exit 0 exit 0 %endif +%if ( 0%{!?_without_server:1} ) +%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) +%postun ganesha +semanage boolean -m ganesha_use_fusefs --off +exit 0 +%endif +%endif + +##----------------------------------------------------------------------------- +## All %%trigger should be placed here and keep them sorted +## +%if ( 0%{!?_without_server:1} ) +%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) +%trigger ganesha -- selinux-policy-targeted +semanage boolean -m ganesha_use_fusefs --on +exit 0 +%endif +%endif + +##----------------------------------------------------------------------------- +## All %%triggerun should be placed here and keep them sorted +## +%if ( 0%{!?_without_server:1} ) +%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) +%triggerun ganesha -- selinux-policy-targeted +semanage boolean -m ganesha_use_fusefs --off +exit 0 +%endif +%endif + ##----------------------------------------------------------------------------- ## All %%files should be placed here and keep them sorted by groups ## @@ -1060,6 +1104,13 @@ exit 0 %{_tmpfilesdir}/gluster.conf %endif +%if ( 0%{?_without_server:1} ) +#exclude ganesha related files +%exclude %{_sysconfdir}/ganesha/ganesha-ha.conf.sample +%exclude %{_libexecdir}/ganesha/* +%exclude %{_prefix}/lib/ocf/resource.d/heartbeat/* +%endif + %files api %exclude %{_libdir}/*.so # libgfapi files @@ -1098,6 +1149,22 @@ exit 0 %{_libdir}/*.so %{_libdir}/pkgconfig/libgfchangelog.pc +# Events +%if ( 0%{!?_without_events:1} ) +%files events +%config(noreplace) %{_sysconfdir}/glusterfs/eventsconfig.json +%dir %{_sharedstatedir}/glusterd +%dir %{_sharedstatedir}/glusterd/events +%dir %{_libexecdir}/glusterfs +%dir %{_libexecdir}/glusterfs/gfevents + %{_libexecdir}/glusterfs/gfevents/* + %{_libexecdir}/glusterfs/peer_eventsapi.py* +%{_sbindir}/glustereventsd +%{_sbindir}/gluster-eventsapi +%{_datadir}/glusterfs/scripts/eventsdash.py* +%{_unitdir}/glustereventsd.service +%endif + %files extra-xlators %dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/quiesce.so @@ -1126,16 +1193,19 @@ exit 0 %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %endif -%files thin-arbiter -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/thin-arbiter.so -%dir %{_datadir}/glusterfs/scripts - %{_datadir}/glusterfs/scripts/setup-thin-arbiter.sh -%config %{_sysconfdir}/glusterfs/thin-arbiter.vol - -%{_unitdir}/gluster-ta-volume.service +%if ( 0%{!?_without_server:1} ) +%files ganesha +%dir %{_libexecdir}/ganesha +%{_sysconfdir}/ganesha/ganesha-ha.conf.sample +%{_libexecdir}/ganesha/* +%{_prefix}/lib/ocf/resource.d/heartbeat/* +%{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh +%ghost %attr(0644,-,-) %config(noreplace) %{_sysconfdir}/ganesha/ganesha-ha.conf +%ghost %dir %attr(0755,-,-) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha +%ghost %attr(0644,-,-) %config(noreplace) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha.conf +%ghost %attr(0644,-,-) %config(noreplace) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha-ha.conf +%endif %if ( 0%{!?_without_georeplication:1} ) %files geo-replication @@ -1148,6 +1218,13 @@ exit 0 %dir %{_libexecdir}/glusterfs/python/syncdaemon %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* +%dir %{_libexecdir}/glusterfs/scripts + %{_libexecdir}/glusterfs/scripts/get-gfid.sh + %{_libexecdir}/glusterfs/scripts/slave-upgrade.sh + %{_libexecdir}/glusterfs/scripts/gsync-upgrade.sh + %{_libexecdir}/glusterfs/scripts/generate-gfid-file.sh + %{_libexecdir}/glusterfs/scripts/gsync-sync-gfid + %{_libexecdir}/glusterfs/scripts/schedule_georep.py* %{_libexecdir}/glusterfs/gverify.sh %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh %{_libexecdir}/glusterfs/peer_gsec_create @@ -1164,15 +1241,6 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre - -%dir %{_datadir}/glusterfs -%dir %{_datadir}/glusterfs/scripts - %{_datadir}/glusterfs/scripts/get-gfid.sh - %{_datadir}/glusterfs/scripts/slave-upgrade.sh - %{_datadir}/glusterfs/scripts/gsync-upgrade.sh - %{_datadir}/glusterfs/scripts/generate-gfid-file.sh - %{_datadir}/glusterfs/scripts/gsync-sync-gfid - %{_datadir}/glusterfs/scripts/schedule_georep.py* %endif %files libs @@ -1194,12 +1262,6 @@ exit 0 %{python2_sitelib}/gluster/cliutils %endif -%if ( 0%{!?_without_rdma:1} ) -%files rdma -%dir %{_libdir}/glusterfs/%{version}%{?dev}/rpc-transport - %{_libdir}/glusterfs/%{version}%{?dev}/rpc-transport/rdma* -%endif - %if ( ! 0%{_for_fedora_koji_builds} ) %files regression-tests %dir %{_prefix}/share/glusterfs @@ -1241,7 +1303,7 @@ exit 0 # binaries %{_sbindir}/glusterd -%{_sbindir}/glfsheal +%{_libexecdir}/glusterfs/glfsheal %{_sbindir}/gf_attach %{_sbindir}/gluster-setgfid2path # {_sbindir}/glusterfsd is the actual binary, but glusterfs (client) is a @@ -1364,23 +1426,19 @@ exit 0 # end of server files %endif -# Events -%if ( 0%{!?_without_events:1} ) -%files events -%config(noreplace) %{_sysconfdir}/glusterfs/eventsconfig.json -%dir %{_sharedstatedir}/glusterd -%dir %{_sharedstatedir}/glusterd/events -%dir %{_libexecdir}/glusterfs -%dir %{_libexecdir}/glusterfs/gfevents - %{_libexecdir}/glusterfs/gfevents/* - %{_libexecdir}/glusterfs/peer_eventsapi.py* -%{_sbindir}/glustereventsd -%{_sbindir}/gluster-eventsapi -%{_datadir}/glusterfs/scripts/eventsdash.py* -%{_unitdir}/glustereventsd.service -%endif +%files thin-arbiter +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/thin-arbiter.so +%dir %{_datadir}/glusterfs/scripts + %{_datadir}/glusterfs/scripts/setup-thin-arbiter.sh +%config %{_sysconfdir}/glusterfs/thin-arbiter.vol +%{_unitdir}/gluster-ta-volume.service %changelog +* Mon Jun 1 2020 Kaleb S. KEITHLEY - 8.0-0.1rc0 +- 8.0 RC0 + * Tue May 26 2020 Miro Hrončok - 7.6-2 - Rebuilt for Python 3.9 diff --git a/sources b/sources index 862d37d..6b57fc2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-7.6.tar.gz) = c26b2046e7afdbb37fdd395fd9f692a0513ebb58c91ea223fbbaf9f8b41641b1fd009f2975e187f0feb8d83fb5cd4a8a0c2fdf4591a8a31e920d6bba75ae7c0f +SHA512 (glusterfs-8.0rc0.tar.gz) = f435cf564b1f435f39efe86e1a2b8a195171c1957d5646959eccc69080d8f472db2897d164a71aefa98aca9458211f367e1fe4347ee78afe65f31c832e10d52b From 4186cb9be26aeaa01eb0b51662c364b91171e7f4 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 1 Jul 2020 12:26:10 -0600 Subject: [PATCH 254/328] Disable LTO --- glusterfs.spec | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index f8f2ee2..c35fdb2 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -186,7 +186,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 8.0 -Release: 0.1%{?dev:%{dev}}%{?dist} +Release: 0.2%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -670,6 +670,13 @@ done %endif %build +# This package uses top level ASM constructs which are incompatible with LTO. +# Top level ASMs are often used to implement symbol versioning. gcc-10 +# introduces a new mechanism for symbol versioning which works with LTO. +# Converting packages to use that mechanism instead of toplevel ASMs is +# recommended. +# Disable LTO +%define _lto_cflags %{nil} sed -i -e 's/--quiet//' configure.ac ./autogen.sh && %configure \ @@ -1436,6 +1443,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Wed Jul 1 2020 Jeff Law - 8.0-0.2rc0 +- Disable LTO + * Mon Jun 1 2020 Kaleb S. KEITHLEY - 8.0-0.1rc0 - 8.0 RC0 From a2a88a7c6e14d830b0019b88754908db0f17b126 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Sat, 4 Jul 2020 08:09:47 -0400 Subject: [PATCH 255/328] 8.0 fix symbol versions, enable LTO Signed-off-by: Kaleb S. KEITHLEY --- ...bol-versions-break-LTO-in-Fedora-raw.patch | 2233 +++++++++++++++++ glusterfs.spec | 18 +- 2 files changed, 2239 insertions(+), 12 deletions(-) create mode 100644 0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patch diff --git a/0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patch b/0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patch new file mode 100644 index 0000000..daed10e --- /dev/null +++ b/0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patch @@ -0,0 +1,2233 @@ +From bc09af77376c45d28e6c789b0b4e64deed053aad Mon Sep 17 00:00:00 2001 +From: "Kaleb S. KEITHLEY" +Date: Thu, 2 Jul 2020 15:52:15 -0400 +Subject: [PATCH] api: libgfapi symbol versions break LTO in Fedora rawhide/f33 + +The way symbol versions are implemented is incompatible with gcc-10 and LTO. + +Fedora provenpackager Jeff Law (law [at] redhat.com) writes in the +Fedora dist-git glusterfs.spec: + This package uses top level ASM constructs which are incompatible with LTO. + Top level ASMs are often used to implement symbol versioning. gcc-10 + introduces a new mechanism for symbol versioning which works with LTO. + Converting packages to use that mechanism instead of toplevel ASMs is + recommended. + +In particular, note that the version of gluster in Fedora rawhide/f33 is +glusterfs-8.0RC0. Once this fix is merged it will be necessary to backport +it to the release-8 branch. + +At the time that gfapi symbol versions were first implemented we copied +the GNU libc (glibc) symbol version implementation following Uli Drepper's +symbol versioning HOWTO. + +Now gcc-10 has a symver attribute that can be used instead. (Maybe it +has been there all along?) + +Both the original implemenation and this implemenation yield the same +symbol versions. This can be seen by running + `nm -D --with-symbol-versions libgfapi.so` +on the libgfapi.so built before and after applying this fix. + +Change-Id: I05fda580afacfff1bfc07be810dd1afc08a92fb8 +Fixes: #1352 +Signed-off-by: Kaleb S. KEITHLEY +--- + api/src/glfs-fops.c | 322 +++++++++++++-------------------------- + api/src/glfs-handleops.c | 100 +++++------- + api/src/glfs-internal.h | 27 +++- + api/src/glfs-mgmt.c | 3 +- + api/src/glfs-resolve.c | 14 +- + api/src/glfs.c | 99 +++++------- + 6 files changed, 210 insertions(+), 355 deletions(-) + +diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c +index 8d6d11423..fc2cfa043 100644 +--- a/api/src/glfs-fops.c ++++ b/api/src/glfs-fops.c +@@ -292,6 +292,7 @@ glfs_iatt_to_statx(struct glfs *fs, const struct iatt *iatt, + statx->glfs_st_attributes_mask = 0; + } + ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_iatt_from_statx, 6.0) + void + priv_glfs_iatt_from_statx(struct iatt *iatt, const struct glfs_stat *statx) + { +@@ -371,7 +372,6 @@ priv_glfs_iatt_from_statx(struct iatt *iatt, const struct glfs_stat *statx) + iatt->ia_attributes = statx->glfs_st_attributes; + iatt->ia_attributes_mask = statx->glfs_st_attributes_mask; + } +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_iatt_from_statx, 6.0); + + void + glfsflags_from_gfapiflags(struct glfs_stat *stat, int *glvalid) +@@ -415,6 +415,7 @@ glfs_loc_unlink(loc_t *loc) + return 0; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_open, 3.4.0) + struct glfs_fd * + pub_glfs_open(struct glfs *fs, const char *path, int flags) + { +@@ -509,8 +510,7 @@ invalid_fs: + return glfd; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_open, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_close, 3.4.0) + int + pub_glfs_close(struct glfs_fd *glfd) + { +@@ -565,8 +565,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_close, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lstat, 3.4.0) + int + pub_glfs_lstat(struct glfs *fs, const char *path, struct stat *stat) + { +@@ -607,8 +606,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lstat, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_stat, 3.4.0) + int + pub_glfs_stat(struct glfs *fs, const char *path, struct stat *stat) + { +@@ -649,8 +647,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_stat, 3.4.0); +- ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_statx, 6.0) + int + priv_glfs_statx(struct glfs *fs, const char *path, const unsigned int mask, + struct glfs_stat *statxbuf) +@@ -704,8 +701,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_statx, 6.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fstat, 3.4.0) + int + pub_glfs_fstat(struct glfs_fd *glfd, struct stat *stat) + { +@@ -754,8 +750,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fstat, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_creat, 3.4.0) + struct glfs_fd * + pub_glfs_creat(struct glfs *fs, const char *path, int flags, mode_t mode) + { +@@ -902,8 +897,6 @@ invalid_fs: + return glfd; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_creat, 3.4.0); +- + #ifdef HAVE_SEEK_HOLE + static int + glfs_seek(struct glfs_fd *glfd, off_t offset, int whence) +@@ -957,6 +950,7 @@ out: + } + #endif + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lseek, 3.4.0) + off_t + pub_glfs_lseek(struct glfs_fd *glfd, off_t offset, int whence) + { +@@ -1012,8 +1006,6 @@ invalid_fs: + return -1; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lseek, 3.4.0); +- + static ssize_t + glfs_preadv_common(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, + off_t offset, int flags, struct glfs_stat *poststat) +@@ -1091,6 +1083,7 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv, 3.4.0) + ssize_t + pub_glfs_preadv(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, + off_t offset, int flags) +@@ -1098,8 +1091,7 @@ pub_glfs_preadv(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, + return glfs_preadv_common(glfd, iovec, iovcnt, offset, flags, NULL); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read, 3.4.0) + ssize_t + pub_glfs_read(struct glfs_fd *glfd, void *buf, size_t count, int flags) + { +@@ -1116,8 +1108,7 @@ pub_glfs_read(struct glfs_fd *glfd, void *buf, size_t count, int flags) + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC(glfs_pread34, glfs_pread, 3.4.0) + ssize_t + pub_glfs_pread34(struct glfs_fd *glfd, void *buf, size_t count, off_t offset, + int flags) +@@ -1135,8 +1126,7 @@ pub_glfs_pread34(struct glfs_fd *glfd, void *buf, size_t count, off_t offset, + return ret; + } + +-GFAPI_SYMVER_PUBLIC(glfs_pread34, glfs_pread, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread, 6.0) + ssize_t + pub_glfs_pread(struct glfs_fd *glfd, void *buf, size_t count, off_t offset, + int flags, struct glfs_stat *poststat) +@@ -1154,8 +1144,7 @@ pub_glfs_pread(struct glfs_fd *glfd, void *buf, size_t count, off_t offset, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread, 6.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv, 3.4.0) + ssize_t + pub_glfs_readv(struct glfs_fd *glfd, const struct iovec *iov, int count, + int flags) +@@ -1167,8 +1156,6 @@ pub_glfs_readv(struct glfs_fd *glfd, const struct iovec *iov, int count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv, 3.4.0); +- + struct glfs_io { + struct glfs_fd *glfd; + int op; +@@ -1370,6 +1357,7 @@ invalid_fs: + return -1; + } + ++GFAPI_SYMVER_PUBLIC(glfs_preadv_async34, glfs_preadv_async, 3.4.0) + int + pub_glfs_preadv_async34(struct glfs_fd *glfd, const struct iovec *iovec, + int count, off_t offset, int flags, glfs_io_cbk34 fn, +@@ -1379,8 +1367,7 @@ pub_glfs_preadv_async34(struct glfs_fd *glfd, const struct iovec *iovec, + (void *)fn, data); + } + +-GFAPI_SYMVER_PUBLIC(glfs_preadv_async34, glfs_preadv_async, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv_async, 6.0) + int + pub_glfs_preadv_async(struct glfs_fd *glfd, const struct iovec *iovec, + int count, off_t offset, int flags, glfs_io_cbk fn, +@@ -1390,8 +1377,7 @@ pub_glfs_preadv_async(struct glfs_fd *glfd, const struct iovec *iovec, + _gf_false, fn, data); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv_async, 6.0); +- ++GFAPI_SYMVER_PUBLIC(glfs_read_async34, glfs_read_async, 3.4.0) + int + pub_glfs_read_async34(struct glfs_fd *glfd, void *buf, size_t count, int flags, + glfs_io_cbk34 fn, void *data) +@@ -1410,8 +1396,7 @@ pub_glfs_read_async34(struct glfs_fd *glfd, void *buf, size_t count, int flags, + return ret; + } + +-GFAPI_SYMVER_PUBLIC(glfs_read_async34, glfs_read_async, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read_async, 6.0) + int + pub_glfs_read_async(struct glfs_fd *glfd, void *buf, size_t count, int flags, + glfs_io_cbk fn, void *data) +@@ -1430,8 +1415,7 @@ pub_glfs_read_async(struct glfs_fd *glfd, void *buf, size_t count, int flags, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read_async, 6.0); +- ++GFAPI_SYMVER_PUBLIC(glfs_pread_async34, glfs_pread_async, 3.4.0) + int + pub_glfs_pread_async34(struct glfs_fd *glfd, void *buf, size_t count, + off_t offset, int flags, glfs_io_cbk34 fn, void *data) +@@ -1450,8 +1434,7 @@ pub_glfs_pread_async34(struct glfs_fd *glfd, void *buf, size_t count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC(glfs_pread_async34, glfs_pread_async, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread_async, 6.0) + int + pub_glfs_pread_async(struct glfs_fd *glfd, void *buf, size_t count, + off_t offset, int flags, glfs_io_cbk fn, void *data) +@@ -1470,8 +1453,7 @@ pub_glfs_pread_async(struct glfs_fd *glfd, void *buf, size_t count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread_async, 6.0); +- ++GFAPI_SYMVER_PUBLIC(glfs_readv_async34, glfs_readv_async, 3.4.0) + int + pub_glfs_readv_async34(struct glfs_fd *glfd, const struct iovec *iov, int count, + int flags, glfs_io_cbk34 fn, void *data) +@@ -1483,8 +1465,7 @@ pub_glfs_readv_async34(struct glfs_fd *glfd, const struct iovec *iov, int count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC(glfs_readv_async34, glfs_readv_async, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv_async, 6.0) + int + pub_glfs_readv_async(struct glfs_fd *glfd, const struct iovec *iov, int count, + int flags, glfs_io_cbk fn, void *data) +@@ -1496,8 +1477,6 @@ pub_glfs_readv_async(struct glfs_fd *glfd, const struct iovec *iov, int count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv_async, 6.0); +- + static ssize_t + glfs_pwritev_common(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, + off_t offset, int flags, struct glfs_stat *prestat, +@@ -1583,6 +1562,7 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_copy_file_range, 6.0) + ssize_t + pub_glfs_copy_file_range(struct glfs_fd *glfd_in, off64_t *off_in, + struct glfs_fd *glfd_out, off64_t *off_out, size_t len, +@@ -1736,8 +1716,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_copy_file_range, 6.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev, 3.4.0) + ssize_t + pub_glfs_pwritev(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, + off_t offset, int flags) +@@ -1745,8 +1724,7 @@ pub_glfs_pwritev(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, + return glfs_pwritev_common(glfd, iovec, iovcnt, offset, flags, NULL, NULL); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write, 3.4.0) + ssize_t + pub_glfs_write(struct glfs_fd *glfd, const void *buf, size_t count, int flags) + { +@@ -1763,8 +1741,7 @@ pub_glfs_write(struct glfs_fd *glfd, const void *buf, size_t count, int flags) + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev, 3.4.0) + ssize_t + pub_glfs_writev(struct glfs_fd *glfd, const struct iovec *iov, int count, + int flags) +@@ -1776,8 +1753,7 @@ pub_glfs_writev(struct glfs_fd *glfd, const struct iovec *iov, int count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC(glfs_pwrite34, glfs_pwrite, 3.4.0) + ssize_t + pub_glfs_pwrite34(struct glfs_fd *glfd, const void *buf, size_t count, + off_t offset, int flags) +@@ -1795,8 +1771,7 @@ pub_glfs_pwrite34(struct glfs_fd *glfd, const void *buf, size_t count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC(glfs_pwrite34, glfs_pwrite, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite, 6.0) + ssize_t + pub_glfs_pwrite(struct glfs_fd *glfd, const void *buf, size_t count, + off_t offset, int flags, struct glfs_stat *prestat, +@@ -1815,8 +1790,6 @@ pub_glfs_pwrite(struct glfs_fd *glfd, const void *buf, size_t count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite, 6.0); +- + extern glfs_t * + pub_glfs_from_glfd(glfs_fd_t *); + +@@ -1935,6 +1908,7 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC(glfs_pwritev_async34, glfs_pwritev_async, 3.4.0) + int + pub_glfs_pwritev_async34(struct glfs_fd *glfd, const struct iovec *iovec, + int count, off_t offset, int flags, glfs_io_cbk34 fn, +@@ -1944,8 +1918,7 @@ pub_glfs_pwritev_async34(struct glfs_fd *glfd, const struct iovec *iovec, + _gf_true, (void *)fn, data); + } + +-GFAPI_SYMVER_PUBLIC(glfs_pwritev_async34, glfs_pwritev_async, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev_async, 6.0) + int + pub_glfs_pwritev_async(struct glfs_fd *glfd, const struct iovec *iovec, + int count, off_t offset, int flags, glfs_io_cbk fn, +@@ -1955,8 +1928,7 @@ pub_glfs_pwritev_async(struct glfs_fd *glfd, const struct iovec *iovec, + _gf_false, fn, data); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev_async, 6.0); +- ++GFAPI_SYMVER_PUBLIC(glfs_write_async34, glfs_write_async, 3.4.0) + int + pub_glfs_write_async34(struct glfs_fd *glfd, const void *buf, size_t count, + int flags, glfs_io_cbk34 fn, void *data) +@@ -1975,8 +1947,7 @@ pub_glfs_write_async34(struct glfs_fd *glfd, const void *buf, size_t count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC(glfs_write_async34, glfs_write_async, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write_async, 6.0) + int + pub_glfs_write_async(struct glfs_fd *glfd, const void *buf, size_t count, + int flags, glfs_io_cbk fn, void *data) +@@ -1995,8 +1966,7 @@ pub_glfs_write_async(struct glfs_fd *glfd, const void *buf, size_t count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write_async, 6.0); +- ++GFAPI_SYMVER_PUBLIC(glfs_pwrite_async34, glfs_pwrite_async, 3.4.0) + int + pub_glfs_pwrite_async34(struct glfs_fd *glfd, const void *buf, int count, + off_t offset, int flags, glfs_io_cbk34 fn, void *data) +@@ -2015,8 +1985,7 @@ pub_glfs_pwrite_async34(struct glfs_fd *glfd, const void *buf, int count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC(glfs_pwrite_async34, glfs_pwrite_async, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite_async, 6.0) + int + pub_glfs_pwrite_async(struct glfs_fd *glfd, const void *buf, int count, + off_t offset, int flags, glfs_io_cbk fn, void *data) +@@ -2035,8 +2004,7 @@ pub_glfs_pwrite_async(struct glfs_fd *glfd, const void *buf, int count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite_async, 6.0); +- ++GFAPI_SYMVER_PUBLIC(glfs_writev_async34, glfs_writev_async, 3.4.0) + int + pub_glfs_writev_async34(struct glfs_fd *glfd, const struct iovec *iov, + int count, int flags, glfs_io_cbk34 fn, void *data) +@@ -2048,8 +2016,7 @@ pub_glfs_writev_async34(struct glfs_fd *glfd, const struct iovec *iov, + return ret; + } + +-GFAPI_SYMVER_PUBLIC(glfs_writev_async34, glfs_writev_async, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev_async, 6.0) + int + pub_glfs_writev_async(struct glfs_fd *glfd, const struct iovec *iov, int count, + int flags, glfs_io_cbk fn, void *data) +@@ -2061,8 +2028,6 @@ pub_glfs_writev_async(struct glfs_fd *glfd, const struct iovec *iov, int count, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev_async, 6.0); +- + static int + glfs_fsync_common(struct glfs_fd *glfd, struct glfs_stat *prestat, + struct glfs_stat *poststat) +@@ -2127,14 +2092,14 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC(glfs_fsync34, glfs_fsync, 3.4.0) + int + pub_glfs_fsync34(struct glfs_fd *glfd) + { + return glfs_fsync_common(glfd, NULL, NULL); + } + +-GFAPI_SYMVER_PUBLIC(glfs_fsync34, glfs_fsync, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync, 6.0) + int + pub_glfs_fsync(struct glfs_fd *glfd, struct glfs_stat *prestat, + struct glfs_stat *poststat) +@@ -2142,8 +2107,6 @@ pub_glfs_fsync(struct glfs_fd *glfd, struct glfs_stat *prestat, + return glfs_fsync_common(glfd, prestat, poststat); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync, 6.0); +- + static int + glfs_fsync_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this, + int32_t op_ret, int32_t op_errno, struct iatt *prebuf, +@@ -2224,6 +2187,7 @@ out: + return ret; + } + ++GFAPI_SYMVER_PUBLIC(glfs_fsync_async34, glfs_fsync_async, 3.4.0) + int + pub_glfs_fsync_async34(struct glfs_fd *glfd, glfs_io_cbk34 fn, void *data) + { +@@ -2240,8 +2204,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC(glfs_fsync_async34, glfs_fsync_async, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync_async, 6.0) + int + pub_glfs_fsync_async(struct glfs_fd *glfd, glfs_io_cbk fn, void *data) + { +@@ -2258,8 +2221,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync_async, 6.0); +- + static int + glfs_fdatasync_common(struct glfs_fd *glfd, struct glfs_stat *prestat, + struct glfs_stat *poststat) +@@ -2324,14 +2285,14 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC(glfs_fdatasync34, glfs_fdatasync, 3.4.0) + int + pub_glfs_fdatasync34(struct glfs_fd *glfd) + { + return glfs_fdatasync_common(glfd, NULL, NULL); + } + +-GFAPI_SYMVER_PUBLIC(glfs_fdatasync34, glfs_fdatasync, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync, 6.0) + int + pub_glfs_fdatasync(struct glfs_fd *glfd, struct glfs_stat *prestat, + struct glfs_stat *poststat) +@@ -2339,8 +2300,7 @@ pub_glfs_fdatasync(struct glfs_fd *glfd, struct glfs_stat *prestat, + return glfs_fdatasync_common(glfd, prestat, poststat); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync, 6.0); +- ++GFAPI_SYMVER_PUBLIC(glfs_fdatasync_async34, glfs_fdatasync_async, 3.4.0) + int + pub_glfs_fdatasync_async34(struct glfs_fd *glfd, glfs_io_cbk34 fn, void *data) + { +@@ -2357,8 +2317,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC(glfs_fdatasync_async34, glfs_fdatasync_async, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync_async, 6.0) + int + pub_glfs_fdatasync_async(struct glfs_fd *glfd, glfs_io_cbk fn, void *data) + { +@@ -2375,8 +2334,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync_async, 6.0); +- + static int + glfs_ftruncate_common(struct glfs_fd *glfd, off_t offset, + struct glfs_stat *prestat, struct glfs_stat *poststat) +@@ -2442,14 +2399,14 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC(glfs_ftruncate34, glfs_ftruncate, 3.4.0) + int + pub_glfs_ftruncate34(struct glfs_fd *glfd, off_t offset) + { + return glfs_ftruncate_common(glfd, offset, NULL, NULL); + } + +-GFAPI_SYMVER_PUBLIC(glfs_ftruncate34, glfs_ftruncate, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate, 6.0) + int + pub_glfs_ftruncate(struct glfs_fd *glfd, off_t offset, + struct glfs_stat *prestat, struct glfs_stat *poststat) +@@ -2457,8 +2414,7 @@ pub_glfs_ftruncate(struct glfs_fd *glfd, off_t offset, + return glfs_ftruncate_common(glfd, offset, prestat, poststat); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate, 6.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_truncate, 3.7.15) + int + pub_glfs_truncate(struct glfs *fs, const char *path, off_t length) + { +@@ -2504,8 +2460,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_truncate, 3.7.15); +- + static int + glfs_ftruncate_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this, + int32_t op_ret, int32_t op_errno, struct iatt *prebuf, +@@ -2598,6 +2552,7 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC(glfs_ftruncate_async34, glfs_ftruncate_async, 3.4.0) + int + pub_glfs_ftruncate_async34(struct glfs_fd *glfd, off_t offset, glfs_io_cbk34 fn, + void *data) +@@ -2606,8 +2561,7 @@ pub_glfs_ftruncate_async34(struct glfs_fd *glfd, off_t offset, glfs_io_cbk34 fn, + data); + } + +-GFAPI_SYMVER_PUBLIC(glfs_ftruncate_async34, glfs_ftruncate_async, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate_async, 6.0) + int + pub_glfs_ftruncate_async(struct glfs_fd *glfd, off_t offset, glfs_io_cbk fn, + void *data) +@@ -2615,8 +2569,7 @@ pub_glfs_ftruncate_async(struct glfs_fd *glfd, off_t offset, glfs_io_cbk fn, + return glfs_ftruncate_async_common(glfd, offset, _gf_false, fn, data); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate_async, 6.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_access, 3.4.0) + int + pub_glfs_access(struct glfs *fs, const char *path, int mode) + { +@@ -2662,8 +2615,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_access, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_symlink, 3.4.0) + int + pub_glfs_symlink(struct glfs *fs, const char *data, const char *path) + { +@@ -2753,8 +2705,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_symlink, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readlink, 3.4.0) + int + pub_glfs_readlink(struct glfs *fs, const char *path, char *buf, size_t bufsiz) + { +@@ -2811,8 +2762,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readlink, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mknod, 3.4.0) + int + pub_glfs_mknod(struct glfs *fs, const char *path, mode_t mode, dev_t dev) + { +@@ -2902,8 +2852,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mknod, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mkdir, 3.4.0) + int + pub_glfs_mkdir(struct glfs *fs, const char *path, mode_t mode) + { +@@ -2993,8 +2942,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mkdir, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unlink, 3.4.0) + int + pub_glfs_unlink(struct glfs *fs, const char *path) + { +@@ -3050,8 +2998,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unlink, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rmdir, 3.4.0) + int + pub_glfs_rmdir(struct glfs *fs, const char *path) + { +@@ -3106,8 +3053,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rmdir, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rename, 3.4.0) + int + pub_glfs_rename(struct glfs *fs, const char *oldpath, const char *newpath) + { +@@ -3196,8 +3142,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rename, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_link, 3.4.0) + int + pub_glfs_link(struct glfs *fs, const char *oldpath, const char *newpath) + { +@@ -3283,8 +3228,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_link, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_opendir, 3.4.0) + struct glfs_fd * + pub_glfs_opendir(struct glfs *fs, const char *path) + { +@@ -3365,8 +3309,7 @@ invalid_fs: + return glfd; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_opendir, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_closedir, 3.4.0) + int + pub_glfs_closedir(struct glfs_fd *glfd) + { +@@ -3387,16 +3330,14 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_closedir, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_telldir, 3.4.0) + long + pub_glfs_telldir(struct glfs_fd *fd) + { + return fd->offset; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_telldir, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_seekdir, 3.4.0) + void + pub_glfs_seekdir(struct glfs_fd *fd, long offset) + { +@@ -3425,8 +3366,6 @@ pub_glfs_seekdir(struct glfs_fd *fd, long offset) + */ + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_seekdir, 3.4.0); +- + static int + glfs_discard_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this, + int32_t op_ret, int32_t op_errno, +@@ -3517,6 +3456,7 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC(glfs_discard_async35, glfs_discard_async, 3.5.0) + int + pub_glfs_discard_async35(struct glfs_fd *glfd, off_t offset, size_t len, + glfs_io_cbk34 fn, void *data) +@@ -3525,8 +3465,7 @@ pub_glfs_discard_async35(struct glfs_fd *glfd, off_t offset, size_t len, + data); + } + +-GFAPI_SYMVER_PUBLIC(glfs_discard_async35, glfs_discard_async, 3.5.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard_async, 6.0) + int + pub_glfs_discard_async(struct glfs_fd *glfd, off_t offset, size_t len, + glfs_io_cbk fn, void *data) +@@ -3534,8 +3473,6 @@ pub_glfs_discard_async(struct glfs_fd *glfd, off_t offset, size_t len, + return glfs_discard_async_common(glfd, offset, len, _gf_false, fn, data); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard_async, 6.0); +- + static int + glfs_zerofill_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this, + int32_t op_ret, int32_t op_errno, +@@ -3628,6 +3565,7 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC(glfs_zerofill_async35, glfs_zerofill_async, 3.5.0) + int + pub_glfs_zerofill_async35(struct glfs_fd *glfd, off_t offset, off_t len, + glfs_io_cbk34 fn, void *data) +@@ -3636,8 +3574,7 @@ pub_glfs_zerofill_async35(struct glfs_fd *glfd, off_t offset, off_t len, + data); + } + +-GFAPI_SYMVER_PUBLIC(glfs_zerofill_async35, glfs_zerofill_async, 3.5.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill_async, 6.0) + int + pub_glfs_zerofill_async(struct glfs_fd *glfd, off_t offset, off_t len, + glfs_io_cbk fn, void *data) +@@ -3645,8 +3582,6 @@ pub_glfs_zerofill_async(struct glfs_fd *glfd, off_t offset, off_t len, + return glfs_zerofill_async_common(glfd, offset, len, _gf_false, fn, data); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill_async, 6.0); +- + void + gf_dirent_to_dirent(gf_dirent_t *gf_dirent, struct dirent *dirent) + { +@@ -3806,6 +3741,7 @@ unlock: + return buf; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus_r, 3.4.0) + int + pub_glfs_readdirplus_r(struct glfs_fd *glfd, struct stat *stat, + struct dirent *ext, struct dirent **res) +@@ -3861,8 +3797,7 @@ invalid_fs: + return -1; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus_r, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir_r, 3.4.0) + int + pub_glfs_readdir_r(struct glfs_fd *glfd, struct dirent *buf, + struct dirent **res) +@@ -3870,8 +3805,7 @@ pub_glfs_readdir_r(struct glfs_fd *glfd, struct dirent *buf, + return pub_glfs_readdirplus_r(glfd, 0, buf, res); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir_r, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus, 3.5.0) + struct dirent * + pub_glfs_readdirplus(struct glfs_fd *glfd, struct stat *stat) + { +@@ -3885,16 +3819,14 @@ pub_glfs_readdirplus(struct glfs_fd *glfd, struct stat *stat) + return res; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus, 3.5.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir, 3.5.0) + struct dirent * + pub_glfs_readdir(struct glfs_fd *glfd) + { + return pub_glfs_readdirplus(glfd, NULL); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir, 3.5.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_statvfs, 3.4.0) + int + pub_glfs_statvfs(struct glfs *fs, const char *path, struct statvfs *buf) + { +@@ -3940,8 +3872,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_statvfs, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setattr, 6.0) + int + pub_glfs_setattr(struct glfs *fs, const char *path, struct glfs_stat *stat, + int follow) +@@ -4001,8 +3932,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setattr, 6.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetattr, 6.0) + int + pub_glfs_fsetattr(struct glfs_fd *glfd, struct glfs_stat *stat) + { +@@ -4055,8 +3985,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetattr, 6.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chmod, 3.4.0) + int + pub_glfs_chmod(struct glfs *fs, const char *path, mode_t mode) + { +@@ -4073,8 +4002,7 @@ pub_glfs_chmod(struct glfs *fs, const char *path, mode_t mode) + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chmod, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchmod, 3.4.0) + int + pub_glfs_fchmod(struct glfs_fd *glfd, mode_t mode) + { +@@ -4091,8 +4019,7 @@ pub_glfs_fchmod(struct glfs_fd *glfd, mode_t mode) + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchmod, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chown, 3.4.0) + int + pub_glfs_chown(struct glfs *fs, const char *path, uid_t uid, gid_t gid) + { +@@ -4117,8 +4044,7 @@ pub_glfs_chown(struct glfs *fs, const char *path, uid_t uid, gid_t gid) + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chown, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lchown, 3.4.0) + int + pub_glfs_lchown(struct glfs *fs, const char *path, uid_t uid, gid_t gid) + { +@@ -4143,8 +4069,7 @@ pub_glfs_lchown(struct glfs *fs, const char *path, uid_t uid, gid_t gid) + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lchown, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchown, 3.4.0) + int + pub_glfs_fchown(struct glfs_fd *glfd, uid_t uid, gid_t gid) + { +@@ -4169,8 +4094,7 @@ pub_glfs_fchown(struct glfs_fd *glfd, uid_t uid, gid_t gid) + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchown, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_utimens, 3.4.0) + int + pub_glfs_utimens(struct glfs *fs, const char *path, + const struct timespec times[2]) +@@ -4190,8 +4114,7 @@ pub_glfs_utimens(struct glfs *fs, const char *path, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_utimens, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lutimens, 3.4.0) + int + pub_glfs_lutimens(struct glfs *fs, const char *path, + const struct timespec times[2]) +@@ -4211,8 +4134,7 @@ pub_glfs_lutimens(struct glfs *fs, const char *path, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lutimens, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_futimens, 3.4.0) + int + pub_glfs_futimens(struct glfs_fd *glfd, const struct timespec times[2]) + { +@@ -4231,8 +4153,6 @@ pub_glfs_futimens(struct glfs_fd *glfd, const struct timespec times[2]) + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_futimens, 3.4.0); +- + int + glfs_getxattr_process(void *value, size_t size, dict_t *xattr, const char *name) + { +@@ -4332,6 +4252,7 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getxattr, 3.4.0) + ssize_t + pub_glfs_getxattr(struct glfs *fs, const char *path, const char *name, + void *value, size_t size) +@@ -4339,8 +4260,7 @@ pub_glfs_getxattr(struct glfs *fs, const char *path, const char *name, + return glfs_getxattr_common(fs, path, name, value, size, 1); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getxattr, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lgetxattr, 3.4.0) + ssize_t + pub_glfs_lgetxattr(struct glfs *fs, const char *path, const char *name, + void *value, size_t size) +@@ -4348,8 +4268,7 @@ pub_glfs_lgetxattr(struct glfs *fs, const char *path, const char *name, + return glfs_getxattr_common(fs, path, name, value, size, 0); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lgetxattr, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fgetxattr, 3.4.0) + ssize_t + pub_glfs_fgetxattr(struct glfs_fd *glfd, const char *name, void *value, + size_t size) +@@ -4412,8 +4331,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fgetxattr, 3.4.0); +- + int + glfs_listxattr_process(void *value, size_t size, dict_t *xattr) + { +@@ -4497,22 +4414,21 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_listxattr, 3.4.0) + ssize_t + pub_glfs_listxattr(struct glfs *fs, const char *path, void *value, size_t size) + { + return glfs_listxattr_common(fs, path, value, size, 1); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_listxattr, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_llistxattr, 3.4.0) + ssize_t + pub_glfs_llistxattr(struct glfs *fs, const char *path, void *value, size_t size) + { + return glfs_listxattr_common(fs, path, value, size, 0); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_llistxattr, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_flistxattr, 3.4.0) + ssize_t + pub_glfs_flistxattr(struct glfs_fd *glfd, void *value, size_t size) + { +@@ -4562,8 +4478,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_flistxattr, 3.4.0); +- + int + glfs_setxattr_common(struct glfs *fs, const char *path, const char *name, + const void *value, size_t size, int flags, int follow) +@@ -4643,6 +4557,7 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setxattr, 3.4.0) + int + pub_glfs_setxattr(struct glfs *fs, const char *path, const char *name, + const void *value, size_t size, int flags) +@@ -4650,8 +4565,7 @@ pub_glfs_setxattr(struct glfs *fs, const char *path, const char *name, + return glfs_setxattr_common(fs, path, name, value, size, flags, 1); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setxattr, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lsetxattr, 3.4.0) + int + pub_glfs_lsetxattr(struct glfs *fs, const char *path, const char *name, + const void *value, size_t size, int flags) +@@ -4659,8 +4573,7 @@ pub_glfs_lsetxattr(struct glfs *fs, const char *path, const char *name, + return glfs_setxattr_common(fs, path, name, value, size, flags, 0); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lsetxattr, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetxattr, 3.4.0) + int + pub_glfs_fsetxattr(struct glfs_fd *glfd, const char *name, const void *value, + size_t size, int flags) +@@ -4735,8 +4648,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetxattr, 3.4.0); +- + int + glfs_removexattr_common(struct glfs *fs, const char *path, const char *name, + int follow) +@@ -4787,22 +4698,21 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_removexattr, 3.4.0) + int + pub_glfs_removexattr(struct glfs *fs, const char *path, const char *name) + { + return glfs_removexattr_common(fs, path, name, 1); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_removexattr, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lremovexattr, 3.4.0) + int + pub_glfs_lremovexattr(struct glfs *fs, const char *path, const char *name) + { + return glfs_removexattr_common(fs, path, name, 0); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lremovexattr, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fremovexattr, 3.4.0) + int + pub_glfs_fremovexattr(struct glfs_fd *glfd, const char *name) + { +@@ -4845,8 +4755,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fremovexattr, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fallocate, 3.5.0) + int + pub_glfs_fallocate(struct glfs_fd *glfd, int keep_size, off_t offset, + size_t len) +@@ -4897,8 +4806,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fallocate, 3.5.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard, 3.5.0) + int + pub_glfs_discard(struct glfs_fd *glfd, off_t offset, size_t len) + { +@@ -4948,8 +4856,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard, 3.5.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill, 3.5.0) + int + pub_glfs_zerofill(struct glfs_fd *glfd, off_t offset, off_t len) + { +@@ -4997,8 +4904,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill, 3.5.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chdir, 3.4.0) + int + pub_glfs_chdir(struct glfs *fs, const char *path) + { +@@ -5048,8 +4954,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chdir, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchdir, 3.4.0) + int + pub_glfs_fchdir(struct glfs_fd *glfd) + { +@@ -5101,8 +5006,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchdir, 3.4.0); +- + static gf_boolean_t warn_realpath = _gf_true; /* log once */ + + static char * +@@ -5185,22 +5088,21 @@ invalid_fs: + return retpath; + } + ++GFAPI_SYMVER_PUBLIC(glfs_realpath34, glfs_realpath, 3.4.0) + char * + pub_glfs_realpath34(struct glfs *fs, const char *path, char *resolved_path) + { + return glfs_realpath_common(fs, path, resolved_path, _gf_true); + } + +-GFAPI_SYMVER_PUBLIC(glfs_realpath34, glfs_realpath, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_realpath, 3.7.17) + char * + pub_glfs_realpath(struct glfs *fs, const char *path, char *resolved_path) + { + return glfs_realpath_common(fs, path, resolved_path, _gf_false); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_realpath, 3.7.17); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getcwd, 3.4.0) + char * + pub_glfs_getcwd(struct glfs *fs, char *buf, size_t n) + { +@@ -5249,8 +5151,6 @@ invalid_fs: + return buf; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getcwd, 3.4.0); +- + static void + gf_flock_to_flock(struct gf_flock *gf_flock, struct flock *flock) + { +@@ -5357,6 +5257,7 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_file_lock, 4.0.0) + int + pub_glfs_file_lock(struct glfs_fd *glfd, int cmd, struct flock *flock, + glfs_lock_mode_t lk_mode) +@@ -5393,16 +5294,14 @@ out: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_file_lock, 4.0.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_posix_lock, 3.4.0) + int + pub_glfs_posix_lock(struct glfs_fd *glfd, int cmd, struct flock *flock) + { + return glfs_lock_common(glfd, cmd, flock, NULL); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_posix_lock, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fd_set_lkowner, 3.10.7) + int + pub_glfs_fd_set_lkowner(struct glfs_fd *glfd, void *data, int len) + { +@@ -5438,8 +5337,8 @@ out: + invalid_fs: + return ret; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fd_set_lkowner, 3.10.7); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_dup, 3.4.0) + struct glfs_fd * + pub_glfs_dup(struct glfs_fd *glfd) + { +@@ -5490,8 +5389,6 @@ invalid_fs: + return dupfd; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_dup, 3.4.0); +- + static void + glfs_enqueue_upcall_data(struct glfs *fs, struct gf_upcall *upcall_data) + { +@@ -5976,6 +5873,7 @@ out: + * Otherwise all the upcall events are queued up in a list + * to be read/polled by the applications. + */ ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_process_upcall_event, 3.7.0) + void + priv_glfs_process_upcall_event(struct glfs *fs, void *data) + { +@@ -6043,7 +5941,6 @@ out: + err: + return; + } +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_process_upcall_event, 3.7.0); + + ssize_t + glfs_anonymous_pwritev(struct glfs *fs, struct glfs_object *object, +@@ -6229,6 +6126,7 @@ glfs_release_xreaddirp_stat(void *ptr) + * Given glfd of a directory, this function does readdirp and returns + * xstat along with dirents. + */ ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_r, 3.11.0) + int + pub_glfs_xreaddirplus_r(struct glfs_fd *glfd, uint32_t flags, + struct glfs_xreaddirp_stat **xstat_p, +@@ -6337,8 +6235,8 @@ out: + invalid_fs: + return -1; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_r, 3.11.0); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_stat, 3.11.0) + struct stat * + pub_glfs_xreaddirplus_get_stat(struct glfs_xreaddirp_stat *xstat) + { +@@ -6354,7 +6252,6 @@ pub_glfs_xreaddirplus_get_stat(struct glfs_xreaddirp_stat *xstat) + out: + return NULL; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_stat, 3.11.0); + + void + gf_lease_to_glfs_lease(struct gf_lease *gf_lease, struct glfs_lease *lease) +@@ -6374,6 +6271,7 @@ glfs_lease_to_gf_lease(struct glfs_lease *lease, struct gf_lease *gf_lease) + memcpy(gf_lease->lease_id, lease->lease_id, LEASE_ID_SIZE); + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lease, 4.0.0) + int + pub_glfs_lease(struct glfs_fd *glfd, struct glfs_lease *lease, + glfs_recall_cbk fn, void *data) +@@ -6475,5 +6373,3 @@ out: + invalid_fs: + return ret; + } +- +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lease, 4.0.0); +diff --git a/api/src/glfs-handleops.c b/api/src/glfs-handleops.c +index cdac07124..53c2ee896 100644 +--- a/api/src/glfs-handleops.c ++++ b/api/src/glfs-handleops.c +@@ -60,6 +60,7 @@ glfs_iatt_from_stat(struct stat *stat, int valid, struct iatt *iatt, + return; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lookupat, 3.7.4) + struct glfs_object * + pub_glfs_h_lookupat(struct glfs *fs, struct glfs_object *parent, + const char *path, struct stat *stat, int follow) +@@ -126,8 +127,7 @@ invalid_fs: + return object; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lookupat, 3.7.4); +- ++GFAPI_SYMVER_PUBLIC(glfs_h_lookupat34, glfs_h_lookupat, 3.4.2) + struct glfs_object * + pub_glfs_h_lookupat34(struct glfs *fs, struct glfs_object *parent, + const char *path, struct stat *stat) +@@ -135,8 +135,7 @@ pub_glfs_h_lookupat34(struct glfs *fs, struct glfs_object *parent, + return pub_glfs_h_lookupat(fs, parent, path, stat, 0); + } + +-GFAPI_SYMVER_PUBLIC(glfs_h_lookupat34, glfs_h_lookupat, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_statfs, 3.7.0) + int + pub_glfs_h_statfs(struct glfs *fs, struct glfs_object *object, + struct statvfs *statvfs) +@@ -194,8 +193,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_statfs, 3.7.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_stat, 3.4.2) + int + pub_glfs_h_stat(struct glfs *fs, struct glfs_object *object, struct stat *stat) + { +@@ -259,8 +257,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_stat, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getattrs, 3.4.2) + int + pub_glfs_h_getattrs(struct glfs *fs, struct glfs_object *object, + struct stat *stat) +@@ -317,8 +314,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getattrs, 3.4.2); +- + int + glfs_h_getxattrs_common(struct glfs *fs, struct glfs_object *object, + dict_t **xattr, const char *name, +@@ -380,6 +375,7 @@ out: + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getxattrs, 3.5.1) + int + pub_glfs_h_getxattrs(struct glfs *fs, struct glfs_object *object, + const char *name, void *value, size_t size) +@@ -416,8 +412,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getxattrs, 3.5.1); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setattrs, 3.4.2) + int + pub_glfs_h_setattrs(struct glfs *fs, struct glfs_object *object, + struct stat *stat, int valid) +@@ -480,8 +475,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setattrs, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setxattrs, 3.5.0) + int + pub_glfs_h_setxattrs(struct glfs *fs, struct glfs_object *object, + const char *name, const void *value, size_t size, +@@ -568,8 +562,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setxattrs, 3.5.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_removexattrs, 3.5.1) + int + pub_glfs_h_removexattrs(struct glfs *fs, struct glfs_object *object, + const char *name) +@@ -626,8 +619,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_removexattrs, 3.5.1); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_open, 3.4.2) + struct glfs_fd * + pub_glfs_h_open(struct glfs *fs, struct glfs_object *object, int flags) + { +@@ -727,8 +719,7 @@ invalid_fs: + return glfd; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_open, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat, 3.4.2) + struct glfs_object * + pub_glfs_h_creat(struct glfs *fs, struct glfs_object *parent, const char *path, + int flags, mode_t mode, struct stat *stat) +@@ -840,8 +831,7 @@ invalid_fs: + return object; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat_open, 6.6) + struct glfs_object * + pub_glfs_h_creat_open(struct glfs *fs, struct glfs_object *parent, + const char *path, int flags, mode_t mode, +@@ -975,8 +965,7 @@ invalid_fs: + return object; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat_open, 6.6); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mkdir, 3.4.2) + struct glfs_object * + pub_glfs_h_mkdir(struct glfs *fs, struct glfs_object *parent, const char *path, + mode_t mode, struct stat *stat) +@@ -1074,8 +1063,7 @@ invalid_fs: + return object; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mkdir, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mknod, 3.4.2) + struct glfs_object * + pub_glfs_h_mknod(struct glfs *fs, struct glfs_object *parent, const char *path, + mode_t mode, dev_t dev, struct stat *stat) +@@ -1172,8 +1160,7 @@ invalid_fs: + return object; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mknod, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_unlink, 3.4.2) + int + pub_glfs_h_unlink(struct glfs *fs, struct glfs_object *parent, const char *path) + { +@@ -1244,8 +1231,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_unlink, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_opendir, 3.4.2) + struct glfs_fd * + pub_glfs_h_opendir(struct glfs *fs, struct glfs_object *object) + { +@@ -1327,8 +1313,7 @@ invalid_fs: + return glfd; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_opendir, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_access, 3.6.0) + int + pub_glfs_h_access(struct glfs *fs, struct glfs_object *object, int mask) + { +@@ -1385,8 +1370,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_access, 3.6.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_extract_handle, 3.4.2) + ssize_t + pub_glfs_h_extract_handle(struct glfs_object *object, unsigned char *handle, + int len) +@@ -1417,8 +1401,7 @@ out: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_extract_handle, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_create_from_handle, 3.4.2) + struct glfs_object * + pub_glfs_h_create_from_handle(struct glfs *fs, unsigned char *handle, int len, + struct stat *stat) +@@ -1541,8 +1524,7 @@ invalid_fs: + return object; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_create_from_handle, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_close, 3.4.2) + int + pub_glfs_h_close(struct glfs_object *object) + { +@@ -1555,8 +1537,7 @@ pub_glfs_h_close(struct glfs_object *object) + return 0; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_close, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_truncate, 3.4.2) + int + pub_glfs_h_truncate(struct glfs *fs, struct glfs_object *object, off_t offset) + { +@@ -1616,8 +1597,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_truncate, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_symlink, 3.4.2) + struct glfs_object * + pub_glfs_h_symlink(struct glfs *fs, struct glfs_object *parent, + const char *name, const char *data, struct stat *stat) +@@ -1716,8 +1696,7 @@ invalid_fs: + return object; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_symlink, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_readlink, 3.4.2) + int + pub_glfs_h_readlink(struct glfs *fs, struct glfs_object *object, char *buf, + size_t bufsiz) +@@ -1782,8 +1761,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_readlink, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_link, 3.4.2) + int + pub_glfs_h_link(struct glfs *fs, struct glfs_object *linksrc, + struct glfs_object *parent, const char *name) +@@ -1880,8 +1858,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_link, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_rename, 3.4.2) + int + pub_glfs_h_rename(struct glfs *fs, struct glfs_object *olddir, + const char *oldname, struct glfs_object *newdir, +@@ -1991,8 +1968,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_rename, 3.4.2); +- + /* + * Given a handle/gfid, find if the corresponding inode is present in + * the inode table. If yes create and return the corresponding glfs_object. +@@ -2200,6 +2175,7 @@ glfs_release_upcall(void *ptr) + * calling glfs_fini(..). Hence making an assumption that 'fs' & ctx structures + * cannot be freed while in this routine. + */ ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_poll_upcall, 3.7.16) + int + pub_glfs_h_poll_upcall(struct glfs *fs, struct glfs_upcall **up_arg) + { +@@ -2317,8 +2293,6 @@ err: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_poll_upcall, 3.7.16); +- + static gf_boolean_t log_upcall370 = _gf_true; /* log once */ + + /* The old glfs_h_poll_upcall interface requires intimate knowledge of the +@@ -2332,6 +2306,7 @@ static gf_boolean_t log_upcall370 = _gf_true; /* log once */ + * + * WARNING: this function will be removed in the future. + */ ++GFAPI_SYMVER_PUBLIC(glfs_h_poll_upcall370, glfs_h_poll_upcall, 3.7.0) + int + pub_glfs_h_poll_upcall370(struct glfs *fs, struct glfs_callback_arg *up_arg) + { +@@ -2399,12 +2374,11 @@ out: + return ret; + } + +-GFAPI_SYMVER_PUBLIC(glfs_h_poll_upcall370, glfs_h_poll_upcall, 3.7.0); +- + #ifdef HAVE_ACL_LIBACL_H + #include + #include + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_set, 3.7.0) + int + pub_glfs_h_acl_set(struct glfs *fs, struct glfs_object *object, + const acl_type_t type, const acl_t acl) +@@ -2453,6 +2427,7 @@ invalid_fs: + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_get, 3.7.0) + acl_t + pub_glfs_h_acl_get(struct glfs *fs, struct glfs_object *object, + const acl_type_t type) +@@ -2507,6 +2482,7 @@ invalid_fs: + return acl; + } + #else /* !HAVE_ACL_LIBACL_H */ ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_get, 3.7.0) + acl_t + pub_glfs_h_acl_get(struct glfs *fs, struct glfs_object *object, + const acl_type_t type) +@@ -2515,6 +2491,7 @@ pub_glfs_h_acl_get(struct glfs *fs, struct glfs_object *object, + return NULL; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_set, 3.7.0) + int + pub_glfs_h_acl_set(struct glfs *fs, struct glfs_object *object, + const acl_type_t type, const acl_t acl) +@@ -2523,10 +2500,9 @@ pub_glfs_h_acl_set(struct glfs *fs, struct glfs_object *object, + return -1; + } + #endif +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_set, 3.7.0); +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_get, 3.7.0); + + /* The API to perform read using anonymous fd */ ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_read, 3.7.0) + ssize_t + pub_glfs_h_anonymous_read(struct glfs *fs, struct glfs_object *object, + const void *buf, size_t count, off_t offset) +@@ -2550,9 +2526,8 @@ pub_glfs_h_anonymous_read(struct glfs *fs, struct glfs_object *object, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_read, 3.7.0); +- + /* The API to perform write using anonymous fd */ ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_write, 3.7.0) + ssize_t + pub_glfs_h_anonymous_write(struct glfs *fs, struct glfs_object *object, + const void *buf, size_t count, off_t offset) +@@ -2576,8 +2551,7 @@ pub_glfs_h_anonymous_write(struct glfs *fs, struct glfs_object *object, + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_write, 3.7.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_object_copy, 3.11.0) + struct glfs_object * + pub_glfs_object_copy(struct glfs_object *src) + { +@@ -2599,8 +2573,8 @@ pub_glfs_object_copy(struct glfs_object *src) + out: + return object; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_object_copy, 3.11.0); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_object, 3.11.0) + struct glfs_object * + pub_glfs_xreaddirplus_get_object(struct glfs_xreaddirp_stat *xstat) + { +@@ -2616,8 +2590,8 @@ pub_glfs_xreaddirplus_get_object(struct glfs_xreaddirp_stat *xstat) + out: + return NULL; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_object, 3.11.0); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lease, 4.0.0) + int + pub_glfs_h_lease(struct glfs *fs, struct glfs_object *object, + struct glfs_lease *lease) +@@ -2679,5 +2653,3 @@ out: + invalid_fs: + return ret; + } +- +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lease, 4.0.0); +diff --git a/api/src/glfs-internal.h b/api/src/glfs-internal.h +index 2a50e1d46..7cc3b18a1 100644 +--- a/api/src/glfs-internal.h ++++ b/api/src/glfs-internal.h +@@ -81,25 +81,40 @@ + #ifndef GFAPI_PRIVATE + #define GFAPI_PRIVATE(sym, ver) /**/ + #endif ++#if __GNUC__ >= 10 + #define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, ver) \ +- asm(".symver pub_" STR(fn) ", " STR(fn) "@@GFAPI_" STR(ver)) ++ __attribute__((__symver__(STR(fn) "@@GFAPI_" STR(ver)))) + + #define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, ver) \ +- asm(".symver priv_" STR(fn) ", " STR(fn) "@@GFAPI_PRIVATE_" STR(ver)) ++ __attribute__((__symver__(STR(fn) "@@GFAPI_PRIVATE_" STR(ver)))) + + #define GFAPI_SYMVER_PUBLIC(fn1, fn2, ver) \ +- asm(".symver pub_" STR(fn1) ", " STR(fn2) "@GFAPI_" STR(ver)) ++ __attribute__((__symver__(STR(fn2) "@GFAPI_" STR(ver)))) + + #define GFAPI_SYMVER_PRIVATE(fn1, fn2, ver) \ +- asm(".symver priv_" STR(fn1) ", " STR(fn2) "@GFAPI_PRIVATE_" STR(ver)) ++ __attribute__((__symver__(STR(fn2) "@GFAPI_PRIVATE_" STR(ver)))) ++ ++#else ++#define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, ver) \ ++ asm(".symver pub_" STR(fn) ", " STR(fn) "@@GFAPI_" STR(ver)); ++ ++#define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, ver) \ ++ asm(".symver priv_" STR(fn) ", " STR(fn) "@@GFAPI_PRIVATE_" STR(ver)); ++ ++#define GFAPI_SYMVER_PUBLIC(fn1, fn2, ver) \ ++ asm(".symver pub_" STR(fn1) ", " STR(fn2) "@GFAPI_" STR(ver)); ++ ++#define GFAPI_SYMVER_PRIVATE(fn1, fn2, ver) \ ++ asm(".symver priv_" STR(fn1) ", " STR(fn2) "@GFAPI_PRIVATE_" STR(ver)); ++#endif + #define STR(str) #str + #else + #ifndef GFAPI_PUBLIC +-#define GFAPI_PUBLIC(sym, ver) __asm("_" __STRING(sym) "$GFAPI_" __STRING(ver)) ++#define GFAPI_PUBLIC(sym, ver) __asm("_" __STRING(sym) "$GFAPI_" __STRING(ver)); + #endif + #ifndef GFAPI_PRIVATE + #define GFAPI_PRIVATE(sym, ver) \ +- __asm("_" __STRING(sym) "$GFAPI_PRIVATE_" __STRING(ver)) ++ __asm("_" __STRING(sym) "$GFAPI_PRIVATE_" __STRING(ver)); + #endif + #define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, dotver) /**/ + #define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, dotver) /**/ +diff --git a/api/src/glfs-mgmt.c b/api/src/glfs-mgmt.c +index 7271e35ec..08df2b1a4 100644 +--- a/api/src/glfs-mgmt.c ++++ b/api/src/glfs-mgmt.c +@@ -364,6 +364,7 @@ out: + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volumeid, 3.5.0) + int + pub_glfs_get_volumeid(struct glfs *fs, char *volid, size_t size) + { +@@ -418,8 +419,6 @@ invalid_fs: + return -1; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volumeid, 3.5.0); +- + int + glfs_get_volume_info(struct glfs *fs) + { +diff --git a/api/src/glfs-resolve.c b/api/src/glfs-resolve.c +index 7b60eef00..8a393ecb4 100644 +--- a/api/src/glfs-resolve.c ++++ b/api/src/glfs-resolve.c +@@ -162,6 +162,7 @@ __glfs_refresh_inode(struct glfs *fs, xlator_t *subvol, inode_t *inode, + return newinode; + } + ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_loc_touchup, 3.4.0) + int + priv_glfs_loc_touchup(loc_t *loc) + { +@@ -176,8 +177,6 @@ priv_glfs_loc_touchup(loc_t *loc) + return ret; + } + +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_loc_touchup, 3.4.0); +- + int + glfs_resolve_symlink(struct glfs *fs, xlator_t *subvol, inode_t *inode, + char **lpath) +@@ -467,6 +466,7 @@ out: + return inode; + } + ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve_at, 3.4.0) + int + priv_glfs_resolve_at(struct glfs *fs, xlator_t *subvol, inode_t *at, + const char *origpath, loc_t *loc, struct iatt *iatt, +@@ -617,8 +617,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve_at, 3.4.0); +- + int + glfs_resolve_path(struct glfs *fs, xlator_t *subvol, const char *origpath, + loc_t *loc, struct iatt *iatt, int follow, int reval) +@@ -647,6 +645,7 @@ out: + return ret; + } + ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve, 3.7.0) + int + priv_glfs_resolve(struct glfs *fs, xlator_t *subvol, const char *origpath, + loc_t *loc, struct iatt *iatt, int reval) +@@ -657,7 +656,6 @@ priv_glfs_resolve(struct glfs *fs, xlator_t *subvol, const char *origpath, + + return ret; + } +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve, 3.7.0); + + int + glfs_lresolve(struct glfs *fs, xlator_t *subvol, const char *origpath, +@@ -978,6 +976,7 @@ __glfs_active_subvol(struct glfs *fs) + return new_subvol; + } + ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_subvol_done, 3.4.0) + void + priv_glfs_subvol_done(struct glfs *fs, xlator_t *subvol) + { +@@ -1005,8 +1004,7 @@ priv_glfs_subvol_done(struct glfs *fs, xlator_t *subvol) + } + } + +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_subvol_done, 3.4.0); +- ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_active_subvol, 3.4.0) + xlator_t * + priv_glfs_active_subvol(struct glfs *fs) + { +@@ -1034,8 +1032,6 @@ priv_glfs_active_subvol(struct glfs *fs) + return subvol; + } + +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_active_subvol, 3.4.0); +- + int + __glfs_cwd_set(struct glfs *fs, inode_t *inode) + { +diff --git a/api/src/glfs.c b/api/src/glfs.c +index 93e0938b8..5259356b4 100644 +--- a/api/src/glfs.c ++++ b/api/src/glfs.c +@@ -275,6 +275,7 @@ out: + + /////////////////////////////////////////////////////////////////////////////// + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_xlator_option, 3.4.0) + int + pub_glfs_set_xlator_option(struct glfs *fs, const char *xlator, const char *key, + const char *value) +@@ -324,8 +325,7 @@ invalid_fs: + return -1; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_xlator_option, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unset_volfile_server, 3.5.1) + int + pub_glfs_unset_volfile_server(struct glfs *fs, const char *transport, + const char *host, const int port) +@@ -385,8 +385,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unset_volfile_server, 3.5.1); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile_server, 3.4.0) + int + pub_glfs_set_volfile_server(struct glfs *fs, const char *transport, + const char *host, int port) +@@ -465,8 +464,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile_server, 3.4.0); +- + /* * + * Used to free the arguments allocated by glfs_set_volfile_server() + */ +@@ -509,6 +506,7 @@ glfs_free_xlator_options(cmd_args_t *cmd_args) + } + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsuid, 3.4.2) + int + pub_glfs_setfsuid(uid_t fsuid) + { +@@ -518,8 +516,7 @@ pub_glfs_setfsuid(uid_t fsuid) + return syncopctx_setfsuid(&fsuid); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsuid, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgid, 3.4.2) + int + pub_glfs_setfsgid(gid_t fsgid) + { +@@ -529,8 +526,7 @@ pub_glfs_setfsgid(gid_t fsgid) + return syncopctx_setfsgid(&fsgid); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgid, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgroups, 3.4.2) + int + pub_glfs_setfsgroups(size_t size, const gid_t *list) + { +@@ -540,8 +536,7 @@ pub_glfs_setfsgroups(size_t size, const gid_t *list) + return syncopctx_setfsgroups(size, list); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgroups, 3.4.2); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsleaseid, 4.0.0) + int + pub_glfs_setfsleaseid(glfs_leaseid_t leaseid) + { +@@ -563,8 +558,6 @@ pub_glfs_setfsleaseid(glfs_leaseid_t leaseid) + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsleaseid, 4.0.0); +- + int + get_fop_attr_glfd(dict_t **fop_attr, struct glfs_fd *glfd) + { +@@ -652,14 +645,14 @@ unset_fop_attr(dict_t **fop_attr) + *fop_attr = NULL; + } + } ++ ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_from_glfd, 3.4.0) + struct glfs * + pub_glfs_from_glfd(struct glfs_fd *glfd) + { + return glfd->fs; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_from_glfd, 3.4.0); +- + static void + glfs_fd_destroy(struct glfs_fd *glfd) + { +@@ -808,6 +801,7 @@ unlock: + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_new, 3.4.0) + struct glfs * + pub_glfs_new(const char *volname) + { +@@ -914,8 +908,7 @@ out: + return fs; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_new, 3.4.0); +- ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_new_from_ctx, 3.7.0) + struct glfs * + priv_glfs_new_from_ctx(glusterfs_ctx_t *ctx) + { +@@ -934,8 +927,7 @@ out: + return fs; + } + +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_new_from_ctx, 3.7.0); +- ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_free_from_ctx, 3.7.0) + void + priv_glfs_free_from_ctx(struct glfs *fs) + { +@@ -971,8 +963,7 @@ priv_glfs_free_from_ctx(struct glfs *fs) + FREE(fs); + } + +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_free_from_ctx, 3.7.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile, 3.4.0) + int + pub_glfs_set_volfile(struct glfs *fs, const char *volfile) + { +@@ -989,8 +980,7 @@ pub_glfs_set_volfile(struct glfs *fs, const char *volfile) + return 0; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_logging, 3.4.0) + int + pub_glfs_set_logging(struct glfs *fs, const char *logfile, int loglevel) + { +@@ -1028,8 +1018,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_logging, 3.4.0); +- + int + glfs_init_wait(struct glfs *fs) + { +@@ -1048,6 +1036,7 @@ glfs_init_wait(struct glfs *fs) + return ret; + } + ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_init_done, 3.4.0) + void + priv_glfs_init_done(struct glfs *fs, int ret) + { +@@ -1078,8 +1067,6 @@ out: + return; + } + +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_init_done, 3.4.0); +- + int + glfs_init_common(struct glfs *fs) + { +@@ -1119,6 +1106,7 @@ glfs_init_async(struct glfs *fs, glfs_init_cbk cbk) + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_init, 3.4.0) + int + pub_glfs_init(struct glfs *fs) + { +@@ -1151,8 +1139,6 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_init, 3.4.0); +- + static int + glusterfs_ctx_destroy(glusterfs_ctx_t *ctx) + { +@@ -1230,6 +1216,7 @@ glusterfs_ctx_destroy(glusterfs_ctx_t *ctx) + return ret; + } + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fini, 3.4.0) + int + pub_glfs_fini(struct glfs *fs) + { +@@ -1420,8 +1407,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fini, 3.4.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volfile, 3.6.0) + ssize_t + pub_glfs_get_volfile(struct glfs *fs, void *buf, size_t len) + { +@@ -1447,8 +1433,7 @@ invalid_fs: + return res; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volfile, 3.6.0); +- ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_ipc, 3.12.0) + int + priv_glfs_ipc(struct glfs *fs, int opcode, void *xd_in, void **xd_out) + { +@@ -1476,8 +1461,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_ipc, 3.12.0); +- ++GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_setfspid, 6.1) + int + priv_glfs_setfspid(struct glfs *fs, pid_t pid) + { +@@ -1491,107 +1475,104 @@ priv_glfs_setfspid(struct glfs *fs, pid_t pid) + + return ret; + } +-GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_setfspid, 6.1); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_free, 3.7.16) + void + pub_glfs_free(void *ptr) + { + GLFS_FREE(ptr); + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_free, 3.7.16); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_fs, 3.7.16) + struct glfs * + pub_glfs_upcall_get_fs(struct glfs_upcall *arg) + { + return arg->fs; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_fs, 3.7.16); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_reason, 3.7.16) + enum glfs_upcall_reason + pub_glfs_upcall_get_reason(struct glfs_upcall *arg) + { + return arg->reason; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_reason, 3.7.16); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_event, 3.7.16) + void * + pub_glfs_upcall_get_event(struct glfs_upcall *arg) + { + return arg->event; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_event, 3.7.16); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_object, 3.7.16) + struct glfs_object * + pub_glfs_upcall_inode_get_object(struct glfs_upcall_inode *arg) + { + return arg->object; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_object, 3.7.16); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_flags, 3.7.16) + uint64_t + pub_glfs_upcall_inode_get_flags(struct glfs_upcall_inode *arg) + { + return arg->flags; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_flags, 3.7.16); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_stat, 3.7.16) + struct stat * + pub_glfs_upcall_inode_get_stat(struct glfs_upcall_inode *arg) + { + return &arg->buf; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_stat, 3.7.16); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_expire, 3.7.16) + uint64_t + pub_glfs_upcall_inode_get_expire(struct glfs_upcall_inode *arg) + { + return arg->expire_time_attr; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_expire, 3.7.16); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pobject, 3.7.16) + struct glfs_object * + pub_glfs_upcall_inode_get_pobject(struct glfs_upcall_inode *arg) + { + return arg->p_object; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pobject, 3.7.16); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pstat, 3.7.16) + struct stat * + pub_glfs_upcall_inode_get_pstat(struct glfs_upcall_inode *arg) + { + return &arg->p_buf; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pstat, 3.7.16); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpobject, 3.7.16) + struct glfs_object * + pub_glfs_upcall_inode_get_oldpobject(struct glfs_upcall_inode *arg) + { + return arg->oldp_object; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpobject, 3.7.16); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpstat, 3.7.16) + struct stat * + pub_glfs_upcall_inode_get_oldpstat(struct glfs_upcall_inode *arg) + { + return &arg->oldp_buf; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpstat, 3.7.16); + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_object, 4.1.6) + struct glfs_object * + pub_glfs_upcall_lease_get_object(struct glfs_upcall_lease *arg) + { + return arg->object; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_object, 4.1.6); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_lease_type, 4.1.6) + uint32_t + pub_glfs_upcall_lease_get_lease_type(struct glfs_upcall_lease *arg) + { + return arg->lease_type; + } +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_lease_type, 4.1.6); + + /* definitions of the GLFS_SYSRQ_* chars are in glfs.h */ + static struct glfs_sysrq_help { +@@ -1601,6 +1582,7 @@ static struct glfs_sysrq_help { + {GLFS_SYSRQ_STATEDUMP, "(S)tatedump"}, + {0, NULL}}; + ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_sysrq, 3.10.0) + int + pub_glfs_sysrq(struct glfs *fs, char sysrq) + { +@@ -1649,8 +1631,7 @@ out: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_sysrq, 3.10.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_register, 3.13.0) + int + pub_glfs_upcall_register(struct glfs *fs, uint32_t event_list, + glfs_upcall_cbk cbk, void *data) +@@ -1706,8 +1687,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_register, 3.13.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_unregister, 3.13.0) + int + pub_glfs_upcall_unregister(struct glfs *fs, uint32_t event_list) + { +@@ -1754,8 +1734,7 @@ invalid_fs: + return ret; + } + +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_unregister, 3.13.0); +- ++GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_statedump_path, 7.0) + int + pub_glfs_set_statedump_path(struct glfs *fs, const char *path) + { +@@ -1815,5 +1794,3 @@ err: + invalid_fs: + return -1; + } +- +-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_statedump_path, 7.0); +-- +2.26.2 + diff --git a/glusterfs.spec b/glusterfs.spec index c35fdb2..97f82e1 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,6 +1,3 @@ -# This package depends on automagic byte compilation -# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 -%global _python_bytecompile_extra 1 %global _hardened_build 1 @@ -186,7 +183,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 8.0 -Release: 0.2%{?dev:%{dev}}%{?dist} +Release: 0.3%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -203,6 +200,7 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif +Patch0001: 0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patch Requires(pre): shadow-utils BuildRequires: systemd @@ -662,6 +660,7 @@ This package provides the glusterfs thin-arbiter translator. %prep %setup -q -n %{name}-%{version}%{?dev} +%patch0001 -p1 %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do @@ -670,14 +669,6 @@ done %endif %build -# This package uses top level ASM constructs which are incompatible with LTO. -# Top level ASMs are often used to implement symbol versioning. gcc-10 -# introduces a new mechanism for symbol versioning which works with LTO. -# Converting packages to use that mechanism instead of toplevel ASMs is -# recommended. -# Disable LTO -%define _lto_cflags %{nil} - sed -i -e 's/--quiet//' configure.ac ./autogen.sh && %configure \ %{?_with_asan} \ @@ -1443,6 +1434,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Sat Jul 4 2020 Kaleb S. KEITHLEY - 8.0-0.3rc0 +- 8.0 fix symbol versions, enable LTO + * Wed Jul 1 2020 Jeff Law - 8.0-0.2rc0 - Disable LTO From 1a0a222ee238cd10ad07361a58d73ae510b0abbf Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 6 Jul 2020 08:20:56 -0400 Subject: [PATCH 256/328] 8.0 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 318 ++++++++++++++++++++++++++++++++++++------------- sources | 2 +- 2 files changed, 234 insertions(+), 86 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 97f82e1..9719845 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,7 +4,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the %%dev for pre-releases -%global dev rc0 +# %%global dev rc0 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -183,7 +183,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 8.0 -Release: 0.3%{?dev:%{dev}}%{?dist} +Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -205,7 +205,9 @@ Patch0001: 0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patc Requires(pre): shadow-utils BuildRequires: systemd -Requires: %{name}-libs = %{version}-%{release} +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Requires: libgfrpc0%{?_isa} = %{version}-%{release} +Requires: libgfxdr0%{?_isa} = %{version}-%{release} %{?systemd_requires} Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig @@ -272,42 +274,10 @@ This package includes the glusterfs binary, the glusterfsd daemon and the libglusterfs and glusterfs translator modules common to both GlusterFS server and client framework. -%package api -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 -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. GlusterFS is one of the -most sophisticated file systems in terms of features and extensibility. -It borrows a powerful concept called Translators from GNU Hurd kernel. -Much of the code in GlusterFS is in user space and easily manageable. - -This package provides the glusterfs libgfapi library. - -%package api-devel -Summary: Development Libraries -Requires: %{name} = %{version}-%{release} -Requires: %{name}-devel = %{version}-%{release} -Requires: libacl-devel - -%description api-devel -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. GlusterFS is one of the -most sophisticated file systems in terms of features and extensibility. -It borrows a powerful concept called Translators from GNU Hurd kernel. -Much of the code in GlusterFS is in user space and easily manageable. - -This package provides the api include files. - %package cli Summary: GlusterFS CLI -Requires: %{name}-libs = %{version}-%{release} +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Requires: libglusterd0%{?_isa} = %{version}-%{release} %description cli GlusterFS is a distributed file-system capable of scaling to several @@ -346,23 +316,6 @@ Much of the code in GlusterFS is in user space and easily manageable. This package provides cloudsync plugins for archival feature. -%package devel -Summary: Development Libraries -Requires: %{name} = %{version}-%{release} -# Needed for the Glupy examples to work -Requires: %{name}-extra-xlators = %{version}-%{release} - -%description devel -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. GlusterFS is one of the -most sophisticated file systems in terms of features and extensibility. -It borrows a powerful concept called Translators from GNU Hurd kernel. -Much of the code in GlusterFS is in user space and easily manageable. - -This package provides the development libraries and include files. - - %if ( 0%{!?_without_events:1} ) %package events Summary: GlusterFS Events @@ -516,12 +469,16 @@ is in user space and easily manageable. This package provides the glusterfs legacy gNFS server xlator %endif -%package libs -Summary: GlusterFS common libraries +%package -n libglusterfs0 +Summary: GlusterFS libglusterfs library Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig +Requires: libgfrpc0%{?_isa} = %{version}-%{release} +Requires: libgfxdr0%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-libs <= %{version}-%{release} +Provides: %{name}-libs = %{version}-%{release} -%description libs +%description -n libglusterfs0 GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over TCP/IP interconnect into one large parallel network filesystem. GlusterFS is one of the @@ -529,7 +486,163 @@ most sophisticated file systems in terms of features and extensibility. It borrows a powerful concept called Translators from GNU Hurd kernel. Much of the code in GlusterFS is in user space and easily manageable. -This package provides the base GlusterFS libraries +This package provides the base libglusterfs library + +%package -n libglusterfs-devel +Summary: GlusterFS libglusterfs library +Requires: libgfrpc-devel%{?_isa} = %{version}-%{release} +Requires: libgfxdr-devel%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-devel <= %{version}-%{release} +Provides: %{name}-devel = %{version}-%{release} + +%description -n libglusterfs-devel +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. + +This package provides libglusterfs.so and the gluster C header files. + +%package -n libgfapi0 +Summary: GlusterFS api library +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Requires: %{name}-client-xlators%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-api <= %{version}-%{release} +Provides: %{name}-api = %{version}-%{release} + +%description -n libgfapi0 +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. + +This package provides the glusterfs libgfapi library. + +%package -n libgfapi-devel +Summary: Development Libraries +Requires: libglusterfs-devel%{?_isa} = %{version}-%{release} +Requires: libacl-devel +Obsoletes: %{name}-api-devel <= %{version}-%{release} +Provides: %{name}-api-devel = %{version}-%{release} + +%description -n libgfapi-devel +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. + +This package provides libgfapi.so and the api C header files. + +%package -n libgfchangelog0 +Summary: GlusterFS libchangelog library +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-libs <= %{version}-%{release} + +%description -n libgfchangelog0 +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. + +This package provides the libgfchangelog library + +%package -n libgfchangelog-devel +Summary: GlusterFS libchangelog library +Requires: libglusterfs-devel%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-devel <= %{version}-%{release} + +%description -n libgfchangelog-devel +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. + +This package provides libgfchangelog.so and changelog C header files. + +%package -n libgfrpc0 +Summary: GlusterFS libgfrpc0 library +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-libs <= %{version}-%{release} + +%description -n libgfrpc0 +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. + +This package provides the libgfrpc library + +%package -n libgfrpc-devel +Summary: GlusterFS libgfrpc library +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-devel <= %{version}-%{release} + +%description -n libgfrpc-devel +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. + +This package provides libgfrpc.so and rpc C header files. + +%package -n libgfxdr0 +Summary: GlusterFS libgfxdr0 library +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-libs <= %{version}-%{release} + +%description -n libgfxdr0 +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. + +This package provides the libgfxdr library + +%package -n libgfxdr-devel +Summary: GlusterFS libgfxdr library +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-devel <= %{version}-%{release} + +%description -n libgfxdr-devel +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. + +This package provides libgfxdr.so. + +%package -n libglusterd0 +Summary: GlusterFS libglusterd library +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-libs <= %{version}-%{release} + +%description -n libglusterd0 +GlusterFS is a distributed file-system capable of scaling to several +petabytes. It aggregates various storage bricks over TCP/IP interconnect +into one large parallel network filesystem. GlusterFS is one of the +most sophisticated file systems in terms of features and extensibility. +It borrows a powerful concept called Translators from GNU Hurd kernel. +Much of the code in GlusterFS is in user space and easily manageable. + +This package provides the libglusterd library %package -n python%{_pythonver}-gluster Summary: GlusterFS python library @@ -595,12 +708,13 @@ like Pacemaker. %package server Summary: Distributed file-system server Requires: %{name} = %{version}-%{release} -Requires: %{name}-libs = %{version}-%{release} +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Requires: libgfchangelog0%{?_isa} = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse Requires: %{name}-fuse = %{version}-%{release} # self-heal daemon, rebalance, nfs-server etc. are actually clients -Requires: %{name}-api = %{version}-%{release} +Requires: libgfapi0%{?_isa} = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} # lvm2 for snapshot, and nfs-utils and rpcbind/portmap for gnfs server Requires: psmisc @@ -829,8 +943,18 @@ install -p -m 0755 -D extras/command-completion/gluster.bash \ %endif exit 0 -# post and postun scriptlets for api -%ldconfig_scriptlets api +# post and postun scriptlets for libs +%ldconfig_scriptlets libglusterfs0 + +%ldconfig_scriptlets libgfchangelog0 + +%ldconfig_scriptlets libgfapi0 + +%ldconfig_scriptlets libgfrpc0 + +%ldconfig_scriptlets libgfxdr0 + +%ldconfig_scriptlets libgfglusterd0 %if ( 0%{!?_without_events:1} ) %post events @@ -1109,20 +1233,6 @@ exit 0 %exclude %{_prefix}/lib/ocf/resource.d/heartbeat/* %endif -%files api -%exclude %{_libdir}/*.so -# libgfapi files -%{_libdir}/libgfapi.* -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mount - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mount/api.so - -%files api-devel -%{_libdir}/pkgconfig/glusterfs-api.pc -%{_libdir}/libgfapi.so -%dir %{_includedir}/glusterfs -%dir %{_includedir}/glusterfs/api - %{_includedir}/glusterfs/api/* - %files cli %{_sbindir}/gluster %{_mandir}/man8/gluster.8* @@ -1139,14 +1249,33 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?dev}/cloudsync-plugins/cloudsyncs3.so %{_libdir}/glusterfs/%{version}%{?dev}/cloudsync-plugins/cloudsynccvlt.so -%files devel +%files -n libglusterfs-devel %dir %{_includedir}/glusterfs - %{_includedir}/glusterfs/* -%exclude %{_includedir}/glusterfs/api -%exclude %{_libdir}/libgfapi.so -%{_libdir}/*.so + %{_includedir}/glusterfs/*.h + %{_includedir}/glusterfs/server/*.h +%{_libdir}/libglusterfs.so + +%files -n libgfapi-devel +%dir %{_includedir}/glusterfs/api + %{_includedir}/glusterfs/api/*.h +%{_libdir}/libgfapi.so +%{_libdir}/pkgconfig/glusterfs-api.pc + + +%files -n libgfchangelog-devel +%dir %{_includedir}/glusterfs/gfchangelog + %{_includedir}/glusterfs/gfchangelog/*.h +%{_libdir}/libgfchangelog.so %{_libdir}/pkgconfig/libgfchangelog.pc +%files -n libgfrpc-devel +%dir %{_includedir}/glusterfs/rpc + %{_includedir}/glusterfs/rpc/*.h +%{_libdir}/libgfrpc.so + +%files -n libgfxdr-devel +%{_libdir}/libgfxdr.so + # Events %if ( 0%{!?_without_events:1} ) %files events @@ -1241,10 +1370,26 @@ exit 0 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre %endif -%files libs -%{_libdir}/*.so.* -%exclude %{_libdir}/libgfapi.* -# libgfdb is only needed server-side +%files -n libglusterfs0 +%{_libdir}/libglusterfs.so.* + +%files -n libgfapi0 +%{_libdir}/libgfapi.so.* +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api.so + +%files -n libgfchangelog0 +%{_libdir}/libgfchangelog.so.* + +%files -n libgfrpc0 +%{_libdir}/libgfrpc.so.* + +%files -n libgfxdr0 +%{_libdir}/libgfxdr.so.* + +%files -n libglusterd0 +%{_libdir}/libglusterd.so.* +%exclude %{_libdir}/libglusterd.so %files -n python%{_pythonver}-gluster # introducing glusterfs module in site packages. @@ -1434,6 +1579,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Mon Jul 6 2020 Kaleb S. KEITHLEY - 8.0-1 +- 8.0 GA + * Sat Jul 4 2020 Kaleb S. KEITHLEY - 8.0-0.3rc0 - 8.0 fix symbol versions, enable LTO diff --git a/sources b/sources index 6b57fc2..e660867 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-8.0rc0.tar.gz) = f435cf564b1f435f39efe86e1a2b8a195171c1957d5646959eccc69080d8f472db2897d164a71aefa98aca9458211f367e1fe4347ee78afe65f31c832e10d52b +SHA512 (glusterfs-8.0.tar.gz) = 6af94f31e08e9ba9d1f3f674678553815933f8db58672d4225f855dc47f3290e1ad22f44dbe95856f82120bf195bc2df7dbd02c88e3a27d9363877891c619b58 From 68e20559d841df24f609098d4e7a9fe66805d08c Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 7 Jul 2020 06:47:54 -0400 Subject: [PATCH 257/328] 8.0, thin-arbiter Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 9719845..18847fe 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -183,7 +183,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 8.0 -Release: 1%{?dev:%{dev}}%{?dist} +Release: 2%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -762,7 +762,7 @@ This package provides the glusterfs server daemon. %package thin-arbiter Summary: GlusterFS thin-arbiter module Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: libglusterfs0{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release} %description thin-arbiter @@ -1579,6 +1579,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Jul 7 2020 Kaleb S. KEITHLEY - 8.0-2 +- 8.0, thin-arbiter + * Mon Jul 6 2020 Kaleb S. KEITHLEY - 8.0-1 - 8.0 GA From 9c80d2d404fa9cc0bac9595d141d5bb0ecc6915d Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 7 Jul 2020 07:26:50 -0400 Subject: [PATCH 258/328] thin-arbiter, w/o libglusterfs0 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 18847fe..5f1f0bf 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -762,7 +762,6 @@ This package provides the glusterfs server daemon. %package thin-arbiter Summary: GlusterFS thin-arbiter module Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: libglusterfs0{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release} %description thin-arbiter @@ -1579,6 +1578,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Jul 7 2020 Kaleb S. KEITHLEY +- thin-arbiter, w/o libglusterfs0 + * Tue Jul 7 2020 Kaleb S. KEITHLEY - 8.0-2 - 8.0, thin-arbiter From 39a3707ff2b36e996f40f6152429f134086c54fa Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 8 Jul 2020 07:30:38 -0400 Subject: [PATCH 259/328] thin-arbiter, w/o libglusterfs0 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5f1f0bf..8d7b927 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -183,7 +183,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 8.0 -Release: 2%{?dev:%{dev}}%{?dist} +Release: 3%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1578,7 +1578,7 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog -* Tue Jul 7 2020 Kaleb S. KEITHLEY +* Wed Jul 8 2020 Kaleb S. KEITHLEY - 8.0-3 - thin-arbiter, w/o libglusterfs0 * Tue Jul 7 2020 Kaleb S. KEITHLEY - 8.0-2 From b513261e9700cfb9216e952692a1694b2a04e135 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 20 Jul 2020 17:07:45 -0400 Subject: [PATCH 260/328] use /usr/bin/make install DESTDIR=/home/kkeithle/rpmbuild/BUILDROOT/glusterfs-8.0-4.fc33.x86_64 INSTALL="/usr/bin/install -p" macro Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8d7b927..3ee0770 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -183,7 +183,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 8.0 -Release: 3%{?dev:%{dev}}%{?dist} +Release: 4%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -818,7 +818,7 @@ make check %install rm -rf %{buildroot} -make install DESTDIR=%{buildroot} +%make_install %if ( 0%{!?_without_server:1} ) %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{!?_without_server:1} ) @@ -1578,6 +1578,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Mon Jul 20 2020 Kaleb S. KEITHLEY - 8.0-4 +- use %make_install macro + * Wed Jul 8 2020 Kaleb S. KEITHLEY - 8.0-3 - thin-arbiter, w/o libglusterfs0 From ec1c3d7ac7d0fa0c8220e4783fcec65a60dc5972 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 22 Jul 2020 08:28:06 -0400 Subject: [PATCH 261/328] eliminate contrib/sunrpc/xdr_sizeof.c Signed-off-by: Kaleb S. KEITHLEY --- 0002-rpc-rpc-lib-src-Makefile.am.patch | 12 ++++++++++++ glusterfs.spec | 7 ++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 0002-rpc-rpc-lib-src-Makefile.am.patch diff --git a/0002-rpc-rpc-lib-src-Makefile.am.patch b/0002-rpc-rpc-lib-src-Makefile.am.patch new file mode 100644 index 0000000..4b167fc --- /dev/null +++ b/0002-rpc-rpc-lib-src-Makefile.am.patch @@ -0,0 +1,12 @@ +--- glusterfs-8.0/rpc/rpc-lib/src/Makefile.am.orig 2020-07-22 08:09:31.315980869 -0400 ++++ glusterfs-8.0/rpc/rpc-lib/src/Makefile.am 2020-07-22 08:10:12.203980869 -0400 +@@ -2,8 +2,7 @@ + + libgfrpc_la_SOURCES = auth-unix.c rpcsvc-auth.c rpcsvc.c auth-null.c \ + rpc-transport.c xdr-rpc.c xdr-rpcclnt.c rpc-clnt.c auth-glusterfs.c \ +- rpc-drc.c $(CONTRIBDIR)/sunrpc/xdr_sizeof.c rpc-clnt-ping.c \ +- autoscale-threads.c mgmt-pmap.c ++ rpc-drc.c rpc-clnt-ping.c autoscale-threads.c mgmt-pmap.c + + EXTRA_DIST = libgfrpc.sym + diff --git a/glusterfs.spec b/glusterfs.spec index 3ee0770..0f35f28 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -183,7 +183,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 8.0 -Release: 4%{?dev:%{dev}}%{?dist} +Release: 5%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -201,6 +201,7 @@ Source8: glusterfsd.init Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif Patch0001: 0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patch +Patch0002: 0002-rpc-rpc-lib-src-Makefile.am.patch Requires(pre): shadow-utils BuildRequires: systemd @@ -774,6 +775,7 @@ This package provides the glusterfs thin-arbiter translator. %prep %setup -q -n %{name}-%{version}%{?dev} %patch0001 -p1 +%patch0002 -p1 %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do @@ -1578,6 +1580,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Wed Jul 22 2020 Kaleb S. KEITHLEY - 8.0-5 +- eliminate contrib/sunrpc/xdr_sizeof.c + * Mon Jul 20 2020 Kaleb S. KEITHLEY - 8.0-4 - use %make_install macro From 5acb75d3e033eaaa85c07437e3ed79e10d813a1b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 20:26:07 +0000 Subject: [PATCH 262/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 0f35f28..8a8655d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -183,11 +183,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 8.0 -Release: 5%{?dev:%{dev}}%{?dist} +Release: 6%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.3 +Release: 0.@PACKAGE_RELEASE@%{?dist}.4 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1580,6 +1580,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 8.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Wed Jul 22 2020 Kaleb S. KEITHLEY - 8.0-5 - eliminate contrib/sunrpc/xdr_sizeof.c From f36b853ea370c4df61e7d30cb0a84e077318b752 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 25 Aug 2020 10:17:12 -0400 Subject: [PATCH 263/328] 8.1 GA Signed-off-by: Kaleb S. KEITHLEY --- ...bol-versions-break-LTO-in-Fedora-raw.patch | 2233 ----------------- glusterfs.spec | 9 +- sources | 2 +- 3 files changed, 6 insertions(+), 2238 deletions(-) delete mode 100644 0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patch diff --git a/0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patch b/0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patch deleted file mode 100644 index daed10e..0000000 --- a/0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patch +++ /dev/null @@ -1,2233 +0,0 @@ -From bc09af77376c45d28e6c789b0b4e64deed053aad Mon Sep 17 00:00:00 2001 -From: "Kaleb S. KEITHLEY" -Date: Thu, 2 Jul 2020 15:52:15 -0400 -Subject: [PATCH] api: libgfapi symbol versions break LTO in Fedora rawhide/f33 - -The way symbol versions are implemented is incompatible with gcc-10 and LTO. - -Fedora provenpackager Jeff Law (law [at] redhat.com) writes in the -Fedora dist-git glusterfs.spec: - This package uses top level ASM constructs which are incompatible with LTO. - Top level ASMs are often used to implement symbol versioning. gcc-10 - introduces a new mechanism for symbol versioning which works with LTO. - Converting packages to use that mechanism instead of toplevel ASMs is - recommended. - -In particular, note that the version of gluster in Fedora rawhide/f33 is -glusterfs-8.0RC0. Once this fix is merged it will be necessary to backport -it to the release-8 branch. - -At the time that gfapi symbol versions were first implemented we copied -the GNU libc (glibc) symbol version implementation following Uli Drepper's -symbol versioning HOWTO. - -Now gcc-10 has a symver attribute that can be used instead. (Maybe it -has been there all along?) - -Both the original implemenation and this implemenation yield the same -symbol versions. This can be seen by running - `nm -D --with-symbol-versions libgfapi.so` -on the libgfapi.so built before and after applying this fix. - -Change-Id: I05fda580afacfff1bfc07be810dd1afc08a92fb8 -Fixes: #1352 -Signed-off-by: Kaleb S. KEITHLEY ---- - api/src/glfs-fops.c | 322 +++++++++++++-------------------------- - api/src/glfs-handleops.c | 100 +++++------- - api/src/glfs-internal.h | 27 +++- - api/src/glfs-mgmt.c | 3 +- - api/src/glfs-resolve.c | 14 +- - api/src/glfs.c | 99 +++++------- - 6 files changed, 210 insertions(+), 355 deletions(-) - -diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c -index 8d6d11423..fc2cfa043 100644 ---- a/api/src/glfs-fops.c -+++ b/api/src/glfs-fops.c -@@ -292,6 +292,7 @@ glfs_iatt_to_statx(struct glfs *fs, const struct iatt *iatt, - statx->glfs_st_attributes_mask = 0; - } - -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_iatt_from_statx, 6.0) - void - priv_glfs_iatt_from_statx(struct iatt *iatt, const struct glfs_stat *statx) - { -@@ -371,7 +372,6 @@ priv_glfs_iatt_from_statx(struct iatt *iatt, const struct glfs_stat *statx) - iatt->ia_attributes = statx->glfs_st_attributes; - iatt->ia_attributes_mask = statx->glfs_st_attributes_mask; - } --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_iatt_from_statx, 6.0); - - void - glfsflags_from_gfapiflags(struct glfs_stat *stat, int *glvalid) -@@ -415,6 +415,7 @@ glfs_loc_unlink(loc_t *loc) - return 0; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_open, 3.4.0) - struct glfs_fd * - pub_glfs_open(struct glfs *fs, const char *path, int flags) - { -@@ -509,8 +510,7 @@ invalid_fs: - return glfd; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_open, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_close, 3.4.0) - int - pub_glfs_close(struct glfs_fd *glfd) - { -@@ -565,8 +565,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_close, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lstat, 3.4.0) - int - pub_glfs_lstat(struct glfs *fs, const char *path, struct stat *stat) - { -@@ -607,8 +606,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lstat, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_stat, 3.4.0) - int - pub_glfs_stat(struct glfs *fs, const char *path, struct stat *stat) - { -@@ -649,8 +647,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_stat, 3.4.0); -- -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_statx, 6.0) - int - priv_glfs_statx(struct glfs *fs, const char *path, const unsigned int mask, - struct glfs_stat *statxbuf) -@@ -704,8 +701,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_statx, 6.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fstat, 3.4.0) - int - pub_glfs_fstat(struct glfs_fd *glfd, struct stat *stat) - { -@@ -754,8 +750,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fstat, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_creat, 3.4.0) - struct glfs_fd * - pub_glfs_creat(struct glfs *fs, const char *path, int flags, mode_t mode) - { -@@ -902,8 +897,6 @@ invalid_fs: - return glfd; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_creat, 3.4.0); -- - #ifdef HAVE_SEEK_HOLE - static int - glfs_seek(struct glfs_fd *glfd, off_t offset, int whence) -@@ -957,6 +950,7 @@ out: - } - #endif - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lseek, 3.4.0) - off_t - pub_glfs_lseek(struct glfs_fd *glfd, off_t offset, int whence) - { -@@ -1012,8 +1006,6 @@ invalid_fs: - return -1; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lseek, 3.4.0); -- - static ssize_t - glfs_preadv_common(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, - off_t offset, int flags, struct glfs_stat *poststat) -@@ -1091,6 +1083,7 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv, 3.4.0) - ssize_t - pub_glfs_preadv(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, - off_t offset, int flags) -@@ -1098,8 +1091,7 @@ pub_glfs_preadv(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, - return glfs_preadv_common(glfd, iovec, iovcnt, offset, flags, NULL); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read, 3.4.0) - ssize_t - pub_glfs_read(struct glfs_fd *glfd, void *buf, size_t count, int flags) - { -@@ -1116,8 +1108,7 @@ pub_glfs_read(struct glfs_fd *glfd, void *buf, size_t count, int flags) - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC(glfs_pread34, glfs_pread, 3.4.0) - ssize_t - pub_glfs_pread34(struct glfs_fd *glfd, void *buf, size_t count, off_t offset, - int flags) -@@ -1135,8 +1126,7 @@ pub_glfs_pread34(struct glfs_fd *glfd, void *buf, size_t count, off_t offset, - return ret; - } - --GFAPI_SYMVER_PUBLIC(glfs_pread34, glfs_pread, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread, 6.0) - ssize_t - pub_glfs_pread(struct glfs_fd *glfd, void *buf, size_t count, off_t offset, - int flags, struct glfs_stat *poststat) -@@ -1154,8 +1144,7 @@ pub_glfs_pread(struct glfs_fd *glfd, void *buf, size_t count, off_t offset, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread, 6.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv, 3.4.0) - ssize_t - pub_glfs_readv(struct glfs_fd *glfd, const struct iovec *iov, int count, - int flags) -@@ -1167,8 +1156,6 @@ pub_glfs_readv(struct glfs_fd *glfd, const struct iovec *iov, int count, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv, 3.4.0); -- - struct glfs_io { - struct glfs_fd *glfd; - int op; -@@ -1370,6 +1357,7 @@ invalid_fs: - return -1; - } - -+GFAPI_SYMVER_PUBLIC(glfs_preadv_async34, glfs_preadv_async, 3.4.0) - int - pub_glfs_preadv_async34(struct glfs_fd *glfd, const struct iovec *iovec, - int count, off_t offset, int flags, glfs_io_cbk34 fn, -@@ -1379,8 +1367,7 @@ pub_glfs_preadv_async34(struct glfs_fd *glfd, const struct iovec *iovec, - (void *)fn, data); - } - --GFAPI_SYMVER_PUBLIC(glfs_preadv_async34, glfs_preadv_async, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv_async, 6.0) - int - pub_glfs_preadv_async(struct glfs_fd *glfd, const struct iovec *iovec, - int count, off_t offset, int flags, glfs_io_cbk fn, -@@ -1390,8 +1377,7 @@ pub_glfs_preadv_async(struct glfs_fd *glfd, const struct iovec *iovec, - _gf_false, fn, data); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv_async, 6.0); -- -+GFAPI_SYMVER_PUBLIC(glfs_read_async34, glfs_read_async, 3.4.0) - int - pub_glfs_read_async34(struct glfs_fd *glfd, void *buf, size_t count, int flags, - glfs_io_cbk34 fn, void *data) -@@ -1410,8 +1396,7 @@ pub_glfs_read_async34(struct glfs_fd *glfd, void *buf, size_t count, int flags, - return ret; - } - --GFAPI_SYMVER_PUBLIC(glfs_read_async34, glfs_read_async, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read_async, 6.0) - int - pub_glfs_read_async(struct glfs_fd *glfd, void *buf, size_t count, int flags, - glfs_io_cbk fn, void *data) -@@ -1430,8 +1415,7 @@ pub_glfs_read_async(struct glfs_fd *glfd, void *buf, size_t count, int flags, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read_async, 6.0); -- -+GFAPI_SYMVER_PUBLIC(glfs_pread_async34, glfs_pread_async, 3.4.0) - int - pub_glfs_pread_async34(struct glfs_fd *glfd, void *buf, size_t count, - off_t offset, int flags, glfs_io_cbk34 fn, void *data) -@@ -1450,8 +1434,7 @@ pub_glfs_pread_async34(struct glfs_fd *glfd, void *buf, size_t count, - return ret; - } - --GFAPI_SYMVER_PUBLIC(glfs_pread_async34, glfs_pread_async, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread_async, 6.0) - int - pub_glfs_pread_async(struct glfs_fd *glfd, void *buf, size_t count, - off_t offset, int flags, glfs_io_cbk fn, void *data) -@@ -1470,8 +1453,7 @@ pub_glfs_pread_async(struct glfs_fd *glfd, void *buf, size_t count, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread_async, 6.0); -- -+GFAPI_SYMVER_PUBLIC(glfs_readv_async34, glfs_readv_async, 3.4.0) - int - pub_glfs_readv_async34(struct glfs_fd *glfd, const struct iovec *iov, int count, - int flags, glfs_io_cbk34 fn, void *data) -@@ -1483,8 +1465,7 @@ pub_glfs_readv_async34(struct glfs_fd *glfd, const struct iovec *iov, int count, - return ret; - } - --GFAPI_SYMVER_PUBLIC(glfs_readv_async34, glfs_readv_async, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv_async, 6.0) - int - pub_glfs_readv_async(struct glfs_fd *glfd, const struct iovec *iov, int count, - int flags, glfs_io_cbk fn, void *data) -@@ -1496,8 +1477,6 @@ pub_glfs_readv_async(struct glfs_fd *glfd, const struct iovec *iov, int count, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv_async, 6.0); -- - static ssize_t - glfs_pwritev_common(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, - off_t offset, int flags, struct glfs_stat *prestat, -@@ -1583,6 +1562,7 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_copy_file_range, 6.0) - ssize_t - pub_glfs_copy_file_range(struct glfs_fd *glfd_in, off64_t *off_in, - struct glfs_fd *glfd_out, off64_t *off_out, size_t len, -@@ -1736,8 +1716,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_copy_file_range, 6.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev, 3.4.0) - ssize_t - pub_glfs_pwritev(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, - off_t offset, int flags) -@@ -1745,8 +1724,7 @@ pub_glfs_pwritev(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, - return glfs_pwritev_common(glfd, iovec, iovcnt, offset, flags, NULL, NULL); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write, 3.4.0) - ssize_t - pub_glfs_write(struct glfs_fd *glfd, const void *buf, size_t count, int flags) - { -@@ -1763,8 +1741,7 @@ pub_glfs_write(struct glfs_fd *glfd, const void *buf, size_t count, int flags) - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev, 3.4.0) - ssize_t - pub_glfs_writev(struct glfs_fd *glfd, const struct iovec *iov, int count, - int flags) -@@ -1776,8 +1753,7 @@ pub_glfs_writev(struct glfs_fd *glfd, const struct iovec *iov, int count, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC(glfs_pwrite34, glfs_pwrite, 3.4.0) - ssize_t - pub_glfs_pwrite34(struct glfs_fd *glfd, const void *buf, size_t count, - off_t offset, int flags) -@@ -1795,8 +1771,7 @@ pub_glfs_pwrite34(struct glfs_fd *glfd, const void *buf, size_t count, - return ret; - } - --GFAPI_SYMVER_PUBLIC(glfs_pwrite34, glfs_pwrite, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite, 6.0) - ssize_t - pub_glfs_pwrite(struct glfs_fd *glfd, const void *buf, size_t count, - off_t offset, int flags, struct glfs_stat *prestat, -@@ -1815,8 +1790,6 @@ pub_glfs_pwrite(struct glfs_fd *glfd, const void *buf, size_t count, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite, 6.0); -- - extern glfs_t * - pub_glfs_from_glfd(glfs_fd_t *); - -@@ -1935,6 +1908,7 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC(glfs_pwritev_async34, glfs_pwritev_async, 3.4.0) - int - pub_glfs_pwritev_async34(struct glfs_fd *glfd, const struct iovec *iovec, - int count, off_t offset, int flags, glfs_io_cbk34 fn, -@@ -1944,8 +1918,7 @@ pub_glfs_pwritev_async34(struct glfs_fd *glfd, const struct iovec *iovec, - _gf_true, (void *)fn, data); - } - --GFAPI_SYMVER_PUBLIC(glfs_pwritev_async34, glfs_pwritev_async, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev_async, 6.0) - int - pub_glfs_pwritev_async(struct glfs_fd *glfd, const struct iovec *iovec, - int count, off_t offset, int flags, glfs_io_cbk fn, -@@ -1955,8 +1928,7 @@ pub_glfs_pwritev_async(struct glfs_fd *glfd, const struct iovec *iovec, - _gf_false, fn, data); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev_async, 6.0); -- -+GFAPI_SYMVER_PUBLIC(glfs_write_async34, glfs_write_async, 3.4.0) - int - pub_glfs_write_async34(struct glfs_fd *glfd, const void *buf, size_t count, - int flags, glfs_io_cbk34 fn, void *data) -@@ -1975,8 +1947,7 @@ pub_glfs_write_async34(struct glfs_fd *glfd, const void *buf, size_t count, - return ret; - } - --GFAPI_SYMVER_PUBLIC(glfs_write_async34, glfs_write_async, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write_async, 6.0) - int - pub_glfs_write_async(struct glfs_fd *glfd, const void *buf, size_t count, - int flags, glfs_io_cbk fn, void *data) -@@ -1995,8 +1966,7 @@ pub_glfs_write_async(struct glfs_fd *glfd, const void *buf, size_t count, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write_async, 6.0); -- -+GFAPI_SYMVER_PUBLIC(glfs_pwrite_async34, glfs_pwrite_async, 3.4.0) - int - pub_glfs_pwrite_async34(struct glfs_fd *glfd, const void *buf, int count, - off_t offset, int flags, glfs_io_cbk34 fn, void *data) -@@ -2015,8 +1985,7 @@ pub_glfs_pwrite_async34(struct glfs_fd *glfd, const void *buf, int count, - return ret; - } - --GFAPI_SYMVER_PUBLIC(glfs_pwrite_async34, glfs_pwrite_async, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite_async, 6.0) - int - pub_glfs_pwrite_async(struct glfs_fd *glfd, const void *buf, int count, - off_t offset, int flags, glfs_io_cbk fn, void *data) -@@ -2035,8 +2004,7 @@ pub_glfs_pwrite_async(struct glfs_fd *glfd, const void *buf, int count, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite_async, 6.0); -- -+GFAPI_SYMVER_PUBLIC(glfs_writev_async34, glfs_writev_async, 3.4.0) - int - pub_glfs_writev_async34(struct glfs_fd *glfd, const struct iovec *iov, - int count, int flags, glfs_io_cbk34 fn, void *data) -@@ -2048,8 +2016,7 @@ pub_glfs_writev_async34(struct glfs_fd *glfd, const struct iovec *iov, - return ret; - } - --GFAPI_SYMVER_PUBLIC(glfs_writev_async34, glfs_writev_async, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev_async, 6.0) - int - pub_glfs_writev_async(struct glfs_fd *glfd, const struct iovec *iov, int count, - int flags, glfs_io_cbk fn, void *data) -@@ -2061,8 +2028,6 @@ pub_glfs_writev_async(struct glfs_fd *glfd, const struct iovec *iov, int count, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev_async, 6.0); -- - static int - glfs_fsync_common(struct glfs_fd *glfd, struct glfs_stat *prestat, - struct glfs_stat *poststat) -@@ -2127,14 +2092,14 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC(glfs_fsync34, glfs_fsync, 3.4.0) - int - pub_glfs_fsync34(struct glfs_fd *glfd) - { - return glfs_fsync_common(glfd, NULL, NULL); - } - --GFAPI_SYMVER_PUBLIC(glfs_fsync34, glfs_fsync, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync, 6.0) - int - pub_glfs_fsync(struct glfs_fd *glfd, struct glfs_stat *prestat, - struct glfs_stat *poststat) -@@ -2142,8 +2107,6 @@ pub_glfs_fsync(struct glfs_fd *glfd, struct glfs_stat *prestat, - return glfs_fsync_common(glfd, prestat, poststat); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync, 6.0); -- - static int - glfs_fsync_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, struct iatt *prebuf, -@@ -2224,6 +2187,7 @@ out: - return ret; - } - -+GFAPI_SYMVER_PUBLIC(glfs_fsync_async34, glfs_fsync_async, 3.4.0) - int - pub_glfs_fsync_async34(struct glfs_fd *glfd, glfs_io_cbk34 fn, void *data) - { -@@ -2240,8 +2204,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC(glfs_fsync_async34, glfs_fsync_async, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync_async, 6.0) - int - pub_glfs_fsync_async(struct glfs_fd *glfd, glfs_io_cbk fn, void *data) - { -@@ -2258,8 +2221,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync_async, 6.0); -- - static int - glfs_fdatasync_common(struct glfs_fd *glfd, struct glfs_stat *prestat, - struct glfs_stat *poststat) -@@ -2324,14 +2285,14 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC(glfs_fdatasync34, glfs_fdatasync, 3.4.0) - int - pub_glfs_fdatasync34(struct glfs_fd *glfd) - { - return glfs_fdatasync_common(glfd, NULL, NULL); - } - --GFAPI_SYMVER_PUBLIC(glfs_fdatasync34, glfs_fdatasync, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync, 6.0) - int - pub_glfs_fdatasync(struct glfs_fd *glfd, struct glfs_stat *prestat, - struct glfs_stat *poststat) -@@ -2339,8 +2300,7 @@ pub_glfs_fdatasync(struct glfs_fd *glfd, struct glfs_stat *prestat, - return glfs_fdatasync_common(glfd, prestat, poststat); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync, 6.0); -- -+GFAPI_SYMVER_PUBLIC(glfs_fdatasync_async34, glfs_fdatasync_async, 3.4.0) - int - pub_glfs_fdatasync_async34(struct glfs_fd *glfd, glfs_io_cbk34 fn, void *data) - { -@@ -2357,8 +2317,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC(glfs_fdatasync_async34, glfs_fdatasync_async, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync_async, 6.0) - int - pub_glfs_fdatasync_async(struct glfs_fd *glfd, glfs_io_cbk fn, void *data) - { -@@ -2375,8 +2334,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync_async, 6.0); -- - static int - glfs_ftruncate_common(struct glfs_fd *glfd, off_t offset, - struct glfs_stat *prestat, struct glfs_stat *poststat) -@@ -2442,14 +2399,14 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC(glfs_ftruncate34, glfs_ftruncate, 3.4.0) - int - pub_glfs_ftruncate34(struct glfs_fd *glfd, off_t offset) - { - return glfs_ftruncate_common(glfd, offset, NULL, NULL); - } - --GFAPI_SYMVER_PUBLIC(glfs_ftruncate34, glfs_ftruncate, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate, 6.0) - int - pub_glfs_ftruncate(struct glfs_fd *glfd, off_t offset, - struct glfs_stat *prestat, struct glfs_stat *poststat) -@@ -2457,8 +2414,7 @@ pub_glfs_ftruncate(struct glfs_fd *glfd, off_t offset, - return glfs_ftruncate_common(glfd, offset, prestat, poststat); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate, 6.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_truncate, 3.7.15) - int - pub_glfs_truncate(struct glfs *fs, const char *path, off_t length) - { -@@ -2504,8 +2460,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_truncate, 3.7.15); -- - static int - glfs_ftruncate_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, struct iatt *prebuf, -@@ -2598,6 +2552,7 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC(glfs_ftruncate_async34, glfs_ftruncate_async, 3.4.0) - int - pub_glfs_ftruncate_async34(struct glfs_fd *glfd, off_t offset, glfs_io_cbk34 fn, - void *data) -@@ -2606,8 +2561,7 @@ pub_glfs_ftruncate_async34(struct glfs_fd *glfd, off_t offset, glfs_io_cbk34 fn, - data); - } - --GFAPI_SYMVER_PUBLIC(glfs_ftruncate_async34, glfs_ftruncate_async, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate_async, 6.0) - int - pub_glfs_ftruncate_async(struct glfs_fd *glfd, off_t offset, glfs_io_cbk fn, - void *data) -@@ -2615,8 +2569,7 @@ pub_glfs_ftruncate_async(struct glfs_fd *glfd, off_t offset, glfs_io_cbk fn, - return glfs_ftruncate_async_common(glfd, offset, _gf_false, fn, data); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate_async, 6.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_access, 3.4.0) - int - pub_glfs_access(struct glfs *fs, const char *path, int mode) - { -@@ -2662,8 +2615,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_access, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_symlink, 3.4.0) - int - pub_glfs_symlink(struct glfs *fs, const char *data, const char *path) - { -@@ -2753,8 +2705,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_symlink, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readlink, 3.4.0) - int - pub_glfs_readlink(struct glfs *fs, const char *path, char *buf, size_t bufsiz) - { -@@ -2811,8 +2762,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readlink, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mknod, 3.4.0) - int - pub_glfs_mknod(struct glfs *fs, const char *path, mode_t mode, dev_t dev) - { -@@ -2902,8 +2852,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mknod, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mkdir, 3.4.0) - int - pub_glfs_mkdir(struct glfs *fs, const char *path, mode_t mode) - { -@@ -2993,8 +2942,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_mkdir, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unlink, 3.4.0) - int - pub_glfs_unlink(struct glfs *fs, const char *path) - { -@@ -3050,8 +2998,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unlink, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rmdir, 3.4.0) - int - pub_glfs_rmdir(struct glfs *fs, const char *path) - { -@@ -3106,8 +3053,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rmdir, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rename, 3.4.0) - int - pub_glfs_rename(struct glfs *fs, const char *oldpath, const char *newpath) - { -@@ -3196,8 +3142,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_rename, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_link, 3.4.0) - int - pub_glfs_link(struct glfs *fs, const char *oldpath, const char *newpath) - { -@@ -3283,8 +3228,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_link, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_opendir, 3.4.0) - struct glfs_fd * - pub_glfs_opendir(struct glfs *fs, const char *path) - { -@@ -3365,8 +3309,7 @@ invalid_fs: - return glfd; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_opendir, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_closedir, 3.4.0) - int - pub_glfs_closedir(struct glfs_fd *glfd) - { -@@ -3387,16 +3330,14 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_closedir, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_telldir, 3.4.0) - long - pub_glfs_telldir(struct glfs_fd *fd) - { - return fd->offset; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_telldir, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_seekdir, 3.4.0) - void - pub_glfs_seekdir(struct glfs_fd *fd, long offset) - { -@@ -3425,8 +3366,6 @@ pub_glfs_seekdir(struct glfs_fd *fd, long offset) - */ - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_seekdir, 3.4.0); -- - static int - glfs_discard_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, -@@ -3517,6 +3456,7 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC(glfs_discard_async35, glfs_discard_async, 3.5.0) - int - pub_glfs_discard_async35(struct glfs_fd *glfd, off_t offset, size_t len, - glfs_io_cbk34 fn, void *data) -@@ -3525,8 +3465,7 @@ pub_glfs_discard_async35(struct glfs_fd *glfd, off_t offset, size_t len, - data); - } - --GFAPI_SYMVER_PUBLIC(glfs_discard_async35, glfs_discard_async, 3.5.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard_async, 6.0) - int - pub_glfs_discard_async(struct glfs_fd *glfd, off_t offset, size_t len, - glfs_io_cbk fn, void *data) -@@ -3534,8 +3473,6 @@ pub_glfs_discard_async(struct glfs_fd *glfd, off_t offset, size_t len, - return glfs_discard_async_common(glfd, offset, len, _gf_false, fn, data); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard_async, 6.0); -- - static int - glfs_zerofill_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, -@@ -3628,6 +3565,7 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC(glfs_zerofill_async35, glfs_zerofill_async, 3.5.0) - int - pub_glfs_zerofill_async35(struct glfs_fd *glfd, off_t offset, off_t len, - glfs_io_cbk34 fn, void *data) -@@ -3636,8 +3574,7 @@ pub_glfs_zerofill_async35(struct glfs_fd *glfd, off_t offset, off_t len, - data); - } - --GFAPI_SYMVER_PUBLIC(glfs_zerofill_async35, glfs_zerofill_async, 3.5.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill_async, 6.0) - int - pub_glfs_zerofill_async(struct glfs_fd *glfd, off_t offset, off_t len, - glfs_io_cbk fn, void *data) -@@ -3645,8 +3582,6 @@ pub_glfs_zerofill_async(struct glfs_fd *glfd, off_t offset, off_t len, - return glfs_zerofill_async_common(glfd, offset, len, _gf_false, fn, data); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill_async, 6.0); -- - void - gf_dirent_to_dirent(gf_dirent_t *gf_dirent, struct dirent *dirent) - { -@@ -3806,6 +3741,7 @@ unlock: - return buf; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus_r, 3.4.0) - int - pub_glfs_readdirplus_r(struct glfs_fd *glfd, struct stat *stat, - struct dirent *ext, struct dirent **res) -@@ -3861,8 +3797,7 @@ invalid_fs: - return -1; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus_r, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir_r, 3.4.0) - int - pub_glfs_readdir_r(struct glfs_fd *glfd, struct dirent *buf, - struct dirent **res) -@@ -3870,8 +3805,7 @@ pub_glfs_readdir_r(struct glfs_fd *glfd, struct dirent *buf, - return pub_glfs_readdirplus_r(glfd, 0, buf, res); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir_r, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus, 3.5.0) - struct dirent * - pub_glfs_readdirplus(struct glfs_fd *glfd, struct stat *stat) - { -@@ -3885,16 +3819,14 @@ pub_glfs_readdirplus(struct glfs_fd *glfd, struct stat *stat) - return res; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdirplus, 3.5.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir, 3.5.0) - struct dirent * - pub_glfs_readdir(struct glfs_fd *glfd) - { - return pub_glfs_readdirplus(glfd, NULL); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readdir, 3.5.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_statvfs, 3.4.0) - int - pub_glfs_statvfs(struct glfs *fs, const char *path, struct statvfs *buf) - { -@@ -3940,8 +3872,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_statvfs, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setattr, 6.0) - int - pub_glfs_setattr(struct glfs *fs, const char *path, struct glfs_stat *stat, - int follow) -@@ -4001,8 +3932,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setattr, 6.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetattr, 6.0) - int - pub_glfs_fsetattr(struct glfs_fd *glfd, struct glfs_stat *stat) - { -@@ -4055,8 +3985,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetattr, 6.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chmod, 3.4.0) - int - pub_glfs_chmod(struct glfs *fs, const char *path, mode_t mode) - { -@@ -4073,8 +4002,7 @@ pub_glfs_chmod(struct glfs *fs, const char *path, mode_t mode) - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chmod, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchmod, 3.4.0) - int - pub_glfs_fchmod(struct glfs_fd *glfd, mode_t mode) - { -@@ -4091,8 +4019,7 @@ pub_glfs_fchmod(struct glfs_fd *glfd, mode_t mode) - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchmod, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chown, 3.4.0) - int - pub_glfs_chown(struct glfs *fs, const char *path, uid_t uid, gid_t gid) - { -@@ -4117,8 +4044,7 @@ pub_glfs_chown(struct glfs *fs, const char *path, uid_t uid, gid_t gid) - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chown, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lchown, 3.4.0) - int - pub_glfs_lchown(struct glfs *fs, const char *path, uid_t uid, gid_t gid) - { -@@ -4143,8 +4069,7 @@ pub_glfs_lchown(struct glfs *fs, const char *path, uid_t uid, gid_t gid) - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lchown, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchown, 3.4.0) - int - pub_glfs_fchown(struct glfs_fd *glfd, uid_t uid, gid_t gid) - { -@@ -4169,8 +4094,7 @@ pub_glfs_fchown(struct glfs_fd *glfd, uid_t uid, gid_t gid) - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchown, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_utimens, 3.4.0) - int - pub_glfs_utimens(struct glfs *fs, const char *path, - const struct timespec times[2]) -@@ -4190,8 +4114,7 @@ pub_glfs_utimens(struct glfs *fs, const char *path, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_utimens, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lutimens, 3.4.0) - int - pub_glfs_lutimens(struct glfs *fs, const char *path, - const struct timespec times[2]) -@@ -4211,8 +4134,7 @@ pub_glfs_lutimens(struct glfs *fs, const char *path, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lutimens, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_futimens, 3.4.0) - int - pub_glfs_futimens(struct glfs_fd *glfd, const struct timespec times[2]) - { -@@ -4231,8 +4153,6 @@ pub_glfs_futimens(struct glfs_fd *glfd, const struct timespec times[2]) - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_futimens, 3.4.0); -- - int - glfs_getxattr_process(void *value, size_t size, dict_t *xattr, const char *name) - { -@@ -4332,6 +4252,7 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getxattr, 3.4.0) - ssize_t - pub_glfs_getxattr(struct glfs *fs, const char *path, const char *name, - void *value, size_t size) -@@ -4339,8 +4260,7 @@ pub_glfs_getxattr(struct glfs *fs, const char *path, const char *name, - return glfs_getxattr_common(fs, path, name, value, size, 1); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getxattr, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lgetxattr, 3.4.0) - ssize_t - pub_glfs_lgetxattr(struct glfs *fs, const char *path, const char *name, - void *value, size_t size) -@@ -4348,8 +4268,7 @@ pub_glfs_lgetxattr(struct glfs *fs, const char *path, const char *name, - return glfs_getxattr_common(fs, path, name, value, size, 0); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lgetxattr, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fgetxattr, 3.4.0) - ssize_t - pub_glfs_fgetxattr(struct glfs_fd *glfd, const char *name, void *value, - size_t size) -@@ -4412,8 +4331,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fgetxattr, 3.4.0); -- - int - glfs_listxattr_process(void *value, size_t size, dict_t *xattr) - { -@@ -4497,22 +4414,21 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_listxattr, 3.4.0) - ssize_t - pub_glfs_listxattr(struct glfs *fs, const char *path, void *value, size_t size) - { - return glfs_listxattr_common(fs, path, value, size, 1); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_listxattr, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_llistxattr, 3.4.0) - ssize_t - pub_glfs_llistxattr(struct glfs *fs, const char *path, void *value, size_t size) - { - return glfs_listxattr_common(fs, path, value, size, 0); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_llistxattr, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_flistxattr, 3.4.0) - ssize_t - pub_glfs_flistxattr(struct glfs_fd *glfd, void *value, size_t size) - { -@@ -4562,8 +4478,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_flistxattr, 3.4.0); -- - int - glfs_setxattr_common(struct glfs *fs, const char *path, const char *name, - const void *value, size_t size, int flags, int follow) -@@ -4643,6 +4557,7 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setxattr, 3.4.0) - int - pub_glfs_setxattr(struct glfs *fs, const char *path, const char *name, - const void *value, size_t size, int flags) -@@ -4650,8 +4565,7 @@ pub_glfs_setxattr(struct glfs *fs, const char *path, const char *name, - return glfs_setxattr_common(fs, path, name, value, size, flags, 1); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setxattr, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lsetxattr, 3.4.0) - int - pub_glfs_lsetxattr(struct glfs *fs, const char *path, const char *name, - const void *value, size_t size, int flags) -@@ -4659,8 +4573,7 @@ pub_glfs_lsetxattr(struct glfs *fs, const char *path, const char *name, - return glfs_setxattr_common(fs, path, name, value, size, flags, 0); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lsetxattr, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetxattr, 3.4.0) - int - pub_glfs_fsetxattr(struct glfs_fd *glfd, const char *name, const void *value, - size_t size, int flags) -@@ -4735,8 +4648,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsetxattr, 3.4.0); -- - int - glfs_removexattr_common(struct glfs *fs, const char *path, const char *name, - int follow) -@@ -4787,22 +4698,21 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_removexattr, 3.4.0) - int - pub_glfs_removexattr(struct glfs *fs, const char *path, const char *name) - { - return glfs_removexattr_common(fs, path, name, 1); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_removexattr, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lremovexattr, 3.4.0) - int - pub_glfs_lremovexattr(struct glfs *fs, const char *path, const char *name) - { - return glfs_removexattr_common(fs, path, name, 0); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lremovexattr, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fremovexattr, 3.4.0) - int - pub_glfs_fremovexattr(struct glfs_fd *glfd, const char *name) - { -@@ -4845,8 +4755,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fremovexattr, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fallocate, 3.5.0) - int - pub_glfs_fallocate(struct glfs_fd *glfd, int keep_size, off_t offset, - size_t len) -@@ -4897,8 +4806,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fallocate, 3.5.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard, 3.5.0) - int - pub_glfs_discard(struct glfs_fd *glfd, off_t offset, size_t len) - { -@@ -4948,8 +4856,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard, 3.5.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill, 3.5.0) - int - pub_glfs_zerofill(struct glfs_fd *glfd, off_t offset, off_t len) - { -@@ -4997,8 +4904,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill, 3.5.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chdir, 3.4.0) - int - pub_glfs_chdir(struct glfs *fs, const char *path) - { -@@ -5048,8 +4954,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_chdir, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchdir, 3.4.0) - int - pub_glfs_fchdir(struct glfs_fd *glfd) - { -@@ -5101,8 +5006,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fchdir, 3.4.0); -- - static gf_boolean_t warn_realpath = _gf_true; /* log once */ - - static char * -@@ -5185,22 +5088,21 @@ invalid_fs: - return retpath; - } - -+GFAPI_SYMVER_PUBLIC(glfs_realpath34, glfs_realpath, 3.4.0) - char * - pub_glfs_realpath34(struct glfs *fs, const char *path, char *resolved_path) - { - return glfs_realpath_common(fs, path, resolved_path, _gf_true); - } - --GFAPI_SYMVER_PUBLIC(glfs_realpath34, glfs_realpath, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_realpath, 3.7.17) - char * - pub_glfs_realpath(struct glfs *fs, const char *path, char *resolved_path) - { - return glfs_realpath_common(fs, path, resolved_path, _gf_false); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_realpath, 3.7.17); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getcwd, 3.4.0) - char * - pub_glfs_getcwd(struct glfs *fs, char *buf, size_t n) - { -@@ -5249,8 +5151,6 @@ invalid_fs: - return buf; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_getcwd, 3.4.0); -- - static void - gf_flock_to_flock(struct gf_flock *gf_flock, struct flock *flock) - { -@@ -5357,6 +5257,7 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_file_lock, 4.0.0) - int - pub_glfs_file_lock(struct glfs_fd *glfd, int cmd, struct flock *flock, - glfs_lock_mode_t lk_mode) -@@ -5393,16 +5294,14 @@ out: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_file_lock, 4.0.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_posix_lock, 3.4.0) - int - pub_glfs_posix_lock(struct glfs_fd *glfd, int cmd, struct flock *flock) - { - return glfs_lock_common(glfd, cmd, flock, NULL); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_posix_lock, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fd_set_lkowner, 3.10.7) - int - pub_glfs_fd_set_lkowner(struct glfs_fd *glfd, void *data, int len) - { -@@ -5438,8 +5337,8 @@ out: - invalid_fs: - return ret; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fd_set_lkowner, 3.10.7); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_dup, 3.4.0) - struct glfs_fd * - pub_glfs_dup(struct glfs_fd *glfd) - { -@@ -5490,8 +5389,6 @@ invalid_fs: - return dupfd; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_dup, 3.4.0); -- - static void - glfs_enqueue_upcall_data(struct glfs *fs, struct gf_upcall *upcall_data) - { -@@ -5976,6 +5873,7 @@ out: - * Otherwise all the upcall events are queued up in a list - * to be read/polled by the applications. - */ -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_process_upcall_event, 3.7.0) - void - priv_glfs_process_upcall_event(struct glfs *fs, void *data) - { -@@ -6043,7 +5941,6 @@ out: - err: - return; - } --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_process_upcall_event, 3.7.0); - - ssize_t - glfs_anonymous_pwritev(struct glfs *fs, struct glfs_object *object, -@@ -6229,6 +6126,7 @@ glfs_release_xreaddirp_stat(void *ptr) - * Given glfd of a directory, this function does readdirp and returns - * xstat along with dirents. - */ -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_r, 3.11.0) - int - pub_glfs_xreaddirplus_r(struct glfs_fd *glfd, uint32_t flags, - struct glfs_xreaddirp_stat **xstat_p, -@@ -6337,8 +6235,8 @@ out: - invalid_fs: - return -1; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_r, 3.11.0); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_stat, 3.11.0) - struct stat * - pub_glfs_xreaddirplus_get_stat(struct glfs_xreaddirp_stat *xstat) - { -@@ -6354,7 +6252,6 @@ pub_glfs_xreaddirplus_get_stat(struct glfs_xreaddirp_stat *xstat) - out: - return NULL; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_stat, 3.11.0); - - void - gf_lease_to_glfs_lease(struct gf_lease *gf_lease, struct glfs_lease *lease) -@@ -6374,6 +6271,7 @@ glfs_lease_to_gf_lease(struct glfs_lease *lease, struct gf_lease *gf_lease) - memcpy(gf_lease->lease_id, lease->lease_id, LEASE_ID_SIZE); - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lease, 4.0.0) - int - pub_glfs_lease(struct glfs_fd *glfd, struct glfs_lease *lease, - glfs_recall_cbk fn, void *data) -@@ -6475,5 +6373,3 @@ out: - invalid_fs: - return ret; - } -- --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lease, 4.0.0); -diff --git a/api/src/glfs-handleops.c b/api/src/glfs-handleops.c -index cdac07124..53c2ee896 100644 ---- a/api/src/glfs-handleops.c -+++ b/api/src/glfs-handleops.c -@@ -60,6 +60,7 @@ glfs_iatt_from_stat(struct stat *stat, int valid, struct iatt *iatt, - return; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lookupat, 3.7.4) - struct glfs_object * - pub_glfs_h_lookupat(struct glfs *fs, struct glfs_object *parent, - const char *path, struct stat *stat, int follow) -@@ -126,8 +127,7 @@ invalid_fs: - return object; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lookupat, 3.7.4); -- -+GFAPI_SYMVER_PUBLIC(glfs_h_lookupat34, glfs_h_lookupat, 3.4.2) - struct glfs_object * - pub_glfs_h_lookupat34(struct glfs *fs, struct glfs_object *parent, - const char *path, struct stat *stat) -@@ -135,8 +135,7 @@ pub_glfs_h_lookupat34(struct glfs *fs, struct glfs_object *parent, - return pub_glfs_h_lookupat(fs, parent, path, stat, 0); - } - --GFAPI_SYMVER_PUBLIC(glfs_h_lookupat34, glfs_h_lookupat, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_statfs, 3.7.0) - int - pub_glfs_h_statfs(struct glfs *fs, struct glfs_object *object, - struct statvfs *statvfs) -@@ -194,8 +193,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_statfs, 3.7.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_stat, 3.4.2) - int - pub_glfs_h_stat(struct glfs *fs, struct glfs_object *object, struct stat *stat) - { -@@ -259,8 +257,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_stat, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getattrs, 3.4.2) - int - pub_glfs_h_getattrs(struct glfs *fs, struct glfs_object *object, - struct stat *stat) -@@ -317,8 +314,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getattrs, 3.4.2); -- - int - glfs_h_getxattrs_common(struct glfs *fs, struct glfs_object *object, - dict_t **xattr, const char *name, -@@ -380,6 +375,7 @@ out: - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getxattrs, 3.5.1) - int - pub_glfs_h_getxattrs(struct glfs *fs, struct glfs_object *object, - const char *name, void *value, size_t size) -@@ -416,8 +412,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_getxattrs, 3.5.1); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setattrs, 3.4.2) - int - pub_glfs_h_setattrs(struct glfs *fs, struct glfs_object *object, - struct stat *stat, int valid) -@@ -480,8 +475,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setattrs, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setxattrs, 3.5.0) - int - pub_glfs_h_setxattrs(struct glfs *fs, struct glfs_object *object, - const char *name, const void *value, size_t size, -@@ -568,8 +562,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_setxattrs, 3.5.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_removexattrs, 3.5.1) - int - pub_glfs_h_removexattrs(struct glfs *fs, struct glfs_object *object, - const char *name) -@@ -626,8 +619,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_removexattrs, 3.5.1); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_open, 3.4.2) - struct glfs_fd * - pub_glfs_h_open(struct glfs *fs, struct glfs_object *object, int flags) - { -@@ -727,8 +719,7 @@ invalid_fs: - return glfd; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_open, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat, 3.4.2) - struct glfs_object * - pub_glfs_h_creat(struct glfs *fs, struct glfs_object *parent, const char *path, - int flags, mode_t mode, struct stat *stat) -@@ -840,8 +831,7 @@ invalid_fs: - return object; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat_open, 6.6) - struct glfs_object * - pub_glfs_h_creat_open(struct glfs *fs, struct glfs_object *parent, - const char *path, int flags, mode_t mode, -@@ -975,8 +965,7 @@ invalid_fs: - return object; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_creat_open, 6.6); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mkdir, 3.4.2) - struct glfs_object * - pub_glfs_h_mkdir(struct glfs *fs, struct glfs_object *parent, const char *path, - mode_t mode, struct stat *stat) -@@ -1074,8 +1063,7 @@ invalid_fs: - return object; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mkdir, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mknod, 3.4.2) - struct glfs_object * - pub_glfs_h_mknod(struct glfs *fs, struct glfs_object *parent, const char *path, - mode_t mode, dev_t dev, struct stat *stat) -@@ -1172,8 +1160,7 @@ invalid_fs: - return object; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_mknod, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_unlink, 3.4.2) - int - pub_glfs_h_unlink(struct glfs *fs, struct glfs_object *parent, const char *path) - { -@@ -1244,8 +1231,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_unlink, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_opendir, 3.4.2) - struct glfs_fd * - pub_glfs_h_opendir(struct glfs *fs, struct glfs_object *object) - { -@@ -1327,8 +1313,7 @@ invalid_fs: - return glfd; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_opendir, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_access, 3.6.0) - int - pub_glfs_h_access(struct glfs *fs, struct glfs_object *object, int mask) - { -@@ -1385,8 +1370,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_access, 3.6.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_extract_handle, 3.4.2) - ssize_t - pub_glfs_h_extract_handle(struct glfs_object *object, unsigned char *handle, - int len) -@@ -1417,8 +1401,7 @@ out: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_extract_handle, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_create_from_handle, 3.4.2) - struct glfs_object * - pub_glfs_h_create_from_handle(struct glfs *fs, unsigned char *handle, int len, - struct stat *stat) -@@ -1541,8 +1524,7 @@ invalid_fs: - return object; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_create_from_handle, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_close, 3.4.2) - int - pub_glfs_h_close(struct glfs_object *object) - { -@@ -1555,8 +1537,7 @@ pub_glfs_h_close(struct glfs_object *object) - return 0; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_close, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_truncate, 3.4.2) - int - pub_glfs_h_truncate(struct glfs *fs, struct glfs_object *object, off_t offset) - { -@@ -1616,8 +1597,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_truncate, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_symlink, 3.4.2) - struct glfs_object * - pub_glfs_h_symlink(struct glfs *fs, struct glfs_object *parent, - const char *name, const char *data, struct stat *stat) -@@ -1716,8 +1696,7 @@ invalid_fs: - return object; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_symlink, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_readlink, 3.4.2) - int - pub_glfs_h_readlink(struct glfs *fs, struct glfs_object *object, char *buf, - size_t bufsiz) -@@ -1782,8 +1761,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_readlink, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_link, 3.4.2) - int - pub_glfs_h_link(struct glfs *fs, struct glfs_object *linksrc, - struct glfs_object *parent, const char *name) -@@ -1880,8 +1858,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_link, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_rename, 3.4.2) - int - pub_glfs_h_rename(struct glfs *fs, struct glfs_object *olddir, - const char *oldname, struct glfs_object *newdir, -@@ -1991,8 +1968,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_rename, 3.4.2); -- - /* - * Given a handle/gfid, find if the corresponding inode is present in - * the inode table. If yes create and return the corresponding glfs_object. -@@ -2200,6 +2175,7 @@ glfs_release_upcall(void *ptr) - * calling glfs_fini(..). Hence making an assumption that 'fs' & ctx structures - * cannot be freed while in this routine. - */ -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_poll_upcall, 3.7.16) - int - pub_glfs_h_poll_upcall(struct glfs *fs, struct glfs_upcall **up_arg) - { -@@ -2317,8 +2293,6 @@ err: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_poll_upcall, 3.7.16); -- - static gf_boolean_t log_upcall370 = _gf_true; /* log once */ - - /* The old glfs_h_poll_upcall interface requires intimate knowledge of the -@@ -2332,6 +2306,7 @@ static gf_boolean_t log_upcall370 = _gf_true; /* log once */ - * - * WARNING: this function will be removed in the future. - */ -+GFAPI_SYMVER_PUBLIC(glfs_h_poll_upcall370, glfs_h_poll_upcall, 3.7.0) - int - pub_glfs_h_poll_upcall370(struct glfs *fs, struct glfs_callback_arg *up_arg) - { -@@ -2399,12 +2374,11 @@ out: - return ret; - } - --GFAPI_SYMVER_PUBLIC(glfs_h_poll_upcall370, glfs_h_poll_upcall, 3.7.0); -- - #ifdef HAVE_ACL_LIBACL_H - #include - #include - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_set, 3.7.0) - int - pub_glfs_h_acl_set(struct glfs *fs, struct glfs_object *object, - const acl_type_t type, const acl_t acl) -@@ -2453,6 +2427,7 @@ invalid_fs: - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_get, 3.7.0) - acl_t - pub_glfs_h_acl_get(struct glfs *fs, struct glfs_object *object, - const acl_type_t type) -@@ -2507,6 +2482,7 @@ invalid_fs: - return acl; - } - #else /* !HAVE_ACL_LIBACL_H */ -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_get, 3.7.0) - acl_t - pub_glfs_h_acl_get(struct glfs *fs, struct glfs_object *object, - const acl_type_t type) -@@ -2515,6 +2491,7 @@ pub_glfs_h_acl_get(struct glfs *fs, struct glfs_object *object, - return NULL; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_set, 3.7.0) - int - pub_glfs_h_acl_set(struct glfs *fs, struct glfs_object *object, - const acl_type_t type, const acl_t acl) -@@ -2523,10 +2500,9 @@ pub_glfs_h_acl_set(struct glfs *fs, struct glfs_object *object, - return -1; - } - #endif --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_set, 3.7.0); --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_acl_get, 3.7.0); - - /* The API to perform read using anonymous fd */ -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_read, 3.7.0) - ssize_t - pub_glfs_h_anonymous_read(struct glfs *fs, struct glfs_object *object, - const void *buf, size_t count, off_t offset) -@@ -2550,9 +2526,8 @@ pub_glfs_h_anonymous_read(struct glfs *fs, struct glfs_object *object, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_read, 3.7.0); -- - /* The API to perform write using anonymous fd */ -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_write, 3.7.0) - ssize_t - pub_glfs_h_anonymous_write(struct glfs *fs, struct glfs_object *object, - const void *buf, size_t count, off_t offset) -@@ -2576,8 +2551,7 @@ pub_glfs_h_anonymous_write(struct glfs *fs, struct glfs_object *object, - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_anonymous_write, 3.7.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_object_copy, 3.11.0) - struct glfs_object * - pub_glfs_object_copy(struct glfs_object *src) - { -@@ -2599,8 +2573,8 @@ pub_glfs_object_copy(struct glfs_object *src) - out: - return object; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_object_copy, 3.11.0); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_object, 3.11.0) - struct glfs_object * - pub_glfs_xreaddirplus_get_object(struct glfs_xreaddirp_stat *xstat) - { -@@ -2616,8 +2590,8 @@ pub_glfs_xreaddirplus_get_object(struct glfs_xreaddirp_stat *xstat) - out: - return NULL; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_xreaddirplus_get_object, 3.11.0); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lease, 4.0.0) - int - pub_glfs_h_lease(struct glfs *fs, struct glfs_object *object, - struct glfs_lease *lease) -@@ -2679,5 +2653,3 @@ out: - invalid_fs: - return ret; - } -- --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_h_lease, 4.0.0); -diff --git a/api/src/glfs-internal.h b/api/src/glfs-internal.h -index 2a50e1d46..7cc3b18a1 100644 ---- a/api/src/glfs-internal.h -+++ b/api/src/glfs-internal.h -@@ -81,25 +81,40 @@ - #ifndef GFAPI_PRIVATE - #define GFAPI_PRIVATE(sym, ver) /**/ - #endif -+#if __GNUC__ >= 10 - #define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, ver) \ -- asm(".symver pub_" STR(fn) ", " STR(fn) "@@GFAPI_" STR(ver)) -+ __attribute__((__symver__(STR(fn) "@@GFAPI_" STR(ver)))) - - #define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, ver) \ -- asm(".symver priv_" STR(fn) ", " STR(fn) "@@GFAPI_PRIVATE_" STR(ver)) -+ __attribute__((__symver__(STR(fn) "@@GFAPI_PRIVATE_" STR(ver)))) - - #define GFAPI_SYMVER_PUBLIC(fn1, fn2, ver) \ -- asm(".symver pub_" STR(fn1) ", " STR(fn2) "@GFAPI_" STR(ver)) -+ __attribute__((__symver__(STR(fn2) "@GFAPI_" STR(ver)))) - - #define GFAPI_SYMVER_PRIVATE(fn1, fn2, ver) \ -- asm(".symver priv_" STR(fn1) ", " STR(fn2) "@GFAPI_PRIVATE_" STR(ver)) -+ __attribute__((__symver__(STR(fn2) "@GFAPI_PRIVATE_" STR(ver)))) -+ -+#else -+#define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, ver) \ -+ asm(".symver pub_" STR(fn) ", " STR(fn) "@@GFAPI_" STR(ver)); -+ -+#define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, ver) \ -+ asm(".symver priv_" STR(fn) ", " STR(fn) "@@GFAPI_PRIVATE_" STR(ver)); -+ -+#define GFAPI_SYMVER_PUBLIC(fn1, fn2, ver) \ -+ asm(".symver pub_" STR(fn1) ", " STR(fn2) "@GFAPI_" STR(ver)); -+ -+#define GFAPI_SYMVER_PRIVATE(fn1, fn2, ver) \ -+ asm(".symver priv_" STR(fn1) ", " STR(fn2) "@GFAPI_PRIVATE_" STR(ver)); -+#endif - #define STR(str) #str - #else - #ifndef GFAPI_PUBLIC --#define GFAPI_PUBLIC(sym, ver) __asm("_" __STRING(sym) "$GFAPI_" __STRING(ver)) -+#define GFAPI_PUBLIC(sym, ver) __asm("_" __STRING(sym) "$GFAPI_" __STRING(ver)); - #endif - #ifndef GFAPI_PRIVATE - #define GFAPI_PRIVATE(sym, ver) \ -- __asm("_" __STRING(sym) "$GFAPI_PRIVATE_" __STRING(ver)) -+ __asm("_" __STRING(sym) "$GFAPI_PRIVATE_" __STRING(ver)); - #endif - #define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, dotver) /**/ - #define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, dotver) /**/ -diff --git a/api/src/glfs-mgmt.c b/api/src/glfs-mgmt.c -index 7271e35ec..08df2b1a4 100644 ---- a/api/src/glfs-mgmt.c -+++ b/api/src/glfs-mgmt.c -@@ -364,6 +364,7 @@ out: - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volumeid, 3.5.0) - int - pub_glfs_get_volumeid(struct glfs *fs, char *volid, size_t size) - { -@@ -418,8 +419,6 @@ invalid_fs: - return -1; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volumeid, 3.5.0); -- - int - glfs_get_volume_info(struct glfs *fs) - { -diff --git a/api/src/glfs-resolve.c b/api/src/glfs-resolve.c -index 7b60eef00..8a393ecb4 100644 ---- a/api/src/glfs-resolve.c -+++ b/api/src/glfs-resolve.c -@@ -162,6 +162,7 @@ __glfs_refresh_inode(struct glfs *fs, xlator_t *subvol, inode_t *inode, - return newinode; - } - -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_loc_touchup, 3.4.0) - int - priv_glfs_loc_touchup(loc_t *loc) - { -@@ -176,8 +177,6 @@ priv_glfs_loc_touchup(loc_t *loc) - return ret; - } - --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_loc_touchup, 3.4.0); -- - int - glfs_resolve_symlink(struct glfs *fs, xlator_t *subvol, inode_t *inode, - char **lpath) -@@ -467,6 +466,7 @@ out: - return inode; - } - -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve_at, 3.4.0) - int - priv_glfs_resolve_at(struct glfs *fs, xlator_t *subvol, inode_t *at, - const char *origpath, loc_t *loc, struct iatt *iatt, -@@ -617,8 +617,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve_at, 3.4.0); -- - int - glfs_resolve_path(struct glfs *fs, xlator_t *subvol, const char *origpath, - loc_t *loc, struct iatt *iatt, int follow, int reval) -@@ -647,6 +645,7 @@ out: - return ret; - } - -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve, 3.7.0) - int - priv_glfs_resolve(struct glfs *fs, xlator_t *subvol, const char *origpath, - loc_t *loc, struct iatt *iatt, int reval) -@@ -657,7 +656,6 @@ priv_glfs_resolve(struct glfs *fs, xlator_t *subvol, const char *origpath, - - return ret; - } --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_resolve, 3.7.0); - - int - glfs_lresolve(struct glfs *fs, xlator_t *subvol, const char *origpath, -@@ -978,6 +976,7 @@ __glfs_active_subvol(struct glfs *fs) - return new_subvol; - } - -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_subvol_done, 3.4.0) - void - priv_glfs_subvol_done(struct glfs *fs, xlator_t *subvol) - { -@@ -1005,8 +1004,7 @@ priv_glfs_subvol_done(struct glfs *fs, xlator_t *subvol) - } - } - --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_subvol_done, 3.4.0); -- -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_active_subvol, 3.4.0) - xlator_t * - priv_glfs_active_subvol(struct glfs *fs) - { -@@ -1034,8 +1032,6 @@ priv_glfs_active_subvol(struct glfs *fs) - return subvol; - } - --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_active_subvol, 3.4.0); -- - int - __glfs_cwd_set(struct glfs *fs, inode_t *inode) - { -diff --git a/api/src/glfs.c b/api/src/glfs.c -index 93e0938b8..5259356b4 100644 ---- a/api/src/glfs.c -+++ b/api/src/glfs.c -@@ -275,6 +275,7 @@ out: - - /////////////////////////////////////////////////////////////////////////////// - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_xlator_option, 3.4.0) - int - pub_glfs_set_xlator_option(struct glfs *fs, const char *xlator, const char *key, - const char *value) -@@ -324,8 +325,7 @@ invalid_fs: - return -1; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_xlator_option, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unset_volfile_server, 3.5.1) - int - pub_glfs_unset_volfile_server(struct glfs *fs, const char *transport, - const char *host, const int port) -@@ -385,8 +385,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_unset_volfile_server, 3.5.1); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile_server, 3.4.0) - int - pub_glfs_set_volfile_server(struct glfs *fs, const char *transport, - const char *host, int port) -@@ -465,8 +464,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile_server, 3.4.0); -- - /* * - * Used to free the arguments allocated by glfs_set_volfile_server() - */ -@@ -509,6 +506,7 @@ glfs_free_xlator_options(cmd_args_t *cmd_args) - } - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsuid, 3.4.2) - int - pub_glfs_setfsuid(uid_t fsuid) - { -@@ -518,8 +516,7 @@ pub_glfs_setfsuid(uid_t fsuid) - return syncopctx_setfsuid(&fsuid); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsuid, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgid, 3.4.2) - int - pub_glfs_setfsgid(gid_t fsgid) - { -@@ -529,8 +526,7 @@ pub_glfs_setfsgid(gid_t fsgid) - return syncopctx_setfsgid(&fsgid); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgid, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgroups, 3.4.2) - int - pub_glfs_setfsgroups(size_t size, const gid_t *list) - { -@@ -540,8 +536,7 @@ pub_glfs_setfsgroups(size_t size, const gid_t *list) - return syncopctx_setfsgroups(size, list); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsgroups, 3.4.2); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsleaseid, 4.0.0) - int - pub_glfs_setfsleaseid(glfs_leaseid_t leaseid) - { -@@ -563,8 +558,6 @@ pub_glfs_setfsleaseid(glfs_leaseid_t leaseid) - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_setfsleaseid, 4.0.0); -- - int - get_fop_attr_glfd(dict_t **fop_attr, struct glfs_fd *glfd) - { -@@ -652,14 +645,14 @@ unset_fop_attr(dict_t **fop_attr) - *fop_attr = NULL; - } - } -+ -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_from_glfd, 3.4.0) - struct glfs * - pub_glfs_from_glfd(struct glfs_fd *glfd) - { - return glfd->fs; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_from_glfd, 3.4.0); -- - static void - glfs_fd_destroy(struct glfs_fd *glfd) - { -@@ -808,6 +801,7 @@ unlock: - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_new, 3.4.0) - struct glfs * - pub_glfs_new(const char *volname) - { -@@ -914,8 +908,7 @@ out: - return fs; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_new, 3.4.0); -- -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_new_from_ctx, 3.7.0) - struct glfs * - priv_glfs_new_from_ctx(glusterfs_ctx_t *ctx) - { -@@ -934,8 +927,7 @@ out: - return fs; - } - --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_new_from_ctx, 3.7.0); -- -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_free_from_ctx, 3.7.0) - void - priv_glfs_free_from_ctx(struct glfs *fs) - { -@@ -971,8 +963,7 @@ priv_glfs_free_from_ctx(struct glfs *fs) - FREE(fs); - } - --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_free_from_ctx, 3.7.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile, 3.4.0) - int - pub_glfs_set_volfile(struct glfs *fs, const char *volfile) - { -@@ -989,8 +980,7 @@ pub_glfs_set_volfile(struct glfs *fs, const char *volfile) - return 0; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_volfile, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_logging, 3.4.0) - int - pub_glfs_set_logging(struct glfs *fs, const char *logfile, int loglevel) - { -@@ -1028,8 +1018,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_logging, 3.4.0); -- - int - glfs_init_wait(struct glfs *fs) - { -@@ -1048,6 +1036,7 @@ glfs_init_wait(struct glfs *fs) - return ret; - } - -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_init_done, 3.4.0) - void - priv_glfs_init_done(struct glfs *fs, int ret) - { -@@ -1078,8 +1067,6 @@ out: - return; - } - --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_init_done, 3.4.0); -- - int - glfs_init_common(struct glfs *fs) - { -@@ -1119,6 +1106,7 @@ glfs_init_async(struct glfs *fs, glfs_init_cbk cbk) - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_init, 3.4.0) - int - pub_glfs_init(struct glfs *fs) - { -@@ -1151,8 +1139,6 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_init, 3.4.0); -- - static int - glusterfs_ctx_destroy(glusterfs_ctx_t *ctx) - { -@@ -1230,6 +1216,7 @@ glusterfs_ctx_destroy(glusterfs_ctx_t *ctx) - return ret; - } - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fini, 3.4.0) - int - pub_glfs_fini(struct glfs *fs) - { -@@ -1420,8 +1407,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fini, 3.4.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volfile, 3.6.0) - ssize_t - pub_glfs_get_volfile(struct glfs *fs, void *buf, size_t len) - { -@@ -1447,8 +1433,7 @@ invalid_fs: - return res; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volfile, 3.6.0); -- -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_ipc, 3.12.0) - int - priv_glfs_ipc(struct glfs *fs, int opcode, void *xd_in, void **xd_out) - { -@@ -1476,8 +1461,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_ipc, 3.12.0); -- -+GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_setfspid, 6.1) - int - priv_glfs_setfspid(struct glfs *fs, pid_t pid) - { -@@ -1491,107 +1475,104 @@ priv_glfs_setfspid(struct glfs *fs, pid_t pid) - - return ret; - } --GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_setfspid, 6.1); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_free, 3.7.16) - void - pub_glfs_free(void *ptr) - { - GLFS_FREE(ptr); - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_free, 3.7.16); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_fs, 3.7.16) - struct glfs * - pub_glfs_upcall_get_fs(struct glfs_upcall *arg) - { - return arg->fs; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_fs, 3.7.16); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_reason, 3.7.16) - enum glfs_upcall_reason - pub_glfs_upcall_get_reason(struct glfs_upcall *arg) - { - return arg->reason; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_reason, 3.7.16); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_event, 3.7.16) - void * - pub_glfs_upcall_get_event(struct glfs_upcall *arg) - { - return arg->event; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_get_event, 3.7.16); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_object, 3.7.16) - struct glfs_object * - pub_glfs_upcall_inode_get_object(struct glfs_upcall_inode *arg) - { - return arg->object; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_object, 3.7.16); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_flags, 3.7.16) - uint64_t - pub_glfs_upcall_inode_get_flags(struct glfs_upcall_inode *arg) - { - return arg->flags; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_flags, 3.7.16); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_stat, 3.7.16) - struct stat * - pub_glfs_upcall_inode_get_stat(struct glfs_upcall_inode *arg) - { - return &arg->buf; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_stat, 3.7.16); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_expire, 3.7.16) - uint64_t - pub_glfs_upcall_inode_get_expire(struct glfs_upcall_inode *arg) - { - return arg->expire_time_attr; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_expire, 3.7.16); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pobject, 3.7.16) - struct glfs_object * - pub_glfs_upcall_inode_get_pobject(struct glfs_upcall_inode *arg) - { - return arg->p_object; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pobject, 3.7.16); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pstat, 3.7.16) - struct stat * - pub_glfs_upcall_inode_get_pstat(struct glfs_upcall_inode *arg) - { - return &arg->p_buf; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_pstat, 3.7.16); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpobject, 3.7.16) - struct glfs_object * - pub_glfs_upcall_inode_get_oldpobject(struct glfs_upcall_inode *arg) - { - return arg->oldp_object; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpobject, 3.7.16); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpstat, 3.7.16) - struct stat * - pub_glfs_upcall_inode_get_oldpstat(struct glfs_upcall_inode *arg) - { - return &arg->oldp_buf; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_inode_get_oldpstat, 3.7.16); - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_object, 4.1.6) - struct glfs_object * - pub_glfs_upcall_lease_get_object(struct glfs_upcall_lease *arg) - { - return arg->object; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_object, 4.1.6); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_lease_type, 4.1.6) - uint32_t - pub_glfs_upcall_lease_get_lease_type(struct glfs_upcall_lease *arg) - { - return arg->lease_type; - } --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_lease_get_lease_type, 4.1.6); - - /* definitions of the GLFS_SYSRQ_* chars are in glfs.h */ - static struct glfs_sysrq_help { -@@ -1601,6 +1582,7 @@ static struct glfs_sysrq_help { - {GLFS_SYSRQ_STATEDUMP, "(S)tatedump"}, - {0, NULL}}; - -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_sysrq, 3.10.0) - int - pub_glfs_sysrq(struct glfs *fs, char sysrq) - { -@@ -1649,8 +1631,7 @@ out: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_sysrq, 3.10.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_register, 3.13.0) - int - pub_glfs_upcall_register(struct glfs *fs, uint32_t event_list, - glfs_upcall_cbk cbk, void *data) -@@ -1706,8 +1687,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_register, 3.13.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_unregister, 3.13.0) - int - pub_glfs_upcall_unregister(struct glfs *fs, uint32_t event_list) - { -@@ -1754,8 +1734,7 @@ invalid_fs: - return ret; - } - --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_upcall_unregister, 3.13.0); -- -+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_statedump_path, 7.0) - int - pub_glfs_set_statedump_path(struct glfs *fs, const char *path) - { -@@ -1815,5 +1794,3 @@ err: - invalid_fs: - return -1; - } -- --GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_set_statedump_path, 7.0); --- -2.26.2 - diff --git a/glusterfs.spec b/glusterfs.spec index 8a8655d..cc9ff5b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -182,8 +182,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 8.0 -Release: 6%{?dev:%{dev}}%{?dist} +Version: 8.1 +Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -200,7 +200,6 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0001: 0001-api-libgfapi-symbol-versions-break-LTO-in-Fedora-raw.patch Patch0002: 0002-rpc-rpc-lib-src-Makefile.am.patch Requires(pre): shadow-utils @@ -774,7 +773,6 @@ This package provides the glusterfs thin-arbiter translator. %prep %setup -q -n %{name}-%{version}%{?dev} -%patch0001 -p1 %patch0002 -p1 %if ( ! %{_usepython3} ) echo "fixing python shebangs..." @@ -1580,6 +1578,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Aug 25 2020 Kaleb S. KEITHLEY - 8.1-1 +- 8.1 GA + * Mon Jul 27 2020 Fedora Release Engineering - 8.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild diff --git a/sources b/sources index e660867..46a2946 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-8.0.tar.gz) = 6af94f31e08e9ba9d1f3f674678553815933f8db58672d4225f855dc47f3290e1ad22f44dbe95856f82120bf195bc2df7dbd02c88e3a27d9363877891c619b58 +SHA512 (glusterfs-8.1.tar.gz) = b95e461a356063350300bd7f89c35ea95036429839a8078ebaae485c3f8fbb960838c55eb80a09e4d9d3c210d123aef05cac68ef31b811ecb88d7772108ebcbf From 219b74fe83dd65497df627b3f392ab81d47dbc54 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 17 Sep 2020 07:07:20 -0400 Subject: [PATCH 264/328] 8.2 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index cc9ff5b..2635562 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -182,7 +182,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 8.1 +Version: 8.2 Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1578,6 +1578,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Sep 17 2020 Kaleb S. KEITHLEY - 8.2-1 +- 8.2 GA + * Tue Aug 25 2020 Kaleb S. KEITHLEY - 8.1-1 - 8.1 GA diff --git a/sources b/sources index 46a2946..68c6db4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-8.1.tar.gz) = b95e461a356063350300bd7f89c35ea95036429839a8078ebaae485c3f8fbb960838c55eb80a09e4d9d3c210d123aef05cac68ef31b811ecb88d7772108ebcbf +SHA512 (glusterfs-8.2.tar.gz) = e11ffd544cdfd55e4309bcf10d9f6d3cb13b3c0beeaf578e024c9b40df19f5bc5dc6965bca1166e96e05e42041093c48772b160952c235f7456f0898594d01d2 From aa94a08b5ef8ace7f563aa1104cde62b7384345b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 5 Nov 2020 09:36:53 -0500 Subject: [PATCH 265/328] 8.2, rdma Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 2635562..049cf3a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -183,7 +183,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 8.2 -Release: 1%{?dev:%{dev}}%{?dist} +Release: 2%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -261,6 +261,7 @@ Obsoletes: %{name}-gnfs <= %{version}-%{release} Obsoletes: %{name}-rdma < %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} +Provides: %{name}-rdma = %{version}-%{release} %description GlusterFS is a distributed file-system capable of scaling to several @@ -797,7 +798,6 @@ sed -i -e 's/--quiet//' configure.ac %{?_without_fusermount} \ %{?_without_georeplication} \ %{?_without_ocf} \ - %{?_without_rdma} \ %{?_without_server} \ %{?_without_syslog} \ %{?_with_ipv6default} \ @@ -1168,9 +1168,6 @@ exit 0 %exclude %{_mandir}/man8/gluster.8* %endif %dir %{_localstatedir}/log/glusterfs -%if ( 0%{!?_without_rdma:1} ) -%exclude %{_libdir}/glusterfs/%{version}%{?dev}/rpc-transport/rdma* -%endif %if ( 0%{!?_without_server:1} ) %dir %{_datadir}/glusterfs %dir %{_datadir}/glusterfs/scripts @@ -1578,6 +1575,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Nov 5 2020 Kaleb S. KEITHLEY - 8.2-2 +- 8.2, rdma + * Thu Sep 17 2020 Kaleb S. KEITHLEY - 8.2-1 - 8.2 GA From 4ef17a069ac78c28c045c57d4f1eef361f4ebfeb Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Tue, 1 Dec 2020 10:56:21 -0500 Subject: [PATCH 266/328] 8.3 GA Signed-off-by: Kaleb S KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 049cf3a..654fc25 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -182,8 +182,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 8.2 -Release: 2%{?dev:%{dev}}%{?dist} +Version: 8.3 +Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1575,6 +1575,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Dec 1 2020 Kaleb S. KEITHLEY - 8.3-1 +- 8.3 GA + * Thu Nov 5 2020 Kaleb S. KEITHLEY - 8.2-2 - 8.2, rdma diff --git a/sources b/sources index 68c6db4..1788560 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-8.2.tar.gz) = e11ffd544cdfd55e4309bcf10d9f6d3cb13b3c0beeaf578e024c9b40df19f5bc5dc6965bca1166e96e05e42041093c48772b160952c235f7456f0898594d01d2 +SHA512 (glusterfs-8.3.tar.gz) = 7ca9d3d8938eb27a7347461a07457e90d1ee6e8d5417970e38245c819cf09bf2ecf9de3954b75edf5cf14816e1059fb381b95935ae1f973ebd14ee7531322aa9 From 634903cc7aec64213cd69a46fb8a7400f5f861a1 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Wed, 6 Jan 2021 11:32:38 -0500 Subject: [PATCH 267/328] 9.0 RC0 Signed-off-by: Kaleb S KEITHLEY --- 0002-rpc-rpc-lib-src-Makefile.am.patch | 12 -- glusterfs.spec | 231 +++++++++++++------------ sources | 2 +- 3 files changed, 126 insertions(+), 119 deletions(-) delete mode 100644 0002-rpc-rpc-lib-src-Makefile.am.patch diff --git a/0002-rpc-rpc-lib-src-Makefile.am.patch b/0002-rpc-rpc-lib-src-Makefile.am.patch deleted file mode 100644 index 4b167fc..0000000 --- a/0002-rpc-rpc-lib-src-Makefile.am.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- glusterfs-8.0/rpc/rpc-lib/src/Makefile.am.orig 2020-07-22 08:09:31.315980869 -0400 -+++ glusterfs-8.0/rpc/rpc-lib/src/Makefile.am 2020-07-22 08:10:12.203980869 -0400 -@@ -2,8 +2,7 @@ - - libgfrpc_la_SOURCES = auth-unix.c rpcsvc-auth.c rpcsvc.c auth-null.c \ - rpc-transport.c xdr-rpc.c xdr-rpcclnt.c rpc-clnt.c auth-glusterfs.c \ -- rpc-drc.c $(CONTRIBDIR)/sunrpc/xdr_sizeof.c rpc-clnt-ping.c \ -- autoscale-threads.c mgmt-pmap.c -+ rpc-drc.c rpc-clnt-ping.c autoscale-threads.c mgmt-pmap.c - - EXTRA_DIST = libgfrpc.sym - diff --git a/glusterfs.spec b/glusterfs.spec index 654fc25..5b42c60 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,10 +4,10 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the %%dev for pre-releases -# %%global dev rc0 +%global prereltag rc0 ##----------------------------------------------------------------------------- -## All argument definitions should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## # asan @@ -108,9 +108,15 @@ %{?_with_valgrind:%global _with_valgrind --enable-valgrind} ##----------------------------------------------------------------------------- -## All %%global definitions should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## +# selinux booleans whose default value needs modification +# these booleans will be consumed by "%%selinux_set_booleans" macro. +%if ( 0%{?rhel} && 0%{?rhel} >= 8 ) +%global selinuxbooleans rsync_full_access=1 rsync_client=1 +%endif + %if ( 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) %global _with_firewalld --enable-firewalld %endif @@ -137,13 +143,6 @@ %global _pythonver 2 %endif -# From https://fedoraproject.org/wiki/Packaging:Python#Macros -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -%{!?python2_sitelib: %global python2_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%{!?python2_sitearch: %global python2_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} -%global _rundir %{_localstatedir}/run -%endif - %global service_start() /bin/systemctl --quiet start %1.service || : \ %{nil} %global service_stop() /bin/systemctl --quiet stop %1.service || :\ @@ -177,13 +176,13 @@ ##----------------------------------------------------------------------------- -## All package definitions should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 8.3 -Release: 1%{?dev:%{dev}}%{?dist} +Version: 9.0 +Release: 0.1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -192,7 +191,7 @@ Release: 0.@PACKAGE_RELEASE@%{?dist}.4 License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://download.gluster.org/pub/gluster/%{name}/LATEST/%{version}%{?dev}/%{name}-%{version}%{?dev}.tar.gz +Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source7: glusterfsd.service @@ -200,7 +199,6 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0002: 0002-rpc-rpc-lib-src-Makefile.am.patch Requires(pre): shadow-utils BuildRequires: systemd @@ -384,7 +382,7 @@ It borrows a powerful concept called Translators from GNU Hurd kernel. Much of the code in GlusterFS is in user space and easily manageable. This package provides support to FUSE based clients and includes the -glusterfsd and glusterfs binaries. +glusterfs and glusterfsd binaries. %if ( 0%{!?_without_server:1} ) %package ganesha @@ -438,7 +436,20 @@ Requires: %{name}-server = %{version}-%{release} Requires: python%{_pythonver} Requires: python%{_pythonver}-prettytable Requires: python%{_pythonver}-gluster = %{version}-%{release} + Requires: rsync +Requires: util-linux +%if ( 0%{?rhel} && ( ( 0%{?rhel} == 8 && 0%{?rhel_minor_version} >= 3 ) || 0%{?rhel} >= 9 ) ) +Requires: tar +%endif +# required for setting selinux bools +%if ( 0%{?rhel} && 0%{?rhel} >= 8 ) +Requires(post): policycoreutils-python-utils +Requires(postun): policycoreutils-python-utils +Requires: selinux-policy-targeted +Requires(post): selinux-policy-targeted +BuildRequires: selinux-policy-devel +%endif %description geo-replication GlusterFS is a distributed file-system capable of scaling to several @@ -712,6 +723,9 @@ Requires: %{name} = %{version}-%{release} Requires: libglusterfs0%{?_isa} = %{version}-%{release} Requires: libgfchangelog0%{?_isa} = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} +%if ( 0%{?fedora} && 0%{?fedora} >= 30 || ( 0%{?rhel} && 0%{?rhel} >= 8 ) ) +# Requires: %%{name}-selinux >= 0.1.0-2 +%endif # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse Requires: %{name}-fuse = %{version}-%{release} # self-heal daemon, rebalance, nfs-server etc. are actually clients @@ -773,8 +787,7 @@ functionality, and also few other scripts required for setup. This package provides the glusterfs thin-arbiter translator. %prep -%setup -q -n %{name}-%{version}%{?dev} -%patch0002 -p1 +%setup -q -n %{name}-%{version}%{?prereltag} %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do @@ -855,7 +868,7 @@ head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog More commit messages for this ChangeLog can be found at -https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?dev} +https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prereltag} EOM # Remove benchmarking and other unpackaged files @@ -931,7 +944,7 @@ install -p -m 0755 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster ##----------------------------------------------------------------------------- -## All %%post should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## %post %{?ldconfig} @@ -971,6 +984,9 @@ exit 0 %if ( 0%{!?_without_georeplication:1} ) %post geo-replication +%if ( 0%{?rhel} && 0%{?rhel} >= 8 ) +%selinux_set_booleans %{selinuxbooleans} +%endif if [ $1 -ge 1 ]; then %systemd_postun_with_restart glusterd fi @@ -1055,7 +1071,7 @@ exit 0 %endif ##----------------------------------------------------------------------------- -## All %%pre should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## %pre getent group gluster > /dev/null || groupadd -r gluster @@ -1063,7 +1079,7 @@ getent passwd gluster > /dev/null || useradd -r -g gluster -d %{_rundir}/gluster exit 0 ##----------------------------------------------------------------------------- -## All %%preun should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## %if ( 0%{!?_without_events:1} ) %preun events @@ -1106,7 +1122,7 @@ if [ $1 -eq 0 ]; then fi ##----------------------------------------------------------------------------- -## All %%postun should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## %postun %{?ldconfig} @@ -1135,7 +1151,7 @@ exit 0 %endif ##----------------------------------------------------------------------------- -## All %%trigger should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## %if ( 0%{!?_without_server:1} ) %if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) @@ -1146,7 +1162,7 @@ exit 0 %endif ##----------------------------------------------------------------------------- -## All %%triggerun should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## %if ( 0%{!?_without_server:1} ) %if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) @@ -1157,7 +1173,7 @@ exit 0 %endif ##----------------------------------------------------------------------------- -## All %%files should be placed here and keep them sorted by groups +## All package definitions should be placed here in alphabetical order ## %files %{!?_licensedir:%global license %%doc} @@ -1176,46 +1192,46 @@ exit 0 %endif # xlators that are needed on the client- and on the server-side %dir %{_libdir}/glusterfs -%dir %{_libdir}/glusterfs/%{version}%{?dev} -%dir %{_libdir}/glusterfs/%{version}%{?dev}/auth - %{_libdir}/glusterfs/%{version}%{?dev}/auth/addr.so - %{_libdir}/glusterfs/%{version}%{?dev}/auth/login.so -%dir %{_libdir}/glusterfs/%{version}%{?dev}/rpc-transport - %{_libdir}/glusterfs/%{version}%{?dev}/rpc-transport/socket.so -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug/error-gen.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug/delay-gen.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug/io-stats.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug/sink.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug/trace.so -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/access-control.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/barrier.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/cdc.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/changelog.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/utime.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/gfid-access.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/namespace.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/read-only.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/shard.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/snapview-client.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/worm.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/cloudsync.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/meta.so -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/io-cache.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/io-threads.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/md-cache.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/open-behind.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/quick-read.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/read-ahead.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/readdir-ahead.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/stat-prefetch.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/write-behind.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/nl-cache.so -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/system - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/system/posix-acl.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag} +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/auth + %{_libdir}/glusterfs/%{version}%{?prereltag}/auth/addr.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/auth/login.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport + %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/socket.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/error-gen.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/delay-gen.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/utime.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/namespace.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-client.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/worm.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cloudsync.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/meta.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-cache.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-threads.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/md-cache.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/open-behind.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/quick-read.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/read-ahead.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/readdir-ahead.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/nl-cache.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so %dir %attr(0775,gluster,gluster) %{_rundir}/gluster %dir %attr(0775,gluster,gluster) %{_rundir}/gluster/metrics %if 0%{?_tmpfilesdir:1} && 0%{!?_without_server:1} @@ -1235,15 +1251,15 @@ exit 0 %{_sysconfdir}/bash_completion.d/gluster %files client-xlators -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/cluster - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/cluster/*.so -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/protocol -%{_libdir}/glusterfs/%{version}%{?dev}/xlator/protocol/client.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so %files cloudsync-plugins -%dir %{_libdir}/glusterfs/%{version}%{?dev}/cloudsync-plugins - %{_libdir}/glusterfs/%{version}%{?dev}/cloudsync-plugins/cloudsyncs3.so - %{_libdir}/glusterfs/%{version}%{?dev}/cloudsync-plugins/cloudsynccvlt.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins + %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsynccvlt.so %files -n libglusterfs-devel %dir %{_includedir}/glusterfs @@ -1289,18 +1305,18 @@ exit 0 %endif %files extra-xlators -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/quiesce.so -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/playground - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/playground/template.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground/template.so %files fuse # glusterfs is a symlink to glusterfsd, -server depends on -fuse. %{_sbindir}/glusterfs %{_sbindir}/glusterfsd %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mount - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mount/fuse.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so /sbin/mount.glusterfs %if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs @@ -1308,8 +1324,8 @@ exit 0 %if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} ) %files gnfs -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/nfs - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/nfs/* +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/* %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/nfs-server.vol %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run @@ -1426,7 +1442,7 @@ exit 0 %exclude %{_sharedstatedir}/glusterd/nfs/nfs-server.vol %exclude %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %if ( 0%{?_with_gnfs:1} ) -%exclude %{_libdir}/glusterfs/%{version}%{?dev}/xlator/nfs/* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/* %endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %if ( 0%{_for_fedora_koji_builds} ) @@ -1452,27 +1468,27 @@ exit 0 # Manpages %{_mandir}/man8/gluster-setgfid2path.8* -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/arbiter.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/bit-rot.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/bitrot-stub.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/sdfs.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/index.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/locks.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/posix* - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/snapview-server.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/marker.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/quota* - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/selinux.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/trash.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/upcall.so - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/leases.so -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mgmt - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mgmt/glusterd.so -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/protocol - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/protocol/server.so -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/storage - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/storage/posix.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/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 + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/index.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-server.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota* + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/selinux.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/upcall.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/leases.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt/glusterd.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/posix.so # snap_scheduler %{_sbindir}/snap_scheduler.py @@ -1566,15 +1582,18 @@ exit 0 %endif %files thin-arbiter -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/thin-arbiter.so +%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 %{_unitdir}/gluster-ta-volume.service %changelog +* Wed Jan 6 2021 Kaleb S. KEITHLEY - 9.0-0.1 +- 9.0 RC0 + * Tue Dec 1 2020 Kaleb S. KEITHLEY - 8.3-1 - 8.3 GA diff --git a/sources b/sources index 1788560..cb47d57 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-8.3.tar.gz) = 7ca9d3d8938eb27a7347461a07457e90d1ee6e8d5417970e38245c819cf09bf2ecf9de3954b75edf5cf14816e1059fb381b95935ae1f973ebd14ee7531322aa9 +SHA512 (glusterfs-9.0rc0.tar.gz) = f2dcb0f53cd0a8729734f8f980cba32a9b3c5d6add4f27bc35ceb09122b6bac016279eeb0e0c00b2d10f5590f3dac06f9f8470835c111e8b52849ede415a835e From 1601bef457273bdd3e76fb51c7441129df095c81 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Thu, 7 Jan 2021 08:27:56 -0500 Subject: [PATCH 268/328] 9.0 RC0, fuse3 Signed-off-by: Kaleb S KEITHLEY --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 5b42c60..142084d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -182,7 +182,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.0 -Release: 0.1%{?prereltag:%{prereltag}}%{?dist} +Release: 0.2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -363,7 +363,7 @@ for GlusterFS. %package fuse Summary: Fuse client -BuildRequires: fuse-devel +BuildRequires: fuse3-devel Requires: attr Requires: psmisc @@ -1591,6 +1591,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Jan 7 2021 Kaleb S. KEITHLEY - 9.0-0.2 +- 9.0 RC0, fuse3 + * Wed Jan 6 2021 Kaleb S. KEITHLEY - 9.0-0.1 - 9.0 RC0 From 3dc7156fadad4b5858fd8acee979c92d0e22ae8e Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Tue, 19 Jan 2021 07:59:04 -0500 Subject: [PATCH 269/328] 9.0 GA Signed-off-by: Kaleb S KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 142084d..da21ee9 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,7 +4,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the %%dev for pre-releases -%global prereltag rc0 +# %%global prereltag rc0 ##----------------------------------------------------------------------------- ## All package definitions should be placed here in alphabetical order @@ -182,7 +182,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.0 -Release: 0.2%{?prereltag:%{prereltag}}%{?dist} +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1591,6 +1591,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Jan 19 2021 Kaleb S. KEITHLEY - 9.0-1 +- 9.0 GA + * Thu Jan 7 2021 Kaleb S. KEITHLEY - 9.0-0.2 - 9.0 RC0, fuse3 diff --git a/sources b/sources index cb47d57..ed57c7c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-9.0rc0.tar.gz) = f2dcb0f53cd0a8729734f8f980cba32a9b3c5d6add4f27bc35ceb09122b6bac016279eeb0e0c00b2d10f5590f3dac06f9f8470835c111e8b52849ede415a835e +SHA512 (glusterfs-9.0.tar.gz) = daa5a7342c067c75668910e8fed17145636e7a576830b4cd68e81d9fceedaab918228b8780ebd5014e2397e0606858af650cd2c52bec0883ccd2126955ad07e7 From e819fbe826adefd1f8b58339439dcaa743b59e08 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 08:27:21 +0000 Subject: [PATCH 270/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index da21ee9..977f1cf 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -182,11 +182,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.0 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.4 +Release: 0.@PACKAGE_RELEASE@%{?dist}.5 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1591,6 +1591,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Tue Jan 19 2021 Kaleb S. KEITHLEY - 9.0-1 - 9.0 GA From 5230caa4d08f72d462a7ce24c2d5b6139049d974 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Wed, 27 Jan 2021 08:03:03 -0500 Subject: [PATCH 271/328] 9.0, w/ liburing Signed-off-by: Kaleb S KEITHLEY --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 977f1cf..60926f3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -182,7 +182,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.0 -Release: 2%{?prereltag:%{prereltag}}%{?dist} +Release: 3%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -219,7 +219,7 @@ BuildRequires: bison flex BuildRequires: gcc make libtool BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel -BuildRequires: libaio-devel libacl-devel +BuildRequires: libaio-devel libacl-devel liburing-devel BuildRequires: python%{_pythonver}-devel %if ( 0%{?rhel} && 0%{?rhel} < 8 ) BuildRequires: python-ctypes @@ -1591,6 +1591,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Wed Jan 27 2021 Kaleb S. KEITHLEY - 9.0-3 +- 9.0, w/ liburing + * Tue Jan 26 2021 Fedora Release Engineering - 9.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 9090e9784d6a55d11897783e4f674c986a23503b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 2 Mar 2021 16:13:43 +0100 Subject: [PATCH 272/328] Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583. --- glusterfs.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 60926f3..f576a40 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -182,11 +182,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.0 -Release: 3%{?prereltag:%{prereltag}}%{?dist} +Release: 4%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.5 +Release: 0.@PACKAGE_RELEASE@%{?dist}.6 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1591,6 +1591,10 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 9.0-4 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + * Wed Jan 27 2021 Kaleb S. KEITHLEY - 9.0-3 - 9.0, w/ liburing From b9f277a6187a5f6f2d539679bf793cbd8480f5a9 Mon Sep 17 00:00:00 2001 From: Kaleb S KEITHLEY Date: Tue, 30 Mar 2021 08:05:40 -0400 Subject: [PATCH 273/328] 9.1 GA Signed-off-by: Kaleb S KEITHLEY --- glusterfs.spec | 24 +++++++++++++++++++++--- sources | 2 +- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f576a40..fe85440 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -54,6 +54,16 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default %{?_with_ipv6default:%global _with_ipv6default --with-ipv6-default} +# linux-io_uring +# If you wish to compile an rpm without linux-io_uring support... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --disable-linux-io_uring +%{?_without_linux_io_uring:%global _without_linux_io_uring --disable-linux-io_uring} + +# Disable linux-io_uring on unsupported distros. +%if ( 0%{?fedora} && 0%{?fedora} <= 32 ) || ( 0%{?rhel} && 0%{?rhel} <= 7 ) +%global _without_linux_io_uring --disable-linux-io_uring +%endif + # libtirpc # if you wish to compile an rpm without TIRPC (i.e. use legacy glibc rpc) # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without libtirpc @@ -181,8 +191,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 9.0 -Release: 4%{?prereltag:%{prereltag}}%{?dist} +Version: 9.1 +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -219,7 +229,7 @@ BuildRequires: bison flex BuildRequires: gcc make libtool BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel -BuildRequires: libaio-devel libacl-devel liburing-devel +BuildRequires: libaio-devel libacl-devel BuildRequires: python%{_pythonver}-devel %if ( 0%{?rhel} && 0%{?rhel} < 8 ) BuildRequires: python-ctypes @@ -246,6 +256,10 @@ BuildRequires: libattr-devel BuildRequires: firewalld %endif +%if ( 0%{!?_without_linux_io_uring:1} ) +BuildRequires: liburing-devel +%endif + Obsoletes: hekafs <= %{version}-%{release} Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} @@ -814,6 +828,7 @@ sed -i -e 's/--quiet//' configure.ac %{?_without_server} \ %{?_without_syslog} \ %{?_with_ipv6default} \ + %{?_without_linux_io_uring} \ %{?_without_libtirpc} # fix hardening and remove rpath in shlibs @@ -1591,6 +1606,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Mar 30 2021 Kaleb S. KEITHLEY - 9.1-1 +- 9.1 GA + * Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 9.0-4 - Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583. diff --git a/sources b/sources index ed57c7c..ba65d98 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-9.0.tar.gz) = daa5a7342c067c75668910e8fed17145636e7a576830b4cd68e81d9fceedaab918228b8780ebd5014e2397e0606858af650cd2c52bec0883ccd2126955ad07e7 +SHA512 (glusterfs-9.1.tar.gz) = 2c26813f12fed7a0640cc470badc2b83f156b660ef475487a689dca6c3fa407192f4959aeaf7a981969a079cf5d2c7aace85ff818ea6133d5a085d90d226e1da From 978a5fb92ba4811c6f22fc73cc8b5820cfa2b544 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 14 Apr 2021 10:22:43 +0100 Subject: [PATCH 274/328] Rebuild for updated liburing. --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index fe85440..2dfbec5 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -192,11 +192,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.1 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.6 +Release: 0.@PACKAGE_RELEASE@%{?dist}.7 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1606,6 +1606,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Wed Apr 14 2021 Richard W.M. Jones - 9.1-2 +- Rebuild for updated liburing. + * Tue Mar 30 2021 Kaleb S. KEITHLEY - 9.1-1 - 9.1 GA From 173820a67e5e5674c17e3d21fb19bc37d68f1d76 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Sun, 9 May 2021 10:10:40 -0400 Subject: [PATCH 275/328] 9.2 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 2dfbec5..f1eafbe 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -191,8 +191,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 9.1 -Release: 2%{?prereltag:%{prereltag}}%{?dist} +Version: 9.2 +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1606,6 +1606,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Sun May 9 2021 Kaleb S. KEITHLEY - 9.2-1 +- 9.2 GA + * Wed Apr 14 2021 Richard W.M. Jones - 9.1-2 - Rebuild for updated liburing. diff --git a/sources b/sources index ba65d98..66b1158 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-9.1.tar.gz) = 2c26813f12fed7a0640cc470badc2b83f156b660ef475487a689dca6c3fa407192f4959aeaf7a981969a079cf5d2c7aace85ff818ea6133d5a085d90d226e1da +SHA512 (glusterfs-9.2.tar.gz) = 34a0a1745029e2fad3c8fc6a044b4e4645f8cf11eddc3c8c8e94cce9733449248c577ce6066bc49010a65121d991daf67766393fe513ac694082f0efa1d4ef95 From 2916fdc71b451645ab5d8707fb92dd1d47fe54b5 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 4 Jun 2021 20:05:34 +0200 Subject: [PATCH 276/328] Rebuilt for Python 3.10 --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f1eafbe..b136b84 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -192,11 +192,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.2 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.7 +Release: 0.@PACKAGE_RELEASE@%{?dist}.8 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1606,6 +1606,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Fri Jun 04 2021 Python Maint - 9.2-2 +- Rebuilt for Python 3.10 + * Sun May 9 2021 Kaleb S. KEITHLEY - 9.2-1 - 9.2 GA From 17fe09e28aee7efbec9ce88bcc068d2138e7c025 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 8 Jun 2021 15:12:25 -0400 Subject: [PATCH 277/328] Rebuilt for userspace-rcu-0.13 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index b136b84..c720330 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -192,7 +192,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.2 -Release: 2%{?prereltag:%{prereltag}}%{?dist} +Release: 3%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1606,6 +1606,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Jun 8 2021 Kaleb S. KEITHLEY - 9.2-3 +- Rebuilt for userspace-rcu-0.13 + * Fri Jun 04 2021 Python Maint - 9.2-2 - Rebuilt for Python 3.10 From 465e00eebac45519496c8cdaaee28741329d94d7 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 11 Jun 2021 10:58:42 -0400 Subject: [PATCH 278/328] https://src.fedoraproject.org/rpms/glusterfs/pull-request/7 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index c720330..e4c71d4 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -192,7 +192,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.2 -Release: 3%{?prereltag:%{prereltag}}%{?dist} +Release: 4%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -839,7 +839,7 @@ sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool gcc -v -make %{?_smp_mflags} V=1 +%make_build V=1 %check make check @@ -1606,6 +1606,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Fri Jun 11 2021 Kaleb S. KEITHLEY - 9.2-4 +- https://src.fedoraproject.org/rpms/glusterfs/pull-request/7 + * Tue Jun 8 2021 Kaleb S. KEITHLEY - 9.2-3 - Rebuilt for userspace-rcu-0.13 From 6cbd94e3c1e92f410774808df6c77f8d59d8ca72 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 22 Jun 2021 09:03:30 -0400 Subject: [PATCH 279/328] Rebuilt for userspace-rcu-0.13 again Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e4c71d4..8b279a6 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -192,7 +192,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.2 -Release: 4%{?prereltag:%{prereltag}}%{?dist} +Release: 5%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -839,10 +839,10 @@ sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool gcc -v -%make_build V=1 +%make_build V=1 GCC_COLORS= %check -make check +%make_build check %install rm -rf %{buildroot} @@ -1606,6 +1606,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Jun 22 2021 Kaleb S. KEITHLEY - 9.2-5 +- Rebuilt for userspace-rcu-0.13 again + * Fri Jun 11 2021 Kaleb S. KEITHLEY - 9.2-4 - https://src.fedoraproject.org/rpms/glusterfs/pull-request/7 From fa60d94daac1e2efefd7640a1f1ccbff4e2ff47c Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 29 Jun 2021 07:50:15 -0400 Subject: [PATCH 280/328] 9.3 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8b279a6..cc52419 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -191,8 +191,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 9.2 -Release: 5%{?prereltag:%{prereltag}}%{?dist} +Version: 9.3 +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1606,6 +1606,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Jun 29 2021 Kaleb S. KEITHLEY - 9.3-1 +- 9.3 GA + * Tue Jun 22 2021 Kaleb S. KEITHLEY - 9.2-5 - Rebuilt for userspace-rcu-0.13 again diff --git a/sources b/sources index 66b1158..4dc15dc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-9.2.tar.gz) = 34a0a1745029e2fad3c8fc6a044b4e4645f8cf11eddc3c8c8e94cce9733449248c577ce6066bc49010a65121d991daf67766393fe513ac694082f0efa1d4ef95 +SHA512 (glusterfs-9.3.tar.gz) = 0974cf57a6810505f767c490b53201e62bb73ca2fd3c5203d9882dcbe4088c816afb5445ef606d12fb797b1b1fa5e0994f2ea0816577f70e630637668a20f005 From 14756297824069775d19c5565d717f88c46730d0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 22 Jul 2021 02:00:35 +0000 Subject: [PATCH 281/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index cc52419..d94549c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -192,11 +192,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.3 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.8 +Release: 0.@PACKAGE_RELEASE@%{?dist}.9 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1606,6 +1606,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Jul 22 2021 Fedora Release Engineering - 9.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Tue Jun 29 2021 Kaleb S. KEITHLEY - 9.3-1 - 9.3 GA From 3865754255ec9de09f967f43836b05639d3ff1dc Mon Sep 17 00:00:00 2001 From: Sahana Prasad Date: Tue, 14 Sep 2021 19:03:23 +0200 Subject: [PATCH 282/328] Rebuilt with OpenSSL 3.0.0 --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index d94549c..74a4ae3 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -192,11 +192,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 9.3 -Release: 2%{?prereltag:%{prereltag}}%{?dist} +Release: 3%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.9 +Release: 0.@PACKAGE_RELEASE@%{?dist}.10 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1606,6 +1606,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Sep 14 2021 Sahana Prasad - 9.3-3 +- Rebuilt with OpenSSL 3.0.0 + * Thu Jul 22 2021 Fedora Release Engineering - 9.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From 03346a40c04f6f8d4dbd433a99c9104e208d4f78 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 4 Oct 2021 07:56:02 -0400 Subject: [PATCH 283/328] 9.4 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- python.patch | 32 -------------------------------- sources | 2 +- 3 files changed, 6 insertions(+), 35 deletions(-) delete mode 100644 python.patch diff --git a/glusterfs.spec b/glusterfs.spec index d94549c..1462e43 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -191,8 +191,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 9.3 -Release: 2%{?prereltag:%{prereltag}}%{?dist} +Version: 9.4 +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1606,6 +1606,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Mon Oct 4 2021 Kaleb S. KEITHLEY - 9.4-1 +- 9.4 GA + * Thu Jul 22 2021 Fedora Release Engineering - 9.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/python.patch b/python.patch deleted file mode 100644 index b8d8730..0000000 --- a/python.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-c.py.orig 2018-07-11 09:40:35.166390285 -0400 -+++ glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-c.py 2018-07-11 09:41:00.743390285 -0400 -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python2 - - import os - import sys ---- glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-h.py.orig 2018-07-11 09:40:49.035390285 -0400 -+++ glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-h.py 2018-07-11 09:41:06.015390285 -0400 -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python2 - - import os - import sys ---- glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-c.py.orig 2018-07-11 09:41:30.646390285 -0400 -+++ glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-c.py 2018-07-11 09:41:53.033390285 -0400 -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python2 - - from __future__ import print_function - import os ---- glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-h.py.orig 2018-07-11 09:41:38.198390285 -0400 -+++ glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-h.py 2018-07-11 09:41:55.423390285 -0400 -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python2 - - from __future__ import print_function - import os diff --git a/sources b/sources index 4dc15dc..012c0b1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-9.3.tar.gz) = 0974cf57a6810505f767c490b53201e62bb73ca2fd3c5203d9882dcbe4088c816afb5445ef606d12fb797b1b1fa5e0994f2ea0816577f70e630637668a20f005 +SHA512 (glusterfs-9.4.tar.gz) = 2a17197bd2b425117e34af004a6177b7c5012807cd99b9c6d37a1081e0ab9def6b013bedd0ba4122d149969755e0e2985bef8aed9cf612a27a6452b8719a33bf From 80badd1442cc0de438a78d0c35a7d11377e72bea Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 19 Oct 2021 11:27:05 -0400 Subject: [PATCH 284/328] 10.0 RC0 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 28 +++++++++++++++++++++------- sources | 2 +- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 55751fc..40339f5 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,7 +4,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the %%dev for pre-releases -# %%global prereltag rc0 +%global prereltag rc0 ##----------------------------------------------------------------------------- ## All package definitions should be placed here in alphabetical order @@ -75,6 +75,11 @@ %global _without_libtirpc --without-libtirpc %endif +# libtcmalloc +# if you wish to compile an rpm without tcmalloc (i.e. use gluster mempool) +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without tcmalloc +%{?_without_tcmalloc:%global _without_libtcmalloc --without-tcmalloc} + # ocf # if you wish to compile an rpm without the OCF resource agents... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf @@ -191,8 +196,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 9.4 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Version: 10.0 +Release: 0.1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -213,6 +218,10 @@ Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz Requires(pre): shadow-utils BuildRequires: systemd +%if 0%{!?_without_tcmalloc:1} +Requires: gperftools-libs%{?_isa} +%endif + Requires: libglusterfs0%{?_isa} = %{version}-%{release} Requires: libgfrpc0%{?_isa} = %{version}-%{release} Requires: libgfxdr0%{?_isa} = %{version}-%{release} @@ -231,6 +240,9 @@ BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel BuildRequires: libaio-devel libacl-devel BuildRequires: python%{_pythonver}-devel +%if 0%{!?_without_tcmalloc:1} +BuildRequires: gperftools-devel +%endif %if ( 0%{?rhel} && 0%{?rhel} < 8 ) BuildRequires: python-ctypes %endif @@ -453,9 +465,7 @@ Requires: python%{_pythonver}-gluster = %{version}-%{release} Requires: rsync Requires: util-linux -%if ( 0%{?rhel} && ( ( 0%{?rhel} == 8 && 0%{?rhel_minor_version} >= 3 ) || 0%{?rhel} >= 9 ) ) Requires: tar -%endif # required for setting selinux bools %if ( 0%{?rhel} && 0%{?rhel} >= 8 ) Requires(post): policycoreutils-python-utils @@ -829,7 +839,8 @@ sed -i -e 's/--quiet//' configure.ac %{?_without_syslog} \ %{?_with_ipv6default} \ %{?_without_linux_io_uring} \ - %{?_without_libtirpc} + %{?_without_libtirpc} \ + %{?_without_tcmalloc} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -1374,7 +1385,7 @@ exit 0 %{_libexecdir}/glusterfs/python/syncdaemon/* %dir %{_libexecdir}/glusterfs/scripts %{_libexecdir}/glusterfs/scripts/get-gfid.sh - %{_libexecdir}/glusterfs/scripts/slave-upgrade.sh + %{_libexecdir}/glusterfs/scripts/secondary-upgrade.sh %{_libexecdir}/glusterfs/scripts/gsync-upgrade.sh %{_libexecdir}/glusterfs/scripts/generate-gfid-file.sh %{_libexecdir}/glusterfs/scripts/gsync-sync-gfid @@ -1606,6 +1617,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Oct 19 2021 Kaleb S. KEITHLEY - 10.0-0.1rc0 +- 10.0 RC0 + * Mon Oct 4 2021 Kaleb S. KEITHLEY - 9.4-1 - 9.4 GA diff --git a/sources b/sources index 012c0b1..3290704 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-9.4.tar.gz) = 2a17197bd2b425117e34af004a6177b7c5012807cd99b9c6d37a1081e0ab9def6b013bedd0ba4122d149969755e0e2985bef8aed9cf612a27a6452b8719a33bf +SHA512 (glusterfs-10.0rc0.tar.gz) = 2c37333a8b9622636be981499ebd0650483c26ee0ef0473dfa10a35681b9c519be88b7684d90812e3816be2429abfbbd4fd619c0a1999dbb680286c2c27709e5 From 09db540e359f6345a4d49b2b6525e23b7d1a67f7 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 19 Oct 2021 11:59:16 -0400 Subject: [PATCH 285/328] 10.0 RC0 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/glusterfs.spec b/glusterfs.spec index 40339f5..d4de1bf 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -205,6 +205,8 @@ Release: 0.@PACKAGE_RELEASE@%{?dist}.10 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ +# armv7hl gives undefined reference to `_uatomic_link_error' +ExcludeArch: armv7hl %if ( 0%{_for_fedora_koji_builds} ) Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig From 8e29421e267d21194f9d7300c12b47f451d9e81a Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 28 Oct 2021 11:13:00 -0400 Subject: [PATCH 286/328] 10.0 RC0, armv7hl Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index d4de1bf..32ddc8f 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -197,7 +197,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 10.0 -Release: 0.1%{?prereltag:%{prereltag}}%{?dist} +Release: 0.2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -205,8 +205,6 @@ Release: 0.@PACKAGE_RELEASE@%{?dist}.10 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ -# armv7hl gives undefined reference to `_uatomic_link_error' -ExcludeArch: armv7hl %if ( 0%{_for_fedora_koji_builds} ) Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig @@ -822,6 +820,10 @@ done %endif %build +%ifarch armv7hl +%set_build_flags +export CFLAGS="$(echo $CFLAGS) -DUATOMIC_NO_LINK_ERROR" +%endif sed -i -e 's/--quiet//' configure.ac ./autogen.sh && %configure \ %{?_with_asan} \ @@ -851,7 +853,6 @@ sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -gcc -v %make_build V=1 GCC_COLORS= %check @@ -1619,6 +1620,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Oct 28 2021 Kaleb S. KEITHLEY - 10.0-0.2rc0 +- 10.0 RC0, armv7hl + * Tue Oct 19 2021 Kaleb S. KEITHLEY - 10.0-0.1rc0 - 10.0 RC0 From 3d10f66c481d7b9d48ab52aff2493a3a255f5b13 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 29 Oct 2021 07:49:48 -0400 Subject: [PATCH 287/328] 10.0 RC0, without_tcmalloc, rhbz#2018439 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 32ddc8f..2f0dfab 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -80,6 +80,10 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without tcmalloc %{?_without_tcmalloc:%global _without_libtcmalloc --without-tcmalloc} +%ifnarch x86_64 +%global _without_libtcmalloc --without-tcmalloc +%endif + # ocf # if you wish to compile an rpm without the OCF resource agents... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf @@ -197,7 +201,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 10.0 -Release: 0.2%{?prereltag:%{prereltag}}%{?dist} +Release: 0.3%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1620,6 +1624,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Fri Oct 29 2021 Kaleb S. KEITHLEY - 10.0-0.3rc0 +- 10.0 RC0, without_tcmalloc, rhbz#2018439 + * Thu Oct 28 2021 Kaleb S. KEITHLEY - 10.0-0.2rc0 - 10.0 RC0, armv7hl From 41e85331ab46cdd4ff2b7fbbaad92b133e5c80d0 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 29 Oct 2021 09:34:09 -0400 Subject: [PATCH 288/328] 10.0 RC0, without_tcmalloc, rhbz#2018439 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 2f0dfab..19cfe4a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -81,7 +81,7 @@ %{?_without_tcmalloc:%global _without_libtcmalloc --without-tcmalloc} %ifnarch x86_64 -%global _without_libtcmalloc --without-tcmalloc +%global _without_tcmalloc --without-tcmalloc %endif # ocf @@ -844,7 +844,6 @@ sed -i -e 's/--quiet//' configure.ac %{?_without_georeplication} \ %{?_without_ocf} \ %{?_without_server} \ - %{?_without_syslog} \ %{?_with_ipv6default} \ %{?_without_linux_io_uring} \ %{?_without_libtirpc} \ From f2c7a01f53dbf877421a588b965826a92d0c121f Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 2 Nov 2021 07:38:41 -0400 Subject: [PATCH 289/328] 10.0 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterd.init | 109 ------------------------------------------------- glusterfs.spec | 7 +++- sources | 2 +- 3 files changed, 6 insertions(+), 112 deletions(-) delete mode 100644 glusterd.init diff --git a/glusterd.init b/glusterd.init deleted file mode 100644 index fecb77d..0000000 --- a/glusterd.init +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/sh -# -# glusterd Startup script for the glusterfs server -# -# chkconfig: - 20 80 -# description: Clustered file-system server - -### BEGIN INIT INFO -# Provides: glusterd -# Required-Start: $local_fs $network -# Required-Stop: $local_fs $network -# Should-Start: -# Should-Stop: -# Default-Start: -# Default-Stop: 0 1 2 3 4 5 6 -# Short-Description: glusterfs server -# Description: Clustered file-system server -### END INIT INFO - -# Source function library. -. /etc/rc.d/init.d/functions - -exe="/usr/sbin/glusterd" -prog="glusterd" - -# Fedora File System Layout dictates /run -[ -e /run ] && RUNDIR="/run" -pidf="${RUNDIR:-/var/run}/$prog.pid" - -# Set defaults, then source config for eventual overrides -GLUSTERD_NOFILE="65536" - -[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog - -lockfile=/var/lock/subsys/$prog - -start() { - [ -x $exe ] || exit 5 - ulimit -n $GLUSTERD_NOFILE - echo -n $"Starting $prog: " - daemon $exe${GLUSTERD_LOGFILE+" -l $GLUSTERD_LOGFILE"}${GLUSTERD_LOGLEVEL+" -L $GLUSTERD_LOGLEVEL"} -p $pidf - retval=$? - echo - [ $retval -eq 0 ] && touch $lockfile /var/lock/subsys/glusterfsd - return $retval -} - -stop() { - echo -n $"Stopping $prog: " - killproc $prog - retval=$? - echo - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -reload() { - restart -} - -force_reload() { - restart -} - -rh_status() { - status $prog -} - -rh_status_q() { - rh_status &>/dev/null -} - - -case "$1" in - start) - rh_status_q && exit 0 - $1 - ;; - stop) - rh_status_q || exit 0 - $1 - ;; - restart) - $1 - ;; - reload) - rh_status_q || exit 7 - $1 - ;; - force-reload) - force_reload - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" - exit 2 -esac -exit $? diff --git a/glusterfs.spec b/glusterfs.spec index 19cfe4a..783108b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,7 +4,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the %%dev for pre-releases -%global prereltag rc0 +# %%global prereltag rc0 ##----------------------------------------------------------------------------- ## All package definitions should be placed here in alphabetical order @@ -201,7 +201,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 10.0 -Release: 0.3%{?prereltag:%{prereltag}}%{?dist} +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1623,6 +1623,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Nov 2 2021 Kaleb S. KEITHLEY - 10.0-1 +- 10.0 GA + * Fri Oct 29 2021 Kaleb S. KEITHLEY - 10.0-0.3rc0 - 10.0 RC0, without_tcmalloc, rhbz#2018439 diff --git a/sources b/sources index 3290704..3c5f833 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-10.0rc0.tar.gz) = 2c37333a8b9622636be981499ebd0650483c26ee0ef0473dfa10a35681b9c519be88b7684d90812e3816be2429abfbbd4fd619c0a1999dbb680286c2c27709e5 +SHA512 (glusterfs-10.0.tar.gz) = 5a9d292461fc8a0c61767b80d1013cdb104706fd564033aac23e87d68d56686df2e9c38a8890a6a50db0afe6a54cf57e05fe8e5a8883bc3157aa6c93e5aaa343 From 391116f33ace93580acde7bfbbee0428077065ca Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Sat, 15 Jan 2022 08:56:44 -0500 Subject: [PATCH 290/328] rebuild with gcc-12 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 783108b..22ac489 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -201,7 +201,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 10.0 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1623,6 +1623,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Sat Jan 15 2022 Kaleb S. KEITHLEY - 10.0-2 +- rebuild with gcc-12 + * Tue Nov 2 2021 Kaleb S. KEITHLEY - 10.0-1 - 10.0 GA From 1793958937c0046505d2c22623ba3951c8a1fc7f Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 19 Jan 2022 07:59:13 -0500 Subject: [PATCH 291/328] 10.1 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 22ac489..8d38e39 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -200,8 +200,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 10.0 -Release: 2%{?prereltag:%{prereltag}}%{?dist} +Version: 10.1 +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1623,6 +1623,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Jan 19 2022 Kaleb S. KEITHLEY - 10.1-1 +- 10.1 GA + * Sat Jan 15 2022 Kaleb S. KEITHLEY - 10.0-2 - rebuild with gcc-12 diff --git a/sources b/sources index 3c5f833..d138017 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-10.0.tar.gz) = 5a9d292461fc8a0c61767b80d1013cdb104706fd564033aac23e87d68d56686df2e9c38a8890a6a50db0afe6a54cf57e05fe8e5a8883bc3157aa6c93e5aaa343 +SHA512 (glusterfs-10.1.tar.gz) = 38bec8ae33128641b17c645733589c32d554ebb771bda50a11d35019e71654f3b75ca95d24d0c0d1ec4eb460edd99983e843a7218092d422d2185a227345de42 From faf97fd4e34c2fbbb3bdbfd2beb15e34dfd0ce63 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 20 Jan 2022 06:24:24 +0000 Subject: [PATCH 292/328] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8d38e39..647f030 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -201,11 +201,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 10.1 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.10 +Release: 0.@PACKAGE_RELEASE@%{?dist}.11 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1623,6 +1623,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Jan 20 2022 Fedora Release Engineering - 10.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Tue Jan 19 2022 Kaleb S. KEITHLEY - 10.1-1 - 10.1 GA From d401b60136f4317f821a5d75976e7033d5811a21 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 26 Jan 2022 16:36:23 -0500 Subject: [PATCH 293/328] 10.1, w/ modern linker (mold) Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8d38e39..c1e76e8 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -201,7 +201,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 10.1 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -240,6 +240,9 @@ BuildRequires: libtsan %endif BuildRequires: bison flex BuildRequires: gcc make libtool +%ifarch x86_64 aarch64 +BuildRequires: mold +%endif BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel BuildRequires: libaio-devel libacl-devel @@ -1623,7 +1626,10 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog -* Tue Jan 19 2022 Kaleb S. KEITHLEY - 10.1-1 +* Wed Jan 26 2022 Kaleb S. KEITHLEY - 10.1-2 +- 10.1, w/ modern linker (mold) + +* Wed Jan 19 2022 Kaleb S. KEITHLEY - 10.1-1 - 10.1 GA * Sat Jan 15 2022 Kaleb S. KEITHLEY - 10.0-2 From 80373ba83a517bb98ba387e9262031bf540d5618 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 31 Jan 2022 11:13:08 -0500 Subject: [PATCH 294/328] 10.1, w/ modern linker, this time for real Signed-off-by: Kaleb S. KEITHLEY --- 0001-configure.ac.patch | 11 +++++++++++ glusterfs.spec | 14 +++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 0001-configure.ac.patch diff --git a/0001-configure.ac.patch b/0001-configure.ac.patch new file mode 100644 index 0000000..854e3fb --- /dev/null +++ b/0001-configure.ac.patch @@ -0,0 +1,11 @@ +--- glusterfs-10.1/configure.ac.orig 2022-01-27 11:44:31.235010060 -0500 ++++ glusterfs-10.1/configure.ac 2022-01-27 11:46:36.601774148 -0500 +@@ -1280,7 +1280,7 @@ + AC_SUBST(GF_DISTRIBUTION) + + GF_HOST_OS="" +-GF_LDFLAGS="${GF_LDFLAGS} -rdynamic" ++GF_LDFLAGS="${GF_LDFLAGS} -rdynamic -fuse-ld=mold" + + dnl see --with-libtirpc option check above, libtirpc(-devel) is required for + dnl ipv6-default diff --git a/glusterfs.spec b/glusterfs.spec index dd25de2..e09865d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -201,7 +201,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 10.1 -Release: 3%{?prereltag:%{prereltag}}%{?dist} +Release: 4%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -218,6 +218,7 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif +Patch0001: 0001-configure.ac.patch Requires(pre): shadow-utils BuildRequires: systemd @@ -819,6 +820,9 @@ This package provides the glusterfs thin-arbiter translator. %prep %setup -q -n %{name}-%{version}%{?prereltag} +%ifarch x86_64 aarch64 +%patch0001 -p1 +%endif %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do @@ -852,6 +856,11 @@ sed -i -e 's/--quiet//' configure.ac %{?_without_libtirpc} \ %{?_without_tcmalloc} +# remove option mold doesn't recognize +for file in $(find . -type f -name Makefile -print); do +sed -i -e 's/-Wl,-dT.*$//' $file +done + # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool @@ -1626,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Mon Jan 31 2022 Kaleb S. KEITHLEY - 10.1-4 +- 10.1, w/ modern linker, this time for real + * Wed Jan 26 2022 Kaleb S. KEITHLEY - 10.1-3 - 10.1, w/ modern linker (mold) From fd742dbb76206f3e6219db1bea49173557f98331 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 13 May 2022 07:47:12 -0400 Subject: [PATCH 295/328] 10.2 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 9 ++++++--- sources | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e09865d..47f8143 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -200,8 +200,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 10.1 -Release: 4%{?prereltag:%{prereltag}}%{?dist} +Version: 10.2 +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -245,7 +245,7 @@ BuildRequires: gcc make libtool BuildRequires: mold %endif BuildRequires: ncurses-devel readline-devel -BuildRequires: libxml2-devel openssl-devel +BuildRequires: libxml2-devel openssl-devel openssl BuildRequires: libaio-devel libacl-devel BuildRequires: python%{_pythonver}-devel %if 0%{!?_without_tcmalloc:1} @@ -1635,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Fri May 13 2022 Kaleb S. KEITHLEY - 10.2-1 +- 10.2 GA + * Mon Jan 31 2022 Kaleb S. KEITHLEY - 10.1-4 - 10.1, w/ modern linker, this time for real diff --git a/sources b/sources index d138017..e93a2da 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (glusterfs-10.1.tar.gz) = 38bec8ae33128641b17c645733589c32d554ebb771bda50a11d35019e71654f3b75ca95d24d0c0d1ec4eb460edd99983e843a7218092d422d2185a227345de42 +SHA512 (glusterfs-10.2.tar.gz) = 290c701fbd3f100096ef26b589ee0714449fc620c35e62bcb5fe2fe8de5f64963b40d7d5fe1b97b274ba791fa45f4175305b6a112f184f6ce11a1e0dc9f7ea30 From 79e015868c183adaaeb90cd062b02551f2aa00e2 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 13 May 2022 07:47:37 -0400 Subject: [PATCH 296/328] 10.2 GA Signed-off-by: Kaleb S. KEITHLEY --- sources | 1 - 1 file changed, 1 deletion(-) diff --git a/sources b/sources index e93a2da..13472c8 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (glusterfs-10.1.tar.gz) = 38bec8ae33128641b17c645733589c32d554ebb771bda50a11d35019e71654f3b75ca95d24d0c0d1ec4eb460edd99983e843a7218092d422d2185a227345de42 SHA512 (glusterfs-10.2.tar.gz) = 290c701fbd3f100096ef26b589ee0714449fc620c35e62bcb5fe2fe8de5f64963b40d7d5fe1b97b274ba791fa45f4175305b6a112f184f6ce11a1e0dc9f7ea30 From 3095ec1be861f76c6bb0230504e0fe7e97b6bada Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 13 Jun 2022 21:14:06 +0200 Subject: [PATCH 297/328] Rebuilt for Python 3.11 --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 47f8143..435bf10 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -201,11 +201,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 10.2 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.11 +Release: 0.@PACKAGE_RELEASE@%{?dist}.12 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1635,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Mon Jun 13 2022 Python Maint - 10.2-2 +- Rebuilt for Python 3.11 + * Fri May 13 2022 Kaleb S. KEITHLEY - 10.2-1 - 10.2 GA From 22aa83da5cc8ed2d5e33edf8ad47b837903e48d3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 21 Jul 2022 06:38:58 +0000 Subject: [PATCH 298/328] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 435bf10..ae0705c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -201,11 +201,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 10.2 -Release: 2%{?prereltag:%{prereltag}}%{?dist} +Release: 3%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.12 +Release: 0.@PACKAGE_RELEASE@%{?dist}.13 %endif License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ @@ -1635,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Jul 21 2022 Fedora Release Engineering - 10.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Mon Jun 13 2022 Python Maint - 10.2-2 - Rebuilt for Python 3.11 From e2863d16368698f436354dada530b76c33ad7aee Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 20 Sep 2022 08:49:14 -0400 Subject: [PATCH 299/328] 10.3 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index ae0705c..f5f6ad1 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -200,8 +200,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 10.2 -Release: 3%{?prereltag:%{prereltag}}%{?dist} +Version: 10.3 +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1635,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Sep 20 2022 Kaleb S. KEITHLEY - 10.3-1 +- 10.3 GA + * Thu Jul 21 2022 Fedora Release Engineering - 10.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/sources b/sources index 13472c8..2e1918a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-10.2.tar.gz) = 290c701fbd3f100096ef26b589ee0714449fc620c35e62bcb5fe2fe8de5f64963b40d7d5fe1b97b274ba791fa45f4175305b6a112f184f6ce11a1e0dc9f7ea30 +SHA512 (glusterfs-10.3.tar.gz) = af7c8a15db48196a5f7022e4da87ae8d8d43a12c8968b242f40fb43ea562d1d214e75b3a67800f8594c97847e15c01367b6d464964252551d6f8d3e93fb0f832 From 3526946a413da5ffdb700c6f040feeb353d5003c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Moulins?= Date: Mon, 3 Oct 2022 19:44:38 +0200 Subject: [PATCH 300/328] bash-completion: use bash_completions_dir macro Install the completion script with the `%{bash_completions_dir}` macro. By default, it will be `/usr/share/bash-completion/completions` from which the script will be dynamically sourced on use. --- glusterfs.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f5f6ad1..6a9bf2b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -985,7 +985,7 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus ## Install bash completion for cli install -p -m 0755 -D extras/command-completion/gluster.bash \ - %{buildroot}%{_sysconfdir}/bash_completion.d/gluster + %{buildroot}%{bash_completions_dir}/gluster ##----------------------------------------------------------------------------- ## All package definitions should be placed here in alphabetical order @@ -1292,7 +1292,7 @@ exit 0 %files cli %{_sbindir}/gluster %{_mandir}/man8/gluster.8* -%{_sysconfdir}/bash_completion.d/gluster +%{bash_completions_dir}/gluster %files client-xlators %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster From eb1c3d0d74d5f7563878011ff011e0fbe861c2f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Moulins?= Date: Mon, 3 Oct 2022 19:51:14 +0200 Subject: [PATCH 301/328] bash-completion: remove executable permission bash-completion scripts are sourced. --- glusterfs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 6a9bf2b..1560500 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -984,7 +984,7 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus %endif ## Install bash completion for cli -install -p -m 0755 -D extras/command-completion/gluster.bash \ +install -p -m 0644 -D extras/command-completion/gluster.bash \ %{buildroot}%{bash_completions_dir}/gluster ##----------------------------------------------------------------------------- From da34ccc84bc6e800bece3d5b582aa97580117ab2 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 11 Nov 2022 11:36:03 -0500 Subject: [PATCH 302/328] SPDX migration Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 1560500..236c47b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -207,7 +207,7 @@ Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ Release: 0.@PACKAGE_RELEASE@%{?dist}.13 %endif -License: GPLv2 or LGPLv3+ +License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz @@ -728,7 +728,7 @@ regression testing of Gluster. %if ( 0%{!?_without_ocf:1} ) %package resource-agents Summary: OCF Resource Agents for GlusterFS -License: GPLv3+ +License: GPL-3.0-or-later BuildArch: noarch # for glusterd Requires: %{name}-server = %{version}-%{release} @@ -1635,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Fri Nov 11 2022 Kaleb S. KEITHLEY +- SPDX migration + * Tue Sep 20 2022 Kaleb S. KEITHLEY - 10.3-1 - 10.3 GA From 7a2b9c56211c2318740f9f714355b12a545c26dc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 19 Jan 2023 05:17:43 +0000 Subject: [PATCH 303/328] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 236c47b..aa7bdcd 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -201,11 +201,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 10.3 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.13 +Release: 0.@PACKAGE_RELEASE@%{?dist}.14 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1635,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Jan 19 2023 Fedora Release Engineering - 10.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Fri Nov 11 2022 Kaleb S. KEITHLEY - SPDX migration From 83291bffe3999dfb2bf12678177666942cca29ad Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 7 Feb 2023 08:58:40 -0500 Subject: [PATCH 304/328] glusterfs 11 GA Signed-off-by: Kaleb S. KEITHLEY --- 0001-configure.ac.patch | 8 ++-- glusterfs.spec | 100 +++++++++++++++++++--------------------- sources | 2 +- 3 files changed, 52 insertions(+), 58 deletions(-) diff --git a/0001-configure.ac.patch b/0001-configure.ac.patch index 854e3fb..67b2e73 100644 --- a/0001-configure.ac.patch +++ b/0001-configure.ac.patch @@ -1,7 +1,7 @@ ---- glusterfs-10.1/configure.ac.orig 2022-01-27 11:44:31.235010060 -0500 -+++ glusterfs-10.1/configure.ac 2022-01-27 11:46:36.601774148 -0500 -@@ -1280,7 +1280,7 @@ - AC_SUBST(GF_DISTRIBUTION) +--- glusterfs-11.0/configure.ac.orig 2023-02-07 08:27:06.663310072 -0500 ++++ glusterfs-11.0/configure.ac 2023-02-07 08:27:56.012452316 -0500 +@@ -1319,7 +1319,7 @@ + fi GF_HOST_OS="" -GF_LDFLAGS="${GF_LDFLAGS} -rdynamic" diff --git a/glusterfs.spec b/glusterfs.spec index aa7bdcd..52d3c1c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -56,14 +56,9 @@ # linux-io_uring # If you wish to compile an rpm without linux-io_uring support... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --disable-linux-io_uring +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without-linux-io_uring %{?_without_linux_io_uring:%global _without_linux_io_uring --disable-linux-io_uring} -# Disable linux-io_uring on unsupported distros. -%if ( 0%{?fedora} && 0%{?fedora} <= 32 ) || ( 0%{?rhel} && 0%{?rhel} <= 7 ) -%global _without_linux_io_uring --disable-linux-io_uring -%endif - # libtirpc # if you wish to compile an rpm without TIRPC (i.e. use legacy glibc rpc) # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without libtirpc @@ -78,7 +73,7 @@ # libtcmalloc # if you wish to compile an rpm without tcmalloc (i.e. use gluster mempool) # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without tcmalloc -%{?_without_tcmalloc:%global _without_libtcmalloc --without-tcmalloc} +%{?_without_tcmalloc:%global _without_tcmalloc --without-tcmalloc} %ifnarch x86_64 %global _without_tcmalloc --without-tcmalloc @@ -200,12 +195,12 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 10.3 -Release: 2%{?prereltag:%{prereltag}}%{?dist} +Version: 11.0 +Release: 0%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.14 +Release: 0.@PACKAGE_RELEASE@%{?dist}.13 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -309,8 +304,14 @@ and client framework. %package cli Summary: GlusterFS CLI +%if ( ! (0%{?rhel} && 0%{?rhel} < 7) ) +BuildRequires: pkgconfig(bash-completion) +# bash-completion >= 1.90 satisfies this requirement. +# If it is not available, the condition can be adapted +# and the completion script will be installed in the backwards compatible +# %{sysconfdir}/bash_completion.d +%endif Requires: libglusterfs0%{?_isa} = %{version}-%{release} -Requires: libglusterd0%{?_isa} = %{version}-%{release} %description cli GlusterFS is a distributed file-system capable of scaling to several @@ -521,6 +522,8 @@ Requires: libgfrpc0%{?_isa} = %{version}-%{release} Requires: libgfxdr0%{?_isa} = %{version}-%{release} Obsoletes: %{name}-libs <= %{version}-%{release} Provides: %{name}-libs = %{version}-%{release} +Obsoletes: libglusterd0 = %{version}-%{release} +Provides: libglusterd0 = %{version}-%{release} %description -n libglusterfs0 GlusterFS is a distributed file-system capable of scaling to several @@ -673,21 +676,6 @@ Much of the code in GlusterFS is in user space and easily manageable. This package provides libgfxdr.so. -%package -n libglusterd0 -Summary: GlusterFS libglusterd library -Requires: libglusterfs0%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-libs <= %{version}-%{release} - -%description -n libglusterd0 -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. GlusterFS is one of the -most sophisticated file systems in terms of features and extensibility. -It borrows a powerful concept called Translators from GNU Hurd kernel. -Much of the code in GlusterFS is in user space and easily manageable. - -This package provides the libglusterd library - %package -n python%{_pythonver}-gluster Summary: GlusterFS python library Requires: python%{_pythonver} @@ -983,9 +971,10 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs %endif -## Install bash completion for cli -install -p -m 0644 -D extras/command-completion/gluster.bash \ - %{buildroot}%{bash_completions_dir}/gluster +%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null) +%if "%{bashcompdir}" == "" +%global bashcompdir ${sysconfdir}/bash_completion.d +%endif ##----------------------------------------------------------------------------- ## All package definitions should be placed here in alphabetical order @@ -1021,7 +1010,10 @@ exit 0 %if ( 0%{!?_without_server:1} ) %if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) %post ganesha -semanage boolean -m ganesha_use_fusefs --on +# first install +if [ $1 -eq 1 ]; then + %selinux_set_booleans ganesha_use_fusefs=1 +fi exit 0 %endif %endif @@ -1029,7 +1021,9 @@ exit 0 %if ( 0%{!?_without_georeplication:1} ) %post geo-replication %if ( 0%{?rhel} && 0%{?rhel} >= 8 ) -%selinux_set_booleans %{selinuxbooleans} +if [ $1 -eq 1 ]; then + %selinux_set_booleans %{selinuxbooleans} +fi %endif if [ $1 -ge 1 ]; then %systemd_postun_with_restart glusterd @@ -1189,29 +1183,32 @@ exit 0 %if ( 0%{!?_without_server:1} ) %if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) %postun ganesha -semanage boolean -m ganesha_use_fusefs --off +if [ $1 -eq 0 ]; then + # use the value of ganesha_use_fusefs from before glusterfs-ganesha was installed + %selinux_unset_booleans ganesha_use_fusefs=1 +fi +exit 0 +%endif +%endif + +%if ( 0%{!?_without_georeplication:1} ) +%postun geo-replication +%if ( 0%{?rhel} && 0%{?rhel} >= 8 ) +if [ $1 -eq 0 ]; then + %selinux_unset_booleans %{selinuxbooleans} +fi exit 0 %endif %endif ##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order -## -%if ( 0%{!?_without_server:1} ) -%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) -%trigger ganesha -- selinux-policy-targeted -semanage boolean -m ganesha_use_fusefs --on -exit 0 -%endif -%endif - -##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order +## All trriggerun should be placed here in alphabetical order ## %if ( 0%{!?_without_server:1} ) %if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) +# ensure ganesha_use_fusefs is on in case of policy mode switch (eg. mls->targeted) %triggerun ganesha -- selinux-policy-targeted -semanage boolean -m ganesha_use_fusefs --off +semanage boolean -m ganesha_use_fusefs --on -S targeted exit 0 %endif %endif @@ -1278,7 +1275,7 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so %dir %attr(0775,gluster,gluster) %{_rundir}/gluster %dir %attr(0775,gluster,gluster) %{_rundir}/gluster/metrics -%if 0%{?_tmpfilesdir:1} && 0%{!?_without_server:1} +%if 0%{?_tmpfilesdir:1} %{_tmpfilesdir}/gluster.conf %endif @@ -1292,7 +1289,7 @@ exit 0 %files cli %{_sbindir}/gluster %{_mandir}/man8/gluster.8* -%{bash_completions_dir}/gluster +%{bash_completions_dir}/gluster.bash %files client-xlators %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster @@ -1443,10 +1440,6 @@ exit 0 %files -n libgfxdr0 %{_libdir}/libgfxdr.so.* -%files -n libglusterd0 -%{_libdir}/libglusterd.so.* -%exclude %{_libdir}/libglusterd.so - %files -n python%{_pythonver}-gluster # introducing glusterfs module in site packages. # so that all other gluster submodules can reside in the same namespace. @@ -1522,6 +1515,7 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-server.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/simple-quota.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/selinux.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so @@ -1635,8 +1629,8 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog -* Thu Jan 19 2023 Fedora Release Engineering - 10.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild +* Tue Feb 7 2023 Kaleb S. KEITHLEY - 11.0-1 +- glusterfs 11 GA * Fri Nov 11 2022 Kaleb S. KEITHLEY - SPDX migration diff --git a/sources b/sources index 2e1918a..a683c39 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-10.3.tar.gz) = af7c8a15db48196a5f7022e4da87ae8d8d43a12c8968b242f40fb43ea562d1d214e75b3a67800f8594c97847e15c01367b6d464964252551d6f8d3e93fb0f832 +SHA512 (glusterfs-11.0.tar.gz) = 075f0025a1892ebb28d45d0a4e8971656319582dd7bc2c8b19ea26cd08a789bb54f8bc9752839706cd0ee0ca54be74245230bc453a5d1e9e163af84f08937e69 From 42e2ce2602a7651e323831a3cd095ec441f0f7df Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 10 Feb 2023 15:38:23 -0800 Subject: [PATCH 305/328] Fix a mistake in the libglusterd0 obsolete --- glusterfs.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 52d3c1c..96b3246 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,7 +196,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.0 -Release: 0%{?prereltag:%{prereltag}}%{?dist} +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -522,7 +522,7 @@ Requires: libgfrpc0%{?_isa} = %{version}-%{release} Requires: libgfxdr0%{?_isa} = %{version}-%{release} Obsoletes: %{name}-libs <= %{version}-%{release} Provides: %{name}-libs = %{version}-%{release} -Obsoletes: libglusterd0 = %{version}-%{release} +Obsoletes: libglusterd0 <= %{version}-%{release} Provides: libglusterd0 = %{version}-%{release} %description -n libglusterfs0 @@ -1629,7 +1629,10 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog -* Tue Feb 7 2023 Kaleb S. KEITHLEY - 11.0-1 +* Fri Feb 10 2023 Adam Williamson - 11.0-1 +- Fix a mistake in the libglusterd0 obsolete + +* Tue Feb 7 2023 Kaleb S. KEITHLEY - 11.0-0 - glusterfs 11 GA * Fri Nov 11 2022 Kaleb S. KEITHLEY From ff98697d2e8566662e5e100b8ab81699e1dd7b0a Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 4 May 2023 08:29:45 -0400 Subject: [PATCH 306/328] glusterfs 11, remove unnecessary BR for ldconfig, i.e. glibc, also rhbz#1731689 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 96b3246..ebb630a 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,7 +196,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.0 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -226,8 +226,6 @@ Requires: libglusterfs0%{?_isa} = %{version}-%{release} Requires: libgfrpc0%{?_isa} = %{version}-%{release} Requires: libgfxdr0%{?_isa} = %{version}-%{release} %{?systemd_requires} -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig %if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: libasan %endif @@ -516,8 +514,6 @@ This package provides the glusterfs legacy gNFS server xlator %package -n libglusterfs0 Summary: GlusterFS libglusterfs library -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig Requires: libgfrpc0%{?_isa} = %{version}-%{release} Requires: libgfxdr0%{?_isa} = %{version}-%{release} Obsoletes: %{name}-libs <= %{version}-%{release} @@ -755,8 +751,6 @@ Requires: %{name}-client-xlators = %{version}-%{release} Requires: psmisc Requires: lvm2 %{?systemd_requires} -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} ) @@ -1629,6 +1623,10 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu May 4 2023 Kaleb S. KEITHLEY - 11.0-2 +- glusterfs 11, remove unnecessary BR for ldconfig, i.e. glibc, also + rhbz#1731689 + * Fri Feb 10 2023 Adam Williamson - 11.0-1 - Fix a mistake in the libglusterd0 obsolete From 682b0277835cf4f243c4d01745d5fc8eb6da0bfd Mon Sep 17 00:00:00 2001 From: Python Maint Date: Thu, 15 Jun 2023 18:54:50 +0200 Subject: [PATCH 307/328] Rebuilt for Python 3.12 --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index ebb630a..f68b0b5 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.0 -Release: 2%{?prereltag:%{prereltag}}%{?dist} +Release: 3%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.13 +Release: 0.@PACKAGE_RELEASE@%{?dist}.14 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1623,6 +1623,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Jun 15 2023 Python Maint - 11.0-3 +- Rebuilt for Python 3.12 + * Thu May 4 2023 Kaleb S. KEITHLEY - 11.0-2 - glusterfs 11, remove unnecessary BR for ldconfig, i.e. glibc, also rhbz#1731689 From 0582b110e0d4f8e59ca8da8c50a66b2ad2ef7fe8 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 16 Jun 2023 11:34:32 -0400 Subject: [PATCH 308/328] Rebuilt for Python 3.12 Signed-off-by: Kaleb S. KEITHLEY --- 0002-contrib-aclocal-python.m4.patch | 212 +++++++++++++++++++++++++++ glusterfs.spec | 4 +- 2 files changed, 215 insertions(+), 1 deletion(-) create mode 100644 0002-contrib-aclocal-python.m4.patch diff --git a/0002-contrib-aclocal-python.m4.patch b/0002-contrib-aclocal-python.m4.patch new file mode 100644 index 0000000..0772c87 --- /dev/null +++ b/0002-contrib-aclocal-python.m4.patch @@ -0,0 +1,212 @@ +--- glusterfs-11.0/contrib/aclocal/python.m4.orig 2023-06-16 11:18:03.550994174 -0400 ++++ glusterfs-11.0/contrib/aclocal/python.m4 2023-06-16 11:18:47.875238947 -0400 +@@ -1,209 +1 @@ +-## ------------------------ -*- Autoconf -*- +-## Python file handling +-## From Andrew Dalke +-## Updated by James Henstridge + ## ------------------------ +-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009 +-# Free Software Foundation, Inc. +-# +-# This file is free software; the Free Software Foundation +-# gives unlimited permission to copy and/or distribute it, +-# with or without modifications, as long as this notice is preserved. +- +-# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +-# --------------------------------------------------------------------------- +-# Adds support for distributing Python modules and packages. To +-# install modules, copy them to $(pythondir), using the python_PYTHON +-# automake variable. To install a package with the same name as the +-# automake package, install to $(pkgpythondir), or use the +-# pkgpython_PYTHON automake variable. +-# +-# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as +-# locations to install python extension modules (shared libraries). +-# Another macro is required to find the appropriate flags to compile +-# extension modules. +-# +-# If your package is configured with a different prefix to python, +-# users will have to add the install directory to the PYTHONPATH +-# environment variable, or create a .pth file (see the python +-# documentation for details). +-# +-# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will +-# cause an error if the version of python installed on the system +-# doesn't meet the requirement. MINIMUM-VERSION should consist of +-# numbers and dots only. +-AC_DEFUN([AM_PATH_PYTHON], +- [ +- dnl Find a Python interpreter. Python versions prior to 2.0 are not +- dnl supported. (2.0 was released on October 16, 2000). +- m4_define_default([_AM_PYTHON_INTERPRETER_LIST], +- [python python2 python3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 dnl +-python2.1 python2.0]) +- +- m4_if([$1],[],[ +- dnl No version check is needed. +- # Find any Python interpreter. +- if test -z "$PYTHON"; then +- AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) +- fi +- am_display_PYTHON=python +- ], [ +- dnl A version check is needed. +- if test -n "$PYTHON"; then +- # If the user set $PYTHON, use it and don't search something else. +- AC_MSG_CHECKING([whether $PYTHON version >= $1]) +- AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], +- [AC_MSG_RESULT(yes)], +- [AC_MSG_ERROR(too old)]) +- am_display_PYTHON=$PYTHON +- else +- # Otherwise, try each interpreter until we find one that satisfies +- # VERSION. +- AC_CACHE_CHECK([for a Python interpreter with version >= $1], +- [am_cv_pathless_PYTHON],[ +- for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do +- test "$am_cv_pathless_PYTHON" = none && break +- AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) +- done]) +- # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. +- if test "$am_cv_pathless_PYTHON" = none; then +- PYTHON=: +- else +- AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) +- fi +- am_display_PYTHON=$am_cv_pathless_PYTHON +- fi +- ]) +- +- if test "$PYTHON" = :; then +- dnl Run any user-specified action, or abort. +- m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) +- else +- +- dnl Query Python for its version number. Getting [:3] seems to be +- dnl the best way to do this; it's what "site.py" does in the standard +- dnl library. +- +- AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], +- [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) +- AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) +- +- dnl Use the values of $prefix and $exec_prefix for the corresponding +- dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made +- dnl distinct variables so they can be overridden if need be. However, +- dnl general consensus is that you shouldn't need this ability. +- +- AC_SUBST([PYTHON_PREFIX], ['${prefix}']) +- AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) +- +- dnl At times (like when building shared libraries) you may want +- dnl to know which OS platform Python thinks this is. +- +- AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], +- [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) +- AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) +- +- +- dnl Set up 4 directories: +- +- dnl pythondir -- where to install python scripts. This is the +- dnl site-packages directory, not the python standard library +- dnl directory like in previous automake betas. This behavior +- dnl is more consistent with lispdir.m4 for example. +- dnl Query distutils for this directory. distutils does not exist in +- dnl Python 1.5, so we fall back to the hardcoded directory if it +- dnl doesn't work. +- AC_CACHE_CHECK([for $am_display_PYTHON script directory], +- [am_cv_python_pythondir], +- [if test "x$prefix" = xNONE +- then +- am_py_prefix=$ac_default_prefix +- else +- am_py_prefix=$prefix +- fi +- am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null || +- echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` +- case $am_cv_python_pythondir in +- $am_py_prefix*) +- am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` +- am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` +- ;; +- *) +- case $am_py_prefix in +- /usr|/System*) ;; +- *) +- am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages +- ;; +- esac +- ;; +- esac +- ]) +- AC_SUBST([pythondir], [$am_cv_python_pythondir]) +- +- dnl pkgpythondir -- $PACKAGE directory under pythondir. Was +- dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is +- dnl more consistent with the rest of automake. +- +- AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) +- +- dnl pyexecdir -- directory for installing python extension modules +- dnl (shared libraries) +- dnl Query distutils for this directory. distutils does not exist in +- dnl Python 1.5, so we fall back to the hardcoded directory if it +- dnl doesn't work. +- AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], +- [am_cv_python_pyexecdir], +- [if test "x$exec_prefix" = xNONE +- then +- am_py_exec_prefix=$am_py_prefix +- else +- am_py_exec_prefix=$exec_prefix +- fi +- am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null || +- echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"` +- case $am_cv_python_pyexecdir in +- $am_py_exec_prefix*) +- am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` +- am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` +- ;; +- *) +- case $am_py_exec_prefix in +- /usr|/System*) ;; +- *) +- am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages +- ;; +- esac +- ;; +- esac +- ]) +- AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) +- +- dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) +- +- AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) +- +- dnl Run any user-specified action. +- $2 +- fi +- +-]) +- +- +-# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +-# --------------------------------------------------------------------------- +-# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. +-# Run ACTION-IF-FALSE otherwise. +-# This test uses sys.hexversion instead of the string equivalent (first +-# word of sys.version), in order to cope with versions such as 2.2c1. +-# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). +-AC_DEFUN([AM_PYTHON_CHECK_VERSION], +- [prog="import sys +-# split strings by '.' and convert to numeric. Append some zeros +-# because we need at least 4 digits for the hex conversion. +-# map returns an iterator in Python 3.0 and a list in 2.x +-minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] +-minverhex = 0 +-# xrange is not present in Python 3.0 and range returns an iterator +-for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] +-sys.exit(sys.hexversion < minverhex)" +- AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) diff --git a/glusterfs.spec b/glusterfs.spec index f68b0b5..faf2150 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -214,6 +214,7 @@ Source8: glusterfsd.init Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif Patch0001: 0001-configure.ac.patch +Patch0002: 0002-contrib-aclocal-python.m4.patch Requires(pre): shadow-utils BuildRequires: systemd @@ -803,7 +804,8 @@ This package provides the glusterfs thin-arbiter translator. %prep %setup -q -n %{name}-%{version}%{?prereltag} %ifarch x86_64 aarch64 -%patch0001 -p1 +%patch 0001 -p1 +%patch 0002 -p1 %endif %if ( ! %{_usepython3} ) echo "fixing python shebangs..." From b084205cb3487081882089263bd5f55f94c5e5e1 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 16 Jun 2023 11:54:52 -0400 Subject: [PATCH 309/328] Rebuilt for Python 3.12 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index faf2150..4bdeeb0 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -805,8 +805,8 @@ This package provides the glusterfs thin-arbiter translator. %setup -q -n %{name}-%{version}%{?prereltag} %ifarch x86_64 aarch64 %patch 0001 -p1 -%patch 0002 -p1 %endif +%patch 0002 -p1 %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do From ec3e9277a322dfcde60764fd98370654a1c8cdf8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 23:25:27 +0000 Subject: [PATCH 310/328] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4bdeeb0..001daba 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.0 -Release: 3%{?prereltag:%{prereltag}}%{?dist} +Release: 4%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.14 +Release: 0.@PACKAGE_RELEASE@%{?dist}.15 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1625,6 +1625,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 11.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Thu Jun 15 2023 Python Maint - 11.0-3 - Rebuilt for Python 3.12 From b9a2e4c9cfd82d6de1dccf141709a735a3d12180 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 22 Aug 2023 13:05:54 -0400 Subject: [PATCH 311/328] glusterfs 11, /usr/lib/ocf/resource-agents.d -> resource-agents rhbz#2229910 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 001daba..2605950 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,7 +196,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.0 -Release: 4%{?prereltag:%{prereltag}}%{?dist} +Release: 5%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -718,7 +718,7 @@ BuildArch: noarch # for glusterd Requires: %{name}-server = %{version}-%{release} # depending on the distribution, we need pacemaker or resource-agents -Requires: %{_prefix}/lib/ocf/resource.d +Requires: resource-agents %description resource-agents GlusterFS is a distributed file-system capable of scaling to several @@ -1625,6 +1625,10 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Aug 22 2023 Kaleb S. KEITHLEY - 11.0-5 +- glusterfs 11, /usr/lib/ocf/resource-agents.d -> resource-agents + rhbz#2229910 + * Wed Jul 19 2023 Fedora Release Engineering - 11.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 4b286a508f09f01b50829be06dc4bd580f19e5bf Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 5 Oct 2023 12:52:49 -0400 Subject: [PATCH 312/328] glusterfs 11, build in side tag f40-build-side-74974 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 2605950..c7740f0 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,7 +196,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.0 -Release: 5%{?prereltag:%{prereltag}}%{?dist} +Release: 6%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1625,6 +1625,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Oct 5 2023 Kaleb S. KEITHLEY - 11.0-6 +- glusterfs 11, build in side tag f40-build-side-74974 + * Tue Aug 22 2023 Kaleb S. KEITHLEY - 11.0-5 - glusterfs 11, /usr/lib/ocf/resource-agents.d -> resource-agents rhbz#2229910 From 15d0720b6c7cc13a3341f27c9aa96edd7a4b7006 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 6 Nov 2023 13:16:55 -0500 Subject: [PATCH 313/328] glusterfs 11.1 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index c7740f0..4165b56 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -195,8 +195,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 11.0 -Release: 6%{?prereltag:%{prereltag}}%{?dist} +Version: 11.1 +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1625,6 +1625,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Mon Nov 6 2023 Kaleb S. KEITHLEY - 11.1-0 +- glusterfs 11.1 GA + * Thu Oct 5 2023 Kaleb S. KEITHLEY - 11.0-6 - glusterfs 11, build in side tag f40-build-side-74974 diff --git a/sources b/sources index a683c39..4457fa4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-11.0.tar.gz) = 075f0025a1892ebb28d45d0a4e8971656319582dd7bc2c8b19ea26cd08a789bb54f8bc9752839706cd0ee0ca54be74245230bc453a5d1e9e163af84f08937e69 +SHA512 (glusterfs-11.1.tar.gz) = a021a612b01c2c43858b092db926e6d229f0f736c19b8a1015c0d3121fbc7739ab5273384d5e96fde6dbf4eaf620bc32a0530597e80483865d8ca79b820ed3b0 From a950cb4a3de9b939ea810c4caca02b5711ae0ee1 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 19 Jan 2024 11:16:46 -0500 Subject: [PATCH 314/328] rebuild with gcc-14 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 4165b56..e23c016 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,7 +196,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.1 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -1625,7 +1625,10 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog -* Mon Nov 6 2023 Kaleb S. KEITHLEY - 11.1-0 +* Fri Jan 19 2024 Kaleb S. KEITHLEY - 11.1-2 +- rebuild with gcc-14 + +* Mon Nov 6 2023 Kaleb S. KEITHLEY - 11.1-1 - glusterfs 11.1 GA * Thu Oct 5 2023 Kaleb S. KEITHLEY - 11.0-6 From 49171be524f7ead29d272ec34ca7cc1980c39d9e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jan 2024 15:18:52 +0000 Subject: [PATCH 315/328] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e23c016..e51e77f 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.1 -Release: 2%{?prereltag:%{prereltag}}%{?dist} +Release: 3%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.15 +Release: 0.@PACKAGE_RELEASE@%{?dist}.16 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1625,6 +1625,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Wed Jan 24 2024 Fedora Release Engineering - 11.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Kaleb S. KEITHLEY - 11.1-2 - rebuild with gcc-14 From ce098d50ee2a86d1ee0794e3262f3596ed6d6c5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 14 Apr 2024 14:11:50 +0200 Subject: [PATCH 316/328] Add compat sbin Provides In preparation for https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin. libvirt-daemon-driver-storage-gluster requires /usr/sbin/gluster. --- glusterfs.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/glusterfs.spec b/glusterfs.spec index e51e77f..39dd2bc 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -312,6 +312,13 @@ BuildRequires: pkgconfig(bash-completion) %endif Requires: libglusterfs0%{?_isa} = %{version}-%{release} +%if "%{_sbindir}" == "%{_bindir}" +# Compat symlinks for Requires in other packages. +# We rely on filesystem to create the symlinks for us. +Requires: filesystem(unmerged-sbin-symlinks) +Provides: /usr/sbin/gluster +%endif + %description cli GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over TCP/IP interconnect From 56c87a0f0dfe0cfff31a19cdbfa9d8cd2968275c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Thu, 18 Apr 2024 18:47:29 +0200 Subject: [PATCH 317/328] Move installed files to %{_sbindir} This implements https://pagure.io/packaging-committee/pull-request/1355, i.e. changes the file path known to rpm to the actual location on disk. --- glusterfs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/glusterfs.spec b/glusterfs.spec index 39dd2bc..390946c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -974,6 +974,9 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs %endif +# Fix installation paths +mv -v %{buildroot}/sbin/* %{buildroot}%{_sbindir}/ + %global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null) %if "%{bashcompdir}" == "" %global bashcompdir ${sysconfdir}/bash_completion.d @@ -1361,7 +1364,7 @@ exit 0 %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so -/sbin/mount.glusterfs +%{_sbindir}/mount.glusterfs %if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs %endif From 7b20f7a7b6a04be682ac72b128efd587b1c518c7 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 7 Jun 2024 22:23:55 +0200 Subject: [PATCH 318/328] Rebuilt for Python 3.13 --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 390946c..56293a6 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.1 -Release: 3%{?prereltag:%{prereltag}}%{?dist} +Release: 4%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.16 +Release: 0.@PACKAGE_RELEASE@%{?dist}.17 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1635,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Fri Jun 07 2024 Python Maint - 11.1-4 +- Rebuilt for Python 3.13 + * Wed Jan 24 2024 Fedora Release Engineering - 11.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 267721b2de03b7d3abd1455b5c35e7a9b771d442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 9 Jul 2024 13:15:48 +0200 Subject: [PATCH 319/328] Rebuilt for the bin-sbin merge https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 56293a6..f686d66 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.1 -Release: 4%{?prereltag:%{prereltag}}%{?dist} +Release: 5%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.17 +Release: 0.@PACKAGE_RELEASE@%{?dist}.18 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1635,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Jul 09 2024 Zbigniew Jędrzejewski-Szmek - 11.1-5 +- Rebuilt for the bin-sbin merge + * Fri Jun 07 2024 Python Maint - 11.1-4 - Rebuilt for Python 3.13 From a6cf2b2e3a013874feed9238341f8219929ca86b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 18 Jul 2024 02:48:16 +0000 Subject: [PATCH 320/328] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index f686d66..14821af 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.1 -Release: 5%{?prereltag:%{prereltag}}%{?dist} +Release: 6%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.18 +Release: 0.@PACKAGE_RELEASE@%{?dist}.19 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1635,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Jul 18 2024 Fedora Release Engineering - 11.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Tue Jul 09 2024 Zbigniew Jędrzejewski-Szmek - 11.1-5 - Rebuilt for the bin-sbin merge From c1384a450ce334202b2b373fefd53afdc8373d3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 12 Jan 2025 14:29:11 +0100 Subject: [PATCH 321/328] Rebuilt for the bin-sbin merge (2nd attempt) https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 14821af..410e409 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.1 -Release: 6%{?prereltag:%{prereltag}}%{?dist} +Release: 7%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.19 +Release: 0.@PACKAGE_RELEASE@%{?dist}.20 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1635,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Sun Jan 12 2025 Zbigniew Jędrzejewski-Szmek - 11.1-7 +- Rebuilt for the bin-sbin merge (2nd attempt) + * Thu Jul 18 2024 Fedora Release Engineering - 11.1-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 0a794949c8085f4dfbc82c8a1cd8e7af02e11dd6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 22:29:07 +0000 Subject: [PATCH 322/328] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 410e409..eb067eb 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.1 -Release: 7%{?prereltag:%{prereltag}}%{?dist} +Release: 8%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.20 +Release: 0.@PACKAGE_RELEASE@%{?dist}.21 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1635,6 +1635,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 11.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Sun Jan 12 2025 Zbigniew Jędrzejewski-Szmek - 11.1-7 - Rebuilt for the bin-sbin merge (2nd attempt) From 9e2d1bd99ebdc249054903f14dea527f08093f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 11 Feb 2025 15:35:18 +0100 Subject: [PATCH 323/328] Add sysusers.d config file to allow rpm to create users/groups automatically See https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers. --- glusterfs.spec | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index eb067eb..8eb2cab 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.1 -Release: 8%{?prereltag:%{prereltag}}%{?dist} +Release: 9%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.21 +Release: 0.@PACKAGE_RELEASE@%{?dist}.22 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -216,7 +216,6 @@ Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz Patch0001: 0001-configure.ac.patch Patch0002: 0002-contrib-aclocal-python.m4.patch -Requires(pre): shadow-utils BuildRequires: systemd %if 0%{!?_without_tcmalloc:1} @@ -821,6 +820,11 @@ find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \; done %endif +# Create a sysusers.d config file +cat >glusterfs.sysusers.conf < /dev/null || groupadd -r gluster -getent passwd gluster > /dev/null || useradd -r -g gluster -d %{_rundir}/gluster -s /sbin/nologin -c "GlusterFS daemons" gluster -exit 0 - ##----------------------------------------------------------------------------- ## All package definitions should be placed here in alphabetical order ## @@ -1291,6 +1293,7 @@ exit 0 %exclude %{_libexecdir}/ganesha/* %exclude %{_prefix}/lib/ocf/resource.d/heartbeat/* %endif +%{_sysusersdir}/glusterfs.conf %files cli %{_sbindir}/gluster @@ -1635,6 +1638,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 11.1-9 +- Add sysusers.d config file to allow rpm to create users/groups automatically + * Thu Jan 16 2025 Fedora Release Engineering - 11.1-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From e6d851487737d8785e0dcd5798bd3b0971ff7fbf Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 3 Jun 2025 14:29:07 +0200 Subject: [PATCH 324/328] Rebuilt for Python 3.14 --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 8eb2cab..d2a00ea 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.1 -Release: 9%{?prereltag:%{prereltag}}%{?dist} +Release: 10%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.22 +Release: 0.@PACKAGE_RELEASE@%{?dist}.23 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1638,6 +1638,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Tue Jun 03 2025 Python Maint - 11.1-10 +- Rebuilt for Python 3.14 + * Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 11.1-9 - Add sysusers.d config file to allow rpm to create users/groups automatically From 08fdd39e4a470d4d64070f111fbd4c542d944dc2 Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Thu, 3 Jul 2025 19:35:41 +0300 Subject: [PATCH 325/328] Update to 11.2 --- 0003-makefile-am-subdirs.patch | 126 +++++++++++++++++++++++++++++++++ glusterfs.spec | 13 +++- sources | 2 +- 3 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 0003-makefile-am-subdirs.patch diff --git a/0003-makefile-am-subdirs.patch b/0003-makefile-am-subdirs.patch new file mode 100644 index 0000000..ae2e543 --- /dev/null +++ b/0003-makefile-am-subdirs.patch @@ -0,0 +1,126 @@ +diff -ruN glusterfs-11.2/api/examples/Makefile.am glusterfs-11.2-mod/api/examples/Makefile.am +--- glusterfs-11.2/api/examples/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/api/examples/Makefile.am 2025-07-02 12:31:15.002167956 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + # The bits needed for glfsxmp + EXTRA_PROGRAMS = glfsxmp + glfsxmp_SOURCES = glfsxmp.c +diff -ruN glusterfs-11.2/contrib/fuse-util/Makefile.am glusterfs-11.2-mod/contrib/fuse-util/Makefile.am +--- glusterfs-11.2/contrib/fuse-util/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/contrib/fuse-util/Makefile.am 2025-07-02 12:31:32.290546271 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + bin_PROGRAMS = fusermount-glusterfs + + fusermount_glusterfs_SOURCES = fusermount.c mount_util.c $(CONTRIBDIR)/fuse-lib/mount-common.c +diff -ruN glusterfs-11.2/libglusterfs/src/Makefile.am glusterfs-11.2-mod/libglusterfs/src/Makefile.am +--- glusterfs-11.2/libglusterfs/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/libglusterfs/src/Makefile.am 2025-07-02 12:26:47.776161392 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + noinst_PYTHON = generator.py gen-defaults.py $(top_srcdir)/events/eventskeygen.py + + libglusterfs_la_CFLAGS = $(GF_CFLAGS) $(GF_DARWIN_LIBGLUSTERFS_CFLAGS) \ +diff -ruN glusterfs-11.2/xlators/cluster/afr/src/Makefile.am glusterfs-11.2-mod/xlators/cluster/afr/src/Makefile.am +--- glusterfs-11.2/xlators/cluster/afr/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/xlators/cluster/afr/src/Makefile.am 2025-07-02 12:26:21.567940962 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + xlator_LTLIBRARIES = afr.la + xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/cluster + +diff -ruN glusterfs-11.2/xlators/cluster/dht/src/Makefile.am glusterfs-11.2-mod/xlators/cluster/dht/src/Makefile.am +--- glusterfs-11.2/xlators/cluster/dht/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/xlators/cluster/dht/src/Makefile.am 2025-07-02 12:26:07.943843179 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + xlator_LTLIBRARIES = dht.la nufa.la switch.la + + AM_CFLAGS = -Wall $(GF_CFLAGS) +diff -ruN glusterfs-11.2/xlators/cluster/ec/src/Makefile.am glusterfs-11.2-mod/xlators/cluster/ec/src/Makefile.am +--- glusterfs-11.2/xlators/cluster/ec/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/xlators/cluster/ec/src/Makefile.am 2025-07-02 12:25:45.287655225 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + xlator_LTLIBRARIES = ec.la + xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/cluster + +diff -ruN glusterfs-11.2/xlators/features/changelog/lib/src/Makefile.am glusterfs-11.2-mod/xlators/features/changelog/lib/src/Makefile.am +--- glusterfs-11.2/xlators/features/changelog/lib/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/xlators/features/changelog/lib/src/Makefile.am 2025-07-02 12:25:15.015401482 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + libgfchangelog_la_CFLAGS = -Wall $(GF_CFLAGS) $(GF_DARWIN_LIBGLUSTERFS_CFLAGS) \ + -DDATADIR=\"$(localstatedir)\" + +diff -ruN glusterfs-11.2/xlators/features/cloudsync/src/cloudsync-plugins/src/cloudsyncs3/src/Makefile.am glusterfs-11.2-mod/xlators/features/cloudsync/src/cloudsync-plugins/src/cloudsyncs3/src/Makefile.am +--- glusterfs-11.2/xlators/features/cloudsync/src/cloudsync-plugins/src/cloudsyncs3/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/xlators/features/cloudsync/src/cloudsync-plugins/src/cloudsyncs3/src/Makefile.am 2025-07-02 12:24:16.783001896 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + csp_LTLIBRARIES = cloudsyncs3.la + cspdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/cloudsync-plugins + +diff -ruN glusterfs-11.2/xlators/features/cloudsync/src/cloudsync-plugins/src/cvlt/src/Makefile.am glusterfs-11.2-mod/xlators/features/cloudsync/src/cloudsync-plugins/src/cvlt/src/Makefile.am +--- glusterfs-11.2/xlators/features/cloudsync/src/cloudsync-plugins/src/cvlt/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/xlators/features/cloudsync/src/cloudsync-plugins/src/cvlt/src/Makefile.am 2025-07-02 12:24:00.726984102 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + csp_LTLIBRARIES = cloudsynccvlt.la + cspdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/cloudsync-plugins + +diff -ruN glusterfs-11.2/xlators/features/cloudsync/src/Makefile.am glusterfs-11.2-mod/xlators/features/cloudsync/src/Makefile.am +--- glusterfs-11.2/xlators/features/cloudsync/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/xlators/features/cloudsync/src/Makefile.am 2025-07-02 12:24:45.054966491 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + SUBDIRS = cloudsync-plugins + + xlator_LTLIBRARIES = cloudsync.la +diff -ruN glusterfs-11.2/xlators/features/thin-arbiter/src/Makefile.am glusterfs-11.2-mod/xlators/features/thin-arbiter/src/Makefile.am +--- glusterfs-11.2/xlators/features/thin-arbiter/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/xlators/features/thin-arbiter/src/Makefile.am 2025-07-02 12:22:10.366019070 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + xlator_LTLIBRARIES = thin-arbiter.la + + xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features +diff -ruN glusterfs-11.2/xlators/features/utime/src/Makefile.am glusterfs-11.2-mod/xlators/features/utime/src/Makefile.am +--- glusterfs-11.2/xlators/features/utime/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/xlators/features/utime/src/Makefile.am 2025-07-02 12:21:54.421923762 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + xlator_LTLIBRARIES = utime.la + xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features + +diff -ruN glusterfs-11.2/xlators/mgmt/glusterd/src/Makefile.am glusterfs-11.2-mod/xlators/mgmt/glusterd/src/Makefile.am +--- glusterfs-11.2/xlators/mgmt/glusterd/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/xlators/mgmt/glusterd/src/Makefile.am 2025-07-02 12:20:49.141466838 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + if WITH_SERVER + xlator_LTLIBRARIES = glusterd.la + endif +diff -ruN glusterfs-11.2/xlators/mount/fuse/src/Makefile.am glusterfs-11.2-mod/xlators/mount/fuse/src/Makefile.am +--- glusterfs-11.2/xlators/mount/fuse/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 ++++ glusterfs-11.2-mod/xlators/mount/fuse/src/Makefile.am 2025-07-02 12:19:50.029047303 +0300 +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + noinst_HEADERS_linux = $(CONTRIBDIR)/fuse-include/fuse_kernel.h\ + $(CONTRIBDIR)/fuse-include/mount_util.h\ + $(CONTRIBDIR)/fuse-lib/mount-gluster-compat.h diff --git a/glusterfs.spec b/glusterfs.spec index d2a00ea..c2f2718 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -195,8 +195,8 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 11.1 -Release: 10%{?prereltag:%{prereltag}}%{?dist} +Version: 11.2 +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -205,7 +205,7 @@ Release: 0.@PACKAGE_RELEASE@%{?dist}.23 License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://github.com/gluster/glusterfs/archive/v%{version}%{?prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source7: glusterfsd.service @@ -215,6 +215,7 @@ Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif Patch0001: 0001-configure.ac.patch Patch0002: 0002-contrib-aclocal-python.m4.patch +Patch0003: 0003-makefile-am-subdirs.patch BuildRequires: systemd @@ -813,6 +814,7 @@ This package provides the glusterfs thin-arbiter translator. %patch 0001 -p1 %endif %patch 0002 -p1 +%patch 0003 -p1 %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do @@ -831,6 +833,8 @@ EOF export CFLAGS="$(echo $CFLAGS) -DUATOMIC_NO_LINK_ERROR" %endif sed -i -e 's/--quiet//' configure.ac +echo "v%{version}-0" > VERSION +cat VERSION ./autogen.sh && %configure \ %{?_with_asan} \ %{?_with_cmocka} \ @@ -1638,6 +1642,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Wed Jul 02 2025 Benson Muite - 11.2-1 +- Update to latest release + * Tue Jun 03 2025 Python Maint - 11.1-10 - Rebuilt for Python 3.14 diff --git a/sources b/sources index 4457fa4..167f189 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-11.1.tar.gz) = a021a612b01c2c43858b092db926e6d229f0f736c19b8a1015c0d3121fbc7739ab5273384d5e96fde6dbf4eaf620bc32a0530597e80483865d8ca79b820ed3b0 +SHA512 (glusterfs-11.2.tar.gz) = 6ac463047c5b1fee1d00ca9d6c16169762ed31c7d3b8dfb341bb8a90b83c15fdd9d48ebbe6cf79eee885f764cfa5391f4107837764c0a182eff1b51bede63d48 From 77fdb97a9312e1e43764688118eed2230db7e5cb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 22:36:04 +0000 Subject: [PATCH 326/328] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index c2f2718..3ec454b 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.2 -Release: 1%{?prereltag:%{prereltag}}%{?dist} +Release: 2%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.23 +Release: 0.@PACKAGE_RELEASE@%{?dist}.24 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1642,6 +1642,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 11.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Wed Jul 02 2025 Benson Muite - 11.2-1 - Update to latest release From a40663631ba293dfa41952c0b175c225b44f2163 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 12:49:27 +0200 Subject: [PATCH 327/328] Rebuilt for Python 3.14.0rc2 bytecode --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 3ec454b..e0f4006 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.2 -Release: 2%{?prereltag:%{prereltag}}%{?dist} +Release: 3%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.24 +Release: 0.@PACKAGE_RELEASE@%{?dist}.25 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1642,6 +1642,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Fri Aug 15 2025 Python Maint - 11.2-3 +- Rebuilt for Python 3.14.0rc2 bytecode + * Wed Jul 23 2025 Fedora Release Engineering - 11.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 2bff6285efa0b6fde6f3402818a2c717c8019335 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 12:19:17 +0200 Subject: [PATCH 328/328] Rebuilt for Python 3.14.0rc3 bytecode --- glusterfs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index e0f4006..c125810 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -196,11 +196,11 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 11.2 -Release: 3%{?prereltag:%{prereltag}}%{?dist} +Release: 4%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.25 +Release: 0.@PACKAGE_RELEASE@%{?dist}.26 %endif License: GPL-2.0-only OR LGPL-3.0-or-later URL: http://docs.gluster.org/ @@ -1642,6 +1642,9 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog +* Fri Sep 19 2025 Python Maint - 11.2-4 +- Rebuilt for Python 3.14.0rc3 bytecode + * Fri Aug 15 2025 Python Maint - 11.2-3 - Rebuilt for Python 3.14.0rc2 bytecode