3.3.0-6, cleanup glusterfs.spec

This commit is contained in:
Kaleb S. KEITHLEY 2012-09-07 13:44:07 -04:00
parent 1d07d5e41f
commit d7f904cde8
2 changed files with 553 additions and 78 deletions

View File

@ -21,42 +21,36 @@
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication
%{?_without_georeplication:%global _without_georeplication --disable-geo-replication}
%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 )
%global SWIFTVER 1.4.8
%global _with_swift true
%endif
%if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 )
%global _with_systemd true
%endif
Summary: Cluster File System
Name: glusterfs
Version: 3.2.7
Release: 2%{?dist}
License: GPLv3
Version: 3.3.0
Release: 6%{?dist}
License: GPLv3+ and (GPLv2 or LGPLv3+)
Group: System Environment/Base
Vendor: Red Hat
URL: http://www.gluster.org//docs/index.php/GlusterFS
Source0: http://download.gluster.org/pub/gluster/glusterfs/3.2/%{version}/glusterfs-%{version}.tar.gz
Source0: http://download.gluster.org/pub/gluster/glusterfs/3.3/%{version}/glusterfs-%{version}.tar.gz
Source1: glusterd.sysconfig
Source2: glusterfsd.sysconfig
Source3: umount.glusterfs
Source4: glusterfs-fuse.logrotate
Source5: glusterd.logrotate
Source6: glusterfsd.logrotate
Patch0: %{name}-3.2.5.libglusterfs.Makefile.patch
Patch1: %{name}-3.2.5.configure.ac.patch
Patch2: %{name}-3.2.7.xlators.mgmt.glusterd.glusterd-rpc-ops.c.patch
#Patch0: %{name}-3.2.5.configure.ac.patch
Patch1: %{name}-3.3.0.libglusterfs.Makefile.patch
Patch2: %{name}-3.3.0.cli.cli-rpc-ops.c.patch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
%if ( 0%{?fedora} && 0%{?fedora} < 17 ) || ( 0%{?rhel} && 0%{?rhel} < 7 )
Source7: glusterd.init
Source8: glusterfsd.init
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/service
Requires(preun): /sbin/chkconfig
Requires(postun): /sbin/service
%define _init_enable() /sbin/chkconfig --add %1 ;
%define _init_disable() /sbin/chkconfig --del %1 ;
%define _init_restart() /sbin/service %1 condrestart &>/dev/null ;
%define _init_stop() /sbin/service %1 stop &>/dev/null ;
%define _init_install() %{__install} -D -p -m 0755 %{1} %{buildroot}%{_sysconfdir}/init.d/%{2} ;
%define _init_file1 %{_sysconfdir}/init.d/glusterd
%define _init_file2 %{_sysconfdir}/init.d/glusterfsd
%else
%if 0%{?_with_systemd:1}
Source7: glusterd.service
Source8: glusterfsd.service
BuildRequires: systemd-units
@ -70,20 +64,41 @@ Requires(postun): systemd-units
%define _init_install() %{__install} -D -p -m 0644 %{1} %{buildroot}%{_unitdir}/%{2}.service ;
%define _init_file1 %{_unitdir}/glusterd.service
%define _init_file2 %{_unitdir}/glusterfsd.service
%else
Source7: glusterd.init
Source8: glusterfsd.init
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/service
Requires(preun): /sbin/chkconfig
Requires(postun): /sbin/service
%define _init_enable() /sbin/chkconfig --add %1 ;
%define _init_disable() /sbin/chkconfig --del %1 ;
%define _init_restart() /sbin/service %1 condrestart &>/dev/null ;
%define _init_stop() /sbin/service %1 stop &>/dev/null ;
%define _init_install() %{__install} -D -p -m 0755 %{1} %{buildroot}%{_sysconfdir}/init.d/%{2} ;
%define _init_file1 %{_sysconfdir}/init.d/glusterd
%define _init_file2 %{_sysconfdir}/init.d/glusterfsd
%endif
BuildRequires: bison flex
BuildRequires: gcc make automake libtool
BuildRequires: ncurses-devel readline-devel
BuildRequires: libxml2-devel
BuildRequires: libxml2-devel openssl-devel
%if 0%{?suse_version}
BuildRequires: python-devel
%else
BuildRequires: python-ctypes
%endif
Obsoletes: hekafs <= 0.7
Obsoletes: %{name}-libs <= 2.0.0
Obsoletes: %{name}-common < 3.1.0
Obsoletes: %{name}-common < %{version}-%{release}
Obsoletes: %{name}-core < %{version}-%{release}
Provides: %{name}-libs = %{version}-%{release}
Provides: %{name}-common = %{version}-%{release}
Provides: %{name}-core = %{version}-%{release}
%description
GlusterFS is a clustered file-system capable of scaling to several
petabytes. It aggregates various storage bricks over Infiniband RDMA
@ -121,7 +136,8 @@ This package provides support to ib-verbs library.
%package geo-replication
Summary: GlusterFS Geo-replication
Group: Applications/File
Requires: %{name} = %{version}-%{release} , python-ctypes , rsync >= 3.0.0
Requires: %{name} = %{version}-%{release}
Requires: %{name}-server = %{version}-%{release}
%description geo-replication
GlusterFS is a clustered file-system capable of scaling to several
@ -142,7 +158,7 @@ BuildRequires: fuse-devel
Requires: %{name} = %{version}-%{release}
Obsoletes: %{name}-client < 3.1.0
Obsoletes: %{name}-client < %{version}-%{release}
Provides: %{name}-client = %{version}-%{release}
%description fuse
@ -158,6 +174,7 @@ 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}-fuse = %{version}-%{release}
@ -173,26 +190,11 @@ is in user space and easily manageable.
This package provides the glusterfs server daemon.
%package vim
Summary: Vim syntax file
Group: Applications/Text
Requires: vim-common
%description vim
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.
Vim syntax file for GlusterFS.
%package devel
Summary: Development Libraries
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Summary: Development Libraries
License: GPLv2 or LGPLv3+
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
GlusterFS is a clustered file-system capable of scaling to several
@ -205,11 +207,175 @@ is in user space and easily manageable.
This package provides the development libraries.
%if 0%{?_with_swift:1}
%package swift
Summary: GlusterFS OpenStack Object Storage
Group: Applications/System
License: ASL 2.0
BuildArch: noarch
Source10: http://launchpad.net/swift/essex/%{SWIFTVER}/+download/swift-%{SWIFTVER}.tar.gz
Source11: gluster-swift-functions
Source12: gluster-swift-account.init
Source13: gluster-swift-container.init
Source14: gluster-swift-object.init
Source15: gluster-swift-proxy.init
Patch3: openstack-swift-newdeps.patch
Patch4: openstack-swift-docmod.patch
Patch5: openstack-swift-nonet.patch
Patch6: glusterfs-3.3.0.swift.patch
#BuildRoot: %(mktemp -ud %{_tmppath}/swift-%{SWIFTVER}-%{release}-XXXXXX)
BuildRequires: python-devel
BuildRequires: python-setuptools
BuildRequires: python-netifaces
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
BuildRequires: python-webob1.0
BuildRequires: python-paste-deploy1.5
%else
BuildRequires: python-webob
BuildRequires: python-paste-deploy
%endif
BuildRequires: dos2unix
Requires: python-configobj
Requires: python-eventlet >= 0.9.8
Requires: python-greenlet >= 0.3.1
Requires: python-paste-deploy
Requires: python-simplejson
Requires: pyxattr
Requires: python-setuptools
Requires: python-netifaces
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.
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.
%package swift-plugin
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
Source20: gluster-swift-plugins.tar.gz
%description swift-plugin
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.
%endif
%prep
%setup -q -n %{name}-%{version}
%patch0 -p0
%if 0%{?_with_swift:1}
%setup -q -T -D -n %{name}-%{version} -a 10
%setup -q -T -D -n %{name}-%{version} -a 20
#%patch0 -p0
%patch1 -p0
%patch2 -p0
cd swift-%{SWIFTVER}
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
dos2unix LICENSE
%endif
%build
./autogen.sh
@ -221,6 +387,16 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%{__make} %{?_smp_mflags}
%if 0%{?_with_swift:1}
cd swift-%{SWIFTVER}
%{__python} setup.py build
%{__mkdir_p} doc/build
%if ( 0%{?fedora} )
%{__python} setup.py build_sphinx
%endif
cd ..
%endif
%install
%{__rm} -rf %{buildroot}
%{__make} install DESTDIR=%{buildroot}
@ -246,7 +422,6 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs
%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd
# Remove unwanted files from all the shared libraries
find %{buildroot}%{_libdir} -name '*.a' -delete
find %{buildroot}%{_libdir} -name '*.la' -delete
@ -254,11 +429,6 @@ find %{buildroot}%{_libdir} -name '*.la' -delete
# Remove installed docs, we include them ourselves as %%doc
%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/
# Rename the samples, so we can include them as %%config
for file in %{buildroot}%{_sysconfdir}/glusterfs/*.sample; do
%{__mv} ${file} `dirname ${file}`/`basename ${file} .sample`
done
# Create working directory
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd
@ -266,10 +436,6 @@ done
sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \
%{buildroot}%{_sysconfdir}/glusterfs/glusterd.vol
# Clean up the examples we want to include as %%doc
%{__cp} -a doc/examples examples
%{__rm} -f examples/Makefile*
# Install init script and sysconfig file
%_init_install %{SOURCE7} glusterd
%_init_install %{SOURCE8} glusterfsd
@ -292,9 +458,81 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%{__install} -D -p -m 0644 %{SOURCE6} \
%{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd
# Install vim syntax plugin
%{__install} -D -p -m 644 extras/glusterfs.vim \
%{buildroot}%{_datadir}/vim/vimfiles/syntax/glusterfs.vim
%if 0%{!?_without_georeplication:1}
# geo-rep ghosts
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication
touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf
%endif
# the rest of the ghosts
touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/post
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/stop/pre
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/post
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/start/pre
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/post
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/post
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/add-brick/pre
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/post
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/set/pre
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/post
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/create/pre
%{__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/glustershd
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/vols
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/nfs
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/peers
%if 0%{?_with_swift:1}
cd swift-%{SWIFTVER}
%{__python} setup.py install -O1 --skip-build --root %{buildroot}
# Init helper functions
%{__install} -p -D -m 644 %{SOURCE11} %{buildroot}%{_datarootdir}/gluster-swift/functions
# Init scripts
%{__install} -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/gluster-swift-account
%{__install} -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/gluster-swift-container
%{__install} -p -D -m 755 %{SOURCE14} %{buildroot}%{_initrddir}/gluster-swift-object
%{__install} -p -D -m 755 %{SOURCE15} %{buildroot}%{_initrddir}/gluster-swift-proxy
# Remove tests
%{__rm} -rf %{buildroot}/%{python_sitelib}/test
# 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
# 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
cd ..
%{__mkdir -p} %{buildroot}%{python_sitelib}/swift/plugins
#%{__mkdir -p} %{buildroot}%{_sysconfdir}/swift
cd plugins
%{__install} -p -D -m 755 constraints.py %{buildroot}%{python_sitelib}/swift/plugins
%{__install} -p -D -m 755 DiskDir.py %{buildroot}%{python_sitelib}/swift/plugins
%{__install} -p -D -m 755 DiskFile.py %{buildroot}%{python_sitelib}/swift/plugins
%{__install} -p -D -m 755 Glusterfs.py %{buildroot}%{python_sitelib}/swift/plugins
%{__install} -p -D -m 755 __init__.py %{buildroot}%{python_sitelib}/swift/plugins
%{__install} -p -D -m 755 utils.py %{buildroot}%{python_sitelib}/swift/plugins
cp -r conf/* %{buildroot}%{_sysconfdir}/swift
cd ..
%endif
%clean
%{__rm} -rf %{buildroot}
@ -307,21 +545,26 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%files
%defattr(-,root,root,-)
%doc ChangeLog COPYING INSTALL README THANKS
%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd
%config(noreplace) %{_sysconfdir}/sysconfig/glusterd
%{_libdir}/glusterfs
%{_libdir}/*.so.*
%{_sbindir}/glusterfs*
%{_sbindir}/gluster
%{_sbindir}/glusterd
%{_libexecdir}/glusterfs
%{_mandir}/man8/*gluster*.8*
# %{_mandir}/man8/*gluster*.8*
%dir %{_localstatedir}/log/glusterfs
%dir %{_sharedstatedir}/glusterd
%if 0%{!?_without_rdma:1}
%exclude %{_libdir}/glusterfs/%{version}/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*
%if 0%{!?_without_rdma:1}
%files rdma
@ -333,20 +576,20 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%post geo-replication
#restart glusterd.
%{_sysconfdir}/init.d/glusterd restart &> /dev/null
%endif
%if 0%{!?_without_georeplication:1}
%files geo-replication
%defattr(-,root,root)
%{_libexecdir}/glusterfs/gsyncd
%{_libexecdir}/glusterfs/python/syncdaemon/*
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication
%ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd.conf
%endif
%files fuse
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse
%{_libdir}/glusterfs/%{version}/xlator/mount/fuse*
%{_mandir}/man8/mount.glusterfs.8*
# %{_mandir}/man8/mount.glusterfs.8*
/sbin/mount.glusterfs
/sbin/umount.glusterfs
%if 0%{?_with_fusermount:1}
@ -356,21 +599,53 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%files server
%defattr(-,root,root,-)
%doc examples/ doc/glusterfs*.vol.sample
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd
%config(noreplace) %{_sysconfdir}/sysconfig/glusterd
%config(noreplace) %{_sysconfdir}/glusterfs
# Legacy configs
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd
%config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd
%{_sharedstatedir}/glusterd
%_init_file1
%_init_file2
%{_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
# 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
# exist after installation. They are generated on the first start...
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/post
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/pre
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/pre
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers
%files vim
%defattr(-,root,root,-)
%doc COPYING
%{_datadir}/vim/vimfiles/syntax/glusterfs.vim
%files devel
%defattr(-,root,root,-)
@ -378,11 +653,143 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%exclude %{_includedir}/glusterfs/y.tab.h
%{_libdir}/*.so
%if 0%{?_with_swift: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
%dir %{_datarootdir}/gluster-swift/functions
%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift
%dir %{_sysconfdir}/swift
%dir %{python_sitelib}/swift
%{_bindir}/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
%dir %{_initrddir}/gluster-swift-account
%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
%dir %{_initrddir}/gluster-swift-container
%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
%dir %{_initrddir}/gluster-swift-object
%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
%dir %{_initrddir}/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 swift-plugin
%defattr(-,root,root,-)
%{python_sitelib}/swift/plugins
%{_sysconfdir}/swift
%endif
%post server
# Legacy server
%_init_enable glusterd
%_init_enable glusterfsd
# Genuine Fedora (and EPEL) builds never put gluster files in /etc; if
# there are any files in /etc from a prior gluster.org install, move them
# 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 ]; then
%{__mkdir_p} /var/lib
cp -a /etc/glusterd /var/lib
rm -rf /etc/glusterd
ln -sf /var/lib/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
newfile=${file}.rpmsave
echo "warning: ${file} saved as ${newfile}"
cp ${file} ${newfile}
done
fi
# add marker translator
# but first make certain that there are no old libs around to bite us
# BZ 834847
if [ -e /etc/ld.so.conf.d/glusterfs.conf ]; then
rm -f /etc/ld.so.conf.d/glusterfs.conf
/sbin/ldconfig
fi
pidof -c -o %PPID -x glusterd &> /dev/null
if [ $? -eq 0 ]; then
kill -9 `pgrep -f gsyncd.py` &> /dev/null
killall glusterd &> /dev/null
glusterd --xlator-option *.upgrade=on -N
else
glusterd --xlator-option *.upgrade=on -N
fi
%preun server
if [ $1 -eq 0 ]; then
%_init_stop glusterfsd
@ -395,9 +802,79 @@ if [ $1 -ge 1 ]; then
%_init_restart glusterfsd
fi
%if 0%{?_with_swift: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
%post swift-account
/sbin/chkconfig --add gluster-swift-account
%preun swift-account
if [ $1 = 0 ] ; then
/sbin/service gluster-swift-account stop >/dev/null 2>&1
/sbin/chkconfig --del gluster-swift-account
fi
%postun swift-account
if [ "$1" -ge "1" ] ; then
/sbin/service gluster-swift-account condrestart >/dev/null 2>&1 || :
fi
%post swift-container
/sbin/chkconfig --add gluster-swift-container
%preun swift-container
if [ $1 = 0 ] ; then
/sbin/service gluster-swift-container stop >/dev/null 2>&1
/sbin/chkconfig --del gluster-swift-container
fi
%postun swift-container
if [ "$1" -ge "1" ] ; then
/sbin/service gluster-swift-container condrestart >/dev/null 2>&1 || :
fi
%post swift-object
/sbin/chkconfig --add gluster-swift-object
%preun swift-object
if [ $1 = 0 ] ; then
/sbin/service gluster-swift-object stop >/dev/null 2>&1
/sbin/chkconfig --del gluster-swift-object
fi
%postun swift-object
if [ "$1" -ge "1" ] ; then
/sbin/service gluster-swift-object condrestart >/dev/null 2>&1 || :
fi
%post swift-proxy
/sbin/chkconfig --add gluster-swift-proxy
%preun swift-proxy
if [ $1 = 0 ] ; then
/sbin/service gluster-swift-proxy stop >/dev/null 2>&1
/sbin/chkconfig --del gluster-swift-proxy
fi
%postun swift-proxy
if [ "$1" -ge "1" ] ; then
/sbin/service gluster-swift-proxy condrestart >/dev/null 2>&1 || :
fi
%endif
%changelog
* Mon Aug 27 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.2.7-2
- fix SEGV in glusterd-rpc-ops.c, BZ 837684, f17 only.
* Wed Sep 7 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.3.0-6
- glusterfs.spec cleanup
-* Mon Aug 27 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.2.7-2
-- fix SEGV in glusterd-rpc-ops.c, BZ 837684, f17 only.
* Wed Aug 12 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.3.0-5
- now with UFO (openstack-swift) except on el5
@ -412,9 +889,6 @@ fi
* Thu Jul 5 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.3.0-2
- selected fixes to glusterfs.spec for BZs 826836, 826855, 829734, 834847
* Mon Jun 11 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.2.7-1
- Update to 3.2.7
* Thu May 31 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 3.3.0-1
- Update to 3.3.0

View File

@ -1 +1,2 @@
74c36a0dac00e25d1b0b21100b04a281 glusterfs-3.2.7.tar.gz
3ddf782421f54c60b9da9607b0c32ec1 glusterfs-3.3.0.tar.gz
785ae9ba4e1f6fc256cd6a697bb2861f swift-1.4.8.tar.gz