diff options
Diffstat (limited to 'glusterfs.spec.in')
| -rw-r--r-- | glusterfs.spec.in | 532 |
1 files changed, 414 insertions, 118 deletions
diff --git a/glusterfs.spec.in b/glusterfs.spec.in index f795444da..040500c5f 100644 --- a/glusterfs.spec.in +++ b/glusterfs.spec.in @@ -1,6 +1,10 @@ +%global _hardened_build 1 %global _for_fedora_koji_builds 0 +# uncomment and add '%' to use the prereltag for pre-releases +# global prereltag beta4 + # 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} @@ -26,50 +30,86 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} +# if you wish to build rpms without syslog logging, compile like this +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@tar.gz --without syslog +%{?_without_syslog:%global _without_syslog --disable-syslog} + +# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount +%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%global _without_syslog --disable-syslog +%endif + +# there is no systemtap support! Perhaps some day there will be +%global _without_systemtap --enable-systemtap=no + +# 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 ( 0%{?rhel} && 0%{?rhel} < 6 ) +%define _without_bd --disable-bd-xlator +%endif + +# if you wish to compile an rpm without the qemu-block support... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without qemu-block +%{?_without_qemu_block:%global _without_qemu_block --disable-qemu-block} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +# xlators/features/qemu-block fails to build on RHEL5, disable it +%define _without_qemu_block --disable-qemu-block +%endif + %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) %global _with_systemd true %endif +# From https://fedoraproject.org/wiki/Packaging:Python#Macros +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%endif + Summary: Cluster File System -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.3.1 -Release: 10%{?dist} +Version: 3.4.1 +Release: 3%{?prereltag:.%{prereltag}}%{?dist} +Vendor: Fedora Project %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ Release: 1%{?dist} +Vendor: glusterfs.org %endif -License: GPLv3+ and (GPLv2 or LGPLv3+) +License: GPLv2 or LGPLv3+ Group: System Environment/Base -%if 0%{_for_fedora_koji_builds} -Vendor: Red Hat -%endif -URL: http://www.gluster.org//docs/index.php/GlusterFS -%if 0%{_for_fedora_koji_builds} -Source0: http://bits.gluster.com/pub/gluster/glusterfs/src/glusterfs-%{version}.tar.gz -%else -Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz -%endif +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 Source2: glusterfsd.sysconfig -Source3: umount.glusterfs -Source4: glusterfs-fuse.logrotate -Source5: glusterd.logrotate -Source6: glusterfsd.logrotate +Source3: glusterfs-fuse.logrotate +Source4: glusterd.logrotate +Source5: glusterfsd.logrotate +Source6: rhel5-load-fuse-modules +Source11: glusterfsd.service +Source13: glusterfsd.init Patch0: %{name}-3.2.5.configure.ac.patch Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch +Patch2: %{name}-3.3.1.rpc.rpcxprt.rdma.name.c.patch +%else +Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz +%endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -Source10: glusterd.service -Source11: glusterfsd.service -Source12: glusterd.init -Source13: glusterfsd.init - -%if 0%{?_with_systemd:1} -%global glusterd_service %{S:%{SOURCE10}} +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +BuildRequires: python-simplejson +%endif +%if ( 0%{?_with_systemd:1} ) +%if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE11}} +%endif BuildRequires: systemd-units Requires(post): systemd-units Requires(preun): systemd-units @@ -83,8 +123,7 @@ Requires(postun): systemd-units %define _init_glusterd %{_unitdir}/glusterd.service %define _init_glusterfsd %{_unitdir}/glusterfsd.service %else -%if 0%{_for_fedora_koji_builds} -%global glusterd_service %{S:%{SOURCE12}} +%if ( 0%{_for_fedora_koji_builds} ) %global glusterfsd_service %{S:%{SOURCE13}} %endif Requires(post): /sbin/chkconfig @@ -101,14 +140,23 @@ Requires(postun): /sbin/service %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd %endif +Requires: %{name}-libs = %{version}-%{release} BuildRequires: bison flex BuildRequires: gcc make automake libtool BuildRequires: ncurses-devel readline-devel BuildRequires: libxml2-devel openssl-devel BuildRequires: libaio-devel -#BuildRequires: systemtap-sdt-devel lvm2-devel # glusterfs-3.4.x BuildRequires: python-devel BuildRequires: python-ctypes +%if ( 0%{!?_without_systemtap:1} ) +BuildRequires: systemtap-sdt-devel +%endif +%if ( 0%{!?_without_bd:1} ) +BuildRequires: lvm2-devel +%endif +%if ( 0%{!?_without_qemu_block:1} ) +BuildRequires: glib2-devel +%endif Obsoletes: hekafs <= 0.7 Obsoletes: %{name}-libs <= 2.0.0 @@ -120,21 +168,24 @@ Provides: %{name}-core = %{version}-%{release} # We do not want to generate useless provides and requires for xlator .so files # Filter all generated: -# - .so requires that do not start with 'lib' -# - all provides from xlators and private libraries not in the ldconfig path # # TODO: RHEL5 does not have a convenient solution -%if 0%{?rhel} == 6 +%if ( 0%{?rhel} == 6 ) # filter_setup exists in RHEL6 only %filter_provides_in %{_libdir}/glusterfs/%{version}/ %global __filter_from_req %{?__filter_from_req} | %{__grep} -v -P '^(?!lib).*\.so.*$' %filter_setup %else - # modern rpm and current Fedora - %global __requires_exclude -P ^(?!lib).*\.so.*$ + # modern rpm and current Fedora do not generate requires if the provides + # are filtered %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ %endif +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) + # _sharedstatedir is not provided by RHEL5 + %define _sharedstatedir /var/lib +%endif + %description GlusterFS is a clustered file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -148,7 +199,46 @@ 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. -%if 0%{!?_without_rdma:1} +%package libs +Summary: GlusterFS common libraries +Group: Applications/File +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +Requires: rsyslog-mmjsonparse +%endif +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +Requires: rsyslog-mmcount +%endif +%endif + +%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 + +%package cli +Summary: GlusterFS CLI +Group: Applications/File +Requires: %{name}-libs = %{version}-%{release} + +%description cli +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 GlusterFS CLI application and its man page + +%if ( 0%{!?_without_rdma:1} ) %package rdma Summary: GlusterFS rdma support for ib-verbs Group: Applications/File @@ -168,7 +258,7 @@ is in user space and easily manageable. This package provides support to ib-verbs library. %endif -%if 0%{!?_without_georeplication:1} +%if ( 0%{!?_without_georeplication:1} ) %package geo-replication Summary: GlusterFS Geo-replication Group: Applications/File @@ -210,11 +300,16 @@ This package provides support to FUSE based clients. %package server Summary: Clustered file-system server -License: GPLv3+ Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} +Requires: %{name}-cli = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) Requires: rpcbind +%else +Requires: portmap +%endif %description server GlusterFS is a clustered file-system capable of scaling to several @@ -227,15 +322,35 @@ is in user space and easily manageable. This package provides the glusterfs server daemon. -%if 0%{!?_without_ocf:1} +%package api +Summary: Clustered file-system api library +Group: System Environment/Daemons +Requires: %{name} = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} +# we provide the Python package/namespace 'gluster' +Provides: python-gluster = %{version}-%{release} + +%description api +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 glusterfs libgfapi library. + +%if ( 0%{!?_without_ocf:1} ) %package resource-agents Summary: OCF Resource Agents for GlusterFS License: GPLv3+ -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) +# EL5 does not support noarch sub-packages BuildArch: noarch %endif # this Group handling comes from the Fedora resource-agents package -%if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel} +%if ( 0%{?fedora} || 0%{?centos_version} || 0%{?rhel} ) Group: System Environment/Base %else Group: Productivity/Clustering/HA @@ -261,7 +376,6 @@ like Pacemaker. %package devel Summary: Development Libraries -License: GPLv2 or LGPLv3+ Group: Development/Libraries Requires: %{name} = %{version}-%{release} @@ -274,25 +388,81 @@ 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 development libraries. +This package provides the development libraries and include files. + +%package api-devel +Summary: Development Libraries +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} + +%description api-devel +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 api include files. + +%package regression-tests +Summary: Development Tools +Group: Development/Tools +Requires: %{name} = %{version}-%{release} +Requires: %{name}-fuse = %{version}-%{release} +Requires: %{name}-server = %{version}-%{release} +Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 +Requires: python attr dbench git nfs-utils xfsprogs + +%description regression-tests +The Gluster Test Framework, is a suite of scripts used for +regression testing of Gluster. %prep -%setup -q -n %{name}-%{version} +%setup -q -n %{name}-%{version}%{?prereltag} +%if ( 0%{_for_fedora_koji_builds} ) +#%patch0 -p0 +%patch1 -p0 -F4 +%if ( "%{version}" == "3.3.1" ) +%patch2 -p1 +%endif +%endif %build ./autogen.sh -%configure %{?_without_rdma} %{?_without_epoll} %{?_without_fusermount} %{?_without_georeplication} %{?_without_ocf} - -# Remove rpath -sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool -sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool +%configure \ + %{?_without_rdma} \ + %{?_without_epoll} \ + %{?_without_fusermount} \ + %{?_without_georeplication} \ + %{?_without_ocf} \ + %{?_without_syslog} \ + %{?_without_bd} \ + %{?_without_qemu_block} \ + %{?_without_systemtap} + +# fix hardening and remove rpath in shlibs +%if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +%{__sed} -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool +%endif +%{__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 %{__make} %{?_smp_mflags} +pushd api/examples +FLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build +popd %install %{__rm} -rf %{buildroot} %{__make} install DESTDIR=%{buildroot} +# install the gfapi Python library in /usr/lib/python*/site-packages +pushd api/examples +%{__python} setup.py install --skip-build --verbose --root %{buildroot} +popd # Install include directory %{__mkdir_p} %{buildroot}%{_includedir}/glusterfs %{__install} -p -m 0644 libglusterfs/src/*.h \ @@ -308,7 +478,7 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool %{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server %{__install} -p -m 0644 xlators/protocol/server/src/*.h \ %{buildroot}%{_includedir}/glusterfs/server/ -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} ) %{__install} -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %{__install} -D -p -m 0644 %{SOURCE2} \ @@ -317,15 +487,13 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool %{__install} -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif -# We'll use our init.d -%if 0%{?_with_systemd:1} -%{__rm} -f %{buildroot}%{_sysconfdir}/init.d/glusterd -%endif -%if 0%{?rhel} && 0%{?rhel} <= 5 -%{__install} -D -p -m 0755 extras/init.d/rhel5-load-fuse.modules \ +%if ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%{__install} -D -p -m 0755 %{SOURCE6} \ %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif +%endif %{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd %{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs @@ -336,8 +504,14 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool find %{buildroot}%{_libdir} -name '*.a' -delete find %{buildroot}%{_libdir} -name '*.la' -delete -# Remove installed docs, we include them ourselves as %%doc +# Remove installed docs, they're included by %%doc %{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/ +head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog +cat << EOM >> ChangeLog + +More commit messages for this ChangeLog can be found at +https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prereltag} +EOM # Remove benchmarking and other unpackaged files %{__rm} -rf %{buildroot}/benchmarking @@ -351,35 +525,50 @@ find %{buildroot}%{_libdir} -name '*.la' -delete sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ %{buildroot}%{_sysconfdir}/glusterfs/glusterd.vol -# Install systemd .service files. `make install` will install the init files -%if ( 0%{?_with_systemd:1} ) || ( 0%{_for_fedora_koji_builds} ) -%_init_install %{glusterd_service} glusterd +# Install glusterfsd .service or init.d file +%if ( 0%{_for_fedora_koji_builds} ) %_init_install %{glusterfsd_service} glusterfsd %endif -%if 0%{_for_fedora_koji_builds} -# Install wrapper umount script -%{__install} -D -p -m 0755 %{SOURCE3} \ - %{buildroot}/sbin/umount.glusterfs +%if ( 0%{_for_fedora_koji_builds} ) # Client logrotate entry -%{__install} -D -p -m 0644 %{SOURCE4} \ +%{__install} -D -p -m 0644 %{SOURCE3} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-fuse # Server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE5} \ +%{__install} -D -p -m 0644 %{SOURCE4} \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterd # Legacy server logrotate entry -%{__install} -D -p -m 0644 %{SOURCE6} \ +%{__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} +%if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts %{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication -touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%{__install} -D -p -m 0644 extras/glusterfs-georep-logrotate \ + %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep +%endif + +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +%{__install} -D -p -m 0644 extras/gluster-rsyslog-7.2.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +%{__install} -D -p -m 0644 extras/gluster-rsyslog-5.8.conf \ + %{buildroot}%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif + +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%{__install} -D -p -m 0644 extras/logger.conf.example \ + %{buildroot}%{_sysconfdir}/glusterfs/logger.conf.example +%endif %endif # the rest of the ghosts @@ -408,6 +597,12 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/options %{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete %{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/post %{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/delete/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/copy-file/pre +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/post +%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre %{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/glustershd %{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers %{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols @@ -416,48 +611,81 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/options touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid -# Remove tests -%{__rm} -rf %{buildroot}/%{python_sitelib}/test +find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs + %clean %{__rm} -rf %{buildroot} %post /sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %postun /sbin/ldconfig +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%_init_restart rsyslog +%endif +%endif %files %defattr(-,root,root,-) %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS %config(noreplace) %{_sysconfdir}/logrotate.d/* %config(noreplace) %{_sysconfdir}/sysconfig/* +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%{_sysconfdir}/rsyslog.d/gluster.conf.example +%endif +%endif %{_libdir}/glusterfs -%{_libdir}/*.so.* %{_sbindir}/glusterfs* -%{_libexecdir}/glusterfs %{_mandir}/man8/*gluster*.8* +%exclude %{_mandir}/man8/gluster.8* %dir %{_localstatedir}/log/glusterfs %dir %{_localstatedir}/run/gluster %dir %{_sharedstatedir}/glusterd -%if 0%{!?_without_rdma:1} -%exclude %{_libdir}/glusterfs/%{version}/rpc-transport/rdma* +%if ( 0%{!?_without_rdma:1} ) +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif -%exclude %{_libdir}/glusterfs/%{version}/xlator/mount/fuse* -%exclude %{_libdir}/glusterfs/%{version}/xlator/storage* -%exclude %{_libdir}/glusterfs/%{version}/xlator/features/posix* -%exclude %{_libdir}/glusterfs/%{version}/xlator/protocol/server* -%exclude %{_libdir}/glusterfs/%{version}/xlator/mgmt* -%exclude %{_libdir}/glusterfs/%{version}/xlator/nfs* +# 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* +%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* +%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.* + +%files cli +%{_sbindir}/gluster +%{_mandir}/man8/gluster.8* -%if 0%{!?_without_rdma:1} +%if ( 0%{!?_without_rdma:1} ) %files rdma %defattr(-,root,root,-) -%{_libdir}/glusterfs/%{version}/rpc-transport/rdma* +%{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* %endif -%if 0%{!?_without_georeplication:1} +%if ( 0%{!?_without_georeplication:1} ) %post geo-replication #restart glusterd. if [ $1 -ge 1 ]; then @@ -468,54 +696,55 @@ fi %defattr(-,root,root) %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* +%{_libexecdir}/glusterfs/gverify.sh +%{_libexecdir}/glusterfs/peer_add_secret_pub +%{_libexecdir}/glusterfs/peer_gsec_create %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf +%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf %endif %files fuse %defattr(-,root,root,-) -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse %endif -%{_libdir}/glusterfs/%{version}/xlator/mount/fuse* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* /sbin/mount.glusterfs -%if 0%{_for_fedora_koji_builds} -/sbin/umount.glusterfs -%endif -%if 0%{!?_without_fusermount:1} +%if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs %endif -%if 0%{?rhel} && 0%{?rhel} <= 5 +%if ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) %{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules %endif +%endif %files server %defattr(-,root,root,-) %doc extras/clear_xattrs.sh -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterd %endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %config(noreplace) %{_sysconfdir}/glusterfs # Legacy configs -%if 0%{_for_fedora_koji_builds} +%if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd %endif # init files %_init_glusterd -%if ( 0%{?_with_systemd:1} ) || ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{_for_fedora_koji_builds} ) %_init_glusterfsd %endif # binaries -%{_sbindir}/gluster %{_sbindir}/glusterd -%{_libdir}/glusterfs/%{version}/xlator/storage* -%{_libdir}/glusterfs/%{version}/xlator/features/posix* -%{_libdir}/glusterfs/%{version}/xlator/protocol/server* -%{_libdir}/glusterfs/%{version}/xlator/mgmt* -%{_libdir}/glusterfs/%{version}/xlator/nfs* -%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/glusterd.info +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* +%ghost %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options # This is really ugly, but I have no idea how to mark these directories in an # other way. They should belong to the glusterfs-server package, but don't @@ -552,7 +781,19 @@ fi %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%if 0%{!?_without_ocf:1} +%post api +/sbin/ldconfig + +%postun api +/sbin/ldconfig + +%files api +%exclude %{_libdir}/*.so +%{_libdir}/libgfapi.* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* +%{python_sitelib}/* + +%if ( 0%{!?_without_ocf:1} ) %files resource-agents %defattr(-,root,root) # /usr/lib is the standard for OCF, also on x86_64 @@ -562,10 +803,21 @@ fi %files devel %defattr(-,root,root,-) %{_includedir}/glusterfs -%{_libdir}/pkgconfig/glusterfs-api.pc %exclude %{_includedir}/glusterfs/y.tab.h +%exclude %{_includedir}/glusterfs/api +%exclude %{_libdir}/libgfapi.so %{_libdir}/*.so +%files api-devel +%{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/pkgconfig/libgfchangelog.pc +%{_libdir}/libgfapi.so +%{_includedir}/glusterfs/api/* + +%files regression-tests +%defattr(-,root,root,-) +%{_prefix}/share/glusterfs/* +%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t %post server # Legacy server @@ -577,17 +829,17 @@ fi # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib # in gluster.org RPMs.) Be careful to copy them on the off chance that # /etc and /var/lib are on separate file systems -if [ -d /etc/glusterd -a ! -h /var/lib/glusterd ]; then - %{__mkdir_p} /var/lib/glusterd - cp -a /etc/glusterd /var/lib/glusterd +if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then + %{__mkdir_p} %{_sharedstatedir}/glusterd + cp -a /etc/glusterd %{_sharedstatedir}/glusterd rm -rf /etc/glusterd - ln -sf /var/lib/glusterd /etc/glusterd + ln -sf %{_sharedstatedir}/glusterd /etc/glusterd fi # Rename old volfiles in an RPM-standard way. These aren't actually # considered package config files, so %config doesn't work for them. -if [ -d /var/lib/glusterd/vols ]; then - for file in $(find /var/lib/glusterd/vols -name '*.vol'); do +if [ -d %{_sharedstatedir}/glusterd/vols ]; then + for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do newfile=${file}.rpmsave echo "warning: ${file} saved as ${newfile}" cp ${file} ${newfile} @@ -611,7 +863,6 @@ else glusterd --xlator-option *.upgrade=on -N fi - %preun server if [ $1 -eq 0 ]; then if [ -f %_init_glusterfsd ]; then @@ -630,8 +881,53 @@ if [ $1 -ge 1 ]; then %_init_restart glusterd fi - %changelog +* Wed Oct 11 2013 Harshavardhana <fharshav@redhat.com> +- Add '_sharedstatedir' macro to `/var/lib` on <= RHEL5 (#1003184) + +* Wed Oct 9 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com> +- Sync with Fedora glusterfs.spec 3.4.1-2+ + +* Wed Oct 9 2013 Niels de Vos <ndevos@redhat.com> +- glusterfs-api-devel requires glusterfs-devel (#1016938, #1017094) + +* Mon Sep 30 2013 Niels de Vos <ndevos@redhat.com> +- Package gfapi.py into the Python site-packages path (#1005146) + +* Tue Sep 17 2013 Harshavardhana <fharshav@redhat.com> +- Provide a new package called "glusterfs-regression-tests" for standalone + regression testing. + +* Thu Aug 22 2013 Niels de Vos <ndevos@redhat.com> +- Correct the day/date for some entries in this changelog (#1000019) + +* Wed Aug 7 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com> +- Sync with Fedora glusterfs.spec +- add Requires +- add -cli subpackage, +- fix other minor differences with Fedora glusterfs.spec + +* Tue Jul 30 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com> +- Sync with Fedora glusterfs.spec, add glusterfs-libs RPM for oVirt/qemu-kvm + +* Thu Jul 25 2013 Csaba Henk <csaba@redhat.com> +- Added peer_add_secret_pub and peer_gsec_create to %{_libexecdir}/glusterfs + +* Thu Jul 25 2013 Aravinda VK <avishwan@redhat.com> +- Added gverify.sh to %{_libexecdir}/glusterfs directory. + +* Thu Jul 25 2013 Harshavardhana <fharshav@redhat.com> +- Allow to build with '--without bd' to disable 'bd' xlator + +* Thu Jun 27 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com> +- fix the hardening fix for shlibs, use %%{__sed} macro, shorter ChangeLog + +* Wed Jun 26 2013 Niels de Vos <ndevos@redhat.com> +- move the mount/api xlator to glusterfs-api + +* Fri Jun 7 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com> +- Sync with Fedora glusterfs.spec, remove G4S/UFO and Swift + * Mon Mar 4 2013 Niels de Vos <ndevos@redhat.com> - Package /var/run/gluster so that statedumps can be created @@ -672,7 +968,7 @@ fi - Fixed version reporting 3.2git - Added nfs init script (disabled by default) -* Fri Sep 1 2011 Joe Julian <me@joejulian.name> - 3.2.3-1 +* Thu Sep 1 2011 Joe Julian <me@joejulian.name> - 3.2.3-1 - Update to 3.2.3 * Tue Jul 19 2011 Joe Julian <me@joejulian.name> - 3.2.2-3 @@ -687,13 +983,13 @@ fi * Wed Jul 13 2011 Joe Julian <me@joejulian.name> - 3.2.1-2 - fix hardcoded path to gsyncd in source to match the actual file location -* Mon Jun 21 2011 Joe Julian <me@joejulian.name> - 3.2.1 +* Tue Jun 21 2011 Joe Julian <me@joejulian.name> - 3.2.1 - Update to 3.2.1 * Mon Jun 20 2011 Joe Julian <me@joejulian.name> - 3.1.5 - Update to 3.1.5 -* Mon May 31 2011 Joe Julian <me@joejulian.name> - 3.1.5-qa1.4 +* Tue May 31 2011 Joe Julian <me@joejulian.name> - 3.1.5-qa1.4 - Current git * Sun May 29 2011 Joe Julian <me@joejulian.name> - 3.1.5-qa1.2 @@ -706,7 +1002,7 @@ fi - Add patch to remove forced 64 bit compile - Obsolete glusterfs-core to allow for upgrading from gluster packaging -* Sun Mar 19 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.3-1 +* Sat Mar 19 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.3-1 - Update to 3.1.3 - Merge in more upstream SPEC changes - Remove patches from GlusterFS bugzilla #2309 and #2311 @@ -715,7 +1011,7 @@ fi * Sun Feb 06 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.2-3 - Add back in legacy SPEC elements to support older branches -* Tue Feb 03 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.2-2 +* Thu Feb 03 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.2-2 - Add patches from CloudFS project * Tue Jan 25 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.2-1 @@ -751,7 +1047,7 @@ fi * Sat Jan 2 2010 Jonathan Steffan <jsteffan@fedoraproject.org> - 2.0.9-1 - Update to 2.0.9 -* Sat Nov 8 2009 Jonathan Steffan <jsteffan@fedoraproject.org> - 2.0.8-1 +* Sun Nov 8 2009 Jonathan Steffan <jsteffan@fedoraproject.org> - 2.0.8-1 - Update to 2.0.8 - Remove install of glusterfs-volgen, it's properly added to automake upstream now @@ -819,10 +1115,10 @@ fi * Fri May 9 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-1 - Update to 1.3.8 final. -* Tue Apr 23 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.10 +* Wed Apr 23 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.10 - Include short patch to include fixes from latest TLA 751. -* Mon Apr 22 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.9 +* Tue Apr 22 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.9 - Update to 1.3.8pre6. - Include glusterfs binary in both the client and server packages, now that glusterfsd is a symlink to it instead of a separate binary. @@ -866,7 +1162,7 @@ fi * Wed Nov 21 2007 Matthias Saou <http://freshrpms.net/> 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 <matt@mattsoftware.com> - 1.3.pre7 |
