From 95a03aa5c507d48e2cde19ea007b8f90a4e0108a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 Aug 2022 10:46:07 +0200 Subject: [PATCH] system: install: Always use 'current-guix'. Fixes . Reported by Mathieu Othacehe . * gnu/system/install.scm (%installation-services): Set 'guix' to use (current-guix) in 'guix-configuration'. * gnu/system/examples/vm-image.tmpl: Likewise. * gnu/tests/install.scm (operating-system-with-current-guix): Remove. (run-install, installation-os-for-gui-tests): Remove its uses. * Makefile.am (release): Remove intermediate use of 'update-guix-package.scm' and subsequent 'git commit' invocation. --- Makefile.am | 11 +++-------- gnu/system/examples/vm-image.tmpl | 9 ++++++++- gnu/system/install.scm | 14 ++++++++++---- gnu/tests/install.scm | 15 ++------------- 4 files changed, 23 insertions(+), 26 deletions(-) diff --git a/Makefile.am b/Makefile.am index f707b930b2..ac6df11c85 100644 --- a/Makefile.am +++ b/Makefile.am @@ -977,14 +977,9 @@ release: dist-with-updated-version all mv "guix-binary.$$system.tar.xz" \ "$(releasedir)/guix-binary-$(PACKAGE_VERSION).$$system.tar.xz" ; \ done -# Bump the Guix package version and build it (again). - GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT=yes \ - $(top_builddir)/pre-inst-env "$(GUILE)" \ - $(top_srcdir)/build-aux/update-guix-package.scm \ - "`git rev-parse HEAD`" - git add $(top_srcdir)/gnu/packages/package-management.scm - git commit -m "gnu: guix: Update to `git rev-parse HEAD | cut -c1-7`." - $(top_builddir)/pre-inst-env guix build guix \ +# Build 'current-guix' to speed things up for the next step. + $(top_builddir)/pre-inst-env guix build \ + -e '((@ (gnu packages package-management) current-guix))' \ $(call system_flags,$(GUIX_SYSTEM_SUPPORTED_SYSTEMS)) \ -v1 --no-grafts --fallback # Generate the ISO installation images. diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl index ccb0b045db..c8449c6e95 100644 --- a/gnu/system/examples/vm-image.tmpl +++ b/gnu/system/examples/vm-image.tmpl @@ -123,7 +123,14 @@ root ALL=(ALL) ALL (login-service-type config => (login-configuration (inherit config) - (motd vm-image-motd))))))) + (motd vm-image-motd))) + + ;; Install and run the current Guix rather than an older + ;; snapshot. + (guix-service-type config => + (guix-configuration + (inherit config) + (guix (current-guix)))))))) ;; Allow resolution of '.local' host names with mDNS. (name-service-switch %mdns-host-lookup-nss)) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index a3646b1d54..32b9f52e04 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -357,11 +357,17 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m ;; network. It can be faster than fetching from remote servers. (service avahi-service-type) - ;; The build daemon. Register the default substitute server key(s) - ;; as trusted to allow the installation process to use substitutes by - ;; default. + ;; The build daemon. (service guix-service-type - (guix-configuration (authorize-key? #t))) + (guix-configuration + ;; Register the default substitute server key(s) as + ;; trusted to allow the installation process to use + ;; substitutes by default. + (authorize-key? #t) + + ;; Install and run the current Guix rather than an older + ;; snapshot. + (guix (current-guix)))) ;; Start udev so that useful device nodes are available. ;; Use device-mapper rules for cryptsetup & co; enable the CRDA for diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index 3754966140..fbb97d451c 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -152,15 +152,6 @@ (guix combinators))))) %base-services)))) -(define (operating-system-with-current-guix os) - "Return a variant of OS that uses the current Guix." - (operating-system - (inherit os) - (services (modify-services (operating-system-user-services os) - (guix-service-type config => - (guix-configuration - (inherit config) - (guix (current-guix)))))))) (define MiB (expt 2 20)) @@ -232,8 +223,7 @@ reboot\n") ;; Since the image has no network access, use the ;; current Guix so the store items we need are in ;; the image and add packages provided. - (inherit (operating-system-with-current-guix - installation-os)) + (inherit installation-os) (kernel-arguments '("console=ttyS0"))) #:imported-modules '((gnu services herd) (gnu installer tests) @@ -1865,8 +1855,7 @@ build (current-guix) and then store a couple of full system images.") (operating-system (inherit (operating-system-with-console-syslog (operating-system-add-packages - (operating-system-with-current-guix - installation-os) + installation-os %extra-packages))) (kernel-arguments '("console=ttyS0"))) #:imported-modules '((gnu services herd)