diff --git a/0001-configure.ac.patch b/0001-configure.ac.patch deleted file mode 100644 index 67b2e73..0000000 --- a/0001-configure.ac.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- glusterfs-11.0/configure.ac.orig 2023-02-07 08:27:06.663310072 -0500 -+++ glusterfs-11.0/configure.ac 2023-02-07 08:27:56.012452316 -0500 -@@ -1319,7 +1319,7 @@ - fi - - GF_HOST_OS="" --GF_LDFLAGS="${GF_LDFLAGS} -rdynamic" -+GF_LDFLAGS="${GF_LDFLAGS} -rdynamic -fuse-ld=mold" - - dnl see --with-libtirpc option check above, libtirpc(-devel) is required for - dnl ipv6-default diff --git a/0001-rpc-rpc-lib-src-Makefile.am.patch b/0001-rpc-rpc-lib-src-Makefile.am.patch new file mode 100644 index 0000000..4b167fc --- /dev/null +++ b/0001-rpc-rpc-lib-src-Makefile.am.patch @@ -0,0 +1,12 @@ +--- glusterfs-8.0/rpc/rpc-lib/src/Makefile.am.orig 2020-07-22 08:09:31.315980869 -0400 ++++ glusterfs-8.0/rpc/rpc-lib/src/Makefile.am 2020-07-22 08:10:12.203980869 -0400 +@@ -2,8 +2,7 @@ + + libgfrpc_la_SOURCES = auth-unix.c rpcsvc-auth.c rpcsvc.c auth-null.c \ + rpc-transport.c xdr-rpc.c xdr-rpcclnt.c rpc-clnt.c auth-glusterfs.c \ +- rpc-drc.c $(CONTRIBDIR)/sunrpc/xdr_sizeof.c rpc-clnt-ping.c \ +- autoscale-threads.c mgmt-pmap.c ++ rpc-drc.c rpc-clnt-ping.c autoscale-threads.c mgmt-pmap.c + + EXTRA_DIST = libgfrpc.sym + diff --git a/0002-contrib-aclocal-python.m4.patch b/0002-contrib-aclocal-python.m4.patch deleted file mode 100644 index 0772c87..0000000 --- a/0002-contrib-aclocal-python.m4.patch +++ /dev/null @@ -1,212 +0,0 @@ ---- glusterfs-11.0/contrib/aclocal/python.m4.orig 2023-06-16 11:18:03.550994174 -0400 -+++ glusterfs-11.0/contrib/aclocal/python.m4 2023-06-16 11:18:47.875238947 -0400 -@@ -1,209 +1 @@ --## ------------------------ -*- Autoconf -*- --## Python file handling --## From Andrew Dalke --## Updated by James Henstridge - ## ------------------------ --# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009 --# Free Software Foundation, Inc. --# --# This file is free software; the Free Software Foundation --# gives unlimited permission to copy and/or distribute it, --# with or without modifications, as long as this notice is preserved. -- --# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) --# --------------------------------------------------------------------------- --# Adds support for distributing Python modules and packages. To --# install modules, copy them to $(pythondir), using the python_PYTHON --# automake variable. To install a package with the same name as the --# automake package, install to $(pkgpythondir), or use the --# pkgpython_PYTHON automake variable. --# --# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as --# locations to install python extension modules (shared libraries). --# Another macro is required to find the appropriate flags to compile --# extension modules. --# --# If your package is configured with a different prefix to python, --# users will have to add the install directory to the PYTHONPATH --# environment variable, or create a .pth file (see the python --# documentation for details). --# --# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will --# cause an error if the version of python installed on the system --# doesn't meet the requirement. MINIMUM-VERSION should consist of --# numbers and dots only. --AC_DEFUN([AM_PATH_PYTHON], -- [ -- dnl Find a Python interpreter. Python versions prior to 2.0 are not -- dnl supported. (2.0 was released on October 16, 2000). -- m4_define_default([_AM_PYTHON_INTERPRETER_LIST], -- [python python2 python3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 dnl --python2.1 python2.0]) -- -- m4_if([$1],[],[ -- dnl No version check is needed. -- # Find any Python interpreter. -- if test -z "$PYTHON"; then -- AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) -- fi -- am_display_PYTHON=python -- ], [ -- dnl A version check is needed. -- if test -n "$PYTHON"; then -- # If the user set $PYTHON, use it and don't search something else. -- AC_MSG_CHECKING([whether $PYTHON version >= $1]) -- AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], -- [AC_MSG_RESULT(yes)], -- [AC_MSG_ERROR(too old)]) -- am_display_PYTHON=$PYTHON -- else -- # Otherwise, try each interpreter until we find one that satisfies -- # VERSION. -- AC_CACHE_CHECK([for a Python interpreter with version >= $1], -- [am_cv_pathless_PYTHON],[ -- for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do -- test "$am_cv_pathless_PYTHON" = none && break -- AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) -- done]) -- # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. -- if test "$am_cv_pathless_PYTHON" = none; then -- PYTHON=: -- else -- AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) -- fi -- am_display_PYTHON=$am_cv_pathless_PYTHON -- fi -- ]) -- -- if test "$PYTHON" = :; then -- dnl Run any user-specified action, or abort. -- m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) -- else -- -- dnl Query Python for its version number. Getting [:3] seems to be -- dnl the best way to do this; it's what "site.py" does in the standard -- dnl library. -- -- AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], -- [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) -- AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) -- -- dnl Use the values of $prefix and $exec_prefix for the corresponding -- dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made -- dnl distinct variables so they can be overridden if need be. However, -- dnl general consensus is that you shouldn't need this ability. -- -- AC_SUBST([PYTHON_PREFIX], ['${prefix}']) -- AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) -- -- dnl At times (like when building shared libraries) you may want -- dnl to know which OS platform Python thinks this is. -- -- AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], -- [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) -- AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) -- -- -- dnl Set up 4 directories: -- -- dnl pythondir -- where to install python scripts. This is the -- dnl site-packages directory, not the python standard library -- dnl directory like in previous automake betas. This behavior -- dnl is more consistent with lispdir.m4 for example. -- dnl Query distutils for this directory. distutils does not exist in -- dnl Python 1.5, so we fall back to the hardcoded directory if it -- dnl doesn't work. -- AC_CACHE_CHECK([for $am_display_PYTHON script directory], -- [am_cv_python_pythondir], -- [if test "x$prefix" = xNONE -- then -- am_py_prefix=$ac_default_prefix -- else -- am_py_prefix=$prefix -- fi -- am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null || -- echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` -- case $am_cv_python_pythondir in -- $am_py_prefix*) -- am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` -- am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` -- ;; -- *) -- case $am_py_prefix in -- /usr|/System*) ;; -- *) -- am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages -- ;; -- esac -- ;; -- esac -- ]) -- AC_SUBST([pythondir], [$am_cv_python_pythondir]) -- -- dnl pkgpythondir -- $PACKAGE directory under pythondir. Was -- dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is -- dnl more consistent with the rest of automake. -- -- AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) -- -- dnl pyexecdir -- directory for installing python extension modules -- dnl (shared libraries) -- dnl Query distutils for this directory. distutils does not exist in -- dnl Python 1.5, so we fall back to the hardcoded directory if it -- dnl doesn't work. -- AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], -- [am_cv_python_pyexecdir], -- [if test "x$exec_prefix" = xNONE -- then -- am_py_exec_prefix=$am_py_prefix -- else -- am_py_exec_prefix=$exec_prefix -- fi -- am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null || -- echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"` -- case $am_cv_python_pyexecdir in -- $am_py_exec_prefix*) -- am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` -- am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` -- ;; -- *) -- case $am_py_exec_prefix in -- /usr|/System*) ;; -- *) -- am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages -- ;; -- esac -- ;; -- esac -- ]) -- AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) -- -- dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) -- -- AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) -- -- dnl Run any user-specified action. -- $2 -- fi -- --]) -- -- --# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) --# --------------------------------------------------------------------------- --# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. --# Run ACTION-IF-FALSE otherwise. --# This test uses sys.hexversion instead of the string equivalent (first --# word of sys.version), in order to cope with versions such as 2.2c1. --# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). --AC_DEFUN([AM_PYTHON_CHECK_VERSION], -- [prog="import sys --# split strings by '.' and convert to numeric. Append some zeros --# because we need at least 4 digits for the hex conversion. --# map returns an iterator in Python 3.0 and a list in 2.x --minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] --minverhex = 0 --# xrange is not present in Python 3.0 and range returns an iterator --for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] --sys.exit(sys.hexversion < minverhex)" -- AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) diff --git a/0003-makefile-am-subdirs.patch b/0003-makefile-am-subdirs.patch deleted file mode 100644 index ae2e543..0000000 --- a/0003-makefile-am-subdirs.patch +++ /dev/null @@ -1,126 +0,0 @@ -diff -ruN glusterfs-11.2/api/examples/Makefile.am glusterfs-11.2-mod/api/examples/Makefile.am ---- glusterfs-11.2/api/examples/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/api/examples/Makefile.am 2025-07-02 12:31:15.002167956 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - # The bits needed for glfsxmp - EXTRA_PROGRAMS = glfsxmp - glfsxmp_SOURCES = glfsxmp.c -diff -ruN glusterfs-11.2/contrib/fuse-util/Makefile.am glusterfs-11.2-mod/contrib/fuse-util/Makefile.am ---- glusterfs-11.2/contrib/fuse-util/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/contrib/fuse-util/Makefile.am 2025-07-02 12:31:32.290546271 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - bin_PROGRAMS = fusermount-glusterfs - - fusermount_glusterfs_SOURCES = fusermount.c mount_util.c $(CONTRIBDIR)/fuse-lib/mount-common.c -diff -ruN glusterfs-11.2/libglusterfs/src/Makefile.am glusterfs-11.2-mod/libglusterfs/src/Makefile.am ---- glusterfs-11.2/libglusterfs/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/libglusterfs/src/Makefile.am 2025-07-02 12:26:47.776161392 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - noinst_PYTHON = generator.py gen-defaults.py $(top_srcdir)/events/eventskeygen.py - - libglusterfs_la_CFLAGS = $(GF_CFLAGS) $(GF_DARWIN_LIBGLUSTERFS_CFLAGS) \ -diff -ruN glusterfs-11.2/xlators/cluster/afr/src/Makefile.am glusterfs-11.2-mod/xlators/cluster/afr/src/Makefile.am ---- glusterfs-11.2/xlators/cluster/afr/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/xlators/cluster/afr/src/Makefile.am 2025-07-02 12:26:21.567940962 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - xlator_LTLIBRARIES = afr.la - xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/cluster - -diff -ruN glusterfs-11.2/xlators/cluster/dht/src/Makefile.am glusterfs-11.2-mod/xlators/cluster/dht/src/Makefile.am ---- glusterfs-11.2/xlators/cluster/dht/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/xlators/cluster/dht/src/Makefile.am 2025-07-02 12:26:07.943843179 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - xlator_LTLIBRARIES = dht.la nufa.la switch.la - - AM_CFLAGS = -Wall $(GF_CFLAGS) -diff -ruN glusterfs-11.2/xlators/cluster/ec/src/Makefile.am glusterfs-11.2-mod/xlators/cluster/ec/src/Makefile.am ---- glusterfs-11.2/xlators/cluster/ec/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/xlators/cluster/ec/src/Makefile.am 2025-07-02 12:25:45.287655225 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - xlator_LTLIBRARIES = ec.la - xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/cluster - -diff -ruN glusterfs-11.2/xlators/features/changelog/lib/src/Makefile.am glusterfs-11.2-mod/xlators/features/changelog/lib/src/Makefile.am ---- glusterfs-11.2/xlators/features/changelog/lib/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/xlators/features/changelog/lib/src/Makefile.am 2025-07-02 12:25:15.015401482 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - libgfchangelog_la_CFLAGS = -Wall $(GF_CFLAGS) $(GF_DARWIN_LIBGLUSTERFS_CFLAGS) \ - -DDATADIR=\"$(localstatedir)\" - -diff -ruN glusterfs-11.2/xlators/features/cloudsync/src/cloudsync-plugins/src/cloudsyncs3/src/Makefile.am glusterfs-11.2-mod/xlators/features/cloudsync/src/cloudsync-plugins/src/cloudsyncs3/src/Makefile.am ---- glusterfs-11.2/xlators/features/cloudsync/src/cloudsync-plugins/src/cloudsyncs3/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/xlators/features/cloudsync/src/cloudsync-plugins/src/cloudsyncs3/src/Makefile.am 2025-07-02 12:24:16.783001896 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - csp_LTLIBRARIES = cloudsyncs3.la - cspdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/cloudsync-plugins - -diff -ruN glusterfs-11.2/xlators/features/cloudsync/src/cloudsync-plugins/src/cvlt/src/Makefile.am glusterfs-11.2-mod/xlators/features/cloudsync/src/cloudsync-plugins/src/cvlt/src/Makefile.am ---- glusterfs-11.2/xlators/features/cloudsync/src/cloudsync-plugins/src/cvlt/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/xlators/features/cloudsync/src/cloudsync-plugins/src/cvlt/src/Makefile.am 2025-07-02 12:24:00.726984102 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - csp_LTLIBRARIES = cloudsynccvlt.la - cspdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/cloudsync-plugins - -diff -ruN glusterfs-11.2/xlators/features/cloudsync/src/Makefile.am glusterfs-11.2-mod/xlators/features/cloudsync/src/Makefile.am ---- glusterfs-11.2/xlators/features/cloudsync/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/xlators/features/cloudsync/src/Makefile.am 2025-07-02 12:24:45.054966491 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - SUBDIRS = cloudsync-plugins - - xlator_LTLIBRARIES = cloudsync.la -diff -ruN glusterfs-11.2/xlators/features/thin-arbiter/src/Makefile.am glusterfs-11.2-mod/xlators/features/thin-arbiter/src/Makefile.am ---- glusterfs-11.2/xlators/features/thin-arbiter/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/xlators/features/thin-arbiter/src/Makefile.am 2025-07-02 12:22:10.366019070 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - xlator_LTLIBRARIES = thin-arbiter.la - - xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features -diff -ruN glusterfs-11.2/xlators/features/utime/src/Makefile.am glusterfs-11.2-mod/xlators/features/utime/src/Makefile.am ---- glusterfs-11.2/xlators/features/utime/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/xlators/features/utime/src/Makefile.am 2025-07-02 12:21:54.421923762 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - xlator_LTLIBRARIES = utime.la - xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features - -diff -ruN glusterfs-11.2/xlators/mgmt/glusterd/src/Makefile.am glusterfs-11.2-mod/xlators/mgmt/glusterd/src/Makefile.am ---- glusterfs-11.2/xlators/mgmt/glusterd/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/xlators/mgmt/glusterd/src/Makefile.am 2025-07-02 12:20:49.141466838 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - if WITH_SERVER - xlator_LTLIBRARIES = glusterd.la - endif -diff -ruN glusterfs-11.2/xlators/mount/fuse/src/Makefile.am glusterfs-11.2-mod/xlators/mount/fuse/src/Makefile.am ---- glusterfs-11.2/xlators/mount/fuse/src/Makefile.am 2025-06-10 16:27:14.000000000 +0300 -+++ glusterfs-11.2-mod/xlators/mount/fuse/src/Makefile.am 2025-07-02 12:19:50.029047303 +0300 -@@ -1,3 +1,5 @@ -+AUTOMAKE_OPTIONS = subdir-objects -+ - noinst_HEADERS_linux = $(CONTRIBDIR)/fuse-include/fuse_kernel.h\ - $(CONTRIBDIR)/fuse-include/mount_util.h\ - $(CONTRIBDIR)/fuse-lib/mount-gluster-compat.h diff --git a/glusterd.init b/glusterd.init new file mode 100644 index 0000000..fecb77d --- /dev/null +++ b/glusterd.init @@ -0,0 +1,109 @@ +#!/bin/sh +# +# glusterd Startup script for the glusterfs server +# +# chkconfig: - 20 80 +# description: Clustered file-system server + +### BEGIN INIT INFO +# Provides: glusterd +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Should-Start: +# Should-Stop: +# Default-Start: +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: glusterfs server +# Description: Clustered file-system server +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +exe="/usr/sbin/glusterd" +prog="glusterd" + +# Fedora File System Layout dictates /run +[ -e /run ] && RUNDIR="/run" +pidf="${RUNDIR:-/var/run}/$prog.pid" + +# Set defaults, then source config for eventual overrides +GLUSTERD_NOFILE="65536" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +lockfile=/var/lock/subsys/$prog + +start() { + [ -x $exe ] || exit 5 + ulimit -n $GLUSTERD_NOFILE + echo -n $"Starting $prog: " + daemon $exe${GLUSTERD_LOGFILE+" -l $GLUSTERD_LOGFILE"}${GLUSTERD_LOGLEVEL+" -L $GLUSTERD_LOGLEVEL"} -p $pidf + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile /var/lock/subsys/glusterfsd + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + status $prog +} + +rh_status_q() { + rh_status &>/dev/null +} + + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? diff --git a/glusterfs.spec b/glusterfs.spec index c125810..a6fbec7 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,13 +1,16 @@ +# This package depends on automagic byte compilation +# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 +%global _python_bytecompile_extra 1 %global _hardened_build 1 %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the %%dev for pre-releases -# %%global prereltag rc0 +#%%global dev rc3 ##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order +## All argument definitions should be placed here and keep them sorted ## # asan @@ -54,11 +57,6 @@ # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default %{?_with_ipv6default:%global _with_ipv6default --with-ipv6-default} -# linux-io_uring -# If you wish to compile an rpm without linux-io_uring support... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without-linux-io_uring -%{?_without_linux_io_uring:%global _without_linux_io_uring --disable-linux-io_uring} - # libtirpc # if you wish to compile an rpm without TIRPC (i.e. use legacy glibc rpc) # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without libtirpc @@ -70,20 +68,21 @@ %global _without_libtirpc --without-libtirpc %endif -# libtcmalloc -# if you wish to compile an rpm without tcmalloc (i.e. use gluster mempool) -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without tcmalloc -%{?_without_tcmalloc:%global _without_tcmalloc --without-tcmalloc} - -%ifnarch x86_64 -%global _without_tcmalloc --without-tcmalloc -%endif - # ocf # if you wish to compile an rpm without the OCF resource agents... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} +# rdma +# 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} + +# No RDMA Support on armv7hl +%ifarch armv7hl +%global _without_rdma --disable-ibverbs +%endif + # server # if you wish to build rpms without server components, compile like this # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without server @@ -122,15 +121,9 @@ %{?_with_valgrind:%global _with_valgrind --enable-valgrind} ##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order +## All %%global definitions should be placed here and keep them sorted ## -# selinux booleans whose default value needs modification -# these booleans will be consumed by "%%selinux_set_booleans" macro. -%if ( 0%{?rhel} && 0%{?rhel} >= 8 ) -%global selinuxbooleans rsync_full_access=1 rsync_client=1 -%endif - %if ( 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) %global _with_firewalld --enable-firewalld %endif @@ -157,6 +150,13 @@ %global _pythonver 2 %endif +# From https://fedoraproject.org/wiki/Packaging:Python#Macros +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +%{!?python2_sitelib: %global python2_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python2_sitearch: %global python2_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%global _rundir %{_localstatedir}/run +%endif + %global service_start() /bin/systemctl --quiet start %1.service || : \ %{nil} %global service_stop() /bin/systemctl --quiet stop %1.service || :\ @@ -190,22 +190,22 @@ ##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order +## All package definitions should be placed here and keep them sorted ## Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 11.2 -Release: 4%{?prereltag:%{prereltag}}%{?dist} +Version: 7.9 +Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.26 +Release: 0.@PACKAGE_RELEASE@%{?dist}.2 %endif -License: GPL-2.0-only OR LGPL-3.0-or-later +License: GPLv2 or LGPLv3+ URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://github.com/gluster/glusterfs/archive/v%{version}%{?prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz +Source0: http://download.gluster.org/pub/gluster/%{name}/LATEST/%{version}%{?dev}/%{name}-%{version}%{?dev}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source7: glusterfsd.service @@ -213,20 +213,15 @@ Source8: glusterfsd.init %else Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz %endif -Patch0001: 0001-configure.ac.patch -Patch0002: 0002-contrib-aclocal-python.m4.patch -Patch0003: 0003-makefile-am-subdirs.patch +Patch0001: 0001-rpc-rpc-lib-src-Makefile.am.patch +Requires(pre): shadow-utils BuildRequires: systemd -%if 0%{!?_without_tcmalloc:1} -Requires: gperftools-libs%{?_isa} -%endif - -Requires: libglusterfs0%{?_isa} = %{version}-%{release} -Requires: libgfrpc0%{?_isa} = %{version}-%{release} -Requires: libgfxdr0%{?_isa} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} %{?systemd_requires} +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig %if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: libasan %endif @@ -235,16 +230,10 @@ BuildRequires: libtsan %endif BuildRequires: bison flex BuildRequires: gcc make libtool -%ifarch x86_64 aarch64 -BuildRequires: mold -%endif BuildRequires: ncurses-devel readline-devel -BuildRequires: libxml2-devel openssl-devel openssl +BuildRequires: libxml2-devel openssl-devel BuildRequires: libaio-devel libacl-devel BuildRequires: python%{_pythonver}-devel -%if 0%{!?_without_tcmalloc:1} -BuildRequires: gperftools-devel -%endif %if ( 0%{?rhel} && 0%{?rhel} < 8 ) BuildRequires: python-ctypes %endif @@ -270,10 +259,6 @@ BuildRequires: libattr-devel BuildRequires: firewalld %endif -%if ( 0%{!?_without_linux_io_uring:1} ) -BuildRequires: liburing-devel -%endif - Obsoletes: hekafs <= %{version}-%{release} Obsoletes: %{name}-common < %{version}-%{release} Obsoletes: %{name}-core < %{version}-%{release} @@ -284,48 +269,70 @@ Obsoletes: %{name}-ufo <= %{version}-%{release} %if ( 0%{!?_with_gnfs:1} ) Obsoletes: %{name}-gnfs <= %{version}-%{release} %endif -Obsoletes: %{name}-rdma < %{version}-%{release} +Obsoletes: %{name}-ganesha <= %{version}-%{release} Provides: %{name}-common = %{version}-%{release} Provides: %{name}-core = %{version}-%{release} -Provides: %{name}-rdma = %{version}-%{release} %description GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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. +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 includes the glusterfs binary, the glusterfsd daemon and the libglusterfs and glusterfs translator modules common to both GlusterFS server and client framework. +%package api +Summary: GlusterFS api library +Requires: %{name} = %{version}-%{release} +Requires: %{name}-client-xlators = %{version}-%{release} +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig + +%description api +GlusterFS is a distributed 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 glusterfs libgfapi library. + +%package api-devel +Summary: Development Libraries +Requires: %{name} = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} +Requires: libacl-devel + +%description api-devel +GlusterFS is a distributed 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 -%if ( ! (0%{?rhel} && 0%{?rhel} < 7) ) -BuildRequires: pkgconfig(bash-completion) -# bash-completion >= 1.90 satisfies this requirement. -# If it is not available, the condition can be adapted -# and the completion script will be installed in the backwards compatible -# %{sysconfdir}/bash_completion.d -%endif -Requires: libglusterfs0%{?_isa} = %{version}-%{release} - -%if "%{_sbindir}" == "%{_bindir}" -# Compat symlinks for Requires in other packages. -# We rely on filesystem to create the symlinks for us. -Requires: filesystem(unmerged-sbin-symlinks) -Provides: /usr/sbin/gluster -%endif +Requires: %{name}-libs = %{version}-%{release} %description cli GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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. +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 GlusterFS CLI application and its man page @@ -334,11 +341,12 @@ Summary: GlusterFS client-side translators %description client-xlators GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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. +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 translators needed on any GlusterFS client. @@ -348,14 +356,33 @@ BuildRequires: libcurl-devel %description cloudsync-plugins GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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. +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 cloudsync plugins for archival feature. +%package devel +Summary: Development Libraries +Requires: %{name} = %{version}-%{release} +# Needed for the Glupy examples to work +Requires: %{name}-extra-xlators = %{version}-%{release} + +%description devel +GlusterFS is a distributed 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. + + %if ( 0%{!?_without_events:1} ) %package events Summary: GlusterFS Events @@ -375,11 +402,12 @@ Requires: python-argparse %description events GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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. +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 GlusterFS Events %endif @@ -393,18 +421,19 @@ Requires: python%{_pythonver} %description extra-xlators GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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. +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 extra filesystem Translators, such as Glupy, for GlusterFS. %package fuse Summary: Fuse client -BuildRequires: fuse3-devel +BuildRequires: fuse-devel Requires: attr Requires: psmisc @@ -416,58 +445,15 @@ Provides: %{name}-client = %{version}-%{release} %description fuse GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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. +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 support to FUSE based clients and includes the -glusterfs and glusterfsd binaries. - -%if ( 0%{!?_without_server:1} ) -%package ganesha -Summary: NFS-Ganesha configuration -Group: Applications/File - -Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: nfs-ganesha-selinux >= 2.7.6 -Requires: nfs-ganesha-gluster >= 2.7.6 -Requires: pcs >= 0.10.0 -Requires: resource-agents >= 4.2.0 -Requires: dbus - -%if ( 0%{?rhel} && 0%{?rhel} == 6 ) -Requires: cman, pacemaker, corosync -%endif - -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 5 ) -# we need portblock resource-agent in 3.9.5 and later. -Requires: net-tools -%endif - -%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) -%if ( 0%{?rhel} && 0%{?rhel} < 8 ) -Requires: selinux-policy >= 3.13.1-160 -Requires(post): policycoreutils-python -Requires(postun): policycoreutils-python -%else -Requires(post): policycoreutils-python-utils -Requires(postun): policycoreutils-python-utils -%endif -%endif - -%description ganesha -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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 configuration and related files for using -NFS-Ganesha as the NFS server using GlusterFS -%endif +glusterfsd and glusterfs binaries. %if ( 0%{!?_without_georeplication:1} ) %package geo-replication @@ -477,26 +463,16 @@ Requires: %{name}-server = %{version}-%{release} Requires: python%{_pythonver} Requires: python%{_pythonver}-prettytable Requires: python%{_pythonver}-gluster = %{version}-%{release} - Requires: rsync -Requires: util-linux -Requires: tar -# required for setting selinux bools -%if ( 0%{?rhel} && 0%{?rhel} >= 8 ) -Requires(post): policycoreutils-python-utils -Requires(postun): policycoreutils-python-utils -Requires: selinux-policy-targeted -Requires(post): selinux-policy-targeted -BuildRequires: selinux-policy-devel -%endif %description geo-replication GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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. +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 @@ -520,165 +496,21 @@ is in user space and easily manageable. This package provides the glusterfs legacy gNFS server xlator %endif -%package -n libglusterfs0 -Summary: GlusterFS libglusterfs library -Requires: libgfrpc0%{?_isa} = %{version}-%{release} -Requires: libgfxdr0%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-libs <= %{version}-%{release} -Provides: %{name}-libs = %{version}-%{release} -Obsoletes: libglusterd0 <= %{version}-%{release} -Provides: libglusterd0 = %{version}-%{release} +%package libs +Summary: GlusterFS common libraries +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig -%description -n libglusterfs0 +%description libs GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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. +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 base libglusterfs library - -%package -n libglusterfs-devel -Summary: GlusterFS libglusterfs library -Requires: libgfrpc-devel%{?_isa} = %{version}-%{release} -Requires: libgfxdr-devel%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-devel <= %{version}-%{release} -Provides: %{name}-devel = %{version}-%{release} - -%description -n libglusterfs-devel -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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 libglusterfs.so and the gluster C header files. - -%package -n libgfapi0 -Summary: GlusterFS api library -Requires: libglusterfs0%{?_isa} = %{version}-%{release} -Requires: %{name}-client-xlators%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-api <= %{version}-%{release} -Provides: %{name}-api = %{version}-%{release} - -%description -n libgfapi0 -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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 glusterfs libgfapi library. - -%package -n libgfapi-devel -Summary: Development Libraries -Requires: libglusterfs-devel%{?_isa} = %{version}-%{release} -Requires: libacl-devel -Obsoletes: %{name}-api-devel <= %{version}-%{release} -Provides: %{name}-api-devel = %{version}-%{release} - -%description -n libgfapi-devel -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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 libgfapi.so and the api C header files. - -%package -n libgfchangelog0 -Summary: GlusterFS libchangelog library -Requires: libglusterfs0%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-libs <= %{version}-%{release} - -%description -n libgfchangelog0 -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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 libgfchangelog library - -%package -n libgfchangelog-devel -Summary: GlusterFS libchangelog library -Requires: libglusterfs-devel%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-devel <= %{version}-%{release} - -%description -n libgfchangelog-devel -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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 libgfchangelog.so and changelog C header files. - -%package -n libgfrpc0 -Summary: GlusterFS libgfrpc0 library -Requires: libglusterfs0%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-libs <= %{version}-%{release} - -%description -n libgfrpc0 -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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 libgfrpc library - -%package -n libgfrpc-devel -Summary: GlusterFS libgfrpc library -Requires: libglusterfs0%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-devel <= %{version}-%{release} - -%description -n libgfrpc-devel -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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 libgfrpc.so and rpc C header files. - -%package -n libgfxdr0 -Summary: GlusterFS libgfxdr0 library -Requires: libglusterfs0%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-libs <= %{version}-%{release} - -%description -n libgfxdr0 -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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 libgfxdr library - -%package -n libgfxdr-devel -Summary: GlusterFS libgfxdr library -Requires: libglusterfs0%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-devel <= %{version}-%{release} - -%description -n libgfxdr-devel -GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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 libgfxdr.so. +This package provides the base GlusterFS libraries %package -n python%{_pythonver}-gluster Summary: GlusterFS python library @@ -691,15 +523,39 @@ Obsoletes: python-gluster < 3.10 %description -n python%{_pythonver}-gluster GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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. +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 contains the python modules of GlusterFS and own gluster namespace. +%if ( 0%{!?_without_rdma:1} ) +%package rdma +Summary: GlusterFS rdma support for ib-verbs +%if ( 0%{?fedora} && 0%{?fedora} > 26 ) +BuildRequires: rdma-core-devel +%else +BuildRequires: libibverbs-devel +BuildRequires: librdmacm-devel >= 1.0.15 +%endif +Requires: %{name} = %{version}-%{release} + +%description rdma +GlusterFS is a distributed 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 support to ib-verbs library. +%endif + %if ( ! 0%{_for_fedora_koji_builds} ) %package regression-tests Summary: Development Tools @@ -720,20 +576,21 @@ regression testing of Gluster. %if ( 0%{!?_without_ocf:1} ) %package resource-agents Summary: OCF Resource Agents for GlusterFS -License: GPL-3.0-or-later +License: GPLv3+ BuildArch: noarch # for glusterd Requires: %{name}-server = %{version}-%{release} # depending on the distribution, we need pacemaker or resource-agents -Requires: resource-agents +Requires: %{_prefix}/lib/ocf/resource.d %description resource-agents GlusterFS is a distributed file-system capable of scaling to several -petabytes. It aggregates various storage bricks over TCP/IP interconnect -into one large parallel network filesystem. 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. +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 resource agents which plug glusterd into Open Cluster Framework (OCF) compliant cluster resource managers, @@ -744,21 +601,19 @@ like Pacemaker. %package server Summary: Distributed file-system server Requires: %{name} = %{version}-%{release} -Requires: libglusterfs0%{?_isa} = %{version}-%{release} -Requires: libgfchangelog0%{?_isa} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} -%if ( 0%{?fedora} && 0%{?fedora} >= 30 || ( 0%{?rhel} && 0%{?rhel} >= 8 ) ) -# Requires: %%{name}-selinux >= 0.1.0-2 -%endif # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse Requires: %{name}-fuse = %{version}-%{release} # self-heal daemon, rebalance, nfs-server etc. are actually clients -Requires: libgfapi0%{?_isa} = %{version}-%{release} +Requires: %{name}-api = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} # lvm2 for snapshot, and nfs-utils and rpcbind/portmap for gnfs server Requires: psmisc Requires: lvm2 %{?systemd_requires} +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig %if (0%{?_with_firewalld:1}) # we install firewalld rules, so we need to have the directory owned %if ( 0%{!?rhel} ) @@ -799,6 +654,7 @@ This package provides the glusterfs server daemon. %package thin-arbiter Summary: GlusterFS thin-arbiter module Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release} %description thin-arbiter @@ -809,32 +665,18 @@ functionality, and also few other scripts required for setup. This package provides the glusterfs thin-arbiter translator. %prep -%setup -q -n %{name}-%{version}%{?prereltag} -%ifarch x86_64 aarch64 -%patch 0001 -p1 -%endif -%patch 0002 -p1 -%patch 0003 -p1 +%setup -q -n %{name}-%{version}%{?dev} %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \; done %endif - -# Create a sysusers.d config file -cat >glusterfs.sysusers.conf < VERSION -cat VERSION ./autogen.sh && %configure \ %{?_with_asan} \ %{?_with_cmocka} \ @@ -849,16 +691,11 @@ cat VERSION %{?_without_fusermount} \ %{?_without_georeplication} \ %{?_without_ocf} \ + %{?_without_rdma} \ %{?_without_server} \ + %{?_without_syslog} \ %{?_with_ipv6default} \ - %{?_without_linux_io_uring} \ - %{?_without_libtirpc} \ - %{?_without_tcmalloc} - -# remove option mold doesn't recognize -for file in $(find . -type f -name Makefile -print); do -sed -i -e 's/-Wl,-dT.*$//' $file -done + %{?_without_libtirpc} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -867,14 +704,15 @@ sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool -%make_build V=1 GCC_COLORS= +gcc -v +make %{?_smp_mflags} V=1 %check -%make_build check +make check %install rm -rf %{buildroot} -%make_install +make install DESTDIR=%{buildroot} %if ( 0%{!?_without_server:1} ) %if ( 0%{_for_fedora_koji_builds} ) %if ( 0%{!?_without_server:1} ) @@ -911,7 +749,7 @@ head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog cat << EOM >> ChangeLog More commit messages for this ChangeLog can be found at -https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prereltag} +https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?dev} EOM # Remove benchmarking and other unpackaged files @@ -940,15 +778,6 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha install -D -p -m 0644 extras/glusterfs-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs -# ganesha ghosts -%if ( 0%{!?_without_server:1} ) -mkdir -p %{buildroot}%{_sysconfdir}/ganesha -touch %{buildroot}%{_sysconfdir}/ganesha/ganesha-ha.conf -mkdir -p %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ -touch %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha.conf -touch %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha-ha.conf -%endif - %if ( 0%{!?_without_georeplication:1} ) # geo-rep ghosts mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication @@ -982,18 +811,12 @@ touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs %endif -# Fix installation paths -mv -v %{buildroot}/sbin/* %{buildroot}%{_sbindir}/ - -%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null) -%if "%{bashcompdir}" == "" -%global bashcompdir ${sysconfdir}/bash_completion.d -%endif +## Install bash completion for cli +install -p -m 0755 -D extras/command-completion/gluster.bash \ + %{buildroot}%{_sysconfdir}/bash_completion.d/gluster ##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order - -install -m0644 -D glusterfs.sysusers.conf %{buildroot}%{_sysusersdir}/glusterfs.conf +## All %%post should be placed here and keep them sorted ## %post %{?ldconfig} @@ -1004,18 +827,8 @@ install -m0644 -D glusterfs.sysusers.conf %{buildroot}%{_sysusersdir}/glusterfs. %endif exit 0 -# post and postun scriptlets for libs -%ldconfig_scriptlets libglusterfs0 - -%ldconfig_scriptlets libgfchangelog0 - -%ldconfig_scriptlets libgfapi0 - -%ldconfig_scriptlets libgfrpc0 - -%ldconfig_scriptlets libgfxdr0 - -%ldconfig_scriptlets libgfglusterd0 +# post and postun scriptlets for api +%ldconfig_scriptlets api %if ( 0%{!?_without_events:1} ) %post events @@ -1023,24 +836,8 @@ exit 0 exit 0 %endif -%if ( 0%{!?_without_server:1} ) -%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) -%post ganesha -# first install -if [ $1 -eq 1 ]; then - %selinux_set_booleans ganesha_use_fusefs=1 -fi -exit 0 -%endif -%endif - %if ( 0%{!?_without_georeplication:1} ) %post geo-replication -%if ( 0%{?rhel} && 0%{?rhel} >= 8 ) -if [ $1 -eq 1 ]; then - %selinux_set_booleans %{selinuxbooleans} -fi -%endif if [ $1 -ge 1 ]; then %systemd_postun_with_restart glusterd fi @@ -1125,11 +922,15 @@ exit 0 %endif ##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order +## All %%pre should be placed here and keep them sorted ## %pre +getent group gluster > /dev/null || groupadd -r gluster +getent passwd gluster > /dev/null || useradd -r -g gluster -d %{_rundir}/gluster -s /sbin/nologin -c "GlusterFS daemons" gluster +exit 0 + ##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order +## All %%preun should be placed here and keep them sorted ## %if ( 0%{!?_without_events:1} ) %preun events @@ -1172,7 +973,7 @@ if [ $1 -eq 0 ]; then fi ##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order +## All %%postun should be placed here and keep them sorted ## %postun %{?ldconfig} @@ -1192,41 +993,8 @@ exit 0 exit 0 %endif -%if ( 0%{!?_without_server:1} ) -%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) -%postun ganesha -if [ $1 -eq 0 ]; then - # use the value of ganesha_use_fusefs from before glusterfs-ganesha was installed - %selinux_unset_booleans ganesha_use_fusefs=1 -fi -exit 0 -%endif -%endif - -%if ( 0%{!?_without_georeplication:1} ) -%postun geo-replication -%if ( 0%{?rhel} && 0%{?rhel} >= 8 ) -if [ $1 -eq 0 ]; then - %selinux_unset_booleans %{selinuxbooleans} -fi -exit 0 -%endif -%endif - ##----------------------------------------------------------------------------- -## All trriggerun should be placed here in alphabetical order -## -%if ( 0%{!?_without_server:1} ) -%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) -# ensure ganesha_use_fusefs is on in case of policy mode switch (eg. mls->targeted) -%triggerun ganesha -- selinux-policy-targeted -semanage boolean -m ganesha_use_fusefs --on -S targeted -exit 0 -%endif -%endif - -##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order +## All %%files should be placed here and keep them sorted by groups ## %files %{!?_licensedir:%global license %%doc} @@ -1237,6 +1005,9 @@ exit 0 %exclude %{_mandir}/man8/gluster.8* %endif %dir %{_localstatedir}/log/glusterfs +%if ( 0%{!?_without_rdma:1} ) +%exclude %{_libdir}/glusterfs/%{version}%{?dev}/rpc-transport/rdma* +%endif %if ( 0%{!?_without_server:1} ) %dir %{_datadir}/glusterfs %dir %{_datadir}/glusterfs/scripts @@ -1245,160 +1016,128 @@ exit 0 %endif # xlators that are needed on the client- and on the server-side %dir %{_libdir}/glusterfs -%dir %{_libdir}/glusterfs/%{version}%{?prereltag} -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/auth - %{_libdir}/glusterfs/%{version}%{?prereltag}/auth/addr.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/auth/login.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport - %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/socket.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/error-gen.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/delay-gen.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/utime.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/namespace.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-client.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/worm.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cloudsync.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/meta.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-cache.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-threads.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/md-cache.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/open-behind.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/quick-read.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/read-ahead.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/readdir-ahead.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/nl-cache.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so +%dir %{_libdir}/glusterfs/%{version}%{?dev} +%dir %{_libdir}/glusterfs/%{version}%{?dev}/auth + %{_libdir}/glusterfs/%{version}%{?dev}/auth/addr.so + %{_libdir}/glusterfs/%{version}%{?dev}/auth/login.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/rpc-transport + %{_libdir}/glusterfs/%{version}%{?dev}/rpc-transport/socket.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug/error-gen.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug/delay-gen.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug/io-stats.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug/sink.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/debug/trace.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/access-control.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/barrier.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/cdc.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/changelog.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/utime.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/gfid-access.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/namespace.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/read-only.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/shard.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/snapview-client.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/worm.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/cloudsync.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/meta.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/io-cache.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/io-threads.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/md-cache.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/open-behind.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/quick-read.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/read-ahead.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/readdir-ahead.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/stat-prefetch.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/write-behind.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/performance/nl-cache.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/system + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/system/posix-acl.so %dir %attr(0775,gluster,gluster) %{_rundir}/gluster %dir %attr(0775,gluster,gluster) %{_rundir}/gluster/metrics -%if 0%{?_tmpfilesdir:1} +%if 0%{?_tmpfilesdir:1} && 0%{!?_without_server:1} %{_tmpfilesdir}/gluster.conf %endif -%if ( 0%{?_without_server:1} ) -#exclude ganesha related files -%exclude %{_sysconfdir}/ganesha/ganesha-ha.conf.sample -%exclude %{_libexecdir}/ganesha/* -%exclude %{_prefix}/lib/ocf/resource.d/heartbeat/* -%endif -%{_sysusersdir}/glusterfs.conf +%files api +%exclude %{_libdir}/*.so +# libgfapi files +%{_libdir}/libgfapi.* +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mount + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mount/api.so + +%files api-devel +%{_libdir}/pkgconfig/glusterfs-api.pc +%{_libdir}/libgfapi.so +%dir %{_includedir}/glusterfs +%dir %{_includedir}/glusterfs/api + %{_includedir}/glusterfs/api/* %files cli %{_sbindir}/gluster %{_mandir}/man8/gluster.8* -%{bash_completions_dir}/gluster.bash +%{_sysconfdir}/bash_completion.d/gluster %files client-xlators -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/cluster + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/cluster/*.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/protocol +%{_libdir}/glusterfs/%{version}%{?dev}/xlator/protocol/client.so %files cloudsync-plugins -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins - %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsynccvlt.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/cloudsync-plugins + %{_libdir}/glusterfs/%{version}%{?dev}/cloudsync-plugins/cloudsyncs3.so + %{_libdir}/glusterfs/%{version}%{?dev}/cloudsync-plugins/cloudsynccvlt.so -%files -n libglusterfs-devel +%files devel %dir %{_includedir}/glusterfs - %{_includedir}/glusterfs/*.h - %{_includedir}/glusterfs/server/*.h -%{_libdir}/libglusterfs.so - -%files -n libgfapi-devel -%dir %{_includedir}/glusterfs/api - %{_includedir}/glusterfs/api/*.h -%{_libdir}/libgfapi.so -%{_libdir}/pkgconfig/glusterfs-api.pc - - -%files -n libgfchangelog-devel -%dir %{_includedir}/glusterfs/gfchangelog - %{_includedir}/glusterfs/gfchangelog/*.h -%{_libdir}/libgfchangelog.so + %{_includedir}/glusterfs/* +%exclude %{_includedir}/glusterfs/api +%exclude %{_libdir}/libgfapi.so +%{_libdir}/*.so %{_libdir}/pkgconfig/libgfchangelog.pc -%files -n libgfrpc-devel -%dir %{_includedir}/glusterfs/rpc - %{_includedir}/glusterfs/rpc/*.h -%{_libdir}/libgfrpc.so - -%files -n libgfxdr-devel -%{_libdir}/libgfxdr.so - -# Events -%if ( 0%{!?_without_events:1} ) -%files events -%config(noreplace) %{_sysconfdir}/glusterfs/eventsconfig.json -%dir %{_sharedstatedir}/glusterd -%dir %{_sharedstatedir}/glusterd/events -%dir %{_libexecdir}/glusterfs -%dir %{_libexecdir}/glusterfs/gfevents - %{_libexecdir}/glusterfs/gfevents/* - %{_libexecdir}/glusterfs/peer_eventsapi.py* -%{_sbindir}/glustereventsd -%{_sbindir}/gluster-eventsapi -%{_datadir}/glusterfs/scripts/eventsdash.py* -%{_unitdir}/glustereventsd.service -%endif - %files extra-xlators -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground/template.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/quiesce.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/playground + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/playground/template.so %files fuse # glusterfs is a symlink to glusterfsd, -server depends on -fuse. %{_sbindir}/glusterfs %{_sbindir}/glusterfsd %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so -%{_sbindir}/mount.glusterfs +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mount + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mount/fuse.so +/sbin/mount.glusterfs %if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs %endif %if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} ) %files gnfs -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/* +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/nfs + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/nfs/* %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/nfs-server.vol %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %endif +%files thin-arbiter +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/thin-arbiter.so +%dir %{_datadir}/glusterfs/scripts + %{_datadir}/glusterfs/scripts/setup-thin-arbiter.sh +%config %{_sysconfdir}/glusterfs/thin-arbiter.vol + +%{_unitdir}/gluster-ta-volume.service -%if ( 0%{!?_without_server:1} ) -%files ganesha -%dir %{_libexecdir}/ganesha -%{_sysconfdir}/ganesha/ganesha-ha.conf.sample -%{_libexecdir}/ganesha/* -%{_prefix}/lib/ocf/resource.d/heartbeat/* -%{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh -%ghost %attr(0644,-,-) %config(noreplace) %{_sysconfdir}/ganesha/ganesha-ha.conf -%ghost %dir %attr(0755,-,-) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha -%ghost %attr(0644,-,-) %config(noreplace) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha.conf -%ghost %attr(0644,-,-) %config(noreplace) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha-ha.conf -%endif %if ( 0%{!?_without_georeplication:1} ) %files geo-replication @@ -1411,13 +1150,6 @@ exit 0 %dir %{_libexecdir}/glusterfs/python/syncdaemon %{_libexecdir}/glusterfs/gsyncd %{_libexecdir}/glusterfs/python/syncdaemon/* -%dir %{_libexecdir}/glusterfs/scripts - %{_libexecdir}/glusterfs/scripts/get-gfid.sh - %{_libexecdir}/glusterfs/scripts/secondary-upgrade.sh - %{_libexecdir}/glusterfs/scripts/gsync-upgrade.sh - %{_libexecdir}/glusterfs/scripts/generate-gfid-file.sh - %{_libexecdir}/glusterfs/scripts/gsync-sync-gfid - %{_libexecdir}/glusterfs/scripts/schedule_georep.py* %{_libexecdir}/glusterfs/gverify.sh %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh %{_libexecdir}/glusterfs/peer_gsec_create @@ -1434,24 +1166,21 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre + +%dir %{_datadir}/glusterfs +%dir %{_datadir}/glusterfs/scripts + %{_datadir}/glusterfs/scripts/get-gfid.sh + %{_datadir}/glusterfs/scripts/slave-upgrade.sh + %{_datadir}/glusterfs/scripts/gsync-upgrade.sh + %{_datadir}/glusterfs/scripts/generate-gfid-file.sh + %{_datadir}/glusterfs/scripts/gsync-sync-gfid + %{_datadir}/glusterfs/scripts/schedule_georep.py* %endif -%files -n libglusterfs0 -%{_libdir}/libglusterfs.so.* - -%files -n libgfapi0 -%{_libdir}/libgfapi.so.* -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api.so - -%files -n libgfchangelog0 -%{_libdir}/libgfchangelog.so.* - -%files -n libgfrpc0 -%{_libdir}/libgfrpc.so.* - -%files -n libgfxdr0 -%{_libdir}/libgfxdr.so.* +%files libs +%{_libdir}/*.so.* +%exclude %{_libdir}/libgfapi.* +# libgfdb is only needed server-side %files -n python%{_pythonver}-gluster # introducing glusterfs module in site packages. @@ -1467,6 +1196,12 @@ exit 0 %{python2_sitelib}/gluster/cliutils %endif +%if ( 0%{!?_without_rdma:1} ) +%files rdma +%dir %{_libdir}/glusterfs/%{version}%{?dev}/rpc-transport + %{_libdir}/glusterfs/%{version}%{?dev}/rpc-transport/rdma* +%endif + %if ( ! 0%{_for_fedora_koji_builds} ) %files regression-tests %dir %{_prefix}/share/glusterfs @@ -1492,7 +1227,7 @@ exit 0 %exclude %{_sharedstatedir}/glusterd/nfs/nfs-server.vol %exclude %{_sharedstatedir}/glusterd/nfs/run/nfs.pid %if ( 0%{?_with_gnfs:1} ) -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/* +%exclude %{_libdir}/glusterfs/%{version}%{?dev}/xlator/nfs/* %endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %if ( 0%{_for_fedora_koji_builds} ) @@ -1508,7 +1243,7 @@ exit 0 # binaries %{_sbindir}/glusterd -%{_libexecdir}/glusterfs/glfsheal +%{_sbindir}/glfsheal %{_sbindir}/gf_attach %{_sbindir}/gluster-setgfid2path # {_sbindir}/glusterfsd is the actual binary, but glusterfs (client) is a @@ -1518,28 +1253,27 @@ exit 0 # Manpages %{_mandir}/man8/gluster-setgfid2path.8* -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/arbiter.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bit-rot.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bitrot-stub.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/sdfs.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/index.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix* - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-server.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/simple-quota.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota* - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/selinux.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/upcall.so - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/leases.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt/glusterd.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server.so -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/posix.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/arbiter.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/bit-rot.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/bitrot-stub.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/sdfs.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/index.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/locks.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/posix* + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/snapview-server.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/marker.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/quota* + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/selinux.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/trash.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/upcall.so + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/features/leases.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mgmt + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/mgmt/glusterd.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/protocol + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/protocol/server.so +%dir %{_libdir}/glusterfs/%{version}%{?dev}/xlator/storage + %{_libdir}/glusterfs/%{version}%{?dev}/xlator/storage/posix.so # snap_scheduler %{_sbindir}/snap_scheduler.py @@ -1632,216 +1366,34 @@ exit 0 # end of server files %endif -%files thin-arbiter -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator -%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features - %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/thin-arbiter.so -%dir %{_datadir}/glusterfs/scripts - %{_datadir}/glusterfs/scripts/setup-thin-arbiter.sh -%config %{_sysconfdir}/glusterfs/thin-arbiter.vol -%{_unitdir}/gluster-ta-volume.service +# Events +%if ( 0%{!?_without_events:1} ) +%files events +%config(noreplace) %{_sysconfdir}/glusterfs/eventsconfig.json +%dir %{_sharedstatedir}/glusterd +%dir %{_sharedstatedir}/glusterd/events +%dir %{_libexecdir}/glusterfs +%dir %{_libexecdir}/glusterfs/gfevents + %{_libexecdir}/glusterfs/gfevents/* + %{_libexecdir}/glusterfs/peer_eventsapi.py* +%{_sbindir}/glustereventsd +%{_sbindir}/gluster-eventsapi +%{_datadir}/glusterfs/scripts/eventsdash.py* +%{_unitdir}/glustereventsd.service +%endif %changelog -* Fri Sep 19 2025 Python Maint - 11.2-4 -- Rebuilt for Python 3.14.0rc3 bytecode +* Tue Dec 1 2020 Kaleb S. KEITHLEY - 7.9-1 +- 7.9 GA -* Fri Aug 15 2025 Python Maint - 11.2-3 -- Rebuilt for Python 3.14.0rc2 bytecode +* Mon Sep 28 2020 Kaleb S. KEITHLEY - 7.8-1 +- 7.8 GA -* Wed Jul 23 2025 Fedora Release Engineering - 11.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild +* Wed Jul 22 2020 Kaleb S. KEITHLEY - 7.7-2 +- 7.7, remove contrib/rpc/xdr_sizeof.c -* Wed Jul 02 2025 Benson Muite - 11.2-1 -- Update to latest release - -* Tue Jun 03 2025 Python Maint - 11.1-10 -- Rebuilt for Python 3.14 - -* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 11.1-9 -- Add sysusers.d config file to allow rpm to create users/groups automatically - -* Thu Jan 16 2025 Fedora Release Engineering - 11.1-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Sun Jan 12 2025 Zbigniew Jędrzejewski-Szmek - 11.1-7 -- Rebuilt for the bin-sbin merge (2nd attempt) - -* Thu Jul 18 2024 Fedora Release Engineering - 11.1-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Tue Jul 09 2024 Zbigniew Jędrzejewski-Szmek - 11.1-5 -- Rebuilt for the bin-sbin merge - -* Fri Jun 07 2024 Python Maint - 11.1-4 -- Rebuilt for Python 3.13 - -* Wed Jan 24 2024 Fedora Release Engineering - 11.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Kaleb S. KEITHLEY - 11.1-2 -- rebuild with gcc-14 - -* Mon Nov 6 2023 Kaleb S. KEITHLEY - 11.1-1 -- glusterfs 11.1 GA - -* Thu Oct 5 2023 Kaleb S. KEITHLEY - 11.0-6 -- glusterfs 11, build in side tag f40-build-side-74974 - -* Tue Aug 22 2023 Kaleb S. KEITHLEY - 11.0-5 -- glusterfs 11, /usr/lib/ocf/resource-agents.d -> resource-agents - rhbz#2229910 - -* Wed Jul 19 2023 Fedora Release Engineering - 11.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jun 15 2023 Python Maint - 11.0-3 -- Rebuilt for Python 3.12 - -* Thu May 4 2023 Kaleb S. KEITHLEY - 11.0-2 -- glusterfs 11, remove unnecessary BR for ldconfig, i.e. glibc, also - rhbz#1731689 - -* Fri Feb 10 2023 Adam Williamson - 11.0-1 -- Fix a mistake in the libglusterd0 obsolete - -* Tue Feb 7 2023 Kaleb S. KEITHLEY - 11.0-0 -- glusterfs 11 GA - -* Fri Nov 11 2022 Kaleb S. KEITHLEY -- SPDX migration - -* Tue Sep 20 2022 Kaleb S. KEITHLEY - 10.3-1 -- 10.3 GA - -* Thu Jul 21 2022 Fedora Release Engineering - 10.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 13 2022 Python Maint - 10.2-2 -- Rebuilt for Python 3.11 - -* Fri May 13 2022 Kaleb S. KEITHLEY - 10.2-1 -- 10.2 GA - -* Mon Jan 31 2022 Kaleb S. KEITHLEY - 10.1-4 -- 10.1, w/ modern linker, this time for real - -* Wed Jan 26 2022 Kaleb S. KEITHLEY - 10.1-3 -- 10.1, w/ modern linker (mold) - -* Thu Jan 20 2022 Fedora Release Engineering - 10.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Jan 19 2022 Kaleb S. KEITHLEY - 10.1-1 -- 10.1 GA - -* Sat Jan 15 2022 Kaleb S. KEITHLEY - 10.0-2 -- rebuild with gcc-12 - -* Tue Nov 2 2021 Kaleb S. KEITHLEY - 10.0-1 -- 10.0 GA - -* Fri Oct 29 2021 Kaleb S. KEITHLEY - 10.0-0.3rc0 -- 10.0 RC0, without_tcmalloc, rhbz#2018439 - -* Thu Oct 28 2021 Kaleb S. KEITHLEY - 10.0-0.2rc0 -- 10.0 RC0, armv7hl - -* Tue Oct 19 2021 Kaleb S. KEITHLEY - 10.0-0.1rc0 -- 10.0 RC0 - -* Mon Oct 4 2021 Kaleb S. KEITHLEY - 9.4-1 -- 9.4 GA - -* Tue Sep 14 2021 Sahana Prasad - 9.3-3 -- Rebuilt with OpenSSL 3.0.0 - -* Thu Jul 22 2021 Fedora Release Engineering - 9.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jun 29 2021 Kaleb S. KEITHLEY - 9.3-1 -- 9.3 GA - -* Tue Jun 22 2021 Kaleb S. KEITHLEY - 9.2-5 -- Rebuilt for userspace-rcu-0.13 again - -* Fri Jun 11 2021 Kaleb S. KEITHLEY - 9.2-4 -- https://src.fedoraproject.org/rpms/glusterfs/pull-request/7 - -* Tue Jun 8 2021 Kaleb S. KEITHLEY - 9.2-3 -- Rebuilt for userspace-rcu-0.13 - -* Fri Jun 04 2021 Python Maint - 9.2-2 -- Rebuilt for Python 3.10 - -* Sun May 9 2021 Kaleb S. KEITHLEY - 9.2-1 -- 9.2 GA - -* Wed Apr 14 2021 Richard W.M. Jones - 9.1-2 -- Rebuild for updated liburing. - -* Tue Mar 30 2021 Kaleb S. KEITHLEY - 9.1-1 -- 9.1 GA - -* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 9.0-4 -- Rebuilt for updated systemd-rpm-macros - See https://pagure.io/fesco/issue/2583. - -* Wed Jan 27 2021 Kaleb S. KEITHLEY - 9.0-3 -- 9.0, w/ liburing - -* Tue Jan 26 2021 Fedora Release Engineering - 9.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Tue Jan 19 2021 Kaleb S. KEITHLEY - 9.0-1 -- 9.0 GA - -* Thu Jan 7 2021 Kaleb S. KEITHLEY - 9.0-0.2 -- 9.0 RC0, fuse3 - -* Wed Jan 6 2021 Kaleb S. KEITHLEY - 9.0-0.1 -- 9.0 RC0 - -* Tue Dec 1 2020 Kaleb S. KEITHLEY - 8.3-1 -- 8.3 GA - -* Thu Nov 5 2020 Kaleb S. KEITHLEY - 8.2-2 -- 8.2, rdma - -* Thu Sep 17 2020 Kaleb S. KEITHLEY - 8.2-1 -- 8.2 GA - -* Tue Aug 25 2020 Kaleb S. KEITHLEY - 8.1-1 -- 8.1 GA - -* Mon Jul 27 2020 Fedora Release Engineering - 8.0-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jul 22 2020 Kaleb S. KEITHLEY - 8.0-5 -- eliminate contrib/sunrpc/xdr_sizeof.c - -* Mon Jul 20 2020 Kaleb S. KEITHLEY - 8.0-4 -- use %make_install macro - -* Wed Jul 8 2020 Kaleb S. KEITHLEY - 8.0-3 -- thin-arbiter, w/o libglusterfs0 - -* Tue Jul 7 2020 Kaleb S. KEITHLEY - 8.0-2 -- 8.0, thin-arbiter - -* Mon Jul 6 2020 Kaleb S. KEITHLEY - 8.0-1 -- 8.0 GA - -* Sat Jul 4 2020 Kaleb S. KEITHLEY - 8.0-0.3rc0 -- 8.0 fix symbol versions, enable LTO - -* Wed Jul 1 2020 Jeff Law - 8.0-0.2rc0 -- Disable LTO - -* Mon Jun 1 2020 Kaleb S. KEITHLEY - 8.0-0.1rc0 -- 8.0 RC0 - -* Tue May 26 2020 Miro Hrončok - 7.6-2 -- Rebuilt for Python 3.9 +* Tue Jul 21 2020 Kaleb S. KEITHLEY - 7.7-1 +- 7.7 GA * Mon May 18 2020 Kaleb S. KEITHLEY - 7.6-1 - 7.6 GA diff --git a/python.patch b/python.patch new file mode 100644 index 0000000..b8d8730 --- /dev/null +++ b/python.patch @@ -0,0 +1,32 @@ +--- glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-c.py.orig 2018-07-11 09:40:35.166390285 -0400 ++++ glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-c.py 2018-07-11 09:41:00.743390285 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + + import os + import sys +--- glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-h.py.orig 2018-07-11 09:40:49.035390285 -0400 ++++ glusterfs-4.1.1/xlators/features/utime/src/utime-gen-fops-h.py 2018-07-11 09:41:06.015390285 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + + import os + import sys +--- glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-c.py.orig 2018-07-11 09:41:30.646390285 -0400 ++++ glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-c.py 2018-07-11 09:41:53.033390285 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + + from __future__ import print_function + import os +--- glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-h.py.orig 2018-07-11 09:41:38.198390285 -0400 ++++ glusterfs-4.1.1/xlators/features/cloudsync/src/cloudsync-fops-h.py 2018-07-11 09:41:55.423390285 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + + from __future__ import print_function + import os diff --git a/sources b/sources index 167f189..5f438c0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-11.2.tar.gz) = 6ac463047c5b1fee1d00ca9d6c16169762ed31c7d3b8dfb341bb8a90b83c15fdd9d48ebbe6cf79eee885f764cfa5391f4107837764c0a182eff1b51bede63d48 +SHA512 (glusterfs-7.9.tar.gz) = 5683bf2ff3550b8286e27b70981cb176c445e432624db79f065eb5928bc4afdf009f54f3b1d5abde1f6d2c532c9c4820860685aea0d0f709dc78fcf35bfea688