diff --git a/0001-configure.ac.patch b/0001-configure.ac.patch index 67b2e73..854e3fb 100644 --- a/0001-configure.ac.patch +++ b/0001-configure.ac.patch @@ -1,7 +1,7 @@ ---- 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 +--- glusterfs-10.1/configure.ac.orig 2022-01-27 11:44:31.235010060 -0500 ++++ glusterfs-10.1/configure.ac 2022-01-27 11:46:36.601774148 -0500 +@@ -1280,7 +1280,7 @@ + AC_SUBST(GF_DISTRIBUTION) GF_HOST_OS="" -GF_LDFLAGS="${GF_LDFLAGS} -rdynamic" 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/glusterfs.spec b/glusterfs.spec index c125810..576c0b4 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -56,9 +56,14 @@ # 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 +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --disable-linux-io_uring %{?_without_linux_io_uring:%global _without_linux_io_uring --disable-linux-io_uring} +# Disable linux-io_uring on unsupported distros. +%if ( 0%{?fedora} && 0%{?fedora} <= 32 ) || ( 0%{?rhel} && 0%{?rhel} <= 7 ) +%global _without_linux_io_uring --disable-linux-io_uring +%endif + # 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 @@ -73,7 +78,7 @@ # 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} +%{?_without_tcmalloc:%global _without_libtcmalloc --without-tcmalloc} %ifnarch x86_64 %global _without_tcmalloc --without-tcmalloc @@ -195,17 +200,17 @@ Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 11.2 -Release: 4%{?prereltag:%{prereltag}}%{?dist} +Version: 10.4 +Release: 1%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.26 +Release: 0.@PACKAGE_RELEASE@%{?dist}.13 %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://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig Source7: glusterfsd.service @@ -214,9 +219,8 @@ Source8: glusterfsd.init 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 +Requires(pre): shadow-utils BuildRequires: systemd %if 0%{!?_without_tcmalloc:1} @@ -227,6 +231,8 @@ 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 @@ -303,21 +309,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 @@ -522,12 +515,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 +673,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 +728,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 @@ -759,6 +767,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} ) @@ -811,10 +821,8 @@ This package provides the glusterfs thin-arbiter translator. %prep %setup -q -n %{name}-%{version}%{?prereltag} %ifarch x86_64 aarch64 -%patch 0001 -p1 +%patch0001 -p1 %endif -%patch 0002 -p1 -%patch 0003 -p1 %if ( ! %{_usepython3} ) echo "fixing python shebangs..." for f in api events extras geo-replication libglusterfs tools xlators; do @@ -822,19 +830,12 @@ 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} \ @@ -982,18 +983,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 ## %post %{?ldconfig} @@ -1026,10 +1021,7 @@ 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 @@ -1037,9 +1029,7 @@ exit 0 %if ( 0%{!?_without_georeplication:1} ) %post geo-replication %if ( 0%{?rhel} && 0%{?rhel} >= 8 ) -if [ $1 -eq 1 ]; then - %selinux_set_booleans %{selinuxbooleans} -fi +%selinux_set_booleans %{selinuxbooleans} %endif if [ $1 -ge 1 ]; then %systemd_postun_with_restart glusterd @@ -1128,6 +1118,10 @@ exit 0 ## All package definitions should be placed here in alphabetical order ## %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 ## @@ -1195,32 +1189,29 @@ 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 package definitions should be placed here in alphabetical order +## +%if ( 0%{!?_without_server:1} ) +%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) +%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 ## %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 +semanage boolean -m ganesha_use_fusefs --off exit 0 %endif %endif @@ -1287,7 +1278,7 @@ exit 0 %{_libdir}/glusterfs/%{version}%{?prereltag}/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,12 +1288,11 @@ 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 @@ -1371,7 +1361,7 @@ exit 0 %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so -%{_sbindir}/mount.glusterfs +/sbin/mount.glusterfs %if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs %endif @@ -1453,6 +1443,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. @@ -1528,7 +1522,6 @@ exit 0 %{_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 @@ -1642,73 +1635,8 @@ exit 0 %{_unitdir}/gluster-ta-volume.service %changelog -* Fri Sep 19 2025 Python Maint - 11.2-4 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Fri Aug 15 2025 Python Maint - 11.2-3 -- Rebuilt for Python 3.14.0rc2 bytecode - -* 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 +* Thu Apr 6 2023 Kaleb S. KEITHLEY - 10.4-1 +- 10.4 GA * Tue Sep 20 2022 Kaleb S. KEITHLEY - 10.3-1 - 10.3 GA diff --git a/sources b/sources index 167f189..5ab9bb9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-11.2.tar.gz) = 6ac463047c5b1fee1d00ca9d6c16169762ed31c7d3b8dfb341bb8a90b83c15fdd9d48ebbe6cf79eee885f764cfa5391f4107837764c0a182eff1b51bede63d48 +SHA512 (glusterfs-10.4.tar.gz) = 06c563ab77a29145b1fac44f5a56a91539accb69ba736fe6297aa3f38b128e68ba4f7d0b49ac6eb56397a51950fb4de882ff60037e91c61ad13dd89a18139d82