From c7749bce5c3464c86b33154b2dcbc13430f7c397 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Jul 28 2020 16:03:30 +0000 Subject: GlusterFS 8.0 GA --- diff --git a/.glusterfs.metadata b/.glusterfs.metadata index 6f6c231..87f6ea0 100644 --- a/.glusterfs.metadata +++ b/.glusterfs.metadata @@ -1 +1 @@ -e1bdf3f430bf0a215c5f7e6359b6fd9183c60113 SOURCES/glusterfs-7.6.tar.gz +8b9c5d1abcec207b716bd4d6b05957872c3a0f6d SOURCES/glusterfs-8.0.tar.gz diff --git a/SPECS/glusterfs.spec b/SPECS/glusterfs.spec index 3c50487..9f56414 100644 --- a/SPECS/glusterfs.spec +++ b/SPECS/glusterfs.spec @@ -1,13 +1,9 @@ -# This package depends on automagic byte compilation -# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 -%global _python_bytecompile_extra 1 - %global _hardened_build 1 %global _for_fedora_koji_builds 1 -# uncomment and add '%' to use the %%dev for pre-releases -#%%global dev rc3 +# uncomment and add '%' to use the prereltag for pre-releases +# %%global prereltag qa3 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted @@ -68,21 +64,12 @@ %global _without_libtirpc --without-libtirpc %endif + # ocf # if you wish to compile an rpm without the OCF resource agents... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} -# rdma -# if you wish to compile an rpm without rdma support, compile like this... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma -%{?_without_rdma:%global _without_rdma --disable-ibverbs} - -# 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 @@ -218,7 +205,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 7.6 +Version: 8.0 Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -228,7 +215,7 @@ Release: 0.@PACKAGE_RELEASE@%{?dist}.1 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://download.gluster.org/pub/gluster/%{name}/8/%{version}%{?dev}/%{name}-%{version}%{?dev}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source7: glusterfsd.service @@ -237,15 +224,19 @@ Source8: glusterfsd.init Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) + Requires(pre): shadow-utils +%if ( 0%{?_with_systemd:1} ) 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 @@ -283,80 +274,43 @@ BuildRequires: libattr-devel 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} -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 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,47 +320,28 @@ 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 python2-gluster rpm for gluster module's __init__.py in Python +# We need python-gluster rpm for gluster module's __init__.py in Python # site-packages area Requires: python%{_pythonver}-gluster = %{version}-%{release} 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 includes the -glusterfsd and glusterfs binaries. +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 @@ -443,16 +422,17 @@ Requires: %{name}-server = %{version}-%{release} Requires: python%{_pythonver} Requires: python%{_pythonver}-prettytable Requires: python%{_pythonver}-gluster = %{version}-%{release} + Requires: rsync +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 @@ -466,31 +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 -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig +%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 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 base GlusterFS libraries +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 @@ -558,6 +670,7 @@ regression testing of Gluster. Summary: OCF Resource Agents for GlusterFS License: GPLv3+ BuildArch: noarch +# this Group handling comes from the Fedora resource-agents package # for glusterd Requires: %{name}-server = %{version}-%{release} # depending on the distribution, we need pacemaker or resource-agents @@ -565,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, @@ -583,16 +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: psmisc Requires: lvm2 -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig %if ( 0%{?_with_systemd:1} ) %{?systemd_requires} %else @@ -628,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 @@ -647,7 +756,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} %description thin-arbiter This package provides a tie-breaker functionality to GlusterFS replicate volume. It includes translators required to provide the -functionality, and also few other scripts required for setup. +functionality, and also few other scripts required for getting the setup done. This package provides the glusterfs thin-arbiter translator. @@ -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. @@ -689,7 +797,7 @@ GlusterFS Events %endif %prep -%setup -q -n %{name}-%{version}%{?dev} +%setup -q -n %{name}-%{version}%{?prereltag} %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do @@ -718,7 +826,6 @@ done %{?_without_fusermount} \ %{?_without_georeplication} \ %{?_without_ocf} \ - %{?_without_rdma} \ %{?_without_server} \ %{?_without_syslog} \ %{?_with_ipv6default} \ @@ -773,7 +880,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 @@ -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 @@ -839,6 +955,9 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus install -p -m 0744 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster +%clean +rm -rf %{buildroot} + ##----------------------------------------------------------------------------- ## All %%post should be placed here and keep them sorted ## @@ -851,14 +970,19 @@ install -p -m 0744 -D extras/command-completion/gluster.bash \ %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 @@ -867,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} ) @@ -1007,13 +1146,42 @@ fi %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 ## @@ -1026,9 +1194,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 @@ -1037,65 +1202,57 @@ 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 %if 0%{?_tmpfilesdir:1} && 0%{!?_without_server:1} %{_tmpfilesdir}/gluster.conf %endif -%files api -%exclude %{_libdir}/*.so -# libgfapi files -%{_libdir}/libgfapi.* -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator -%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/* +%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 @@ -1103,40 +1260,59 @@ exit 0 %{_sysconfdir}/bash_completion.d/gluster %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 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}%{?dev}/xlator -%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 +%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 extra-xlators -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator -%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 +%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 -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mount - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mount/fuse.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so /sbin/mount.glusterfs %if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs @@ -1144,9 +1320,9 @@ exit 0 %if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} ) %files gnfs -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/nfs - %{_libdir}/glusterfs/%{version}%{?dev}/xlator/nfs/server.so +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/server.so %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/nfs-server.vol %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run @@ -1154,15 +1330,16 @@ 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 +%if ( 0%{?_with_systemd:1} ) %{_unitdir}/gluster-ta-volume.service - +%endif %if ( 0%{!?_without_georeplication:1} ) %files geo-replication @@ -1175,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 @@ -1184,7 +1368,6 @@ exit 0 %{_libexecdir}/glusterfs/peer_georep-sshkey.py* %{_sbindir}/gluster-georep-sshkey - %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create @@ -1192,20 +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.* -# 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. @@ -1221,12 +1412,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 %{_datadir}/glusterfs @@ -1235,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 @@ -1251,7 +1449,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} ) @@ -1269,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 @@ -1280,28 +1478,28 @@ exit 0 %{_mandir}/man8/gluster-setgfid2path.8* # xlators -%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator -%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 +%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 @@ -1365,7 +1563,7 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh -%config(noreplace) %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options +%config(noreplace) %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/quotad %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/scrub @@ -1414,6 +1612,10 @@ exit 0 %endif %changelog +* 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