From aa1c3a0000793873ef31f33f8aa90f5ae1ab8b8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 May 2017 10:42:43 +0200 Subject: [PATCH] maint: update-guix-package: Protect the checkout from GC. * build-aux/update-guix-package.scm (main): Define 'root', and call 'add-indirect-root' to protect SOURCE from GC. --- build-aux/update-guix-package.scm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/build-aux/update-guix-package.scm b/build-aux/update-guix-package.scm index d45c183914..9598872dfd 100644 --- a/build-aux/update-guix-package.scm +++ b/build-aux/update-guix-package.scm @@ -124,10 +124,19 @@ COMMIT." ;; on a private branch. (reload-module (resolve-module '(gnu packages package-management))) - (pk source - (add-to-store store - (origin-file-name (package-source guix)) - #t "sha256" source))))) + + (let* ((source (add-to-store store + (origin-file-name (package-source guix)) + #t "sha256" source)) + (root (store-path-package-name source))) + + ;; Add an indirect GC root for SOURCE in the current directory. + (false-if-exception (delete-file root)) + (symlink source root) + (add-indirect-root store root) + + (format #t "source code for commit ~a: ~a (GC root: ~a)~%" + commit source root))))) ((commit) ;; Automatically deduce the version and revision numbers. (main commit #f))))