aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/autotools.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/autotools.scm')
-rw-r--r--gnu/packages/autotools.scm118
1 files changed, 82 insertions, 36 deletions
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index f569b0e92a..657d4d3cb9 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -9,6 +9,8 @@
;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -54,12 +56,43 @@
(base32
"113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4"))))
(build-system gnu-build-system)
+ (inputs
+ ;; TODO: remove `if' in the next rebuild cycle.
+ (if (%current-target-system)
+ `(("bash" ,bash-minimal)
+ ("perl" ,perl)
+ ("m4" ,m4))
+ '()))
(native-inputs
`(("perl" ,perl)
("m4" ,m4)))
- ;; XXX: testsuite: 209 and 279 failed. The latter is an impurity. It
- ;; should use our own "cpp" instead of "/lib/cpp".
- (arguments `(#:tests? #f))
+ (arguments
+ `(;; XXX: testsuite: 209 and 279 failed. The latter is an impurity. It
+ ;; should use our own "cpp" instead of "/lib/cpp".
+ #:tests? #f
+ ,@(if (%current-target-system)
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'patch-non-shebang-references
+ (lambda* (#:key build inputs outputs #:allow-other-keys)
+ ;; `patch-shebangs' patches shebangs only, and the Perl
+ ;; scripts use a re-exec feature that references the
+ ;; build hosts' perl. Also, BASH and M4 store references
+ ;; hide in the scripts.
+ (let ((bash (assoc-ref inputs "bash"))
+ (m4 (assoc-ref inputs "m4"))
+ (perl (assoc-ref inputs "perl"))
+ (out (assoc-ref outputs "out"))
+ (store-directory (%store-directory)))
+ (substitute* (find-files (string-append out "/bin"))
+ (((string-append store-directory "/[^/]*-bash-[^/]*"))
+ bash)
+ (((string-append store-directory "/[^/]*-m4-[^/]*"))
+ m4)
+ (((string-append store-directory "/[^/]*-perl-[^/]*"))
+ perl))
+ #t)))))
+ '())))
(home-page "https://www.gnu.org/software/autoconf/")
(synopsis "Create source code configuration scripts")
(description
@@ -249,17 +282,24 @@ output is indexed in many ways to simplify browsing.")
(define-public automake
(package
(name "automake")
- (version "1.16.1")
+ (version "1.16.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz"))
(sha256
(base32
- "08g979ficj18i1w6w5219bgmns7czr03iadf20mk3lrzl8wbn1ax"))
+ "1l7dkqbsmbf94ax29jj1jf6a0r6ikc8jybg1p5m0c3ki7pg5ki6c"))
(patches
(search-patches "automake-skip-amhello-tests.patch"))))
(build-system gnu-build-system)
+ (inputs
+ ;; TODO: remove `if' in the next rebuild cycle.
+ (if (%current-target-system)
+ `(("autoconf" ,autoconf-wrapper)
+ ("bash" ,bash-minimal)
+ ("perl" ,perl))
+ '()))
(native-inputs
`(("autoconf" ,autoconf-wrapper)
("perl" ,perl)))
@@ -268,7 +308,7 @@ output is indexed in many ways to simplify browsing.")
(variable "ACLOCAL_PATH")
(files '("share/aclocal")))))
(arguments
- '(#:modules ((guix build gnu-build-system)
+ `(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1)
(srfi srfi-26)
@@ -288,6 +328,37 @@ output is indexed in many ways to simplify browsing.")
(setenv "CONFIG_SHELL" sh)
#t)))
+ (add-before 'check 'skip-test
+ (lambda _
+ ;; This test requires 'etags' and fails if it's missing.
+ ;; Skip it.
+ (substitute* "t/tags-lisp-space.sh"
+ (("^required.*" all)
+ (string-append "exit 77\n" all "\n")))
+ #t))
+
+ ,@(if (%current-target-system)
+ `((add-after 'install 'patch-non-shebang-references
+ (lambda* (#:key build inputs outputs #:allow-other-keys)
+ ;; `patch-shebangs' patches shebangs only, and the Perl
+ ;; scripts use a re-exec feature that references the
+ ;; build hosts' perl. Also, AUTOCONF and BASH store
+ ;; references hide in the scripts.
+ (let ((autoconf (assoc-ref inputs "autoconf"))
+ (bash (assoc-ref inputs "bash"))
+ (perl (assoc-ref inputs "perl"))
+ (out (assoc-ref outputs "out"))
+ (store-directory (%store-directory)))
+ (substitute* (find-files (string-append out "/bin"))
+ (((string-append store-directory "/[^/]*-autoconf-[^/]*"))
+ autoconf)
+ (((string-append store-directory "/[^/]*-bash-[^/]*"))
+ bash)
+ (((string-append store-directory "/[^/]*-perl-[^/]*"))
+ perl))
+ #t))))
+ '())
+
;; Files like `install-sh', `mdate.sh', etc. must use
;; #!/bin/sh, otherwise users could leak erroneous shebangs
;; in the wild. See <http://bugs.gnu.org/14201> for an
@@ -324,32 +395,6 @@ intuitive format and then Automake works with Autoconf to produce a robust
Makefile, simplifying the entire process for the developer.")
(license gpl2+))) ; some files are under GPLv3+
-(define-public automake-1.16.2
- (package
- (inherit automake)
- (version "1.16.2")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/automake/automake-"
- version ".tar.xz"))
- (sha256
- (base32
- "1l7dkqbsmbf94ax29jj1jf6a0r6ikc8jybg1p5m0c3ki7pg5ki6c"))
- (patches
- (search-patches "automake-skip-amhello-tests.patch"))))
- (arguments
- (substitute-keyword-arguments (package-arguments automake)
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-before 'check 'skip-test
- (lambda _
- ;; This test requires 'etags' and fails if it's missing.
- ;; Skip it.
- (substitute* "t/tags-lisp-space.sh"
- (("^required.*" all)
- (string-append "exit 77\n" all "\n")))
- #t))))))))
-
(define-public libtool
(package
(name "libtool")
@@ -379,21 +424,22 @@ Makefile, simplifying the entire process for the developer.")
;; XXX: There are test failures on mips64el-linux starting from 2.4.4:
;; <http://hydra.gnu.org/build/181662>.
- #:tests? ,(not (string-prefix? "mips64"
- (or (%current-target-system)
+ ;; Also, do not run tests when cross compiling
+ #:tests? ,(not (or (%current-target-system)
+ (string-prefix? "mips64"
(%current-system))))
#:phases
(modify-phases %standard-phases
(add-before 'check 'pre-check
- (lambda* (#:key inputs #:allow-other-keys)
+ (lambda* (#:key inputs native-inputs #:allow-other-keys)
;; Run the test suite in parallel, if possible.
(setenv "TESTSUITEFLAGS"
(string-append
"-j"
(number->string (parallel-job-count))))
;; Patch references to /bin/sh.
- (let ((bash (assoc-ref inputs "bash")))
+ (let ((bash (assoc-ref (or native-inputs inputs) "bash")))
(substitute* "tests/testsuite"
(("/bin/sh")
(string-append bash "/bin/sh")))