summary refs log tree commit diff
path: root/guix/scripts/package.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/scripts/package.scm')
-rw-r--r--guix/scripts/package.scm9
1 files changed, 7 insertions, 2 deletions
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index a6bfb03ae4..1f835ca5a5 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -312,12 +312,16 @@ of relevance scores."
              ((=)
               (let ((candidate-path (derivation->output-path
                                      (package-derivation (%store) pkg))))
-                (if (string=? path candidate-path)
+                ;; XXX: When there are propagated inputs, assume we need to
+                ;; upgrade the whole entry.
+                (if (and (string=? path candidate-path)
+                         (null? (package-propagated-inputs pkg)))
                     transaction
                     (manifest-transaction-install-entry
                      (package->manifest-entry pkg output)
                      transaction))))))))
        (#f
+        (warning (G_ "package '~a' no longer exists~%") name)
         transaction)))))
 
 
@@ -786,7 +790,8 @@ processed, #f otherwise."
 
       (('search-paths kind)
        (let* ((manifests (map profile-manifest profiles))
-              (entries   (append-map manifest-entries manifests))
+              (entries   (append-map manifest-transitive-entries
+                                     manifests))
               (profiles  (map user-friendly-profile profiles))
               (settings  (search-path-environment-variables entries profiles
                                                             (const #f)