]> TLD Linux GIT Repositories - packages/glusterfs.git/blobdiff - glusterfs.spec
- updated to 10.5
[packages/glusterfs.git] / glusterfs.spec
index 9ab640e5132a0b4d45f699fcecb1ed9ca62465bd..d3dd361126c51d77e0e4a67849634672a1057319 100644 (file)
@@ -1,29 +1,27 @@
 # TODO:
-# - python3 module
 # - 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
 # - package /etc/glusterfs/glusterfs-logrotate as logrotate config
 # - Fix/provide working systemd service files. 
 #   As for 3.7.11, package provided seems be non-working.
+# - add nfs-ganesha to PLD and package ganesha integration files
 # - configuration for firewalld? (--enable-firewalld, but checks for firewalld executable)
 #
 # 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:       6.1
+Version:       10.5
 Release:       1
 License:       LGPL v3+ or GPL v2 (libraries), GPL v3+ (programs)
 Group:         Applications/System
-Source0:       https://download.gluster.org/pub/gluster/glusterfs/6/%{version}/glusterfs-%{version}.tar.gz
-# Source0-md5: 18967c357204d4cbdd9c1731508862c6
+Source0:       https://download.gluster.org/pub/gluster/glusterfs/10/%{version}/glusterfs-%{version}.tar.gz
+# Source0-md5: 8ac48f7b7f9afa0e5dfa9ad42589ee27
 Source1:       glusterfsd.init
-Patch0:                %{name}-noquiet.patch
+Patch0:                ssl_paths.patch
+Patch1:                ksh_getopts.patch
 URL:           https://www.gluster.org/
 BuildRequires: acl-devel
 BuildRequires: autoconf >= 2.50
@@ -35,23 +33,23 @@ BuildRequires:      curl-devel
 BuildRequires: device-mapper-devel >= 2.02.79
 BuildRequires: flex
 BuildRequires: libaio-devel
-%{?with_ibverbs:BuildRequires: libibverbs-devel >= 1.0.4}
-%{?with_ibverbs:BuildRequires: librdmacm-devel >= 1.0.15}
 BuildRequires: libselinux-devel
+BuildRequires: libtcmalloc-devel
 BuildRequires: libtirpc-devel
 BuildRequires: libtool
+BuildRequires: liburing-devel
 BuildRequires: libuuid-devel
 BuildRequires: libxml2-devel >= 1:2.6.19
 BuildRequires: openssl-devel
 BuildRequires: pkgconfig
-BuildRequires: python >= 1:2.6
-BuildRequires: python-devel >= 1:2.6
+BuildRequires: python3 >= 1:3.2
+BuildRequires: python3-devel >= 1:3.2
 BuildRequires: readline-devel
+BuildRequires: rpcsvc-proto
 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
 BuildRequires: zlib-devel >= 1.2.0
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -80,6 +78,7 @@ Summary(pl.UTF-8):    Wspólne pliki GlusterFS-a, w tym translatory
 Group:         Libraries
 Requires:      libxml2 >= 1:2.6.19
 Requires:      zlib >= 1.2.0
+Obsoletes:     glusterfs-transport-ibverbs < 8
 
 %description common
 GlusterFS is a clustered file-system capable of scaling to several
@@ -124,8 +123,9 @@ Group:              Development/Libraries
 Requires:      %{name}-libs = %{version}-%{release}
 # -lfl
 Requires:      flex
+Requires:      libtirpc-devel
 Requires:      openssl-devel
-Obsoletes:     glusterfs-static
+Obsoletes:     glusterfs-static < 1.3.10-2
 
 %description devel
 This package provides the development files for GlusterFS library.
@@ -133,31 +133,18 @@ This package provides the development files for GlusterFS library.
 %description devel -l pl.UTF-8
 Ten pakiet udostępnia pliki programistyczne biblioteki GlusterFS-a.
 
-%package -n python-gluster
-Summary:       Python interface to GlusterFS libraries
-Summary(pl.UTF-8):     Interfejs Pythona do bibliotek GlusterFS
+%package -n python3-gluster
+Summary:       Python interface to GlusterFS libraries
+Summary(pl.UTF-8):     Interfejs Pythona do bibliotek GlusterFS
 Group:         Libraries/Python
 Requires:      %{name}-libs = %{version}-%{release}
+Obsoletes:     python-gluster < 6.6
 
-%description -n python-gluster
-Python interface to GlusterFS libraries.
+%description -n python3-gluster
+Python interface to GlusterFS libraries.
 
-%description -n python-gluster -l pl.UTF-8
-Interfejs Pythona do bibliotek GlusterFS.
-
-%package transport-ibverbs
-Summary:       InfiniBand "verbs" transport plugins for GlusterFS
-Summary(pl.UTF-8):     Wtyczki transportu "verbs" InfiniBand dla GlusterFS-a
-Group:         Libraries
-Requires:      %{name}-common = %{version}-%{release}
-Requires:      libibverbs >= 1.0.4
-Requires:      librdmacm >= 1.0.15
-
-%description transport-ibverbs
-InfiniBand "verbs" transport plugins for GlusterFS.
-
-%description transport-ibverbs -l pl.UTF-8
-Wtyczki transportu "verbs" InfiniBand dla GlusterFS-a.
+%description -n python3-gluster -l pl.UTF-8
+Interfejs Pythona 3 do bibliotek GlusterFS.
 
 %package server
 Summary:       GlusterFS Server
