From 68233240eb20d0555f99c7ee119c9c15c7a4d8bb Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Tue, 18 Sep 2018 07:35:21 -0400 Subject: [PATCH] 5.0 RC0 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec | 156 +++++++++++++++++++++++++++++++------------------ sources | 2 +- 2 files changed, 101 insertions(+), 57 deletions(-) diff --git a/glusterfs.spec b/glusterfs.spec index 2019fdc..4c7aa3c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -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 - 5.0rc0-0.1 +- 5.0 RC0 + * Thu Sep 6 2018 Kaleb S. KEITHLEY - 4.1.4-1 - 4.1.4 GA diff --git a/sources b/sources index 568f205..9af4727 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-4.1.4.tar.gz) = 7ef82170c9025ea74867382acc17e4fde55af82d4b04138fb74800c3fc28f018f9ec493069fd14961310dece6cb386973fb07e00d5cad59a9aaf6020155cba56 +SHA512 (glusterfs-5.0rc0.tar.gz) = 70e7cc94885b3646f4f995eb6cfe4e589c7b18473471375e6f4ebb279d784a0b155cd5e440cd928d5482e80f131d63149b1e01fad5629b103ad99c8dd2c7f83e