diff --git a/.glusterfs.metadata b/.glusterfs.metadata index ed38e97..6f6c231 100644 --- a/.glusterfs.metadata +++ b/.glusterfs.metadata @@ -1 +1 @@ -77c51da8727d561ffaefa4398b2a4f1e10debf7b SOURCES/glusterfs-7.5.tar.gz +e1bdf3f430bf0a215c5f7e6359b6fd9183c60113 SOURCES/glusterfs-7.6.tar.gz diff --git a/SPECS/glusterfs.spec b/SPECS/glusterfs.spec index 9301d5f..3c50487 100644 --- a/SPECS/glusterfs.spec +++ b/SPECS/glusterfs.spec @@ -125,6 +125,10 @@ ## %if ( 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) +%global _with_systemd true +%endif + +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 7 ) %global _with_firewalld --enable-firewalld %endif @@ -157,6 +161,7 @@ %global _rundir %{_localstatedir}/run %endif +%if ( 0%{?_with_systemd:1} ) %global service_start() /bin/systemctl --quiet start %1.service || : \ %{nil} %global service_stop() /bin/systemctl --quiet stop %1.service || :\ @@ -169,6 +174,24 @@ %global glusterta_svcfile %{_unitdir}/gluster-ta-volume.service %global glustereventsd_svcfile %{_unitdir}/glustereventsd.service %global glusterfssharedstorage_svcfile %{_unitdir}/glusterfssharedstorage.service +%else +%global systemd_post() /sbin/chkconfig --add %1 >/dev/null 2>&1 || : \ +%{nil} +%global systemd_preun() /sbin/chkconfig --del %1 >/dev/null 2>&1 || : \ +%{nil} +%global systemd_postun_with_restart() /sbin/service %1 condrestart >/dev/null 2>&1 || : \ +%{nil} +%global service_start() /sbin/service %1 start >/dev/null 2>&1 || : \ +%{nil} +%global service_stop() /sbin/service %1 stop >/dev/null 2>&1 || : \ +%{nil} +%global service_install() install -D -p -m 0755 %1.init %{buildroot}%2 \ +%{nil} +# can't seem to make a generic macro that works +%global glusterd_svcfile %{_sysconfdir}/init.d/glusterd +%global glusterfsd_svcfile %{_sysconfdir}/init.d/glusterfsd +%global glustereventsd_svcfile %{_sysconfdir}/init.d/glustereventsd +%endif %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -195,7 +218,7 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 7.5 +Version: 7.6 Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ @@ -218,7 +241,9 @@ Requires(pre): shadow-utils BuildRequires: systemd Requires: %{name}-libs = %{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 ) @@ -265,10 +290,10 @@ Obsoletes: %{name}-core < %{version}-%{release} Obsoletes: %{name}-regression-tests %endif Obsoletes: %{name}-ufo +Obsoletes: %{name}-ganesha %if ( 0%{!?_with_gnfs:1} ) Obsoletes: %{name}-gnfs %endif -Obsoletes: %{name}-ganesha Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -335,20 +360,6 @@ is in user space and easily manageable. This package provides the GlusterFS CLI application and its man page -%package client-xlators -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. - -This package provides the translators needed on any GlusterFS client. - %package cloudsync-plugins Summary: Cloudsync Plugins BuildRequires: libcurl-devel @@ -381,36 +392,6 @@ is in user space and easily manageable. This package provides the development libraries and include files. - -%if ( 0%{!?_without_events:1} ) -%package events -Summary: GlusterFS Events -Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: python%{_pythonver} -Requires: python%{_pythonver}-prettytable -Requires: python%{_pythonver}-gluster = %{version}-%{release} -%if ( 0%{?rhel} && 0%{?rhel} < 8 ) -Requires: python-requests -%else -Requires: python%{_pythonver}-requests -%endif -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -Requires: python-argparse -%endif -%{?systemd_requires} - -%description events -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 Events -%endif - %package extra-xlators Summary: Extra Gluster filesystem Translators # We need python2-gluster rpm for gluster module's __init__.py in Python @@ -610,9 +591,16 @@ Requires: %{name}-client-xlators = %{version}-%{release} # lvm2 for snapshot, and nfs-utils and rpcbind/portmap for gnfs server Requires: psmisc Requires: lvm2 -%{?systemd_requires} Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig +%if ( 0%{?_with_systemd:1} ) +%{?systemd_requires} +%else +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/service +Requires(preun): /sbin/chkconfig +Requires(postun): /sbin/service +%endif %if (0%{?_with_firewalld:1}) # we install firewalld rules, so we need to have the directory owned %if ( 0%{!?rhel} ) @@ -663,6 +651,43 @@ functionality, and also few other scripts required for setup. This package provides the glusterfs thin-arbiter translator. +%package client-xlators +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. + +This package provides the translators needed on any GlusterFS client. + +%if ( 0%{!?_without_events:1} ) +%package events +Summary: GlusterFS Events +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: python%{_pythonver} python%{_pythonver}-prettytable +Requires: python%{_pythonver}-gluster = %{version}-%{release} +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) +Requires: python-requests +%else +Requires: python%{_pythonver}-requests +%endif +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +Requires: python-argparse +%endif +%if ( 0%{?_with_systemd:1} ) +%{?systemd_requires} +%endif + +%description events +GlusterFS Events + +%endif + %prep %setup -q -n %{name}-%{version}%{?dev} %if ( ! %{_usepython3} ) @@ -674,8 +699,12 @@ done %build -sed -i -e 's/--quiet//' configure.ac -./autogen.sh && %configure \ +# RHEL6 and earlier need to manually replace config.guess and config.sub +%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +./autogen.sh +%endif + +%configure \ %{?_with_asan} \ %{?_with_cmocka} \ %{?_with_debug} \ @@ -702,8 +731,7 @@ sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -gcc -v -make %{?_smp_mflags} V=1 +make %{?_smp_mflags} %check make check @@ -713,12 +741,10 @@ rm -rf %{buildroot} make install DESTDIR=%{buildroot} %if ( 0%{!?_without_server:1} ) %if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{!?_without_server:1} ) install -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd install -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd -%endif %else install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd @@ -728,7 +754,7 @@ install -D -p -m 0644 extras/glusterd-sysconfig \ mkdir -p %{buildroot}%{_localstatedir}/log/glusterd mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd -mkdir -p %{buildroot}%{_rundir}/gluster/metrics +mkdir -p %{buildroot}%{_rundir}/gluster # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete @@ -810,14 +836,14 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus %endif ## Install bash completion for cli -install -p -m 0755 -D extras/command-completion/gluster.bash \ +install -p -m 0744 -D extras/command-completion/gluster.bash \ %{buildroot}%{_sysconfdir}/bash_completion.d/gluster ##----------------------------------------------------------------------------- ## All %%post should be placed here and keep them sorted ## %post -%{?ldconfig} +/sbin/ldconfig %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} ) %systemd_postun_with_restart rsyslog @@ -825,13 +851,12 @@ install -p -m 0755 -D extras/command-completion/gluster.bash \ %endif exit 0 -# post and postun scriptlets for api -%ldconfig_scriptlets api +%post api +/sbin/ldconfig %if ( 0%{!?_without_events:1} ) %post events %systemd_post glustereventsd -exit 0 %endif %if ( 0%{!?_without_georeplication:1} ) @@ -842,8 +867,8 @@ fi exit 0 %endif -# post and postun scriptlets for libs -%ldconfig_scriptlets libs +%post libs +/sbin/ldconfig %if ( 0%{!?_without_server:1} ) %post server @@ -974,17 +999,15 @@ fi ## All %%postun should be placed here and keep them sorted ## %postun -%{?ldconfig} %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} ) %systemd_postun_with_restart rsyslog %endif %endif -exit 0 %if ( 0%{!?_without_server:1} ) %postun server -%{?ldconfig} +/sbin/ldconfig %if (0%{?_with_firewalld:1}) %firewalld_reload %endif @@ -992,7 +1015,7 @@ exit 0 %endif ##----------------------------------------------------------------------------- -## All %%files should be placed here and keep them sorted by groups +## All %%files should be placed here and keep them grouped ## %files %{!?_licensedir:%global license %%doc} @@ -1006,7 +1029,7 @@ exit 0 %if ( 0%{!?_without_rdma:1} ) %exclude %{_libdir}/glusterfs/%{version}%{?dev}/rpc-transport/rdma* %endif -%if ( 0%{!?_without_server:1} ) +%if 0%{?!_without_server:1} %dir %{_datadir}/glusterfs %dir %{_datadir}/glusterfs/scripts %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh @@ -1055,7 +1078,6 @@ exit 0 %dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/system %{_libdir}/glusterfs/%{version}%{?dev}/xlator/system/posix-acl.so %dir %attr(0775,gluster,gluster) %{_rundir}/gluster -%dir %attr(0775,gluster,gluster) %{_rundir}/gluster/metrics %if 0%{?_tmpfilesdir:1} && 0%{!?_without_server:1} %{_tmpfilesdir}/gluster.conf %endif @@ -1064,6 +1086,7 @@ exit 0 %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 @@ -1079,12 +1102,6 @@ exit 0 %{_mandir}/man8/gluster.8* %{_sysconfdir}/bash_completion.d/gluster -%files client-xlators -%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 - %files cloudsync-plugins %dir %{_libdir}/glusterfs/%{version}%{?dev}/cloudsync-plugins %{_libdir}/glusterfs/%{version}%{?dev}/cloudsync-plugins/cloudsyncs3.so @@ -1098,7 +1115,15 @@ exit 0 %{_libdir}/*.so %{_libdir}/pkgconfig/libgfchangelog.pc +%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 + %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 @@ -1109,6 +1134,7 @@ exit 0 %{_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 /sbin/mount.glusterfs @@ -1116,10 +1142,11 @@ exit 0 %{_bindir}/fusermount-glusterfs %endif -%if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} ) +%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/* + %{_libdir}/glusterfs/%{version}%{?dev}/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 @@ -1202,10 +1229,9 @@ exit 0 %if ( ! 0%{_for_fedora_koji_builds} ) %files regression-tests -%dir %{_prefix}/share/glusterfs - %{_prefix}/share/glusterfs/run-tests.sh -%dir %{_prefix}/share/glusterfs/tests - %{_datadir}/glusterfs/tests/* +%dir %{_datadir}/glusterfs + %{_datadir}/glusterfs/run-tests.sh + %{_datadir}/glusterfs/tests %exclude %{_datadir}/glusterfs/tests/vagrant %endif @@ -1237,7 +1263,9 @@ exit 0 %if ( 0%{_for_fedora_koji_builds} ) %glusterfsd_svcfile %endif +%if ( 0%{?_with_systemd:1} ) %glusterfssharedstorage_svcfile +%endif # binaries %{_sbindir}/glusterd @@ -1251,6 +1279,8 @@ exit 0 # Manpages %{_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 @@ -1344,23 +1374,23 @@ exit 0 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols # Extra utility script -%dir %{_datadir}/glusterfs +%dir %{_libexecdir}/glusterfs %dir %{_datadir}/glusterfs/scripts -%{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh + %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh +%if ( 0%{?_with_systemd:1} ) %{_libexecdir}/glusterfs/mount-shared-storage.sh %{_datadir}/glusterfs/scripts/control-cpu-load.sh %{_datadir}/glusterfs/scripts/control-mem.sh +%endif # Incrementalapi -%dir %{_libexecdir}/glusterfs %{_libexecdir}/glusterfs/glusterfind - %{_libexecdir}/glusterfs/peer_add_secret_pub %{_bindir}/glusterfind + %{_libexecdir}/glusterfs/peer_add_secret_pub %if ( 0%{?_with_firewalld:1} ) %{_prefix}/lib/firewalld/services/glusterfs.xml %endif - # end of server files %endif @@ -1371,16 +1401,22 @@ exit 0 %dir %{_sharedstatedir}/glusterd %dir %{_sharedstatedir}/glusterd/events %dir %{_libexecdir}/glusterfs -%dir %{_libexecdir}/glusterfs/gfevents - %{_libexecdir}/glusterfs/gfevents/* + %{_libexecdir}/glusterfs/gfevents %{_libexecdir}/glusterfs/peer_eventsapi.py* %{_sbindir}/glustereventsd %{_sbindir}/gluster-eventsapi %{_datadir}/glusterfs/scripts/eventsdash.py* +%if ( 0%{?_with_systemd:1} ) %{_unitdir}/glustereventsd.service +%else +%{_sysconfdir}/init.d/glustereventsd +%endif %endif %changelog +* Tue Jun 9 2020 Niels de Vos - 7.6-1 +- 7.6 GA + * Thu Apr 16 2020 Niels de Vos - 7.5-1 - 7.5 GA