From 57285987b863a74410ec3ff10d488d8b633e638e Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Jul 29 2020 15:55:25 +0000 Subject: GlusterFS 8.0 GA --- diff --git a/.glusterfs.metadata b/.glusterfs.metadata index 9849454..87f6ea0 100644 --- a/.glusterfs.metadata +++ b/.glusterfs.metadata @@ -1 +1 @@ -27e696e12f748a57a5404156c4d6a6ce7c73e0f6 SOURCES/glusterfs-7.7.tar.gz +8b9c5d1abcec207b716bd4d6b05957872c3a0f6d SOURCES/glusterfs-8.0.tar.gz diff --git a/SPECS/glusterfs.spec b/SPECS/glusterfs.spec index f0d28ad..9f56414 100644 --- a/SPECS/glusterfs.spec +++ b/SPECS/glusterfs.spec @@ -3,7 +3,7 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag rc1 +# %%global prereltag qa3 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -11,7 +11,7 @@ # asan # if you wish to compile an rpm with address sanitizer... -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --with asan +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with asan %{?_with_asan:%global _with_asan --enable-asan} %if ( 0%{?rhel} && 0%{?rhel} < 7 ) @@ -20,92 +20,82 @@ # cmocka # if you wish to compile an rpm with cmocka unit testing... -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --with cmocka +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka %{?_with_cmocka:%global _with_cmocka --enable-cmocka} # debug # if you wish to compile an rpm with debugging... -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --with debug +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with debug %{?_with_debug:%global _with_debug --enable-debug} # epoll # if you wish to compile an rpm without epoll... -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --without epoll +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without epoll %{?_without_epoll:%global _without_epoll --disable-epoll} # fusermount # if you wish to compile an rpm without fusermount... -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --without fusermount +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without fusermount %{?_without_fusermount:%global _without_fusermount --disable-fusermount} # geo-rep # if you wish to compile an rpm without geo-replication support, compile like this... -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --without georeplication +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication %{?_without_georeplication:%global _without_georeplication --disable-georeplication} # gnfs # if you wish to compile an rpm with the legacy gNFS server xlator -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --with gnfs -%{?_with_gnfs:%global _with_gnfs --enable-gnfs} +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs +%{?_without_gnfs:%global _with_gnfs --disable-gnfs} # ipv6default # if you wish to compile an rpm with IPv6 default... -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --with ipv6default +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default %{?_with_ipv6default:%global _with_ipv6default --with-ipv6-default} # libtirpc # if you wish to compile an rpm without TIRPC (i.e. use legacy glibc rpc) -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --without libtirpc +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without libtirpc %{?_without_libtirpc:%global _without_libtirpc --without-libtirpc} # Do not use libtirpc on EL6, it does not have xdr_uint64_t() and xdr_uint32_t # Do not use libtirpc on EL7, it does not have xdr_sizeof() -%if ( 0%{?rhel} && 0%{?rhel} <= 7 ) +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) %global _without_libtirpc --without-libtirpc %endif # ocf # if you wish to compile an rpm without the OCF resource agents... -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --without ocf +# 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 glusterfs-5.0rc0.tar.gz --without rdma -%{?_without_rdma:%global _without_rdma --disable-ibverbs} - -# No RDMA Support on 32-bit ARM -%ifarch armv7hl -%global _without_rdma --disable-ibverbs -%endif - # server # if you wish to build rpms without server components, compile like this -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --without server +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without server %{?_without_server:%global _without_server --without-server} # disable server components forcefully as rhel <= 6 -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) %global _without_server --without-server %endif # syslog # if you wish to build rpms without syslog logging, compile like this -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --without syslog +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without syslog %{?_without_syslog:%global _without_syslog --disable-syslog} # disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount # Fedora deprecated syslog, see # https://fedoraproject.org/wiki/Changes/NoDefaultSyslog # (And what about RHEL7?) -%if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%if ( ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} < 7 ) ) %global _without_syslog --disable-syslog %endif # tsan # if you wish to compile an rpm with thread sanitizer... -# rpmbuild -ta glusterfs-6.0rc0.tar.gz --with tsan +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with tsan %{?_with_tsan:%global _with_tsan --enable-tsan} %if ( 0%{?rhel} && 0%{?rhel} < 7 ) @@ -114,7 +104,7 @@ # valgrind # if you wish to compile an rpm to run all processes under valgrind... -# rpmbuild -ta glusterfs-5.0rc0.tar.gz --with valgrind +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind %{?_with_valgrind:%global _with_valgrind --enable-valgrind} ##----------------------------------------------------------------------------- @@ -129,14 +119,14 @@ %global _with_firewalld --enable-firewalld %endif -%if 0%{?_tmpfilesdir:1} +%if ( 0%{?_tmpfilesdir:1} ) %global _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} %else %global _with_tmpfilesdir --without-tmpfilesdir %endif # without server should also disable some server-only components -%if 0%{?_without_server:1} +%if ( 0%{?_without_server:1} ) %global _without_events --disable-events %global _without_georeplication --disable-georeplication %global _with_gnfs %{nil} @@ -152,9 +142,9 @@ %endif # From https://fedoraproject.org/wiki/Packaging:Python#Macros -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) -%{!?python2_sitelib: %global python2_sitelib %(python2 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%{!?python2_sitearch: %global python2_sitearch %(python2 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%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 @@ -182,7 +172,7 @@ %{nil} %global service_stop() /sbin/service %1 stop >/dev/null 2>&1 || : \ %{nil} -%global service_install() install -D -p -m 0755 %{_sourcedir}/%1.init %{buildroot}%2 \ +%global service_install() install -D -p -m 0755 %1.init %{buildroot}%2 \ %{nil} # can't seem to make a generic macro that works %global glusterd_svcfile %{_sysconfdir}/init.d/glusterd @@ -210,23 +200,22 @@ ##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order +## All package definitions should be placed here and keep them sorted ## Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 7.7 -Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist} +Version: 8.0 +Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.3 +Release: 0.@PACKAGE_RELEASE@%{?dist}.1 %endif License: GPLv2 or LGPLv3+ -Group: System Environment/Base URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) -Source0: https://download.gluster.org/pub/gluster/%{name}/7/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz +Source0: http://download.gluster.org/pub/gluster/%{name}/8/%{version}%{?dev}/%{name}-%{version}%{?dev}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source7: glusterfsd.service @@ -242,12 +231,12 @@ Requires(pre): shadow-utils BuildRequires: systemd %endif -Requires: %{name}-libs = %{version}-%{release} +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Requires: libgfrpc0%{?_isa} = %{version}-%{release} +Requires: libgfxdr0%{?_isa} = %{version}-%{release} %if ( 0%{?_with_systemd:1} ) %{?systemd_requires} %endif -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig %if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: libasan %endif @@ -263,14 +252,14 @@ BuildRequires: python%{_pythonver}-devel %if ( 0%{?rhel} && 0%{?rhel} < 8 ) BuildRequires: python-ctypes %endif -%if ( 0%{?_with_ipv6default:1} ) || ( 0%{!?_without_libtirpc:1} ) +%if ( ( 0%{?_with_ipv6default:1} ) || ( 0%{!?_without_libtirpc:1} ) ) BuildRequires: libtirpc-devel %endif %if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) BuildRequires: rpcgen %endif BuildRequires: userspace-rcu-devel >= 0.7 -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: automake %endif BuildRequires: libuuid-devel @@ -281,82 +270,47 @@ BuildRequires: libcmocka-devel >= 1.0.1 BuildRequires: libattr-devel %endif -%if (0%{?_with_firewalld:1}) +%if ( 0%{?_with_firewalld:1} ) BuildRequires: firewalld %endif -Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} %if ( 0%{_for_fedora_koji_builds} ) Obsoletes: %{name}-regression-tests %endif -Obsoletes: %{name}-ufo Obsoletes: %{name}-ganesha +Obsoletes: %{name}-rdma < %{version}-%{release} %if ( 0%{!?_with_gnfs:1} ) -Obsoletes: %{name}-gnfs +Obsoletes: %{name}-gnfs < %{version}-%{release} %endif 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 and client framework. -%package api -Summary: GlusterFS api library -Requires: %{name} = %{version}-%{release} -Requires: %{name}-client-xlators = %{version}-%{release} - -%description api -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides the glusterfs libgfapi library. - -%package api-devel -Summary: Development Libraries -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 Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides the api include files. - %package cli Summary: GlusterFS CLI -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 -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 @@ -366,32 +320,14 @@ 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. -%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 Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. - -This package provides the development libraries and include files. - %package extra-xlators Summary: Extra Gluster filesystem Translators # We need python-gluster rpm for gluster module's __init__.py in Python @@ -401,12 +337,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. @@ -425,6 +360,49 @@ 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 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 inlcudes the +glusterfs(d) binary. + +%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 Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is one of the most sophisticated file systems in @@ -432,8 +410,9 @@ 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 inlcudes the -glusterfs(d) binary. +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 @@ -449,12 +428,11 @@ Requires: util-linux %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 @@ -468,29 +446,187 @@ Requires: nfs-utils %description gnfs GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +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 legacy gNFS server xlator %endif -%package libs -Summary: GlusterFS common libraries +%package -n libglusterfs0 +Summary: GlusterFS libglusterfs library +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 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 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 the base GlusterFS libraries +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 @@ -503,39 +639,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 @@ -545,8 +657,7 @@ Requires: %{name}-server = %{version}-%{release} ## thin provisioning support Requires: lvm2 >= 2.02.89 Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng -Requires: python%{_pythonver} -Requires: attr dbench file git libacl-devel net-tools +Requires: python%{_pythonver} attr dbench file git libacl-devel net-tools Requires: nfs-utils xfsprogs yajl psmisc bc %description regression-tests @@ -567,12 +678,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, @@ -585,15 +695,14 @@ Summary: Distributed file-system server Requires: %{name} = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} +Requires: libgfchangelog0 = %{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 = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} # lvm2 for snapshot, and nfs-utils and rpcbind/portmap for gnfs server Requires: lvm2 -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig %if ( 0%{?_with_systemd:1} ) %{?systemd_requires} %else @@ -610,12 +719,12 @@ Requires(postun): /sbin/service Requires: firewalld-filesystem %endif %endif -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} ) Requires: rpcbind %else Requires: portmap %endif -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse %endif %if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) @@ -629,12 +738,11 @@ Requires: valgrind %description server GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA -or TCP/IP interconnect into one large parallel network file -system. GlusterFS is one of the most sophisticated file systems in -terms of features and extensibility. It borrows a powerful concept -called Translators from GNU Hurd kernel. Much of the code in GlusterFS -is in user space and easily manageable. +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 server daemon. %endif @@ -642,6 +750,7 @@ This package provides the glusterfs server daemon. %package thin-arbiter Summary: GlusterFS thin-arbiter module Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release} %description thin-arbiter @@ -656,12 +765,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. @@ -718,14 +826,13 @@ done %{?_without_fusermount} \ %{?_without_georeplication} \ %{?_without_ocf} \ - %{?_without_rdma} \ %{?_without_server} \ %{?_without_syslog} \ %{?_with_ipv6default} \ %{?_without_libtirpc} # fix hardening and remove rpath in shlibs -%if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool %endif sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool @@ -763,7 +870,7 @@ find %{buildroot}%{_libdir} -name '*.la' -delete # Remove installed docs, the ones we want are included by %%doc, in # /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending # on the distribution -%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) rm -rf %{buildroot}%{_pkgdocdir}/* %else rm -rf %{buildroot}%{_defaultdocdir}/%{name} @@ -802,6 +909,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 @@ -848,20 +964,25 @@ rm -rf %{buildroot} %post /sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} ) %systemd_postun_with_restart rsyslog %endif %endif exit 0 -%post api -/sbin/ldconfig - %if ( 0%{!?_without_events:1} ) %post events %systemd_post glustereventsd %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 @@ -870,7 +991,22 @@ fi exit 0 %endif -%post libs +%post -n libglusterfs0 +/sbin/ldconfig + +%post -n libgfapi0 +/sbin/ldconfig + +%post -n libgfchangelog0 +/sbin/ldconfig + +%post -n libgfrpc0 +/sbin/ldconfig + +%post -n libgfxdr0 +/sbin/ldconfig + +%post -n libglusterd0 /sbin/ldconfig %if ( 0%{!?_without_server:1} ) @@ -1002,28 +1138,50 @@ fi ## All %%postun should be placed here and keep them sorted ## %postun -/sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} ) %systemd_postun_with_restart rsyslog %endif %endif -%postun api -/sbin/ldconfig - -%postun libs -/sbin/ldconfig - %if ( 0%{!?_without_server:1} ) %postun server -/sbin/ldconfig %if (0%{?_with_firewalld:1}) %firewalld_reload %endif 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 grouped ## @@ -1036,9 +1194,6 @@ exit 0 %exclude %{_mandir}/man8/gluster.8* %endif %dir %{_localstatedir}/log/glusterfs -%if ( 0%{!?_without_rdma:1} ) -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* -%endif %if 0%{?!_without_server:1} %dir %{_datadir}/glusterfs %dir %{_datadir}/glusterfs/scripts @@ -1092,20 +1247,12 @@ exit 0 %{_tmpfilesdir}/gluster.conf %endif -%files api -%exclude %{_libdir}/*.so -# libgfapi files -%{_libdir}/libgfapi.* -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api.so - -%files api-devel -%{_libdir}/pkgconfig/glusterfs-api.pc -%{_libdir}/libgfapi.so -%dir %{_includedir}/glusterfs -%dir %{_includedir}/glusterfs/api - %{_includedir}/glusterfs/api/* +%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 cli %{_sbindir}/gluster @@ -1117,14 +1264,33 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so %{_libdir}/glusterfs/%{version}%{?prereltag}/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 + %files client-xlators %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster @@ -1175,7 +1341,6 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %endif - %if ( 0%{!?_without_georeplication:1} ) %files geo-replication %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep @@ -1187,6 +1352,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 @@ -1203,19 +1375,28 @@ exit 0 %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre -%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 -%{_libdir}/*.so.* -%exclude %{_libdir}/libgfapi.* +%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. @@ -1231,12 +1412,6 @@ exit 0 %{python2_sitelib}/gluster/cliutils %endif -%if ( 0%{!?_without_rdma:1} ) -%files rdma -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport - %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* -%endif - %if ( ! 0%{_for_fedora_koji_builds} ) %files regression-tests %dir %{_datadir}/glusterfs @@ -1245,6 +1420,19 @@ exit 0 %exclude %{_datadir}/glusterfs/tests/vagrant %endif +%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_ocf:1} ) %files resource-agents # /usr/lib is the standard for OCF, also on x86_64 @@ -1279,7 +1467,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 @@ -1424,8 +1612,9 @@ exit 0 %endif %changelog -* Tue Jul 21 2020 Niels de Vos - 7.7-1 -- 7.7 GA +* Tue Jul 28 2020 Niels de Vos - 8.0-1 +- refactor, common practice, Issue #1126 +- 8.0 GA * Tue Jun 9 2020 Niels de Vos - 7.6-1 - 7.6 GA @@ -1433,205 +1622,275 @@ exit 0 * Thu Apr 16 2020 Niels de Vos - 7.5-1 - 7.5 GA -* Wed Mar 18 2020 Niels de Vos - 7.4-1 -- GlusterFS 7.4 GA +* Mon Feb 17 2020 Kaleb S. KEITHLEY - 7.3-1 +- 7.3 GA + +* Wed Jan 15 2020 Kaleb S. KEITHLEY - 7.2-1 +- 7.2 GA + +* Mon Dec 23 2019 Kaleb S. KEITHLEY - 7.1-1 +- 7.1 GA -* Mon Feb 17 2020 Niels de Vos - 7.3-1 -- GlusterFS 7.3 GA +* Tue Oct 15 2019 Kaleb S. KEITHLEY - 7.0-1 +- 7.0 GA -* Wed Jan 15 2020 Niels de Vos - 7.2-1 -- GlusterFS 7.2 GA +* Wed Oct 9 2019 Kaleb S. KEITHLEY +- bd xlator was removed in glusterfs-6 -* Tue Dec 24 2019 Niels de Vos - 7.1-1 -- GlusterFS 7.1 GA -- remove leftover bd xlator cruft +* Tue Oct 1 2019 Kaleb S. KEITHLEY - 7.0-0.5rc3 +- 7.0 RC3 (note, rc2 was tagged but not released) -* Wed Oct 16 2019 Niels de Vos - 7.0-1 -- GlusterFS 7.0 GA +* Mon Sep 16 2019 Kaleb S. KEITHLEY - 7.0-0.4rc1 +- disable gnfs by default -* Mon Sep 16 2019 Niels de Vos - 7.0-0.1.rc1 -- GlusterFS 7.0 Release Candidate 1 +* Mon Sep 16 2019 Kaleb S. KEITHLEY - 7.0-0.3rc1 +- 7.0 RC1 -* Wed Aug 28 2019 Niels de Vos - 7.0-0.1.rc0 -- GlusterFS 7.0 Release Candidate 0 -- always build glusterfs-cli to allow monitoring/managing from clients +* Wed Aug 28 2019 Kaleb S. KEITHLEY - 7.0-0.2rc0 +- python3-requests, el-8 -* Wed Aug 7 2019 Niels de Vos - 6.5-1 +* Thu Aug 22 2019 Kaleb S. KEITHLEY - 7.0-0.1rc0 +- 7.0 RC0 + +* Mon Aug 19 2019 Kaleb S. KEITHLEY - 6.5-2 +- Rebuilt for Python 3.8, again + +* Mon Aug 19 2019 Miro HronĨok - 6.5-1.1 +- Rebuilt for Python 3.8 + +* Wed Aug 7 2019 Kaleb S. KEITHLEY - 6.5-1 - 6.5 GA -* Wed Jul 17 2019 Niels de Vos - 6.4-1 +* Thu Aug 1 2019 Kaleb S. KEITHLEY - 6.4-3 +- restore i686 + +* Thu Aug 1 2019 Kaleb S. KEITHLEY - 6.4-2 +- temporarily exclude i686 pending firewalld resolution + +* Thu Jul 25 2019 Fedora Release Engineering - 6.4-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jul 17 2019 Kaleb S. KEITHLEY - 6.4-1 +- 6.4 GA + +* Wed Jul 17 2019 Kaleb S. KEITHLEY - 6.4-1 - 6.4 GA -* Tue Jun 11 2019 Niels de Vos - 6.3-1 +* Tue Jun 11 2019 Kaleb S. KEITHLEY - 6.3-1 - 6.3 GA -* Wed May 29 2019 Kaleb S. KEITHLEY - 6.2-1 +* Fri May 24 2019 Kaleb S. KEITHLEY - 6.2-1 - 6.2 GA -* Wed Apr 17 2019 Niels de Vos - 6.1-1 +* Mon Apr 22 2019 Kaleb S. KEITHLEY - 6.1-2 +- 6.1 GA, glusterfs-thin-arbiter Requires: glusterfs-libs + +* Wed Apr 17 2019 Kaleb S. KEITHLEY - 6.1-1 - 6.1 GA -* Wed Mar 20 2019 Kaleb S. KEITHLEY - 6.0-1 +* Wed Mar 20 2019 Kaleb S. KEITHLEY - 6.0-1 - 6.0 GA -* Wed Mar 13 2019 Niels de Vos - 6.0-0.1.rc1 -- 6.0 Release Candidate 1 -- s390x has RDMA, since around Fedora 27 and in RHEL7 since June 2016 +* Wed Mar 13 2019 Kaleb S. KEITHLEY - 6.0rc1-0.4 +- 6.0 RC1 + +* Wed Mar 6 2019 Kaleb S. KEITHLEY - 6.0rc0-0.3 +- 6.0 RC0 +- restore s390x rdma +- remove obsolete scripts from +- https://src.fedoraproject.org/rpms/glusterfs/pull-request/5 -* Fri Feb 22 2019 Niels de Vos - 6.0-0.1.rc0 -- 6.0 Release Candidate 0 -- Install /var/lib/glusterd/groups/distributed-virt by default -- Add an option to build with ThreadSanitizer (TSAN) -- Obsoleting gluster-gnfs package +* Fri Mar 1 2019 Kaleb S. KEITHLEY - 6.0rc0-0.2 +- 6.0 RC0, s390x, armv7hl no rdma -* Thu Jan 17 2019 Niels de Vos - 5.3-1 +* Fri Feb 22 2019 Kaleb S. KEITHLEY - 6.0rc0-0.1 +- 6.0 RC0 + +* Wed Feb 20 2019 Kaleb S. KEITHLEY - 5.3-2 +- re-rebuild for f31/rawhide + +* Wed Feb 20 2019 Kaleb S. KEITHLEY - 5.3-1 +- rebuild for f31/rawhide + +* Sun Feb 17 2019 Igor Gnatenko - 5.3-2.1 +- Rebuild for readline 8.0 + +* Thu Feb 14 2019 Kaleb S. KEITHLEY - 5.3-2 +- Re-rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 5.3-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 17 2019 Kaleb S. KEITHLEY - 5.3-1 - 5.3 GA -* Thu Dec 13 2018 Niels de Vos - 5.2-1 +* Thu Dec 13 2018 Kaleb S. KEITHLEY - 5.2-1 - 5.2 GA -* Thu Nov 15 2018 Niels de Vos - 5.1-1 +* Wed Nov 14 2018 Kaleb S. KEITHLEY - 5.1-1 - 5.1 GA -* Fri Oct 19 2018 Niels de Vos - 5.0-1 -- 5.0 General Availability +* Thu Oct 18 2018 Kaleb S. KEITHLEY - 5.0-1 +- 5.0 GA + +* Fri Oct 5 2018 Kaleb S. KEITHLEY - 5.0-0.5.rc1 +- 5.0 RC1 + +* Mon Sep 24 2018 Kaleb S. KEITHLEY - 5.0-0.3.rc0 +- 5.0 RC0, unbork python shebangs -* Mon Oct 8 2018 Niels de Vos - 5.0-0.1.rc1 -- 5.0 Release Candidate 1 +* Thu Sep 20 2018 Kaleb S. KEITHLEY - 5.0-0.2.rc0 +- 5.0 RC0 -* Tue Sep 18 2018 Niels de Vos - 5.0-0.1.rc0 -- 5.0 Release Candidate 0 -- Add an option to build with address sanitizer (ASAN) -- Disable building glusterfs-resource-agents on el6 (#1609551) +* Tue Sep 18 2018 Kaleb S. KEITHLEY - 5.0-0.1.rc0 +- 5.0 RC0 -* Thu Sep 6 2018 Niels de Vos - 4.1.4-1 +* Thu Sep 6 2018 Kaleb S. KEITHLEY - 4.1.4-1 - 4.1.4 GA -* Mon Aug 27 2018 Niels de Vos - 4.1.3-1 +* Tue Sep 4 2018 Kaleb S. KEITHLEY - 4.1.3-2 +- missing /run/gluster/metrics, see bz#1624006 + +* Tue Sep 4 2018 Kaleb S. KEITHLEY +- --with-ipv6-default bz#1614769 + +* Mon Aug 27 2018 Kaleb S. KEITHLEY - 4.1.3-1 - 4.1.3 GA -* Tue Jul 24 2018 Niels de Vos - 4.1.2-1 +* Wed Jul 25 2018 Kaleb S. KEITHLEY - 4.1.2-3 +- 4.1.2, again + +* Tue Jul 24 2018 Kaleb S. KEITHLEY - 4.1.2-2 +- 4.1.2, gsyncd.conf /usr/local/sbin + +* Tue Jul 24 2018 Kaleb S. KEITHLEY - 4.1.2-1 - 4.1.2 GA -* Mon Jun 25 2018 Niels de Vos - 4.1.1-1 +* Fri Jul 13 2018 Fedora Release Engineering - 4.1.1-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jul 11 2018 Kaleb S. KEITHLEY - 4.1.1-2 +- missed python->python2 in shebang + +* Tue Jun 26 2018 Kaleb S. KEITHLEY - 4.1.1-1 - 4.1.1 GA -* Tue Jun 12 2018 Niels de Vos - 4.1.0-1 -- 4.1.0 General Availability +* Tue Jun 12 2018 Kaleb S. KEITHLEY - 4.1.0-1 +- 4.1.0 GA -* Sat Jun 2 2018 Niels de Vos - 4.1.0-0.1.rc0 -- 4.1.0 Release Candidate 0 +* Fri Jun 1 2018 Kaleb S. KEITHLEY - 4.1.0rc0 +- 4.1.0 RC0 * Tue Apr 24 2018 Niels de Vos - 4.0.2-1 - 4.0.2 GA -* Wed Mar 21 2018 Kaleb S. KEITHLEY - 4.0.1-1 +* Thu Apr 19 2018 Kaleb S. KEITHLEY - 4.0.1-3 +- 4.0.1, restore python->python2 -prettytable + +* Wed Mar 21 2018 Kaleb S. KEITHLEY - 4.0.1-2 - 4.0.1 GA -* Mon Mar 12 2018 Kaleb S. KEITHLEY - 4.0.0-2 +* Wed Mar 21 2018 Kaleb S. KEITHLEY - 4.0.1-1 +- (skipped by accident) + +* Tue Mar 6 2018 Kaleb S. KEITHLEY - 4.0.0-2 - 4.0.0 GA (v4.0.0-2 respin) -* Tue Mar 6 2018 Kaleb S. KEITHLEY - 4.0.0-1 +* Tue Mar 6 2018 Kaleb S. KEITHLEY - 4.0.0-1 - 4.0.0 GA -* Tue Feb 27 2018 Kaleb S. KEITHLEY - 4.0.0-0.1.rc1 -- 4.0.0 Release Candidate 1 - -* Thu Feb 22 2018 Kotresh HR -- Added util-linux as dependency to georeplication rpm (#1544382) +* Thu Mar 1 2018 Kaleb S. KEITHLEY - 4.0.0-0.2rc1 +- 4.0.0 RC1, python2-prettytable, .../rpms/glusterfs/pull-request/3 -* Thu Feb 1 2018 Niels de Vos - 4.0.0-0.1.rc0 -- 4.0.0 Release Candidate 0 -- Fedora 28 has renamed pyxattr -- Added control-cpu-load.sh and control-mem.sh scripts to glusterfs-server section(#1496335) -- libibverbs-devel, librdmacm-devel -> rdma-core-devel #1483995 +* Tue Feb 27 2018 Kaleb S. KEITHLEY - 4.0.0-0.1rc1 +- 4.0.0 RC1 -* Tue Jan 23 2018 Niels de Vos - 3.13.2-2 -- rebuild for updated userspace-rcu +* Fri Feb 2 2018 Kaleb S. KEITHLEY - 4.0.0rc0-1 +- 4.0.0 RC0 -* Sat Jan 20 2018 Niels de Vos - 3.13.2-1 +* Sat Jan 20 2018 Kaleb S. KEITHLEY - 3.13.2-1 - 3.13.2 GA -* Thu Dec 21 2017 Niels de Vos - 3.13.1-1 +* Thu Jan 18 2018 Kaleb S. KEITHLEY - 3.13.1-3 +- glibc in Fedora 28 has removed rpc headers and rpcgen, use libtirpc + +* Mon Dec 25 2017 Niels de Vos - 3.13.1-2 +- Fedora 28 has renamed pyxattr + +* Thu Dec 21 2017 Kaleb S. KEITHLEY - 3.13.1-1 - 3.13.1 GA -* Sun Dec 3 2017 Kaleb S. KEITHLEY - 3.13.0-1 +* Sat Dec 2 2017 Kaleb S. KEITHLEY - 3.13.0-1 - 3.13.0 GA -* Wed Nov 22 2017 Niels de Vos - 3.13.0-0.1.rc0 -- 3.13.0 Release Candidate 0 +* Wed Nov 22 2017 Kaleb S. KEITHLEY - 3.13.0-0.1.rc0 +- 3.13.0 RC0 -* Wed Nov 22 2017 Niels de Vos - 3.12.3-1 +* Mon Nov 13 2017 Kaleb S. KEITHLEY - 3.12.3-1 - 3.12.3 GA -- revert JWT signing support for eventsapi -* Tue Oct 31 2017 Niels de Vos - 3.12.2-2 -* gfapi: set lkowner in glfd (bz#1501956) +* Mon Oct 23 2017 Kaleb S. KEITHLEY - 3.12.2-2 +- 3.12.2, bz #1504256 -* Fri Oct 13 2017 Niels de Vos - 3.12.2-1 +* Fri Oct 13 2017 Kaleb S. KEITHLEY - 3.12.2-1 - 3.12.2 GA -* Wed Sep 27 2017 Niels de Vos - 2.12.1-2 -- cli: Bypass the confirmation question creating replica 2 volume with force (bz#1495858) +* Thu Sep 28 2017 Kaleb S. KEITHLEY - 3.12.1-2 +- 3.12.1 bz 1495858 -* Mon Sep 11 2017 Niels de Vos - 3.12.1-1 +* Mon Sep 11 2017 Kaleb S. KEITHLEY - 3.12.1-1 - 3.12.1 GA -* Wed Aug 30 2017 Niels de Vos - 3.12.0-1 -- 3.12.0 Release Candidate GA -- Added new tool/binary to set the gfid2path xattr on files -- libibverbs-devel, librdmacm-devel -> rdma-core-devel +* Wed Aug 30 2017 Kaleb S. KEITHLEY - 3.12.0-1 +- 3.12.0 GA + +* Tue Aug 22 2017 Kaleb S. KEITHLEY - 3.11.3-2 +- 3.11.3 libibverbs-devel, librdmacm-devel -> rdma-core-devel + +* Mon Aug 21 2017 Kaleb S. KEITHLEY - 3.11.3-1 +- 3.11.3 GA -* Wed Aug 16 2017 Niels de Vos - 3.12.0-0.1rc0_1 -- rebuilt for new userspace-rcu +* Wed Aug 02 2017 Fedora Release Engineering - 3.11.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild -* Thu Aug 10 2017 Niels de Vos - 3.12.0-0.rc0 -- 3.12.0 Release Candidate 0 -- various directories not owned by any package -- Add glusterfssharedstorage.service systemd file +* Wed Jul 26 2017 Fedora Release Engineering - 3.11.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild -* Sat Jul 22 2017 Niels de Vos - 3.11.2-1 +* Fri Jul 21 2017 Kaleb S. KEITHLEY - 3.11.2-1 - 3.11.2 GA -* Tue Jun 27 2017 Niels de Vos - 3.11.1-1 +* Fri Jul 07 2017 Igor Gnatenko - 3.11.1-2 +- Rebuild due to bug in RPM (RHBZ #1468476) + +* Wed Jun 28 2017 Kaleb S. KEITHLEY - 3.11.1-1 - 3.11.1 GA -- Install /var/lib/glusterd/groups/nl-cache by default -* Mon Jun 19 2017 Niels de Vos - 3.11.0-2 -- Build the glusterfs-gnfs sub-package +* Sun Jun 25 2017 Kaleb S. KEITHLEY - 3.11.0-2 +- rebuild with userspace-rcu-0.10.0 (liburcu-bp.so.6) -* Tue May 30 2017 Niels de Vos - 3.11.0 +* Tue May 30 2017 Kaleb S. KEITHLEY - 3.11.0-1 - 3.11.0 GA -- Install /var/lib/glusterd/groups/gluster-block by default - -* Tue May 30 2017 Niels de Vos - 3.11.0rc1 -- 3.11.0 Release Candidate 1 - -* Tue May 16 2017 Niels de Vos - 3.11.0rc0 -- 3.11.0 Release Candidate 0 -- gnfs in an optional subpackage -- /var/run/gluster owner gluster:gluster(0775) for qemu(gfapi) - statedumps (#1445569) -- Install SELinux hook scripts that manage contexts for bricks (#1047975) -- firewalld-filesystem -> firewalld (#1443959) -- the -regression-tests sub-package needs "bc" for some tests (#1442145) -- Drop dependency on psmisc, pkill is used instead of killall (#1197308) -- remove ganesha (#1418417) - -* Mon May 15 2017 Niels de Vos - 3.10.2 -- 3.10.2 GA - -* Fri Mar 31 2017 Niels de Vos - 3.10.1 + +* Tue May 23 2017 Kaleb S. KEITHLEY - 3.11.0-0.4rc1 +- 3.11.0 RC1 + +* Tue May 9 2017 Kaleb S. KEITHLEY - 3.11.0-0.3rc0 +- Enable gnfs subpackage + +* Tue May 9 2017 Niels de Vos - 3.11.0-0.2rc0 +- remove conflicting _localstate_/run/gluster dir + +* Mon May 8 2017 Kaleb S. KEITHLEY - 3.11.0-0.1rc0 +- 3.11.0 RC0 + +* Thu Mar 30 2017 Kaleb S. KEITHLEY - 3.10.1-1 - 3.10.1 GA -* Fri Feb 24 2017 Kaleb S. KEITHLEY - 3.10.01 +* Thu Feb 23 2017 Kaleb S. KEITHLEY - 3.10.0-1 - 3.10.0 GA -* Wed Feb 22 2017 Niels de Vos +* Tue Feb 21 2017 Kaleb S. KEITHLEY - 3.10.0-0.2rc1 - 3.10.0 RC1 -- Obsolete and Provide python-gluster for upgrading from glusterfs < 3.10 -- revert switch to storhaug HA -- Install /var/lib/glusterd/groups/metadata-cache by default * Tue Feb 7 2017 Kaleb S. KEITHLEY - 3.10.0-0.1rc0 - 3.10.0 RC0 @@ -1698,7 +1957,7 @@ exit 0 - 3.8.0 RC1 * Wed Apr 27 2016 Kaleb S. KEITHLEY - 3.7.11-2 -- %postun libs on RHEL6 w/o firewalld +- %%postun libs on RHEL6 w/o firewalld * Mon Apr 18 2016 Kaleb S. KEITHLEY - 3.7.11-1 - GlusterFS 3.7.11 GA