summary refs log tree commit diff
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
parenta54c94a40d3d87c80034793795bf13fd7abf7a6e (diff)
downloadguix-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.
-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