mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
gnu: guix: Ensure the bootstrap binary tarballs aren't GC'd.
Previously, they could be GC'd by 'tests/guix-gc.sh' for instance, and thus lacking by the time 'tests/guix-daemon.sh' runs, thereby leading to a test failure. Reported by Gábor Boskovits. * gnu/packages/package-management.scm (guix)[arguments]: In 'copy-bootstrap-guile' phase, change 'intern' to register a GC root.
This commit is contained in:
parent
3a695c01d7
commit
9961cde383
1 changed files with 22 additions and 11 deletions
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
|
||||
;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
|
@ -176,16 +176,27 @@ (define-public guix
|
|||
;; Copy the bootstrap guile tarball in the store used
|
||||
;; by the test suite.
|
||||
(define (intern file recursive?)
|
||||
(let ((base (strip-store-file-name file)))
|
||||
;; Note: don't use 'guix download' here because we
|
||||
;; need to set the 'recursive?' argument.
|
||||
(invoke "./test-env" "guile" "-c"
|
||||
(object->string
|
||||
`(begin
|
||||
(use-modules (guix))
|
||||
(with-store store
|
||||
(add-to-store store ,base ,recursive?
|
||||
"sha256" ,file)))))))
|
||||
;; Note: don't use 'guix download' here because we
|
||||
;; need to set the 'recursive?' argument.
|
||||
(define base
|
||||
(strip-store-file-name file))
|
||||
|
||||
(define code
|
||||
`(begin
|
||||
(use-modules (guix))
|
||||
(with-store store
|
||||
(let* ((item (add-to-store store ,base
|
||||
,recursive?
|
||||
"sha256" ,file))
|
||||
(root (string-append "/tmp/gc-root-"
|
||||
(basename item))))
|
||||
;; Register a root so that the GC tests
|
||||
;; don't delete those.
|
||||
(symlink item root)
|
||||
(add-indirect-root store root)))))
|
||||
|
||||
(invoke "./test-env" "guile" "-c"
|
||||
(object->string code)))
|
||||
|
||||
(intern (assoc-ref inputs "boot-guile") #f)
|
||||
|
||||
|
|
Loading…
Reference in a new issue