aboutsummaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-07-26 22:21:43 +0200
committerLudovic Courtès <ludo@gnu.org>2014-07-26 22:56:59 +0200
commit4ca0b4101d2d15fc41c0a875f09553ded27091bd (patch)
treeafcecf677702cec1f7810f63d4e6335df8a6169a /guix
parenta54c94a40d3d87c80034793795bf13fd7abf7a6e (diff)
downloadgnu-guix-4ca0b4101d2d15fc41c0a875f09553ded27091bd.tar
gnu-guix-4ca0b4101d2d15fc41c0a875f09553ded27091bd.tar.gz
profiles: Get rid of the 'inputs' field of 'manifest-entry'.
* guix/profiles.scm (<manifest-entry>)[inputs]: Remove. (profile-derivation): Rely on 'item' and 'deps' instead of 'inputs'. Adjust 'builder' accordingly. * guix/scripts/package.scm (options->installable)[package->manifest-entry]: Remove 'inputs' field. Change 'dependencies' field to contain packages.
Diffstat (limited to 'guix')
-rw-r--r--guix/profiles.scm28
-rw-r--r--guix/scripts/package.scm11
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