pack: Make sure tests can run without a world rebuild.
Commit68380db4c4
moved from 'gexp->derivation', which as a side effect, would lead tests to require a "world rebuild"--specifically, they'd have to build (default-guile). This was mitigated by68775338a5
, but that change introduced another regression. * guix/scripts/pack.scm (populate-profile-root): Define 'bootstrap?'. Pass #:guile to 'computed-file', with a value depending on 'bootstrap?'. * tests/pack.scm ("self-contained-tarball + localstatedir") ("docker-image + localstatedir", "squashfs-image + localstatedir") ("deb archive with symlinks and control files") ("rpm archive can be installed/uninstalled"): Use a <profile> record instead of a derivation.
This commit is contained in:
parent
2cf07434d8
commit
fee1d08f0d
2 changed files with 27 additions and 21 deletions
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015, 2017-2022 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2015, 2017-2023 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
|
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
|
||||||
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||||
|
@ -220,6 +220,11 @@ items, which relies on hard links."
|
||||||
(file-append (store-database (list profile))
|
(file-append (store-database (list profile))
|
||||||
"/db/db.sqlite")))
|
"/db/db.sqlite")))
|
||||||
|
|
||||||
|
(define bootstrap?
|
||||||
|
;; Whether a '--bootstrap' environment is needed, for testing purposes.
|
||||||
|
;; XXX: Infer that from available info.
|
||||||
|
(and (not database) (not (profile-locales? profile))))
|
||||||
|
|
||||||
(define (import-module? module)
|
(define (import-module? module)
|
||||||
;; Since we don't use deduplication support in 'populate-store', don't
|
;; Since we don't use deduplication support in 'populate-store', don't
|
||||||
;; import (guix store deduplication) and its dependencies, which includes
|
;; import (guix store deduplication) and its dependencies, which includes
|
||||||
|
@ -287,6 +292,7 @@ items, which relies on hard links."
|
||||||
(for-each (cut evaluate-populate-directive <> #$output)
|
(for-each (cut evaluate-populate-directive <> #$output)
|
||||||
directives)))
|
directives)))
|
||||||
#:local-build? #f
|
#:local-build? #f
|
||||||
|
#:guile (if bootstrap? %bootstrap-guile (default-guile))
|
||||||
#:options (list #:references-graphs `(("profile" ,profile))
|
#:options (list #:references-graphs `(("profile" ,profile))
|
||||||
#:target target)))
|
#:target target)))
|
||||||
|
|
||||||
|
|
|
@ -138,10 +138,10 @@
|
||||||
(test-assertm "self-contained-tarball + localstatedir" store
|
(test-assertm "self-contained-tarball + localstatedir" store
|
||||||
(mlet* %store-monad
|
(mlet* %store-monad
|
||||||
((guile (set-guile-for-build (default-guile)))
|
((guile (set-guile-for-build (default-guile)))
|
||||||
(profile (profile-derivation (packages->manifest
|
(profile -> (profile
|
||||||
(list %bootstrap-guile))
|
(content (packages->manifest (list %bootstrap-guile)))
|
||||||
#:hooks '()
|
(hooks '())
|
||||||
#:locales? #f))
|
(locales? #f)))
|
||||||
(tarball (self-contained-tarball "tar-pack" profile
|
(tarball (self-contained-tarball "tar-pack" profile
|
||||||
#:localstatedir? #t))
|
#:localstatedir? #t))
|
||||||
(check (gexp->derivation "check-tarball"
|
(check (gexp->derivation "check-tarball"
|
||||||
|
@ -210,10 +210,10 @@
|
||||||
(test-assertm "docker-image + localstatedir" store
|
(test-assertm "docker-image + localstatedir" store
|
||||||
(mlet* %store-monad
|
(mlet* %store-monad
|
||||||
((guile (set-guile-for-build (default-guile)))
|
((guile (set-guile-for-build (default-guile)))
|
||||||
(profile (profile-derivation (packages->manifest
|
(profile -> (profile
|
||||||
(list %bootstrap-guile))
|
(content (packages->manifest (list %bootstrap-guile)))
|
||||||
#:hooks '()
|
(hooks '())
|
||||||
#:locales? #f))
|
(locales? #f)))
|
||||||
(tarball (docker-image "docker-pack" profile
|
(tarball (docker-image "docker-pack" profile
|
||||||
#:symlinks '(("/bin/Guile" -> "bin/guile"))
|
#:symlinks '(("/bin/Guile" -> "bin/guile"))
|
||||||
#:localstatedir? #t))
|
#:localstatedir? #t))
|
||||||
|
@ -250,10 +250,10 @@
|
||||||
(test-assertm "squashfs-image + localstatedir" store
|
(test-assertm "squashfs-image + localstatedir" store
|
||||||
(mlet* %store-monad
|
(mlet* %store-monad
|
||||||
((guile (set-guile-for-build (default-guile)))
|
((guile (set-guile-for-build (default-guile)))
|
||||||
(profile (profile-derivation (packages->manifest
|
(profile -> (profile
|
||||||
(list %bootstrap-guile))
|
(content (packages->manifest (list %bootstrap-guile)))
|
||||||
#:hooks '()
|
(hooks '())
|
||||||
#:locales? #f))
|
(locales? #f)))
|
||||||
(image (squashfs-image "squashfs-pack" profile
|
(image (squashfs-image "squashfs-pack" profile
|
||||||
#:symlinks '(("/bin" -> "bin"))
|
#:symlinks '(("/bin" -> "bin"))
|
||||||
#:localstatedir? #t))
|
#:localstatedir? #t))
|
||||||
|
@ -288,10 +288,10 @@
|
||||||
(test-assertm "deb archive with symlinks and control files" store
|
(test-assertm "deb archive with symlinks and control files" store
|
||||||
(mlet* %store-monad
|
(mlet* %store-monad
|
||||||
((guile (set-guile-for-build (default-guile)))
|
((guile (set-guile-for-build (default-guile)))
|
||||||
(profile (profile-derivation (packages->manifest
|
(profile -> (profile
|
||||||
(list %bootstrap-guile))
|
(content (packages->manifest (list %bootstrap-guile)))
|
||||||
#:hooks '()
|
(hooks '())
|
||||||
#:locales? #f))
|
(locales? #f)))
|
||||||
(deb (debian-archive
|
(deb (debian-archive
|
||||||
"deb-pack" profile
|
"deb-pack" profile
|
||||||
#:compressor %gzip-compressor
|
#:compressor %gzip-compressor
|
||||||
|
@ -376,10 +376,10 @@
|
||||||
(test-assertm "rpm archive can be installed/uninstalled" store
|
(test-assertm "rpm archive can be installed/uninstalled" store
|
||||||
(mlet* %store-monad
|
(mlet* %store-monad
|
||||||
((guile (set-guile-for-build (default-guile)))
|
((guile (set-guile-for-build (default-guile)))
|
||||||
(profile (profile-derivation (packages->manifest
|
(profile -> (profile
|
||||||
(list %bootstrap-guile))
|
(content (packages->manifest (list %bootstrap-guile)))
|
||||||
#:hooks '()
|
(hooks '())
|
||||||
#:locales? #f))
|
(locales? #f)))
|
||||||
(rpm-pack (rpm-archive "rpm-pack" profile
|
(rpm-pack (rpm-archive "rpm-pack" profile
|
||||||
#:compressor %gzip-compressor
|
#:compressor %gzip-compressor
|
||||||
#:symlinks '(("/bin/guile" -> "bin/guile"))
|
#:symlinks '(("/bin/guile" -> "bin/guile"))
|
||||||
|
|
Reference in a new issue