Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
This commit is contained in:
Kaleb S. KEITHLEY 2018-09-18 07:35:21 -04:00
parent 4526f13f80
commit 68233240eb
2 changed files with 101 additions and 57 deletions

View File

@ -3,12 +3,21 @@
%global _for_fedora_koji_builds 1 %global _for_fedora_koji_builds 1
# uncomment and add '%' to use the prereltag for pre-releases # uncomment and add '%' to use the prereltag for pre-releases
# %%global prereltag rc0 %global prereltag rc0
##----------------------------------------------------------------------------- ##-----------------------------------------------------------------------------
## All argument definitions should be placed here and keep them sorted ## All argument definitions should be placed here and keep them sorted
## ##
# asan
# if you wish to compile an rpm with address sanitizer...
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with asan
%{?_with_asan:%global _with_asan --enable-asan}
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
%global _with_asan %{nil}
%endif
# bd # bd
# if you wish to compile an rpm without the BD map support... # if you wish to compile an rpm without the BD map support...
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd
@ -149,6 +158,14 @@
%global _without_ocf --without-ocf %global _without_ocf --without-ocf
%endif %endif
%if ( 0%{?fedora} && 0%{?fedora} > 26 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
%global _usepython3 1
%global _pythonver 3
%else
%global _usepython3 0
%global _pythonver 2
%endif
# From https://fedoraproject.org/wiki/Packaging:Python#Macros # From https://fedoraproject.org/wiki/Packaging:Python#Macros
%if ( 0%{?rhel} && 0%{?rhel} < 7 ) %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_sitelib: %global python2_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
@ -217,8 +234,8 @@
Summary: Distributed File System Summary: Distributed File System
%if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{_for_fedora_koji_builds} )
Name: glusterfs Name: glusterfs
Version: 4.1.4 Version: 5.0
Release: %{?prereltag:1.}1%{?prereltag:.%{prereltag}}%{?dist} Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}
%else %else
Name: @PACKAGE_NAME@ Name: @PACKAGE_NAME@
Version: @PACKAGE_VERSION@ Version: @PACKAGE_VERSION@
@ -228,8 +245,6 @@ License: GPLv2 or LGPLv3+
URL: http://docs.gluster.org/ URL: http://docs.gluster.org/
%if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{_for_fedora_koji_builds} )
Source0: http://download.gluster.org/pub/gluster/%{name}/4.1/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz Source0: http://download.gluster.org/pub/gluster/%{name}/4.1/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz
Patch0: python.patch
Patch1: 0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch
Source1: glusterd.sysconfig Source1: glusterd.sysconfig
Source2: glusterfsd.sysconfig Source2: glusterfsd.sysconfig
Source6: rhel5-load-fuse-modules Source6: rhel5-load-fuse-modules
@ -241,9 +256,6 @@ Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz
Requires(pre): shadow-utils Requires(pre): shadow-utils
%if ( 0%{?rhel} && 0%{?rhel} < 6 )
BuildRequires: python2-simplejson
%endif
%if ( 0%{?_with_systemd:1} ) %if ( 0%{?_with_systemd:1} )
BuildRequires: systemd BuildRequires: systemd
%endif %endif
@ -252,12 +264,15 @@ Requires: %{name}-libs = %{version}-%{release}
%if ( 0%{?_with_systemd:1} ) %if ( 0%{?_with_systemd:1} )
%{?systemd_requires} %{?systemd_requires}
%endif %endif
%if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 )
BuildRequires: libasan
%endif
BuildRequires: bison flex BuildRequires: bison flex
BuildRequires: gcc make libtool BuildRequires: gcc make libtool
BuildRequires: ncurses-devel readline-devel BuildRequires: ncurses-devel readline-devel
BuildRequires: libxml2-devel openssl-devel BuildRequires: libxml2-devel openssl-devel
BuildRequires: libaio-devel libacl-devel BuildRequires: libaio-devel libacl-devel
BuildRequires: python2-devel BuildRequires: python%{_pythonver}-devel
%if ( 0%{?rhel} && 0%{?rhel} < 8 ) %if ( 0%{?rhel} && 0%{?rhel} < 8 )
BuildRequires: python-ctypes BuildRequires: python-ctypes
%endif %endif
@ -403,13 +418,13 @@ This package provides the development libraries and include files.
%package events %package events
Summary: GlusterFS Events Summary: GlusterFS Events
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: python2 Requires: python%{_python_ver}
Requires: python2-prettytable Requires: python%{_python_ver}-prettytable
Requires: python2-gluster = %{version}-%{release} Requires: python%{_python_ver}-gluster = %{version}-%{release}
%if ( 0%{?rhel} ) %if ( 0%{?rhel} )
Requires: python-requests Requires: python-requests
%else %else
Requires: python2-requests Requires: python%{_python_ver}-requests
%endif %endif
%if ( 0%{?rhel} && 0%{?rhel} < 7 ) %if ( 0%{?rhel} && 0%{?rhel} < 7 )
Requires: python-argparse Requires: python-argparse
@ -434,8 +449,8 @@ This package provides the GlusterFS Events
Summary: Extra Gluster filesystem Translators Summary: Extra Gluster filesystem Translators
# We need python2-gluster rpm for gluster module's __init__.py in Python # We need python2-gluster rpm for gluster module's __init__.py in Python
# site-packages area # site-packages area
Requires: python2-gluster = %{version}-%{release} Requires: python%{_python_ver}-gluster = %{version}-%{release}
Requires: python2 Requires: python%{_python_ver}
%description extra-xlators %description extra-xlators
GlusterFS is a distributed file-system capable of scaling to several GlusterFS is a distributed file-system capable of scaling to several
@ -473,14 +488,29 @@ is in user space and easily manageable.
This package provides support to FUSE based clients and includes the This package provides support to FUSE based clients and includes the
glusterfsd and glusterfs binaries. glusterfsd and glusterfs binaries.
%package cloudsync-plugins
Summary: Cloudsync Plugins
BuildRequires: libcurl-devel
%description cloudsync-plugins
GlusterFS is a distributed file-system capable of scaling to several
petabytes. It aggregates various storage bricks over Infiniband RDMA
or TCP/IP interconnect into one large parallel network file
system. GlusterFS is one of the most sophisticated file systems in
terms of features and extensibility. It borrows a powerful concept
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
is in user space and easily manageable.
This package provides cloudsync plugins for archival feature.
%if ( 0%{!?_without_georeplication:1} ) %if ( 0%{!?_without_georeplication:1} )
%package geo-replication %package geo-replication
Summary: GlusterFS Geo-replication Summary: GlusterFS Geo-replication
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: %{name}-server = %{version}-%{release} Requires: %{name}-server = %{version}-%{release}
Requires: python2 Requires: python%{_pythonver}
Requires: python2-prettytable Requires: python%{_pythonver}-prettytable
Requires: python2-gluster = %{version}-%{release} Requires: python%{_pythonver}-gluster = %{version}-%{release}
Requires: rsync Requires: rsync
%description geo-replication %description geo-replication
@ -528,35 +558,26 @@ is in user space and easily manageable.
This package provides the base GlusterFS libraries This package provides the base GlusterFS libraries
%package -n python-gluster %package -n python%{_pythonver}-gluster
Summary: GlusterFS python library Summary: GlusterFS python library
%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) ) Requires: python%{_pythonver}
# EL5 does not support noarch sub-packages %if ( ! %{_usepython3} )
BuildArch: noarch %{?python_provide:%python_provide python-gluster}
%endif
%global _python_gluster_description \
GlusterFS is a distributed file-system capable of scaling to several\
petabytes. It aggregates various storage bricks over Infiniband RDMA\
or TCP/IP interconnect into one large parallel network file\
system. GlusterFS is one of the most sophisticated file systems in\
terms of features and extensibility. It borrows a powerful concept\
called Translators from GNU Hurd kernel. Much of the code in GlusterFS\
is in user space and easily manageable.\
\
This package contains the python modules of GlusterFS and own gluster\
namespace.
%description -n python-gluster %{_python_gluster_description}
%package -n python2-gluster
Summary: GlusterFS python library
%{?python_provide:%python_provide python2-gluster}
Requires: python2
Provides: python-gluster = %{version}-%{release} Provides: python-gluster = %{version}-%{release}
Obsoletes: python-gluster < 3.10 Obsoletes: python-gluster < 3.10
%endif
%description -n python2-gluster %{_python_gluster_description} %description -n python%{_pythonver}-gluster
GlusterFS is a distributed file-system capable of scaling to several
petabytes. It aggregates various storage bricks over Infiniband RDMA
or TCP/IP interconnect into one large parallel network file
system. GlusterFS is one of the most sophisticated file systems in
terms of features and extensibility. It borrows a powerful concept
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
is in user space and easily manageable.
This package contains the python modules of GlusterFS and own gluster
namespace.
%if ( 0%{!?_without_rdma:1} ) %if ( 0%{!?_without_rdma:1} )
%package rdma %package rdma
@ -590,7 +611,7 @@ Requires: %{name}-server = %{version}-%{release}
## thin provisioning support ## thin provisioning support
Requires: lvm2 >= 2.02.89 Requires: lvm2 >= 2.02.89
Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng
Requires: python2 attr dbench file git libacl-devel net-tools Requires: python%{_pythonver} attr dbench file git libacl-devel net-tools
Requires: nfs-utils xfsprogs yajl psmisc bc Requires: nfs-utils xfsprogs yajl psmisc bc
%description regression-tests %description regression-tests
@ -666,8 +687,8 @@ Obsoletes: %{name}-geo-replication = %{version}-%{release}
%if ( 0%{?rhel} && 0%{?rhel} < 7 ) %if ( 0%{?rhel} && 0%{?rhel} < 7 )
Requires: python-argparse Requires: python-argparse
%endif %endif
%if ( 0%{?fedora} && 0%{?fedora} > 27 ) %if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
Requires: python2-pyxattr Requires: python%{_pythonver}-pyxattr
%else %else
Requires: pyxattr Requires: pyxattr
%endif %endif
@ -690,8 +711,6 @@ This package provides the glusterfs server daemon.
%prep %prep
%setup -q -n %{name}-%{version}%{?prereltag} %setup -q -n %{name}-%{version}%{?prereltag}
%patch0 -p1
%patch1 -p1
%build %build
%if ( 0%{?rhel} && 0%{?rhel} < 6 ) %if ( 0%{?rhel} && 0%{?rhel} < 6 )
@ -701,6 +720,7 @@ export CFLAGS
sed -i -e 's/--quiet//' configure.ac sed -i -e 's/--quiet//' configure.ac
./autogen.sh && %configure \ ./autogen.sh && %configure \
%{?_with_asan} \
%{?_with_cmocka} \ %{?_with_cmocka} \
%{?_with_debug} \ %{?_with_debug} \
%{?_with_firewalld} \ %{?_with_firewalld} \
@ -735,9 +755,6 @@ make check
%install %install
rm -rf %{buildroot} rm -rf %{buildroot}
make install DESTDIR=%{buildroot} make install DESTDIR=%{buildroot}
# Install include directory
install -p -m 0644 contrib/uuid/*.h \
%{buildroot}%{_includedir}/glusterfs/
%if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{_for_fedora_koji_builds} )
install -D -p -m 0644 %{SOURCE1} \ install -D -p -m 0644 %{SOURCE1} \
%{buildroot}%{_sysconfdir}/sysconfig/glusterd %{buildroot}%{_sysconfdir}/sysconfig/glusterd
@ -1041,7 +1058,7 @@ exit 0
%files %files
%{!?_licensedir:%global license %%doc} %{!?_licensedir:%global license %%doc}
%license COPYING-GPLV2 COPYING-LGPLV3 %license COPYING-GPLV2 COPYING-LGPLV3
%doc ChangeLog INSTALL README.md THANKS %doc ChangeLog INSTALL README.md THANKS COMMITMENT
%if ( 0%{!?_without_server:1} ) %if ( 0%{!?_without_server:1} )
%{_mandir}/man8/*gluster*.8* %{_mandir}/man8/*gluster*.8*
%endif %endif
@ -1136,7 +1153,6 @@ exit 0
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so
%files devel %files devel
%dir %{_includedir}/glusterfs %dir %{_includedir}/glusterfs
%{_includedir}/glusterfs/* %{_includedir}/glusterfs/*
@ -1159,16 +1175,28 @@ exit 0
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so
%if ( %{_usepython3} )
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/__pycache__
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/__pycache__/*
%endif
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground/template.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features/template.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so
# Glupy Python files # Glupy Python files
%if ( %{_usepython3} )
%dir %{python3_sitelib}/gluster
%dir %{python3_sitelib}/gluster/__pycache__
%{python3_sitelib}/gluster/__pycache__/*
%dir %{python3_sitelib}/gluster/glupy
%{python3_sitelib}/gluster/glupy/*
%else
%dir %{python2_sitelib}/gluster %dir %{python2_sitelib}/gluster
%dir %{python2_sitelib}/gluster/glupy %dir %{python2_sitelib}/gluster/glupy
%{python2_sitelib}/gluster/glupy/* %{python2_sitelib}/gluster/glupy/*
%endif
%files fuse %files fuse
# glusterfs is a symlink to glusterfsd, -server depends on -fuse. # glusterfs is a symlink to glusterfsd, -server depends on -fuse.
@ -1184,6 +1212,10 @@ exit 0
%if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{_for_fedora_koji_builds} )
%endif %endif
%files cloudsync-plugins
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins
%{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so
%if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} ) %if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} )
%files gnfs %files gnfs
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs
@ -1241,12 +1273,18 @@ exit 0
%exclude %{_libdir}/libgfdb.* %exclude %{_libdir}/libgfdb.*
%endif %endif
%files -n python2-gluster %files -n python%{_pythonver}-gluster
# introducing glusterfs module in site packages. # introducing glusterfs module in site packages.
# so that all other gluster submodules can reside in the same namespace. # so that all other gluster submodules can reside in the same namespace.
%if ( %{_usepython3} )
%dir %{python3_sitelib}/gluster
%{python3_sitelib}/gluster/__init__.*
%{python3_sitelib}/gluster/cliutils
%else
%dir %{python2_sitelib}/gluster %dir %{python2_sitelib}/gluster
%{python2_sitelib}/gluster/__init__.* %{python2_sitelib}/gluster/__init__.*
%{python2_sitelib}/gluster/cliutils %{python2_sitelib}/gluster/cliutils
%endif
%if ( 0%{!?_without_rdma:1} ) %if ( 0%{!?_without_rdma:1} )
%files rdma %files rdma
@ -1350,6 +1388,7 @@ exit 0
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/metadata-cache %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/metadata-cache
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/gluster-block %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/gluster-block
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/nl-cache %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/nl-cache
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/db-workload
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd
@ -1421,6 +1460,8 @@ exit 0
%if ( 0%{?_with_firewalld:1} ) %if ( 0%{?_with_firewalld:1} )
%{_prefix}/lib/firewalld/services/glusterfs.xml %{_prefix}/lib/firewalld/services/glusterfs.xml
%endif %endif
# end of server files
%endif %endif
# Events # Events
@ -1444,6 +1485,9 @@ exit 0
%endif %endif
%changelog %changelog
* Tue Sep 18 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.0rc0-0.1
- 5.0 RC0
* Thu Sep 6 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 4.1.4-1 * Thu Sep 6 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 4.1.4-1
- 4.1.4 GA - 4.1.4 GA

View File

@ -1 +1 @@
SHA512 (glusterfs-4.1.4.tar.gz) = 7ef82170c9025ea74867382acc17e4fde55af82d4b04138fb74800c3fc28f018f9ec493069fd14961310dece6cb386973fb07e00d5cad59a9aaf6020155cba56 SHA512 (glusterfs-5.0rc0.tar.gz) = 70e7cc94885b3646f4f995eb6cfe4e589c7b18473471375e6f4ebb279d784a0b155cd5e440cd928d5482e80f131d63149b1e01fad5629b103ad99c8dd2c7f83e