[glusterfs/f16] revised init.d and native systemd to minimize fedora < 17 get closer to official glusterfs.spec (but
Kaleb S. KEITHLEY
kkeithle at fedoraproject.org
Wed Nov 16 20:01:12 UTC 2011
commit 3d38179b1b059446bbdc83bdb0256bd6144eb3ed
Author: Kaleb KEITHLEY <kkeithle at f16node1.kkeithle.usersys.redhat.com>
Date: Wed Nov 16 14:59:22 2011 -0500
revised init.d and native systemd to minimize fedora < 17
get closer to official glusterfs.spec (but with all the typos), including---
add/enable production of geo-replication sub-package, which should have
been done at 3.2 (i.e. 3.2.0 or 3.2.1)
glusterfs.spec | 201 +++++++++++++++++++++++++++++++++-----------------------
1 files changed, 119 insertions(+), 82 deletions(-)
---
diff --git a/glusterfs.spec b/glusterfs.spec
index f1b2855..203d74b 100644
--- a/glusterfs.spec
+++ b/glusterfs.spec
@@ -1,20 +1,35 @@
+
+
+# if you wish to compile an rpm without rdma support, compile like this...
+# rpmbuild -ta @PACKAGE_NAME at -@PACKAGE_VERSION at .tar.gz --without rdma
%{?_without_rdma:%global _without_rdma --disable-ibverbs}
-%{?_without_epoll:%global _without_epoll --disable-epoll}
-%{?_with_fusermount:%gobal _with_fusermount --enable-fusermount}
# No RDMA Support on s390(x)
%ifarch s390 s390x
%global _without_rdma --disable-ibverbs
%endif
+# if you wish to compile an rpm without epoll...
+# rpmbuild -ta @PACKAGE_NAME at -@PACKAGE_VERSION at .tar.gz --without epoll
+%{?_without_epoll:%global _without_epoll --disable-epoll}
+
+# if you wish to compile an rpm with fusermount...
+# rpmbuild -ta @PACKAGE_NAME at -@PACKAGE_VERSION at .tar.gz --with fusermount
+%{?_with_fusermount:%global _with_fusermount --enable-fusermount}
+
+# if you wish to compile an rpm without geo-replication support, compile like this...
+# rpmbuild -ta @PACKAGE_NAME at -@PACKAGE_VERSION at .tar.gz --without georeplication
+%{?_without_georeplication:%global _without_georeplication --disable-geo-replication}
+
+
+Summary: Cluster File System
Name: glusterfs
Version: 3.2.4
-Release: 2%{?dist}
-Summary: Clustered file-system
-
-Group: System Environment/Base
+Release: 3%{?dist}
License: GPLv3
-URL: http://www.gluster.org/
+Group: System Environment/Base
+Vendor: Red Hat
+URL: http://www.gluster.org//docs/index.php/GlusterFS
Source0: http://download.gluster.com/pub/gluster/glusterfs/3.2/%{version}/glusterfs-%{version}.tar.gz
Source1: glusterd.sysconfig
Source2: glusterfsd.sysconfig
@@ -22,42 +37,43 @@ Source3: umount.glusterfs
Source4: glusterfs-fuse.logrotate
Source5: glusterd.logrotate
Source6: glusterfsd.logrotate
-%if 0%{?fedora} < 17
-# Legacy server
-Source7: glusterd.init
-Source8: glusterfsd.init
-%else
-Source7: glusterd.service
-Source8: glusterfsd.service
-%endif
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
-BuildRequires: bison
-BuildRequires: flex
-BuildRequires: gcc
-BuildRequires: make
-BuildRequires: ncurses-devel, readline-devel, python-ctypes
-
%if 0%{?fedora} < 17
+Source7: glusterd.init
+Source8: glusterfsd.init
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/service
Requires(preun): /sbin/chkconfig
Requires(postun): /sbin/service
-%define _daemon_enable() /sbin/chkconfig --add %1 ;
-%define _daemon_disable() /sbin/chkconfig --del %1 ;
-%define _daemon_restart() /sbin/service %1 condrestart &>/dev/null ;
-%define _daemon_stop() /sbin/service %1 stop &>/dev/null ;
+%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
+Source7: glusterd.service
+Source8: glusterfsd.service
BuildRequires: systemd-units
Requires(post): systemd-units
Requires(preun): systemd-units
Requires(postun): systemd-units
-%define _daemon_enable() /bin/systemctl enable %1.service ;
-%define _daemon_disable() /bin/systemctl disable %1.service ;
-%define _daemon_restart() /bin/systemctl try-restart %1.service ;
-%define _daemon_stop() /bin/systemctl stop %1.service ;
+%define _init_enable() /bin/systemctl enable %1.service ;
+%define _init_disable() /bin/systemctl disable %1.service ;
+%define _init_restart() /bin/systemctl try-restart %1.service ;
+%define _init_stop() /bin/systemctl stop %1.service ;
+%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
%endif
+BuildRequires: bison flex
+BuildRequires: gcc make automake libtool
+BuildRequires: ncurses-devel readline-devel
+BuildRequires: python-ctypes
+
Obsoletes: %{name}-libs <= 2.0.0
Obsoletes: %{name}-common < 3.1.0
Provides: %{name}-libs = %{version}-%{release}
@@ -79,11 +95,11 @@ both GlusterFS server and client framework.
%if 0%{!?_without_rdma:1}
%package rdma
-Summary: Support for ib-verbs
-Group: Applications/File
-BuildRequires: libibverbs-devel
+Summary: GlusterFS rdma support for ib-verbs
+Group: Applications/File
+BuildRequires: libibverbs-devel
-Requires: %{name} = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description rdma
GlusterFS is a clustered file-system capable of scaling to several
@@ -97,12 +113,30 @@ is in user space and easily manageable.
This package provides support to ib-verbs library.
%endif
+%if 0%{!?_without_georeplication:1}
+%package geo-replication
+Summary: GlusterFS Geo-replication
+Group: Applications/File
+Requires: %{name} = %{version}-%{release} , python-ctypes , rsync >= 3.0.0
+
+%description geo-replication
+GlusterFS is a clustered file-system capable of scaling to several
+peta-bytes. 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 system 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 userspace and easily manageable.
+
+This package provides support to geo-replication.
+%endif
+
%package fuse
-Summary: Fuse client
-Group: Applications/File
-BuildRequires: fuse-devel
+Summary: Fuse client
+Group: Applications/File
+BuildRequires: fuse-devel
-Requires: %{name} = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
Obsoletes: %{name}-client < 3.1.0
Provides: %{name}-client = %{version}-%{release}
@@ -168,36 +202,28 @@ is in user space and easily manageable.
This package provides the development libraries.
%prep
-%setup -q
+%setup -q -n %{name}-%{version}
%build
-%configure %{?_without_rdma} %{?_without_epoll} %{?_with_fusermount}
+./autogen.sh
+%configure %{?_without_rdma} %{?_without_epoll} %{?_with_fusermount} %{?_without_georeplication}
# 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
-# Parallel builds not supported
-%{__make}
+%{__make} %{?_smp_mflags}
%install
%{__rm} -rf %{buildroot}
%{__make} install DESTDIR=%{buildroot}
-
-# We'll use our init.d
-%{__rm} -f %{buildroot}%{_sysconfdir}/init.d/glusterd
-
-%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd
-%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfs
-%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterfsd
-
# Install include directory
%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs
%{__install} -p -m 0644 libglusterfs/src/*.h \
%{buildroot}%{_includedir}/glusterfs/
%{__install} -p -m 0644 contrib/uuid/*.h \
%{buildroot}%{_includedir}/glusterfs/
-# Following needed by cloudfs multi-tenant translator
+# Following needed by hekafs multi-tenant translator
%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/rpc
%{__install} -p -m 0644 rpc/rpc-lib/src/*.h \
%{buildroot}%{_includedir}/glusterfs/rpc/
@@ -206,6 +232,13 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs/server
%{__install} -p -m 0644 xlators/protocol/server/src/*.h \
%{buildroot}%{_includedir}/glusterfs/server/
+# We'll use our init.d
+%{__rm} -f %{buildroot}%{_sysconfdir}/init.d/glusterd
+
+%{__mkdir_p} %{buildroot}%{_localstatedir}/log/glusterd
+%{__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
@@ -231,18 +264,8 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%{__rm} -f examples/Makefile*
# Install init script and sysconfig file
-%if 0%{?fedora} < 17
-# Legacy init script and sysconfig file
-%{__install} -D -p -m 0755 %{SOURCE7} \
- %{buildroot}%{_sysconfdir}/init.d/glusterd
-%{__install} -D -p -m 0755 %{SOURCE8} \
- %{buildroot}%{_sysconfdir}/init.d/glusterfsd
-%else
-%{__install} -D -p -m 0644 %{SOURCE7} \
- %{buildroot}%{_unitdir}/glusterd.service
-%{__install} -D -p -m 0644 %{SOURCE8} \
- %{buildroot}%{_unitdir}/glusterfsd.service
-%endif
+%_init_install %{SOURCE7} glusterd
+%_init_install %{SOURCE8} glusterfsd
%{__install} -D -p -m 0644 %{SOURCE1} \
%{buildroot}%{_sysconfdir}/sysconfig/glusterd
%{__install} -D -p -m 0644 %{SOURCE2} \
@@ -269,6 +292,12 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%clean
%{__rm} -rf %{buildroot}
+%post
+/sbin/ldconfig
+
+%postun
+/sbin/ldconfig
+
%files
%defattr(-,root,root,-)
%doc ChangeLog COPYING INSTALL README THANKS
@@ -293,6 +322,19 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%{_libdir}/glusterfs/%{version}/rpc-transport/rdma*
%endif
+%if 0%{!?_without_georeplication:1}
+%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/*
+%endif
+
%files fuse
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse
@@ -315,14 +357,8 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd
%config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd
%{_sharedstatedir}/glusterd
-%if 0%{?fedora} < 17
-# Legacy init
-%{_sysconfdir}/init.d/glusterd
-%{_sysconfdir}/init.d/glusterfsd
-%else
-%{_unitdir}/glusterd.service
-%{_unitdir}/glusterfsd.service
-%endif
+%_init_file1
+%_init_file2
%files vim
%defattr(-,root,root,-)
@@ -335,28 +371,29 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%exclude %{_includedir}/glusterfs/y.tab.h
%{_libdir}/*.so
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
%post server
# Legacy server
-%_daemon_enable glusterd
-%_daemon_enable glusterfsd
+%_init_enable glusterd
+%_init_enable glusterfsd
%preun server
if [ $1 -eq 0 ]; then
- %_daemon_stop glusterfsd
- %_daemon_stop glusterd
- %_daemon_disable glusterfsd
- %_daemon_disable glusterd
+ %_init_stop glusterfsd
+ %_init_stop glusterd
+ %_init_disable glusterfsd
+ %_init_disable glusterd
fi
if [ $1 -ge 1 ]; then
- %_daemon_restart glusterd
- %_daemon_restart glusterfsd
+ %_init_restart glusterd
+ %_init_restart glusterfsd
fi
%changelog
+* Wed Nov 16 2011 Kaleb S. KEITHLEY <kkeithle at redhat.com> - 3.2.4-3
+- revised init.d/systemd to minimize fedora < 17
+- get closer to the official glusterfs spec, including...
+- add geo-replication, which should have been there since 3.2
+
* Wed Nov 2 2011 Kaleb S. KEITHLEY <kkeithle at redhat.com> - 3.2.4-2
- Convert init.d to systemd for f17 and later
More information about the scm-commits
mailing list