diff --git a/glusterfs.spec b/glusterfs.spec index 8e661c2..af9f076 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -31,12 +31,16 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} +# if you wish to compile an rpm without the BD map support... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd +%{?_without_bd:%global _without_bd --disable-bd-xlator} + # if you wish to build rpms without UFO, compile like this # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without ufo %{?_without_ufo:%global _without_ufo true} %if ( 0%{?rhel} && 0%{?rhel} < 6 ) -ExcludeArch: ppc +%define _without_bd true %endif %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -50,7 +54,7 @@ ExcludeArch: ppc %else %global UFOVER @PACKAGE_VERSION@ %endif -%if ! 0%{?_without_ufo:1} +%if ( 0%{!?_without_ufo:1} ) %global _with_ufo true %endif %endif @@ -59,7 +63,7 @@ Summary: Cluster File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs Version: 3.4.0 -Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Release: 4%{?prereltag:.%{prereltag}}%{?dist} Vendor: Fedora Project %else Name: @PACKAGE_NAME@ @@ -69,7 +73,7 @@ Vendor: glusterfs.org %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base -URL: http://www.gluster.org//docs/index.php/GlusterFS +URL: http://www.gluster.org/docs/index.php/GlusterFS %if ( 0%{_for_fedora_koji_builds} ) Source0: http://download.gluster.org/pub/gluster/glusterfs/3.4/%{version}%{?prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig @@ -204,8 +208,10 @@ BuildRequires: systemtap-sdt-devel BuildRequires: python-devel BuildRequires: python-ctypes %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%if ( 0%{!?_without_bd:1} ) BuildRequires: lvm2-devel %endif +%endif Obsoletes: hekafs <= 0.7 Obsoletes: %{name}-libs <= 2.0.0 @@ -225,8 +231,8 @@ Provides: %{name}-core = %{version}-%{release} %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' %filter_setup %else - # modern rpm and current Fedora do not generate requires if the provides - # are filtered + # modern rpm and current Fedora do not generate requires when the + # provides are filtered %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif @@ -243,6 +249,21 @@ This package includes the glusterfs binary, the glusterfsd daemon and the gluster command line, libglusterfs and glusterfs translator modules common to both GlusterFS server and client framework. +%package libs +Summary: GlusterFS common libraries +Group: Applications/File + +%description libs +GlusterFS is a clustered 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 base GlusterFS libraries + %if ( 0%{!?_without_rdma:1} ) %package rdma Summary: GlusterFS rdma support for ib-verbs @@ -305,9 +326,10 @@ This package provides support to FUSE based clients. %package server Summary: Clustered file-system server -License: GPLv2 or GPLv3+ +License: GPLv2 or LGPLv3+ Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) Requires: rpcbind @@ -328,7 +350,7 @@ This package provides the glusterfs server daemon. %package api Summary: Clustered file-system api library -License: GPLv2 or GPLv3+ +License: GPLv2 or LGPLv3+ Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} @@ -591,7 +613,7 @@ storage costs. %if ( 0%{_for_fedora_koji_builds} ) #%patch0 -p0 %patch1 -p0 -F4 -%if ( "%{version}" == "3.3.1" ) +%if ( "%{version}" == "3.3.1" ) %patch2 -p1 %endif %endif @@ -628,7 +650,7 @@ cd ../ufo %build ./autogen.sh -%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} +%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} %{?_without_bd} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -720,9 +742,11 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha %{buildroot}%{_sysconfdir}/glusterfs/glusterd.vol # Install glusterfsd .service or init.d file -%if ( 0%{?_with_systemd:1} ) || ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{?_with_systemd:1} ) +%if ( 0%{_for_fedora_koji_builds} ) %_init_install %{glusterfsd_service} glusterfsd %endif +%endif %if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry @@ -891,9 +915,7 @@ cp ufo/bin/gluster-swift-gen-builders %{buildroot}%{_bindir}/ %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* -%exclude %{_libdir}/libgfapi.* %{_libdir}/glusterfs -%{_libdir}/*.so.* %{_sbindir}/glusterfs* %{_mandir}/man8/*gluster*.8* %dir %{_localstatedir}/log/glusterfs @@ -902,6 +924,7 @@ cp ufo/bin/gluster-swift-gen-builders %{buildroot}%{_bindir}/ %if ( 0%{!?_without_rdma:1} ) %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif +# server-side, etc., xlators in other RPMs %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* @@ -909,7 +932,20 @@ cp ufo/bin/gluster-swift-gen-builders %{buildroot}%{_bindir}/ %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +# sample xlators not generally used or usable +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* +%post libs +/sbin/ldconfig + +%postun libs +/sbin/ldconfig + +%files libs +%{_libdir}/*.so.* +%exclude %{_libdir}/libgfapi.* %if ( 0%{!?_without_rdma:1} ) %files rdma @@ -939,7 +975,7 @@ fi %endif %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* /sbin/mount.glusterfs -%if ( ! 0%{?_without_fusermount:1} ) +%if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs %endif %if ( 0%{_for_fedora_koji_builds} ) @@ -963,7 +999,7 @@ fi %endif # init files %_init_glusterd -%if ( 0%{?_with_systemd:1} ) || ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{_for_fedora_koji_builds} && 0%{?_with_systemd:1} ) %_init_glusterfsd %endif # binaries @@ -1012,6 +1048,12 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid +%post api +/sbin/ldconfig + +%postun api +/sbin/ldconfig + %files api %exclude %{_libdir}/*.so %{_libdir}/libgfapi.* @@ -1216,12 +1258,6 @@ if [ -d %{_sharedstatedir}/glusterd/vols ]; then done fi -if [ -f %{_sharedstatedir}/glusterd/gluster.info ]; then - newfile=%{_sharedstatedir}/glusterd/gluster.info.rpmsave - echo "warning: %{_sharedstatedir}/glusterd/gluster.info saved as ${newfile}" - cp %{_sharedstatedir}/glusterd/gluster.info ${newfile} -fi - # add marker translator # but first make certain that there are no old libs around to bite us # BZ 834847 @@ -1440,6 +1476,10 @@ fi %endif %changelog +* Fri Aug 2 2013 Kaleb S. KEITHLEY - 3.4.0-4 +- sync changes from upstream glusterfs.spec.in, including addition of + glusterfs-libs RPM to simplify dependencies for qemu-kvm + * Thu Jul 25 2013 Kaleb S. KEITHLEY - remove gsyncd from glusterfs, it's redundant with glusterfs-geo-rep ready for next build @@ -1452,10 +1492,10 @@ fi - sync changes from upstream glusterfs.spec.in, ready for next build * Tue Jul 16 2013 Kaleb S. KEITHLEY - 3.4.0-2 -- tag /var/lib/glusterd/glusterd.info as %config +- tag /var/lib/glusterd/glusterd.info as %%config * Tue Jul 16 2013 Kaleb S. KEITHLEY - 3.2.2-2 -- tag /var/lib/glusterd/glusterd.info as %config +- tag /var/lib/glusterd/glusterd.info as %%config * Fri Jul 12 2013 Kaleb S. KEITHLEY - 3.4.0-1 - GlusterFS 3.4.0 GA, glusterfs-3.4.0-1 @@ -1508,7 +1548,7 @@ fi - include backport of G4S/UFO multi-volume fix * Fri Apr 19 2013 Kaleb S. KEITHLEY - 3.4.0-0.3alpha3 -- #else -> %else, a twisty maze of passages, all alike +- #else -> %%else, a twisty maze of passages, all alike * Thu Apr 18 2013 Kaleb S. KEITHLEY - 3.4.0-0.2alpha3 - prerelease 3.4.0alpha3 for oVirt/vdsm dependencies in Fedora19 @@ -1523,7 +1563,7 @@ fi * Mon Apr 15 2013 Kaleb S. KEITHLEY - 3.3.1-12 - add glusterfs-3.3.1.rpc.rpcxprt.rdma.name.c.patch, BZ 920332 -- add %{prereltag} for upcoming 3.3.2 and 3.4.0 alpha and beta builds +- add %%{prereltag} for upcoming 3.3.2 and 3.4.0 alpha and beta builds - add librdmacm-devel for rdma builds * Mon Apr 15 2013 Niels de Vos @@ -1540,13 +1580,13 @@ fi - sync with glusterfs.spec(.in) from gluster.org git source * Wed Jan 30 2013 Kaleb S. KEITHLEY - 3.3.1-9 -- essex/folsom typo, glusterfs-ufo %files conflicts with glusterfs-swift-* +- essex/folsom typo, glusterfs-ufo %%files conflicts with glusterfs-swift-* * Thu Jan 10 2013 Kaleb S. KEITHLEY - 3.3.1-8 - revised patch to DiskFile.py for stalled GET * Wed Jan 9 2013 Kaleb S. KEITHLEY - 3.3.1-7 -- additional file ownerships and associated %ghosts from upstream +- additional file ownerships and associated %%ghosts from upstream - add BuildRequires libaio-devel to auto-enable AIO in configure, overlooked since 3.3.1-1. @@ -1574,10 +1614,10 @@ fi * Thu Oct 11 2012 Kaleb S. KEITHLEY - 3.3.1-1 - GlusterFS-3.3.1 - save swift .conf files correctly during upgrade -- fix glusterd restart in %post geo-replication +- fix glusterd restart in %%post geo-replication * Wed Sep 19 2012 Kaleb S. KEITHLEY - 3.3.0-11 -- condrestart glusterfsd then glusterd in %preun server +- condrestart glusterfsd then glusterd in %%preun server * Wed Sep 19 2012 Kaleb S. KEITHLEY - 3.3.0-10 - fix additional python dependencies, esp. for rhel @@ -1842,7 +1882,7 @@ fi * Wed Nov 21 2007 Matthias Saou 1.3.7-1 - Major spec file cleanup. -- Add misssing %%clean section. +- Add missing %%clean section. - Fix ldconfig calls (weren't set for the proper sub-package). * Sat Aug 4 2007 Matt Paine - 1.3.pre7