diff --git a/0001-configure.ac.patch b/0001-configure.ac.patch new file mode 100644 index 0000000..67b2e73 --- /dev/null +++ b/0001-configure.ac.patch @@ -0,0 +1,11 @@ +--- 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 new file mode 100644 index 0000000..0772c87 --- /dev/null +++ b/0002-contrib-aclocal-python.m4.patch @@ -0,0 +1,212 @@ +--- 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 new file mode 100644 index 0000000..ae2e543 --- /dev/null +++ b/0003-makefile-am-subdirs.patch @@ -0,0 +1,126 @@ +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/README.md b/README.md new file mode 100644 index 0000000..1cab5c1 --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# Gluster + Gluster is a software defined distributed storage that can scale to several + petabytes. It provides interfaces for object, block and file storage. + +## Development + Contributions to gluster in the form of patches and new feature additions can + be made by following steps outlined at [Developers Guide](https://gluster.readthedocs.io/en/latest/Developer-guide/Developers-Index/#contributing-to-the-gluster-community). + +## Documentation + The Gluster documentation can be found at [Gluster Docs](http://gluster.readthedocs.io/en/latest). + +## Deployment + Quick instructions to build and install can be found in [INSTALL](INSTALL) file. + +## Maintainers + The list of Gluster maintainers is available in [MAINTAINERS](MAINTAINERS) file. + +## License + Gluster is dual licensed under [GPLV2](COPYING-GPLV2) and [LGPLV3+](COPYING-LGPLV3). + + Please visit the [Gluster Home Page](http://www.gluster.org/) to find out more about Gluster. diff --git a/account-server.conf b/account-server.conf deleted file mode 100644 index 1ffca8b..0000000 --- a/account-server.conf +++ /dev/null @@ -1,16 +0,0 @@ -[DEFAULT] -bind_ip = 127.0.0.1 -bind_port = 6012 -workers = 2 - -[pipeline:main] -pipeline = account-server - -[app:account-server] -use = egg:swift#account - -[account-replicator] - -[account-auditor] - -[account-reaper] diff --git a/container-server.conf b/container-server.conf deleted file mode 100644 index fa0de88..0000000 --- a/container-server.conf +++ /dev/null @@ -1,18 +0,0 @@ -[DEFAULT] -bind_ip = 127.0.0.1 -bind_port = 6011 -workers = 2 - -[pipeline:main] -pipeline = container-server - -[app:container-server] -use = egg:swift#container - -[container-replicator] - -[container-updater] - -[container-auditor] - -[container-sync] diff --git a/gluster-swift-account-auditor.service b/gluster-swift-account-auditor.service deleted file mode 100644 index 35413ce..0000000 --- a/gluster-swift-account-auditor.service +++ /dev/null @@ -1,12 +0,0 @@ -# After network.target just because. -[Unit] -Description=OpenStack Object Storage (swift) - Account Auditor -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-auditor /etc/swift/account-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account-auditor@.service b/gluster-swift-account-auditor@.service deleted file mode 100644 index 8b44df9..0000000 --- a/gluster-swift-account-auditor@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Auditor instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-auditor /etc/swift/account-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account-reaper.service b/gluster-swift-account-reaper.service deleted file mode 100644 index dd6fb00..0000000 --- a/gluster-swift-account-reaper.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Reaper -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-reaper /etc/swift/account-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account-reaper@.service b/gluster-swift-account-reaper@.service deleted file mode 100644 index dbd5aa4..0000000 --- a/gluster-swift-account-reaper@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Reaper instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-reaper /etc/swift/account-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account-replicator.service b/gluster-swift-account-replicator.service deleted file mode 100644 index 0cad889..0000000 --- a/gluster-swift-account-replicator.service +++ /dev/null @@ -1,12 +0,0 @@ -# After network.target just so replicator can talk to other nodes. -[Unit] -Description=OpenStack Object Storage (swift) - Account Replicator -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-replicator /etc/swift/account-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account-replicator@.service b/gluster-swift-account-replicator@.service deleted file mode 100644 index 65fbaa3..0000000 --- a/gluster-swift-account-replicator@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Replicator instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-replicator /etc/swift/account-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account.init b/gluster-swift-account.init deleted file mode 100755 index 4f1dbfd..0000000 --- a/gluster-swift-account.init +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh - -### BEGIN INIT INFO -# Provides: gluster-swift-account -# Required-Start: $remote_fs -# Required-Stop: $remote_fs -# Default-Stop: 0 1 6 -# Short-Description: Swift account server -# Description: Account server for swift. -### END INIT INFO - -# gluster-swift-account: swift account server -# -# chkconfig: - 20 80 -# description: Account server for swift. - -. /etc/rc.d/init.d/functions -. /usr/share/gluster-swift/functions - -name="account" - -[ -e "/etc/sysconfig/gluster-swift-$name" ] && . "/etc/sysconfig/gluster-swift-$name" - -lockfile="/var/lock/subsys/gluster-swift-account" - -start() { - swift_action "$name" start - retval=$? - [ $retval -eq 0 ] && touch $lockfile - return $retval -} - -stop() { - swift_action "$name" stop - retval=$? - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -rh_status() { - swift_action "$name" status -} - -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) - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}" - exit 2 -esac -exit $? diff --git a/gluster-swift-account.service b/gluster-swift-account.service deleted file mode 100644 index 782b06a..0000000 --- a/gluster-swift-account.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Server -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-server /etc/swift/account-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-account@.service b/gluster-swift-account@.service deleted file mode 100644 index cae48c7..0000000 --- a/gluster-swift-account@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Account Server instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-account-server /etc/swift/account-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-auditor.service b/gluster-swift-container-auditor.service deleted file mode 100644 index 6359b91..0000000 --- a/gluster-swift-container-auditor.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Auditor -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-auditor /etc/swift/container-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-auditor@.service b/gluster-swift-container-auditor@.service deleted file mode 100644 index 7c046da..0000000 --- a/gluster-swift-container-auditor@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Auditor instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-auditor /etc/swift/container-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-replicator.service b/gluster-swift-container-replicator.service deleted file mode 100644 index 399f7b4..0000000 --- a/gluster-swift-container-replicator.service +++ /dev/null @@ -1,12 +0,0 @@ -# After network.target just so replicator can talk to other nodes. -[Unit] -Description=OpenStack Object Storage (swift) - Container Replicator -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-replicator /etc/swift/container-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-replicator@.service b/gluster-swift-container-replicator@.service deleted file mode 100644 index 4803503..0000000 --- a/gluster-swift-container-replicator@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Replicator instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-replicator /etc/swift/container-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-updater.service b/gluster-swift-container-updater.service deleted file mode 100644 index 6efc57e..0000000 --- a/gluster-swift-container-updater.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Updater -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-updater /etc/swift/container-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container-updater@.service b/gluster-swift-container-updater@.service deleted file mode 100644 index 19f99ff..0000000 --- a/gluster-swift-container-updater@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Updater instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-updater /etc/swift/container-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container.init b/gluster-swift-container.init deleted file mode 100755 index 1d27989..0000000 --- a/gluster-swift-container.init +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh - -### BEGIN INIT INFO -# Provides: gluster-swift-container -# Required-Start: $remote_fs -# Required-Stop: $remote_fs -# Default-Stop: 0 1 6 -# Short-Description: Swift container server -# Description: Container server for swift. -### END INIT INFO - -# gluster-swift-container: swift container server -# -# chkconfig: - 20 80 -# description: Container server for swift. - -. /etc/rc.d/init.d/functions -. /usr/share/gluster-swift/functions - -name="container" - -[ -e "/etc/sysconfig/gluster-swift-$name" ] && . "/etc/sysconfig/gluster-swift-$name" - -lockfile="/var/lock/subsys/gluster-swift-container" - -start() { - swift_action "$name" start - retval=$? - [ $retval -eq 0 ] && touch $lockfile - return $retval -} - -stop() { - swift_action "$name" stop - retval=$? - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -rh_status() { - swift_action "$name" status -} - -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) - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}" - exit 2 -esac -exit $? diff --git a/gluster-swift-container.service b/gluster-swift-container.service deleted file mode 100644 index 6db2b51..0000000 --- a/gluster-swift-container.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Server -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-server /etc/swift/container-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-container@.service b/gluster-swift-container@.service deleted file mode 100644 index 4f51e3f..0000000 --- a/gluster-swift-container@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Container Server instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-container-server /etc/swift/container-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-functions b/gluster-swift-functions deleted file mode 100644 index 4b69ed8..0000000 --- a/gluster-swift-functions +++ /dev/null @@ -1,64 +0,0 @@ -# vim: filetype=sh - -. /etc/rc.d/init.d/functions - -swift_action() { - retval=0 - server="$1" - call="swift_$2" - - if [[ -f "/etc/swift/$server-server.conf" ]]; then - $call "$server" \ - "/etc/swift/$server-server.conf" \ - "/var/run/swift/$server-server.pid" - [ $? -ne 0 ] && retval=1 - elif [[ -d "/etc/swift/$server-server/" ]]; then - declare -i count=0 - mkdir -p /var/run/swift/$server-server - for name in $( ls "/etc/swift/$server-server/" ); do - $call "$server" \ - "/etc/swift/$server-server/$name" \ - "/var/run/swift/$server-server/$count.pid" - [ $? -ne 0 ] && retval=1 - count=$count+1 - done - fi - return $retval -} - -swift_start() { - name="$1" - long_name="$name-server" - conf_file="$2" - pid_file="$3" - - ulimit -n ${SWIFT_MAX_FILES-32768} - echo -n "Starting swift-$long_name: " - daemon --pidfile $pid_file \ - "/usr/bin/swift-$long_name $conf_file &>/var/log/swift-startup.log & echo \$! > $pid_file" - retval=$? - echo - return $retval -} - -swift_stop() { - name="$1" - long_name="$name-server" - conf_name="$2" - pid_file="$3" - - echo -n "Stopping swift-$long_name: " - killproc -p $pid_file -d ${SWIFT_STOP_DELAY-15} $long_name - retval=$? - echo - return $retval -} - -swift_status() { - name="$1" - long_name="$name-server" - conf_name="$2" - pid_file="$3" - - status -p $pid_file $long_name -} diff --git a/gluster-swift-object-auditor.service b/gluster-swift-object-auditor.service deleted file mode 100644 index 498d53e..0000000 --- a/gluster-swift-object-auditor.service +++ /dev/null @@ -1,12 +0,0 @@ -# After network.target just because. -[Unit] -Description=OpenStack Object Storage (swift) - Object Auditor -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-auditor /etc/swift/object-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-auditor@.service b/gluster-swift-object-auditor@.service deleted file mode 100644 index f5c2537..0000000 --- a/gluster-swift-object-auditor@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Auditor instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-auditor /etc/swift/object-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-expirer.service b/gluster-swift-object-expirer.service deleted file mode 100644 index 1438427..0000000 --- a/gluster-swift-object-expirer.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Expirer -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-expirer /etc/swift/object-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-expirer@.service b/gluster-swift-object-expirer@.service deleted file mode 100644 index e7d03c3..0000000 --- a/gluster-swift-object-expirer@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Expirer instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-expirer /etc/swift/object-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-replicator.service b/gluster-swift-object-replicator.service deleted file mode 100644 index be1d3fa..0000000 --- a/gluster-swift-object-replicator.service +++ /dev/null @@ -1,12 +0,0 @@ -# After network.target just so replicator can talk to other nodes. -[Unit] -Description=OpenStack Object Storage (swift) - Object Replicator -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-replicator /etc/swift/object-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-replicator@.service b/gluster-swift-object-replicator@.service deleted file mode 100644 index 7493398..0000000 --- a/gluster-swift-object-replicator@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Replicator instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-replicator /etc/swift/object-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-updater.service b/gluster-swift-object-updater.service deleted file mode 100644 index d9697a5..0000000 --- a/gluster-swift-object-updater.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Updater -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-updater /etc/swift/object-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object-updater@.service b/gluster-swift-object-updater@.service deleted file mode 100644 index 9f223c7..0000000 --- a/gluster-swift-object-updater@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Updater instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-updater /etc/swift/object-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object.init b/gluster-swift-object.init deleted file mode 100755 index f0fe540..0000000 --- a/gluster-swift-object.init +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh - -### BEGIN INIT INFO -# Provides: gluster-swift-object -# Required-Start: $remote_fs -# Required-Stop: $remote_fs -# Default-Stop: 0 1 6 -# Short-Description: Swift object server -# Description: Object server for swift. -### END INIT INFO - -# gluster-swift-object: swift object server -# -# chkconfig: - 20 80 -# description: Object server for swift. - -. /etc/rc.d/init.d/functions -. /usr/share/gluster-swift/functions - -name="object" - -[ -e "/etc/sysconfig/gluster-swift-$name" ] && . "/etc/sysconfig/gluster-swift-$name" - -lockfile="/var/lock/subsys/gluster-swift-object" - -start() { - swift_action "$name" start - retval=$? - [ $retval -eq 0 ] && touch $lockfile - return $retval -} - -stop() { - swift_action "$name" stop - retval=$? - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -rh_status() { - swift_action "$name" status -} - -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) - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}" - exit 2 -esac -exit $? diff --git a/gluster-swift-object.service b/gluster-swift-object.service deleted file mode 100644 index 1cd5020..0000000 --- a/gluster-swift-object.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Server -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-server /etc/swift/object-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-object@.service b/gluster-swift-object@.service deleted file mode 100644 index 172e322..0000000 --- a/gluster-swift-object@.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Object Server instance %I -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-object-server /etc/swift/object-server/%i.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift-proxy.init b/gluster-swift-proxy.init deleted file mode 100755 index 052e05f..0000000 --- a/gluster-swift-proxy.init +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh - -### BEGIN INIT INFO -# Provides: gluster-swift-proxy -# Required-Start: $remote_fs -# Required-Stop: $remote_fs -# Default-Stop: 0 1 6 -# Short-Description: Swift proxy server -# Description: Account server for swift. -### END INIT INFO - -# gluster-swift-proxy: swift proxy server -# -# chkconfig: - 20 80 -# description: Proxy server for swift. - -. /etc/rc.d/init.d/functions -. /usr/share/gluster-swift/functions - -name="proxy" - -[ -e "/etc/sysconfig/gluster-swift-$name" ] && . "/etc/sysconfig/gluster-swift-$name" - -lockfile="/var/lock/subsys/gluster-swift-proxy" - -start() { - swift_action "$name" start - retval=$? - [ $retval -eq 0 ] && touch $lockfile - return $retval -} - -stop() { - swift_action "$name" stop - retval=$? - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -rh_status() { - swift_action "$name" status -} - -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) - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}" - exit 2 -esac -exit $? diff --git a/gluster-swift-proxy.service b/gluster-swift-proxy.service deleted file mode 100644 index 4078f50..0000000 --- a/gluster-swift-proxy.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=OpenStack Object Storage (swift) - Proxy Server -After=syslog.target network.target - -[Service] -Type=simple -User=swift -ExecStart=/usr/bin/swift-proxy-server /etc/swift/proxy-server.conf - -[Install] -WantedBy=multi-user.target diff --git a/gluster-swift.tmpfs b/gluster-swift.tmpfs deleted file mode 100644 index 8f4f5a5..0000000 --- a/gluster-swift.tmpfs +++ /dev/null @@ -1,6 +0,0 @@ -# swift needs a couple of directories in /var/run -d /var/run/swift 0755 swift root -d /var/run/swift/account-server 0755 swift root -d /var/run/swift/container-server 0755 swift root -d /var/run/swift/object-server 0755 swift root -d /var/run/swift/proxy-server 0755 swift root diff --git a/glusterd.init b/glusterd.init deleted file mode 100644 index fecb77d..0000000 --- a/glusterd.init +++ /dev/null @@ -1,109 +0,0 @@ -#!/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/glusterd.logrotate b/glusterd.logrotate deleted file mode 100644 index 3fce646..0000000 --- a/glusterd.logrotate +++ /dev/null @@ -1,6 +0,0 @@ -/var/log/glusterfs/*glusterd.vol.log { - missingok - postrotate - /bin/kill -HUP `cat /var/run/glusterd.pid 2>/dev/null` 2>/dev/null || true - endscript -} diff --git a/glusterd.service b/glusterd.service deleted file mode 100644 index d19d962..0000000 --- a/glusterd.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=GlusterFS an clustered file-system server -Wants=glusterfsd.service -After=network.target rpcbind.service - -[Service] -Type=forking -PIDFile=/run/glusterd.pid -LimitNOFILE=65536 -ExecStart=/usr/sbin/glusterd -p /run/glusterd.pid - -[Install] -WantedBy=multi-user.target diff --git a/glusterfs-fuse.logrotate b/glusterfs-fuse.logrotate deleted file mode 100644 index d96663b..0000000 --- a/glusterfs-fuse.logrotate +++ /dev/null @@ -1,6 +0,0 @@ -/var/log/glusterfs/glusterfs.log { - missingok - postrotate - /usr/bin/killall -HUP gluster 2>/dev/null || true - endscript -} diff --git a/glusterfs.logrotate b/glusterfs.logrotate deleted file mode 100644 index 32b3ef9..0000000 --- a/glusterfs.logrotate +++ /dev/null @@ -1,6 +0,0 @@ -/var/log/glusterfs/glusterfs.log { - missingok - postrotate - /usr/bin/killall -HUP glusterfs 2>/dev/null || true - endscript -} diff --git a/glusterfs.spec b/glusterfs.spec index 58c4560..c125810 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,52 +1,100 @@ + %global _hardened_build 1 %global _for_fedora_koji_builds 1 -# uncomment and add '%' to use the prereltag for pre-releases -# %%global prereltag rc1 +# uncomment and add '%' to use the %%dev for pre-releases +# %%global prereltag rc0 ##----------------------------------------------------------------------------- -## All argument definitions should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## -# if you wish to compile an rpm with debugging... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with debug -%{?_with_debug:%global _with_debug --enable-debug} +# asan +# if you wish to compile an rpm with address sanitizer... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with asan +%{?_with_asan:%global _with_asan --enable-asan} +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +%global _with_asan %{nil} +%endif + +# cmocka # if you wish to compile an rpm with cmocka unit testing... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka %{?_with_cmocka:%global _with_cmocka --enable-cmocka} -# 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 s390(x) -%ifarch s390 s390x -%global _without_rdma --disable-ibverbs -%endif +# debug +# if you wish to compile an rpm with debugging... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with debug +%{?_with_debug:%global _with_debug --enable-debug} +# epoll # if you wish to compile an rpm without epoll... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without epoll %{?_without_epoll:%global _without_epoll --disable-epoll} +# fusermount # if you wish to compile an rpm without fusermount... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without fusermount %{?_without_fusermount:%global _without_fusermount --disable-fusermount} +# geo-rep # if you wish to compile an rpm without geo-replication support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication %{?_without_georeplication:%global _without_georeplication --disable-georeplication} -# Disable geo-replication on EL5, as its default Python is too old -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -%global _without_georeplication --disable-georeplication +# gnfs +# if you wish to compile an rpm with the legacy gNFS server xlator +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs +%{?_without_gnfs:%global _with_gnfs --disable-gnfs} + +# ipv6default +# if you wish to compile an rpm with IPv6 default... +# 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 +%{?_without_libtirpc:%global _without_libtirpc --without-libtirpc} + +# Do not use libtirpc on EL6, it does not have xdr_uint64_t() and xdr_uint32_t +# Do not use libtirpc on EL7, it does not have xdr_sizeof() +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) +%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} +# server +# if you wish to build rpms without server components, compile like this +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without server +%{?_without_server:%global _without_server --without-server} + +# disable server components forcefully as rhel <= 6 +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +%global _without_server --without-server +%endif + +# syslog # if you wish to build rpms without syslog logging, compile like this # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without syslog %{?_without_syslog:%global _without_syslog --disable-syslog} @@ -55,95 +103,75 @@ # Fedora deprecated syslog, see # https://fedoraproject.org/wiki/Changes/NoDefaultSyslog # (And what about RHEL7?) -%if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} < 7 ) +%if ( ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} < 7 ) ) %global _without_syslog --disable-syslog %endif -# if you wish to compile an rpm without the BD map support... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd -%{?_without_bd:%global _without_bd --disable-bd-xlator} +# tsan +# if you wish to compile an rpm with thread sanitizer... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with tsan +%{?_with_tsan:%global _with_tsan --enable-tsan} -%if ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) -%global _without_bd --disable-bd-xlator +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) +%global _with_tsan %{nil} %endif -# Disable data-tiering on EL5, sqlite is too old -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -%global _without_tiering --disable-tiering -%endif +# valgrind +# if you wish to compile an rpm to run all processes under valgrind... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind +%{?_with_valgrind:%global _with_valgrind --enable-valgrind} ##----------------------------------------------------------------------------- -## All %%global definitions should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) -%global _with_systemd true +# 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 ) +%if ( 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 6 ) ) %global _with_firewalld --enable-firewalld %endif -%if 0%{?_tmpfilesdir:1} +%if ( 0%{?_tmpfilesdir:1} ) %global _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir} %else %global _with_tmpfilesdir --without-tmpfilesdir %endif -# Eventing -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) +# without server should also disable some server-only components +%if ( 0%{?_without_server:1} ) %global _without_events --disable-events +%global _without_georeplication --disable-georeplication +%global _with_gnfs %{nil} +%global _without_ocf --without-ocf %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))")} -%endif - -%if ( 0%{?_with_systemd:1} ) -%if ( 0%{_for_fedora_koji_builds} ) -%global _init_enable() /bin/true ; +%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) +%global _usepython3 1 +%global _pythonver 3 %else -%global _init_enable() /bin/systemctl enable %1.service ; +%global _usepython3 0 +%global _pythonver 2 %endif -%global _init_disable() /bin/systemctl disable %1.service ; -%global _init_restart() /bin/systemctl try-restart %1.service ; -%global _init_start() /bin/systemctl start %1.service ; -%global _init_stop() /bin/systemctl stop %1.service ; -%global _init_install() install -D -p -m 0644 %1 %{buildroot}%{_unitdir}/%2.service ; + +%global service_start() /bin/systemctl --quiet start %1.service || : \ +%{nil} +%global service_stop() /bin/systemctl --quiet stop %1.service || :\ +%{nil} +%global service_install() install -D -p -m 0644 %{_sourcedir}/%1.service %{buildroot}%2 \ +%{nil} # can't seem to make a generic macro that works -%global _init_glusterd %{_unitdir}/glusterd.service -%global _init_glusterfsd %{_unitdir}/glusterfsd.service -%global _init_glustereventsd %{_unitdir}/glustereventsd.service -%else -%global _init_enable() /sbin/chkconfig --add %1 ; -%global _init_disable() /sbin/chkconfig --del %1 ; -%global _init_restart() /sbin/service %1 condrestart &>/dev/null ; -%global _init_start() /sbin/service %1 start &>/dev/null ; -%global _init_stop() /sbin/service %1 stop &>/dev/null ; -%global _init_install() install -D -p -m 0755 %1 %{buildroot}%{_sysconfdir}/init.d/%2 ; -# can't seem to make a generic macro that works -%global _init_glusterd %{_sysconfdir}/init.d/glusterd -%global _init_glusterfsd %{_sysconfdir}/init.d/glusterfsd -%global _init_glustereventsd %{_sysconfdir}/init.d/glustereventsd -%endif - -%if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{?_with_systemd:1} ) -%global glusterfsd_service glusterfsd.service -%else -%global glusterfsd_service glusterfsd.init -%endif -%endif +%global glusterd_svcfile %{_unitdir}/glusterd.service +%global glusterfsd_svcfile %{_unitdir}/glusterfsd.service +%global glusterta_svcfile %{_unitdir}/gluster-ta-volume.service +%global glustereventsd_svcfile %{_unitdir}/glustereventsd.service +%global glusterfssharedstorage_svcfile %{_unitdir}/glusterfssharedstorage.service %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -# _sharedstatedir is not provided by RHEL5 -%global _sharedstatedir /var/lib -%endif - # We do not want to generate useless provides and requires for xlator # .so files to be set for glusterfs packages. # Filter all generated: @@ -162,254 +190,221 @@ ##----------------------------------------------------------------------------- -## All package definitions should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## Summary: Distributed File System %if ( 0%{_for_fedora_koji_builds} ) Name: glusterfs -Version: 3.10.0 -Release: 1%{?prereltag:.%{prereltag}}%{?dist} +Version: 11.2 +Release: 4%{?prereltag:%{prereltag}}%{?dist} %else Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ -Release: 0.@PACKAGE_RELEASE@%{?dist}.3 +Release: 0.@PACKAGE_RELEASE@%{?dist}.26 %endif -License: GPLv2 or LGPLv3+ -Group: System Environment/Base -URL: http://gluster.readthedocs.io/en/latest/ +License: GPL-2.0-only OR LGPL-3.0-or-later +URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) -Source0: http://bits.gluster.org/pub/gluster/%{name}/src/%{name}-%{version}%{?prereltag}.tar.gz +Source0: http://github.com/gluster/glusterfs/archive/v%{version}%{?prereltag}/glusterfs-%{version}%{?prereltag}.tar.gz Source1: glusterd.sysconfig Source2: glusterfsd.sysconfig -Source6: rhel5-load-fuse-modules Source7: glusterfsd.service 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 -BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) - -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -BuildRequires: python-simplejson -%endif -%if ( 0%{?_with_systemd:1} ) BuildRequires: systemd + +%if 0%{!?_without_tcmalloc:1} +Requires: gperftools-libs%{?_isa} %endif -%if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{?_with_systemd:1} ) -%global glusterfsd_service %{S:%{SOURCE7}} -%else -%global glusterfsd_service %{S:%{SOURCE8}} -%endif -%endif - -Requires: %{name}-libs = %{version}-%{release} -%if ( 0%{?_with_systemd:1} ) +Requires: libglusterfs0%{?_isa} = %{version}-%{release} +Requires: libgfrpc0%{?_isa} = %{version}-%{release} +Requires: libgfxdr0%{?_isa} = %{version}-%{release} %{?systemd_requires} +%if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 ) +BuildRequires: libasan +%endif +%if 0%{?_with_tsan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 ) +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 +BuildRequires: libxml2-devel openssl-devel openssl BuildRequires: libaio-devel libacl-devel -BuildRequires: python2-devel -%if ( 0%{?rhel} ) +BuildRequires: python%{_pythonver}-devel +%if 0%{!?_without_tcmalloc:1} +BuildRequires: gperftools-devel +%endif +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) BuildRequires: python-ctypes %endif +%if ( ( 0%{?_with_ipv6default:1} ) || ( 0%{!?_without_libtirpc:1} ) ) +BuildRequires: libtirpc-devel +%endif +%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) +BuildRequires: rpcgen +%endif BuildRequires: userspace-rcu-devel >= 0.7 %if ( 0%{?rhel} && 0%{?rhel} < 7 ) BuildRequires: automake %endif -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -BuildRequires: e2fsprogs-devel -%else BuildRequires: libuuid-devel -%endif %if ( 0%{?_with_cmocka:1} ) BuildRequires: libcmocka-devel >= 1.0.1 %endif -%if ( 0%{!?_without_tiering:1} ) -BuildRequires: sqlite-devel -%endif -%if ( 0%{!?_without_bd:1} ) -BuildRequires: lvm2-devel -%endif %if ( 0%{!?_without_georeplication:1} ) BuildRequires: libattr-devel %endif -%if (0%{?_with_firewalld:1}) -BuildRequires: firewalld-filesystem +%if ( 0%{?_with_firewalld:1} ) +BuildRequires: firewalld %endif -Obsoletes: hekafs +%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} %if ( 0%{_for_fedora_koji_builds} ) -Obsoletes: %{name}-regression-tests +Obsoletes: %{name}-regression-tests <= %{version}-%{release} %endif -Obsoletes: %{name}-ufo +Obsoletes: %{name}-ufo <= %{version}-%{release} +%if ( 0%{!?_with_gnfs:1} ) +Obsoletes: %{name}-gnfs <= %{version}-%{release} +%endif +Obsoletes: %{name}-rdma < %{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 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. +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 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 -Group: System Environment/Daemons -Requires: %{name} = %{version}-%{release} -Requires: %{name}-client-xlators = %{version}-%{release} - -%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 -Group: 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 -Group: Applications/File -Requires: %{name}-libs = %{version}-%{release} +%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 %description cli 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. +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 CLI application and its man page %package client-xlators Summary: GlusterFS client-side translators -Group: Applications/File %description client-xlators 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. +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 translators needed on any GlusterFS client. -%package devel -Summary: Development Libraries -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -# Needed for the Glupy examples to work -Requires: %{name}-extra-xlators = %{version}-%{release} +%package cloudsync-plugins +Summary: Cloudsync Plugins +BuildRequires: libcurl-devel -%description devel +%description cloudsync-plugins 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. +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 cloudsync plugins for archival feature. %if ( 0%{!?_without_events:1} ) %package events Summary: GlusterFS Events -Group: Applications/File Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: python2 python-prettytable -Requires: python2-gluster = %{version}-%{release} -%if ( 0%{?rhel} ) +Requires: python%{_pythonver} +Requires: python%{_pythonver}-prettytable +Requires: python%{_pythonver}-gluster = %{version}-%{release} +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) Requires: python-requests %else -Requires: python2-requests +Requires: python%{_pythonver}-requests %endif %if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse %endif -%if ( 0%{?_with_systemd:1} ) %{?systemd_requires} -%endif %description events 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. +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 Events %endif %package extra-xlators Summary: Extra Gluster filesystem Translators -Group: Applications/File # We need python2-gluster rpm for gluster module's __init__.py in Python # site-packages area -Requires: python2-gluster = %{version}-%{release} -Requires: python2 -%if ( 0%{?rhel} ) -BuildRequires: python-ctypes -%endif +Requires: python%{_pythonver}-gluster = %{version}-%{release} +Requires: python%{_pythonver} %description extra-xlators 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. +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 extra filesystem Translators, such as Glupy, for GlusterFS. %package fuse Summary: Fuse client -Group: Applications/File -BuildRequires: fuse-devel +BuildRequires: fuse3-devel Requires: attr Requires: psmisc @@ -421,75 +416,99 @@ 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 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. +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 support to FUSE based clients and includes the -glusterfsd and glusterfs binaries. +glusterfs and glusterfsd binaries. +%if ( 0%{!?_without_server:1} ) %package ganesha Summary: NFS-Ganesha configuration Group: Applications/File -Requires: %{name}-server = %{version}-%{release} -Requires: nfs-ganesha-gluster -Requires: pcs, dbus +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: resource-agents >= 3.9.5 +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 -Requires: nfs-ganesha-gluster >= 2.4.1 %description ganesha 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. +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 %if ( 0%{!?_without_georeplication:1} ) %package geo-replication Summary: GlusterFS Geo-replication -Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} -Requires: python2 -Requires: python-prettytable -%if ( 0%{?rhel} ) -BuildRequires: python-ctypes -%endif -Requires: python2-gluster = %{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 -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. +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 support to geo-replication. %endif -%package libs -Summary: GlusterFS common libraries -Group: Applications/File +%if ( 0%{?_with_gnfs:1} ) +%package gnfs +Summary: GlusterFS gNFS server +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-client-xlators%{?_isa} = %{version}-%{release} +Requires: nfs-utils -%description libs +%description gnfs 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 @@ -498,72 +517,200 @@ 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 GlusterFS libraries - -%package -n python-gluster -Summary: GlusterFS python library -Group: Development/Tools -%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) ) -# EL5 does not support noarch sub-packages -BuildArch: noarch +This package provides the glusterfs legacy gNFS server xlator %endif -%global _python_gluster_description \ -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 contains the python modules of GlusterFS and own gluster\ -namespace. +%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} -%description -n python-gluster %{_python_gluster_description} +%description -n libglusterfs0 +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. -%package -n python2-gluster +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. + +%package -n python%{_pythonver}-gluster Summary: GlusterFS python library -Group: Development/Tools -%{?python_provide:%python_provide python2-gluster} -Requires: python2 +Requires: python%{_pythonver} +%if ( ! %{_usepython3} ) +%{?python_provide:%python_provide python-gluster} Provides: python-gluster = %{version}-%{release} Obsoletes: python-gluster < 3.10 - -%description -n python2-gluster %{_python_gluster_description} - -%if ( 0%{!?_without_rdma:1} ) -%package rdma -Summary: GlusterFS rdma support for ib-verbs -Group: Applications/File -BuildRequires: libibverbs-devel -BuildRequires: librdmacm-devel >= 1.0.15 -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 +%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. + +This package contains the python modules of GlusterFS and own gluster +namespace. + %if ( ! 0%{_for_fedora_koji_builds} ) %package regression-tests Summary: Development Tools -Group: Development/Tools Requires: %{name} = %{version}-%{release} Requires: %{name}-fuse = %{version}-%{release} Requires: %{name}-server = %{version}-%{release} ## thin provisioning support Requires: lvm2 >= 2.02.89 Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng -Requires: python2 attr dbench file git libacl-devel net-tools -Requires: nfs-utils xfsprogs yajl +Requires: python%{_pythonver} attr dbench file git libacl-devel net-tools +Requires: nfs-utils xfsprogs yajl psmisc bc %description regression-tests The Gluster Test Framework, is a suite of scripts used for @@ -573,76 +720,69 @@ regression testing of Gluster. %if ( 0%{!?_without_ocf:1} ) %package resource-agents Summary: OCF Resource Agents for GlusterFS -License: GPLv3+ -%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) ) -# EL5 does not support noarch sub-packages +License: GPL-3.0-or-later BuildArch: noarch -%endif -# this Group handling comes from the Fedora resource-agents package -%if ( 0%{?fedora} || 0%{?centos_version} || 0%{?rhel} ) -Group: System Environment/Base -%else -Group: Productivity/Clustering/HA -%endif # for glusterd Requires: %{name}-server = %{version}-%{release} # depending on the distribution, we need pacemaker or resource-agents -Requires: %{_prefix}/lib/ocf/resource.d +Requires: resource-agents %description resource-agents 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. +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 resource agents which plug glusterd into Open Cluster Framework (OCF) compliant cluster resource managers, like Pacemaker. %endif +%if ( 0%{!?_without_server:1} ) %package server Summary: Distributed file-system server -Group: System Environment/Daemons Requires: %{name} = %{version}-%{release} -Requires: %{name}-libs = %{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 -Requires: %{name}-api = %{version}-%{release} +Requires: libgfapi0%{?_isa} = %{version}-%{release} Requires: %{name}-client-xlators = %{version}-%{release} -# psmisc for killall, lvm2 for snapshot, and nfs-utils and -# rpcbind/portmap for gnfs server +# lvm2 for snapshot, and nfs-utils and rpcbind/portmap for gnfs server Requires: psmisc Requires: lvm2 -Requires: nfs-utils -%if ( 0%{?_with_systemd:1} ) %{?systemd_requires} -%else -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/service -Requires(preun): /sbin/chkconfig -Requires(postun): /sbin/service -%endif %if (0%{?_with_firewalld:1}) # we install firewalld rules, so we need to have the directory owned +%if ( 0%{!?rhel} ) +# not on RHEL because firewalld-filesystem appeared in 7.3 +# when EL7 rpm gets weak dependencies we can add a Suggests: Requires: firewalld-filesystem %endif -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) +%endif +%if ( 0%{?fedora} ) || ( 0%{?rhel} ) Requires: rpcbind %else Requires: portmap %endif -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -Obsoletes: %{name}-geo-replication = %{version}-%{release} -%endif -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) +%if ( 0%{?rhel} && 0%{?rhel} < 7 ) Requires: python-argparse %endif +%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 ) +Requires: python%{_pythonver}-pyxattr +%else Requires: pyxattr +%endif +%if (0%{?_with_valgrind:1}) +Requires: valgrind +%endif %description server GlusterFS is a distributed file-system capable of scaling to several @@ -654,31 +794,71 @@ called Translators from GNU Hurd kernel. Much of the code in GlusterFS is in user space and easily manageable. This package provides the glusterfs server daemon. +%endif +%package thin-arbiter +Summary: GlusterFS thin-arbiter module +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +%description thin-arbiter +This package provides a tie-breaker functionality to GlusterFS +replicate volume. It includes translators required to provide the +functionality, and also few other scripts required for setup. + +This package provides the glusterfs thin-arbiter translator. %prep %setup -q -n %{name}-%{version}%{?prereltag} - -%build -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -CFLAGS=-DUSE_INSECURE_OPENSSL -export CFLAGS +%ifarch x86_64 aarch64 +%patch 0001 -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 +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} \ %{?_with_debug} \ + %{?_with_firewalld} \ + %{?_with_gnfs} \ %{?_with_tmpfilesdir} \ - %{?_without_bd} \ + %{?_with_tsan} \ + %{?_with_valgrind} \ %{?_without_epoll} \ + %{?_without_events} \ %{?_without_fusermount} \ %{?_without_georeplication} \ - %{?_with_firewalld} \ %{?_without_ocf} \ - %{?_without_rdma} \ - %{?_without_syslog} \ - %{?_without_tiering} \ - %{?_without_events} + %{?_without_server} \ + %{?_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 # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -687,38 +867,32 @@ 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 %{?_smp_mflags} +%make_build V=1 GCC_COLORS= %check -make check +%make_build check %install rm -rf %{buildroot} -make install DESTDIR=%{buildroot} -# Install include directory -install -p -m 0644 contrib/uuid/*.h \ - %{buildroot}%{_includedir}/glusterfs/ +%make_install +%if ( 0%{!?_without_server:1} ) %if ( 0%{_for_fedora_koji_builds} ) +%if ( 0%{!?_without_server:1} ) install -D -p -m 0644 %{SOURCE1} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd install -D -p -m 0644 %{SOURCE2} \ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd +%endif %else install -D -p -m 0644 extras/glusterd-sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/glusterd %endif - -%if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -install -D -p -m 0755 %{SOURCE6} \ - %{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules -%endif %endif mkdir -p %{buildroot}%{_localstatedir}/log/glusterd mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd -mkdir -p %{buildroot}%{_localstatedir}/run/gluster +mkdir -p %{buildroot}%{_rundir}/gluster/metrics # Remove unwanted files from all the shared libraries find %{buildroot}%{_libdir} -name '*.a' -delete @@ -741,33 +915,40 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt EOM # Remove benchmarking and other unpackaged files -%if ( 0%{?rhel} && 0%{?rhel} < 6 ) -rm -rf %{buildroot}/benchmarking -rm -f %{buildroot}/glusterfs-mode.el -rm -f %{buildroot}/glusterfs.vim -%else # make install always puts these in %%{_defaultdocdir}/%%{name} so don't # use %%{_pkgdocdir}; that will be wrong on later Fedora distributions rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim -%endif +%if ( 0%{!?_without_server:1} ) # Create working directory mkdir -p %{buildroot}%{_sharedstatedir}/glusterd # Update configuration file to /var/lib working directory sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \ %{buildroot}%{_sysconfdir}/glusterfs/glusterd.vol +%endif # Install glusterfsd .service or init.d file +%if ( 0%{!?_without_server:1} ) %if ( 0%{_for_fedora_koji_builds} ) -%_init_install %{glusterfsd_service} glusterfsd +%service_install glusterfsd %{glusterfsd_svcfile} +%endif %endif 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 @@ -776,6 +957,7 @@ install -D -p -m 0644 extras/glusterfs-georep-logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep %endif +%if ( 0%{!?_without_server:1} ) # the rest of the ghosts touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info touch %{buildroot}%{_sharedstatedir}/glusterd/options @@ -794,61 +976,86 @@ mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/snaps mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/ss_brick touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid +%endif %if ( ! 0%{_for_fedora_koji_builds} ) find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs %endif -## Install bash completion for cli -install -p -m 0755 -D extras/command-completion/gluster.bash \ - %{buildroot}%{_sysconfdir}/bash_completion.d/gluster +# Fix installation paths +mv -v %{buildroot}/sbin/* %{buildroot}%{_sbindir}/ -%clean -rm -rf %{buildroot} +%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null) +%if "%{bashcompdir}" == "" +%global bashcompdir ${sysconfdir}/bash_completion.d +%endif ##----------------------------------------------------------------------------- -## All %%post should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order + +install -m0644 -D glusterfs.sysusers.conf %{buildroot}%{_sysusersdir}/glusterfs.conf ## %post -/sbin/ldconfig +%{?ldconfig} %if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog +%if ( 0%{?fedora} ) || ( 0%{?rhel} ) +%systemd_postun_with_restart rsyslog %endif %endif exit 0 -%post api -p /sbin/ldconfig +# post and postun scriptlets for libs +%ldconfig_scriptlets libglusterfs0 + +%ldconfig_scriptlets libgfchangelog0 + +%ldconfig_scriptlets libgfapi0 + +%ldconfig_scriptlets libgfrpc0 + +%ldconfig_scriptlets libgfxdr0 + +%ldconfig_scriptlets libgfglusterd0 %if ( 0%{!?_without_events:1} ) %post events -%_init_restart glustereventsd +%systemd_post glustereventsd exit 0 %endif -%if ( 0%{?rhel} == 5 ) -%post fuse -modprobe fuse +%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 - %_init_restart glusterd + %systemd_postun_with_restart glusterd fi exit 0 %endif -%post libs -/sbin/ldconfig -exit 0 +# post and postun scriptlets for libs +%ldconfig_scriptlets libs +%if ( 0%{!?_without_server:1} ) %post server # Legacy server -%_init_enable glusterd +%systemd_post glusterd %if ( 0%{_for_fedora_koji_builds} ) -%_init_enable glusterfsd +%systemd_post glusterfsd %endif # ".cmd_log_history" is renamed to "cmd_history.log" in GlusterFS-3.7 . # While upgrading glusterfs-server package form GlusterFS version <= 3.6 to @@ -902,201 +1109,296 @@ if [ $? -eq 0 ]; then #Cleaning leftover glusterd socket file which is created by glusterd in #rpm_script_t context. - rm -rf /var/run/glusterd.socket + rm -f %{_rundir}/glusterd.socket # glusterd _was_ running, we killed it, it exited after *.upgrade=on, # so start it again - %_init_start glusterd + %service_start glusterd else glusterd --xlator-option *.upgrade=on -N #Cleaning leftover glusterd socket file which is created by glusterd in #rpm_script_t context. - rm -rf /var/run/glusterd.socket + rm -f %{_rundir}/glusterd.socket fi exit 0 +%endif ##----------------------------------------------------------------------------- -## All %%preun should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order +## +%pre +##----------------------------------------------------------------------------- +## All package definitions should be placed here in alphabetical order ## %if ( 0%{!?_without_events:1} ) %preun events if [ $1 -eq 0 ]; then - if [ -f %_init_glustereventsd ]; then - %_init_stop glustereventsd - %_init_disable glustereventsd + if [ -f %glustereventsd_svcfile ]; then + %service_stop glustereventsd + %systemd_preun glustereventsd fi fi exit 0 %endif +%if ( 0%{!?_without_server:1} ) %preun server if [ $1 -eq 0 ]; then - if [ -f %_init_glusterfsd ]; then - %_init_stop glusterfsd + if [ -f %glusterfsd_svcfile ]; then + %service_stop glusterfsd fi - %_init_stop glusterd - if [ -f %_init_glusterfsd ]; then - %_init_disable glusterfsd + %service_stop glusterd + if [ -f %glusterfsd_svcfile ]; then + %systemd_preun glusterfsd fi - %_init_disable glusterd + %systemd_preun glusterd fi if [ $1 -ge 1 ]; then - if [ -f %_init_glusterfsd ]; then - %_init_restart glusterfsd + if [ -f %glusterfsd_svcfile ]; then + %systemd_postun_with_restart glusterfsd fi - %_init_restart glusterd + %systemd_postun_with_restart glusterd fi exit 0 +%endif + +%preun thin-arbiter +if [ $1 -eq 0 ]; then + if [ -f %glusterta_svcfile ]; then + %service_stop gluster-ta-volume + %systemd_preun gluster-ta-volume + fi +fi ##----------------------------------------------------------------------------- -## All %%postun should be placed here and keep them sorted +## All package definitions should be placed here in alphabetical order ## %postun -/sbin/ldconfig +%{?ldconfig} %if ( 0%{!?_without_syslog:1} ) -%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 ) -%_init_restart rsyslog +%if ( 0%{?fedora} ) || ( 0%{?rhel} ) +%systemd_postun_with_restart rsyslog %endif %endif exit 0 -%postun api -/sbin/ldconfig -exit 0 - -%postun libs -/sbin/ldconfig -exit 0 - +%if ( 0%{!?_without_server:1} ) %postun server -/sbin/ldconfig +%{?ldconfig} %if (0%{?_with_firewalld:1}) %firewalld_reload %endif 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 %%files should be placed here and keep them sorted by groups +## 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 ## %files %{!?_licensedir:%global license %%doc} %license COPYING-GPLV2 COPYING-LGPLV3 -%doc ChangeLog INSTALL README.md THANKS +%doc ChangeLog INSTALL README.md THANKS COMMITMENT %{_mandir}/man8/*gluster*.8* +%if ( 0%{!?_without_server:1} ) %exclude %{_mandir}/man8/gluster.8* +%endif %dir %{_localstatedir}/log/glusterfs -%if ( 0%{!?_without_rdma:1} ) -%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* -%endif +%if ( 0%{!?_without_server:1} ) +%dir %{_datadir}/glusterfs %dir %{_datadir}/glusterfs/scripts -%{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh -%{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh -# xlators that are needed on the client- and on the server-side -%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/debug -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/error-gen.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so -%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) ) -# RHEL-5 based distributions have a too old openssl -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/crypt.so + %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh + %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh %endif -%{_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/gfid-access.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/meta.so -%{_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/system/posix-acl.so -%dir %{_localstatedir}/run/gluster +# 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 %attr(0775,gluster,gluster) %{_rundir}/gluster +%dir %attr(0775,gluster,gluster) %{_rundir}/gluster/metrics %if 0%{?_tmpfilesdir:1} %{_tmpfilesdir}/gluster.conf %endif -%files api -%exclude %{_libdir}/*.so -# libgfapi files -%{_libdir}/libgfapi.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api.so - -%files api-devel -%{_libdir}/pkgconfig/glusterfs-api.pc -%{_libdir}/libgfapi.so -%{_includedir}/glusterfs/api/* +%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 cli %{_sbindir}/gluster %{_mandir}/man8/gluster.8* -%{_sysconfdir}/bash_completion.d/gluster +%{bash_completions_dir}/gluster.bash %files client-xlators -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so +%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 +%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 -%files devel +%files -n libglusterfs-devel %dir %{_includedir}/glusterfs -%{_includedir}/glusterfs/* -%exclude %{_includedir}/glusterfs/api -%exclude %{_libdir}/libgfapi.so -%{_libdir}/*.so -# Glupy Translator examples -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.* + %{_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 %{_libdir}/pkgconfig/libgfchangelog.pc -%if ( 0%{!?_without_tiering:1} ) -%{_libdir}/pkgconfig/libgfdb.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 -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features/template.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so -# Glupy Python files -%{python2_sitelib}/gluster/glupy/* +%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 %files fuse # glusterfs is a symlink to glusterfsd, -server depends on -fuse. %{_sbindir}/glusterfs %{_sbindir}/glusterfsd %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so -/sbin/mount.glusterfs +%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount + %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so +%{_sbindir}/mount.glusterfs %if ( 0%{!?_without_fusermount:1} ) %{_bindir}/fusermount-glusterfs %endif -%if ( 0%{_for_fedora_koji_builds} ) -%if ( 0%{?rhel} && 0%{?rhel} <= 5 ) -%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules -%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/* +%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 + +%if ( 0%{!?_without_server:1} ) %files ganesha -%{_sysconfdir}/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 @@ -1104,15 +1406,25 @@ exit 0 %{_sbindir}/gfind_missing_files %{_sbindir}/gluster-mountbroker -%{_libexecdir}/glusterfs/gsyncd -%{_libexecdir}/glusterfs/python/syncdaemon/* -%{_libexecdir}/glusterfs/gverify.sh -%{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh -%{_libexecdir}/glusterfs/peer_gsec_create -%{_libexecdir}/glusterfs/peer_mountbroker -%{_libexecdir}/glusterfs/peer_mountbroker.py* -%{_libexecdir}/glusterfs/gfind_missing_files -%{_libexecdir}/glusterfs/peer_georep-sshkey.py* +%dir %{_libexecdir}/glusterfs +%dir %{_libexecdir}/glusterfs/python +%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 + %{_libexecdir}/glusterfs/peer_mountbroker + %{_libexecdir}/glusterfs/peer_mountbroker.py* + %{_libexecdir}/glusterfs/gfind_missing_files + %{_libexecdir}/glusterfs/peer_georep-sshkey.py* %{_sbindir}/gluster-georep-sshkey @@ -1122,41 +1434,45 @@ 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 - -%{_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 libs -%{_libdir}/*.so.* -%exclude %{_libdir}/libgfapi.* -# libgfdb is only needed server-side -%if ( 0%{!?_without_tiering:1} ) -# libgfdb is only needed server-side -%exclude %{_libdir}/libgfdb.* -%endif +%files -n libglusterfs0 +%{_libdir}/libglusterfs.so.* -%files -n python2-gluster +%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 -n python%{_pythonver}-gluster # introducing glusterfs module in site packages. # so that all other gluster submodules can reside in the same namespace. -%{python2_sitelib}/gluster/__init__.* -%{python2_sitelib}/gluster/cliutils - -%if ( 0%{!?_without_rdma:1} ) -%files rdma -%{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma* +%if ( %{_usepython3} ) +%dir %{python3_sitelib}/gluster + %{python3_sitelib}/gluster/__init__.* + %{python3_sitelib}/gluster/__pycache__ + %{python3_sitelib}/gluster/cliutils +%else +%dir %{python2_sitelib}/gluster + %{python2_sitelib}/gluster/__init__.* + %{python2_sitelib}/gluster/cliutils %endif %if ( ! 0%{_for_fedora_koji_builds} ) %files regression-tests -%{_prefix}/share/glusterfs/run-tests.sh -%{_prefix}/share/glusterfs/tests -%{_datadir}/glusterfs/run-tests.sh -%{_datadir}/glusterfs/tests +%dir %{_prefix}/share/glusterfs + %{_prefix}/share/glusterfs/run-tests.sh +%dir %{_prefix}/share/glusterfs/tests + %{_datadir}/glusterfs/tests/* %exclude %{_datadir}/glusterfs/tests/vagrant %endif @@ -1166,53 +1482,64 @@ exit 0 %{_prefix}/lib/ocf/resource.d/glusterfs %endif +%if ( 0%{!?_without_server:1} ) %files server %doc extras/clear_xattrs.sh # sysconf %config(noreplace) %{_sysconfdir}/glusterfs +%exclude %{_sysconfdir}/glusterfs/thin-arbiter.vol %exclude %{_sysconfdir}/glusterfs/eventsconfig.json -%dir %{_localstatedir}/run/gluster +%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/* +%endif %config(noreplace) %{_sysconfdir}/sysconfig/glusterd %if ( 0%{_for_fedora_koji_builds} ) %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd %endif # init files -%_init_glusterd +%glusterd_svcfile %if ( 0%{_for_fedora_koji_builds} ) -%_init_glusterfsd +%glusterfsd_svcfile %endif +%glusterfssharedstorage_svcfile # binaries %{_sbindir}/glusterd -%{_sbindir}/glfsheal +%{_libexecdir}/glusterfs/glfsheal %{_sbindir}/gf_attach +%{_sbindir}/gluster-setgfid2path # {_sbindir}/glusterfsd is the actual binary, but glusterfs (client) is a # symlink. The binary itself (and symlink) are part of the glusterfs-fuse # package, because glusterfs-server depends on that anyway. -%{_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 -%if ( 0%{!?_without_tiering:1} ) -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so -%endif -%{_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/quota* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/upcall.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/leases.so -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage* -%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/decompounder.so -%if ( 0%{!?_without_tiering:1} ) -%{_libdir}/libgfdb.so.* -%endif + +# 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 # snap_scheduler %{_sbindir}/snap_scheduler.py @@ -1226,6 +1553,11 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/groups %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/virt %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/metadata-cache + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/gluster-block + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/nl-cache + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/db-workload + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/distributed-virt + %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/samba %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd @@ -1234,10 +1566,13 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh - %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S10selinux-label-brick.sh + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S13create-subdir-mounts.sh %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post/S10selinux-label-brick.sh %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file/post @@ -1245,7 +1580,8 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post -%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre + %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre + %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre/S10selinux-del-fcontext.sh %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre @@ -1267,11 +1603,7 @@ exit 0 %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh -%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 -%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options +%config(noreplace) %ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/options %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/quotad %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/scrub @@ -1280,35 +1612,516 @@ exit 0 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols # Extra utility script +%dir %{_datadir}/glusterfs +%dir %{_datadir}/glusterfs/scripts %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh + %{_libexecdir}/glusterfs/mount-shared-storage.sh + %{_datadir}/glusterfs/scripts/control-cpu-load.sh + %{_datadir}/glusterfs/scripts/control-mem.sh # Incrementalapi -%{_libexecdir}/glusterfs/glusterfind +%dir %{_libexecdir}/glusterfs + %{_libexecdir}/glusterfs/glusterfind + %{_libexecdir}/glusterfs/peer_add_secret_pub %{_bindir}/glusterfind -%{_libexecdir}/glusterfs/peer_add_secret_pub %if ( 0%{?_with_firewalld:1} ) %{_prefix}/lib/firewalld/services/glusterfs.xml %endif -# Events -%if ( 0%{!?_without_events:1} ) -%files events -%config(noreplace) %{_sysconfdir}/glusterfs/eventsconfig.json -%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/events -%{_libexecdir}/glusterfs/events -%{_libexecdir}/glusterfs/peer_eventsapi.py* -%{_sbindir}/glustereventsd -%{_sbindir}/gluster-eventsapi -%{_datadir}/glusterfs/scripts/eventsdash.py* -%if ( 0%{?_with_systemd:1} ) -%{_unitdir}/glustereventsd.service -%else -%{_sysconfdir}/init.d/glustereventsd -%endif +# 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 + %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 + +* 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 + +* Mon May 18 2020 Kaleb S. KEITHLEY - 7.6-1 +- 7.6 GA + +* Thu Apr 16 2020 Kaleb S. KEITHLEY - 7.5-1 +- 7.5 GA + +* Wed Mar 18 2020 Kaleb S. KEITHLEY - 7.4-1 +- 7.4 GA + +* Mon Feb 17 2020 Kaleb S. KEITHLEY - 7.3-1 +- 7.3 GA + +* Tue Jan 28 2020 Fedora Release Engineering - 7.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 22 2020 Kaleb S. KEITHLEY - 7.2-2 +- 7.2, gcc-10 fix + +* Wed Jan 15 2020 Kaleb S. KEITHLEY - 7.2-1 +- 7.2 GA + +* Mon Dec 23 2019 Kaleb S. KEITHLEY - 7.1-1 +- 7.1 GA + +* Tue Oct 15 2019 Kaleb S. KEITHLEY - 7.0-1 +- 7.0 GA + +* Wed Oct 9 2019 Kaleb S. KEITHLEY +- bd xlator was removed in glusterfs-6 + +* Tue Oct 1 2019 Kaleb S. KEITHLEY - 7.0-0.5rc3 +- 7.0 RC3 (note, rc2 was tagged but not released) + +* Mon Sep 16 2019 Kaleb S. KEITHLEY - 7.0-0.4rc1 +- disable gnfs by default + +* Mon Sep 16 2019 Kaleb S. KEITHLEY - 7.0-0.3rc1 +- 7.0 RC1 + +* Wed Aug 28 2019 Kaleb S. KEITHLEY - 7.0-0.2rc0 +- python3-requests, el-8 + +* Thu Aug 22 2019 Kaleb S. KEITHLEY - 7.0-0.1rc0 +- 7.0 RC0 + +* Mon Aug 19 2019 Kaleb S. KEITHLEY - 6.5-2 +- Rebuilt for Python 3.8, again + +* Mon Aug 19 2019 Miro Hrončok - 6.5-1.1 +- Rebuilt for Python 3.8 + +* Wed Aug 7 2019 Kaleb S. KEITHLEY - 6.5-1 +- 6.5 GA + +* Thu Aug 1 2019 Kaleb S. KEITHLEY - 6.4-3 +- restore i686 + +* Thu Aug 1 2019 Kaleb S. KEITHLEY - 6.4-2 +- temporarily exclude i686 pending firewalld resolution + +* Thu Jul 25 2019 Fedora Release Engineering - 6.4-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jul 17 2019 Kaleb S. KEITHLEY - 6.4-1 +- 6.4 GA + +* Wed Jul 17 2019 Kaleb S. KEITHLEY - 6.4-1 +- 6.4 GA + +* Tue Jun 11 2019 Kaleb S. KEITHLEY - 6.3-1 +- 6.3 GA + +* Fri May 24 2019 Kaleb S. KEITHLEY - 6.2-1 +- 6.2 GA + +* Mon Apr 22 2019 Kaleb S. KEITHLEY - 6.1-2 +- 6.1 GA, glusterfs-thin-arbiter Requires: glusterfs-libs + +* Wed Apr 17 2019 Kaleb S. KEITHLEY - 6.1-1 +- 6.1 GA + +* Wed Mar 20 2019 Kaleb S. KEITHLEY - 6.0-1 +- 6.0 GA + +* Wed Mar 13 2019 Kaleb S. KEITHLEY - 6.0rc1-0.4 +- 6.0 RC1 + +* Wed Mar 6 2019 Kaleb S. KEITHLEY - 6.0rc0-0.3 +- 6.0 RC0 +- restore s390x rdma +- remove obsolete scripts from +- https://src.fedoraproject.org/rpms/glusterfs/pull-request/5 + +* Fri Mar 1 2019 Kaleb S. KEITHLEY - 6.0rc0-0.2 +- 6.0 RC0, s390x, armv7hl no rdma + +* Fri Feb 22 2019 Kaleb S. KEITHLEY - 6.0rc0-0.1 +- 6.0 RC0 + +* Wed Feb 20 2019 Kaleb S. KEITHLEY - 5.3-2 +- re-rebuild for f31/rawhide + +* Wed Feb 20 2019 Kaleb S. KEITHLEY - 5.3-1 +- rebuild for f31/rawhide + +* Sun Feb 17 2019 Igor Gnatenko - 5.3-2.1 +- Rebuild for readline 8.0 + +* Thu Feb 14 2019 Kaleb S. KEITHLEY - 5.3-2 +- Re-rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 5.3-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 17 2019 Kaleb S. KEITHLEY - 5.3-1 +- 5.3 GA + +* Thu Dec 13 2018 Kaleb S. KEITHLEY - 5.2-1 +- 5.2 GA + +* Wed Nov 14 2018 Kaleb S. KEITHLEY - 5.1-1 +- 5.1 GA + +* Thu Oct 18 2018 Kaleb S. KEITHLEY - 5.0-1 +- 5.0 GA + +* Fri Oct 5 2018 Kaleb S. KEITHLEY - 5.0-0.5.rc1 +- 5.0 RC1 + +* Mon Sep 24 2018 Kaleb S. KEITHLEY - 5.0-0.3.rc0 +- 5.0 RC0, unbork python shebangs + +* Thu Sep 20 2018 Kaleb S. KEITHLEY - 5.0-0.2.rc0 +- 5.0 RC0 + +* Tue Sep 18 2018 Kaleb S. KEITHLEY - 5.0-0.1.rc0 +- 5.0 RC0 + +* Thu Sep 6 2018 Kaleb S. KEITHLEY - 4.1.4-1 +- 4.1.4 GA + +* Tue Sep 4 2018 Kaleb S. KEITHLEY - 4.1.3-2 +- missing /run/gluster/metrics, see bz#1624006 + +* Tue Sep 4 2018 Kaleb S. KEITHLEY +- --with-ipv6-default bz#1614769 + +* Mon Aug 27 2018 Kaleb S. KEITHLEY - 4.1.3-1 +- 4.1.3 GA + +* Wed Jul 25 2018 Kaleb S. KEITHLEY - 4.1.2-3 +- 4.1.2, again + +* Tue Jul 24 2018 Kaleb S. KEITHLEY - 4.1.2-2 +- 4.1.2, gsyncd.conf /usr/local/sbin + +* Tue Jul 24 2018 Kaleb S. KEITHLEY - 4.1.2-1 +- 4.1.2 GA + +* Fri Jul 13 2018 Fedora Release Engineering - 4.1.1-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jul 11 2018 Kaleb S. KEITHLEY - 4.1.1-2 +- missed python->python2 in shebang + +* Tue Jun 26 2018 Kaleb S. KEITHLEY - 4.1.1-1 +- 4.1.1 GA + +* Tue Jun 12 2018 Kaleb S. KEITHLEY - 4.1.0-1 +- 4.1.0 GA + +* Fri Jun 1 2018 Kaleb S. KEITHLEY - 4.1.0rc0 +- 4.1.0 RC0 + +* Tue Apr 24 2018 Niels de Vos - 4.0.2-1 +- 4.0.2 GA + +* Thu Apr 19 2018 Kaleb S. KEITHLEY - 4.0.1-3 +- 4.0.1, restore python->python2 -prettytable + +* Wed Mar 21 2018 Kaleb S. KEITHLEY - 4.0.1-2 +- 4.0.1 GA + +* Wed Mar 21 2018 Kaleb S. KEITHLEY - 4.0.1-1 +- (skipped by accident) + +* Tue Mar 6 2018 Kaleb S. KEITHLEY - 4.0.0-2 +- 4.0.0 GA (v4.0.0-2 respin) + +* Tue Mar 6 2018 Kaleb S. KEITHLEY - 4.0.0-1 +- 4.0.0 GA + +* Thu Mar 1 2018 Kaleb S. KEITHLEY - 4.0.0-0.2rc1 +- 4.0.0 RC1, python2-prettytable, .../rpms/glusterfs/pull-request/3 + +* Tue Feb 27 2018 Kaleb S. KEITHLEY - 4.0.0-0.1rc1 +- 4.0.0 RC1 + +* Fri Feb 2 2018 Kaleb S. KEITHLEY - 4.0.0rc0-1 +- 4.0.0 RC0 + +* Sat Jan 20 2018 Kaleb S. KEITHLEY - 3.13.2-1 +- 3.13.2 GA + +* Thu Jan 18 2018 Kaleb S. KEITHLEY - 3.13.1-3 +- glibc in Fedora 28 has removed rpc headers and rpcgen, use libtirpc + +* Mon Dec 25 2017 Niels de Vos - 3.13.1-2 +- Fedora 28 has renamed pyxattr + +* Thu Dec 21 2017 Kaleb S. KEITHLEY - 3.13.1-1 +- 3.13.1 GA + +* Sat Dec 2 2017 Kaleb S. KEITHLEY - 3.13.0-1 +- 3.13.0 GA + +* Wed Nov 22 2017 Kaleb S. KEITHLEY - 3.13.0-0.1.rc0 +- 3.13.0 RC0 + +* Mon Nov 13 2017 Kaleb S. KEITHLEY - 3.12.3-1 +- 3.12.3 GA + +* Mon Oct 23 2017 Kaleb S. KEITHLEY - 3.12.2-2 +- 3.12.2, bz #1504256 + +* Fri Oct 13 2017 Kaleb S. KEITHLEY - 3.12.2-1 +- 3.12.2 GA + +* Thu Sep 28 2017 Kaleb S. KEITHLEY - 3.12.1-2 +- 3.12.1 bz 1495858 + +* Mon Sep 11 2017 Kaleb S. KEITHLEY - 3.12.1-1 +- 3.12.1 GA + +* Wed Aug 30 2017 Kaleb S. KEITHLEY - 3.12.0-1 +- 3.12.0 GA + +* Tue Aug 22 2017 Kaleb S. KEITHLEY - 3.11.3-2 +- 3.11.3 libibverbs-devel, librdmacm-devel -> rdma-core-devel + +* Mon Aug 21 2017 Kaleb S. KEITHLEY - 3.11.3-1 +- 3.11.3 GA + +* Wed Aug 02 2017 Fedora Release Engineering - 3.11.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 3.11.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jul 21 2017 Kaleb S. KEITHLEY - 3.11.2-1 +- 3.11.2 GA + +* Fri Jul 07 2017 Igor Gnatenko - 3.11.1-2 +- Rebuild due to bug in RPM (RHBZ #1468476) + +* Wed Jun 28 2017 Kaleb S. KEITHLEY - 3.11.1-1 +- 3.11.1 GA + +* Sun Jun 25 2017 Kaleb S. KEITHLEY - 3.11.0-2 +- rebuild with userspace-rcu-0.10.0 (liburcu-bp.so.6) + +* Tue May 30 2017 Kaleb S. KEITHLEY - 3.11.0-1 +- 3.11.0 GA + +* Tue May 23 2017 Kaleb S. KEITHLEY - 3.11.0-0.4rc1 +- 3.11.0 RC1 + +* Tue May 9 2017 Kaleb S. KEITHLEY - 3.11.0-0.3rc0 +- Enable gnfs subpackage + +* Tue May 9 2017 Niels de Vos - 3.11.0-0.2rc0 +- remove conflicting _localstate_/run/gluster dir + +* Mon May 8 2017 Kaleb S. KEITHLEY - 3.11.0-0.1rc0 +- 3.11.0 RC0 + +* Thu Mar 30 2017 Kaleb S. KEITHLEY - 3.10.1-1 +- 3.10.1 GA + * Thu Feb 23 2017 Kaleb S. KEITHLEY - 3.10.0-1 - 3.10.0 GA @@ -1380,7 +2193,7 @@ exit 0 - 3.8.0 RC1 * Wed Apr 27 2016 Kaleb S. KEITHLEY - 3.7.11-2 -- %postun libs on RHEL6 w/o firewalld +- %%postun libs on RHEL6 w/o firewalld * Mon Apr 18 2016 Kaleb S. KEITHLEY - 3.7.11-1 - GlusterFS 3.7.11 GA diff --git a/glusterfsd.logrotate b/glusterfsd.logrotate deleted file mode 100644 index 81d1abc..0000000 --- a/glusterfsd.logrotate +++ /dev/null @@ -1,6 +0,0 @@ -/var/log/glusterfs/*glusterfsd.log /var/log/glusterfs/bricks/*.log { - missingok - postrotate - /bin/kill -HUP `cat /var/run/glusterfsd.pid 2>/dev/null` 2>/dev/null || true - endscript -} diff --git a/object-expirer.conf b/object-expirer.conf deleted file mode 100644 index b75963c..0000000 --- a/object-expirer.conf +++ /dev/null @@ -1,17 +0,0 @@ -[DEFAULT] - -[object-expirer] -# auto_create_account_prefix = . - -[pipeline:main] -pipeline = catch_errors cache proxy-server - -[app:proxy-server] -use = egg:swift#proxy - -[filter:cache] -use = egg:swift#memcache -memcache_servers = 127.0.0.1:11211 - -[filter:catch_errors] -use = egg:swift#catch_errors diff --git a/object-server.conf b/object-server.conf deleted file mode 100644 index 3a3d9be..0000000 --- a/object-server.conf +++ /dev/null @@ -1,16 +0,0 @@ -[DEFAULT] -bind_ip = 127.0.0.1 -bind_port = 6010 -workers = 3 - -[pipeline:main] -pipeline = object-server - -[app:object-server] -use = egg:swift#object - -[object-replicator] - -[object-updater] - -[object-auditor] diff --git a/proxy-server.conf b/proxy-server.conf deleted file mode 100644 index 3e4b88a..0000000 --- a/proxy-server.conf +++ /dev/null @@ -1,39 +0,0 @@ -[DEFAULT] -bind_port = 8080 -workers = 8 -user = swift - -[pipeline:main] -pipeline = healthcheck cache authtoken keystone proxy-server - -[app:proxy-server] -use = egg:swift#proxy -allow_account_management = true -account_autocreate = true - -[filter:cache] -use = egg:swift#memcache -memcache_servers = 127.0.0.1:11211 - -[filter:catch_errors] -use = egg:swift#catch_errors - -[filter:healthcheck] -use = egg:swift#healthcheck - -[filter:keystone] -paste.filter_factory = keystone.middleware.swift_auth:filter_factory -operator_roles = admin, SwiftOperator -is_admin = true -cache = swift.cache - -[filter:authtoken] -paste.filter_factory = keystone.middleware.auth_token:filter_factory -admin_tenant_name = %SERVICE_TENANT_NAME% -admin_user = %SERVICE_USER% -admin_password = %SERVICE_PASSWORD% -auth_host = 127.0.0.1 -auth_port = 35357 -auth_protocol = http -signing_dir = /tmp/keystone-signing-swift - diff --git a/rhel5-load-fuse-modules b/rhel5-load-fuse-modules deleted file mode 100755 index ee194db..0000000 --- a/rhel5-load-fuse-modules +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# -# fusermount-glusterfs requires the /dev/fuse character device. The fuse module -# provides this and is loaded on demand in newer Linux distributions. -# - -[ -c /dev/fuse ] || /sbin/modprobe fuse diff --git a/sources b/sources index 10277d9..167f189 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glusterfs-3.10.0.tar.gz) = eeb6ef61e33b9a5afd59802aa641d67ac9b48dc1d1e08c302a744765b3f63dc479cd13b41df9e874dc2a194b038e85d1f94209112df4269d8b00cd5bf6b05449 +SHA512 (glusterfs-11.2.tar.gz) = 6ac463047c5b1fee1d00ca9d6c16169762ed31c7d3b8dfb341bb8a90b83c15fdd9d48ebbe6cf79eee885f764cfa5391f4107837764c0a182eff1b51bede63d48 diff --git a/swift.conf b/swift.conf deleted file mode 100644 index adbd96f..0000000 --- a/swift.conf +++ /dev/null @@ -1,2 +0,0 @@ -[swift-hash] -swift_hash_path_suffix = %SWIFT_HASH_PATH_SUFFIX%