[glusterfs/f17] 3.3.0-6, cleanup glusterfs.spec

Kaleb S. KEITHLEY kkeithle at fedoraproject.org
Fri Sep 7 17:44:58 UTC 2012


commit d7f904cde82f0ea79255143b2876d9adc13ce812
Author: Kaleb S. KEITHLEY <kkeithle at redhat.com>
Date:   Fri Sep 7 13:44:07 2012 -0400

    3.3.0-6, cleanup glusterfs.spec

 glusterfs.spec |  628 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 sources        |    3 +-
 2 files changed, 553 insertions(+), 78 deletions(-)
---
diff --git a/glusterfs.spec b/glusterfs.spec
index 3525fbd..e12837a 100644
--- a/glusterfs.spec
+++ b/glusterfs.spec
@@ -21,42 +21,36 @@
 # rpmbuild -ta @PACKAGE_NAME at -@PACKAGE_VERSION at .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
 
diff --git a/sources b/sources
index b67b22a..0e24a6b 100644
--- a/sources
+++ b/sources
@@ -1 +1,2 @@
-74c36a0dac00e25d1b0b21100b04a281  glusterfs-3.2.7.tar.gz
+3ddf782421f54c60b9da9607b0c32ec1  glusterfs-3.3.0.tar.gz
+785ae9ba4e1f6fc256cd6a697bb2861f  swift-1.4.8.tar.gz


More information about the scm-commits mailing list