;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
-;;; Copyright © 2017 ng0 <ng0@n0.is>
-;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 Nikita <nikita@n0.is>
+;;; Copyright © 2017, 2019, 2021 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>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (ice-9 match)
#:export (autoconf-wrapper))
-(define-public autoconf
+(define-public autoconf-2.69
(package
(name "autoconf")
(version "2.69")
"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))
- '()))
+ `(("bash" ,bash-minimal)
+ ("perl" ,perl)
+ ("m4" ,m4)))
(native-inputs
`(("perl" ,perl)
("m4" ,m4)))
know anything about Autoconf or M4.")
(license gpl3+))) ; some files are under GPLv2+
+;; This is the renaissance version, which is not widely supported yet.
+(define-public autoconf-2.71
+ (package
+ (inherit autoconf-2.69)
+ (version "2.71")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/autoconf/autoconf-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "197sl23irn6s9pd54rxj5vcp5y8dv65jb9yfqgr2g56cxg7q6k7i"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments autoconf-2.69)
+ ((#:tests? _ #f)
+ ;; FIXME: To run the test suite, fix all the instances where scripts
+ ;; generates "#! /bin/sh" shebangs.
+ #f)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-before 'check 'prepare-tests
+ (lambda _
+ (for-each patch-shebang
+ (append (find-files "tests"
+ (lambda (file stat)
+ (executable-file? file)))
+ (find-files "bin"
+ (lambda (file stat)
+ (executable-file? file)))))
+ #t))
+ (add-after 'install 'unpatch-shebangs
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Scripts that "autoconf -i" installs (config.guess,
+ ;; config.sub, and install-sh) must use a regular shebang
+ ;; rather than a reference to the store. Restore it.
+ ;; TODO: Move this phase to 'autoconf-2.69'.
+ (let* ((out (assoc-ref outputs "out"))
+ (build-aux (string-append
+ out "/share/autoconf/build-aux")))
+ (substitute* (find-files build-aux)
+ (("^#!.*/bin/sh") "#!/bin/sh")))))))))))
+
+(define-public autoconf autoconf-2.69)
+
(define-public autoconf-2.68
(package (inherit autoconf)
(version "2.68")
(inputs `(("guile"
;; XXX: Kludge to hide the circular dependency.
,(module-ref (resolve-interface '(gnu packages guile))
- 'guile-2.0))
+ 'guile-3.0/fixed))
("autoconf" ,autoconf)
- ("bash" ,bash)))
+ ("bash" ,bash-minimal)))
(arguments
'(#:modules ((guix build utils))
#:builder
;; Do not show it in the UI since it's meant for internal use.
(properties '((hidden? . #t)))))
+;; Only use this package when autoconf is not usable,
+;; see <https://issues.guix.gnu.org/46564#1>.
(define-public autoconf-wrapper
(make-autoconf-wrapper autoconf))
(define-public autoconf-archive
(package
(name "autoconf-archive")
- (version "2019.01.06")
+ (version "2021.02.19")
(source
(origin
(method url-fetch)
version ".tar.xz"))
(sha256
(base32
- "0gqya7nf4j5k98dkky0c3bnr0paciya91vkqazg7knlq621mq68p"))))
+ "1gcwqspcxiygnyk02smsk8ivzs9r69ji38izxzzsijyx52fyp9p8"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/autoconf-archive/")
(synopsis "Collection of freely reusable Autoconf macros")
(define-public automake
(package
(name "automake")
- (version "1.16.2")
+ (version "1.16.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz"))
(sha256
(base32
- "1l7dkqbsmbf94ax29jj1jf6a0r6ikc8jybg1p5m0c3ki7pg5ki6c"))
+ "0fmz2fhmzcpacnprl5msphvaflwiy0hvpgmqlgfny72ddijzfazz"))
(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))
- '()))
+ `(("autoconf" ,autoconf-wrapper)
+ ("bash" ,bash-minimal)
+ ("perl" ,perl)))
(native-inputs
`(("autoconf" ,autoconf-wrapper)
("perl" ,perl)))
(("/bin/sh")
(string-append bash "/bin/sh")))
#t)))
- (add-after 'patch-source-shebangs 'restore-ltmain-shebang
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "build-aux/ltmain.in"
- (("^#!.*/bin/sh$") "#!/bin/sh"))
- #t)))))
+ ;; These files may be copied into source trees by libtoolize,
+ ;; therefore they must not point to store file names that would be
+ ;; leaked with tarballs generated by make dist.
+ (add-after 'install 'restore-build-aux-shebang
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (dir (string-append out "/share/libtool/build-aux")))
+ (for-each (lambda (file)
+ (format #t "restoring shebang on `~a'~%" file)
+ (substitute* file
+ (("^#!.*/bin/sh") "#!/bin/sh")))
+ (find-files dir ".*"))
+ #t))))))
(synopsis "Generic shared library support tools")
(description
(license gpl3+)
(home-page "https://www.gnu.org/software/libtool/")))
+(define-public config
+ (let ((revision "1")
+ (commit "c8ddc8472f8efcadafc1ef53ca1d863415fddd5f"))
+ (package
+ (name "config")
+ (version (git-version "0.0.0" revision commit)) ;no release tag
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/config.git/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0x6ycvkmmhhhag97wsf0pw8n5fvh12rjvrck90rz17my4ys16qwv"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch-/bin/sh
+ (lambda _
+ (substitute* "testsuite/config-guess.sh"
+ (("#!/bin/sh")
+ (string-append "#!" (which "sh"))))
+ #t))
+ (replace 'build
+ (lambda _
+ (invoke "make" "manpages")))
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man1 (string-append out "/share/man/man1")))
+ (install-file "config.guess" bin)
+ (install-file "config.sub" bin)
+ (install-file "doc/config.guess.1" man1)
+ (install-file "doc/config.sub.1" man1)
+ #t))))))
+ (native-inputs
+ `(("help2man" ,help2man)))
+ (home-page "https://savannah.gnu.org/projects/config")
+ (synopsis "Ubiquitous config.guess and config.sub scripts")
+ (description "The `config.guess' script tries to guess a canonical system triple,
+and `config.sub' validates and canonicalizes. These are used as part of
+configuration in nearly all GNU packages (and many others).")
+ (license gpl2+))))
+
(define-public libltdl
;; This is a libltdl package separate from the libtool package. This is
;; useful because, unlike libtool, it has zero extra dependencies (making it