diff --git a/glusterfs.spec b/glusterfs.spec index ea00555..3af2202 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -3,12 +3,16 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the prereltag for pre-releases -#%%global prereltag beta2 +%global prereltag beta1 ##----------------------------------------------------------------------------- ## All argument definitions should be placed here and keep them sorted ## +# if you wish to compile an rpm with cmocka unit testing... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka +%{?_with_cmocka:%global _with_cmocka --enable-cmocka} + # 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} @@ -44,7 +48,7 @@ %{?_without_syslog:%global _without_syslog --disable-syslog} # disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount -# Fedora deprecated syslog, see +# Fedora deprecated syslog, see # https://fedoraproject.org/wiki/Changes/NoDefaultSyslog # (And what about RHEL7?) %if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} <= 6 ) @@ -76,6 +80,12 @@ %global _with_systemd true %endif +%if 0%{?_tmpfilesdir:1} +%define _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} +%else +%define _with_tmpfilesdir --without-tmpfilesdir +%endif + # there is no systemtap support! Perhaps some day there will be %global _without_systemtap --enable-systemtap=no @@ -145,8 +155,8 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.6.3 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Version: 3.7.0 +Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -161,9 +171,6 @@ URL: http://www.gluster.org/docs/index.php/GlusterFS Source0: http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig -Source3: glusterfs-fuse.logrotate -Source4: glusterd.logrotate -Source5: glusterfsd.logrotate Source6: rhel5-load-fuse-modules Source7: glusterfsd.service Source8: glusterfsd.init @@ -199,9 +206,15 @@ BuildRequires: bison flex BuildRequires: gcc make automake libtool BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel -BuildRequires: libaio-devel +BuildRequires: libaio-devel libacl-devel BuildRequires: python-devel BuildRequires: python-ctypes +BuildRequires: userspace-rcu-devel >= 0.7 +BuildRequires: libuuid-devel +BuildRequires: sqlite-devel +%if ( 0%{?_with_cmocka:1} ) +BuildRequires: libcmocka-devel >= 1.0.1 +%endif %if ( 0%{!?_without_systemtap:1} ) BuildRequires: systemtap-sdt-devel %endif @@ -218,10 +231,10 @@ BuildRequires: libattr-devel Obsoletes: hekafs Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} -Obsoletes: %{name}-ufo %if ( 0%{_for_fedora_koji_builds} ) Obsoletes: %{name}-regression-tests %endif +Obsoletes: %{name}-ufo Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} @@ -239,7 +252,7 @@ gluster command line, libglusterfs and glusterfs translator modules common to both GlusterFS server and client framework. %package api -Summary: Clustered file-system api library +Summary: GlusterFS api library Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} # we provide the Python package/namespace 'gluster' @@ -349,6 +362,26 @@ is in user space and easily manageable. This package provides support to FUSE based clients. +%package ganesha +Summary: NFS-Ganesha configuration +Group: Applications/File + +Requires: %{name}-server = %{version}-%{release} +Requires: nfs-ganesha-gluster +Requires: pcs + +%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 +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 configuration and related files for using +NFS-Ganesha as the NFS server using GlusterFS + %if ( 0%{!?_without_georeplication:1} ) %package geo-replication Summary: GlusterFS Geo-replication @@ -397,7 +430,7 @@ This package provides the base GlusterFS libraries Summary: GlusterFS rdma support for ib-verbs Group: Applications/File BuildRequires: libibverbs-devel -BuildRequires: librdmacm-devel +BuildRequires: librdmacm-devel >= 1.0.15 Requires: %{name} = %{version}-%{release} %description rdma @@ -422,7 +455,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: python attr dbench file git libacl-devel mock net-tools +Requires: python attr dbench file git libacl-devel net-tools Requires: nfs-utils xfsprogs yajl %description regression-tests @@ -445,7 +478,7 @@ Group: System Environment/Base Group: Productivity/Clustering/HA %endif # for glusterd -Requires: glusterfs-server +Requires: %{name}-server # depending on the distribution, we need pacemaker or resource-agents Requires: %{_prefix}/lib/ocf/resource.d @@ -503,6 +536,7 @@ This package provides the glusterfs server daemon. # there is no need to run ./autogen or have a BuildRequires for automake. [ -e 'install-sh' -o -e 'install.sh' ] || ./autogen.sh %configure \ + %{?_with_tmpfilesdir} \ %{?_without_rdma} \ %{?_without_epoll} \ %{?_without_fusermount} \ @@ -511,7 +545,8 @@ This package provides the glusterfs server daemon. %{?_without_syslog} \ %{?_without_bd} \ %{?_without_qemu_block} \ - %{?_without_systemtap} + %{?_without_systemtap} \ + %{?_with_cmocka} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -527,6 +562,9 @@ pushd xlators/features/glupy/src FLAGS="$RPM_OPT_FLAGS" python setup.py build popd +%check +make check + %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} @@ -616,21 +654,8 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %_init_install %{glusterfsd_service} glusterfsd %endif -%if ( 0%{_for_fedora_koji_builds} ) -# Client logrotate entry -install -D -p -m 0644 %{SOURCE3} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse - -# Server logrotate entry -install -D -p -m 0644 %{SOURCE4} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterd -# Legacy server logrotate entry -install -D -p -m 0644 %{SOURCE5} \ - %{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd -%else install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs -%endif %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts @@ -699,10 +724,6 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%if ( 0%{!?_without_georeplication:1} ) -install -p -m 0744 extras/hook-scripts/S56glusterd-geo-rep-create-post.sh \ - %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post -%endif %{__install} -p -m 0744 extras/hook-scripts/start/post/*.sh \ %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post %{__install} -p -m 0744 extras/hook-scripts/stop/pre/*.sh \ @@ -760,6 +781,14 @@ fi # Legacy server %_init_enable glusterd %_init_enable glusterfsd +# ".cmd_log_history" is renamed to "cmd_history.log" in GlusterFS-3.7 . +# While upgrading glusterfs-server package form GlusterFS version <= 3.6 to +# GlusterFS version 3.7, ".cmd_log_history" should be renamed to +# "cmd_history.log" to retain cli command history contents. +if [ -f %{_localstatedir}/log/glusterfs/.cmd_log_history ]; then + mv %{_localstatedir}/log/glusterfs/.cmd_log_history \ + %{_localstatedir}/log/glusterfs/cmd_history.log +fi # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if # there are any files in /etc from a prior gluster.org install, move them @@ -845,8 +874,8 @@ fi ## All %files should be placed here and keep them sorted ## %files -%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS -%config(noreplace) %{_sysconfdir}/logrotate.d/* +%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README.md THANKS +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs %config(noreplace) %{_sysconfdir}/sysconfig/* %if ( 0%{!?_without_syslog:1} ) %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) @@ -859,6 +888,9 @@ fi %exclude %{_mandir}/man8/gluster.8* %dir %{_localstatedir}/log/glusterfs %dir %{_localstatedir}/run/gluster +%if 0%{?_tmpfilesdir:1} +%{_tmpfilesdir}/gluster.conf +%endif %dir %{_sharedstatedir}/glusterd %if ( 0%{!?_without_rdma:1} ) %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* @@ -890,6 +922,7 @@ fi %files api-devel %{_libdir}/pkgconfig/glusterfs-api.pc %{_libdir}/pkgconfig/libgfchangelog.pc +%{_libdir}/pkgconfig/libgfdb.pc %{_libdir}/libgfapi.so %{_includedir}/glusterfs/api/* @@ -931,15 +964,21 @@ fi %endif %endif +%files ganesha +%{_sysconfdir}/ganesha/* +%{_libexecdir}/ganesha/* +%{_prefix}/lib/ocf/resource.d/heartbeat/* + %if ( 0%{!?_without_georeplication:1} ) %files geo-replication -%{_sysconfdir}/logrotate.d/glusterfs-georep +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* %{_libexecdir}/glusterfs/gverify.sh %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh %{_libexecdir}/glusterfs/peer_add_secret_pub %{_libexecdir}/glusterfs/peer_gsec_create +%{_libexecdir}/glusterfs/peer_mountbroker %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication %dir %{_sharedstatedir}/glusterd/hooks %dir %{_sharedstatedir}/glusterd/hooks/1 @@ -952,11 +991,17 @@ fi %{_datadir}/glusterfs/scripts/generate-gfid-file.sh %{_datadir}/glusterfs/scripts/gsync-sync-gfid %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%{_libexecdir}/glusterfs/gfind_missing_files +%{_sbindir}/gfind_missing_files +%exclude %{_libexecdir}/glusterfs/gfind_missing_files/gfid_to_path.pyo +%exclude %{_libexecdir}/glusterfs/gfind_missing_files/gfid_to_path.pyc %endif %files libs %{_libdir}/*.so.* %exclude %{_libdir}/libgfapi.* +# libgfdb is only needed server-side +%exclude %{_libdir}/libgfdb.* %if ( 0%{!?_without_rdma:1} ) %files rdma @@ -978,16 +1023,12 @@ fi %files server %doc extras/clear_xattrs.sh -%if ( 0%{_for_fedora_koji_builds} ) -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd -%endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs %dir %{_sharedstatedir}/glusterd/groups %config(noreplace) %{_sharedstatedir}/glusterd/groups/virt # Legacy configs %if ( 0%{_for_fedora_koji_builds} ) -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd %endif %config %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh @@ -1011,7 +1052,13 @@ fi %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +%{_libdir}/libgfdb.so.* %{_sharedstatedir}/glusterd + +#snap_scheduler +%{_sbindir}/snap_scheduler.py +%{_sbindir}/gcron.py + #hookscripts %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1 @@ -1051,10 +1098,33 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid +# Incrementalapi +%{_libexecdir}/glusterfs/glusterfind +%{_bindir}/glusterfind +%exclude %{_libexecdir}/glusterfs/glusterfind/brickfind.pyc +%exclude %{_libexecdir}/glusterfs/glusterfind/changelog.pyc +%exclude %{_libexecdir}/glusterfs/glusterfind/nodecleanup.pyc +%exclude %{_libexecdir}/glusterfs/glusterfind/brickfind.pyo +%exclude %{_libexecdir}/glusterfs/glusterfind/changelog.pyo +%exclude %{_libexecdir}/glusterfs/glusterfind/nodecleanup.pyo + + %changelog +* Wed Apr 29 2015 Kaleb S. KEITHLEY 3.7.0-0.1beta1 +- GlusterFS 3.7.0beta1 + * Wed Apr 22 2015 Kaleb S. KEITHLEY 3.6.3-1 - GlusterFS 3.6.3 GA +* Wed Apr 15 2015 Kaleb S. KEITHLEY +- preliminary for 3.7.0alpha + +* Wed Apr 1 2015 Humble Chirammal 3.6.3beta2 +- GlusterFS 3.6.3beta2 release. + +* Thu Feb 12 2015 Humble Chirammal 3.6.3beta1 +- GlusterFS 3.6.3beta1 release. + * Tue Feb 10 2015 Kaleb S. KEITHLEY - Ownership of /usr/lib/python2.7/site-packages/gluster, BZ 1190832 - N.B. gfapi.py was removed in 3.6 (to resurface another day?) @@ -1062,6 +1132,9 @@ fi * Mon Feb 02 2015 Lalatendu Mohanty 3.6.2-2 - GlusterFS 3.6.2-2 +* Fri Jan 30 2015 Nandaja Varma 1033 +- remove checks for rpmbuild/mock from run-tests.sh (#178008) + * Wed Jan 28 2015 Kaleb S. KEITHLEY - glusterfs-fuse Requires: attr. See BZ 1184626, 1184627 diff --git a/sources b/sources index 78d7600..2931980 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -057c2f26bfc4c36aaa9f358db63f0c28 glusterfs-3.6.3.tar.gz +a12d43b71d8b815b791bc1e33de3533e glusterfs-3.7.0beta1.tar.gz