gnu: fakeroot: Fix test failures.
authorMarius Bakke <mbakke@fastmail.com>
Tue, 5 May 2020 14:29:57 +0000 (16:29 +0200)
committerMarius Bakke <mbakke@fastmail.com>
Tue, 5 May 2020 14:29:57 +0000 (16:29 +0200)
Fixes <https://bugs.gnu.org/41090>.
Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.

* gnu/packages/linux.scm (fakeroot)[inputs]: Change from LIBCAP to LIBCAP/NEXT.
[arguments]: Add substitution for tests that use 'ls' to test for block
devices.

gnu/packages/linux.scm

index e2b3d9e..8eaf79d 100644 (file)
@@ -6641,13 +6641,21 @@ the superuser to make device nodes.")
             ;; We don't have an /etc/passwd entry for "root" - use numeric IDs.
             (substitute* "test/compare-tar"
              (("tar -tvf") "tar --numeric-owner -tvf"))
+
+            ;; coreutils 8.32 changed 'ls' to use the statx() syscall instead
+            ;; of lstat().  fakeroot 1.24 does not support the former, so
+            ;; adjust these tests to use 'test -b' instead of 'ls' to test for
+            ;; block device.  See <https://bugs.gnu.org/41090>.
+            (substitute* '("test/t.mknod" "test/t.chmod_dev")
+              (("ls -ld? \\$tmp/hda3")
+               "test -b $tmp/hda3 && echo block || echo fail"))
             #t)))))
     (native-inputs
      `(("acl" ,acl)
        ("sharutils" ,sharutils) ; for the tests
        ("xz" ,xz))) ; for the tests
     (inputs
-     `(("libcap" ,libcap)
+     `(("libcap" ,libcap/next)
        ("util-linux" ,util-linux)))
     (synopsis "Provides a fake root environment")
     (description "@command{fakeroot} runs a command in an environment where