diff options
| author | Bala.FA <barumuga@redhat.com> | 2014-02-28 11:10:51 +0530 | 
|---|---|---|
| committer | Vijay Bellur <vbellur@redhat.com> | 2014-04-10 04:53:30 -0700 | 
| commit | 2045c9ea1c7c3aac9d377070df6f0ee99619f421 (patch) | |
| tree | ec436e74ae4254bd6dda1d9e6d94d5baec951b1a | |
| parent | 4bacb40fc898ee9519cfe4e9ee50401ec466168c (diff) | |
build: rearrange spec file elements
This is majorly cleanup wrt spec file elements/definitions.  This
patch fixes to ease adding downstream specific conditions.
BUG: 1074939
Change-Id: I311abf8457417591a0d08569d3f83d73fa63cdc0
Signed-off-by: Bala.FA <barumuga@redhat.com>
Reviewed-on: http://review.gluster.org/7165
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
| -rw-r--r-- | glusterfs.spec.in | 633 | 
1 files changed, 334 insertions, 299 deletions
diff --git a/glusterfs.spec.in b/glusterfs.spec.in index 24581240589..5fa8ededc55 100644 --- a/glusterfs.spec.in +++ b/glusterfs.spec.in @@ -5,6 +5,10 @@  # uncomment and add '%' to use the prereltag for pre-releases  # %%global prereltag qa3 +##----------------------------------------------------------------------------- +## All argument definitions should be placed here and keep them sorted +## +  # if you wish to compile an rpm without rdma support, compile like this...  # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma  %{?_without_rdma:%global _without_rdma --disable-ibverbs} @@ -44,9 +48,6 @@  %global _without_syslog --disable-syslog  %endif -# there is no systemtap support! Perhaps some day there will be -%global _without_systemtap --enable-systemtap=no -  # if you wish to compile an rpm without the BD map support...  # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd  %{?_without_bd:%global _without_bd --disable-bd-xlator} @@ -64,16 +65,78 @@  %define _without_qemu_block --disable-qemu-block  %endif +##----------------------------------------------------------------------------- +## All %global definitions should be placed here and keep them sorted +## +  %if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -%global           _with_systemd true +%global _with_systemd true  %endif +# there is no systemtap support! Perhaps some day there will be +%global _without_systemtap --enable-systemtap=no +  # From https://fedoraproject.org/wiki/Packaging:Python#Macros  %if ( 0%{?rhel} && 0%{?rhel} <= 5 )  %{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}  %{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}  %endif +%if ( 0%{?_with_systemd:1} ) +%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 ; +# can't seem to make a generic macro that works +%define _init_glusterd   %{_unitdir}/glusterd.service +%define _init_glusterfsd %{_unitdir}/glusterfsd.service +%else +%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 ; +# can't seem to make a generic macro that works +%define _init_glusterd   %{_sysconfdir}/init.d/glusterd +%define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd +%endif + +%if ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{?_with_systemd:1} ) +%global glusterfsd_service glusterfsd.service +%else +%global glusterfsd_service glusterfsd.init +%endif +%endif + +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + +%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +   # _sharedstatedir is not provided by RHEL5 +   %define _sharedstatedir /var/lib +%endif + +# We do not want to generate useless provides and requires for xlator +# .so files to be set for glusterfs packages. +# Filter all generated: +# +# TODO: RHEL5 does not have a convenient solution +%if ( 0%{?rhel} == 6 ) +    # filter_setup exists in RHEL6 only +    %filter_provides_in %{_libdir}/glusterfs/%{version}/ +    %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' +    %filter_setup +%else +    # modern rpm and current Fedora do not generate requires when the +    # provides are filtered +    %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ +%endif + + +##----------------------------------------------------------------------------- +## All package definitions should be placed here and keep them sorted +##  Summary:          Cluster File System  %if ( 0%{_for_fedora_koji_builds} )  Name:             glusterfs @@ -97,8 +160,8 @@ Source3:          glusterfs-fuse.logrotate  Source4:          glusterd.logrotate  Source5:          glusterfsd.logrotate  Source6:          rhel5-load-fuse-modules -Source11:         glusterfsd.service -Source13:         glusterfsd.init +Source7:          glusterfsd.service +Source8:          glusterfsd.init  %else  Source0:          @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz  %endif @@ -109,37 +172,15 @@ BuildRoot:        %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)  BuildRequires:    python-simplejson  %endif  %if ( 0%{?_with_systemd:1} ) -%if ( 0%{_for_fedora_koji_builds} ) -%global glusterfsd_service %{S:%{SOURCE11}} -%endif  BuildRequires:    systemd-units  Requires(post):   systemd-units  Requires(preun):  systemd-units  Requires(postun): systemd-units -%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 ; -# can't seem to make a generic macro that works -%define _init_glusterd   %{_unitdir}/glusterd.service -%define _init_glusterfsd %{_unitdir}/glusterfsd.service  %else -%if ( 0%{_for_fedora_koji_builds} ) -%global glusterfsd_service %{S:%{SOURCE13}} -%endif  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 ; -# can't seem to make a generic macro that works -%define _init_glusterd   %{_sysconfdir}/init.d/glusterd -%define _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd  %endif  Requires:         %{name}-libs = %{version}-%{release} @@ -170,28 +211,6 @@ Obsoletes:        %{name}-ufo  Provides:         %{name}-common = %{version}-%{release}  Provides:         %{name}-core = %{version}-%{release} -# We do not want to generate useless provides and requires for xlator .so files -# Filter all generated: -# -# TODO: RHEL5 does not have a convenient solution -%if ( 0%{?rhel} == 6 ) -    # filter_setup exists in RHEL6 only -    %filter_provides_in %{_libdir}/glusterfs/%{version}/ -    %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$' -    %filter_setup -%else -    # modern rpm and current Fedora do not generate requires when the -    # provides are filtered -    %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$ -%endif - -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -   # _sharedstatedir is not provided by RHEL5 -   %define _sharedstatedir /var/lib -%endif -  %description  GlusterFS is a clustered file-system capable of scaling to several  petabytes. It aggregates various storage bricks over Infiniband RDMA @@ -205,19 +224,14 @@ This package includes the glusterfs binary, the glusterfsd daemon and the  gluster command line, libglusterfs and glusterfs translator modules common to  both GlusterFS server and client framework. -%package libs -Summary:          GlusterFS common libraries -Group:            Applications/File -%if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -Requires:         rsyslog-mmjsonparse -%endif -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -Requires:         rsyslog-mmcount -%endif -%endif +%package api +Summary:          Clustered file-system api library +Group:            System Environment/Daemons +Requires:         %{name} = %{version}-%{release} +# we provide the Python package/namespace 'gluster' +Provides:         python-gluster = %{version}-%{release} -%description libs +%description api  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 @@ -226,7 +240,24 @@ 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. -This package provides the base GlusterFS libraries +This package provides the glusterfs libgfapi library. + +%package api-devel +Summary:          Development Libraries +Group:            Development/Libraries +Requires:         %{name} = %{version}-%{release} +Requires:         %{name}-devel = %{version}-%{release} + +%description api-devel +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. + +This package provides the api include files.  %package cli  Summary:          GlusterFS CLI @@ -244,15 +275,14 @@ is in user space and easily manageable.  This package provides the GlusterFS CLI application and its man page -%if ( 0%{!?_without_rdma:1} ) -%package rdma -Summary:          GlusterFS rdma support for ib-verbs -Group:            Applications/File -BuildRequires:    libibverbs-devel -BuildRequires:    librdmacm-devel +%package devel +Summary:          Development Libraries +Group:            Development/Libraries  Requires:         %{name} = %{version}-%{release} +# Needed for the Glupy examples to work +Requires:         %{name}-extra-xlators = %{version}-%{release} -%description rdma +%description devel  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 @@ -261,28 +291,26 @@ 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. -This package provides support to ib-verbs library. -%endif +This package provides the development libraries and include files. -%if ( 0%{!?_without_georeplication:1} ) -%package geo-replication -Summary:          GlusterFS Geo-replication +%package extra-xlators +Summary:          Extra Gluster filesystem Translators  Group:            Applications/File -Requires:         %{name} = %{version}-%{release} -Requires:         %{name}-server = %{version}-%{release} +# We need -api rpm for its __init__.py in Python site-packages area +Requires:         %{name}-api = %{version}-%{release}  Requires:         python python-ctypes -%description geo-replication +%description extra-xlators  GlusterFS is a clustered file-system capable of scaling to several -peta-bytes. It aggregates various storage bricks over Infiniband RDMA +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 system in +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 userspace and easily manageable. +is in user space and easily manageable. -This package provides support to geo-replication. -%endif +This package provides extra filesystem Translators, such as Glupy, +for GlusterFS.  %package fuse  Summary:          Fuse client @@ -305,38 +333,39 @@ is in user space and easily manageable.  This package provides support to FUSE based clients. -%package server -Summary:          Clustered file-system server -Group:            System Environment/Daemons +%if ( 0%{!?_without_georeplication:1} ) +%package geo-replication +Summary:          GlusterFS Geo-replication +Group:            Applications/File  Requires:         %{name} = %{version}-%{release} -Requires:         %{name}-cli = %{version}-%{release} -Requires:         %{name}-libs = %{version}-%{release} -Requires:         %{name}-fuse = %{version}-%{release} -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -Requires:         rpcbind -%else -Requires:         portmap -%endif +Requires:         %{name}-server = %{version}-%{release} +Requires:         python python-ctypes -%description server +%description geo-replication  GlusterFS is a clustered file-system capable of scaling to several -petabytes. It aggregates various storage bricks over Infiniband RDMA +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 systems in +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 user space and easily manageable. +is in userspace and easily manageable. -This package provides the glusterfs server daemon. +This package provides support to geo-replication. +%endif -%package api -Summary:          Clustered file-system api library -Group:            System Environment/Daemons -Requires:         %{name} = %{version}-%{release} -# we provide the Python package/namespace 'gluster' -Provides:         python-gluster = %{version}-%{release} +%package libs +Summary:          GlusterFS common libraries +Group:            Applications/File +%if ( 0%{!?_without_syslog:1} ) +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) +Requires:         rsyslog-mmjsonparse +%endif +%if ( 0%{?rhel} && 0%{?rhel} == 6 ) +Requires:         rsyslog-mmcount +%endif +%endif -%description api +%description libs  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 @@ -345,16 +374,17 @@ 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. -This package provides the glusterfs libgfapi library. +This package provides the base GlusterFS libraries -%package extra-xlators -Summary:          Extra Gluster filesystem Translators +%if ( 0%{!?_without_rdma:1} ) +%package rdma +Summary:          GlusterFS rdma support for ib-verbs  Group:            Applications/File -# We need -api rpm for its __init__.py in Python site-packages area -Requires:         %{name}-api = %{version}-%{release} -Requires:         python python-ctypes +BuildRequires:    libibverbs-devel +BuildRequires:    librdmacm-devel +Requires:         %{name} = %{version}-%{release} -%description extra-xlators +%description rdma  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 @@ -363,8 +393,21 @@ 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. -This package provides extra filesystem Translators, such as Glupy, -for GlusterFS. +This package provides support to ib-verbs library. +%endif + +%package regression-tests +Summary:          Development Tools +Group:            Development/Tools +Requires:         %{name} = %{version}-%{release} +Requires:         %{name}-fuse = %{version}-%{release} +Requires:         %{name}-server = %{version}-%{release} +Requires:         perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 +Requires:         python attr dbench git nfs-utils xfsprogs + +%description regression-tests +The Gluster Test Framework, is a suite of scripts used for +regression testing of Gluster.  %if ( 0%{!?_without_ocf:1} )  %package resource-agents @@ -399,31 +442,20 @@ Open Cluster Framework (OCF) compliant cluster resource managers,  like Pacemaker.  %endif -%package devel -Summary:          Development Libraries -Group:            Development/Libraries -Requires:         %{name} = %{version}-%{release} -# Needed for the Glupy examples to work -Requires:         %{name}-extra-xlators = %{version}-%{release} - -%description devel -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. - -This package provides the development libraries and include files. - -%package api-devel -Summary:          Development Libraries -Group:            Development/Libraries +%package server +Summary:          Clustered file-system server +Group:            System Environment/Daemons  Requires:         %{name} = %{version}-%{release} -Requires:         %{name}-devel = %{version}-%{release} +Requires:         %{name}-cli = %{version}-%{release} +Requires:         %{name}-libs = %{version}-%{release} +Requires:         %{name}-fuse = %{version}-%{release} +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +Requires:         rpcbind +%else +Requires:         portmap +%endif -%description api-devel +%description server  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 @@ -432,20 +464,7 @@ 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. -This package provides the api include files. - -%package regression-tests -Summary:          Development Tools -Group:            Development/Tools -Requires:         %{name} = %{version}-%{release} -Requires:         %{name}-fuse = %{version}-%{release} -Requires:         %{name}-server = %{version}-%{release} -Requires:         perl(App::Prove) perl(Test::Harness) gcc util-linux-ng lvm2 -Requires:         python attr dbench git nfs-utils xfsprogs - -%description regression-tests -The Gluster Test Framework, is a suite of scripts used for -regression testing of Gluster. +This package provides the glusterfs server daemon.  %prep  %setup -q -n %{name}-%{version}%{?prereltag} @@ -667,6 +686,9 @@ find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glus  %clean  rm -rf %{buildroot} +##----------------------------------------------------------------------------- +## All %post should be placed here and keep them sorted +##  %post  /sbin/ldconfig  %if ( 0%{!?_without_syslog:1} ) @@ -675,6 +697,88 @@ rm -rf %{buildroot}  %endif  %endif +%post api +/sbin/ldconfig + +%if ( 0%{!?_without_georeplication:1} ) +%post geo-replication +#restart glusterd. +if [ $1 -ge 1 ]; then +    %_init_restart glusterd +fi +%endif + +%post libs +/sbin/ldconfig + +%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 -a ! -h %{_sharedstatedir}/glusterd ]; then +    mkdir -p %{_sharedstatedir}/glusterd +    cp -a /etc/glusterd %{_sharedstatedir}/glusterd +    rm -rf /etc/glusterd +    ln -sf %{_sharedstatedir}/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 %{_sharedstatedir}/glusterd/vols ]; then +    for file in $(find %{_sharedstatedir}/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 + +##----------------------------------------------------------------------------- +## All %preun should be placed here and keep them sorted +## +%preun server +if [ $1 -eq 0 ]; then +    if [ -f %_init_glusterfsd ]; then +        %_init_stop glusterfsd +    fi +    %_init_stop glusterd +    if [ -f %_init_glusterfsd ]; then +        %_init_disable glusterfsd +    fi +    %_init_disable glusterd +fi +if [ $1 -ge 1 ]; then +    if [ -f %_init_glusterfsd ]; then +        %_init_restart glusterfsd +    fi +    %_init_restart glusterd +fi + +##----------------------------------------------------------------------------- +## All %postun should be placed here and keep them sorted +##  %postun  /sbin/ldconfig  %if ( 0%{!?_without_syslog:1} ) @@ -683,6 +787,15 @@ rm -rf %{buildroot}  %endif  %endif +%postun api +/sbin/ldconfig + +%postun libs +/sbin/ldconfig + +##----------------------------------------------------------------------------- +## All %files should be placed here and keep them sorted +##  %files  %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README THANKS extras/clear_xattrs.sh  %config(noreplace) %{_sysconfdir}/logrotate.d/* @@ -717,32 +830,66 @@ rm -rf %{buildroot}  %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/mac-compat*  %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache* -%post libs -/sbin/ldconfig - -%postun libs -/sbin/ldconfig +%files api +%exclude %{_libdir}/*.so +# Shared Python-GlusterFS files +%{python_sitelib}/gluster/__init__.* +# Libgfapi files +%{_libdir}/libgfapi.* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* +%{python_sitelib}/gluster/gfapi.* +# Don't expect a .egg-info file on EL5 +%if ( 0%{?rhel} && 0%{?rhel} > 5 ) || ( 0%{?fedora} ) +%{python_sitelib}/glusterfs_api*.egg-info +%endif -%files libs -%{_libdir}/*.so.* -%exclude %{_libdir}/libgfapi.* +%files api-devel +%{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/pkgconfig/libgfchangelog.pc +%{_libdir}/libgfapi.so +%{_includedir}/glusterfs/api/*  %files cli  %{_sbindir}/gluster  %{_mandir}/man8/gluster.8* -%if ( 0%{!?_without_rdma:1} ) -%files rdma -%{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* +%files devel +%{_includedir}/glusterfs +%exclude %{_includedir}/glusterfs/y.tab.h +%exclude %{_includedir}/glusterfs/api +%exclude %{_libdir}/libgfapi.so +%{_libdir}/*.so +# Glupy Translator examples +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* + +%files extra-xlators +# Glupy C shared library +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so +# Glupy Python files +%{python_sitelib}/gluster/glupy.* +# Don't expect a .egg-info file on EL5 +%if ( 0%{?rhel} && 0%{?rhel} > 5 ) || ( 0%{?fedora} ) +%{python_sitelib}/glusterfs_glupy*.egg-info  %endif -%if ( 0%{!?_without_georeplication:1} ) -%post geo-replication -#restart glusterd. -if [ $1 -ge 1 ]; then -    %_init_restart glusterd -fi +%files fuse +%if ( 0%{_for_fedora_koji_builds} ) +%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse +%endif +%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* +/sbin/mount.glusterfs +%if ( 0%{!?_without_fusermount:1} ) +%{_bindir}/fusermount-glusterfs +%endif +%if ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) +%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules +%endif +%endif +%if ( 0%{!?_without_georeplication:1} )  %files geo-replication  %{_sysconfdir}/logrotate.d/glusterfs-georep  %{_libexecdir}/glusterfs/gsyncd @@ -764,20 +911,23 @@ fi  %ghost %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf  %endif +%files libs +%{_libdir}/*.so.* +%exclude %{_libdir}/libgfapi.* -%files fuse -%if ( 0%{_for_fedora_koji_builds} ) -%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-fuse -%endif -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse* -/sbin/mount.glusterfs -%if ( 0%{!?_without_fusermount:1} ) -%{_bindir}/fusermount-glusterfs -%endif -%if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules +%if ( 0%{!?_without_rdma:1} ) +%files rdma +%{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma*  %endif + +%files regression-tests +%{_prefix}/share/glusterfs/* +%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t + +%if ( 0%{!?_without_ocf:1} ) +%files resource-agents +# /usr/lib is the standard for OCF, also on x86_64 +%{_prefix}/lib/ocf/resource.d/glusterfs  %endif  %files server @@ -831,126 +981,11 @@ fi  %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run  %ghost      %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid -%post api -/sbin/ldconfig - -%postun api -/sbin/ldconfig - -%files api -%exclude %{_libdir}/*.so -# Shared Python-GlusterFS files -%{python_sitelib}/gluster/__init__.* -# Libgfapi files -%{_libdir}/libgfapi.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api* -%{python_sitelib}/gluster/gfapi.* -# Don't expect a .egg-info file on EL5 -%if ( 0%{?rhel} && 0%{?rhel} > 5 ) || ( 0%{?fedora} ) -%{python_sitelib}/glusterfs_api*.egg-info -%endif - -%files extra-xlators -# Glupy C shared library -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so -# Glupy Python files -%{python_sitelib}/gluster/glupy.* -# Don't expect a .egg-info file on EL5 -%if ( 0%{?rhel} && 0%{?rhel} > 5 ) || ( 0%{?fedora} ) -%{python_sitelib}/glusterfs_glupy*.egg-info -%endif - -%if ( 0%{!?_without_ocf:1} ) -%files resource-agents -# /usr/lib is the standard for OCF, also on x86_64 -%{_prefix}/lib/ocf/resource.d/glusterfs -%endif - -%files devel -%{_includedir}/glusterfs -%exclude %{_includedir}/glusterfs/y.tab.h -%exclude %{_includedir}/glusterfs/api -%exclude %{_libdir}/libgfapi.so -%{_libdir}/*.so -# Glupy Translator examples -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* - -%files api-devel -%{_libdir}/pkgconfig/glusterfs-api.pc -%{_libdir}/pkgconfig/libgfchangelog.pc -%{_libdir}/libgfapi.so -%{_includedir}/glusterfs/api/* - -%files regression-tests -%{_prefix}/share/glusterfs/* -%exclude %{_prefix}/share/glusterfs/tests/basic/rpm.t - -%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 -a ! -h %{_sharedstatedir}/glusterd ]; then -    mkdir -p %{_sharedstatedir}/glusterd -    cp -a /etc/glusterd %{_sharedstatedir}/glusterd -    rm -rf /etc/glusterd -    ln -sf %{_sharedstatedir}/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 %{_sharedstatedir}/glusterd/vols ]; then -    for file in $(find %{_sharedstatedir}/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 -    if [ -f %_init_glusterfsd ]; then -        %_init_stop glusterfsd -    fi -    %_init_stop glusterd -    if [ -f %_init_glusterfsd ]; then -        %_init_disable glusterfsd -    fi -    %_init_disable glusterd -fi -if [ $1 -ge 1 ]; then -    if [ -f %_init_glusterfsd ]; then -        %_init_restart glusterfsd -    fi -    %_init_restart glusterd -fi -  %changelog  * Wed Apr 02 2014 Arumugam Balamurugan <barumuga@redhat.com> +- cleanup to rearrange spec file elements + +* Wed Apr 02 2014 Arumugam Balamurugan <barumuga@redhat.com>  - add version/release dynamically (#1074919)  * Wed Mar 26 2014 Poornima G <pgurusid@redhat.com>  | 
