From a5a82a3cc1f4251c6e5f881b83d46d2528cddb97664240787b237b32204672c0 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Mon, 5 May 2014 22:58:53 +0000 Subject: [PATCH] glusterfs-3.5.0 OBS-URL: https://build.opensuse.org/package/show/filesystems/glusterfs?expand=0&rev=23 --- glusterfs-3.4.0alpha.tar.xz | 3 - glusterfs-3.5.0.tar.gz | 3 + glusterfs-date.diff | 22 ++++---- glusterfs.changes | 62 ++++++++++++++++++++ glusterfs.spec | 109 ++++++++++++++++++++++-------------- 5 files changed, 143 insertions(+), 56 deletions(-) delete mode 100644 glusterfs-3.4.0alpha.tar.xz create mode 100644 glusterfs-3.5.0.tar.gz diff --git a/glusterfs-3.4.0alpha.tar.xz b/glusterfs-3.4.0alpha.tar.xz deleted file mode 100644 index eee99f9..0000000 --- a/glusterfs-3.4.0alpha.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2acd86435bbc48832e57aa39d5a8d1060ca0c92c9fe5c69c868cc9df67bca564 -size 1963644 diff --git a/glusterfs-3.5.0.tar.gz b/glusterfs-3.5.0.tar.gz new file mode 100644 index 0000000..9be69a0 --- /dev/null +++ b/glusterfs-3.5.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39fe20beed23b2c90421255587a2cec1041b9223dc93589c54c2a5f0faa33235 +size 4883901 diff --git a/glusterfs-date.diff b/glusterfs-date.diff index 761f90b..fe46231 100644 --- a/glusterfs-date.diff +++ b/glusterfs-date.diff @@ -15,11 +15,11 @@ not needed libglusterfs/src/graph.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) -Index: glusterfs-3.4.0alpha/cli/src/cli.c +Index: glusterfs-3.5.0/cli/src/cli.c =================================================================== ---- glusterfs-3.4.0alpha.orig/cli/src/cli.c -+++ glusterfs-3.4.0alpha/cli/src/cli.c -@@ -70,7 +70,7 @@ extern int connected; +--- glusterfs-3.5.0.orig/cli/src/cli.c ++++ glusterfs-3.5.0/cli/src/cli.c +@@ -71,7 +71,7 @@ extern int connected; /* using argp for command line parsing */ const char *argp_program_version = "" \ @@ -28,11 +28,11 @@ Index: glusterfs-3.4.0alpha/cli/src/cli.c "\nRepository revision: " GLUSTERFS_REPOSITORY_REVISION "\n" \ "Copyright (c) 2006-2011 Gluster Inc. " \ "\n" \ -Index: glusterfs-3.4.0alpha/glusterfsd/src/glusterfsd.c +Index: glusterfs-3.5.0/glusterfsd/src/glusterfsd.c =================================================================== ---- glusterfs-3.4.0alpha.orig/glusterfsd/src/glusterfsd.c -+++ glusterfs-3.4.0alpha/glusterfsd/src/glusterfsd.c -@@ -80,7 +80,7 @@ static char gf_doc[] = ""; +--- glusterfs-3.5.0.orig/glusterfsd/src/glusterfsd.c ++++ glusterfs-3.5.0/glusterfsd/src/glusterfsd.c +@@ -81,7 +81,7 @@ static char gf_doc[] = ""; static char argp_doc[] = "--volfile-server=SERVER [MOUNT-POINT]\n" \ "--volfile=VOLFILE [MOUNT-POINT]"; const char *argp_program_version = "" @@ -41,10 +41,10 @@ Index: glusterfs-3.4.0alpha/glusterfsd/src/glusterfsd.c "\nRepository revision: " GLUSTERFS_REPOSITORY_REVISION "\n" "Copyright (c) 2006-2013 Red Hat, Inc. \n" "GlusterFS comes with ABSOLUTELY NO WARRANTY.\n" -Index: glusterfs-3.4.0alpha/libglusterfs/src/graph.c +Index: glusterfs-3.5.0/libglusterfs/src/graph.c =================================================================== ---- glusterfs-3.4.0alpha.orig/libglusterfs/src/graph.c -+++ glusterfs-3.4.0alpha/libglusterfs/src/graph.c +--- glusterfs-3.5.0.orig/libglusterfs/src/graph.c ++++ glusterfs-3.5.0/libglusterfs/src/graph.c @@ -40,8 +40,8 @@ _gf_dump_details (int argc, char **argv) fprintf (gf_log_logfile, "========================================" diff --git a/glusterfs.changes b/glusterfs.changes index b12abc3..f053aa0 100644 --- a/glusterfs.changes +++ b/glusterfs.changes @@ -1,3 +1,65 @@ +------------------------------------------------------------------- +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 diff --git a/glusterfs.spec b/glusterfs.spec index 42567c8..8e7ee51 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -1,7 +1,7 @@ # # spec file for package glusterfs # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,13 +17,9 @@ Name: glusterfs -%define lname_api libgfapi0 -%define lname_rpc libgfrpc0 -%define lname_xdr libgfxdr0 -%define lname_gf libglusterfs0 -Version: 3.4.0~qa9 +Version: 3.5.0 Release: 0 -%define rversion 3.4.0alpha +%define rversion 3.5.0 Summary: Aggregating distributed file system License: GPL-2.0 or LGPL-3.0+ Group: System/Filesystems @@ -31,18 +27,19 @@ Url: http://gluster.org/ #Git-Clone: git://github.com/gluster/glusterfs #Git-Clone: git://github.com/fvzwieten/lsgvt -Source: %name-%rversion.tar.xz -Source3: glusterd.service +Source: http://download.gluster.org/pub/gluster/glusterfs/3.5/3.5.0/%name-%version.tar.gz Patch1: glusterfs-date.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: autoconf +BuildRequires: automake BuildRequires: bison BuildRequires: fdupes BuildRequires: flex BuildRequires: libaio-devel +BuildRequires: libtool BuildRequires: pkgconfig BuildRequires: python BuildRequires: readline-devel -BuildRequires: xz %if 0%{?sles_version} == 11 BuildRequires: fuse-devel >= 2.6.5 BuildRequires: libuuid-devel @@ -68,46 +65,61 @@ 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 %lname_api +%package -n libgfapi0 Summary: GlusterFS API library Group: System/Libraries -%description -n %lname_api +%description -n libgfapi0 GlusterFS is a clustered file-system capable of scaling to several petabytes. -%package -n %lname_rpc +%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 %lname_rpc +%description -n libgfrpc0 GlusterFS is a clustered file-system capable of scaling to several petabytes. -%package -n %lname_xdr +%package -n libgfxdr0 Summary: GlusterFS's External Data Representation library Group: System/Libraries -%description -n %lname_xdr +%description -n libgfxdr0 GlusterFS is a clustered file-system capable of scaling to several petabytes. -%package -n %lname_gf +%package -n libglusterfs0 Summary: GlusterFS's core library Group: System/Libraries -%description -n %lname_gf +%description -n libglusterfs0 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: %lname_api = %version -Requires: %lname_gf = %version -Requires: %lname_rpc = %version -Requires: %lname_xdr = %version Requires: %name = %version +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 @@ -117,10 +129,11 @@ This package provides development files such as headers and library links. %prep -%setup -qn %name-%rversion +%setup -q %patch -P 1 -p1 %build +[ ! -e gf-error-codes.h ] && ./autogen.sh %configure --disable-static # This section is not parallel safe or so due to bison/lex make -C libglusterfs/src @@ -166,10 +179,10 @@ perl -i -pe 's{\x0d\x0a}{\x0a}gs' %_docdir/%name/glusterfs-mode.el; %if 0%{?_unitdir:1} mkdir -p "$b/%_unitdir"; -install -pm0644 "%{S:3}" "$b/%_unitdir/"; +rm -Rf "$b/%_initddir" %endif - -%fdupes %buildroot +chmod u-s "$b/%_bindir/fusermount-glusterfs" +%fdupes %buildroot/%_prefix %pre %service_add_pre glusterd.service @@ -183,48 +196,60 @@ install -pm0644 "%{S:3}" "$b/%_unitdir/"; %postun %service_del_postun glusterd.service -%post -n %lname_api -p /sbin/ldconfig -%postun -n %lname_api -p /sbin/ldconfig -%post -n %lname_rpc -p /sbin/ldconfig -%postun -n %lname_rpc -p /sbin/ldconfig -%post -n %lname_xdr -p /sbin/ldconfig -%postun -n %lname_xdr -p /sbin/ldconfig -%post -n %lname_gf -p /sbin/ldconfig -%postun -n %lname_gf -p /sbin/ldconfig +%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 %defattr(-,root,root) -%_initrddir/glusterd %dir %_sysconfdir/%name %config(noreplace) %_sysconfdir/%name/glusterd.vol %config(noreplace) %_sysconfdir/%name/glusterfs-logrotate -#%config %_sysconfdir/%name/*.sample +%config %_sysconfdir/%name/gluster-rsyslog*.conf +%config %_sysconfdir/%name/*.example +%config %_sysconfdir/%name/*-logrotate +%_bindir/fusermount-glusterfs /sbin/mount.%name -%_libexecdir/%name -%_libdir/%name +%_libexecdir/%name/ +%_libdir/%name/ %_sbindir/gluster* +%_datadir/glusterfs/ %_mandir/man*/* %_docdir/%name %_localstatedir/lib/glusterd %_localstatedir/log/%name +%python_sitelib/gluster* %if 0%{?_unitdir:1} %_unitdir/glusterd.service +%else +%_initddir/glusterd* %endif %_prefix/lib/ocf -%files -n %lname_api +%files -n libgfapi0 %defattr(-,root,root) %_libdir/libgfapi.so.0* -%files -n %lname_rpc +%files -n libgfchangelog0 +%defattr(-,root,root) +%_libdir/libgfchangelog.so.0* + +%files -n libgfrpc0 %defattr(-,root,root) %_libdir/libgfrpc.so.0* -%files -n %lname_xdr +%files -n libgfxdr0 %defattr(-,root,root) %_libdir/libgfxdr.so.0* -%files -n %lname_gf +%files -n libglusterfs0 %defattr(-,root,root) %_libdir/libglusterfs.so.0*