From 9da8982459a9336508c276855b64638b3584c07b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 9 Oct 2019 10:15:29 -0400 Subject: [PATCH 01/83] 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 ee88c88c190bc1337f728c3ffcadd7338235d8e6 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 10 Oct 2019 07:55:12 -0400 Subject: [PATCH 02/83] 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 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 03/83] 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 04/83] 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 05/83] 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 06/83] 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 07/83] 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 08/83] 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 09/83] 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 10/83] 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 70bfa6fc05228d46c9141c40432606799f6c69bb Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 20 Jul 2020 16:12:25 -0400 Subject: [PATCH 11/83] 7.7 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 295137b..7cae433 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.6 +Version: 7.7 Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -1381,6 +1381,9 @@ exit 0 %endif %changelog +* Mon Jul 21 2020 Kaleb S. KEITHLEY - 7.7-1 +- 7.7 GA + * Mon May 18 2020 Kaleb S. KEITHLEY - 7.6-1 - 7.6 GA diff --git a/sources b/sources index 862d37d..5f47d69 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-7.6.tar.gz) = c26b2046e7afdbb37fdd395fd9f692a0513ebb58c91ea223fbbaf9f8b41641b1fd009f2975e187f0feb8d83fb5cd4a8a0c2fdf4591a8a31e920d6bba75ae7c0f +SHA512 (glusterfs-7.7.tar.gz) = 0a301802920e337a4931ed36133c76ef551e0c1794d324e5a0a120d289a53fb8a4a2fd8adaa7abe5a40b8b17cc2bb18d01426c9f18d91f68b1589429ddbaa125 From b513261e9700cfb9216e952692a1694b2a04e135 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 20 Jul 2020 17:07:45 -0400 Subject: [PATCH 12/83] 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 13/83] 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 7f2daa43d25791947c58ffaa58a30ff4f7551684 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 22 Jul 2020 08:36:55 -0400 Subject: [PATCH 14/83] 7.7, remove contrib/rpc/xdr_sizeof.c Signed-off-by: Kaleb S. KEITHLEY --- 0001-rpc-rpc-lib-src-Makefile.am.patch | 12 ++++++++++++ glusterfs.spec | 7 ++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 0001-rpc-rpc-lib-src-Makefile.am.patch diff --git a/0001-rpc-rpc-lib-src-Makefile.am.patch b/0001-rpc-rpc-lib-src-Makefile.am.patch new file mode 100644 index 0000000..4b167fc --- /dev/null +++ b/0001-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 7cae433..576ebf4 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -213,6 +213,7 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif +Patch0001: 0001-rpc-rpc-lib-src-Makefile.am.patch Requires(pre): shadow-utils BuildRequires: systemd @@ -671,6 +672,7 @@ 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 +%patch0001 -p1 %build @@ -1381,7 +1383,10 @@ exit 0 %endif %changelog -* Mon Jul 21 2020 Kaleb S. KEITHLEY - 7.7-1 +* Wed Jul 22 2020 Kaleb S. KEITHLEY - 7.7-2 +- 7.7, remove contrib/rpc/xdr_sizeof.c + +* Tue Jul 21 2020 Kaleb S. KEITHLEY - 7.7-1 - 7.7 GA * Mon May 18 2020 Kaleb S. KEITHLEY - 7.6-1 From abe1597d27906f668f26e39529edcfe7769c95df Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Wed, 22 Jul 2020 08:38:09 -0400 Subject: [PATCH 15/83] 7.7, remove contrib/rpc/xdr_sizeof.c 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 576ebf4..2ef97be 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.7 -Release: 1%{?dev:%{dev}}%{?dist} +Release: 2%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ From 5acb75d3e033eaaa85c07437e3ed79e10d813a1b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 20:26:07 +0000 Subject: [PATCH 16/83] - 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 17/83] 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 18/83] 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 aa9a05688944b8b421d23d8aad1c7e833acb1528 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 28 Sep 2020 07:42:13 -0400 Subject: [PATCH 19/83] 7.8 GA Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 17 ++++++++++------- sources | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 2ef97be..8be45c9 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.7 -Release: 2%{?dev:%{dev}}%{?dist} +Version: 7.8 +Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -259,17 +259,17 @@ 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}-ganesha <= %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -1383,6 +1383,9 @@ exit 0 %endif %changelog +* Mon Sep 28 2020 Kaleb S. KEITHLEY - 7.8-1 +- 7.8 GA + * Wed Jul 22 2020 Kaleb S. KEITHLEY - 7.7-2 - 7.7, remove contrib/rpc/xdr_sizeof.c diff --git a/sources b/sources index 5f47d69..27ddd28 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-7.7.tar.gz) = 0a301802920e337a4931ed36133c76ef551e0c1794d324e5a0a120d289a53fb8a4a2fd8adaa7abe5a40b8b17cc2bb18d01426c9f18d91f68b1589429ddbaa125 +SHA512 (glusterfs-7.8.tar.gz) = 40f7df4bb80a372b370366e8f370f9efdf838122be84d5524b2353027b4eb6005a43b808911214c56411264764164d6480418329db94ed0fe284fdcbd9bccbea From aa94a08b5ef8ace7f563aa1104cde62b7384345b Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 5 Nov 2020 09:36:53 -0500 Subject: [PATCH 20/83] 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 21/83] 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 22/83] 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 23/83] 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 24/83] 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 25/83] - 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 26/83] 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 27/83] 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 28/83] 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 29/83] 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 30/83] 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 31/83] 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 32/83] 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 33/83] 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 34/83] 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 35/83] 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 36/83] - 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 37/83] 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 38/83] 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 39/83] 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 40/83] 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 41/83] 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 42/83] 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 43/83] 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 44/83] 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 45/83] 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 46/83] 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 47/83] - 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 48/83] 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 49/83] 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 50/83] 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 51/83] 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 52/83] 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 53/83] 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 54/83] 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 55/83] 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 56/83] 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 57/83] 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 58/83] 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 59/83] 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 60/83] 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 61/83] 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 62/83] 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 63/83] 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 64/83] 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 65/83] 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 66/83] 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 67/83] 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 68/83] 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 69/83] 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 70/83] 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 71/83] 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 72/83] 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 73/83] 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 74/83] 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 75/83] 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 76/83] 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 77/83] 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 78/83] 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 79/83] 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 80/83] 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 81/83] 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 82/83] 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 83/83] 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