summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-05-11 12:52:43 +0200
committerLudovic Courtès <ludo@gnu.org>2020-05-11 13:03:23 +0200
commitcef0e08c235d1eb9943571648ef57a59041bb292 (patch)
treeb5b04cd92f3cfd69354f906de9d57cf012d82015
parentf69cf40741f6ba4e79a5e8f6dae407d96f4433ec (diff)
downloadguix-cef0e08c235d1eb9943571648ef57a59041bb292.tar.gz
gnu: proot: Fix test failures.
The upgrade to Make 4.3 and Coreutils 8.30 introduced test failures that
this commit addresses.

* gnu/packages/base.scm (coreutils-8.30): New variable.
* gnu/packages/linux.scm (proot)[native-inputs]: Add COREUTILS-8.30 and
GNU-MAKE-4.2.
-rw-r--r--gnu/packages/base.scm28
-rw-r--r--gnu/packages/linux.scm11
2 files changed, 38 insertions, 1 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 5ea129a9ae..279fe9e3d8 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -384,6 +384,34 @@ standard.")
     (outputs '("out"))
     (inputs '())))
 
+(define-public coreutils-8.30
+  ;; XXX: This version is kept just so we can run PRoot tests.
+  (hidden-package
+   (package
+     (inherit coreutils-minimal)
+     (version "8.30")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "mirror://gnu/coreutils/coreutils-"
+                                   version ".tar.xz"))
+               (sha256
+                (base32
+                 "0mxhw43d4wpqmvg0l4znk1vm10fy92biyh90lzdnqjcic2lb6cg8"))))
+     (arguments
+      (substitute-keyword-arguments (package-arguments coreutils-minimal)
+        ((#:phases phases '%standard-phases)
+         `(modify-phases ,phases
+            (add-before 'check 'disable-broken-test
+              (lambda _
+                ;; This test hits the 127 character shebang limit in the build
+                ;; environment due to the way "env -S" splits arguments into
+                ;; shebangs.  Note that "env-S-script.sh" works around this
+                ;; specific issue, but "env-S.pl" is not adjusted for build
+                ;; environments with long prefixes (/tmp/guix-build-...).
+                (substitute* "Makefile"
+                  (("^.*tests/misc/env-S.pl.*$") ""))
+                #t)))))))))
+
 (define-public gnu-make
   (package
    (name "make")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index c429b05cff..7cf7521e24 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -6099,7 +6099,16 @@ userspace queueing component and the logging subsystem.")
     (native-inputs `(("which" ,which)
 
                      ;; For 'mcookie', used by some of the tests.
-                     ("util-linux" ,util-linux)))
+                     ("util-linux" ,util-linux)
+
+                     ;; XXX: Choose the old coreutils because its 'stat'
+                     ;; program does not use statx(2) when running 'stat -c
+                     ;; %a' or similar, which PRoot doesn't properly support.
+                     ("coreutils-old" ,coreutils-8.30)
+
+                     ;; XXX: 'test-c6b77b77.sh' runs 'make' and that leads
+                     ;; make 4.3 to segfault.
+                     ("make-old" ,gnu-make-4.2)))
     (inputs `(("talloc" ,talloc)))
     (home-page "https://github.com/proot-me/PRoot")
     (synopsis "Unprivileged chroot, bind mount, and binfmt_misc")