aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; 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>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(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.3")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/dejagnu/dejagnu-"
                           version ".tar.gz"))
       (sha256
        (base32
         "1qx2cv6qkxbiqg87jh217jb62hk3s7dmcs4cz1llm2wmsynfznl7"))))
    (build-system gnu-build-system)
    (inputs (list bash-minimal expect))
    (arguments
     (list
      ;; Do an out-of-source build to work-around a non-deterministic bug in Expect:
      ;; <https://lists.gnu.org/archive/html/bug-dejagnu/2021-06/msg00013.html>.
      #:out-of-source? #true
      #: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")))))
          (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
a front-end for all tests written for a program.  Thus, each program can have
multiple test suites, which are then all managed by a single harness.")
    (license gpl3+)))
ve.scm?id=e13b631e03e5d7740182a671a96dda9d1e458de6'>gnu: texlive: Update to 2022....* gnu/packages/texlive.scm (%texlive-date): Update to 20220321. (texlive-extra-src, texlive-texmf-src, texlivebin): Update source hashes. Andreas Enge 2023-08-17gnu: texlive: Simplify the monolithic build....This removes phases added for the needs of the modular build system. It reverts commit dfdc002c9bf86270941823a96abded0aa5d44088 and subsequent ones, which download scripts from subversion instead of using those from the distribution. It also reverts the changes started in commit 04a0b1e09abce99857e7930336421ca6d15ae630 and removes the GUIX_TEXMF environment variable. * gnu/packages/texlive.scm (%texlive-tag, %texlive-revision): Remove variables. (texlivebin)[inputs]: Remove texlive-scripts. [phases]: Remove 'unpack-texlive-scripts, 'patch-scripts and 'customize-texmf.cnf and the script handling in 'post-install. [native-search-paths]: Remove them. Andreas Enge 2023-08-17gnu: texlive: Reinstate the monolithic texlive package....This goes back essentially to commit ad457d01147b8d6fcb4ee64b2dc2d699caa1d1ee and defines the monolithic texlive packages independently of the modular ones. It also downgrades their version to 2021. Not using dashes in the names of texlivebin and texlivetexmf prevents the profile hook for font mapping from being run during the command "guix shell -D texlive". * gnu/packages/tex.scm (texlive-bin-full): Remove variable. (biber): Remove variable deprecation. (texlive-texm, texlive): Move variables from here... * gnu/packages/texlive.scm (texlivetexm, texlive): ...to this new file. (%texlive-date, %texlive-version, %texlive-tag, %texlive-revision, texlive-extra-src, texlive-texmf-src, texlivebin): New variables. (biber): Add variable again. * gnu/packages/patches/biber-adapt-perl-5.36.patch: Add file again. * gnu/local.mk (GNU_SYSTEM_MODULES, dist_patch_DATA): Register files. Andreas Enge