From 7a56f1b9a18e4863917e4b6aaeacba2e28073ab6 Mon Sep 17 00:00:00 2001 From: Lakshmipathi Date: Fri, 15 Apr 2011 05:08:47 +0000 Subject: rpm : create new package for geo-replication and preserve symlinks Signed-off-by: Lakshmipathi.G Signed-off-by: Anand Avati BUG: 2744 (make geo-replication package friendly) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2744 --- glusterfs.spec.in | 56 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/glusterfs.spec.in b/glusterfs.spec.in index df7d107c6e3..c07666f7a94 100644 --- a/glusterfs.spec.in +++ b/glusterfs.spec.in @@ -2,7 +2,7 @@ # a descriptive suffix to identify who owns or what the change represents # e.g. release_version 2.MSW %define release 1%{?dist} -%define _libexecdir %{_prefix}/local/libexec/glusterfs +%define _libexecdir %{_prefix}/local/libexec/ # if you wish to compile an rpm without rdma support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma @@ -16,6 +16,10 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with fusermount %{?_with_fusermount:%define _with_fusermount --enable-fusermount} +# if you wish to compile an rpm without geo-replication support, compile like this... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without geo-replication +%{?_without_geo-replication:%define _without_geo-replication --disable-geo-replication} + Summary: Cluster File System Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ @@ -82,6 +86,24 @@ is in userspace and easily manageable. This package provides support to ib-verbs library. %endif +%if 0%{!?_without_geo-replication:1} +%package geo-replication +Summary: GlusterFS Geo-replication +Group: Applications/File +Requires: glusterfs-core >= %{version}-%{release} , python-ctypes , rsync >= 3.0.7 + +%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: GlusterFS Fuse Group: Applications/File @@ -104,7 +126,7 @@ This package provides support to FUSE based clients. %build -%configure %{?_without_rdma} %{?_without_epoll} %{?_with_fusermount} +%configure %{?_without_rdma} %{?_without_epoll} %{?_with_fusermount} %{?_without_geo-replication} # Remove rpath sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool @@ -115,6 +137,13 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool %install %{__rm} -rf %{buildroot} %{__make} install DESTDIR=%{buildroot} +%{__mkdir_p} %{buildroot}/usr/sbin +%{__mkdir_p} %{buildroot}/usr/local/libexec/glusterfs +%{__ln_s} ../..%{_sbindir}/glusterd %{buildroot}/usr/sbin/glusterd +%{__ln_s} ../..%{_sbindir}/glusterfsd %{buildroot}/usr/sbin/glusterfsd +%{__ln_s} ../..%{_sbindir}/gluster %{buildroot}/usr/sbin/gluster +%{__ln_s} ../..%{_sbindir}/glusterfs %{buildroot}/usr/sbin/glusterfs +%{__ln_s} %{_libexecdir}/glusterfs/gsyncd %{buildroot}/usr/local/libexec/glusterfs/gsyncd %{__mkdir_p} %{buildroot}%{_includedir}/glusterfs %{__mkdir_p} %{buildroot}/var/log/glusterfs %{__install} -p -m 0644 libglusterfs/src/*.h \ @@ -131,13 +160,6 @@ find %{buildroot}%{_libdir} -name '*.a' | xargs rm -f /sbin/ldconfig /sbin/chkconfig --add glusterd -#creat symlinks -rm -rf /usr/sbin/glusterd /usr/sbin/glusterfsd /usr/sbin/glusterfs /usr/sbin/gluster - -ln -s %{_sbindir}/glusterd /usr/sbin/glusterd -ln -s %{_sbindir}/glusterfsd /usr/sbin/glusterfsd -ln -s %{_sbindir}/gluster /usr/sbin/gluster -ln -s %{_sbindir}/glusterfs /usr/sbin/glusterfs #update /etc/ld.so.conf.d echo "%{_prefix}/lib64" > /etc/ld.so.conf.d/glusterfs.conf @@ -146,6 +168,7 @@ echo "%{_prefix}/lib64" > /etc/ld.so.conf.d/glusterfs.conf pidof -c -o %PPID -x glusterd &> /dev/null if [ $? -eq 0 ]; then +kill -9 `pgrep -f gsyncd.py` &> /dev/null /etc/init.d/glusterd restart &> /dev/null fi @@ -169,6 +192,7 @@ fi %{_sbindir}/glusterfs* %{_sbindir}/gluster %{_sbindir}/glusterd +/usr/sbin %{_mandir}/man8/*glusterfs.8* %{_mandir}/man8/*glusterfsd.8* %{_mandir}/man8/*gluster.8* @@ -183,8 +207,9 @@ fi %{_includedir}/glusterfs %exclude %{_includedir}/glusterfs/y.tab.h %{_libdir}/*.so -%{_libexecdir}/gsyncd -%{_libexecdir}/python/syncdaemon/* +%exclude %{_libexecdir}/glusterfs/gsyncd +%exclude %{_libexecdir}/glusterfs/python/syncdaemon/* +%exclude /usr/local/libexec/glusterfs/gsyncd %if 0%{!?_without_rdma:1} %files rdma @@ -192,6 +217,15 @@ fi %{_libdir}/glusterfs/%{version}/rpc-transport/rdma* %endif +%if 0%{!?_without_geo-replication:1} +%files geo-replication +%defattr(-,root,root) +%{_libexecdir}/glusterfs/gsyncd +%{_libexecdir}/glusterfs/python/syncdaemon/* +/usr/local/libexec/glusterfs/gsyncd +%endif + + %files fuse %defattr(-,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/fuse* -- cgit