]> TLD Linux GIT Repositories - packages/glusterfs.git/blobdiff - glusterfs.spec
- updated to 3.12.6, partial PLD merge
[packages/glusterfs.git] / glusterfs.spec
index 15e950d0dacc3c347be676230ffceeca36737099..acb5b3dd40084ff3f2889cbf9e9301b1c709668f 100644 (file)
@@ -1,5 +1,4 @@
 # TODO:
-# - package ganesha specific files? (no ganesha in PLD yet)
 # - Find pidfiles killproc --pidfile ${PIDFILE} -TERM instead of kill -TERM ${PID}
 # - Check transport-ibverbs package and ibverbs bcond
 # - Add passing options from /etc/sysconfig/glusterfsd to glusterfsd
 # Conditional build:
 %bcond_without ibverbs         # ib-verbs transport
 %bcond_without systemtap       # systemtap/dtrace support
+%bcond_without system_fuse     # system fusermount
 #
 Summary:       Clustered File Storage that can scale to peta bytes
 Summary(pl.UTF-8):     Klastrowy system przechowywania plików skalujący się do petabajtów
 Name:          glusterfs
-Version:       3.10.1
+Version:       3.12.6
 Release:       1
 License:       LGPL v3+ or GPL v2 (libraries), GPL v3+ (programs)
 Group:         Applications/System
-Source0:       http://download.gluster.org/pub/gluster/glusterfs/3.10/LATEST/glusterfs-%{version}.tar.gz
-# Source0-md5: a14b97098baec020054943d061261d61
+Source0:       https://download.gluster.org/pub/gluster/glusterfs/3.12/LATEST/glusterfs-%{version}.tar.gz
+# Source0-md5: efdcddf38aecb3c2109bd773c58d1f9b
 Source1:       glusterfsd.init
-Patch0:                %{name}-link.patch
-Patch1:                %{name}-noquiet.patch
-Patch2:                %{name}-python.patch
-URL:           http://www.gluster.org/
+Patch0:                %{name}-noquiet.patch
+Patch1:                %{name}-python.patch
+Patch3:                interpreters.patch
+URL:           https://www.gluster.org/
 BuildRequires: acl-devel
 BuildRequires: autoconf >= 2.50
 BuildRequires: automake
@@ -34,9 +34,7 @@ BuildRequires:        bison
 # for bd-xlator
 BuildRequires: device-mapper-devel >= 2.02.79
 BuildRequires: flex
-BuildRequires: glib2-devel >= 2.0
 BuildRequires: libaio-devel
-BuildRequires: libfuse-devel >= 2.6
 %{?with_ibverbs:BuildRequires: libibverbs-devel >= 1.0.4}
 %{?with_ibverbs:BuildRequires: librdmacm-devel >= 1.0.15}
 BuildRequires: libtool
@@ -49,6 +47,7 @@ BuildRequires:        python-devel >= 1:2.4
 BuildRequires: readline-devel
 BuildRequires: rpm-pythonprov
 BuildRequires: rpmbuild(macros) >= 1.228
+BuildRequires: sed >= 4.0
 BuildRequires: sqlite3-devel >= 3
 %{?with_systemtap:BuildRequires:       systemtap-sdt-devel}
 BuildRequires: userspace-rcu-devel >= 0.8
@@ -179,7 +178,7 @@ Summary:    GlusterFS Client
 Summary(pl.UTF-8):     Klient GlusterFS
 Group:         Applications/System
 Requires:      %{name}-common = %{version}-%{release}
-Requires:      libfuse >= 2.6
+%{?with_system_fuse:Requires:  libfuse >= 2.6}
 
 %description client
 This package provides the FUSE based GlusterFS client.
@@ -200,6 +199,36 @@ OCF Resource Agents for GlusterFS processes.
 %description resource-agents -l pl.UTF-8
 Agenci OCF do monitorowania procesów GlusterFS-a.
 
+%package events
+Summary:       GlusterFS Events
+Summary(pl.UTF-8):     Obsługa zdarzeń dla GlusterFS-a
+Group:         Applications/File
+Requires:      %{name}-server = %{version}-%{release}
+Requires:      python-gluster = %{version}-%{release}
+Requires:      python-prettytable
+Requires:      python-requests
+
+%description events
+GlusterFS Events.
+
+%description events -l pl.UTF-8
+Obsługa zdarzeń dla GlusterFS-a.
+
+%package geo-replication
+Summary:       GlusterFS Geo-replication
+Summary(pl.UTF-8):     Geo-replikacja dla GlusterFS-a
+Group:         Applications/File
+Requires:      %{name}-server = %{version}-%{release}
+Requires:      python-gluster = %{version}-%{release}
+Requires:      python-prettytable
+Requires:      rsync
+
+%description geo-replication
+GlusterFS support for geo-replication.
+
+%description geo-replication -l pl.UTF-8
+Obsługa geo-replikacji dla GlusterFS-a.
+
 %package -n emacs-glusterfs-mode
 Summary:       Emacs mode to edit GlusterFS configuration
 Summary(pl.UTF-8):     Tryb Emacsa do edycji konfiguracji GlusterFS-a
