diff options
Diffstat (limited to 'guix/scripts')
-rw-r--r-- | guix/scripts/package.scm | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 1f835ca5a5..58da3113a0 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -294,7 +294,11 @@ of relevance scores." (output (manifest-entry-output old))) transaction))) - (match entry + (match (if (manifest-transaction-removal-candidate? entry transaction) + 'dismiss + entry) + ('dismiss + transaction) (($ <manifest-entry> name version output (? string? path)) (match (vhash-assoc name (find-newest-available-packages)) ((_ candidate-version pkg . rest) @@ -492,7 +496,7 @@ Install, remove, or upgrade packages in a single transaction.\n")) (alist-cons 'do-not-upgrade arg result) result) arg-handler)))) - (option '("roll-back") #f #f + (option '("roll-back" "rollback") #f #f (lambda (opt name arg result arg-handler) (values (alist-cons 'roll-back? #t result) #f))) @@ -875,11 +879,11 @@ processed, #f otherwise." #:dry-run? dry-run?))))) opts) - ;; Then, process normal package installation/removal/upgrade. + ;; Then, process normal package removal/installation/upgrade. (let* ((manifest (profile-manifest profile)) - (step1 (options->installable opts manifest - (manifest-transaction))) - (step2 (options->removable opts manifest step1)) + (step1 (options->removable opts manifest + (manifest-transaction))) + (step2 (options->installable opts manifest step1)) (step3 (manifest-transaction (inherit step2) (install (map transform-entry |