@@ -167,7 +154,7 @@ Requires:   %{name}-client = %{version}-%{release}
 Requires:      %{name}-common = %{version}-%{release}
 Requires(post,preun):  /sbin/chkconfig
 Requires:      rc-scripts
-Requires:      python-modules 
+Requires:      python3-modules 
 
 %description server
 This package provides the glusterfs server daemon.
@@ -206,9 +193,9 @@ 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
+Requires:      python3-gluster = %{version}-%{release}
+Requires:      python3-prettytable
+Requires:      python3-requests
 
 %description events
 GlusterFS Events.
@@ -221,8 +208,8 @@ 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:      python3-gluster = %{version}-%{release}
+Requires:      python3-prettytable
 Requires:      rsync
 
 %description geo-replication
@@ -281,6 +268,7 @@ Plik składni Vima do edycji konfiguracji GlusterFS-a.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 %{__libtoolize}
@@ -289,12 +277,10 @@ Plik składni Vima do edycji konfiguracji GlusterFS-a.
 %{__autoheader}
 %{__automake}
 %configure \
-       PYTHON=%{__python} \
+       PYTHON=%{__python3} \
        %{?with_system_fuse:--disable-fusermount} \
        --disable-silent-rules \
        --enable-gnfs \
-       %{!?with_ibverbs:--disable-ibverbs} \
-       --enable-systemtap%{!?with_systemtap:=no} \
        --with-initdir=/etc/rc.d/init.d
 
 %{__make} -j1
@@ -323,22 +309,15 @@ install -d $RPM_BUILD_ROOT%{_datadir}/{emacs/site-lisp,vim/syntax}
 # example, installed as /var/lib/glusterd/groups/virt
 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/glusterfs/group-virt.example
 
-%py_postclean
-
 %clean
 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
@@ -348,13 +327,11 @@ fi
 
 %post geo-replication
 %service glusterd restart
-%endif
 
 %files common
 %defattr(644,root,root,755)
 %doc ChangeLog NEWS README.md THANKS
 %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
@@ -368,6 +345,7 @@ fi
 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/auth/login.so
 
 %dir %{_libdir}/glusterfs/%{version}/cloudsync-plugins
+%attr(755,root,root) %{_libdir}/glusterfs/%{version}/cloudsync-plugins/cloudsynccvlt.so
 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/cloudsync-plugins/cloudsyncs3.so
 
 %dir %{_libdir}/glusterfs/%{version}/rpc-transport
@@ -404,6 +382,8 @@ fi
 %if "%{_libexecdir}" != "%{_libdir}"
 %dir %{_libexecdir}/glusterfs
 %endif
+%dir %{_libexecdir}/glusterfs/scripts
+%attr(755,root,root) %{_libexecdir}/glusterfs/glfsheal
 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_add_secret_pub
 
 %dir %{_libexecdir}/glusterfs/glusterfind
@@ -411,14 +391,15 @@ fi
 %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/gfind_py2py3.py*
-%{_libexecdir}/glusterfs/glusterfind/libgfchangelog.py*
-%{_libexecdir}/glusterfs/glusterfind/main.py*
-%{_libexecdir}/glusterfs/glusterfind/utils.py*
+%{_libexecdir}/glusterfs/glusterfind/__init__.py
+%{_libexecdir}/glusterfs/glusterfind/changelogdata.py
+%{_libexecdir}/glusterfs/glusterfind/conf.py
+%{_libexecdir}/glusterfs/glusterfind/gfind_py2py3.py
+%{_libexecdir}/glusterfs/glusterfind/libgfchangelog.py
+%{_libexecdir}/glusterfs/glusterfind/main.py
+%{_libexecdir}/glusterfs/glusterfind/utils.py
 %{_libexecdir}/glusterfs/glusterfind/tool.conf
+%{_libexecdir}/glusterfs/glusterfind/__pycache__
 
 %dir %{_libexecdir}/glusterfs/python
 
@@ -432,6 +413,8 @@ fi
 
 %{_mandir}/man8/glusterfs.8*
 %{_mandir}/man8/glusterfsd.8*
+
+%dir %{_var}/lib/glusterd
 %dir %{_var}/log/glusterfs
 
 %files libs
@@ -444,6 +427,8 @@ fi
 %attr(755,root,root) %ghost %{_libdir}/libgfrpc.so.0
 %attr(755,root,root) %{_libdir}/libgfxdr.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libgfxdr.so.0
+%attr(755,root,root) %{_libdir}/libglusterd.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libglusterd.so.0
 %attr(755,root,root) %{_libdir}/libglusterfs.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libglusterfs.so.0
 
@@ -453,11 +438,13 @@ fi
 %attr(755,root,root) %{_libdir}/libgfchangelog.so
 %attr(755,root,root) %{_libdir}/libgfrpc.so
 %attr(755,root,root) %{_libdir}/libgfxdr.so
