mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
system: Prefer packages from %FINAL-INPUTS.
* gnu/packages/base.scm (canonical-package): New procedure. * gnu/system.scm (%base-packages): Pass BASH, COREUTILS, FINDUTILS, GREP, and SED through 'canonical-package'.
This commit is contained in:
parent
eef4096c14
commit
9b762b8d7c
2 changed files with 45 additions and 6 deletions
|
@ -42,6 +42,7 @@ (define-module (gnu packages base)
|
|||
#:use-module (guix utils)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (ice-9 vlist)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
;;; Commentary:
|
||||
|
@ -1204,6 +1205,40 @@ (define-public %final-inputs
|
|||
("gcc" ,gcc-final)
|
||||
("libc" ,glibc-final))))
|
||||
|
||||
(define-public canonical-package
|
||||
(let ((name->package (fold (lambda (input result)
|
||||
(match input
|
||||
((_ package)
|
||||
(vhash-cons (package-full-name package)
|
||||
package result))))
|
||||
vlist-null
|
||||
`(("guile" ,guile-final)
|
||||
,@%final-inputs))))
|
||||
(lambda (package)
|
||||
"Return the 'canonical' variant of PACKAGE---i.e., if PACKAGE is one of
|
||||
the implicit inputs of 'gnu-build-system', return that one, otherwise return
|
||||
PACKAGE.
|
||||
|
||||
The goal is to avoid duplication in cases like GUILE-FINAL vs. GUILE-2.0,
|
||||
COREUTILS-FINAL vs. COREUTILS, etc."
|
||||
;; XXX: This doesn't handle dependencies of the final inputs, such as
|
||||
;; libunistring, GMP, etc.
|
||||
(match (vhash-assoc (package-full-name package) name->package)
|
||||
((_ . canon)
|
||||
;; In general we want CANON, except if we're cross-compiling: CANON
|
||||
;; uses explicit inputs, so it is "anchored" in the bootstrapped
|
||||
;; process, with dependencies on things that cannot be
|
||||
;; cross-compiled.
|
||||
(if (%current-target-system)
|
||||
package
|
||||
canon))
|
||||
(_ package)))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; GCC toolchain.
|
||||
;;;
|
||||
|
||||
(define (gcc-toolchain gcc)
|
||||
"Return a complete toolchain for GCC."
|
||||
(package
|
||||
|
|
|
@ -216,12 +216,16 @@ (define (operating-system-services os)
|
|||
(define %base-packages
|
||||
;; Default set of packages globally visible. It should include anything
|
||||
;; required for basic administrator tasks.
|
||||
(list bash coreutils findutils grep sed
|
||||
procps psmisc less zile
|
||||
guile-final (@ (gnu packages admin) dmd) guix
|
||||
util-linux inetutils isc-dhcp
|
||||
net-tools ; XXX: remove when Inetutils suffices
|
||||
module-init-tools kbd))
|
||||
(cons* procps psmisc less zile
|
||||
guile-final (@ (gnu packages admin) dmd) guix
|
||||
util-linux inetutils isc-dhcp
|
||||
net-tools ; XXX: remove when Inetutils suffices
|
||||
module-init-tools kbd
|
||||
|
||||
;; The packages below are also in %FINAL-INPUTS, so take them from
|
||||
;; there to avoid duplication.
|
||||
(map canonical-package
|
||||
(list bash coreutils findutils grep sed))))
|
||||
|
||||
(define %default-issue
|
||||
;; Default contents for /etc/issue.
|
||||
|
|
Loading…
Reference in a new issue