diff options
-rw-r--r-- | gnu-system.am | 1 | ||||
-rw-r--r-- | gnu/packages/base.scm | 4 | ||||
-rw-r--r-- | gnu/packages/patches/coreutils-skip-nohup.patch | 28 |
3 files changed, 32 insertions, 1 deletions
diff --git a/gnu-system.am b/gnu-system.am index b5be893854..97dc92cdfc 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -252,6 +252,7 @@ dist_patch_DATA = \ gnu/packages/patches/cdparanoia-fpic.patch \ gnu/packages/patches/cmake-fix-tests.patch \ gnu/packages/patches/coreutils-dummy-man.patch \ + gnu/packages/patches/coreutils-skip-nohup.patch \ gnu/packages/patches/cpio-gets-undeclared.patch \ gnu/packages/patches/curl-fix-test172.patch \ gnu/packages/patches/dbus-localstatedir.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index f828f3531c..89d90c989b 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -240,7 +240,9 @@ used to apply commands with arbitrarily long arguments.") (sha256 (base32 "04hjzzv434fb8ak3hh3dyhdvg3hqjjwvjmjxqzk1gh2jh6cr8gjv")) - (patches (list (search-patch "coreutils-dummy-man.patch"))))) + (patches (list (search-patch "coreutils-dummy-man.patch") + ;; TODO: remove this patch for >= 8.23 + (search-patch "coreutils-skip-nohup.patch"))))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp))) diff --git a/gnu/packages/patches/coreutils-skip-nohup.patch b/gnu/packages/patches/coreutils-skip-nohup.patch new file mode 100644 index 0000000000..f5283a6b21 --- /dev/null +++ b/gnu/packages/patches/coreutils-skip-nohup.patch @@ -0,0 +1,28 @@ +commit 5dce6bdfafc930dfd17d5d16aea7d1add3472066 +Author: Pádraig Brady <P@draigBrady.com> +Date: Wed Mar 5 15:14:07 2014 +0000 + + tests: fix false failure in nohup.sh in non tty builds + + * tests/misc/nohup.sh: When running tests without a controlling tty, + an exec failure is triggered in a subshell, which causes POSIX + shells to immediately exit the subshell. This was brought + to notice by the newly conforming bash 4.3. + Fixes http:/bugs.gnu.org/16940 + +diff --git a/tests/misc/nohup.sh b/tests/misc/nohup.sh +index 6d2b515..2328b43 100755 +--- a/tests/misc/nohup.sh ++++ b/tests/misc/nohup.sh +@@ -63,6 +63,11 @@ rm -f nohup.out err + # to stderr must be fatal. Requires stdout to be terminal. + if test -w /dev/full && test -c /dev/full; then + ( ++ # POSIX shells immediately exit the subshell on exec error. ++ # So check we can write to /dev/tty before the exec, which ++ # isn't possible if we've no controlling tty for example. ++ test -c /dev/tty && >/dev/tty || exit 0 ++ + exec >/dev/tty + test -t 1 || exit 0 + nohup echo hi 2> /dev/full |