diff options
Diffstat (limited to 'gnu/packages/dejagnu.scm')
-rw-r--r-- | gnu/packages/dejagnu.scm | 96 |
1 files changed, 53 insertions, 43 deletions
diff --git a/gnu/packages/dejagnu.scm b/gnu/packages/dejagnu.scm index 08be5a8afd..f3445b3d87 100644 --- a/gnu/packages/dejagnu.scm +++ b/gnu/packages/dejagnu.scm @@ -1,7 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flasher.co.il> +;;; Copyright © 2016, 2017, 2022 Efraim Flashner <efraim@flasher.co.il> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2022 Marius Bakke <marius@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,60 +22,69 @@ (define-module (gnu packages dejagnu) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix build-system gnu) #:use-module (guix licenses) + #:use-module (gnu packages bash) #:use-module (gnu packages tcl)) (define-public dejagnu (package (name "dejagnu") - (version "1.6.2") + (version "1.6.3") (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/dejagnu/dejagnu-" - version ".tar.gz")) - (sha256 - (base32 - "0qfj2wd4qk1yn9yzam6g8nmyxfazcc0knjyyibycb2ainkhp21hd")))) + (method url-fetch) + (uri (string-append "mirror://gnu/dejagnu/dejagnu-" + version ".tar.gz")) + (sha256 + (base32 + "1qx2cv6qkxbiqg87jh217jb62hk3s7dmcs4cz1llm2wmsynfznl7")))) (build-system gnu-build-system) - (inputs (list expect)) + (inputs (list bash-minimal expect)) (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - ;; Note: The test-suite *requires* /dev/pts among the - ;; `build-chroot-dirs' of the build daemon when - ;; building in a chroot. See - ;; <http://thread.gmane.org/gmane.linux.distributions.nixos/1036> - ;; for details. - (if (and (directory-exists? "/dev/pts") - (directory-exists? "/proc")) - (begin - ;; Provide `runtest' with a log name, otherwise it - ;; tries to run `whoami', which fails when in a chroot. - (setenv "LOGNAME" "guix-builder") + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh + (lambda* (#:key inputs #:allow-other-keys) + ;; Patch embedded /bin/sh references. + (let ((/bin/sh (search-input-file inputs "/bin/sh"))) + (substitute* "dejagnu" + (("exec /bin/sh") + (string-append "exec " /bin/sh))) + (substitute* (find-files "testsuite/report-card.all") + (("/bin/sh") /bin/sh))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + ;; Note: The test-suite *requires* /dev/pts among the + ;; `build-chroot-dirs' of the build daemon when + ;; building in a chroot. See + ;; <http://thread.gmane.org/gmane.linux.distributions.nixos/1036> + ;; for details. + (when tests? + (if (and (directory-exists? "/dev/pts") + (directory-exists? "/proc")) + (begin + ;; Provide `runtest' with a log name, otherwise it + ;; tries to run `whoami', which fails when in a chroot. + (setenv "LOGNAME" "guix-builder") - ;; The test-suite needs to have a non-empty stdin: - ;; <http://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html>. - (unless (zero? (system "make check < /dev/zero")) - (error "make check failed"))) - (display "test suite cannot be run, skipping\n")) - #t)) - (add-after 'install 'post-install - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Use the right `expect' binary. - (let ((out (assoc-ref outputs "out")) - (expect (assoc-ref inputs "expect"))) - (substitute* (string-append out "/bin/runtest") - (("^mypath.*$" all) - (string-append all - "export PATH=" - expect "/bin:$PATH\n"))) - #t)))))) - (home-page - "https://www.gnu.org/software/dejagnu/") + ;; The test-suite needs to have a non-empty stdin: + ;; <http://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html>. + (unless (zero? (system "make check < /dev/zero")) + (error "make check failed"))) + (display "test suite cannot be run, skipping\n"))))) + (add-after 'install 'post-install + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Use the right `expect' binary. + (let ((expect (search-input-file inputs "/bin/expect"))) + (substitute* (string-append #$output "/bin/runtest") + (("^mypath.*$" all) + (string-append all + "export PATH=" + (dirname expect) ":$PATH\n"))))))))) + (home-page "https://www.gnu.org/software/dejagnu/") (synopsis "GNU software testing framework") (description "DejaGnu is a framework for testing software. In effect, it serves as |