+%attr(755,root,root) %{_libdir}/libglusterd.so
 %attr(755,root,root) %{_libdir}/libglusterfs.so
 %{_libdir}/libgfapi.la
 %{_libdir}/libgfchangelog.la
 %{_libdir}/libgfrpc.la
 %{_libdir}/libgfxdr.la
+%{_libdir}/libglusterd.la
 %{_libdir}/libglusterfs.la
 %dir %{_includedir}/glusterfs
 %{_includedir}/glusterfs/api
@@ -468,19 +455,14 @@ fi
 %{_pkgconfigdir}/glusterfs-api.pc
 %{_pkgconfigdir}/libgfchangelog.pc
 
-%files -n python-gluster
+%files -n python3-gluster
 %defattr(644,root,root,755)
-%dir %{py_sitescriptdir}/gluster
-%{py_sitescriptdir}/gluster/*.py[co]
-%{py_sitescriptdir}/gluster/cliutils
+%dir %{py3_sitescriptdir}/gluster
+%{py3_sitescriptdir}/gluster/__init__.py
+%{py3_sitescriptdir}/gluster/__pycache__
+%{py3_sitescriptdir}/gluster/cliutils
 # created only when using py_build/py_install in xlators/features/glupy/src
-#%{py_sitescriptdir}/glusterfs_glupy-%{version}-py*.egg-info
-
-%if %{with ibverbs}
-%files transport-ibverbs
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/glusterfs/%{version}/rpc-transport/rdma.so
-%endif
+#%{py3_sitescriptdir}/glusterfs_glupy-%{version}-py*.egg-info
 
 %files server
 %defattr(644,root,root,755)
@@ -502,7 +484,6 @@ fi
 
 %{_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/db-workload
 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/distributed-virt
@@ -515,6 +496,7 @@ fi
 %dir %{_var}/lib/glusterd/hooks/1
 %dir %{_var}/lib/glusterd/hooks/1/add-brick
 %dir %{_var}/lib/glusterd/hooks/1/add-brick/post
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/post/S10selinux-label-brick.sh
 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/post/S13create-subdir-mounts.sh
 %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
@@ -562,15 +544,28 @@ fi
 %attr(755,root,root) %{_sbindir}/glustereventsd
 %dir %{_libexecdir}/glusterfs/gfevents
 %attr(755,root,root) %{_libexecdir}/glusterfs/gfevents/glustereventsd.py
-%{_libexecdir}/glusterfs/gfevents/__init__.py*
-%{_libexecdir}/glusterfs/gfevents/eventsapiconf.py*
-%{_libexecdir}/glusterfs/gfevents/eventtypes.py*
-%{_libexecdir}/glusterfs/gfevents/gf_event.py*
-%{_libexecdir}/glusterfs/gfevents/handlers.py*
-%{_libexecdir}/glusterfs/gfevents/utils.py*
-%{_libexecdir}/glusterfs/peer_eventsapi.py*
+%{_libexecdir}/glusterfs/gfevents/__init__.py
+%{_libexecdir}/glusterfs/gfevents/eventsapiconf.py
+%{_libexecdir}/glusterfs/gfevents/eventtypes.py
+%{_libexecdir}/glusterfs/gfevents/gf_event.py
+%{_libexecdir}/glusterfs/gfevents/handlers.py
+%{_libexecdir}/glusterfs/gfevents/utils.py
+%{_libexecdir}/glusterfs/gfevents/__pycache__
+%{_libexecdir}/glusterfs/peer_eventsapi.py
 %{_datadir}/glusterfs/scripts/eventsdash.py
 
+# NFS-ganesha integration
+#%files ganesha
+#%defattr(644,root,root,755)
+#%attr(755,root,root) %{_libexecdir}/ganesha/create-export-ganesha.sh
+#%attr(755,root,root) %{_libexecdir}/ganesha/dbus-send.sh
+#%attr(755,root,root) %{_libexecdir}/ganesha/ganesha-ha.sh
+#%attr(755,root,root) %{_libexecdir}/ganesha/generate-epoch.py
+#%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_grace
+#%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_mon
+#%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_nfsd
+#%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S31ganesha-start.sh
+
 %files geo-replication
 %defattr(644,root,root,755)
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/gsyncd.conf
@@ -587,14 +582,14 @@ fi
 %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
+%{_libexecdir}/glusterfs/python/syncdaemon/*.py
+%{_libexecdir}/glusterfs/python/syncdaemon/__pycache__
+%attr(755,root,root) %{_libexecdir}/glusterfs/scripts/generate-gfid-file.sh
+%attr(755,root,root) %{_libexecdir}/glusterfs/scripts/get-gfid.sh
+%attr(755,root,root) %{_libexecdir}/glusterfs/scripts/gsync-sync-gfid
+%attr(755,root,root) %{_libexecdir}/glusterfs/scripts/gsync-upgrade.sh
+%attr(755,root,root) %{_libexecdir}/glusterfs/scripts/schedule_georep.py
+%attr(755,root,root) %{_libexecdir}/glusterfs/scripts/secondary-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