1
0
forked from pool/glusterfs

- remove dependency on /usr/bin/python3 using

%python3_fix_shebang{,_path} macros, [bsc#1212476]

OBS-URL: https://build.opensuse.org/package/show/filesystems/glusterfs?expand=0&rev=100
This commit is contained in:
Jan Engelhardt 2024-08-29 13:28:45 +00:00 committed by Git OBS Bridge
commit c2f3614c25
6 changed files with 796 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,44 @@
From 5d0533d0858194ed6d365f1080db7ab10d0e3d11 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: Wed, 5 Jul 2023 18:15:22 +0900
Subject: [PATCH] glusterfs: fix heap-buffer-overflow on startup
References: https://github.com/gluster/glusterfs/issues/4192
==4418==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x613000000190
at pc 0x7f028cd2341c bp 0x7ffd9c5ba7e0 sp 0x7ffd9c5ba7d8
WRITE of size 8 at 0x613000000190 thread T0
f0 in mem_get_pool_list ~/libglusterfs/src/mem-pool.c:786
0x613000000190 is located 0 bytes after 336-byte region [0x613000000040,0x613000000190)
allocated by thread T0 here:
f0 in malloc (/usr/lib64/libasan.so.8+0xdc04f) (BuildId: 44194dcf14c212b57346030492309d59d5379ae1)
f1 in __gf_default_malloc glusterfs/mem-pool.h:112
f2 in mem_get_pool_list ~/libglusterfs/src/mem-pool.c:778
``NPOOLS-1`` is just wrong. ``per_thread_pool_list_t`` does not include one free
``per_thread_pool_t``.
Fixes: https://github.com/gluster/glusterfs/issues/4192
Fixes: v11dev-211-g1cfff6e6ec ("Use flexible array members (#3411)")
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
---
libglusterfs/src/mem-pool.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/libglusterfs/src/mem-pool.c b/libglusterfs/src/mem-pool.c
index f053fdceae..e258758158 100644
--- a/libglusterfs/src/mem-pool.c
+++ b/libglusterfs/src/mem-pool.c
@@ -589,8 +589,7 @@ mem_pools_preinit(void)
}
pool_list_size = sizeof(per_thread_pool_list_t) +
- sizeof(per_thread_pool_t) * (NPOOLS - 1);
-
+ sizeof(per_thread_pool_t) * NPOOLS;
init_done = GF_MEMPOOL_INIT_EARLY;
}
--
2.41.0

BIN
glusterfs-11.1.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

453
glusterfs.changes Normal file
View File

