From d7f904cde82f0ea79255143b2876d9adc13ce812 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 7 Sep 2012 13:44:07 -0400 Subject: [PATCH] 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@-@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 - 3.2.7-2 -- fix SEGV in glusterd-rpc-ops.c, BZ 837684, f17 only. +* Wed Sep 7 2012 Kaleb S. KEITHLEY - 3.3.0-6 +- glusterfs.spec cleanup + +-* Mon Aug 27 2012 Kaleb S. KEITHLEY - 3.2.7-2 +-- fix SEGV in glusterd-rpc-ops.c, BZ 837684, f17 only. * Wed Aug 12 2012 Kaleb S. KEITHLEY - 3.3.0-5 - now with UFO (openstack-swift) except on el5 @@ -412,9 +889,6 @@ fi * Thu Jul 5 2012 Kaleb S. KEITHLEY - 3.3.0-2 - selected fixes to glusterfs.spec for BZs 826836, 826855, 829734, 834847 -* Mon Jun 11 2012 Kaleb S. KEITHLEY - 3.2.7-1 -- Update to 3.2.7 - * Thu May 31 2012 Kaleb S. KEITHLEY - 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