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/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/0002-rpc-rpc-lib-src-Makefile.am.patch b/0002-rpc-rpc-lib-src-Makefile.am.patch new file mode 100644 index 0000000..4b167fc --- /dev/null +++ b/0002-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/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..145d5fb 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -4,10 +4,10 @@ %global _for_fedora_koji_builds 1 # uncomment and add '%' to use the %%dev for pre-releases -# %%global prereltag rc0 +# %%global dev rc0 ##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order +## All argument definitions should be placed here and keep them sorted ## # asan @@ -54,11 +54,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,15 +65,6 @@ %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 @@ -122,15 +108,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 +137,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 +177,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: 8.6 +Release: 1%{?dev:%{dev}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.26 +Release: 0.@PACKAGE_RELEASE@%{?dist}.4 %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 +200,17 @@ 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 +Patch0002: 0002-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} %{?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 +219,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 +248,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} @@ -303,21 +277,8 @@ and client framework. %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: libglusterd0%{?_isa} = %{version}-%{release} %description cli GlusterFS is a distributed file-system capable of scaling to several @@ -404,7 +365,7 @@ for GlusterFS. %package fuse Summary: Fuse client -BuildRequires: fuse3-devel +BuildRequires: fuse-devel Requires: attr Requires: psmisc @@ -423,7 +384,7 @@ 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. +glusterfsd and glusterfs binaries. %if ( 0%{!?_without_server:1} ) %package ganesha @@ -477,18 +438,7 @@ 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 @@ -522,12 +472,12 @@ This package provides the glusterfs legacy gNFS server xlator %package -n libglusterfs0 Summary: GlusterFS libglusterfs library +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig 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} %description -n libglusterfs0 GlusterFS is a distributed file-system capable of scaling to several @@ -680,6 +630,21 @@ Much of the code in GlusterFS is in user space and easily manageable. This package provides libgfxdr.so. +%package -n libglusterd0 +Summary: GlusterFS libglusterd library +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-libs <= %{version}-%{release} + +%description -n libglusterd0 +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 libglusterd library + %package -n python%{_pythonver}-gluster Summary: GlusterFS python library Requires: python%{_pythonver} @@ -720,12 +685,12 @@ 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 @@ -747,9 +712,6 @@ Requires: %{name} = %{version}-%{release} Requires: libglusterfs0%{?_isa} = %{version}-%{release} Requires: libgfchangelog0%{?_isa} = %{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 @@ -759,6 +721,8 @@ Requires: %{name}-client-xlators = %{version}-%{release} 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} ) @@ -809,12 +773,8 @@ 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} +%patch0002 -p1 %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do @@ -822,19 +782,8 @@ 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} \ @@ -850,15 +799,9 @@ cat VERSION %{?_without_georeplication} \ %{?_without_ocf} \ %{?_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,10 +810,11 @@ 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} @@ -911,7 +855,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 @@ -982,18 +926,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} @@ -1026,21 +964,13 @@ exit 0 %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 +semanage boolean -m ganesha_use_fusefs --on 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 +1055,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 +1106,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} @@ -1195,38 +1129,35 @@ exit 0 %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 +semanage boolean -m ganesha_use_fusefs --off exit 0 %endif %endif ##----------------------------------------------------------------------------- -## All trriggerun should be placed here in alphabetical order +## All %%trigger should be placed here and keep them sorted ## %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 +%trigger ganesha -- selinux-policy-targeted +semanage boolean -m ganesha_use_fusefs --on exit 0 %endif %endif ##----------------------------------------------------------------------------- -## All package definitions should be placed here in alphabetical order +## All %%triggerun should be placed here and keep them sorted +## +%if ( 0%{!?_without_server:1} ) +%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) +%triggerun ganesha -- selinux-policy-targeted +semanage boolean -m ganesha_use_fusefs --off +exit 0 +%endif +%endif + +##----------------------------------------------------------------------------- +## All %%files should be placed here and keep them sorted by groups ## %files %{!?_licensedir:%global license %%doc} @@ -1245,49 +1176,49 @@ 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 @@ -1297,23 +1228,22 @@ exit 0 %exclude %{_libexecdir}/ganesha/* %exclude %{_prefix}/lib/ocf/resource.d/heartbeat/* %endif -%{_sysusersdir}/glusterfs.conf %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 %dir %{_includedir}/glusterfs @@ -1359,27 +1289,27 @@ exit 0 %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 @@ -1413,7 +1343,7 @@ exit 0 %{_libexecdir}/glusterfs/python/syncdaemon/* %dir %{_libexecdir}/glusterfs/scripts %{_libexecdir}/glusterfs/scripts/get-gfid.sh - %{_libexecdir}/glusterfs/scripts/secondary-upgrade.sh + %{_libexecdir}/glusterfs/scripts/slave-upgrade.sh %{_libexecdir}/glusterfs/scripts/gsync-upgrade.sh %{_libexecdir}/glusterfs/scripts/generate-gfid-file.sh %{_libexecdir}/glusterfs/scripts/gsync-sync-gfid @@ -1453,6 +1383,10 @@ exit 0 %files -n libgfxdr0 %{_libdir}/libgfxdr.so.* +%files -n libglusterd0 +%{_libdir}/libglusterd.so.* +%exclude %{_libdir}/libglusterd.so + %files -n python%{_pythonver}-gluster # introducing glusterfs module in site packages. # so that all other gluster submodules can reside in the same namespace. @@ -1492,7 +1426,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} ) @@ -1518,28 +1452,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 @@ -1633,173 +1566,23 @@ exit 0 %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 %{_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 %changelog -* Fri Sep 19 2025 Python Maint - 11.2-4 -- Rebuilt for Python 3.14.0rc3 bytecode +* Fri Aug 20 2021 Kaleb S. KEITHLEY - 8.6-1 +- 8.6 GA -* Fri Aug 15 2025 Python Maint - 11.2-3 -- Rebuilt for Python 3.14.0rc2 bytecode +* Sun May 9 2021 Kaleb S. KEITHLEY - 8.5-1 +- 8.5 GA -* Wed Jul 23 2025 Fedora Release Engineering - 11.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* 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 +* Wed Feb 24 2021 Kaleb S. KEITHLEY - 8.4-1 +- 8.4 GA * Tue Dec 1 2020 Kaleb S. KEITHLEY - 8.3-1 - 8.3 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..5c88b6c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-11.2.tar.gz) = 6ac463047c5b1fee1d00ca9d6c16169762ed31c7d3b8dfb341bb8a90b83c15fdd9d48ebbe6cf79eee885f764cfa5391f4107837764c0a182eff1b51bede63d48 +SHA512 (glusterfs-8.6.tar.gz) = 8526b2e12d9141012fab326814074f3e222293f47a25e1cdd150c222262c590be0582b6d2566d76cdc2abd08606c0b4acc325640068b1de1ea214bb00ff4251e