* gnu/packages/shells.scm (tcsh): Update to 6.19.00. [arguments]: Use ‘modify-phases’ instead of ‘alist-delete’. * gnu/packages/patches/tcsh-fix-autotest.patch: Update patch. ---
Guix! A minor update for tcsh, as wel as #:phases. Only four tests fail now when building unpatched on my x86_64-linux machine, down from six in the previous version. I've trimmed down ‘tcsh-fix-autotest.patch’ to only disabled those 4 tests. This may be overly optimistic. Testing (tips) welcome. Kind regards, T G-R gnu/packages/patches/tcsh-fix-autotest.patch | 157 ++++----------------------- gnu/packages/shells.scm | 52 +++++---- 2 files changed, 47 insertions(+), 162 deletions(-) diff --git a/gnu/packages/patches/tcsh-fix-autotest.patch b/gnu/packages/patches/tcsh-fix-autotest.patch index a169801..cd0e79a 100644 --- a/gnu/packages/patches/tcsh-fix-autotest.patch +++ b/gnu/packages/patches/tcsh-fix-autotest.patch @@ -1,6 +1,7 @@ ---- tests/commands.at 2011-01-22 01:04:02.000000000 +0100 -+++ tests/commands.at 2013-02-04 10:57:24.000000000 +0100 -@@ -919,26 +919,27 @@ +diff -Naur tests/commands.at +--- tests/commands.at 2015-05-05 16:10:58.000000000 +0200 ++++ tests/commands.at 2016-08-02 16:50:04.674459291 +0200 +@@ -921,26 +921,27 @@ TCSH_UNTESTED([notify]) @@ -48,41 +49,9 @@ AT_SETUP([popd]) -@@ -1203,11 +1204,12 @@ - AT_DATA([script.csh], - [[set var=$1 - ]]) --AT_CHECK([[tcsh -f -c 'source -h script.csh foo; history' \ -- | sed 's/ [^ ]* / TIME /']], , --[ 1 TIME source -h script.csh foo ; history -- 2 TIME set var=$1 --]) -+# XXX: Not sure why this fails. The output is : "1 TIME set var=$1" -+#AT_CHECK([[tcsh -f -c 'source -h script.csh foo; history' \ -+# | sed 's/ [^ ]* / TIME /']], , -+#[ 1 TIME source -h script.csh foo ; history -+# 2 TIME set var=$1 -+#]) - - AT_CHECK([tcsh -f -c 'source -h script.csh foo; echo $var'], 1, [], - [var: Undefined variable. ---- tests/lexical.at 2011-12-27 22:50:52.000000000 +0100 -+++ tests/lexical.at 2013-02-04 10:53:21.000000000 +0100 -@@ -33,9 +33,9 @@ - AT_CHECK([echo 'echo OK@%:@comment' | tcsh -f], , [OK - ]) - --AT_CHECK([tcsh -f -c 'echo @%:@no comment'], , --[@%:@no comment --]) -+#AT_CHECK([tcsh -f -c 'echo @%:@no comment'], , -+#[@%:@no comment -+#]) - - AT_DATA([comment2.csh], - [[echo testing...@%:@\ +diff -Naur tests/subst.at --- tests/subst.at 2011-12-27 22:50:52.000000000 +0100 -+++ tests/subst.at 2013-02-01 08:14:25.000000000 +0100 ++++ tests/subst.at 2016-08-02 16:51:19.521043748 +0200 @@ -54,7 +54,7 @@ , [1 ]) @@ -92,49 +61,31 @@ | wc -l | tr -d ' \t'], , [1 ]) ---- tests/variables.at 2011-12-27 22:50:52.000000000 +0100 -+++ tests/variables.at 2013-02-04 11:40:35.000000000 +0100 -@@ -317,17 +317,18 @@ +diff -Naur tests/variables.at +--- tests/variables.at 2015-05-05 16:10:58.000000000 +0200 ++++ tests/variables.at 2016-08-02 17:00:46.256499321 +0200 +@@ -704,13 +704,13 @@ AT_CLEANUP --AT_SETUP([$ edit]) -- --AT_CHECK([TERM=something tcsh -f -c 'echo $?edit'], , --[1 --]) -- --AT_CHECK([TERM=dumb tcsh -f -c 'echo $?edit'], , --[0 +-AT_SETUP([$ cdtohome]) +-AT_CHECK([tcsh -f -c 'cd'], 0) +-AT_CLEANUP +-AT_SETUP([$ noimplicithome]) +-AT_CHECK([tcsh -f -c 'unset cdtohome; cd'], 1, , [cd: Too few arguments. -]) -- -AT_CLEANUP -+# XXX -+#AT_SETUP([$ edit]) -+# -+#AT_CHECK([TERM=something tcsh -f -c 'echo $?edit'], , -+#[1 -+#]) -+# -+#AT_CHECK([TERM=dumb tcsh -f -c 'echo $?edit'], , -+#[0 ++#AT_SETUP([$ cdtohome]) ++#AT_CHECK([tcsh -f -c 'cd'], 0) ++#AT_CLEANUP ++#AT_SETUP([$ noimplicithome]) ++#AT_CHECK([tcsh -f -c 'unset cdtohome; cd'], 1, , [cd: Too few arguments. +#]) -+# +#AT_CLEANUP - AT_SETUP([$ ellipsis]) -@@ -642,7 +643,8 @@ - ls-F -something . - ]]) - AT_DATA([args.sh], --[[echo "$@" -+[[#!/bin/sh -+echo "$@" - ]]) - chmod a+x args.sh - AT_CHECK([tcsh -f listflags.csh], , -@@ -695,55 +697,57 @@ + VAR_UNSET([matchbeep]) +@@ -728,21 +728,22 @@ AT_SETUP([$ owd]) AT_DATA([owd.csh], @@ -165,67 +116,3 @@ ]) AT_CLEANUP - - --AT_SETUP([$ path]) -- --mkdir subdir --AT_DATA([script.sh], --[[echo home --]]) --AT_DATA([subdir/script.sh], --[[echo subdir --]]) --chmod a+x script.sh subdir/script.sh --AT_DATA([path.csh], --[[echo $?path --set path=(. subdir) --script.sh --set path=(subdir .) --script.sh --printenv PATH --setenv PATH :foo::bar: --echo $path --]]) --AT_CHECK([tcsh -f path.csh], , --[1 --home --subdir --subdir:. --. foo . bar . --]) -- --AT_CLEANUP -+# XXX Not sure why this does not work. "home" is printed out twice on stdout. -+#AT_SETUP([$ path]) -+# -+#mkdir subdir -+#AT_DATA([script.sh], -+#[[echo home -+#]]) -+#AT_DATA([subdir/script.sh], -+#[[echo subdir -+#]]) -+#chmod a+x script.sh subdir/script.sh -+#AT_DATA([path.csh], -+#[[echo $?path -+#set path=(. subdir) -+#script.sh -+#set path=(subdir .) -+#script.sh -+#printenv PATH -+#setenv PATH :foo::bar: -+#echo $path -+#]]) -+#AT_CHECK([tcsh -f path.csh], , -+#[1 -+#home -+#subdir -+#subdir:. -+#. foo . bar . -+#]) -+# -+#AT_CLEANUP - - - AT_SETUP([$ printexitvalue]) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 183ef7f..ae0131c 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -160,7 +160,7 @@ has a small feature set similar to a traditional Bourne shell.") (define-public tcsh (package (name "tcsh") - (version "6.18.01") + (version "6.19.00") (source (origin (method url-fetch) ;; Old tarballs are moved to old/. @@ -170,7 +170,7 @@ has a small feature set similar to a traditional Bourne shell.") "old/tcsh-" version ".tar.gz"))) (sha256 (base32 - "1a4z9kwgx1iqqzvv64si34m60gj34p7lp6rrcrb59s7ka5wa476q")) + "0jaw51382pqyb6d1kgfg8ir0wd3p5qr2bmg8svcmjhlyp3h73qhj")) (patches (search-patches "tcsh-fix-autotest.patch")) (patch-flags '("-p0")))) (build-system gnu-build-system) @@ -180,32 +180,30 @@ has a small feature set similar to a traditional Bourne shell.") ("ncurses" ,ncurses))) (arguments `(#:phases - (alist-cons-before - 'check 'patch-test-scripts - (lambda _ - ;; Take care of pwd - (substitute* '("tests/commands.at" "tests/variables.at") - (("/bin/pwd") (which "pwd"))) - ;; The .at files create shell scripts without shebangs. Erk. - (substitute* "tests/commands.at" - (("./output.sh") "/bin/sh output.sh")) - (substitute* "tests/syntax.at" - (("; other_script.csh") "; /bin/sh other_script.csh")) - ;; Now, let's generate the test suite and patch it - (system* "make" "tests/testsuite") + (modify-phases %standard-phases + (add-before 'check 'patch-test-scripts + (lambda _ + ;; Take care of pwd + (substitute* '("tests/commands.at" "tests/variables.at") + (("/bin/pwd") (which "pwd"))) + ;; The .at files create shell scripts without shebangs. Erk. + (substitute* "tests/commands.at" + (("./output.sh") "/bin/sh output.sh")) + (substitute* "tests/syntax.at" + (("; other_script.csh") "; /bin/sh other_script.csh")) + ;; Now, let's generate the test suite and patch it + (system* "make" "tests/testsuite") - ;; This file is ISO-8859-1 encoded. - (with-fluids ((%default-port-encoding #f)) - (substitute* "tests/testsuite" - (("/bin/sh") (which "sh"))))) - (alist-cons-after - 'install 'post-install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref %outputs "out")) - (bin (string-append out "/bin"))) - (with-directory-excursion bin - (symlink "tcsh" "csh")))) - %standard-phases)))) + ;; This file is ISO-8859-1 encoded. + (with-fluids ((%default-port-encoding #f)) + (substitute* "tests/testsuite" + (("/bin/sh") (which "sh")))))) + (add-after 'install 'post-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/bin"))) + (with-directory-excursion bin + (symlink "tcsh" "csh")))))))) (home-page "http://www.tcsh.org/") (synopsis "Unix shell based on csh") (description -- 2.9.0