[PATCH] packages: Add 'specifications->packages'.

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

Debbugs page

Antero Mejr wrote 3 years ago
(address . guix-patches@gnu.org)(name . Antero Mejr)(address . antero@mailbox.org)
20220527171328.18174-1-antero@mailbox.org
* gnu/packages.scm (specifications->packages): New procedure.
* guix/scripts/home/import.scm (manifest+configuration-files->code): Use it.
---
Users of 'guix home' may not know the Scheme 'map' and 'compose' procedures.
However 'guix home import' creates boilerplate with those procedures.
Add 'specificiations->packages' procedure to make it more like a guix manifest.
'specfications->packages' can also help with guix system declarations.

gnu/packages.scm | 11 ++++++++++-
guix/scripts/home/import.scm | 4 ++--
2 files changed, 12 insertions(+), 3 deletions(-)

Toggle diff (66 lines)
diff --git a/gnu/packages.scm b/gnu/packages.scm
index 2ba838fd0a..0cc22e64f9 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
+;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -65,6 +66,7 @@ (define-module (gnu packages)
specification->package+output
specification->location
specifications->manifest
+ specifications->packages
package-unique-version-prefix
@@ -554,13 +556,20 @@ (define* (specification->package+output spec #:optional (output "out"))
(package-full-name package)
sub-drv))))))
+(define (specifications->packages specs)
+ "Given SPECS, a list of specifications such as \"emacs@25.2\" or
+\"guile:debug\", return a list of packages."
+ ;; This procedure exists so users of 'guix home' don't have to write out the
+ ;; (map (compose list specification->package+output)... boilerplate.
+ (map (compose list specification->package+output) specs))
+
(define (specifications->manifest specs)
"Given SPECS, a list of specifications such as \"emacs@25.2\" or
\"guile:debug\", return a profile manifest."
;; This procedure exists mostly so users of 'guix package -m' don't have to
;; fiddle with multiple-value returns.
(packages->manifest
- (map (compose list specification->package+output) specs)))
+ (specifications->packages specs)))
(define (package-unique-version-prefix name version)
"Search among all the versions of package NAME that are available, and
diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm
index 575fe8f688..825ccb1e73 100644
--- a/guix/scripts/home/import.scm
+++ b/guix/scripts/home/import.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2022 Arjan Adriaanse <arjan@adriaan.se>
+;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -170,8 +171,7 @@ (define (manifest+configuration-files->code manifest
,@(delete-duplicates (concatenate modules)))
(home-environment
- (packages (map (compose list specification->package+output)
- ,packages))
+ (packages (specifications->packages ,packages))
(services (list ,@services)))))))))
(define* (import-manifest
--
2.36.1
Ludovic Courtès wrote 3 years ago
(name . Antero Mejr)(address . antero@mailbox.org)(address . 55680-done@debbugs.gnu.org)
87bkv5biu5.fsf@gnu.org
Hi Antero,

Antero Mejr <antero@mailbox.org> skribis:

Toggle quote (3 lines)
> * gnu/packages.scm (specifications->packages): New procedure.
> * guix/scripts/home/import.scm (manifest+configuration-files->code): Use it.

I adjusted the docstring and tests/home-import.scm and pushed as
7041fe0646a9603e7d1d6bde139a284146515917.

Thanks,
Ludo’.
Closed
?
Your comment

This issue is archived.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 55680
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