summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/file-systems.scm64
-rw-r--r--gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch140
3 files changed, 29 insertions, 176 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index b2938e878b..1c7386a95a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -924,7 +924,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-2.28-supported-locales.patch     	\
   %D%/packages/patches/glibc-supported-locales.patch     	\
   %D%/packages/patches/glm-restore-install-target.patch		\
-  %D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch		\
   %D%/packages/patches/gmp-arm-asm-nothumb.patch		\
   %D%/packages/patches/gmp-faulty-test.patch			\
   %D%/packages/patches/gnome-shell-theme.patch			\
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 85bfd8dd38..1594cac846 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -41,6 +41,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
@@ -146,63 +147,56 @@ non-determinism in the build process.")
 (define-public glusterfs
   (package
     (name "glusterfs")
-    (version "3.10.12")
+    (version "7.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.gluster.org/pub/gluster/glusterfs/"
-                           (version-major+minor version) "/" version
-                           "/glusterfs-" version ".tar.gz"))
+                           (version-major version) "/"
+                           (version-major+minor version) "/"
+                           "glusterfs-" version ".tar.gz"))
        (sha256
         (base32
-         "01ysvamvfv2l5pswa1rygpg8w0954h2wkh1ba97h3nx03m5n0prg"))
-       (patches
-        (search-patches "glusterfs-use-PATH-instead-of-hardcodes.patch"))))
+         "0yzhx710ypj0j3m5dcgmmgvkp7p0rmmp2p7ld0axrm4vpwc2b1wa"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
-       (let ((out (assoc-ref %outputs "out")))
-         (list (string-append "--with-initdir=" out "/etc/init.d")
-               (string-append "--with-mountutildir=" out "/sbin")))
+       (let ((out (assoc-ref %outputs "out"))
+             (p2 (assoc-ref %build-inputs "python-2")))
+         (list (string-append "PYTHON=" p2 "/bin/python")
+               (string-append "--with-initdir=" out "/etc/init.d")
+               (string-append "--with-mountutildir=" out "/sbin")
+               "--enable-cmocka"  ; unit tests
+               ;; "--enable-debug"  ; debug build options
+               ;; "--enable-asan"  ; Address Sanitizer
+               ;; "--enable-tsan"  ; ThreadSanitizer
+               ))
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'replace-config.sub
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; The distributed config.sub is intentionally left empty and
-             ;; must be replaced.
-             (install-file (string-append (assoc-ref inputs "automake")
-                                          "/share/automake-"
-                                          ,(version-major+minor (package-version automake)) "/config.sub")
-                           ".")
-             #t))
-         ;; Fix flex error.  This has already been fixed with upstream commit
-         ;; db3fe245a9e8812829eae7d143e49d0bfdfef9a7, but is not available in
-         ;; current releases.
-         (add-before 'configure 'fix-lex
-           (lambda _
-             (substitute* "libglusterfs/src/Makefile.in"
-               (("libglusterfs_la_LIBADD = @LEXLIB@")
-                "libglusterfs_la_LIBADD ="))
-             #t)))))
+         (add-before 'configure 'autogen
+           (lambda _ (invoke "./autogen.sh"))))))
     (native-inputs
-     `(("cmocka" ,cmocka)
-       ("pkg-config" ,pkg-config)
+     `(("pkg-config" ,pkg-config)
+       ("libtirpc", libtirpc)
+       ("rpcsvc-proto", rpcsvc-proto)
        ("python-2" ,python-2) ; must be version 2
        ("flex" ,flex)
        ("bison" ,bison)
-       ("automake" ,automake)))
+       ("libtool" ,libtool)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("cmocka" ,cmocka)))
     (inputs
      `(("acl" ,acl)
-       ;; GlusterFS fails to build with libressl because HMAC_CTX_new and
-       ;; HMAC_CTX_free are undefined.
+       ("fuse", fuse)
        ("openssl" ,openssl)
        ("liburcu" ,liburcu)
        ("libuuid" ,util-linux)
        ("libxml2" ,libxml2)
-       ("lvm2" ,lvm2)
        ("readline" ,readline)
-       ("sqlite" ,sqlite) ; for tiering
-       ("zlib" ,zlib)))
+       ("zlib" ,zlib)
+       ("libaio", libaio)
+       ("rdma-core", rdma-core)))
     (home-page "https://www.gluster.org")
     (synopsis "Distributed file system")
     (description "GlusterFS is a distributed scalable network file system
diff --git a/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch b/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch
deleted file mode 100644
index d05b4351b3..0000000000
--- a/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-This patch was taken from Nixpkgs.
-
-From 616381bc25b0e90198683fb049f994e82d467d96 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
-Date: Sat, 13 May 2017 02:45:49 +0200
-Subject: [PATCH] Don't use hardcoded /sbin, /usr/bin etc. paths. Fixes
- #1450546.
-
-Instead, rely on programs to be in PATH, as gluster already
-does in many places across its code base.
-
-Change-Id: Id21152fe42f5b67205d8f1571b0656c4d5f74246
----
- contrib/fuse-lib/mount-common.c               |  8 ++++----
- xlators/mgmt/glusterd/src/glusterd-ganesha.c  |  6 +++---
- xlators/mgmt/glusterd/src/glusterd-quota.c    |  6 +++---
- xlators/mgmt/glusterd/src/glusterd-snapshot.c |  4 ++--
- xlators/mgmt/glusterd/src/glusterd-utils.c    | 14 +-------------
- 5 files changed, 13 insertions(+), 25 deletions(-)
-
-diff --git a/contrib/fuse-lib/mount-common.c b/contrib/fuse-lib/mount-common.c
-index e9f80fe81..6380dd867 100644
---- a/contrib/fuse-lib/mount-common.c
-+++ b/contrib/fuse-lib/mount-common.c
-@@ -255,16 +255,16 @@ fuse_mnt_umount (const char *progname, const char *abs_mnt,
-                         exit (1);
-                 }
- #ifdef GF_LINUX_HOST_OS
--                execl ("/bin/umount", "/bin/umount", "-i", rel_mnt,
-+                execl ("umount", "umount", "-i", rel_mnt,
-                        lazy ? "-l" : NULL, NULL);
--                GFFUSE_LOGERR ("%s: failed to execute /bin/umount: %s",
-+                GFFUSE_LOGERR ("%s: failed to execute umount: %s",
-                                progname, strerror (errno));
- #elif __NetBSD__
-                 /* exitting the filesystem causes the umount */
-                 exit (0);
- #else
--                execl ("/sbin/umount", "/sbin/umount", "-f", rel_mnt, NULL);
--                GFFUSE_LOGERR ("%s: failed to execute /sbin/umount: %s",
-+                execl ("umount", "umount", "-f", rel_mnt, NULL);
-+                GFFUSE_LOGERR ("%s: failed to execute umount: %s",
-                                progname, strerror (errno));
- #endif /* GF_LINUX_HOST_OS */
-                 exit (1);
-diff --git a/xlators/mgmt/glusterd/src/glusterd-quota.c b/xlators/mgmt/glusterd/src/glusterd-quota.c
-index 0e6629cf0..fcb4738b7 100644
---- a/xlators/mgmt/glusterd/src/glusterd-quota.c
-+++ b/xlators/mgmt/glusterd/src/glusterd-quota.c
-@@ -30,7 +30,7 @@
- 
- #ifndef _PATH_SETFATTR
- # ifdef GF_LINUX_HOST_OS
--#  define _PATH_SETFATTR "/usr/bin/setfattr"
-+#  define _PATH_SETFATTR "setfattr"
- # endif
- # ifdef __NetBSD__
- #  define _PATH_SETFATTR "/usr/pkg/bin/setfattr"
-@@ -335,7 +335,7 @@ _glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv,
- 
-                 if (type == GF_QUOTA_OPTION_TYPE_ENABLE ||
-                     type == GF_QUOTA_OPTION_TYPE_ENABLE_OBJECTS)
--                        runner_add_args (&runner, "/usr/bin/find", ".", NULL);
-+                        runner_add_args (&runner, "find", ".", NULL);
- 
-                 else if (type == GF_QUOTA_OPTION_TYPE_DISABLE) {
- 
-@@ -351,7 +351,7 @@ _glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv,
-                                          VIRTUAL_QUOTA_XATTR_CLEANUP_KEY, "1",
-                                          "{}", "\\", ";", NULL);
- #else
--                        runner_add_args (&runner, "/usr/bin/find", ".",
-+                        runner_add_args (&runner, "find", ".",
-                                          "-exec", _PATH_SETFATTR, "-n",
-                                          VIRTUAL_QUOTA_XATTR_CLEANUP_KEY, "-v",
-                                          "1", "{}", "\\", ";", NULL);
-diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot.c b/xlators/mgmt/glusterd/src/glusterd-snapshot.c
-index da0152366..f0d135350 100644
---- a/xlators/mgmt/glusterd/src/glusterd-snapshot.c
-+++ b/xlators/mgmt/glusterd/src/glusterd-snapshot.c
-@@ -121,7 +121,7 @@ glusterd_build_snap_device_path (char *device, char *snapname,
-         }
- 
-         runinit (&runner);
--        runner_add_args (&runner, "/sbin/lvs", "--noheadings", "-o", "vg_name",
-+        runner_add_args (&runner, "lvs", "--noheadings", "-o", "vg_name",
-                          device, NULL);
-         runner_redir (&runner, STDOUT_FILENO, RUN_PIPE);
-         snprintf (msg, sizeof (msg), "Get volume group for device %s", device);
-@@ -1982,7 +1982,7 @@ glusterd_is_thinp_brick (char *device, uint32_t *op_errno)
- 
-         runinit (&runner);
- 
--        runner_add_args (&runner, "/sbin/lvs", "--noheadings", "-o", "pool_lv",
-+        runner_add_args (&runner, "lvs", "--noheadings", "-o", "pool_lv",
-                          device, NULL);
-         runner_redir (&runner, STDOUT_FILENO, RUN_PIPE);
-         runner_log (&runner, this->name, GF_LOG_DEBUG, msg);
-diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
-index 51db13df0..6fa7b92f9 100644
---- a/xlators/mgmt/glusterd/src/glusterd-utils.c
-+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
-@@ -6027,7 +6027,6 @@ static struct fs_info {
-         char *fs_tool_pattern;
-         char *fs_tool_pkg;
- } glusterd_fs[] = {
--        /* some linux have these in /usr/sbin/and others in /sbin/? */
-         { "xfs", "xfs_info", NULL, "isize=", "xfsprogs" },
-         { "ext3", "tune2fs", "-l", "Inode size:", "e2fsprogs" },
-         { "ext4", "tune2fs", "-l", "Inode size:", "e2fsprogs" },
-@@ -6048,7 +6047,6 @@ glusterd_add_inode_size_to_dict (dict_t *dict, int count)
-         char           *trail             = NULL;
-         runner_t        runner            = {0, };
-         struct fs_info *fs                = NULL;
--        char            fs_tool_name[256] = {0, };
-         static dict_t  *cached_fs         = NULL;
- 
-         memset (key, 0, sizeof (key));
-@@ -6085,17 +6083,7 @@ glusterd_add_inode_size_to_dict (dict_t *dict, int count)
-                                 cur_word = "N/A";
-                                 goto cached;
-                         }
--
--                        snprintf (fs_tool_name, sizeof (fs_tool_name),
--                                  "/usr/sbin/%s", fs->fs_tool_name);
--                        if (sys_access (fs_tool_name, R_OK|X_OK) == 0)
--                                runner_add_arg (&runner, fs_tool_name);
--                        else {
--                                snprintf (fs_tool_name, sizeof (fs_tool_name),
--                                          "/sbin/%s", fs->fs_tool_name);
--                                if (sys_access (fs_tool_name, R_OK|X_OK) == 0)
--                                        runner_add_arg (&runner, fs_tool_name);
--                        }
-+                        runner_add_arg (&runner, fs->fs_tool_name);
-                         break;
-                 }
-         }
--- 
-2.12.0
-