[PATCH] home: import: Fix handling of manifest entries with specific output.

  • Done
  • quality assurance status badge
Details
2 participants
  • Arjan Adriaanse
  • Ludovic Courtès
Owner
unassigned
Submitted by
Arjan Adriaanse
Severity
normal

Debbugs page

Arjan Adriaanse wrote 3 years ago
(address . guix-patches@gnu.org)(name . Arjan Adriaanse)(address . arjan@adriaan.se)
a0ac881ea3a7a61616cbeba8c087cd08ca857738.1641143800.git.arjan@adriaan.se
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.
---
guix/scripts/home/import.scm | 4 +++-
tests/home-import.scm | 14 ++++++++------
2 files changed, 11 insertions(+), 7 deletions(-)

Toggle diff (85 lines)
diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm
index fbf89069a7..15bd3140ed 100644
--- a/guix/scripts/home/import.scm
+++ b/guix/scripts/home/import.scm
@@ -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 @@ (define (manifest+configuration-files->code manifest
,@(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
diff --git a/tests/home-import.scm b/tests/home-import.scm
index 0bcdf8a469..6d373acf79 100644
--- a/tests/home-import.scm
+++ b/tests/home-import.scm
@@ -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 glibc
(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 @@ (define-home-environment-matcher match-home-environment-no-services
('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 @@ (define-home-environment-matcher match-home-environment-transformations
('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 @@ (define-home-environment-matcher match-home-environment-no-services-nor-packages
('gnu 'services))
('home-environment
('packages
- ('map 'specification->package
+ ('map ('compose 'list 'specification->package+output)
('list)))
('services
('list)))))
@@ -145,7 +147,7 @@ (define-home-environment-matcher match-home-environment-bash-service
('gnu 'home 'services 'shells))
('home-environment
('packages
- ('map 'specification->package
+ ('map ('compose 'list 'specification->package+output)
('list)))
('services
('list ('service

base-commit: a655d731e2c1bb912aa52b6e00b0d69394aa2a3b
--
2.34.0
Ludovic Courtès wrote 3 years ago
(name . Arjan Adriaanse)(address . arjan@adriaan.se)(address . 52961-done@debbugs.gnu.org)
87bl0pj0ns.fsf@gnu.org
Hi,

Arjan Adriaanse <arjan@adriaan.se> skribis:

Toggle quote (8 lines)
> 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.

Applied, thanks for fixing it!

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 52961@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 52961
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help