Subject: [bug#42306] [PATCH] gnu: Add nfs4-acl-tools

From: Lars-Dominik Braun <[email-masked]>
Date: Mon, 27 Jul 2020 09:11:39 +0200

Hey Marius,

> Sorry for the late reply...
no problem.

> The patch mostly LGTM, but no longer applies.  Can you rebase it on
> current master?  Meanwhile, a few comments:
Sure, see attached patch, which (hopefully) also improves the description.

I noticed linting fails with a pattern matching error, because git:// protocol
URI’s are not supported. The second patch fixes it, but I’m not sure that’s a
“proper” solution.

Cheers,
Lars

From 41e8245fe4f5629a2382ca8dfa1558785d67ef78 Mon Sep 17 00:00:00 2001
From: Lars-Dominik Braun <[email-masked]>
Date: Fri, 10 Jul 2020 11:15:58 +0200
Subject: [PATCH 1/2] gnu: Add nfs4-acl-tools

* gnu/packages/acl.scm (nfs4-acl-tools): New variable.
* gnu/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch: New file.
* gnu/local.mk: Add it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/acl.scm                          | 46 ++++++++++++
 .../nfs4-acl-tools-0.3.7-fixpaths.patch       | 73 +++++++++++++++++++
 3 files changed, 120 insertions(+)
 create mode 100644 gnu/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 8274e158d0..34be1b02e8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1321,6 +1321,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/netsurf-system-utf8proc.patch		\
   %D%/packages/patches/netsurf-y2038-tests.patch		\
   %D%/packages/patches/netsurf-longer-test-timeout.patch	\
+  %D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch	\
   %D%/packages/patches/ngircd-handle-zombies.patch		\
   %D%/packages/patches/network-manager-plugin-path.patch	\
   %D%/packages/patches/nsis-env-passthru.patch			\
diff --git a/gnu/packages/acl.scm b/gnu/packages/acl.scm
index bcab125164..128afc52c2 100644
--- a/gnu/packages/acl.scm
+++ b/gnu/packages/acl.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2018 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2019 Marius Bakke <[email-masked]>
+;;; Copyright © 2020 Lars-Dominik Braun <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,11 +25,14 @@
 (define-module (gnu packages acl)
   #:use-module (guix licenses)
   #:use-module (gnu packages attr)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages perl)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (gnu packages)
   #:use-module (guix build-system gnu))
 
@@ -89,3 +93,45 @@
     (description
      "Library and tools for manipulating access control lists.")
     (license (list gpl2+ lgpl2.1+))))
