aboutsummaryrefslogtreecommitdiff
path: root/guix/describe.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-12-29 16:22:35 +0100
committerLudovic Courtès <ludo@gnu.org>2019-12-29 18:24:54 +0100
commitc48e522fdbb7c749bbf6147e44c067bf1f916fdd (patch)
treef53143b6b9e7fffa6db3b7acc55fad0543920784 /guix/describe.scm
parent8a705ae4c6107f43c7fbcfad913dd2675f94086a (diff)
downloadguix-c48e522fdbb7c749bbf6147e44c067bf1f916fdd.tar
guix-c48e522fdbb7c749bbf6147e44c067bf1f916fdd.tar.gz
guix package: Save provenance information when using '--manifest'.
Fixes <https://bugs.gnu.org/38673>. Reported by zimoun <zimon.toutoune@gmail.com>. * guix/describe.scm (manifest-entry-with-provenance): New procedure. * guix/scripts/package.scm (process-actions): Use it when FILES is non-empty.
Diffstat (limited to 'guix/describe.scm')
-rw-r--r--guix/describe.scm18
1 files changed, 17 insertions, 1 deletions
diff --git a/guix/describe.scm b/guix/describe.scm
index 893dca2640..6b9b219113 100644
--- a/guix/describe.scm
+++ b/guix/describe.scm
@@ -30,7 +30,8 @@
current-profile-entries
package-path-entries
- package-provenance))
+ package-provenance
+ manifest-entry-with-provenance))
;;; Commentary:
;;;
@@ -144,3 +145,18 @@ property of manifest entries, or #f if it could not be determined."
(and main
`(,main
,@(if extra (list extra) '()))))))))))
+
+(define (manifest-entry-with-provenance entry)
+ "Return ENTRY with an additional 'provenance' property if it's not already
+there."
+ (let ((properties (manifest-entry-properties entry)))
+ (if (assq 'properties properties)
+ entry
+ (let ((item (manifest-entry-item entry)))
+ (manifest-entry
+ (inherit entry)
+ (properties
+ (match (and (package? item) (package-provenance item))
+ (#f properties)
+ (sexp `((provenance ,@sexp)
+ ,@properties)))))))))