@@ -230,7 +259,7 @@ Plik składni Vima do edycji konfiguracji GlusterFS-a.
 %setup -q
 %patch0 -p1
 %patch1 -p1
-%patch2 -p1
+%patch3 -p1
 
 %build
 %{__libtoolize}
@@ -239,12 +268,13 @@ Plik składni Vima do edycji konfiguracji GlusterFS-a.
 %{__autoheader}
 %{__automake}
 %configure \
+       %{?with_system_fuse:--disable-fusermount} \
        --disable-silent-rules \
-       --enable-fusermount \
        %{!?with_ibverbs:--disable-ibverbs} \
        --enable-systemtap%{!?with_systemtap:=no} \
        --with-initdir=/etc/rc.d/init.d
 
+
 %{__make} -j1
 
 %install
@@ -268,7 +298,7 @@ install -d $RPM_BUILD_ROOT%{_datadir}/{emacs/site-lisp,vim/syntax}
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*/*/*.la
 
 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/glusterfs/benchmarking
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/python/syncdaemon/README.md
+%{__rm} $RPM_BUILD_ROOT%{_libexecdir}/glusterfs/python/syncdaemon/README.md
 # example, installed as /var/lib/glusterd/groups/virt
 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/glusterfs/group-virt.example
 
@@ -280,25 +310,34 @@ rm -rf $RPM_BUILD_ROOT
 %post  libs    -p /sbin/ldconfig
 %postun        libs    -p /sbin/ldconfig
 
+%if 0
+# TODO: verify these scripts (see also included glusterfs.spec)
+%post server
+# note: glusterfsd.init vs glusterd.service
+/sbin/chkconfig --add glusterfsd
+%service glusterfsd restart
+# TODO?
+#glusterd --xlator-option *.upgrade=on -N
+
+%preun server
+if [ "$1" = "0" ]; then
+       %service -q glusterfsd stop
+       /sbin/chkconfig --del glusterfsd
+fi
+
+%post geo-replication
+%service glusterd restart
+%endif
+
 %files common
 %defattr(644,root,root,755)
 %doc ChangeLog NEWS README.md THANKS
-%dir %{_sysconfdir}/%{name}
 %attr(755,root,root) %{_bindir}/glusterfind
 %attr(755,root,root) %{_sbindir}/glfsheal
 # NOTE: glusterfs is link to glusterfsd and is needed by client mount
 %attr(755,root,root) %{_sbindir}/glusterfs
 %attr(755,root,root) %{_sbindir}/glusterfsd
-
-%attr(755,root,root) %{_sbindir}/gluster-eventsapi
-%attr(755,root,root) %{_sbindir}/gluster-georep-sshkey
-%attr(755,root,root) %{_sbindir}/gluster-mountbroker
-%attr(755,root,root) %{_sbindir}/glustereventsd
-
-#%attr(755,root,root) %{_libdir}/ganesha/create-export-ganesha.sh
-#%attr(755,root,root) %{_libdir}/ganesha/dbus-send.sh
-#%attr(755,root,root) %{_libdir}/ganesha/ganesha-ha.sh
-#%attr(755,root,root) %{_libdir}/ganesha/generate-epoch.py
+%dir %{_sysconfdir}/%{name}
 
 %dir %{_libdir}/glusterfs
 
@@ -327,8 +366,8 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_libdir}/glusterfs/%{version}/xlator/mount
 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/api.so
 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/fuse.so
-%dir %{_libdir}/glusterfs/%{version}/xlator/nfs
-%attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/nfs/server.so
+#%dir %{_libdir}/glusterfs/%{version}/xlator/nfs
+#%attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/nfs/server.so
 %dir %{_libdir}/glusterfs/%{version}/xlator/performance
 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/performance/*.so*
 %dir %{_libdir}/glusterfs/%{version}/xlator/protocol
@@ -343,41 +382,30 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_libdir}/glusterfs/%{version}/xlator/testing/performance
 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/testing/performance/*.so
 
-%dir %{_libdir}/glusterfs/events
-%{_libdir}/glusterfs/events/*.py*
-
-%attr(755,root,root) %{_libdir}/glusterfs/gsyncd
-%attr(755,root,root) %{_libdir}/glusterfs/gverify.sh
-%attr(755,root,root) %{_libdir}/glusterfs/peer_add_secret_pub
-%attr(755,root,root) %{_libdir}/glusterfs/peer_gsec_create
-
-%dir %{_libdir}/glusterfs/gfind_missing_files
-%attr(755,root,root) %{_libdir}/glusterfs/gfind_missing_files/*
-
-%{_libdir}/glusterfs/glusterfind
-
-%dir %{_libdir}/glusterfs/python
-%dir %{_libdir}/glusterfs/python/syncdaemon
-# gsyncd.py is a script, the rest probably don't require *.py
-%{_libdir}/glusterfs/python/syncdaemon/*.py*
-
-%attr(755,root,root) %{_libdir}/glusterfs/peer_eventsapi.py
-%attr(755,root,root) %{_libdir}/glusterfs/peer_georep-sshkey.py
-%attr(755,root,root) %{_libdir}/glusterfs/peer_mountbroker.py
-%attr(755,root,root) %{_libdir}/glusterfs/peer_mountbroker
-%attr(755,root,root) %{_libdir}/glusterfs/set_geo_rep_pem_keys.sh
+%if "%{_libexecdir}" != "%{_libdir}"
+%dir %{_libexecdir}/glusterfs
+%endif
+%attr(755,root,root) %{_libexecdir}/glusterfs/peer_add_secret_pub
+
+%dir %{_libexecdir}/glusterfs/glusterfind
+%attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/S57glusterfind-delete-post.py
+%attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/brickfind.py
+%attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/changelog.py
+%attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/nodeagent.py
+%{_libexecdir}/glusterfs/glusterfind/__init__.py*
+%{_libexecdir}/glusterfs/glusterfind/changelogdata.py*
+%{_libexecdir}/glusterfs/glusterfind/conf.py*
+%{_libexecdir}/glusterfs/glusterfind/libgfchangelog.py*
+%{_libexecdir}/glusterfs/glusterfind/main.py*
+%{_libexecdir}/glusterfs/glusterfind/utils.py*
+%{_libexecdir}/glusterfs/glusterfind/tool.conf
+
+%dir %{_libexecdir}/glusterfs/python
 
 %dir %{_datadir}/glusterfs
 %dir %{_datadir}/glusterfs/scripts
-%attr(755,root,root) %{_datadir}/glusterfs/scripts/eventsdash.py
-%attr(755,root,root) %{_datadir}/glusterfs/scripts/generate-gfid-file.sh
-%attr(755,root,root) %{_datadir}/glusterfs/scripts/get-gfid.sh
-%attr(755,root,root) %{_datadir}/glusterfs/scripts/gsync-sync-gfid
-%attr(755,root,root) %{_datadir}/glusterfs/scripts/gsync-upgrade.sh
 %attr(755,root,root) %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh
 %attr(755,root,root) %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh
-%attr(755,root,root) %{_datadir}/glusterfs/scripts/schedule_georep.py
-%attr(755,root,root) %{_datadir}/glusterfs/scripts/slave-upgrade.sh
 %attr(755,root,root) %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh
 
 %{_mandir}/man8/glusterfs.8*
@@ -441,22 +469,26 @@ rm -rf $RPM_BUILD_ROOT
 
 %files server
 %defattr(644,root,root,755)
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/eventsconfig.json
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/glusterfsd.vol
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-gluster-block
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-metadata-cache
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-nl-cache
 %attr(754,root,root) /etc/rc.d/init.d/glusterfsd
 %attr(755,root,root) %{_sbindir}/conf.py
 %attr(755,root,root) %{_sbindir}/gcron.py
 %attr(755,root,root) %{_sbindir}/gf_attach
-%attr(755,root,root) %{_sbindir}/gfind_missing_files
+%attr(755,root,root) %{_sbindir}/gluster-setgfid2path
 %attr(755,root,root) %{_sbindir}/glusterd
 %attr(755,root,root) %{_sbindir}/snap_scheduler.py
 
+%{_mandir}/man8/gluster-setgfid2path.8*
 %{_mandir}/man8/glusterd.8*
 %dir %{_var}/lib/glusterd
 %dir %{_var}/lib/glusterd/groups
-%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/virt
+%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/gluster-block
 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/metadata-cache
+%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/nl-cache
+%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/virt
 %dir %{_var}/lib/glusterd/hooks
 %dir %{_var}/lib/glusterd/hooks/1
 %dir %{_var}/lib/glusterd/hooks/1/add-brick
@@ -464,12 +496,14 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh
 %dir %{_var}/lib/glusterd/hooks/1/add-brick/pre
 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh
+%dir %{_var}/lib/glusterd/hooks/1/create
+%dir %{_var}/lib/glusterd/hooks/1/create/post
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/create/post/S10selinux-label-brick.sh
 %dir %{_var}/lib/glusterd/hooks/1/delete
 %dir %{_var}/lib/glusterd/hooks/1/delete/post
 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post
-%dir %{_var}/lib/glusterd/hooks/1/gsync-create
-%dir %{_var}/lib/glusterd/hooks/1/gsync-create/post
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh
+%dir %{_var}/lib/glusterd/hooks/1/delete/pre
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/delete/pre/S10selinux-del-fcontext.sh
 %dir %{_var}/lib/glusterd/hooks/1/set
 %dir %{_var}/lib/glusterd/hooks/1/set/post
 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/set/post/S30samba-set.sh
@@ -478,7 +512,6 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_var}/lib/glusterd/hooks/1/start/post
 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S29CTDBsetup.sh
 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S30samba-start.sh
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S31ganesha-start.sh
 %dir %{_var}/lib/glusterd/hooks/1/stop
 %dir %{_var}/lib/glusterd/hooks/1/stop/pre
 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh
@@ -487,7 +520,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files client
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/fusermount-glusterfs
+%{!?with_system_fuse:%attr(755,root,root) %{_bindir}/fusermount-glusterfs}
 %attr(755,root,root) /sbin/mount.glusterfs
 %attr(755,root,root) %{_sbindir}/gluster
 %{_mandir}/man8/gluster.8*
@@ -498,9 +531,49 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_prefix}/lib/ocf/resource.d/glusterfs
 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/glusterd
 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/volume
-#%{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_grace
-#%{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_mon
-#%{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_nfsd
+
+%files events
+%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/glusterfs/eventsconfig.json
+%attr(755,root,root) %{_sbindir}/gluster-eventsapi
+%attr(755,root,root) %{_sbindir}/glustereventsd
+%dir %{_libexecdir}/glusterfs/events
+%attr(755,root,root) %{_libexecdir}/glusterfs/events/glustereventsd.py
+%{_libexecdir}/glusterfs/events/__init__.py*
+%{_libexecdir}/glusterfs/events/eventsapiconf.py*
+%{_libexecdir}/glusterfs/events/eventtypes.py*
+%{_libexecdir}/glusterfs/events/gf_event.py*
+%{_libexecdir}/glusterfs/events/handlers.py*
+%{_libexecdir}/glusterfs/events/utils.py*
+%{_libexecdir}/glusterfs/peer_eventsapi.py*
+%{_datadir}/glusterfs/scripts/eventsdash.py
+
+%files geo-replication
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/gfind_missing_files
+%attr(755,root,root) %{_sbindir}/gluster-georep-sshkey
+%attr(755,root,root) %{_sbindir}/gluster-mountbroker
+%attr(755,root,root) %{_libexecdir}/glusterfs/gsyncd
+%attr(755,root,root) %{_libexecdir}/glusterfs/gverify.sh
+%attr(755,root,root) %{_libexecdir}/glusterfs/peer_georep-sshkey.py*
+%attr(755,root,root) %{_libexecdir}/glusterfs/peer_gsec_create
+%attr(755,root,root) %{_libexecdir}/glusterfs/peer_mountbroker
+%attr(755,root,root) %{_libexecdir}/glusterfs/peer_mountbroker.py*
+%attr(755,root,root) %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh
+%dir %{_libexecdir}/glusterfs/gfind_missing_files
+%attr(755,root,root) %{_libexecdir}/glusterfs/gfind_missing_files/*
+%dir %{_libexecdir}/glusterfs/python/syncdaemon
+# gsyncd.py is a script, the rest probably don't require *.py
+%{_libexecdir}/glusterfs/python/syncdaemon/*.py*
+%attr(755,root,root) %{_datadir}/glusterfs/scripts/generate-gfid-file.sh
+%attr(755,root,root) %{_datadir}/glusterfs/scripts/get-gfid.sh
+%attr(755,root,root) %{_datadir}/glusterfs/scripts/gsync-sync-gfid
+%attr(755,root,root) %{_datadir}/glusterfs/scripts/gsync-upgrade.sh
+%attr(755,root,root) %{_datadir}/glusterfs/scripts/schedule_georep.py
+%attr(755,root,root) %{_datadir}/glusterfs/scripts/slave-upgrade.sh
+%dir %{_var}/lib/glusterd/hooks/1/gsync-create
+%dir %{_var}/lib/glusterd/hooks/1/gsync-create/post
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh
 
 %files -n emacs-glusterfs-mode
 %defattr(644,root,root,755)