From 7532125ba366672974a18725d609f7b58cd8932e Mon Sep 17 00:00:00 2001 From: David Wilson Date: Sat, 11 May 2024 21:17:20 +0300 Subject: [PATCH] Bake channels into the installation image --- guix/installer.scm | 48 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/guix/installer.scm b/guix/installer.scm index 4032687..46766a1 100644 --- a/guix/installer.scm +++ b/guix/installer.scm @@ -1,6 +1,8 @@ ;;; Copyright © 2019 Alex Griffin ;;; Copyright © 2019 Pierre Neidhardt -;;; Copyright © 2019 David Wilson +;;; Copyright © 2019,2024 David Wilson +;;; Copyright © 2022 Jonathan Brielmaier +;;; Copyright © 2024 Hilton Chain ;;; ;;; This program is free software: you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by @@ -19,9 +21,8 @@ ;; $ guix system image -t iso9660 installer.scm (define-module (nongnu system install) - #:use-module (gnu services) - #:use-module (gnu system) - #:use-module (gnu system install) + #:use-module (guix) + #:use-module (guix channels) #:use-module (gnu packages version-control) #:use-module (gnu packages vim) #:use-module (gnu packages curl) @@ -29,10 +30,33 @@ #:use-module (gnu packages linux) #:use-module (gnu packages mtools) #:use-module (gnu packages package-management) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu system) + #:use-module (gnu system install) #:use-module (nongnu packages linux) - #:use-module (guix) #:export (installation-os-nonfree)) +;; https://substitutes.nonguix.org/signing-key.pub +(define %signing-key + (plain-file "nonguix.pub" "\ +(public-key + (ecc + (curve Ed25519) + (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))")) + +(define %channels + (cons* (channel + (name 'nonguix) + (url "https://gitlab.com/nonguix/nonguix") + ;; Enable signature verification: + (introduction + (make-channel-introduction + "897c1a470da759236cc11798f4e0a5f7d4d59fbc" + (openpgp-fingerprint + "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) + %default-channels)) + (define installation-os-nonfree (operating-system (inherit installation-os) @@ -49,7 +73,19 @@ ;; Include the channel file so that it can be used during installation (simple-service 'channel-file etc-service-type (list `("channels.scm" ,(local-file "channels.scm")))) - (operating-system-user-services installation-os))) + + (modify-services (operating-system-user-services installation-os) + (guix-service-type + config => (guix-configuration + (inherit config) + (guix (guix-for-channels %channels)) + (authorized-keys + (cons* %signing-key + %default-authorized-guix-keys)) + (substitute-urls + `(,@%default-substitute-urls + "https://substitutes.nonguix.org")) + (channels %channels)))))) ;; Add some extra packages useful for the installation process (packages