diff options
Diffstat (limited to 'glusterfs.spec.in')
| -rw-r--r-- | glusterfs.spec.in | 1098 |
1 files changed, 407 insertions, 691 deletions
diff --git a/glusterfs.spec.in b/glusterfs.spec.in index f6be2f70f..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} @@ -14,9 +18,9 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without epoll %{?_without_epoll:%global _without_epoll --disable-epoll} -# if you wish to compile an rpm with fusermount... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with fusermount -%{?_with_fusermount:%global _with_fusermount --enable-fusermount} +# if you wish to compile an rpm without fusermount... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without fusermount +%{?_without_fusermount:%global _without_fusermount --disable-fusermount} # if you wish to compile an rpm without geo-replication support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication @@ -26,60 +30,86 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%global SWIFTVER 1.7.4 -%if 0%{_for_fedora_koji_builds} -%global UFOVER 1.1 -%else -%global UFOVER @PACKAGE_VERSION@ +# 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 -%global _with_ufo true + +# 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 @@ -92,13 +122,8 @@ Requires(postun): systemd-units # can't seem to make a generic macro that works %define _init_glusterd %{_unitdir}/glusterd.service %define _init_glusterfsd %{_unitdir}/glusterfsd.service -%define _init_gluster_swift_account %{_unitdir}/gluster-swift-account.service -%define _init_gluster_swift_object %{_unitdir}/gluster-swift-object.service -%define _init_gluster_swift_container %{_unitdir}/gluster-swift-container.service -%define _init_gluster_swift_proxy %{_unitdir}/gluster-swift-proxy.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 @@ -113,22 +138,24 @@ Requires(postun): /sbin/service # can't seem to make a generic macro that works %define _init_glusterd %{_sysconfdir}/init.d/glusterd %define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd -%define _init_gluster_swift_account %{_sysconfdir}/init.d/gluster-swift-account -%define _init_gluster_swift_object %{_sysconfdir}/init.d/gluster-swift-object -%define _init_gluster_swift_container %{_sysconfdir}/init.d/gluster-swift-container -%define _init_gluster_swift_proxy %{_sysconfdir}/init.d/gluster-swift-proxy %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 -%if 0%{?suse_version} BuildRequires: python-devel -%else 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 @@ -139,6 +166,25 @@ Provides: %{name}-libs = %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} +# We do not want to generate useless provides and requires for xlator .so files +# Filter all generated: +# +# TODO: RHEL5 does not have a convenient solution +%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 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 @@ -153,12 +199,51 @@ 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 BuildRequires: libibverbs-devel - +BuildRequires: librdmacm-devel Requires: %{name} = %{version}-%{release} %description rdma @@ -173,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 @@ -215,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 @@ -232,12 +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%{?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 @@ -263,7 +376,6 @@ like Pacemaker. %package devel Summary: Development Libraries -License: GPLv2 or LGPLv3+ Group: Development/Libraries Requires: %{name} = %{version}-%{release} @@ -276,275 +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. - -%if 0%{?_with_ufo:1} -%package swift - -Summary: GlusterFS OpenStack Object Storage -Group: Applications/System -License: ASL 2.0 -BuildArch: noarch +This package provides the development libraries and include files. -%if 0%{_for_fedora_koji_builds} -Source20: http://launchpad.net/swift/folsom/%{SWIFTVER}/+download/swift-%{SWIFTVER}.tar.gz -%else -Source20: swift-%{SWIFTVER}.tar.gz -%endif - -Source30: gluster-swift-account.service -Source31: gluster-swift-container.service -Source32: gluster-swift-object.service -Source33: gluster-swift-proxy.service -Source34: gluster-swift-account@.service -Source35: gluster-swift-container@.service -Source36: gluster-swift-object@.service -Source37: gluster-swift.tmpfs -Source40: gluster-swift-account.init -Source41: gluster-swift-container.init -Source42: gluster-swift-object.init -Source43: gluster-swift-proxy.init -Source44: gluster-swift-functions -# these first appeared in openstack-swift-1.7.4-2.fc19 -Source50: gluster-swift-account-replicator.service -Source51: gluster-swift-account-replicator@.service -Source52: gluster-swift-account-auditor.service -Source53: gluster-swift-account-auditor@.service -Source54: gluster-swift-account-reaper.service -Source55: gluster-swift-account-reaper@.service -Source56: gluster-swift-container-replicator.service -Source57: gluster-swift-container-replicator@.service -Source58: gluster-swift-container-auditor.service -Source59: gluster-swift-container-auditor@.service -Source60: gluster-swift-container-updater.service -Source61: gluster-swift-container-updater@.service -Source62: gluster-swift-object-replicator.service -Source63: gluster-swift-object-replicator@.service -Source64: gluster-swift-object-auditor.service -Source65: gluster-swift-object-auditor@.service -Source66: gluster-swift-object-updater.service -Source67: gluster-swift-object-updater@.service -Source68: gluster-swift-object-expirer.service -Source69: gluster-swift-object-expirer@.service -# these first appeared in openstack-swift-1.7.4-1.fc18 and -1.7.4-2.el6 -Source70: account-server.conf -Source71: container-server.conf -Source72: object-server.conf -Source73: proxy-server.conf -Source74: swift.conf - -Patch20: 0001-Use-updated-parallel-install-versions-of-epel-packag.patch -Patch21: 0002-Add-fixes-for-building-the-doc-package.patch -Patch22: glusterfs-3.3.1.swift.constraints.backport-1.7.4.patch -#BuildRoot: %(mktemp -ud %{_tmppath}/swift-%{SWIFTVER}-%{release}-XXXXXX) - -%if 0%{?_with_systemd:1} -%global glusterswiftaccount_service %{S:%{SOURCE30}} -%global glusterswiftcontainer_service %{S:%{SOURCE31}} -%global glusterswiftobject_service %{S:%{SOURCE32}} -%global glusterswiftproxy_service %{S:%{SOURCE33}} -%else -%global glusterswiftaccount_service %{S:%{SOURCE40}} -%global glusterswiftcontainer_service %{S:%{SOURCE41}} -%global glusterswiftobject_service %{S:%{SOURCE42}} -%global glusterswiftproxy_service %{S:%{SOURCE43}} -%endif - -BuildRequires: dos2unix -BuildRequires: python-devel -BuildRequires: python-setuptools -BuildRequires: python-netifaces -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -BuildRequires: python-webob1.0 -BuildRequires: python-paste-deploy1.5 -Requires: python-webob1.0 -Requires: python-paste-deploy1.5 -%else -BuildRequires: python-webob -BuildRequires: python-paste-deploy -Requires: python-webob -Requires: python-paste-deploy -%endif +%package api-devel +Summary: Development Libraries +Group: Development/Libraries Requires: %{name} = %{version}-%{release} -Requires: python-configobj -Requires: python-eventlet >= 0.9.8 -Requires: python-greenlet >= 0.3.1 -Requires: python-simplejson -Requires: pyxattr -Requires: python-setuptools -Requires: python-netifaces - -Conflicts: openstack-swift - - -%description swift - -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. -Objects are written to multiple hardware devices in the data center, with the -OpenStack software responsible for ensuring data replication and integrity -across the cluster. Storage clusters can scale horizontally by adding new nodes, -which are automatically configured. Should a node fail, OpenStack works to -replicate its content from other active nodes. Because OpenStack uses software -logic to ensure data replication and distribution across different devices, -inexpensive commodity hard drives and servers can be used in lieu of more -expensive equipment. - - -%package swift-account -Summary: A swift account server -Group: Applications/System -License: ASL 2.0 -BuildArch: noarch -Requires: %{name}-swift = %{version}-%{release} - -%description swift-account -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. - -This package contains the %{name}-swift account server. - - -%package swift-container -Summary: A swift container server -Group: Applications/System -License: ASL 2.0 -BuildArch: noarch -Requires: %{name}-swift = %{version}-%{release} - -%description swift-container -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. - -This package contains the %{name}-swift container server. - -%package swift-object -Summary: A swift object server -Group: Applications/System -License: ASL 2.0 -BuildArch: noarch -Requires: %{name}-swift = %{version}-%{release} -Requires: rsync >= 3.0 - -%description swift-object -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. +Requires: %{name}-devel = %{version}-%{release} -This package contains the %{name}-swift object server. - -%package swift-proxy -Summary: A swift proxy server -Group: Applications/System -License: ASL 2.0 -BuildArch: noarch -Requires: %{name}-swift = %{version}-%{release} - -%description swift-proxy -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. - -This package contains the %{name}-swift proxy server. - - -%package swift-doc -Summary: Documentation for %{name} -Group: Documentation -BuildArch: noarch -# Required for generating docs -BuildRequires: python-eventlet -BuildRequires: python-simplejson -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -BuildRequires: python-webob1.0 -BuildRequires: python-sphinx10 -%else -BuildRequires: python-webob -BuildRequires: python-sphinx -%endif -BuildRequires: pyxattr - -%description swift-doc -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. - -This package contains documentation files for %{name}-swift. +%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. -%package ufo -Summary: GlusterFS Unified File and Object Storage. -Group: Applications/System -License: ASL 2.0 -BuildArch: noarch -Requires: %{name}-swift = %{version}-%{release} -Requires: memcached -Requires: openssl -Requires: python -Obsoletes: glusterfs-swift-plugin < 3.3.1-4 -Obsoletes: glusterfs-swift-ufo <= 3.3.1-4 - -%if 0%{_for_fedora_koji_builds} -Source15: http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.1/UFO/gluster-swift-ufo-%{UFOVER}.tar.gz -%else -Source15: gluster-swift-ufo-@PACKAGE_VERSION@.tar.gz -%endif -Patch15: %{name}-3.3.1.ufo.gluster.swift.common.DiskFile-1.7.4.patch +This package provides the api include files. -%description ufo -Gluster Unified File and Object Storage unifies NAS and object storage -technology. This provides a system for data storage that enables users to access -the same data as an object and as a file, simplifying management and controlling -storage costs. +%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 -%endif +%description regression-tests +The Gluster Test Framework, is a suite of scripts used for +regression testing of Gluster. %prep -%setup -q -n %{name}-%{version} -%if 0%{?_with_ufo:1} -# unpack swift-1.x.y -%setup -q -T -D -n %{name}-%{version} -a 20 -# unpack gluster ufo -%setup -q -T -D -n %{name}-%{version} -a 15 -%if 0%{_for_fedora_koji_builds} +%setup -q -n %{name}-%{version}%{?prereltag} +%if ( 0%{_for_fedora_koji_builds} ) #%patch0 -p0 -%patch1 -p0 -%endif -cd swift-%{SWIFTVER} -%if ( 0%{?rhel} && 0%{?rhel} < 7 ) -%patch20 -p1 -%patch21 -p1 -%endif -%patch22 -p1 -dos2unix LICENSE -%if 0%{_for_fedora_koji_builds} -cd ../ufo -%patch15 -p1 +%patch1 -p0 -F4 +%if ( "%{version}" == "3.3.1" ) +%patch2 -p1 %endif %endif %build ./autogen.sh -%configure %{?_without_rdma} %{?_without_epoll} %{?_with_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} -%if 0%{?_with_ufo:1} -cd swift-%{SWIFTVER} -%{__python} setup.py build -%{__mkdir_p} doc/build -%if ( 0%{?fedora} ) -%{__python} setup.py build_sphinx -%endif -cd .. -cd ufo -%{__python} setup.py build -cd .. -%endif +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 \ @@ -560,7 +478,7 @@ cd .. %{__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} \ @@ -569,9 +487,12 @@ cd .. %{__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 + +%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 @@ -583,8 +504,14 @@ cd .. 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 @@ -598,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 @@ -655,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 @@ -663,137 +611,81 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/options touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%if 0%{?_with_ufo:1} -cd swift-%{SWIFTVER} -%{__python} setup.py install -O1 --skip-build --root %{buildroot} -# common swift .service or .init files -%_init_install %{glusterswiftaccount_service} gluster-swift-account -%_init_install %{glusterswiftcontainer_service} gluster-swift-container -%_init_install %{glusterswiftobject_service} gluster-swift-object -%_init_install %{glusterswiftproxy_service} gluster-swift-proxy -%if 0%{?_with_systemd:1} -# extra systemd .service files -%_init_install %{SOURCE34} gluster-swift-account@ -%_init_install %{SOURCE35} gluster-swift-container@ -%_init_install %{SOURCE36} gluster-swift-object@ -%if ( 0%{?fedora} && 0%{?fedora} > 18 ) -# more extra systemd .service files in f19 -%_init_install %{SOURCE50} gluster-swift-account-replicator -%_init_install %{SOURCE51} gluster-swift-account-replicator@ -%_init_install %{SOURCE52} gluster-swift-account-auditor -%_init_install %{SOURCE53} gluster-swift-account-auditor@ -%_init_install %{SOURCE54} gluster-swift-account-reaper -%_init_install %{SOURCE55} gluster-swift-account-reaper@ -%_init_install %{SOURCE56} gluster-swift-container-replicator -%_init_install %{SOURCE57} gluster-swift-container-replicator@ -%_init_install %{SOURCE58} gluster-swift-container-auditor -%_init_install %{SOURCE59} gluster-swift-container-auditor@ -%_init_install %{SOURCE60} gluster-swift-container-updater -%_init_install %{SOURCE61} gluster-swift-container-updater@ -%_init_install %{SOURCE62} gluster-swift-object-replicator -%_init_install %{SOURCE63} gluster-swift-object-replicator@ -%_init_install %{SOURCE64} gluster-swift-object-auditor -%_init_install %{SOURCE65} gluster-swift-object-auditor@ -%_init_install %{SOURCE66} gluster-swift-object-updater -%_init_install %{SOURCE67} gluster-swift-object-updater@ -%_init_install %{SOURCE68} gluster-swift-object-expirer -%_init_install %{SOURCE69} gluster-swift-object-expirer@ -%endif -%else -# Init helper functions -%{__install} -p -D -m 644 %{SOURCE44} %{buildroot}%{_datarootdir}/gluster-swift/functions -# Init scripts -%_init_install %{glusterswiftaccount_service} gluster-swift-account -%_init_install %{glusterswiftcontainer_service} gluster-swift-container -%_init_install %{glusterswiftobject_service} gluster-swift-object -%_init_install %{glusterswiftproxy_service} gluster-swift-proxy -%endif -# Misc other -%{__install} -d -m 755 %{buildroot}%{_sysconfdir}/swift -%{__install} -d -m 755 %{buildroot}%{_sysconfdir}/swift/account-server -%{__install} -d -m 755 %{buildroot}%{_sysconfdir}/swift/container-server -%{__install} -d -m 755 %{buildroot}%{_sysconfdir}/swift/object-server -%{__install} -d -m 755 %{buildroot}%{_sysconfdir}/swift/proxy-server -# Config files -#%if ( 0%{?fedora} && 0%{?fedora} > 17 ) -# these first appeared in openstack-swift-1.7.4-1.fc18 -#install -p -D -m 660 %{SOURCE70} %{buildroot}%{_sysconfdir}/swift/account-server.conf -#install -p -D -m 660 %{SOURCE71} %{buildroot}%{_sysconfdir}/swift/container-server.conf -#install -p -D -m 660 %{SOURCE72} %{buildroot}%{_sysconfdir}/swift/object-server.conf -#install -p -D -m 660 %{SOURCE73} %{buildroot}%{_sysconfdir}/swift/proxy-server.conf -#install -p -D -m 660 %{SOURCE74} %{buildroot}%{_sysconfdir}/swift/swift.conf -#%endif -# Install pid directory -%{__install} -d -m 755 %{buildroot}%{_localstatedir}/run/swift -%{__install} -d -m 755 %{buildroot}%{_localstatedir}/run/swift/account-server -%{__install} -d -m 755 %{buildroot}%{_localstatedir}/run/swift/container-server -%{__install} -d -m 755 %{buildroot}%{_localstatedir}/run/swift/object-server -%{__install} -d -m 755 %{buildroot}%{_localstatedir}/run/swift/proxy-server -%if 0%{?_with_systemd:1} -# Swift run directories -%{__mkdir_p} %{buildroot}%{_sysconfdir}/tmpfiles.d -install -p -m 0644 %{SOURCE37} %{buildroot}%{_sysconfdir}/tmpfiles.d/gluster-swift.conf -%endif -# man pages -install -d -m 755 %{buildroot}%{_mandir}/man5 -for m in doc/manpages/*.5; do - install -p -m 0644 $m %{buildroot}%{_mandir}/man5 -done -install -d -m 755 %{buildroot}%{_mandir}/man1 -for m in doc/manpages/*.1; do - install -p -m 0644 $m %{buildroot}%{_mandir}/man1 -done -cd .. -cd ufo -%{__python} setup.py install -O1 --skip-build --root %{buildroot} -cd .. -%{__mkdir_p} %{buildroot}%{_sysconfdir}/swift -cp -r ufo/etc/* %{buildroot}%{_sysconfdir}/swift/ -%{__mkdir_p} %{buildroot}%{_bindir} -cp ufo/bin/gluster-swift-gen-builders %{buildroot}%{_bindir}/ -%endif -# 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.* -%if 0%{!?_without_rdma:1} +%files cli +%{_sbindir}/gluster +%{_mandir}/man8/gluster.8* + +%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 @@ -804,51 +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%{?_with_fusermount:1} +%if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs %endif +%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 @@ -885,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 @@ -895,149 +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 -%if 0%{?_with_ufo:1} -%files swift -%defattr(-,root,root,-) -%doc swift-%{SWIFTVER}/AUTHORS -%doc swift-%{SWIFTVER}/LICENSE -%doc swift-%{SWIFTVER}/README -%doc swift-%{SWIFTVER}/etc/dispersion.conf-sample -%doc swift-%{SWIFTVER}/etc/drive-audit.conf-sample -%doc swift-%{SWIFTVER}/etc/object-expirer.conf-sample -%doc swift-%{SWIFTVER}/etc/swift.conf-sample -%{_mandir}/man5/dispersion.conf.5* -%{_mandir}/man1/swift-dispersion-populate.1* -%{_mandir}/man1/swift-dispersion-report.1* -%{_mandir}/man1/swift.1* -%{_mandir}/man1/swift-get-nodes.1* -%{_mandir}/man1/swift-init.1* -%{_mandir}/man1/swift-orphans.1* -%{_mandir}/man1/swift-recon.1* -%{_mandir}/man1/swift-ring-builder.1* -%if 0%{?_with_systemd:1} -%config(noreplace) %{_sysconfdir}/tmpfiles.d/gluster-swift.conf -%else -%dir %{_datarootdir}/gluster-swift/functions -%endif -%dir %{_sysconfdir}/swift -#%if ( 0%{?fedora} && 0%{?fedora} > 17 ) -#%config(noreplace) %attr(660, root, swift) %{_sysconfdir}/swift/swift.conf -#%endif -%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift -%dir %{python_sitelib}/swift -%{_bindir}/swift-account-audit -%{_bindir}/swift-bench -%{_bindir}/swift-drive-audit -%{_bindir}/swift-get-nodes -%{_bindir}/swift-init -%{_bindir}/swift-ring-builder -%{_bindir}/swift-dispersion-populate -%{_bindir}/swift-dispersion-report -%{_bindir}/swift-recon* -%{_bindir}/swift-object-expirer -%{_bindir}/swift-oldies -%{_bindir}/swift-orphans -%{_bindir}/swift-form-signature -%{_bindir}/swift-temp-url -%{python_sitelib}/swift/*.py* -%{python_sitelib}/swift/common -%{python_sitelib}/swift-%{SWIFTVER}-*.egg-info - -%files swift-account -%defattr(-,root,root,-) -%doc swift-%{SWIFTVER}/etc/account-server.conf-sample -%{_mandir}/man5/account-server.conf.5* -%{_mandir}/man1/swift-account-auditor.1* -%{_mandir}/man1/swift-account-reaper.1* -%{_mandir}/man1/swift-account-replicator.1* -%{_mandir}/man1/swift-account-server.1* -%_init_gluster_swift_account -%if 0%{?_with_systemd:1} -%{_unitdir}/gluster-swift-account*.service -%endif -%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/account-server -%dir %{_sysconfdir}/swift/account-server -%{_bindir}/swift-account-auditor -%{_bindir}/swift-account-reaper -%{_bindir}/swift-account-replicator -%{_bindir}/swift-account-server -%{python_sitelib}/swift/account - -%files swift-container -%defattr(-,root,root,-) -%doc swift-%{SWIFTVER}/etc/container-server.conf-sample -%{_mandir}/man5/container-server.conf.5* -%{_mandir}/man1/swift-container-auditor.1* -%{_mandir}/man1/swift-container-replicator.1* -%{_mandir}/man1/swift-container-server.1* -%{_mandir}/man1/swift-container-sync.1* -%{_mandir}/man1/swift-container-updater.1* -%_init_gluster_swift_container -%if 0%{?_with_systemd:1} -%{_unitdir}/gluster-swift-container*.service -%endif -%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/container-server -%dir %{_sysconfdir}/swift/container-server -%{_bindir}/swift-container-auditor -%{_bindir}/swift-container-server -%{_bindir}/swift-container-replicator -%{_bindir}/swift-container-updater -%{_bindir}/swift-container-sync -%{python_sitelib}/swift/container - -%files swift-object -%defattr(-,root,root,-) -%doc swift-%{SWIFTVER}/etc/object-server.conf-sample -%doc swift-%{SWIFTVER}/etc/rsyncd.conf-sample -%{_mandir}/man5/object-server.conf.5* -%{_mandir}/man5/object-expirer.conf.5* -%{_mandir}/man1/swift-object-auditor.1* -%{_mandir}/man1/swift-object-expirer.1* -%{_mandir}/man1/swift-object-info.1* -%{_mandir}/man1/swift-object-replicator.1* -%{_mandir}/man1/swift-object-server.1* -%{_mandir}/man1/swift-object-updater.1* -%_init_gluster_swift_object -%if 0%{?_with_systemd:1} -%{_unitdir}/gluster-swift-object*.service -%endif -%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/object-server -%dir %{_sysconfdir}/swift/object-server -%{_bindir}/swift-object-auditor -%{_bindir}/swift-object-info -%{_bindir}/swift-object-replicator -%{_bindir}/swift-object-server -%{_bindir}/swift-object-updater -%{python_sitelib}/swift/obj - -%files swift-proxy -%defattr(-,root,root,-) -%doc swift-%{SWIFTVER}/etc/proxy-server.conf-sample -%{_mandir}/man5/proxy-server.conf.5* -%{_mandir}/man1/swift-proxy-server.1* -%_init_gluster_swift_proxy -%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/proxy-server -%dir %{_sysconfdir}/swift/proxy-server -%{_bindir}/swift-proxy-server -%{python_sitelib}/swift/proxy - -%files swift-doc -%defattr(-,root,root,-) -%doc swift-%{SWIFTVER}/LICENSE +%files api-devel +%{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/pkgconfig/libgfchangelog.pc +%{_libdir}/libgfapi.so +%{_includedir}/glusterfs/api/* -%files ufo +%files regression-tests %defattr(-,root,root,-) -%{python_sitelib}/gluster -%{python_sitelib}/gluster_swift_ufo-*-*.egg-info -%{_bindir}/gluster-swift-gen-builders -%{_sysconfdir}/swift/*-gluster -%{_sysconfdir}/swift/*/1.conf-gluster -%endif - +%{_prefix}/share/glusterfs/* +%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t %post server # Legacy server @@ -1049,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} @@ -1083,7 +863,6 @@ else glusterd --xlator-option *.upgrade=on -N fi - %preun server if [ $1 -eq 0 ]; then if [ -f %_init_glusterfsd ]; then @@ -1102,116 +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) -%if 0%{?_with_ufo:1} -%pre swift -getent group swift >/dev/null || groupadd -r swift -g 160 -getent passwd swift >/dev/null || \ -useradd -r -g swift -u 160 -d %{_sharedstatedir}/swift -s /sbin/nologin \ --c "OpenStack Swift Daemons" swift -exit 0 - -%pre swift-account - -if [ -f /etc/swift/account-server/1.conf ]; then - echo "warning: /etc/swift/account-server/1.conf saved as /etc/swift/account-server/1.conf.rpmsave" - cp /etc/swift/account-server/1.conf /etc/swift/account-server/1.conf.rpmsave -fi - - -%post swift-account -%_init_enable gluster-swift-account - - -%preun swift-account -if [ $1 = 0 ] ; then - %_init_stop gluster-swift-account - %_init_disable gluster-swift-account -fi - - -%postun swift-account -if [ "$1" -ge "1" ] ; then - %_init_restart gluster-swift-account -fi - - -%pre swift-container - -if [ -f /etc/swift/container-server/1.conf ]; then - echo "warning: /etc/swift/container-server/1.conf saved as /etc/swift/container-server/1.conf.rpmsave" - cp /etc/swift/container-server/1.conf /etc/swift/container-server/1.conf.rpmsave -fi - - -%post swift-container -%_init_enable gluster-swift-container - - -%preun swift-container -if [ $1 = 0 ] ; then - %_init_stop gluster-swift-container - %_init_disable gluster-swift-container -fi - - -%postun swift-container -if [ "$1" -ge "1" ] ; then - %_init_restart gluster-swift-container -fi - - -%pre swift-object - -if [ -f /etc/swift/object-server/1.conf ]; then - echo "warning: /etc/swift/object-server/1.conf saved as /etc/swift/object-server/1.conf.rpmsave" - cp /etc/swift/object-server/1.conf /etc/swift/object-server/1.conf.rpmsave -fi - - -%post swift-object -%_init_enable gluster-swift-object - +* Wed Oct 9 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com> +- Sync with Fedora glusterfs.spec 3.4.1-2+ -%preun swift-object -if [ $1 = 0 ] ; then - %_init_stop gluster-swift-object - %_init_disable gluster-swift-object -fi +* 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) -%postun swift-object -if [ "$1" -ge "1" ] ; then - %_init_restart gluster-swift-object -fi +* 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) -%pre swift-proxy +* 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 -if [ -f /etc/swift/proxy-server.conf ]; then - echo "warning: /etc/swift/proxy-server.conf saved as /etc/swift/proxy-server.conf.rpmsave" - cp /etc/swift/proxy-server.conf /etc/swift/proxy-server.conf.rpmsave -fi +* 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 -%post swift-proxy -%_init_enable gluster-swift-proxy +* 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 -%preun swift-proxy -if [ $1 = 0 ] ; then - %_init_stop gluster-swift-proxy - %_init_disable gluster-swift-proxy -fi +* 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 -%postun swift-proxy -if [ "$1" -ge "1" ] ; then - %_init_restart gluster-swift-proxy -fi -%endif +* Fri Jun 7 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com> +- Sync with Fedora glusterfs.spec, remove G4S/UFO and Swift -%changelog * Mon Mar 4 2013 Niels de Vos <ndevos@redhat.com> - Package /var/run/gluster so that statedumps can be created @@ -1252,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 @@ -1267,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 @@ -1286,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 @@ -1295,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 @@ -1331,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 @@ -1399,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. @@ -1446,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 |