+
+(define-public nfs4-acl-tools
+  (package
+    (name "nfs4-acl-tools")
+    (version "0.3.7")
+    (source (origin
+              (method git-fetch)
+              ;; tarballs are available here:
+              ;; http://linux-nfs.org/~bfields/nfs4-acl-tools/
+              (uri (git-reference
+                    (url "git://git.linux-nfs.org/projects/bfields/nfs4-acl-tools.git")
+                    (commit (string-append name "-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0lq9xdaskxysggs918vs8x42xvmg9nj7lla21ni2scw5ljld3h1i"))
+              (patches (search-patches "nfs4-acl-tools-0.3.7-fixpaths.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-bin-sh
+           (lambda* (#:key inputs native-inputs #:allow-other-keys)
+             (substitute* "include/buildmacros"
+               (("/bin/sh") (string-append (assoc-ref inputs "bash-minimal") "/bin/sh")))
+             #t)))))
+    (native-inputs
+     `(("automake" ,automake)
+       ("autoconf" ,autoconf)
+       ("bash-minimal" ,bash-minimal)
+       ("libtool" ,libtool)))
+    (inputs
+     `(("attr" ,attr)))
+    (home-page "https://linux-nfs.org/wiki/index.php/Main_Page")
+    (synopsis "Commandline ACL utilities for the Linux NFSv4 client")
+    (description "This package provides the commandline utilities
+@command{nfs4_getfacl} and @command{nfs4_setfacl}, which are similar to their
+POSIX equivalents @command{getfacl} and @command{setfacl}.  They fetch and
+manipulate access control lists for files and directories on NFSv4 mounts.")
+    (license bsd-3)))
+
diff --git a/gnu/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch b/gnu/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch
new file mode 100644
index 0000000000..23cb586766
--- /dev/null
+++ b/gnu/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch
@@ -0,0 +1,73 @@
+Remove fixed search paths from autotools.
+
+--- a/m4/package_utilies.m4	1970-01-01 01:00:01.000000000 +0100
++++ b/m4/package_utilies.m4	2020-07-07 12:41:48.871661042 +0200
+@@ -23,32 +23,32 @@
+     AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler])
+ 
+     if test -z "$MAKE"; then
+-        AC_PATH_PROG(MAKE, gmake,, /usr/bin:/usr/freeware/bin)
++        AC_PATH_PROG(MAKE, gmake)
+     fi
+     if test -z "$MAKE"; then
+-        AC_PATH_PROG(MAKE, make,, /usr/bin)
++        AC_PATH_PROG(MAKE, make)
+     fi
+     make=$MAKE
+     AC_SUBST(make)
+     AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
+ 
+     if test -z "$LIBTOOL"; then
+-	AC_PATH_PROG(LIBTOOL, glibtool,, /usr/bin)
++	AC_PATH_PROG(LIBTOOL, glibtool)
+     fi
+     if test -z "$LIBTOOL"; then
+-	AC_PATH_PROG(LIBTOOL, libtool,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
++	AC_PATH_PROG(LIBTOOL, libtool)
+     fi
+     libtool=$LIBTOOL
+     AC_SUBST(libtool)
+     AC_PACKAGE_NEED_UTILITY($1, "$libtool", libtool, [GNU libtool])
+ 
+     if test -z "$TAR"; then
+-        AC_PATH_PROG(TAR, tar,, /usr/freeware/bin:/bin:/usr/local/bin:/usr/bin)
++        AC_PATH_PROG(TAR, tar)
+     fi
+     tar=$TAR
+     AC_SUBST(tar)
+     if test -z "$ZIP"; then
+-        AC_PATH_PROG(ZIP, gzip,, /bin:/usr/local/bin:/usr/freeware/bin)
++        AC_PATH_PROG(ZIP, gzip)
+     fi
+ 
+     zip=$ZIP
+@@ -61,25 +61,25 @@
+     AC_SUBST(makedepend)
+ 
+     if test -z "$AWK"; then
+-        AC_PATH_PROG(AWK, awk,, /bin:/usr/bin)
++        AC_PATH_PROG(AWK, awk)
+     fi
+     awk=$AWK
+     AC_SUBST(awk)
+ 
+     if test -z "$SED"; then
+-        AC_PATH_PROG(SED, sed,, /bin:/usr/bin)
++        AC_PATH_PROG(SED, sed)
+     fi
+     sed=$SED
+     AC_SUBST(sed)
+ 
+     if test -z "$ECHO"; then
+-        AC_PATH_PROG(ECHO, echo,, /bin:/usr/bin)
++        AC_PATH_PROG(ECHO, echo)
+     fi
+     echo=$ECHO
+     AC_SUBST(echo)
+ 
+     if test -z "$SORT"; then
+-        AC_PATH_PROG(SORT, sort,, /bin:/usr/bin)
++        AC_PATH_PROG(SORT, sort)
+     fi
+     sort=$SORT
+     AC_SUBST(sort)
-- 
2.20.1

From 5c9dddd0d4b54ca73f4fe4ebac37789bde0e54ce Mon Sep 17 00:00:00 2001
From: Lars-Dominik Braun <[email-masked]>
Date: Mon, 27 Jul 2020 09:09:24 +0200
Subject: [PATCH 2/2] =?UTF-8?q?guix:=20lint:=20Ignore=20unsupported=20sour?=
 =?UTF-8?q?ce=20URL=E2=80=99s.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* guix/lint.scm (check-source): Add match case for #f.
---
 guix/lint.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/guix/lint.scm b/guix/lint.scm
index 8a55f3e744..395630aa1c 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -794,6 +794,9 @@ descriptions maintained upstream."
            (#t
             ;; We found a working URL, so stop right away.
             '())
+           (#f
+            ;; Unsupported URL or other error, skip.
+            (loop rest '()))
            ((? lint-warning? warning)
             (loop rest (cons warning warnings))))))))
 
-- 
2.20.1