summaryrefslogtreecommitdiffstats
path: root/glusterfs.spec.in
diff options
context:
space:
mode:
Diffstat (limited to 'glusterfs.spec.in')
-rw-r--r--glusterfs.spec.in1098
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