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

View File

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