home: import: Fix handling of manifest entries with specific output.
specification->package fails on manifest entries with specific outputs, resulting in an invalid home configuration. This changes the import command to use specification->package+output instead. * guix/scripts/home/import.scm (manifest+configuration-files->code): Make sure manifest entries with specific output are also handled. * tests/home-import.scm: Specify output in home environment manifest entry. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
282197b521
commit
d7fb57bcd5
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
|
||||
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
|
||||
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2022 Arjan Adriaanse <arjan@adriaan.se>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -164,7 +165,8 @@ user's files to CONFIGURATION-DIRECTORY; the generated sexp refers to them."
|
|||
,@(delete-duplicates (concatenate modules)))
|
||||
|
||||
(home-environment
|
||||
(packages (map specification->package ,packages))
|
||||
(packages (map (compose list specification->package+output)
|
||||
,packages))
|
||||
(services (list ,@services)))))))))
|
||||
|
||||
(define* (import-manifest
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
|
||||
;;; Copyright © 2022 Arjan Adriaanse <arjan@adriaan.se>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -52,7 +53,8 @@
|
|||
(define gcc
|
||||
(manifest-entry
|
||||
(name "gcc")
|
||||
(version "10.3.0")
|
||||
(version "")
|
||||
(output "lib")
|
||||
(item "/gnu/store/...")))
|
||||
|
||||
;; Helpers for checking and generating home environments.
|
||||
|
@ -101,8 +103,8 @@ corresponding file."
|
|||
('gnu 'services))
|
||||
('home-environment
|
||||
('packages
|
||||
('map 'specification->package
|
||||
('list "guile@2.0.9" "gcc" "glibc@2.19")))
|
||||
('map ('compose 'list 'specification->package+output)
|
||||
('list "guile@2.0.9" "gcc:lib" "glibc@2.19")))
|
||||
('services
|
||||
('list)))))
|
||||
|
||||
|
@ -118,7 +120,7 @@ corresponding file."
|
|||
('home-environment
|
||||
('packages
|
||||
('list (transform ('specification->package "guile@2.0.9"))
|
||||
('specification->package "gcc")
|
||||
('list ('specification->package "gcc") "lib")
|
||||
('specification->package "glibc@2.19")))
|
||||
('services ('list)))))
|
||||
|
||||
|
@ -130,7 +132,7 @@ corresponding file."
|
|||
('gnu 'services))
|
||||
('home-environment
|
||||
('packages
|
||||
('map 'specification->package
|
||||
('map ('compose 'list 'specification->package+output)
|
||||
('list)))
|
||||
('services
|
||||
('list)))))
|
||||
|
@ -145,7 +147,7 @@ corresponding file."
|
|||
('gnu 'home 'services 'shells))
|
||||
('home-environment
|
||||
('packages
|
||||
('map 'specification->package
|
||||
('map ('compose 'list 'specification->package+output)
|
||||
('list)))
|
||||
('services
|
||||
('list ('service
|
||||
|
|
Reference in New Issue