@ -0,0 +1,453 @@
-------------------------------------------------------------------
Thu Aug 22 18:11:49 UTC 2024 - pgajdos@suse.com
- remove dependency on /usr/bin/python3 using
%python3_fix_shebang{,_path} macros, [bsc#1212476]
-------------------------------------------------------------------
Fri Dec 15 08:56:08 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Update to release 11.1
* Fix upgrade issue by reverting posix change related to
storage.reserve value
* Fix possible data loss during rebalance if there is any
linkfile on the system
- Delete 0001-socket-only-issue-IPPROTO_IPV6-setsockopt-calls-on-A.patch
(merged),
-------------------------------------------------------------------
Wed Jul 5 09:28:08 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Add 0001-glusterfs-fix-heap-buffer-overflow-on-startup.patch
-------------------------------------------------------------------
Sat Jun 10 13:29:09 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Disable IO_uring for now [boo#1210894]
-------------------------------------------------------------------
Tue May 23 23:25:48 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Add 0001-socket-only-issue-IPPROTO_IPV6-setsockopt-calls-on-A.patch
[boo#1210894]
-------------------------------------------------------------------
Tue Feb 21 10:20:10 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Update to release 11 [boo#1208517] [boo#1208519]
* Major performance impovement of ~36% with rmdir operations
* Extension of ZFS support for snapshots
* Qouta implimentation based on namespace
* Major cleanups and readdir/readdirp improvements
-------------------------------------------------------------------
Thu Jul 14 11:13:34 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- add explicit Requires for the dependencies, so we make sure
the dependencies are installed in the same version
-------------------------------------------------------------------
Fri May 20 08:37:19 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 10.2
* Some 165 bugfixes with none particularly sticking out
-------------------------------------------------------------------
Wed Jan 19 00:00:00 CET 2022 - dsterba@suse.cz
- add python-rpm-macros as dependency, fix build on on Leap 15.x
-------------------------------------------------------------------
Tue Sep 28 14:31:30 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Update to release 9.3
* New reset-brick command
* Ability to get node level status of a cluster
* Multi-threaded self-heal for Disperse volumes
* Lock revocation feature
* On-demand scrubbing for bitrot detection
* Real time Cluster notifications using Events APIs
- Move mount helper to /usr/sbin [boo#1191062]
-------------------------------------------------------------------
Thu Apr 29 10:29:59 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Update to release 9.1
* Implemented seek file operation for open-behind
* Added io_uring support for Gluster
* Added Support for 5K volumes
* Enabled granular-entry-heal by default
* Added support for monitoring the epoll/rpc layer
* Improve rebalance of sparse files
- Drop nocommon.patch (merged)
-------------------------------------------------------------------
Thu Jun 4 11:44:27 UTC 2020 - Callum Farmer <callumjfarmer13@gmail.com>
- Fixes for %_libexecdir changing to /usr/libexec
-------------------------------------------------------------------
Thu Jan 9 15:30:24 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.1
* Fix rebalance causing IO Error - File descriptor in bad state
* Fix geo-replication sessions going faulty
* Fix memory leak in glusterfsd process
* Fix GlusterFS brick process crash
- Add nocommon.patch [boo#1160392]
-------------------------------------------------------------------
Thu Dec 26 08:22:55 UTC 2019 - Neal Gompa <ngompa13@gmail.com>
- Fix the name of the Python bindings subpackage
- Properly mark Python bindings subpackage as noarch
-------------------------------------------------------------------
Fri Dec 13 16:13:06 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.0
* Latency based read child to improve read workload latency in
a cluster, especially in a cloud setup. Also provides a load
balancing with the outstanding pending request.
* Thin-arbiter integration with GD1.
* If a client older than glusterfs-4.x (i.e. 3.x clients)
accesses a volume which has the `fips-mode-rchecksum` volume
option enabled, it can cause erroneous checksum computation/
unwanted behaviour during afr self-heal.
-------------------------------------------------------------------
Wed Apr 24 08:59:02 UTC 2019 - Martin Liška <mliska@suse.cz>
- Move definition of _lto_cflags into %build.
-------------------------------------------------------------------
Tue Apr 23 11:33:06 UTC 2019 - Martin Liška <mliska@suse.cz>
- Disable LTO (boo#1133088).
-------------------------------------------------------------------
Sun Mar 17 06:01:34 UTC 2019 - seanlew@opensuse.org
- Update to new upstream version 5.5
* No changelog yet available in release notes
-------------------------------------------------------------------
Sat Mar 02 14:53:04 UTC 2019 - seanlew@opensuse.org
- Update to new upstream version 5.4
* FUSE Client memory leak fixed (#1623107)
* fail to sync non-ascii utf8 file and dir names (#1648642)
* Tracker bug for all leases related issues (#1651323)
* gluster-blockd segfaults because of a null-deref (#1659563)
* Memory leak: dict_t leak in rda_opendir (#1659676)
* dht_revalidate may not heal attrs on the brick root (#1660736)
* Fix tests/bugs/shard/zero-flag.t (#1660932)
* NL cache: fix typos (#1662200)
-------------------------------------------------------------------
Sat Jan 19 06:52:11 UTC 2019 - seanlew@opensuse.org
- Update to new upstream version 5.3 (4.0 is EOL)
* 5.3 brings hundreds of improvements, see complete relnote at
https://docs.gluster.org/en/latest/release-notes/5.0/
* Fixed a number of bugs:
CVE-2018-1088, CVE-2018-1112 [boo#1090084],
CVE-2018-10904 [boo#1107018], CVE-2018-10907 [boo#1107019],
CVE-2018-10911 [boo#1107020], CVE-2018-10913 [boo#1107021],
CVE-2018-10914 [boo#1107022], CVE-2018-10923 [boo#1107023],
CVE-2018-10924 [boo#1107024], CVE-2018-10926 [boo#1107025],
CVE-2018-10927 [boo#1107026], CVE-2018-10928 [boo#1107027],
CVE-2018-10928 [boo#1107027], CVE-2018-10929 [boo#1107028],
CVE-2018-10930 [boo#1107029], boo#1105776 .
- Remove patches no longer needed in 5.x:
* 0001-build-restore-ability-to-control-verbosity-settings.patch
* glusterfs-tirpc.diff
-------------------------------------------------------------------
Thu May 3 11:50:05 UTC 2018 - jengelh@inai.de
- Update to new upstream release 4.0.2
* GlusterD2 (GD2) is a new management daemon for Gluster-4.0,
glustercli is the command-line interface for it.
It is a preview release. GD2 is not backwards compatible with
the older GlusterD. Heterogeneous clusters running both GD2
and GlusterD are not possible.
* Not all commands from GlusterD have been implemented for GD2.
* GD2 does not (yet) work well in 2-node clusters.
* Self Heal feature integrated for the new Volumes created
using Glusterd2.
-------------------------------------------------------------------
Thu Dec 14 18:47:07 UTC 2017 - jengelh@inai.de
- Add 0001-build-restore-ability-to-control-verbosity-settings.patch
- Replace xdr_sizeof.c with an empty file
-------------------------------------------------------------------
Mon Dec 4 14:03:38 UTC 2017 - jengelh@inai.de
- Update to new release 3.12.3
* -- Features introduced in 3.10
* Brick multiplexing
* Support to display op-version information from clients
* Support for rebalance time to completion estimation
* Separation of tier as its own service
* Statedump support for gfapi based applications
* Disabled creation of trash directory by default
* Implemented parallel readdirp with distribute xlator
* -- Features introduced in 3.12:
* Ability to mount sub-directories using the Gluster
FUSE protocol
* GFID to path conversion is enabled by default
* Provided an option to set a limit on number of bricks
multiplexed in a processes
* Enhanced the option to export statfs data for bricks
sharing the same backend filesystem
* Provided a means to resolve GFID split-brain using
the gluster CLI
* Introduction of new api glfs_fd_set_lkowner() to set lock owner
- Remove glusterfs-date.diff (no longer applies)
-------------------------------------------------------------------
Mon Nov 13 07:49:33 CET 2017 - kukuk@suse.de
- glusterfs-tirpc.diff: fallback to libtirpc if there is no sunrpc
support in glibc
-------------------------------------------------------------------
Fri Nov 3 10:10:48 UTC 2017 - mpluskal@suse.com
- Explicitly require python2 as python3 is not yet supported
-------------------------------------------------------------------
Wed Oct 18 11:28:29 UTC 2017 - vcizek@suse.com
- Add missing Requires: libacl-devel to the devel subpackage
* glfs.h #includes <sys/acl.h>
-------------------------------------------------------------------
Wed Aug 23 15:58:34 UTC 2017 - vcizek@suse.com
- Update to version 3.8.15
* fixes build with OpenSSL 1.1 (bsc#1055466)
* Mandatory lock support for Multiprotocol environment
* Gluster/NFS disabled by default
* Geo-replication for Sharded Volumes
* Tiering aware Geo-replication
* Enhance Quota enable/disable in glusterd
* Automagic unsplit-brain by [ctime|mtime|size|majority] for AFR
* Granular Entry self-heal for AFR
* Tons of bugfixes
* for more details see the NEWS file
- spec cleanup
- Install License files/docu
-------------------------------------------------------------------
Tue Oct 27 20:38:50 UTC 2015 - scorot@free.fr
- Update to version 3.6.6
* No ChangeLog available
-------------------------------------------------------------------
Tue Aug 4 19:07:46 UTC 2015 - scorot@free.fr
- Update to version 3.6.4
* No ChangeLog available
- Fix Url
-------------------------------------------------------------------
Thu Apr 9 16:39:09 UTC 2015 - afaerber@suse.de
- Update to version 3.6.2
* glusterfs-api.pc had version 0.0.0 in v3.6.1, now 4.3.6.2
This is still a backwards jump from v3.6.0 (7.0.0) and v3.5.3 (6).
* Package glfsheal again
-------------------------------------------------------------------
Thu Jan 15 15:03:38 UTC 2015 - p.drouand@gmail.com
- Update to version 3.6.1
* api: versioned symbols in libgfapi.so for compatibility
* Use versioned symbols to keep libgfapi at libgfapi.so.0.0.0
* Some nits uncovered:
- there are a couple functions declared that do not have an
associated definition, e.g. glfs_truncate(), glfs_caller_specific_init()
- there are seven private/internal functions used by heal/src/glfsheal
and the gfapi master xlator (glfs-master.c): glfs_loc_touchup(),
glfs_active_subvol(), and glfs_subvol_done(), glfs_init_done(),
glfs_resolve_at(), glfs_free_from_ctx(), and glfs_new_from_ctx();
which are not declared in glfs.h;
- for this initial pass at versioned symbols, we use the earliest version
of all public symbols, i.e. those for which there are declarations in
glfs.h or glfs-handles.h.
Further investigation as we do backports to 3.6, 3.4, and 3.4
will be required to determine if older implementations need to
be preserved (forward ported) and their associated alias(es) and
symbol version(s) defined.
-------------------------------------------------------------------
Mon Aug 4 21:27:22 UTC 2014 - scorot@free.fr
- Update to new upstream release 3.5.2
* NFS server crashes in _socket_read_vectored_request
* Can't write to quota enable folder
* nfs: reset command does not alter the result for nfs options
earlier set
* features/gfid-access: stat on .gfid virtual directory return
EINVAL
* creating symlinks generates errors on stripe volume
* Self-heal errors with "afr crawl failed for child 0 with ret -1"
while performing rolling upgrade.
* [AFR] I/O fails when one of the replica nodes go down
* Fix inode leaks in gfid-access xlator
* NFS subdir authentication doesn't correctly handle
multi-(homed,protocol,etc) network addresses
* nfs-utils should be installed as dependency while installing
glusterfs-server
* Excessive logging in quotad.log of the kind 'null client'
* client_t clienttable cliententries are never expanded when all
entries are used
* AFR : self-heal of few files not happening when a AWS EC2 Instance
is back online after a restart
* Dist-geo-rep : deletion of files on master, geo-rep fails to
propagate to slaves.
* Allow the usage of the wildcard character '*' to the options
"nfs.rpc-auth-allow" and "nfs.rpc-auth-reject"
* glfsheal: Improve the way in which we check the presence of
replica volumes
* Resource cleanup doesn't happen for clients on servers after
disconnect
* mounting a volume over NFS (TCP) with MOUNT over UDP fails
* backport 'gluster volume status --xml' issues
* Glustershd memory usage too high
-------------------------------------------------------------------
Tue Jul 29 19:48:39 UTC 2014 - scorot@free.fr
- Update to new upstream release 3.5.1
* A new volume option server.manage-gids has been added.
This option should be used when users of a volume are in more
than approximately 93 groups (Bug 1096425).
* Duplicate Request Cache for NFS has now been disabled by
default, this may reduce performance for certain workloads,
but improves the overall stability and memory footprint for
most users.
* Others changes are mostly bug fixes.
- disable systemd pre an post scripts for old product and then fix
build on SLE 11
-------------------------------------------------------------------
Mon May 5 22:40:02 UTC 2014 - jengelh@inai.de
- Update to new upstream release 3.5.0
* AFR_CLI_enhancements: Improved logging with more clarity and
statistical information. It allows visibility into why a
self-heal process was initiated and which files are affected, for
example. Prior to this enhancement, clearly identifying
split-brain issues from the logs was often difficult, and there
was no facility to identify which files were affected by a split
brain issue automatically. Remediating split brain without quorum
will still require some manual effort, but with the tools
provided, this will become much simpler.
* Exposing Volume Capabilities: Provides client-side insight into
whether a volume is using the BD translator and, if so, which
capabilities are being utilized.
* File Snapshot: Provides a mechanism for snapshotting individual
files. The most prevalent use case for this feature will be to
snapshot running VMs, allowing for point-in-time capture. This
also allows a mechanism to revert VMs to a previous state
directly from Gluster, without needing to use external tools.
* GFID Access: A new method for accessing data directly by GFID.
With this method, the data can be directly consumed in changelog
translator, which is logging gfid internally, very efficiently.
* On-Wire Compression + Decompression: Use of this feature reduces
the overall network overhead for Gluster operations from a
client.
* Prevent NFS restart on Volume change (Part 1): Previously, any
volume change (volume option, volume start, volume stop, volume
delete, brick add, etc.) would restart the NFS server, which led
to service disruptions. This feature allow modifying certain
NFS-based volume options without such interruptions occurring.
Part 1 is anything not requiring a graph change.
* Quota Scalability: Massively increase the amount of quota
configurations from a few hundred to 65536 per volume.
* readdir_ahead: Gluster now provides read-ahead support for
directories to improve sequential directory read performance.
* zerofill: Enhancement to allow zeroing out of VM disk images,
which is useful in first time provisioning or for overwriting an
existing disk.
* Brick Failure Detection: Detecting failures on the filesystem
that a brick uses makes it possible to handle errors that are
caused from outside of the Gluster environment.
* Disk encryption: Implement the previous work done in HekaFS into
Gluster. This allows a volume (or per-tenant part of a volume) to
be encrypted “at rest” on the server using keys only available on
the client. [Note: Only content of regular files is encrypted.
File names are not encrypted! Also, encryption does not work in
NFS mounts.]
* Geo-Replication Enhancement: Previously, the geo-replication
process, gsyncd, was a single point of failure as it only ran on
one node in the cluster. If the node running gsyncd failed, the
entire geo-replication process was offline until the issue was
addressed. In this latest incarnation, the improvement is
extended even further by foregoing use of xattrs to identify
change candidates and directly consuming from the volume
changelog, which will improve performance twofold: one, by
keeping a running list of only those files that may need to be
synced; and two, the changelog is maintained in memory, which
will allow near instant access to which data needs to be changed
and where by the gsync daemon.
-------------------------------------------------------------------
Thu Feb 28 21:58:02 UTC 2013 - jengelh@inai.de
- Update to new upstream release 3.4.0alpha (rpm: 3.4.0~qa9)
* automake-1.13 support
- Enable AIO support
-------------------------------------------------------------------
Tue Nov 27 11:28:36 UTC 2012 - jengelh@inai.de
- Use `glusterd -N` in glusterd.service to run in foreground
as required
-------------------------------------------------------------------
Tue Nov 27 10:59:15 UTC 2012 - cfarrell@suse.com
- license update: GPL-2.0 or LGPL-3.0+
-------------------------------------------------------------------
Fri Nov 9 21:47:11 UTC 2012 - jengelh@inai.de
- Update to new upstream release 3.4.0qa2
* No changelog provided by upstream
- Remove glusterfs-init.diff, merged upstream
- Provide systemd service file
-------------------------------------------------------------------
Wed Oct 31 12:19:47 UTC 2012 - jengelh@inai.de
- Update to new upstream release 3.3.1
* mount.glusterfs: Add support for {attribute,entry}-timeout options
* cli: Proper xml output for "gluster peer status"
* self-heald: Fix inode leak
* storage/posix: implement native linux AIO support
-------------------------------------------------------------------
Mon Sep 24 03:45:09 UTC 2012 - jengelh@inai.de
- Update to new upstream release 3.3.0
* New: Unified File & Object access
* New: Hadoop hooks - HDFS compatibility layer
* New volume type: Repstr - replicated + striped (+ distributed)
volumes
-------------------------------------------------------------------
Fri Dec 2 15:43:43 UTC 2011 - coolo@suse.com
- add automake as buildrequire to avoid implicit dependency
-------------------------------------------------------------------
Wed Oct 5 22:17:35 UTC 2011 - jengelh@medozas.de
- Initial package for build.opensuse.org

272
glusterfs.spec Normal file
View File

@ -0,0 +1,272 @@
#
# spec file for package glusterfs
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: glusterfs
Version: 11.1
Release: 0
Summary: Aggregating distributed file system
License: GPL-2.0-only OR LGPL-3.0-or-later
Group: System/Filesystems
URL: https://www.gluster.org/
#Git-Clone: https://github.com/gluster/glusterfs
#Git-Clone: https://github.com/fvzwieten/lsgvt
#Changelog: https://docs.gluster.org/en/latest/release-notes/
Source: https://download.gluster.org/pub/gluster/glusterfs/11/%version/glusterfs-%version.tar.gz
Patch2: 0001-glusterfs-fix-heap-buffer-overflow-on-startup.patch
BuildRequires: acl-devel
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: libaio-devel
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
BuildRequires: python3
BuildRequires: readline-devel
BuildRequires: rpcgen
BuildRequires: systemd-rpm-macros
BuildRequires: pkgconfig(fuse) >= 2.6.5
BuildRequires: pkgconfig(libcrypto)
BuildRequires: pkgconfig(libtirpc)
BuildRequires: pkgconfig(liburcu)
%if 0%{?suse_version} >= 1550
BuildRequires: pkgconfig(liburing) >= 0.3
%endif
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(uuid)
Requires: libgfapi0 = %version
Requires: libgfchangelog0 = %version
Requires: libgfrpc0 = %version
Requires: libgfxdr0 = %version
Requires: libglusterfs0 = %version
%{?systemd_ordering}
%description
GlusterFS is a clustered 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.
%package -n libgfapi0
Summary: GlusterFS API library
Group: System/Libraries
%description -n libgfapi0
GlusterFS is a clustered file-system capable of scaling to several
petabytes.
%package -n libgfchangelog0
Summary: GlusterFS volume changelog translator library
Group: System/Libraries
%description -n libgfchangelog0
GlusterFS is a clustered file-system capable of scaling to several
petabytes.
The goal of this volume translator is to capture changes performed on
a GlusterFS volume. The translator needs to be loaded on the server
(bricks) and captures changes in a plain text file inside a
configured directory path (controlled by the "changelog-dir"
directive).
%package -n libgfrpc0
Summary: GlusterFS Remote Procedure Call library
Group: System/Libraries
%description -n libgfrpc0
GlusterFS is a clustered file-system capable of scaling to several
petabytes.
%package -n libgfxdr0
Summary: GlusterFS's External Data Representation library
Group: System/Libraries
%description -n libgfxdr0
GlusterFS is a clustered file-system capable of scaling to several
petabytes.
%package -n libglusterfs0
Summary: GlusterFS's core library
Group: System/Libraries
%description -n libglusterfs0
GlusterFS is a clustered file-system capable of scaling to several
petabytes.
%package -n python3-gluster
Summary: Python bindings for GlusterFS
Group: Development/Languages/Python
BuildArch: noarch
# Legacy Python 2 bindings are no longer available...
Obsoletes: python-gluster < 7.0
%description -n python3-gluster
GlusterFS is a clustered file-system capable of scaling to several
petabytes.
%package devel
Summary: Development files for glusterfs
Group: Development/Libraries/C and C++
Requires: %name = %version
Requires: libacl-devel
Requires: libgfapi0 = %version
Requires: libgfchangelog0 = %version
Requires: libgfrpc0 = %version
Requires: libgfxdr0 = %version
Requires: libglusterfs0 = %version
%description devel
GlusterFS is a clustered file-system capable of scaling to several
petabytes.
This package provides development files such as headers and library
links.
%prep
%autosetup -p1
%build
%define _lto_cflags %nil
./autogen.sh
%configure \
--without-tcmalloc \
--disable-linux-io_uring \
%if 0%{?suse_version} >= 1550
--with-mountutildir="%_sbindir" \
%endif
--disable-static --with-ipv6-default
%make_build
%install
b="%buildroot"
%make_install docdir="%_docdir/%name"
find "$b" -type f -name "*.la" -delete -print
mkdir -pv "$b/%_localstatedir/log"/{glusterd,glusterfs,glusterfsd}
cp -av ChangeLog NEWS README.md "$b/%_docdir/%name/"
chmod -v u-s "%buildroot/%_bindir/fusermount-glusterfs"
rm -fv "%buildroot/%_sbindir/conf.py"
rm -f "%buildroot/etc/bash_completion.d/gluster.bash"
%fdupes %buildroot/%_prefix
%python3_fix_shebang
%if %{suse_version} >= 1600
%python3_fix_shebang_path %{buildroot}%{_libexecdir}/ganesha/*
%python3_fix_shebang_path %{buildroot}%{_libexecdir}/glusterfs/*
%python3_fix_shebang_path %{buildroot}%{_libexecdir}/glusterfs/gfevents/*
%python3_fix_shebang_path %{buildroot}%{_libexecdir}/glusterfs/glusterfind/*
%python3_fix_shebang_path %{buildroot}%{_libexecdir}/glusterfs/python/syncdaemon/*
%python3_fix_shebang_path %{buildroot}%{_libexecdir}/glusterfs/gfind_missing_files/*
%python3_fix_shebang_path %{buildroot}%{_libexecdir}/glusterfs/scripts/*
%python3_fix_shebang_path %{buildroot}%{_datadir}/glusterfs/scripts/*
%endif
%pre
%service_add_pre glusterd.service glustereventsd.service glusterfssharedstorage.service gluster-ta-volume.service
%post
%service_add_post glusterd.service glustereventsd.service glusterfssharedstorage.service gluster-ta-volume.service
%preun
%service_del_preun glusterd.service glustereventsd.service glusterfssharedstorage.service gluster-ta-volume.service
%postun
%service_del_postun glusterd.service glustereventsd.service glusterfssharedstorage.service gluster-ta-volume.service
%post -n libgfapi0 -p /sbin/ldconfig
%postun -n libgfapi0 -p /sbin/ldconfig
%post -n libgfchangelog0 -p /sbin/ldconfig
%postun -n libgfchangelog0 -p /sbin/ldconfig
%post -n libgfrpc0 -p /sbin/ldconfig
%postun -n libgfrpc0 -p /sbin/ldconfig
%post -n libgfxdr0 -p /sbin/ldconfig
%postun -n libgfxdr0 -p /sbin/ldconfig
%post -n libglusterfs0 -p /sbin/ldconfig
%postun -n libglusterfs0 -p /sbin/ldconfig
%files
%license COPYING*
%dir %_sysconfdir/ganesha
%dir %_sysconfdir/%name
%_sysconfdir/ganesha/*.sample
%config(noreplace) %_sysconfdir/%name/eventsconfig.json
%config(noreplace) %_sysconfdir/%name/g*lusterd.vol
%config(noreplace) %_sysconfdir/%name/glusterfs-logrotate
%config %_sysconfdir/%name/gluster-rsyslog*
%config %_sysconfdir/%name/glusterfs-georep*
%config %_sysconfdir/%name/group-*
%config %_sysconfdir/%name/gsync*
%config %_sysconfdir/%name/logger*
%config %_sysconfdir/%name/thin*
%_bindir/fusermount-glusterfs
%_bindir/glusterfind
%_libexecdir/ganesha/
%_libexecdir/%name/
%_libdir/%name/
%_sbindir/gluster*
%_sbindir/gcron.py
%_sbindir/gf_attach
%_sbindir/gfind_missing_files
%if 0%{?suse_version} >= 1550
%_sbindir/mount.%name
%else
/sbin/mount.%name
%endif
%_sbindir/snap_scheduler.py
%_datadir/glusterfs/
%_mandir/man*/*
%_docdir/%name
%_localstatedir/lib/glusterd
%_localstatedir/log/%name
%_unitdir/glusterd.service
%_unitdir/glustereventsd.service
%_unitdir/glusterfssharedstorage.service
%_unitdir/gluster-ta-volume.service
/usr/lib/ocf
%files -n libgfapi0
%_libdir/libgfapi.so.0*
%files -n libgfchangelog0
%_libdir/libgfchangelog.so.0*
%files -n libgfrpc0
%_libdir/libgfrpc.so.0*
%files -n libgfxdr0
%_libdir/libgfxdr.so.0*
%files -n libglusterfs0
%_libdir/libglusterfs.so.0*
%files -n python3-gluster
%python3_sitelib/gluster/
%files devel
%_includedir/%name/
%_libdir/*.so
%_libdir/pkgconfig/*.pc
%changelog