;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; 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 . (define-module (gnu packages hugs) #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages gcc)) (define-public hugs (package (name "hugs") (version "Sep2006") (source (origin (method url-fetch) (uri (string-append "https://www.haskell.org/hugs/downloads/2006-09/" name "98-plus-" version ".tar.gz")) (sha256 (base32 "1mdy4aq4campgmnpc2qwq7bsbfhaxfsqdghbyyz2wms4lnfcmyma")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-before 'configure 'fix-sh-n-cp (lambda _ (substitute* '("configure" "libraries/configure" "packages/time/configure" "packages/base/configure" "packages/X11/configure" "packages/HGL/configure" "packages/OpenAL/configure" "packages/OpenGL/configure" "packages/network/configure" "packages/unix/configure" "packages/Cabal/tests/HSQL/configure" "packages/ALUT/configure" "packages/GLUT/configure" "packages/base/cbits/execvpe.c" "packages/base/System/Process/Internals.hs" "packages/Cabal/Distribution/attic" "packages/Cabal/Distribution/Simple/Register.hs" "packages/Cabal/Distribution/Simple/Hugs.hs" "tools/hugs-hc" "src/machdep.c" "libraries/Makefile.in") (("/bin/sh") (which "sh"))) (substitute* '("demos/Makefile.in" "libraries/Makefile.in") (("/bin/cp") (which "cp"))) #t))) #:tests? #f)) ; no test target ;; FIXME: Fails to build with GCC 5. (native-inputs `(("gcc" ,gcc-4.9))) (home-page "https://www.haskell.org/hugs/") (synopsis "Functional programming system based on Haskell 98") (description "Hugs 98 is an interpreter and programming environment for developing Haskell programs. It provides an almost complete implementation of Haskell 98, which includes expression and pattern syntax, primitives for monadic I/O, with support for simple interactive programs, handle-based I/O, and exception handling. Hugs has a nearly complete implementation of the Haskell module system and supports a number of advanced extensions.") (license (non-copyleft "file://License" "See License in the distribution.")))) them in 'update-field' calls. * tests/guix-refresh.sh (GUIX_TEST_UPDATER_TARGETS): Add "libreoffice" to the dependencies of "the-test-package". Add 'updater-ignored-inputs' property to "the-test-package". * doc/guix.texi (Invoking guix refresh): Document it. Ludovic Courtès 2023-05-31upstream: 'update-package-source' edits input fields....Previously, 'guix refresh r-ggplot2 -u' and similar commands would print of list of input changes that would have to be made manually. With this change, 'guix refresh -u' takes care of updating input fields automatically. * guix/upstream.scm (update-package-inputs): New procedure. (update-package-source): Call it when 'upstream-source-inputs' returns true. * guix/scripts/refresh.scm (update-package): Remove iteration over the result of 'changed-inputs'. * guix/import/test.scm (available-updates): Add support for input lists. * tests/guix-refresh.sh (GUIX_TEST_UPDATER_TARGETS): Add input list for "the-test-package". Make sure 'guix refresh -u' updates 'inputs' accordingly. * doc/guix.texi (Invoking guix refresh): Mention it. Ludovic Courtès 2023-04-21tests: Relax two tests that expected a non-zero error code....* tests/guix-package-aliases.sh: "guix upgrade foo bar" has always returned zero; adjust accordingly. * tests/guix-refresh.sh: "guix refresh -t test idutils" and similar return zero; adjust accordingly. Ludovic Courtès 2023-04-21tests: Fix checks for expected failures....Addresses <https://issues.guix.gnu.org/62406>. With 'set -e', a return status inverted with '!' does not cause the shell to exit immediately. Instead use '&& false' to indicate an expected failure. * tests/guix-archive.sh, tests/guix-build-branch.sh, tests/guix-build.sh, tests/guix-daemon.sh, tests/guix-download.sh, tests/guix-environment-container.sh, tests/guix-environment.sh, tests/guix-gc.sh, tests/guix-git-authenticate.sh, tests/guix-graph.sh, tests/guix-hash.sh, tests/guix-home.sh, tests/guix-pack-relocatable.sh, tests/guix-pack.sh, tests/guix-package-aliases.sh, tests/guix-package-net.sh, tests/guix-package.sh, tests/guix-refresh.sh, tests/guix-shell.sh, tests/guix-style.sh, tests/guix-system.sh: Replace uses of '! ...' with '... && false' or `test ! ...` as appropriate. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Eric Bavier 2023-01-25tests: Do not try to create "$HOME/.config"....Previously this test would fail when HOME=/homeless-shelter and said directory cannot be created. * tests/guix-refresh.sh: Pass '--keyring' together with '-u'. Ludovic Courtès 2023-01-08refresh: Add CLI tests....* guix/import/test.scm, tests/guix-refresh.sh: New files. * Makefile.am (MODULES, SH_TESTS): Add them. Ludovic Courtès