diff options
-rw-r--r-- | guix/profiles.scm | 28 | ||||
-rw-r--r-- | guix/scripts/package.scm | 11 |
2 files changed, 17 insertions, 22 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm index 64c69c4429..96c8ca0514 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -86,10 +86,8 @@ (output manifest-entry-output ; string (default "out")) (item manifest-entry-item) ; package | store path - (dependencies manifest-entry-dependencies ; list of store paths - (default '())) - (inputs manifest-entry-inputs ; list of inputs to build - (default '()))) ; this entry + (dependencies manifest-entry-dependencies ; (store path | package)* + (default '()))) (define-record-type* <manifest-pattern> manifest-pattern make-manifest-pattern @@ -210,11 +208,11 @@ the given MANIFEST." (define inputs (append-map (match-lambda (($ <manifest-entry> name version - output path deps (inputs ..1)) - inputs) + output (? package? package) deps) + `((,package ,output) ,@deps)) (($ <manifest-entry> name version output path deps) ;; Assume PATH and DEPS are already valid. - `((,name ,path) ,@deps))) + `(,path ,@deps))) (manifest-entries manifest))) (define builder @@ -225,17 +223,11 @@ the given MANIFEST." (setvbuf (current-output-port) _IOLBF) (setvbuf (current-error-port) _IOLBF) - (let ((inputs '#$(map (match-lambda - ((label thing) - thing) - ((label thing output) - `(,thing ,output))) - inputs))) - (union-build #$output inputs - #:log-port (%make-void-port "w")) - (call-with-output-file (string-append #$output "/manifest") - (lambda (p) - (pretty-print '#$(manifest->gexp manifest) p)))))) + (union-build #$output '#$inputs + #:log-port (%make-void-port "w")) + (call-with-output-file (string-append #$output "/manifest") + (lambda (p) + (pretty-print '#$(manifest->gexp manifest) p))))) (gexp->derivation "profile" builder #:modules '((guix build union)) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index bc2c854853..3fe7385bc2 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -647,15 +647,18 @@ return the new list of manifest entries." ;; When given a package via `-e', install the first of its ;; outputs (XXX). (let* ((output (or output (car (package-outputs p)))) - (deps (deduplicate (package-transitive-propagated-inputs p)))) + (deps (map (match-lambda + ((label package) + `(,package "out")) + ((label package output) + `(,package ,output))) + (package-transitive-propagated-inputs p)))) (manifest-entry (name (package-name p)) (version (package-version p)) (output output) (item p) - (dependencies deps) - (inputs (cons (list (package-name p) p output) - deps))))) + (dependencies (delete-duplicates deps))))) (define upgrade-regexps (filter-map (match-lambda |