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.scm26
1 files changed, 16 insertions, 10 deletions
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index e0c7b6ed15..77406c7f39 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -693,15 +693,20 @@ return the new list of manifest entries."
   (append to-upgrade to-install))
 
 (define (options->removable options manifest)
-  "Given options, return the list of manifest entries to be removed from
-MANIFEST."
-  (let ((remove (filter-map (match-lambda
-                             (('remove . package)
-                              package)
-                             (_ #f))
-                            options)))
-    (filter (cut manifest-installed? manifest <>)
-            remove)))
+  "Given options, return the list of manifest patterns of packages to be
+removed from MANIFEST."
+  (filter-map (match-lambda
+               (('remove . spec)
+                (call-with-values
+                    (lambda ()
+                      (package-specification->name+version+output spec))
+                  (lambda (name version output)
+                    (manifest-pattern
+                      (name name)
+                      (version version)
+                      (output output)))))
+               (_ #f))
+              options))
 
 
 ;;;
@@ -871,7 +876,8 @@ more information.~%"))
 
              (if (manifest=? new manifest)
                  (format (current-error-port) (_ "nothing to be done~%"))
-                 (let ((prof-drv (profile-derivation (%store) new)))
+                 (let ((prof-drv (profile-derivation (%store) new))
+                       (remove   (manifest-matching-entries manifest remove)))
                    (show-what-to-remove/install remove install dry-run?)
                    (show-what-to-build (%store) (list prof-drv)
                                        #:use-substitutes?