build-system/gnu: Make 'package-with-explicit-inputs' idempotent.

* guix/build-system/gnu.scm (package-with-explicit-inputs): Use
  'ensure-keyword-arguments' instead of appending to ARGS.
* gnu/packages/commencement.scm (static-bash-for-glibc): Add missing
  #:guile argument.
This commit is contained in:
Ludovic Courtès 2016-01-06 22:56:01 +01:00
parent 6071122b71
commit d4aaf95401
2 changed files with 8 additions and 6 deletions

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
@ -434,7 +434,8 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
("libc" ,glibc-final-with-bootstrap-bash) ("libc" ,glibc-final-with-bootstrap-bash)
,@(fold alist-delete %boot1-inputs ,@(fold alist-delete %boot1-inputs
'("gcc" "libc"))) '("gcc" "libc")))
(current-source-location))))) (current-source-location)
#:guile %bootstrap-guile))))
(define gettext-boot0 (define gettext-boot0
;; A minimal gettext used during bootstrap. ;; A minimal gettext used during bootstrap.

View File

@ -96,10 +96,11 @@ builder, or the distro's final Guile when GUILE is #f."
(package (inherit p) (package (inherit p)
(location (if (pair? loc) (source-properties->location loc) loc)) (location (if (pair? loc) (source-properties->location loc) loc))
(arguments (arguments
(let ((args (package-arguments p))) ;; 'ensure-keyword-arguments' guarantees that this procedure is
`(#:guile ,guile ;; idempotent.
#:implicit-inputs? #f (ensure-keyword-arguments (package-arguments p)
,@args))) `(#:guile ,guile
#:implicit-inputs? #f)))
(replacement (replacement
(let ((replacement (package-replacement p))) (let ((replacement (package-replacement p)))
(and replacement (and replacement