;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2015 Ludovic Courtès ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; 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 m4) #:use-module (guix licenses) #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu)) (define-public m4 (package (name "m4") (version "1.4.18") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/m4/m4-" version ".tar.xz")) (sha256 (base32 "01sfjd5a4waqw83bibvmn522g69qfqvwig9i2qlgy154l1nfihgj")))) (build-system gnu-build-system) (arguments `(;; Explicitly disable tests when cross-compiling, otherwise 'make check' ;; proceeds and fails, unsurprisingly. #:tests? ,(not (%current-target-system)) #:phases (modify-phases %standard-phases (add-before 'check 'pre-check (lambda* (#:key inputs #:allow-other-keys) ;; Fix references to /bin/sh. (let ((bash (assoc-ref inputs "bash"))) (for-each patch-shebang (find-files "tests" "\\.sh$")) (substitute* (find-files "tests" "posix_spawn") (("/bin/sh") (format #f "~a/bin/sh" bash))) #t)))))) (synopsis "Macro processor") (description "GNU M4 is an implementation of the M4 macro language, which features some extensions over other implementations, some of which are required by GNU Autoconf. It is used as a macro processor, which means it processes text, expanding macros as it encounters them. It also has some built-in functions, for example to run shell commands or to do arithmetic.") (license gpl3+) (home-page "https://www.gnu.org/software/m4/"))) '>2023-07-11home: services: bash: Properly quote shell aliases....Fixes <https://issues.guix.gnu.org/63048>. Reported by Ekaitz Zarraga <ekaitz@elenq.tech>. * gnu/home/services.scm (with-shell-quotation-bindings): New procedure. (environment-variable-shell-definitions): Use it instead of inline copy. * gnu/home/services/shells.scm (bash-serialize-aliases): Use it. Add clause for 'literal-string?'. * tests/guix-home.sh: Add 'aliases' to 'home-bash-extension' and test it. 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-03-26tests: Fix guix-home.sh when guix isn't installed...* tests/guix-home.sh: Reorder NIX_STORE_DIR variable definition to prevent guix from crashing due to missing /gnu/store. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Ting-Wei Lan 2023-01-09home: environment-variables: Fix escaping....* gnu/home/services.scm (environment-variable-shell-definitions): Fix escaping. * tests/guix-home.sh: Add STRING_WITH_ESCAPES environment variable and test its value. Reported-by: elevnkb Andrew Tropin 2023-01-09home: environment-variables: Return support for file-likes and gexps....* gnu/home/services.scm (environment-variable-shell-definitions): Add support for file-likes and gexps. * tests/guix-home.sh: Add SHELL environment variable and test its value. Add BUILDHOSTTIME environment variable. Andrew Tropin 2023-01-05home: services: environment-variables: Add support for literal strings....* gnu/home/services.scm (<literal-string>): New record type. (environment-variable-shell-definitions): Split 'shell-quote' into 'quote-string' and 'shell-double-quote'. Add 'shell-single-quote'. Add clause for 'literal-string' records. * tests/guix-home.sh: Test it. * doc/guix.texi (Essential Home Services): Document it. Ludovic Courtès