diff options
author | Ludovic Courtès <ludo@gnu.org> | 2022-07-31 23:03:36 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-08-01 00:02:04 +0200 |
commit | 4de445f3dae5f5b42d59003cceddecfb296fb73b (patch) | |
tree | e849d7246328bdda73129991e02c067b903f3fa2 | |
parent | 61db74a687e36e842077c5c2f4b2e2c7afcd814a (diff) |
guix gc: '--delete-generations' now deletes old Home generations.
This reverts commit 24c0518dd404cbb3c434fb6704f4f551bbc78693,
thereby reinstating ba22560627f848f40891a56355ff26b6de1380bc, with an
additional fix in (guix self).
Fixes <https://issues.guix.gnu.org/56722>.
Reported by "(" <paren@disroot.org>.
* guix/scripts/gc.scm (guix-gc)[delete-generations]: Add call to
'home-generation-base'.
* guix/self.scm (compiled-guix)[*core-cli-modules*]: Remove (guix
scripts gc).
* doc/guix.texi (Invoking guix gc): Document the change.
-rw-r--r-- | doc/guix.texi | 3 | ||||
-rw-r--r-- | guix/scripts/gc.scm | 6 | ||||
-rw-r--r-- | guix/self.scm | 1 |
3 files changed, 7 insertions, 3 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 12ecc1b952..6e867839a4 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4362,7 +4362,8 @@ nothing and exit immediately. @item --delete-generations[=@var{duration}] @itemx -d [@var{duration}] Before starting the garbage collection process, delete all the generations -older than @var{duration}, for all the user profiles; when run as root, this +older than @var{duration}, for all the user profiles and home environment +generations; when run as root, this applies to all the profiles @emph{of all the users}. For example, this command deletes all the generations of all your profiles diff --git a/guix/scripts/gc.scm b/guix/scripts/gc.scm index 043273f491..65cd4bdf8b 100644 --- a/guix/scripts/gc.scm +++ b/guix/scripts/gc.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2013, 2015-2020, 2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +26,7 @@ profile-generations generation-number) #:autoload (guix scripts package) (delete-generations) + #:autoload (gnu home) (home-generation-base) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (srfi srfi-1) @@ -260,7 +261,8 @@ is deprecated; use '-D'~%")) (filter-map (lambda (root) (and (or (zero? (getuid)) (user-owned? root)) - (generation-profile root))) + (or (generation-profile root) + (home-generation-base root)))) (gc-roots))))) (for-each (lambda (profile) (delete-old-generations store profile pattern)) diff --git a/guix/self.scm b/guix/self.scm index d1ccec8a49..fc80e78804 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -929,6 +929,7 @@ itself." (('guix 'scripts 'deploy) #t) (('guix 'scripts 'home . _) #t) (('guix 'scripts 'import . _) #t) + (('guix 'scripts 'gc) #t) ;autoloads (gnu home) (('guix 'pack) #t) (_ #f)) (scheme-modules* source "guix/scripts")) |