From patchwork Fri Oct 25 09:39:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69446 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id B158627BBE2; Fri, 25 Oct 2024 10:41:52 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 3D49A27BBE9 for ; Fri, 25 Oct 2024 10:41:52 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp4-0002Pa-M9; Fri, 25 Oct 2024 05:41:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp1-0002OP-7f for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:31 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp0-0003sk-Sc for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=flD0+NLbFncv/7qoyAIgmBj3XyuhZ1e2BhQ6maNidi0=; b=daMEcSyXf+PyQYa6ksCPkZqthmNofkXL+AHHCPdmQ2KrUxlsinZTOkkwpNkrA4VIUEz6rQxQ9dbZp5VG6KLEROfEVZf0kKYSPcAOc9uuOTVcI0VqhanZKg1UxVOZ+Ag3F6dmSBApYVk8jWbg8X6h0Qg2F94u11HZkt5wI57VB5DgL8L2RSLbMaVFqE3c/ZFCb3xsUZtZt+Q2F8iegRqGyn68Af2hqbGB6nbMufSf0Y+GYfyg2LQb0dqgfwdVcbpt5irrVCeSsfu65F+C0+DkaXc/kBLnag6LlkNPwSnGCS2AkzEllahEqB23OoJfDHT89c0lyBvkK2umqAVFguWQYQ==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4GpW-00025d-5v for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 01/17] gnu: guile-fibers: Fix cross-build for the Hurd. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492727764 (code B ref 73927); Fri, 25 Oct 2024 09:42:02 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:12 +0000 Received: from localhost ([127.0.0.1]:37289 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gof-00020s-IY for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:12 -0400 Received: from eggs.gnu.org ([209.51.188.92]:43752) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gob-0001zq-2u for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:08 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gnz-0003lO-At; Fri, 25 Oct 2024 05:40:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=flD0+NLbFncv/7qoyAIgmBj3XyuhZ1e2BhQ6maNidi0=; b=Vf9jcRgZdLTrJazEwlXp HJikIEszj12MocIxTq2B9ML5cHxvObcgfSeKdMi3j4kGwtyyeA40dmwMYGVqceOIVK3tb0ckNVRld NMwZfqZiu1OTihMWK1R/EpxuPPEk7SoCENzOE26O5OtgD9SH+g4rMDavf2IUNq7WC0SxipMHZrlXk JhEwLZnwhwQnWr3rm0bhAmdFgjqyWA+6TWd7Cx/mD8HzV+qR9vziIzw7COxU3tvW0v4wK9MNSBIQx IcxX8seUyoomjbFjg9FCQdPUU15MZvtrdMQjOqDXOpyK7D59sh5kjeZ/rKn7RBKq5QEs16ElJlF1O kvYPIZJVlv5epA==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:39:53 +0200 Message-ID: <20241025094011.8540-2-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/guile-xyz.scm (guile-fibers): When cross-building for the Hurd, add "fix-env" phase. Change-Id: Iebe12941bbfb2f5a6208f9364115e95f10e82ed6 --- gnu/packages/guile-xyz.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 5f34ea98a6..06d3b59dc3 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2016, 2017, 2021 Alex Kost ;;; Copyright © 2016, 2017 Adonay "adfeno" Felipe Nogueira ;;; Copyright © 2016, 2021 Amirouche -;;; Copyright © 2016, 2019, 2021, 2023 Janneke Nieuwenhuizen +;;; Copyright © 2016, 2019, 2021, 2023, 2024 Janneke Nieuwenhuizen ;;; Copyright © 2017 Andy Wingo ;;; Copyright © 2017 David Thompson ;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe @@ -875,7 +875,14 @@ (define-public guile-fibers (substitute* "tests/basic.scm" ((".*spawn-fiber-chain 5000000.*") "")) (substitute* "tests/channels.scm" - ((".*assert-run-fibers-terminates .*pingpong.*") ""))))))))) + ((".*assert-run-fibers-terminates .*pingpong.*") ""))))) + #$@(if (and (target-hurd?) (%current-target-system)) + #~((add-before 'build 'fixup-env + (lambda _ + (substitute* "env" + ((".*override.*" all) + (string-append "true #" all)))))) + '()))))) (native-inputs (list texinfo pkg-config autoconf-2.71 automake libtool guile-3.0 ;for 'guild compile From patchwork Fri Oct 25 09:39:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69454 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id ECCC127BBEA; Fri, 25 Oct 2024 10:42:41 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id AD25427BBE2 for ; Fri, 25 Oct 2024 10:42:41 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp4-0002QJ-U8; Fri, 25 Oct 2024 05:41:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp1-0002OU-7Y for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:31 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp0-0003sm-UZ for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=uGH+OmIi8UD3voHjYhCdE4fssUNdW+3qzlCWpWSm0cY=; b=JPgwSh9sPRidLGY1r2xnbLWVSZWsEY6371yoZ7vnC+GAtIG22cz1KdV2/DuuoEqnnvRusLAn70GqODiJAgPTUC0KFTAEa0hFDci1h8bBYnoO+1GU1O+i4Az/II6sR5wVN7aOJl7iluvwCJWlQoqLfSW9Bndhw7c2FjRpv+OOhwI+uEfT6sCpuFPnzh8kdU/9//ko7OxhkJZBY5bh1yEeYenoqNHNnfB9rLWvulzd80/GwKTTq0nRRBuTHHEXWFx6AoB8J2PPfcvbemPKNMQj1PMi/GMLBQhSvm9ZPKCB1WElwbgL8oyGmTxRzwpnmeMUEBoc16Bvb35wacLmMb5XRQ==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4GpW-00025m-MJ for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 02/17] guix system: When installing the Hurd, create essential devices. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492737772 (code B ref 73927); Fri, 25 Oct 2024 09:42:02 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:13 +0000 Received: from localhost ([127.0.0.1]:37293 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Goi-00021B-N3 for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:13 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40712) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4God-000207-1Q for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:08 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Go1-0003lu-SS; Fri, 25 Oct 2024 05:40:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=uGH+OmIi8UD3voHjYhCdE4fssUNdW+3qzlCWpWSm0cY=; b=MYX04lq1cqCvZL+krIbO vksBRxQYCvVF7nRE2by6ytS/Iw9zGyTjgTLnrfExc4NQ3mO/mz3mp8Y5j7dU4N1zmIr7x2ieBQf48 HrfBWS9kZFdmrVaWMX0yopUneVubvNi+q269apads8nVKxuyB00aATLe8RV59guKRZJ2GCUmcdjxe w3RQmtTwqpz2SFzFSbXNnwGIxGWTAOLjtKsYhVoS/RqujjGouNSWU7Y1ECH1Tdpgr9GUMfK52TWLS W/h0YjDI5sMT3ehnQycJgmKZrF4MI4y8Yt5KMwiiDS4SL6y6/8gZmOctwarYA0x2/b4EouC/D7jN5 8Gqfg7pJFgsqRA==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:39:54 +0200 Message-ID: <20241025094011.8540-3-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * guix/scripts/system.scm (install): When installing the Hurd, invoke `make-hurd-device-nodes'. Change-Id: If84d5fe0b5bf4a93452f0b5241650f325d583543 --- guix/scripts/system.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 99c58f3812..7989b183ad 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2017, 2019 Mathieu Othacehe ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2019 Christopher Baines -;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2020, 2024 Janneke Nieuwenhuizen ;;; Copyright © 2020 Julien Lepiller ;;; Copyright © 2020 Efraim Flashner ;;; Copyright © 2021 Brice Waegeneire @@ -63,6 +63,7 @@ (define-module (guix scripts system) #:autoload (guix progress) (progress-reporter/bar call-with-progress-reporter) #:use-module ((guix docker) #:select (%docker-image-max-layers)) + #:use-module (gnu build hurd-boot) #:use-module (gnu build image) #:use-module (gnu build install) #:autoload (gnu build file-systems) @@ -243,6 +244,9 @@ (define (maybe-copy to-copy) (delete-file-recursively state))) (chmod target #o755) + ;; For the Hurd to boot, it needs some essential device nodes. + (when (target-hurd?) + (make-hurd-device-nodes target)) (let ((os-dir (derivation->output-path os-drv)) (format (lift format %store-monad)) (populate (lift2 populate-root-file-system %store-monad))) From patchwork Fri Oct 25 09:39:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69444 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id A624427BBE9; Fri, 25 Oct 2024 10:41:51 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 7A02D27BBEA for ; Fri, 25 Oct 2024 10:41:49 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp3-0002PG-3C; Fri, 25 Oct 2024 05:41:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp1-0002Or-NC for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:31 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp1-0003t3-Ee for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=iS7+3/AESJWRY83J3PsKmVkG2pCZUUpR5Nfk6jFjUR8=; b=elUiIhWu7yxjNJzmQQVUXCha9XNFyTBFMaJ8CBql+qrFHtmNUFfB++6PGlv+K3wZ7aJRBRwNC6y25Tanu1re0A6T2HRnJDgs6wvSkVma9VRuFTd7uOJV3kHexp3a9B9UpnHs19BZdlW6apXOuWDX7MpIvffffS1RFrotwBNbLV8ofWcH3+R/XmszqAOpNrvdw7FyqYKX76aTe6QCVpOBRIHfPMOde3oN6QZl2i6t6bqtTc0MJ1Mdjj+YwxRyBLB145rZbU9Pr9eKJaTxGx05cjvWpMJqABEnj5zoWYaexDIwz0Nspj3AHOf+ejhoALKm0HOjNG5hA8O/dn8Pi3QYpg==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4GpX-00025u-5l for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 03/17] bootloader: grub: Remove hardcoded partition number for the Hurd. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492787817 (code B ref 73927); Fri, 25 Oct 2024 09:42:03 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:18 +0000 Received: from localhost ([127.0.0.1]:37305 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gon-00021r-CK for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40720) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gof-00020V-CA for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:10 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Go4-0003mV-9C; Fri, 25 Oct 2024 05:40:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=iS7+3/AESJWRY83J3PsKmVkG2pCZUUpR5Nfk6jFjUR8=; b=oIB+PhG8pKSGlNPcZpM0 7hEWAYdylw/jAa+FUlsg/lFu+zSqSxdGtGR/cqmBHV3+kAxy+F6NCqhYhWukRwEUQ1JcKDAgUI4CD snFfPIvpC6HObjsXT8YdCyVJC3sAfhIG1QxkyIlugC86u+2MLT8XVdN4H3FkAQPXmZKOx1YM31bso U2FFVweOpczRuJHittd17QA4+zs3kbY0/9LFkY9VWbCZpnGWdLwZG94u3Kktm619q7UgOSJy3UdXP q7q8R3tC+rQu4LbeE9OTHa7ZRtsQv1ZS+LRiIZ+bgkbX7cLFc+v8A7j0OeKajLpGGUiVcutqCQCWs +1qkRiwWrNb21g==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:39:55 +0200 Message-ID: <20241025094011.8540-4-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches This supports using another than the default DISK0 PART1 and using LABEL or UUID as root file-system specifier. It still defaults to DISK0 PART1 if the file-system cannot be found, i.e., lives only at the build side: A virtual machine/childhurd build. * gnu/bootloader/grub.scm (%device-spec-regexp): New variable. (string->device-spec, device-spec->hurd-device): Use it in new procedures. (device->hurd-device): New procedure. (make-grub-configuration): Use them to remove hardcoded partition number (root-index 1). Change-Id: I49fa93dacc09883dfb4d695402c5eac2e0e17286 --- gnu/bootloader/grub.scm | 42 +++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index 2723eda5f4..c929af691b 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016 Chris Marusich ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017, 2020 Mathieu Othacehe -;;; Copyright © 2019, 2020, 2023 Janneke Nieuwenhuizen +;;; Copyright © 2019, 2020, 2023, 2024 Janneke Nieuwenhuizen ;;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas ;;; Copyright © 2020 Maxim Cournoyer ;;; Copyright © 2020 Stefan @@ -34,6 +34,7 @@ (define-module (gnu bootloader grub) #:use-module (guix gexp) #:use-module (gnu artwork) #:use-module (gnu bootloader) + #:use-module (gnu build file-systems) #:use-module (gnu system uuid) #:use-module (gnu system file-systems) #:use-module (gnu system keyboard) @@ -45,6 +46,7 @@ (define-module (gnu bootloader grub) #:use-module (ice-9 regex) #:use-module (srfi srfi-1) #:use-module (srfi srfi-2) + #:use-module (srfi srfi-26) #:export (grub-theme grub-theme? grub-theme-image @@ -355,6 +357,34 @@ (define (grub-root-search device file) ((or #f (? string?)) #~(format #f "search --file --set ~a" #$file))))) +(define %device-spec-regexp "/dev/[hsvw]d([abcd])([0-9]*)") +(define (string->device-spec str) + "Return device spec STR as /dev/XdYZ, also catering for uuid or label." + (cond ((string-match %device-spec-regexp str) + str) + ((string->uuid str) + => + find-partition-by-uuid) + (else + (find-partition-by-label str)))) + +(define* (device-spec->hurd-device device-spec #:key (disk "w")) + "Return DEVICE-SPEC as a Hurd device spec: + part:PART-NUMBER:device:DISKdDISK-INDEX +Default to part:1:device:DISKd0 if partition cannot be found." + (let* ((m (and=> device-spec (cute string-match %device-spec-regexp <>))) + (disk-char (and m (and=> (match:substring m 1) (compose car string->list)))) + (disk-index (or (and disk-char (- (char->integer disk-char) (char->integer #\a))) + 0)) + (partition-number (or (and m (and=> (match:substring m 2) string->number)) + 1))) + (format #f "part:~a:device:~ad~a" partition-number disk disk-index))) + +(define* (device->hurd-device device #:key (disk "w")) + "Return DEVICE as a Hurd device spec: part:PART-NUMBER:device:DISKdDISK-INDEX." + (let ((device-spec (canonicalize-device-spec device))) + (device-spec->hurd-device device-spec #:disk disk))) + (define* (make-grub-configuration grub config entries #:key (locale #f) @@ -413,16 +443,16 @@ (define (menu-entry->gexp entry) ;; IDE driver ("hdX") and those understood by rumpdisk ("wdX" ;; in the "noide" case). (disk (if (member "noide" arguments) "w" "h")) - (modules (menu-entry-multiboot-modules entry)) - (root-index 1)) ; XXX EFI will need root-index 2 + (device-string (file-system-device->string device)) + (device-spec (and=> device-string string->device-spec)) + (modules (menu-entry-multiboot-modules entry))) #~(format port " menuentry ~s { - multiboot ~a root=part:~a:device:~ad0~a~a + multiboot ~a root=~a~a~a }~%" #$label #$kernel - #$root-index - #$disk + #$(device-spec->hurd-device device-spec #:disk disk) (string-join (list #$@arguments) " " 'prefix) (string-join (map string-join '#$modules) "\n module " 'prefix)))) From patchwork Fri Oct 25 09:39:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69445 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 6681727BBEB; Fri, 25 Oct 2024 10:41:52 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 63F8327BBE2 for ; Fri, 25 Oct 2024 10:41:49 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp5-0002QW-20; Fri, 25 Oct 2024 05:41:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp2-0002Oz-6m for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:32 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp1-0003t9-UO for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=v7eM2uVrdoqbOUffc/yD5r848jCktjuGgc/Sjl1V6h0=; b=s+cp2UKN/KhG4gQkE5+Jm3aAH5QXpmDKxdhzGIkqEOa4VbQWJf3GMBhQjXf6afrjHllpUqwOg98r8otZAOe+7AqNgC+rZgxUPFQst1vwimCmoQt8pXUJG9EpUKm1EvwCKIeNKNCofeS2tP0akeX53OFGrW3k/2q1nVILegxLUhQjbhw4TWCo0t0/D+7ckjP4SG/AksGJgS9hNKN1Spyd6V8oAHwGnPKzOGMhZr/gAeGl6xGhhN0sCad+JaGAm6ClYSF3nVvZcBvHOYelnxgpFs+mPnl52oIBTAj6AYdh7AVe183f26pP8MDIgwAJIkqa+8nORjheWg3FDo1comfrcg==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4GpX-000262-LA for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 04/17] system: hurd: Remove qemu networking from %base-services/hurd. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492797832 (code B ref 73927); Fri, 25 Oct 2024 09:42:03 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:19 +0000 Received: from localhost ([127.0.0.1]:37307 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Goo-000224-57 for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40722) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Goh-00020b-MX for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:12 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Go6-0003mr-Jk; Fri, 25 Oct 2024 05:40:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=v7eM2uVrdoqbOUffc/yD5r848jCktjuGgc/Sjl1V6h0=; b=WOrhMMd/ca8OAl2DeDCP T6leKqAK7KpPpjr6W3gWVgI695mT0C4hf+4t1sPitQDiYb4GjEi7C3QlmDd0f7hJgEN6N65mNbKsf 1t+FxCfqH0Wg6HnOKFes10OxDt/vqxjBnCM80N2oQrIoAcoWZpuJ8XwwBwbHhfuppL6KPZisGaT7W kKIE7SBU6cmM1S8lLgEBz3PcpnXOY4QNKekEMHxffBxr6YaPxeM0MUSqzor3iXIGvX+j2cmVbBR3y ORr1L8WQlCTb6xK6D0LF5i7uGLmNc8olZSNihp80WAjUd6IWtzoTUAgXaru7pGEyPku48CGCquoyv 4m8MUKtSx7Yi8Q==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:39:56 +0200 Message-ID: <20241025094011.8540-5-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches This allows us to use %base-services/hurd for services in a Hurd config for a real machine without removing static-networking. * gnu/system/hurd.scm (%base-services/hurd): Factor networking out to... (%base-services+qemu-networking/hurd): ..this new variable. * gnu/system/examples/bare-hurd.tmpl (%hurd-os): Use it. * gnu/services/virtualization.scm (%hurd-vm-operating-system): Use it. * gnu/system/images/hurd.scm (hurd-barebones-os): Use it. Add comment about QEMU and networking for a real machine. Change-Id: I777a63410383b9bf8b5740e4513dbc1e9fb0fd41 --- gnu/services/virtualization.scm | 4 ++-- gnu/system/examples/bare-hurd.tmpl | 10 ++++++++-- gnu/system/hurd.scm | 23 ++++++++++++++--------- gnu/system/images/hurd.scm | 2 +- 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index d87e494348..d33dfa6ca7 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ryan Moe ;;; Copyright © 2018, 2020-2024 Ludovic Courtès -;;; Copyright © 2020, 2021, 2023 Janneke Nieuwenhuizen +;;; Copyright © 2020, 2021, 2023, 2024 Janneke Nieuwenhuizen ;;; Copyright © 2021 Timotej Lazar ;;; Copyright © 2022 Oleg Pykhalov ;;; Copyright © 2022 Leo Nikkilä @@ -1643,7 +1643,7 @@ (define %hurd-vm-operating-system ;; /etc/guix/acl file in the childhurd. Thus, clear ;; 'authorize-key?' so that it's not overridden at activation ;; time. - (modify-services %base-services/hurd + (modify-services %base-services+qemu-networking/hurd (guix-service-type config => (guix-configuration (inherit config) diff --git a/gnu/system/examples/bare-hurd.tmpl b/gnu/system/examples/bare-hurd.tmpl index 463c7ee798..68c6d3c166 100644 --- a/gnu/system/examples/bare-hurd.tmpl +++ b/gnu/system/examples/bare-hurd.tmpl @@ -1,7 +1,7 @@ ;; -*-scheme-*- ;; This is an operating system configuration template -;; for a "bare bones" setup, with no X11 display server. +;; for a "bare bones" QEMU setup, with no X11 display server. ;; To build a disk image for a virtual machine, do ;; @@ -54,6 +54,12 @@ (permit-root-login #t) (allow-empty-passwords? #t) (password-authentication? #t))) - %base-services/hurd)))) + ;; For installing on a real (non-QEMU) machine, use: + ;; (static-networking-service-type + ;; (list %loopback-static-networking + ;; (static-networking + ;; ...))) + ;; %base-services/hurd + %base-services+qemu-networking/hurd)))) %hurd-os diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm index 6d6a20cf57..283bae6f10 100644 --- a/gnu/system/hurd.scm +++ b/gnu/system/hurd.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020-2024 Ludovic Courtès -;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen +;;; Copyright © 2020, 2023, 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,6 +47,7 @@ (define-module (gnu system hurd) #:use-module (gnu system vm) #:export (%base-packages/hurd %base-services/hurd + %base-services+qemu-networking/hurd %hurd-default-operating-system %hurd-default-operating-system-kernel %setuid-programs/hurd)) @@ -79,14 +80,6 @@ (define %base-packages/hurd (define %base-services/hurd (append (list (service hurd-console-service-type (hurd-console-configuration (hurd hurd))) - (service static-networking-service-type - (list %loopback-static-networking - - ;; QEMU user-mode networking. To get "eth0", you need - ;; QEMU to emulate a device for which Mach has an - ;; in-kernel driver, for instance with: - ;; --device rtl8139,netdev=net0 --netdev user,id=net0 - %qemu-static-networking)) (service guix-service-type (guix-configuration (extra-options '("--disable-chroot" @@ -102,6 +95,18 @@ (define %base-services/hurd (tty (string-append "tty" (number->string n)))))) (iota 6 1)))) +(define %base-services+qemu-networking/hurd + (cons + (service static-networking-service-type + (list %loopback-static-networking + + ;; QEMU user-mode networking. To get "eth0", you need + ;; QEMU to emulate a device for which Mach has an + ;; in-kernel driver, for instance with: + ;; --device rtl8139,netdev=net0 --netdev user,id=net0 + %qemu-static-networking)) + %base-services/hurd)) + (define %setuid-programs/hurd ;; Default set of setuid-root programs. (map file-like->setuid-program diff --git a/gnu/system/images/hurd.scm b/gnu/system/images/hurd.scm index 9b618f7dc6..01c422a54f 100644 --- a/gnu/system/images/hurd.scm +++ b/gnu/system/images/hurd.scm @@ -60,7 +60,7 @@ (define hurd-barebones-os (permit-root-login #t) (allow-empty-passwords? #t) (password-authentication? #t))) - %base-services/hurd)))) + %base-services+qemu-networking/hurd)))) (define hurd-initialize-root-partition #~(lambda* (#:rest args) From patchwork Fri Oct 25 09:39:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69448 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id F0E5427BBEA; Fri, 25 Oct 2024 10:42:04 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 65AD227BBE2 for ; Fri, 25 Oct 2024 10:42:04 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp4-0002PY-Kj; Fri, 25 Oct 2024 05:41:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp2-0002P7-L6 for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:32 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp2-0003tF-Al for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=dTzYYFac8op+rYUIIHwt/QGBGUyoFWbx3ZMvObbec1E=; b=tEcDkAvmR2UF1l0y1FLNCwFZb4sphSx6MC3PK6QwsCVqHYkIUDTTY19b4qiAIMUNKI2LYdqenLwBVpetK5UF5ezY7x9XkCQnsejRiSvffuqTrMrTPHcVXsrZE5yWsxB7UqNmCKeMP4WHPeJ6tOiCKocHy7LnSm7f18a/Jt7167YtpqOUh1uWu5t/TzbsSPy4iIzsAXah94BbiayHlJxxW5Peho7GOR5dgo/ygd6EjpfqeTbS7EmxCqkJecVRbZSrvyMJj8O9kDiVhcIb19K/Gr4iYkM/27ZEfu39FRMsXicVn6DCfiH5BhTb0k9JYaN0b35coVtK+4l/LlTuMQoaLw==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4GpY-00026A-3U for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 05/17] system: hurd: Add swap-services to hurd-default-essential-services. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492867883 (code B ref 73927); Fri, 25 Oct 2024 09:42:04 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:26 +0000 Received: from localhost ([127.0.0.1]:37325 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gow-000234-0v for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:26 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40738) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gok-00020j-0j for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:14 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Go8-0003nA-SB; Fri, 25 Oct 2024 05:40:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=dTzYYFac8op+rYUIIHwt/QGBGUyoFWbx3ZMvObbec1E=; b=hs0SBYvtQ+GZN13JE50k OI4p8ifv6WPF5p37lOxbbTs/gornym8NEdVP2FMhX17ApsYZ49XRyVcx4gczlGUwh4jAW0SVZTkmj padwYBVE1u9NV0hQV+mfX3M/bIgzvSVzyH94Jzn/+HzQawKgYY17qJHlZW9SfFIuIrYVfK5BVl44h g2bAA7zRNjOLsRCezLIAUj99NaFRobUlwxwdBabjbI2FKlJJwxzz3JDbDf5qkegG9BCVF7ll1XAbY 4HXyS8eozjcc4761L/A01LCHdXh1pE02qXM4ynRBeV+9UuYjWf0luyhx/XmMJWH3kM7jwj+L+3uhY +cGV0ytLxy8+jQ==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:39:57 +0200 Message-ID: <20241025094011.8540-6-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/services/base.scm (swap-service-type): Do not include 'udev' requirement for the Hurd. Use system* with "swapon", "swapoff" for the Hurd. * gnu/system.scm (hurd-default-essential-services): Add swap-services. * gnu/services/base.scm (swap-service-type): Change-Id: I1d4d445c614921752dc84aa0dd6ff42cdbf62aa8 --- gnu/services/base.scm | 20 +++++++++++++------- gnu/system.scm | 13 +++++++------ 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index d0a57a8807..6201dea4b8 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -44,6 +44,7 @@ (define-module (gnu services base) #:autoload (guix diagnostics) (warning formatted-message &fix-hint) #:autoload (guix i18n) (G_) #:use-module (guix combinators) + #:use-module (guix utils) #:use-module (gnu services) #:use-module (gnu services admin) #:use-module (gnu services shepherd) @@ -2647,7 +2648,7 @@ (define device-lookup (with-imported-modules (source-module-closure '((gnu build file-systems))) (shepherd-service (provision (list (swap->shepherd-service-name swap))) - (requirement `(udev ,@requirements)) + (requirement `(,@(if (target-hurd?) '() '(udev)) ,@requirements)) (documentation "Enable the given swap space.") (modules `((gnu build file-systems) ,@%default-modules)) @@ -2655,16 +2656,21 @@ (define device-lookup (let ((device #$device-lookup)) (and device (begin - (restart-on-EINTR (swapon device - #$(if (swap-space? swap) - (swap-space->flags-bit-mask - swap) - 0))) + #$(if (target-hurd?) + #~(system* "swapon" device) + #~(restart-on-EINTR + (swapon device + #$(if (swap-space? swap) + (swap-space->flags-bit-mask + swap) + 0)))) #t))))) (stop #~(lambda _ (let ((device #$device-lookup)) (when device - (restart-on-EINTR (swapoff device))) + #$(if (target-hurd?) + #~(system* "swapoff" device) + #~(restart-on-EINTR (swapoff device)))) #f))) (respawn? #f)))) (description "Turn on the virtual memory swap area."))) diff --git a/gnu/system.scm b/gnu/system.scm index c19730b331..533a4154d6 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -845,11 +845,11 @@ (define (hurd-default-essential-services os) (let ((host-name (operating-system-host-name os)) (hosts-file (%operating-system-hosts-file os)) (entries (operating-system-directory-base-entries os))) - (list (service system-service-type entries) - %boot-service - %hurd-startup-service - %activation-service - (service shepherd-root-service-type) + (cons* (service system-service-type entries) + %boot-service + %hurd-startup-service + %activation-service + (service shepherd-root-service-type) (service user-processes-service-type) ;; Make sure that privileged-programs activation script @@ -873,7 +873,8 @@ (define (hurd-default-essential-services os) (list `("hosts" ,hosts-file))) (service hosts-service-type (local-host-entries host-name))) - (service profile-service-type (operating-system-packages os))))) + (service profile-service-type (operating-system-packages os)) + (swap-services os)))) (define* (operating-system-services os) "Return all the services of OS, including \"essential\" services." From patchwork Fri Oct 25 09:39:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69453 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 12C1427BBEA; Fri, 25 Oct 2024 10:42:36 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id B86D027BBE2 for ; Fri, 25 Oct 2024 10:42:34 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4GpB-0002Vn-4R; Fri, 25 Oct 2024 05:41:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp3-0002PH-34 for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:33 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp2-0003tN-Qa for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=LrRaWiUAjE/ABqaSMHGg0G+E2VouERezmvh7ze3qFEw=; b=MlIs8Ni7SrgtqV0OtMHqqmqXwPDnqEHDhHe4aWLK0KXVj6oVlgM7bmALl5jcwBY1gtIkWZeoy99hig6G8ed22txPmcP8cYq0O9VmTq93ImjdiDBIdclcqRx739XbwzW0VCVm2Kgq7XpjxYzx4bvjurXAbhNIr2qDWQOiniMwGK367D6iZrBuOXaPS65REyqL9r1WhXYWAdoA5gN9BNn0ANJBskO98afRX04jWIAPR2hht0smuHa7iHK2+A93kmsn6w9VY3nTMC8DRvAwjMeq1BXE92oejgLJbshd7NrSuoE9MAz61q2rQuXBBHIpDoheXhkT5fGu3xdGNQkxkCbPtg==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4GpY-00026I-HG for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 06/17] gnu: hurd: Support second boot. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492877892 (code B ref 73927); Fri, 25 Oct 2024 09:42:04 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:27 +0000 Received: from localhost ([127.0.0.1]:37327 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gow-000236-Fk for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:26 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40752) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gok-00020t-O8 for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:15 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Go9-0003nN-LH; Fri, 25 Oct 2024 05:40:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=LrRaWiUAjE/ABqaSMHGg0G+E2VouERezmvh7ze3qFEw=; b=MFGR+g5hqyIh6545isR3 UvIwimx1XJL1FcGeJlGNMjs6FSkiKbtLnOrIrIrp0VSlkiAqWYDjUKcjqc3jo1D0sL2ovSCiAjQ75 B+oUyDrwAW18dBTNnyICr3bUhofnNdDjA5oF193F+Gs8FGFY2z/3Xk+nnV+wayEyglbfWRr2OCG6R oNm4WpQsFzM6hVrNjparTA2Aj8cYdXE6Al4DhcK55wdV/Xdtkca4Nr/E4rNGID3nSjGsPORSqDwp7 4OCC26lLdo7Qw7QAQsOtBUbm5UQYYjhpBpFMvPkQKNLleuV1m0HiVFJqK97bESKw3Zhh6FWZmQJ6u kGEXoddOCQoymQ==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:39:58 +0200 Message-ID: <20241025094011.8540-7-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches This avoids hanging upon second boot and ensures a declarative /hurd and /dev. * gnu/packages/patches/hurd-startup.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/hurd.scm (hurd): Use it. [arguments]: In stage create-runsystem remove /dev/urandom. Change-Id: Ifcca5562c297204735c35132820a32ca0f273677 --- gnu/local.mk | 1 + gnu/packages/hurd.scm | 6 +- gnu/packages/patches/hurd-startup.patch | 82 +++++++++++++++++++++++++ 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/hurd-startup.patch diff --git a/gnu/local.mk b/gnu/local.mk index 911af88627..0a1357f114 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1540,6 +1540,7 @@ dist_patch_DATA = \ %D%/packages/patches/hubbub-sort-entities.patch \ %D%/packages/patches/hueplusplus-mbedtls.patch \ %D%/packages/patches/hurd-rumpdisk-no-hd.patch \ + %D%/packages/patches/hurd-startup.patch \ %D%/packages/patches/hwloc-1-test-btrfs.patch \ %D%/packages/patches/i7z-gcc-10.patch \ %D%/packages/patches/icecat-makeicecat.patch \ diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index e6ea920714..9c1681f236 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -317,7 +317,8 @@ (define-public hurd (name "hurd") (source (origin (inherit (package-source hurd-headers)) - (patches (search-patches "hurd-rumpdisk-no-hd.patch")))) + (patches (search-patches "hurd-rumpdisk-no-hd.patch" + "hurd-startup.patch")))) (version (package-version hurd-headers)) (arguments `(#:tests? #f ;no "check" target @@ -388,6 +389,9 @@ (define-public hurd # Note: this /hurd/ gets substituted settrans --create /servers/socket/1 /hurd/pflocal +# Upon second boot, (file-exists? /dev/null) in hurd-boot-system hangs unless: +rm -f /dev/urandom + # parse multiboot arguments for i in \"$@\"; do case $i in diff --git a/gnu/packages/patches/hurd-startup.patch b/gnu/packages/patches/hurd-startup.patch new file mode 100644 index 0000000000..0b0dcc9537 --- /dev/null +++ b/gnu/packages/patches/hurd-startup.patch @@ -0,0 +1,82 @@ +This avoids hanging upon second boot and ensures a declarative /dev. + +Upstream status: Not presented upstream. + +From a15d281ea012ee360c45376e964d35f6292ac549 Mon Sep 17 00:00:00 2001 +From: Janneke Nieuwenhuizen +Date: Sat, 27 May 2023 17:28:22 +0200 +Subject: [PATCH] startup: Remove /hurd, /dev, create /servers. + +This avoids hanging upon second boot and ensures a declarative /hurd +and /dev. + +* startup/startup.c (rm_r, create_servers): New functions. +(main): Use them to remove /dev and create /servers. Remove /hurd +symlink. +--- + startup/startup.c | 42 ++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 42 insertions(+) + +diff --git a/startup/startup.c b/startup/startup.c +index feb7d265..5f380194 100644 +--- a/startup/startup.c ++++ b/startup/startup.c +@@ -732,6 +732,42 @@ parse_opt (int key, char *arg, struct argp_state *state) + return 0; + } + ++#include ++static int ++rm_r (char const *file_name) ++{ ++ int callback (char const *file_name, struct stat64 const *stat_buffer, ++ int type_flag, struct FTW *ftw_buffer) ++ { ++ fprintf (stderr, "startup: removing: %s\n", file_name); ++ return remove (file_name); ++ } ++ ++ return nftw64 (file_name, callback, 0, FTW_DEPTH | FTW_MOUNT | FTW_PHYS); ++} ++ ++void ++create_servers (void) ++{ ++ char const *servers[] = { ++ "/servers/startup", ++ "/servers/exec", ++ "/servers/proc", ++ "/servers/password", ++ "/servers/default-pager", ++ "/servers/crash-dump-core", ++ "/servers/kill", ++ "/servers/suspend", ++ 0, ++ }; ++ mkdir ("/servers", 0755); ++ for (char const **p = servers; *p; p++) ++ open (*p, O_WRONLY | O_APPEND | O_CREAT, 0444); ++ mkdir ("/servers/socket", 0755); ++ mkdir ("/servers/bus", 0755); ++ mkdir ("/servers/bus/pci", 0755); ++} ++ + int + main (int argc, char **argv, char **envp) + { +@@ -741,6 +777,12 @@ main (int argc, char **argv, char **envp) + mach_port_t consdev; + struct argp argp = { options, parse_opt, 0, doc }; + ++ /* GNU Guix creates fresh ones in boot-hurd-system. */ ++ unlink ("/hurd"); ++ rm_r ("/dev"); ++ mkdir ("/dev", 0755); ++ create_servers (); ++ + /* Parse the arguments. We don't want the vector reordered, we + should pass on to our child the exact arguments we got and just + ignore any arguments that aren't flags for us. ARGP_NO_ERRS +-- +2.40.1 + From patchwork Fri Oct 25 09:39:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69452 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 53C7D27BBEC; Fri, 25 Oct 2024 10:42:35 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id D126327BBEA for ; Fri, 25 Oct 2024 10:42:34 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp5-0002Qe-G4; Fri, 25 Oct 2024 05:41:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp3-0002PP-It for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:34 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp3-0003tS-AC for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=jHaKbg4o/jE+GpBXlbLJ5PGb1IQGQgzbQVVHRqpqhLg=; b=uZhIr8bfUd9tiKMdbEYVrVXNGo0wJ0oXq1eBFvVxVfkPx8JWHAnHGrlF2Ak/Jl/ZTOoVUS4PqMjc2tyrGZG6yKMqIony/LPfb+8/x60wMo+V2qDhpUvwankBOPCEd7yo5MIeo3k4/AO5P2kyA5nl4VRRtVJkxPkGH1TfQzNvgVbk/LHZiJrKBuLpNl9l9A3INVfmmOD4S1tGZR37j5gpp+aFI75Sfav5TVX+jmN2HUR/8kTxhrIywmyJzYig7RRXB5irw0tIursh/RraNCiceU0wbBvelT9JwnaF59xlZLCLwBOcnzenPpWDew9+PXffE626vhI2yryzHE6S0YrvSA==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4GpZ-00026P-1T for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:05 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 07/17] hurd-boot: Support second boot. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492877900 (code B ref 73927); Fri, 25 Oct 2024 09:42:05 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:27 +0000 Received: from localhost ([127.0.0.1]:37329 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gow-00023G-W6 for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:27 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40768) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gol-000210-ET for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4GoA-0003na-Bl; Fri, 25 Oct 2024 05:40:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=jHaKbg4o/jE+GpBXlbLJ5PGb1IQGQgzbQVVHRqpqhLg=; b=ZbrN4zqiSGcMSXL0KeNy 4OObyq50QJRIStmknQMJdGDGRB5Ge2PmECAaBXROsKubdVvLb+pLCSXihaQyaVHbB0QCCRWw+Gw62 nZhX3L2b4sGMyxd+xQOZZirlR1Qzmc7pi+OwAGbvP9NvdoTTjLvE3H4W2aXT+d1xRXphbNZK6W+Sq YKe/6Vz+8p6jG1DMoSMkY98Z7jf+/YzVSQjM0NeSH7cvaJJib/1tJ+CPh1lAmDJyRC4W92kdBC0an +F12QSBZmcjvASPAhCYzNrMZp2fLPWTMIrU3FviAI7NpgFmac2c4vI/uTaViJeNDc1lpL5gfeCsqj tqAcrlx/tRHpnQ==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:39:59 +0200 Message-ID: <20241025094011.8540-8-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/build/hurd-boot.scm (boot-hurd-system): Check for stale shepherd socket and remove it. Be chattier about /hurd symlink replacement. Change-Id: I5e528c131ebeadb7ebc9727336a0f9301af3e68e --- gnu/build/hurd-boot.scm | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm index daf4fb41ab..23ace25d4f 100644 --- a/gnu/build/hurd-boot.scm +++ b/gnu/build/hurd-boot.scm @@ -322,18 +322,29 @@ (define* (boot-hurd-system #:key (on-error 'debug)) (let* ((args (command-line)) (system (find-long-option "gnu.system" args)) - (to-load (find-long-option "gnu.load" args))) + (to-load (find-long-option "gnu.load" args)) + (profile (string-append system "/profile")) + (bin (string-append profile "/bin")) + (sbin (string-append profile "/bin"))) - (false-if-exception (delete-file "/hurd")) - (let ((hurd/hurd (readlink* (string-append system "/profile/hurd")))) - (symlink hurd/hurd "/hurd")) + (setenv "PATH" (string-append bin ":" sbin)) + + (when (file-exists? "/var/run/shepherd/socket") + (format #t "Removing stale shepherd socket...\n") + (delete-file "/var/run/shepherd/socket")) (unless (file-exists? "/servers/startup") (format #t "Creating essential device nodes...\n") (make-hurd-device-nodes)) + (let ((profile/hurd (readlink* (string-append profile "/hurd")))) + (when (file-exists? "/hurd") + (format #t "Removing stale /hurd link\n") + (delete-file "/hurd")) + (format #t "Linking /hurd from ~a...\n" profile/hurd) + (symlink profile/hurd "/hurd")) + (format #t "Setting-up essential translators...\n") - (setenv "PATH" (string-append system "/profile/bin")) (set-hurd-device-translators) (format #t "Starting pager...\n") From patchwork Fri Oct 25 09:40:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69447 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 6755E27BBEA; Fri, 25 Oct 2024 10:42:02 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 31BDF27BBE2 for ; Fri, 25 Oct 2024 10:42:02 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp5-0002Ql-Nl; Fri, 25 Oct 2024 05:41:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp4-0002PX-2G for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:34 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp3-0003tY-QS for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=P0PHZ7Z+mClmqxZMoGyaY70WFWhoB6kPXaCkEj9nTZg=; b=sp76ZW6WBoxX68v2lYDEEnOHEqUpQMUXgAM2REK3z8xSwRpU+XUHSq40ttqMOqiQdg1ohXdROLNBBYcG7eY+5OhqfuHIBpCnnJM6FmRioovo6b64ply6CgdHOcsPNvAlBVjYmeJf+1b+4eD3LPNIP1y/ikjGLg00P2CY2nqZyboknBTB7vt3u+7PIs5OOiPnjjIjG6z90zHKOcxkG78Z/kVVRf3b3dmEUW1TL5jXT9gmxP5xiSzs+jpfR6i/6KB4qKWWGHE+ZK3XtOCkiKvQP9GZG4zE2nFlNLMETXPgJ5rusSzi+mKMeAcxSil+es9GMeQ08N5t6LmyA0eYm3F98w==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4GpZ-00026W-Hi for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:05 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 08/17] maint: Add installer dependencies to the manifest. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492877908 (code B ref 73927); Fri, 25 Oct 2024 09:42:05 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:27 +0000 Received: from localhost ([127.0.0.1]:37331 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gox-00023N-GC for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:27 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40772) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gom-000212-Bw for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4GoB-0003nl-8w; Fri, 25 Oct 2024 05:40:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=P0PHZ7Z+mClmqxZMoGyaY70WFWhoB6kPXaCkEj9nTZg=; b=kreuGKuJbSzxaU5LhpPE gINWBtBGRArI3iUBmwOVeQwde4Fc4RrfEwAtxfG9PU9fhd6x3LtI3Gv4S/MG+cnd9phj51XIwnx51 0HaH66FDTzYUMOXPyBNCcq8o7eyz0I279VzlJIJmFijh3sPfBXArTCb+BAAr3w6PDZs4J/HGGDlxP 5i+BNXachcT9JtlAZJ4A9p9+1beT4hjaqaM2nA90uN7eSOEYmtUpHrjziGGmNLRoyQ5019ubMdDLB B0JM6GjwZUzAzuqJk9rvX7sUyJIFON1TfgYcPdINc6BPfttBqG9SplnOBf1s4tFq+5w/FQjGNdcUO PPpa0PeoME7+eQ==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:40:00 +0200 Message-ID: <20241025094011.8540-9-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * manifest.scm: Add guile-newt, guile-parted, guile-webutils. Change-Id: Idcf46320d29c15f36da05f66e81b7779e37c1bf6 --- manifest.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/manifest.scm b/manifest.scm index 27e1d62566..ccd6268461 100644 --- a/manifest.scm +++ b/manifest.scm @@ -51,4 +51,9 @@ "mumi" "nss-certs" "openssl" ;required if using 'smtpEncryption = tls' - "patman")))) + "patman")) + ;; For installer + (specifications->manifest + (list "guile-newt" + "guile-parted" + "guile-webutils")))) From patchwork Fri Oct 25 09:40:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69456 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 88C1A27BBEA; Fri, 25 Oct 2024 10:42:44 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 471F627BBE2 for ; Fri, 25 Oct 2024 10:42:44 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4GpB-0002Vo-BN; Fri, 25 Oct 2024 05:41:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp4-0002Pu-Ja for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:34 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp4-0003td-BA for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=yK00Fpp7FvviPVDnKSLTliUmQx+JHOKJWcurU/NILrU=; b=Zn7hTbVq+3di6A1L1065PLXGdIHaeJUK6lpYbhcODdn8ZezUWUZQKDwPamck8WpjVxhZnshD2JKQ+Qf+0EKGKWzPunCpikp61jycguFMy/p37ICp6m5jGnyTz8r5BR9aSWewyZWA1MbYifiE4xW4UxtmKIhsk3ekARAmo7sJ25aPW+uVvRepYVSXPvN4G5zjrcgG7qA6VB0po8yiSfLSD8VqsvbGBH1t/pqngOJPMXgdyZvPvkBeV1qhNfAYdXpNh/5TqRmjyeaRQ8Sz2k5QbisbV9Q7oC4FvmNqU8F3B2R+lXto1LrHglk7FU31EoeZPK80XVLBLLJA62h2/9kdWw==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4Gpa-00026e-2H for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:06 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 09/17] installer: Remove unused (newt) imports. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492887915 (code B ref 73927); Fri, 25 Oct 2024 09:42:06 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:28 +0000 Received: from localhost ([127.0.0.1]:37333 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gox-00023V-Ol for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:28 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36412) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gon-000214-7X for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:17 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4GoC-0003nw-4a; Fri, 25 Oct 2024 05:40:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=yK00Fpp7FvviPVDnKSLTliUmQx+JHOKJWcurU/NILrU=; b=Ay8dliY/wlhnWdV5MMx7 HjStxrOjmmt14DplfnCsDobhaQd2WdhbD+dSxFBU2rG5hw5HqpAZqLHmCr/2zDNKW7QIZAB5IKkp9 ebsAwWjp0fEpRSUHIy5P3PC6jqdCqY1v5OIlkIyk6v4vxvx9yoMlgafdrlgLTfC4jYeVygliWUzPy Xs7dpoqul7nSx0WMBTr7USfZgb/12spa5p7Q7u22RGRqfxpXvbBVUchn7svmXfzeL27Ur2ovnUDCb QkIuwRnGyPbS8G9Z1jViwwrEFJQaVQ4rsgbAepcwrqZiJbtQaesuIHBQx1Q94LE2GrI90GNGnIJLo ORxrdt2dMwiwEA==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:40:01 +0200 Message-ID: <20241025094011.8540-10-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/installer/newt/ethernet.scm, gnu/installer/newt/keymap.scm, gnu/installer/newt/locale.scm, gnu/installer/newt/parameters.scm, gnu/installer/newt/services.scm: Remove (newt). Change-Id: Ia6624aaf73491024da54b8ffee7358941b187fdf --- gnu/installer/newt/ethernet.scm | 1 - gnu/installer/newt/keymap.scm | 1 - gnu/installer/newt/locale.scm | 1 - gnu/installer/newt/parameters.scm | 1 - gnu/installer/newt/services.scm | 1 - 5 files changed, 5 deletions(-) diff --git a/gnu/installer/newt/ethernet.scm b/gnu/installer/newt/ethernet.scm index d75a640519..53e440fd60 100644 --- a/gnu/installer/newt/ethernet.scm +++ b/gnu/installer/newt/ethernet.scm @@ -27,7 +27,6 @@ (define-module (gnu installer newt ethernet) #:use-module (ice-9 match) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) - #:use-module (newt) #:export (run-ethernet-page)) (define (ethernet-services) diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm index c5d4be6792..109ec55e0a 100644 --- a/gnu/installer/newt/keymap.scm +++ b/gnu/installer/newt/keymap.scm @@ -24,7 +24,6 @@ (define-module (gnu installer newt keymap) #:use-module (gnu installer newt page) #:use-module (guix i18n) #:use-module (guix records) - #:use-module (newt) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) diff --git a/gnu/installer/newt/locale.scm b/gnu/installer/newt/locale.scm index 01171e253f..a226b39ba6 100644 --- a/gnu/installer/newt/locale.scm +++ b/gnu/installer/newt/locale.scm @@ -22,7 +22,6 @@ (define-module (gnu installer newt locale) #:use-module (gnu installer steps) #:use-module (gnu installer newt page) #:use-module (guix i18n) - #:use-module (newt) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) diff --git a/gnu/installer/newt/parameters.scm b/gnu/installer/newt/parameters.scm index 8fb1aa3abb..7c61266e4d 100644 --- a/gnu/installer/newt/parameters.scm +++ b/gnu/installer/newt/parameters.scm @@ -23,7 +23,6 @@ (define-module (gnu installer newt parameters) #:use-module (guix build syscalls) #:use-module (guix i18n) #:use-module (ice-9 match) - #:use-module (newt) #:export (run-parameters-page)) (define (run-proxy-page) diff --git a/gnu/installer/newt/services.scm b/gnu/installer/newt/services.scm index b22024602c..d1035b6524 100644 --- a/gnu/installer/newt/services.scm +++ b/gnu/installer/newt/services.scm @@ -28,7 +28,6 @@ (define-module (gnu installer newt services) #:use-module (guix i18n) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) - #:use-module (newt) #:export (run-services-page)) (define (run-desktop-environments-cbt-page) From patchwork Fri Oct 25 09:40:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69457 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id C1AAD27BBE2; Fri, 25 Oct 2024 10:42:52 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 834ED27BBE2 for ; Fri, 25 Oct 2024 10:42:52 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4GpB-0002Vq-Ga; Fri, 25 Oct 2024 05:41:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp5-0002QY-3B for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:35 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp4-0003tl-R0 for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=v/pW+YqpBk1rh8FIYn7q3YSdCaiGXFqk4xeKpH1/B20=; b=bdbie4TDucHfeHpwf50GRVccVTqRtYLmemCXeu1YPVij98gcq4u1nZB6xhqXlyiJvT3zl2+vPjHMem1y4r7u8IwPGM1xLqz2e/L6nZk5yjKD0qV8iRBRG9JMnv0/e7TZy5LUHNMr6D8XWPrNOdDw2YDC4Fa2jBzhrAgLFBw3WzZQIFOipNFUz7mSZuxZXzJqM2e95rNrR5W2q4fZPY8XoF27tTwDULQSKCjlBd7HB8IuQ4QeNCO/nf59v3dDYmzCRmNNNl++dfMM+tb9NevyvKlL7tKf7f/pD75/SvLzzDYlQsb5RzxdQ7NgQc09tIMpy9oVyTYBMTTBNNBR04YGww==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4Gpa-00026l-IW for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:06 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 10/17] installer: Align comments. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492887923 (code B ref 73927); Fri, 25 Oct 2024 09:42:06 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:28 +0000 Received: from localhost ([127.0.0.1]:37335 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Goy-00023c-70 for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:28 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36424) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Goo-00021H-67 for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:18 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4GoD-0003oC-2s; Fri, 25 Oct 2024 05:40:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=v/pW+YqpBk1rh8FIYn7q3YSdCaiGXFqk4xeKpH1/B20=; b=guSl/1sxnMYRjJfG77l9 E9e83rM8153fQhgFxUCMrtxIeUeZcPwHCIsbjxG3ppbom9dCv1Omy0A7iopg2XDvGnNMYTL3GR90K NPFeHaxI8Wy3NNbUCixBNDuZz39Uk2EPbruxehK0hlvCXfVGpv7d/aLY+5fDpTgxncemtvgXxoHVt 6OGMk3T/OHHS5PDb2vo0J7HCxkEfddordnLpXivzP0Y4vsCZdFrM5Wu+0lq/iSTnQcjjSkr3pIYDS FuoYNWUBW1f0F6njQe7SO0t+MynQi/Uc8gtfcsAGGGNVuTqrFFKb7ueNG7vpW/0pAeX4Ybs/8oGDz xWYrHz5oUoXSIw==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:40:02 +0200 Message-ID: <20241025094011.8540-11-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/installer.scm (installer-program): Align comments. Change-Id: I50c173c46ea9bfdb3da0562146bc969d46f0edd9 --- gnu/installer.scm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gnu/installer.scm b/gnu/installer.scm index 5cd99e4013..3dfcb7581a 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -355,22 +355,22 @@ (define init-gettext (define set-installer-path ;; Add the specified binary to PATH for later use by the installer. #~(let* ((inputs - '#$(list bash ;start subshells - connman ;call connmanctl + '#$(list bash ;start subshells + connman ;call connmanctl cryptsetup - dosfstools ;mkfs.fat - e2fsprogs ;mkfs.ext4 - lvm2-static ;dmsetup + dosfstools ;mkfs.fat + e2fsprogs ;mkfs.ext4 + lvm2-static ;dmsetup btrfs-progs - jfsutils ;jfs_mkfs - ntfs-3g ;mkfs.ntfs - xfsprogs ;mkfs.xfs - kbd ;chvt - util-linux ;mkwap + jfsutils ;jfs_mkfs + ntfs-3g ;mkfs.ntfs + xfsprogs ;mkfs.xfs + kbd ;chvt + util-linux ;mkwap nano shadow - tar ;dump - gzip ;dump + tar ;dump + gzip ;dump coreutils))) (with-output-to-port (%make-void-port "w") (lambda () From patchwork Fri Oct 25 09:40:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69459 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 5EAAB27BBE2; Fri, 25 Oct 2024 10:42:54 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id AF06127BBEC for ; Fri, 25 Oct 2024 10:42:52 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp8-0002TH-0D; Fri, 25 Oct 2024 05:41:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp5-0002Qj-KT for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:35 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp5-0003tq-CQ for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=YWNSWcmINKhnMV8UXOKL7aNKl6P/JUbqiUnTq7ngZK4=; b=OuSY91slJWyAkjOxRNcOFbdRlX2LRIXIaoDFXE/P3rsu5mhUbZRXXreRAjzEhSIwcs9amWZhGhisOFO03XscldZfVb/LAQRUupgVIp/IAyZ42xWKwMVDJSM5xdjf1rdzCpMrX/xUXK/jvMerPXtn1R/0Cw9qWae6EudQwSi4VTXEawyma1ABhIKo3Y5SwIJZm29WsIeuXlFVL1BZaXOJznT5XTlXMPvEPS0yWeuf451u4G9qYs9XMjIjt1t1l96QDQzktw9qFxaGJnggKv5UE4BMTvrp0JCHpfwaisJ/YJTrV+jcnqy4pqW9LLLBPzxiBewGBWeBzMdoepHQCRfruA==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4Gpb-00026t-4D for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:07 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 11/17] installer: Use "partitioning-page" consistently. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492897931 (code B ref 73927); Fri, 25 Oct 2024 09:42:07 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:29 +0000 Received: from localhost ([127.0.0.1]:37337 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Goy-00023k-I2 for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:28 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36434) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Goo-00021P-SC for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:19 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4GoD-0003oL-PY; Fri, 25 Oct 2024 05:40:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=YWNSWcmINKhnMV8UXOKL7aNKl6P/JUbqiUnTq7ngZK4=; b=lZMi1J5AoiCAFQt1CFmD CdscRP8eR5OmBK1eRmSHT+hy71LDTEiU33XzEisZCOa5PyMNuz6SbkxTzDDwDmm4oGcXZPHJkTdAP hgs/vxr7QooO7WXz6tZaTzVZAYr5XSibRklHkYsha4ixmzUqd+7zWoJ1eHTBf2+WRCxud396cccMD yxwK91aQY0H/sNHHfvUticWZuuzzg/muo92/xg2eUN8G8WDBv2GeKUxuDEKASOv71cIM3lWu/GHdK C/Ml6QZP8OYsaEsXikpopX+uWLk4ncGADL7CnYEBork5Aq2nmiC0LYu5Wl1kUAxuJjanEAw8bL/FA 93iBRY3U+VjMZQ==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:40:03 +0200 Message-ID: <20241025094011.8540-12-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches Having `partition-page' function call `RUN-partititionING-page' where all other proxy functions call `RUN-' hurts my brain while refactoring. * gnu/installer/record.scm ()[partition-page]: Rename to... [partitioning-page]: ...this. * gnu/installer/newt.scm (partitioning-page, newt-installer): Update accordingly. * gnu/installer.scm (installer-steps): Update accordingly. Change-Id: I6b2f3459a3d0a7a89260224b7d8438676e3411ba --- gnu/installer.scm | 3 ++- gnu/installer/newt.scm | 5 +++-- gnu/installer/record.scm | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/gnu/installer.scm b/gnu/installer.scm index 3dfcb7581a..3a05843cab 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2019, 2020, 2022 Ludovic Courtès ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Florian Pelz +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -312,7 +313,7 @@ (define (installer-steps) (id 'partition) (description (G_ "Partitioning")) (compute (lambda _ - ((installer-partition-page current-installer)))) + ((installer-partitioning-page current-installer)))) (configuration-formatter user-partitions->configuration)) (installer-step diff --git a/gnu/installer/newt.scm b/gnu/installer/newt.scm index e1c4453168..6d8ea35fff 100644 --- a/gnu/installer/newt.scm +++ b/gnu/installer/newt.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2020 Mathieu Othacehe +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -193,7 +194,7 @@ (define (hostname-page) (define (user-page) (run-user-page)) -(define (partition-page) +(define (partitioning-page) (run-partitioning-page)) (define (services-page) @@ -220,7 +221,7 @@ (define newt-installer (timezone-page timezone-page) (hostname-page hostname-page) (user-page user-page) - (partition-page partition-page) + (partitioning-page partitioning-page) (services-page services-page) (welcome-page welcome-page) (parameters-menu parameters-menu) diff --git a/gnu/installer/record.scm b/gnu/installer/record.scm index 5e0264682f..334af44a0c 100644 --- a/gnu/installer/record.scm +++ b/gnu/installer/record.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2020 Mathieu Othacehe ;;; Copyright © 2020 Florian Pelz +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +38,7 @@ (define-module (gnu installer record) installer-timezone-page installer-hostname-page installer-user-page - installer-partition-page + installer-partitioning-page installer-services-page installer-welcome-page installer-parameters-menu @@ -86,7 +87,7 @@ (define-record-type* ;; procedure void -> void (user-page installer-user-page) ;; procedure void -> void - (partition-page installer-partition-page) + (partitioning-page installer-partitioning-page) ;; procedure void -> void (services-page installer-services-page) ;; procedure (logo #:pci-database) -> void From patchwork Fri Oct 25 09:40:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69458 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 2994827BBE2; Fri, 25 Oct 2024 10:42:54 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id B0D8427BBED for ; Fri, 25 Oct 2024 10:42:52 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4GpB-0002Vt-PA; Fri, 25 Oct 2024 05:41:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp6-0002R9-66 for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:36 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp5-0003tx-TB for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=4OqNMgdUyx1UY5gvXxuwcZpY9gYVyyCNT8jhESXeCe0=; b=MXiUS3HUg2jjrML3NYOUJ2eru4b3scZOaO9AiTc+MZ9d72lj/EVvkRKtDcfEghM9yVSOUgPnlq+KpMmFowIBnYwm7STDfgfAeuIP53KIhyHTePgfyOjP2bdQH6YdYHEUx9FOierBO/Ka2kNPzoypN+8yr9o92Zt56uTv+YMmgqgstl1kptmSNNcCWzXPVPAUnp6G9rR9DEFBdanSN+7HCllcGgF5NAWtlMZsPUF/RMBpq+1VLkVKpyfzx88WlGr0UADosNvruaQ5IGmNy3HRfHUtk3poGW5dwQlsbk+KQa5I6wh63jz+sH6wVv0B7/0SPIR1LXL2oXk0sad/C4YgSg==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4Gpb-000270-Kd for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:07 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 12/17] installer: Fix file-name typos. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492897938 (code B ref 73927); Fri, 25 Oct 2024 09:42:07 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:29 +0000 Received: from localhost ([127.0.0.1]:37339 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Goz-00023s-2G for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36448) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gop-00021W-Nl for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:20 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4GoE-0003oY-KY; Fri, 25 Oct 2024 05:40:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=4OqNMgdUyx1UY5gvXxuwcZpY9gYVyyCNT8jhESXeCe0=; b=blsgfiQ3KoclBtkMx/xW Ax8dvwLWVgdQ7c26v7fzS1wGABkjD43E7vQUEPwPDVg7MCN9v8O+2Oavfbs5DSleqAvQOG6SSy6V5 Df0tPhf44fP2yd35vSeXgvES2pToR43t4KgaWz+i53RvTmfZhlt1yyyiovxYQqbuZ06HpMjwbM2iV 8yd6k4pio0Cne42soOMmEToODppIqobkOX4deAOG/4h+NJk0FrNohGrXOHFugYFjAz3+ka2R5RWAj ZfY6rGTnQ2ejRRBNLcvEMTSd4q4onbuoxuHhrWzrIIdom64R3dwExqOrBdwDCu7m/eTx8V6D8yihj ElQ3Y0FuW789gQ==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:40:04 +0200 Message-ID: <20241025094011.8540-13-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/installer/newt/page.scm (run-dump-page): Typo file-name. * gnu/installer/utils.scm (open-new-log-port): Likewise. Change-Id: I837991a0ee5054b3afa8328205e23ac6f9fbae8d --- gnu/installer/newt/page.scm | 7 ++++--- gnu/installer/utils.scm | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gnu/installer/newt/page.scm b/gnu/installer/newt/page.scm index e1623a51fd..64a2916826 100644 --- a/gnu/installer/newt/page.scm +++ b/gnu/installer/newt/page.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2018 Mathieu Othacehe ;;; Copyright © 2019, 2020, 2022 Ludovic Courtès ;;; Copyright © 2019 Tobias Geerinckx-Rice +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -950,10 +951,10 @@ (define prompt-tag (make-prompt-tag)) ('exit-component (let ((result (map (match-lambda - ((edit checkbox filename) + ((edit checkbox file-name) (if (components=? edit argument) - (abort-to-prompt prompt-tag filename) - (cons filename (eq? #\x + (abort-to-prompt prompt-tag file-name) + (cons file-name (eq? #\x (checkbox-value checkbox)))))) components))) (destroy-form-and-pop form) diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm index 6838410166..c722e9af8f 100644 --- a/gnu/installer/utils.scm +++ b/gnu/installer/utils.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2020 Mathieu Othacehe ;;; Copyright © 2019, 2020, 2022 Ludovic Courtès +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -283,11 +284,11 @@ (define-syntax syslog (define (open-new-log-port) (define now (localtime (time-second (current-time)))) - (define filename + (define file-name (format #f "/tmp/installer.~a.log" (strftime "%F.%T" now))) - (open filename (logior O_RDWR - O_CREAT))) + (open file-name (logior O_RDWR + O_CREAT))) (define installer-log-port (let ((port #f)) From patchwork Fri Oct 25 09:40:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69449 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 27DD727BBEA; Fri, 25 Oct 2024 10:42:13 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 7D03E27BBE2 for ; Fri, 25 Oct 2024 10:42:12 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp9-0002Ul-HW; Fri, 25 Oct 2024 05:41:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp7-0002Si-NN for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:37 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp7-0003u9-DX for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=U4kA3Cn7YVnOWDyZQ7wvuUEs+F5B2zyc6Y0x9WZNyCo=; b=cKTBhCLayFDAhE7pCHWA6uPjkcrEfANiv673I9dZQNOgL6OOGuU8vkARfM7AjLpjv/pHgrzTd+nmt0hEEahoG1l+gNwNubyWc+SLy+8ujLI17AShJh+fzdiEIJVoitQH8WBsUCfqlPcWQAluao1bmZpJvTw8ycPC0E8ITNE7AGGtC5Smks+03z0C7tCYCkKeeTyb2D+wFpBuYc/TcZDs4uF4MhqOYix3kqeSLk4Iq7mQdtlp8TA2ip4jByoOCWT2eYeYVOkHoKs2UaFNHtpIJfH/eQhBOZ79BZedQ6qHnxqTMn43MgStuJqWvJ1+ITWfs6XokkFvyfizdS6TAmyXVA==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4Gpc-00027A-4O for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:08 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 13/17] installer: Use `%' for parameter %run-command-in-installer. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:08 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492907946 (code B ref 73927); Fri, 25 Oct 2024 09:42:08 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:30 +0000 Received: from localhost ([127.0.0.1]:37341 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Goz-00023z-Fn for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:30 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36450) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Goq-00021e-Km for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:21 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4GoF-0003on-Gm; Fri, 25 Oct 2024 05:40:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=U4kA3Cn7YVnOWDyZQ7wvuUEs+F5B2zyc6Y0x9WZNyCo=; b=ODIGgLwRoFv/MymQInSu SU2I8cxX3OTu+mIDMBN/uwbONhEYBltWfihWoxRfC1x7eG/wz/xyLavioPNTlBtJWf9Mr1a4I1n9W LfirJMj4ASPNqFZ0FIb43FoZ8k3Qer9PgWjK8fcaYztNAwkdWIoD6y37aqazxLshreD5rKIA1CeYG n6hf2XoUGRwl/kBfQEqPqRKA5auLv5eze+fj1hMLhYJuWp16O0QbxTfyfO55Id6DgxyqPSMwv+oWY cqTyQYDiDHd9qksp57E7lOGAzQSt6JImV7TLizwqkaxtR1EqHEBEu6LYuDzepVlEuzRYvYnCQ+9DW 6LZHntH5wAaIWA==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:40:05 +0200 Message-ID: <20241025094011.8540-14-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/installer/utils.scm (run-command-in-installer): Rename to... (%run-command-in-installer): ...this. * gnu/installer.scm (installer-program): Update accordingly. * gnu/installer/parted.scm (remove-logical-devices, create-btrfs-file-system, create-ext4-file-system, create-fat16-file-system, create-fat32-file-system, create-jfs-file-system, create-ntfs-file-system, create-xfs-file-system, create-swap-partition, luks-format-and-open, luks-ensure-open, luks-close): Update accordingly. Change-Id: I96ebc59ebc85fd8ebccb0cc57130b4e7532d287f --- gnu/installer.scm | 2 +- gnu/installer/parted.scm | 27 ++++++++++++++------------- gnu/installer/utils.scm | 6 +++--- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/gnu/installer.scm b/gnu/installer.scm index 3a05843cab..21809e4259 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -465,7 +465,7 @@ (define steps (#$steps current-installer)) (installer-init current-installer) (lambda () (parameterize - ((run-command-in-installer + ((%run-command-in-installer (installer-run-command current-installer))) (catch #t (lambda () diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm index dbdec1bba8..e59df3d8e6 100644 --- a/gnu/installer/parted.scm +++ b/gnu/installer/parted.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2019-2020, 2022, 2024 Ludovic Courtès ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2022 Josselin Poiret +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -363,7 +364,7 @@ (define* (force-device-sync device) (define (remove-logical-devices) "Remove all active logical devices." - ((run-command-in-installer) "dmsetup" "remove_all")) + ((%run-command-in-installer) "dmsetup" "remove_all")) (define (installer-root-partition-path) "Return the root partition path, or #f if it could not be detected." @@ -1183,7 +1184,7 @@ (define (set-user-partitions-file-name user-partitions) (define (create-btrfs-file-system partition) "Create a btrfs file-system for PARTITION file-name." - ((run-command-in-installer) "mkfs.btrfs" "-f" partition)) + ((%run-command-in-installer) "mkfs.btrfs" "-f" partition)) (define (create-ext4-file-system partition) "Create an ext4 file-system for PARTITION file-name." @@ -1192,32 +1193,32 @@ (define (create-ext4-file-system partition) ;; up and adding new files would fail with ENOSPC despite there being plenty ;; of free space and inodes: ;; . - ((run-command-in-installer) "mkfs.ext4" "-F" partition + ((%run-command-in-installer) "mkfs.ext4" "-F" partition "-O" "large_dir")) (define (create-fat16-file-system partition) "Create a fat16 file-system for PARTITION file-name." - ((run-command-in-installer) "mkfs.fat" "-F16" partition)) + ((%run-command-in-installer) "mkfs.fat" "-F16" partition)) (define (create-fat32-file-system partition) "Create a fat32 file-system for PARTITION file-name." - ((run-command-in-installer) "mkfs.fat" "-F32" partition)) + ((%run-command-in-installer) "mkfs.fat" "-F32" partition)) (define (create-jfs-file-system partition) "Create a JFS file-system for PARTITION file-name." - ((run-command-in-installer) "jfs_mkfs" "-f" partition)) + ((%run-command-in-installer) "jfs_mkfs" "-f" partition)) (define (create-ntfs-file-system partition) "Create a JFS file-system for PARTITION file-name." - ((run-command-in-installer) "mkfs.ntfs" "-F" "-f" partition)) + ((%run-command-in-installer) "mkfs.ntfs" "-F" "-f" partition)) (define (create-xfs-file-system partition) "Create an XFS file-system for PARTITION file-name." - ((run-command-in-installer) "mkfs.xfs" "-f" partition)) + ((%run-command-in-installer) "mkfs.xfs" "-f" partition)) (define (create-swap-partition partition) "Set up swap area on PARTITION file-name." - ((run-command-in-installer) "mkswap" "-f" partition)) + ((%run-command-in-installer) "mkswap" "-f" partition)) (define (call-with-luks-key-file password proc) "Write PASSWORD in a temporary file and pass it to PROC as argument." @@ -1246,9 +1247,9 @@ (define (luks-format-and-open user-partition) (lambda (key-file) (installer-log-line "formatting and opening LUKS entry ~s at ~s" label file-name) - ((run-command-in-installer) "cryptsetup" "-q" "luksFormat" + ((%run-command-in-installer) "cryptsetup" "-q" "luksFormat" file-name key-file) - ((run-command-in-installer) "cryptsetup" "open" "--type" "luks" + ((%run-command-in-installer) "cryptsetup" "open" "--type" "luks" "--key-file" key-file file-name label))))) (define (luks-ensure-open user-partition) @@ -1262,14 +1263,14 @@ (define (luks-ensure-open user-partition) (lambda (key-file) (installer-log-line "opening LUKS entry ~s at ~s" label file-name) - ((run-command-in-installer) "cryptsetup" "open" "--type" "luks" + ((%run-command-in-installer) "cryptsetup" "open" "--type" "luks" "--key-file" key-file file-name label)))))) (define (luks-close user-partition) "Close the encrypted partition pointed by USER-PARTITION." (let ((label (user-partition-crypt-label user-partition))) (installer-log-line "closing LUKS entry ~s" label) - ((run-command-in-installer) "cryptsetup" "close" label))) + ((%run-command-in-installer) "cryptsetup" "close" label))) (define (format-user-partitions user-partitions) "Format the records in USER-PARTITIONS list with diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm index c722e9af8f..170f036537 100644 --- a/gnu/installer/utils.scm +++ b/gnu/installer/utils.scm @@ -50,7 +50,7 @@ (define-module (gnu installer utils) run-external-command-with-handler/tty run-external-command-with-line-hooks run-command - run-command-in-installer + %run-command-in-installer syslog-port %syslog-line-hook @@ -222,13 +222,13 @@ (define succeeded? (pause) succeeded?) -(define run-command-in-installer +(define %run-command-in-installer (make-parameter (lambda (. args) (raise (condition (&serious) - (&message (message "run-command-in-installer not set"))))))) + (&message (message "%run-command-in-installer not set"))))))) ;;; From patchwork Fri Oct 25 09:40:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69460 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 8A91327BBE2; Fri, 25 Oct 2024 10:42:55 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 8569827BBE9 for ; Fri, 25 Oct 2024 10:42:52 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp8-0002TP-9F; Fri, 25 Oct 2024 05:41:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp7-0002SM-5j for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:37 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp6-0003u3-Tk for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=dxg4AghEitBtW8lq+fRNjTizJFjF4BUgn6y6LlotSic=; b=OnFrTqr93tLAiOCd2yjPdgbRHFyN2rKvOJJcFTRRPFBjwPZzcJFFWOjtTwDFRLl3J/72+bTqgcFnAynDrtM7/l6dpjqNNOT5T2I5nKDGAJkQ2aa/ejQLYJFQa2vMAbTGGEd/sFamzeY5/oNqGJy2GfuSV79MNox7Ty9Rk1Hyg0QYaaZvRkPpTvwXwZ7TLsIhPLEzPStv1TLs2Hu6hPJy4vj2TKBsZJZuqhFyFuF9V/XQm8v6BX3XpXXsfJvtDRtExyuwLaLZWD1K9NXEV/RjR4X3TUC1ZukcRxL6h591ERzdOxI7+312VnIMyg+FYENrBSEleeAL8jC47T6SAVg6og==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4Gpc-00027G-LD for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:08 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 14/17] installer: Add dry-run? Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:08 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492917955 (code B ref 73927); Fri, 25 Oct 2024 09:42:08 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:31 +0000 Received: from localhost ([127.0.0.1]:37343 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gp0-000247-4e for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:31 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36458) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gor-00021k-F7 for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:22 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4GoG-0003p0-C5; Fri, 25 Oct 2024 05:40:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=dxg4AghEitBtW8lq+fRNjTizJFjF4BUgn6y6LlotSic=; b=VbHHv6wqhkmyyFd/UVja LQ0U6shdePdGijr9G4hk4h1LbX9gtHjb5TUOh7PKHTSlSL2+YVwo9vXBIUyoEyqfohkGHNO9ARPec P3/nzuw7Ib8P5hizEMYgYgJJgdT9LMsQtwk99YOZO6KHBF3ekBotzSNiKlOgrX9sPgnezPV4FE5o9 3ajif8at2MNKaYlu6v2rIQ8sBjnB+6i7g9qFPFBwZeV2y0SfOVvn45izVyXHbRrQMDG86sAE5twDG 8DurvkoBJ8XMvoqYz7yGjX9eh3qMngckbwP2ALMY/OZZu97B37RPDIyXJWJuNYwv0skG7t2kk+1xg HRg3oN0k5lT83w==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:40:06 +0200 Message-ID: <20241025094011.8540-15-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches This allows running the installer without root privileges. Do something like ./pre-inst-env guix repl ,use (guix) ,use (gnu installer) (installer-program #:dry-run? #t) ,build $1 => "/gnu/store/...-installer-program" and run /gnu/store/...-installer-program * gnu/installer/newt.scm (locale-page): Add #:dry-run? parameter. (keymap-page): Likewise. * gnu/installer/newt/keymap.scm (run-keymap-page): Likewise. * gnu/installer/steps.scm (run-installer-steps): Likewise. Use it to skip writing to socket. * gnu/installer/newt/final.scm (run-final-page): Rename to... (run-final-page-install): ...this. (dry-run-final-page, run-final-page): New procedures. * gnu/installer/parted.scm (bootloader-configuration): Cater for empty user partitions. * gnu/installer/utils.scm (dry-run-command): New procedure. * gnu/installer.scm (compute-locale-step): Add #:dry-run? parameter. Use it to avoid actually applying locale. (compute-keymap-step): Add dry-run? parameter. Pass it to keymap-page. (installer-program): Add #:dry-run? parameter. If #:true avoid writing to /proc, use dry-run-command, skip sync and reboot, and pass dry-run? to... (installer-steps): ...here. Add #:dry-run? parameter. Use it to disable skip network, substitutes, partitioning pages, and pass it to... compute-locale-step, compute-keymap-step, and final-page. Change-Id: I0ff4c3b0a0c69539af617c27ba37654beed44619 --- gnu/installer.scm | 81 ++++++++++++++++++++------------ gnu/installer/newt.scm | 14 +++--- gnu/installer/newt/final.scm | 20 +++++++- gnu/installer/newt/keymap.scm | 5 +- gnu/installer/newt/locale.scm | 6 ++- gnu/installer/newt/partition.scm | 1 + gnu/installer/parted.scm | 29 +++++++----- gnu/installer/steps.scm | 16 +++++-- gnu/installer/utils.scm | 4 ++ 9 files changed, 116 insertions(+), 60 deletions(-) diff --git a/gnu/installer.scm b/gnu/installer.scm index 21809e4259..39a83c4455 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -134,7 +134,8 @@ (define apply-locale (define* (compute-locale-step #:key locales-name iso639-languages-name - iso3166-territories-name) + iso3166-territories-name + dry-run?) "Return a gexp that run the locale-page of INSTALLER, and install the selected locale. The list of locales, languages and territories passed to locale-page are computed in derivations named respectively LOCALES-NAME, @@ -177,8 +178,11 @@ (define (compiled-file-loader file name) ((installer-locale-page current-installer) #:supported-locales #$locales-loader #:iso639-languages #$iso639-loader - #:iso3166-territories #$iso3166-loader))) - (#$apply-locale result) + #:iso3166-territories #$iso3166-loader + #:dry-run? #$dry-run?))) + (if #$dry-run? + '() + (#$apply-locale result)) result)))) (define apply-keymap @@ -188,7 +192,7 @@ (define apply-keymap (kmscon-update-keymap (default-keyboard-model) layout variant options)))) -(define* (compute-keymap-step context) +(define (compute-keymap-step context dry-run?) "Return a gexp that runs the keymap-page of INSTALLER and install the selected keymap." #~(lambda (current-installer) @@ -200,15 +204,16 @@ (define* (compute-keymap-step context) "/share/X11/xkb/rules/base.xml"))) (lambda (models layouts) ((installer-keymap-page current-installer) - layouts '#$context))))) + layouts '#$context #$dry-run?))))) (and result (#$apply-keymap result)) result))) -(define (installer-steps) +(define* (installer-steps #:key dry-run?) (let ((locale-step (compute-locale-step #:locales-name "locales" #:iso639-languages-name "iso639-languages" - #:iso3166-territories-name "iso3166-territories")) + #:iso3166-territories-name "iso3166-territories" + #:dry-run? dry-run?)) (timezone-data #~(string-append #$tzdata "/share/zoneinfo/zone.tab"))) #~(lambda (current-installer) @@ -216,7 +221,7 @@ (define (installer-steps) (lambda () ((installer-parameters-page current-installer) (lambda _ - (#$(compute-keymap-step 'param) + (#$(compute-keymap-step 'param dry-run?) current-installer))))) (list ;; Ask the user to choose a locale among those supported by @@ -262,8 +267,10 @@ (define (installer-steps) (id 'keymap) (description (G_ "Keyboard mapping selection")) (compute (lambda _ - (#$(compute-keymap-step 'default) - current-installer))) + (if #$dry-run? + '("en" "US" #f) + (#$(compute-keymap-step 'default dry-run?) + current-installer)))) (configuration-formatter keyboard-layout->configuration)) ;; Ask the user to input a hostname for the system. @@ -280,14 +287,18 @@ (define (installer-steps) (id 'network) (description (G_ "Network selection")) (compute (lambda _ - ((installer-network-page current-installer))))) + (if #$dry-run? + '() + ((installer-network-page current-installer)))))) ;; Ask whether to enable substitute server discovery. (installer-step (id 'substitutes) (description (G_ "Substitute server discovery")) (compute (lambda _ - ((installer-substitutes-page current-installer))))) + (if #$dry-run? + '() + ((installer-substitutes-page current-installer)))))) ;; Prompt for users (name, group and home directory). (installer-step @@ -313,7 +324,9 @@ (define (installer-steps) (id 'partition) (description (G_ "Partitioning")) (compute (lambda _ - ((installer-partitioning-page current-installer)))) + (if #$dry-run? + '() + ((installer-partitioning-page current-installer))))) (configuration-formatter user-partitions->configuration)) (installer-step @@ -322,7 +335,7 @@ (define (installer-steps) (compute (lambda (result prev-steps) ((installer-final-page current-installer) - result prev-steps)))))))) + result prev-steps #$dry-run?)))))))) (define (provenance-sexp) "Return an sexp representing the currently-used channels, for logging @@ -343,7 +356,7 @@ (define (provenance-sexp) `(channel ,(channel-name channel) ,url ,(channel-commit channel)))) channels)))) -(define (installer-program) +(define* (installer-program #:key dry-run?) "Return a file-like object that runs the given INSTALLER." (define init-gettext ;; Initialize gettext support, so that installer messages can be @@ -377,7 +390,7 @@ (define set-installer-path (lambda () (set-path-environment-variable "PATH" '("bin" "sbin") inputs))))) - (define steps (installer-steps)) + (define steps (installer-steps #:dry-run? dry-run?)) (define modules (scheme-modules* (string-append (current-source-directory) "/..") @@ -425,9 +438,10 @@ (define installer-builder ;; Enable core dump generation. (setrlimit 'core #f #f) - (call-with-output-file "/proc/sys/kernel/core_pattern" - (lambda (port) - (format port %core-dump))) + (unless #$dry-run? + (call-with-output-file "/proc/sys/kernel/core_pattern" + (lambda (port) + (format port %core-dump)))) ;; Initialize gettext support so that installers can use ;; (guix i18n) module. @@ -466,24 +480,29 @@ (define steps (#$steps current-installer)) (lambda () (parameterize ((%run-command-in-installer - (installer-run-command current-installer))) + (if #$dry-run? + dry-run-command + (installer-run-command current-installer)))) (catch #t (lambda () (define results (run-installer-steps #:rewind-strategy 'menu #:menu-proc (installer-menu-page current-installer) - #:steps steps)) - - (match (result-step results 'final) - ('success - ;; We did it! Let's reboot! - (sync) - (stop-service 'root)) - (_ - ;; The installation failed, exit so that it is - ;; restarted by login. - #f))) + #:steps steps + #:dry-run? #$dry-run?)) + + (let ((result (result-step results 'final))) + (unless #$dry-run? + (match (result-step results 'final) + ('success + ;; We did it! Let's reboot! + (sync) + (stop-service 'root)) + (_ + ;; The installation failed, exit so that it is + ;; restarted by login. + #f))))) (const #f) (lambda (key . args) (installer-log-line "crashing due to uncaught exception: ~s ~s" diff --git a/gnu/installer/newt.scm b/gnu/installer/newt.scm index 6d8ea35fff..d53bc058b3 100644 --- a/gnu/installer/newt.scm +++ b/gnu/installer/newt.scm @@ -158,17 +158,19 @@ (define stop-sig (status:stop-sig result)) (term-signal term-sig) (stop-signal stop-sig))))))))))) -(define (final-page result prev-steps) - (run-final-page result prev-steps)) +(define (final-page result prev-steps dry-run?) + (run-final-page result prev-steps dry-run?)) (define* (locale-page #:key supported-locales iso639-languages - iso3166-territories) + iso3166-territories + dry-run?) (run-locale-page #:supported-locales supported-locales #:iso639-languages iso639-languages - #:iso3166-territories iso3166-territories)) + #:iso3166-territories iso3166-territories + #:dry-run? dry-run?)) (define (timezone-page zonetab) (run-timezone-page zonetab)) @@ -179,8 +181,8 @@ (define* (welcome-page logo #:key pci-database) (define (menu-page steps) (run-menu-page steps)) -(define* (keymap-page layouts context) - (run-keymap-page layouts #:context context)) +(define (keymap-page layouts context dry-run?) + (run-keymap-page layouts #:context context #:dry-run? dry-run?)) (define (network-page) (run-network-page)) diff --git a/gnu/installer/newt/final.scm b/gnu/installer/newt/final.scm index 9f950a0551..c4e53f6d79 100644 --- a/gnu/installer/newt/final.scm +++ b/gnu/installer/newt/final.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2020 Mathieu Othacehe ;;; Copyright © 2019, 2020 Ludovic Courtès +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -106,7 +107,7 @@ (define* (run-install-shell locale (newt-resume) install-ok?)) -(define (run-final-page result prev-steps) +(define (run-final-page-install result prev-steps) (define (wait-for-clients) (unless (null? (current-clients)) (installer-log-line "waiting with clients before starting final step") @@ -133,3 +134,20 @@ (define (wait-for-clients) (if install-ok? (run-install-success-page) (run-install-failed-page)))) + +(define (dry-run-final-page result prev-steps) + (installer-log-line "proceeding with final step -- dry-run") + (let* ((configuration (format-configuration prev-steps result)) + (user-partitions (result-step result 'partition)) + (locale (result-step result 'locale)) + (users (result-step result 'user)) + (file (configuration->file configuration)) + (install-ok? (run-config-display-page #:locale locale))) + (if install-ok? + (run-install-success-page) + (run-install-failed-page)))) + +(define (run-final-page result prev-steps dry-run?) + (if dry-run? + (dry-run-final-page result prev-steps) + (run-final-page-install result prev-steps))) diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm index 109ec55e0a..57f6d6530c 100644 --- a/gnu/installer/newt/keymap.scm +++ b/gnu/installer/newt/keymap.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2018, 2020 Mathieu Othacehe ;;; Copyright © 2019 Ludovic Courtès ;;; Copyright © 2020 Florian Pelz +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -153,7 +154,7 @@ (define (toggleable-latin-layout layout variant) "grp:alt_shift_toggle")) (list layout variant #f))) -(define* (run-keymap-page layouts #:key (context #f)) +(define* (run-keymap-page layouts #:key context dry-run?) "Run a page asking the user to select a keyboard layout and variant. LAYOUTS is a list of supported X11-KEYMAP-LAYOUT. For non-Latin keyboard layouts, a second layout and toggle options will be added automatically. Return a list @@ -201,7 +202,7 @@ (define (format-result layout variant) "xkeyboard-config"))))) (toggleable-latin-layout layout variant))) - (let* ((result (run-installer-steps #:steps keymap-steps)) + (let* ((result (run-installer-steps #:steps keymap-steps #:dry-run? dry-run?)) (layout (result-step result 'layout)) (variant (result-step result 'variant))) (and layout diff --git a/gnu/installer/newt/locale.scm b/gnu/installer/newt/locale.scm index a226b39ba6..0be9db449e 100644 --- a/gnu/installer/newt/locale.scm +++ b/gnu/installer/newt/locale.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe ;;; Copyright © 2019 Ludovic Courtès +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -92,7 +93,8 @@ (define (run-modifier-page modifiers modifier->text) (define* (run-locale-page #:key supported-locales iso639-languages - iso3166-territories) + iso3166-territories + dry-run?) "Run a page asking the user to select a locale language and possibly territory, codeset and modifier. Use SUPPORTED-LOCALES as the list of glibc available locales. ISO639-LANGUAGES is an association list associating a @@ -212,4 +214,4 @@ (define locale-steps ;; step, turn the result into a glibc locale string and return it. (result->locale-string supported-locales - (run-installer-steps #:steps locale-steps))) + (run-installer-steps #:steps locale-steps #:dry-run? dry-run?))) diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm index 37656696c1..48dd306080 100644 --- a/gnu/installer/newt/partition.scm +++ b/gnu/installer/newt/partition.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2018, 2019, 2022 Mathieu Othacehe ;;; Copyright © 2019, 2020 Ludovic Courtès ;;; Copyright © 2020 Tobias Geerinckx-Rice +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm index e59df3d8e6..b36b238d8b 100644 --- a/gnu/installer/parted.scm +++ b/gnu/installer/parted.scm @@ -1461,19 +1461,22 @@ (define (root-user-partition? partition) (define (bootloader-configuration user-partitions) "Return the bootloader configuration field for USER-PARTITIONS." - (let* ((root-partition (find root-user-partition? - user-partitions)) - (root-partition-disk (user-partition-disk-file-name root-partition))) - `((bootloader-configuration - ,@(if (efi-installation?) - `((bootloader grub-efi-bootloader) - (targets (list ,(default-esp-mount-point)))) - `((bootloader grub-bootloader) - (targets (list ,root-partition-disk)))) - - ;; XXX: Assume we defined the 'keyboard-layout' field of - ;; right above. - (keyboard-layout keyboard-layout))))) + (let ((root-partition (find root-user-partition? user-partitions))) + (match user-partitions + (() '()) + (_ + (let ((root-partition-disk (user-partition-disk-file-name + root-partition))) + `((bootloader-configuration + ,@(if (efi-installation?) + `((bootloader grub-efi-bootloader) + (targets (list ,(default-esp-mount-point)))) + `((bootloader grub-bootloader) + (targets (list ,root-partition-disk)))) + + ;; XXX: Assume we defined the 'keyboard-layout' field of + ;; right above. + (keyboard-layout keyboard-layout)))))))) (define (user-partition-missing-modules user-partitions) "Return the list of kernel modules missing from the default set of kernel diff --git a/gnu/installer/steps.scm b/gnu/installer/steps.scm index 0c505e40e4..de0a852f02 100644 --- a/gnu/installer/steps.scm +++ b/gnu/installer/steps.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2019 Mathieu Othacehe ;;; Copyright © 2020-2022 Ludovic Courtès +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -84,7 +85,8 @@ (define-record-type* (define* (run-installer-steps #:key steps (rewind-strategy 'previous) - (menu-proc (const #f))) + (menu-proc (const #f)) + dry-run?) "Run the COMPUTE procedure of all records in STEPS sequentially, inside a the 'installer-step prompt. When aborted to with a parameter of 'abort, fallback to a previous install-step, accordingly to the @@ -191,10 +193,14 @@ (define* (run result #:key todo-steps done-steps) ;; prematurely. (sigaction SIGPIPE SIG_IGN) - (with-server-socket - (run '() - #:todo-steps steps - #:done-steps '()))) + (if dry-run? + (run '() + #:todo-steps steps + #:done-steps '()) + (with-server-socket + (run '() + #:todo-steps steps + #:done-steps '())))) (define (find-step-by-id steps id) "Find and return the step in STEPS whose id is equal to ID." diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm index 170f036537..a8eb6cee83 100644 --- a/gnu/installer/utils.scm +++ b/gnu/installer/utils.scm @@ -49,6 +49,7 @@ (define-module (gnu installer utils) run-external-command-with-handler run-external-command-with-handler/tty run-external-command-with-line-hooks + dry-run-command run-command %run-command-in-installer @@ -222,6 +223,9 @@ (define succeeded? (pause) succeeded?) +(define (dry-run-command . args) + (format #t "dry-run-command: skipping: ~a\n" args)) + (define %run-command-in-installer (make-parameter (lambda (. args) From patchwork Fri Oct 25 09:40:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69450 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 80C1927BBEA; Fri, 25 Oct 2024 10:42:19 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id C2B9C27BBE2 for ; Fri, 25 Oct 2024 10:42:17 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp9-0002Uk-Gr; Fri, 25 Oct 2024 05:41:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp8-0002TM-6h for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:38 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp7-0003uM-Uu for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=cik9CVsmJjap8bcjgn2MN6DAnz+/uPOiygiSifC6fas=; b=A4OK648tt7+OwmBjLjKUoWAzKHWieeLDHOS+Pfr4lfXlEAcDTb+gYBjlqTPY/XzfvDs94qyMb89E45yik8bKQqFglySO9f4u1puSgdl8tmGRbf1zuQlkq58an85icyfI96atyRrqcxlfGaYbI5an7uQefNW2USbrXj8tGdOXemDHkrnhhe9xFavXRy8kWCtHkNY/+vqnbwsiorTi4j0G92YwW7s8zQ8O2ZIzOqNhD8at6WgxOADoLyVb3MojZmJ1jJUVINqzn21rQ8TIwjgY3FPcqRrUD5wyFvSQ9GoFWzBPzHgMwhhcG4uDkaksAXo6odSlQaiFLakNXI0/4eFerg==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4Gpd-00027W-MB for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:09 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 15/17] installer: Add "Kernel" page to select the Hurd. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:09 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492937972 (code B ref 73927); Fri, 25 Oct 2024 09:42:09 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:33 +0000 Received: from localhost ([127.0.0.1]:37347 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gp1-00024N-Kn for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:33 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36460) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gos-00021v-Mo for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:24 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4GoH-0003pF-Ir; Fri, 25 Oct 2024 05:40:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=cik9CVsmJjap8bcjgn2MN6DAnz+/uPOiygiSifC6fas=; b=W2FNpen9ECSuj+fuLzjQ wEg+WABG3g5Mei2UvN2pxT5pWzFNTsaHvBdl38QMgbpZTI4Y0OGKOZE7ogx5Y8QwBnfcMfbgBnabM pn5pNHOlj1O/RKrtAHnYTI+Ylfpsp/E++ZrCX/BdlIWdPhjFiY0RGF0FRw8Kpq4JGdHBRhtB6knKU qno9gqQVpKGD++wEiVFsk8LK4feBss1Umn6LxBn4aJ9eoDUyuNOKDyyJ3ZPj0PoBIh0BbFfAh1W29 vi7r/xEt2gWH8gsYMwY8HbtoMPQxQ5IeEyIewhW6iHIyWJxJ/mGsGsrVGnD8lSw1drxR08PqymtTK wIDdP2e6+h9AEg==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:40:07 +0200 Message-ID: <20241025094011.8540-16-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches This adds a "Kernel" page to the installer with the option to (cross-) install the Hurd, if applicable (only available on x86 machines for now). * gnu/installer/newt.scm (kernel-page): New procedure. (newt-installer)[kernel-page]: New field. * gnu/installer/kernel.scm, gnu/installer/newt/kernel.scm: New files. * gnu/local.mk (INSTALLER_MODULES): Add them. * gnu/installer.scm (installer-steps): Use them to select kernel if applicable. * gnu/installer/newt/partition.scm (run-fs-type-page): Add ext2 for the hurd. (run-partitioning-page-partition): Remove `entire-encrypted' option when installing the Hurd. * gnu/installer/services.scm (system-services->configuration): Cater for the Hurd with %base-services/hurd, and with %base-packages/hurd that must always be set. (%system-services): Change to procedure. When installing the the Hurd, do not recommend `ntp-service-type' and USE `openssh-sans-x' package for `openssh-service-type'. (system-service-none): New variable. * gnu/installer/newt/services.scm (run-network-management-page): Include it when installing the Hurd. (run-desktop-environments-cbt-page): When installing the Hurd, recommend to not select any desktop enviroment. Update users. * gnu/installer/parted.scm (efi-installation?): Return #f when installing for the Hurd. (create-ext2-file-system): New procedure. (user-fs-type-name, user-fs-type->mount-type, partition-filesystem-user-type, format-user-partitions): Support `ext2'. ( partition->user-partition): Use `ext2' when installing the Hurd. (auto-partition!): Likewise. No swap partition when installing the Hurd. * gnu/installer/final.scm (install-system): Cater for cross installation of the Hurd. (bootloader-configuration): Use `grub-minimal-bootloader' when installing the Hurd. (user-partition-missing-modules): Cater for empty user-partitions. (initrd-configuration, user-partitions->configuration): Cater for the Hurd. * gnu/installer/steps.scm (format-configuration, configuration->file): Cater for the Hurd. * gnu/system/hurd.scm (%desktop-services/hurd): New variable. * gnu/installer/tests.scm (choose-kernel): New procedure. * gnu/tests/install.scm (gui-test-program): Use it. Change-Id: Ifafb27b8a2f933944c77223a27ec151757237e36 --- gnu/installer.scm | 14 +++++++ gnu/installer/final.scm | 10 ++++- gnu/installer/kernel.scm | 41 ++++++++++++++++++++ gnu/installer/newt.scm | 5 +++ gnu/installer/newt/kernel.scm | 45 ++++++++++++++++++++++ gnu/installer/newt/partition.scm | 9 ++++- gnu/installer/newt/services.scm | 31 +++++++++------ gnu/installer/parted.scm | 65 +++++++++++++++++++++++--------- gnu/installer/record.scm | 3 ++ gnu/installer/services.scm | 46 +++++++++++++++++----- gnu/installer/steps.scm | 14 ++++--- gnu/installer/tests.scm | 11 ++++++ gnu/local.mk | 2 + gnu/system/hurd.scm | 3 ++ gnu/tests/install.scm | 6 ++- 15 files changed, 256 insertions(+), 49 deletions(-) create mode 100644 gnu/installer/kernel.scm create mode 100644 gnu/installer/newt/kernel.scm diff --git a/gnu/installer.scm b/gnu/installer.scm index 39a83c4455..31c0ff7ff4 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -308,6 +308,18 @@ (define* (installer-steps #:key dry-run?) ((installer-user-page current-installer)))) (configuration-formatter users->configuration)) + ;; Ask the user to select the kernel for the system, + ;; for x86 systems only. + (installer-step + (id 'kernel) + (description (G_ "Kernel")) + (compute (lambda _ + (if (target-x86?) + ((installer-kernel-page current-installer)) + '()))) + (configuration-formatter (lambda (result) + (kernel->configuration result #$dry-run?)))) + ;; Ask the user to choose one or many desktop environment(s). (installer-step (id 'services) @@ -419,6 +431,7 @@ (define installer-builder (gnu installer dump) (gnu installer final) (gnu installer hostname) + (gnu installer kernel) (gnu installer locale) (gnu installer parted) (gnu installer services) @@ -431,6 +444,7 @@ (define installer-builder (gnu services herd) (guix i18n) (guix build utils) + (guix utils) ((system repl debug) #:select (terminal-width)) (ice-9 match) diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm index 069426a3b8..5fcf223315 100644 --- a/gnu/installer/final.scm +++ b/gnu/installer/final.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2020 Mathieu Othacehe ;;; Copyright © 2019, 2020, 2022 Ludovic Courtès +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ (define-module (gnu installer final) #:use-module (gnu services herd) #:use-module (guix build syscalls) #:use-module (guix build utils) + #:use-module (guix utils) #:use-module (gnu build accounts) #:use-module (gnu build install) #:use-module (gnu build linux-container) @@ -164,8 +166,12 @@ (define (assert-exit x) "/tmp/installer-system-init-options" read)) (const '()))) - (install-command (append (list "guix" "system" "init" - "--fallback") + (install-command (append `( "guix" "system" "init" + "--fallback" + ,@(if (target-hurd?) + '("--target=i586-pc-gnu" + "--skip-checks") + '())) options (list (%installer-configuration-file) (%installer-target-dir)))) diff --git a/gnu/installer/kernel.scm b/gnu/installer/kernel.scm new file mode 100644 index 0000000000..c82b06fb83 --- /dev/null +++ b/gnu/installer/kernel.scm @@ -0,0 +1,41 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Janneke Nieuwenhuizen +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu installer kernel) + #:use-module (gnu system hurd) + #:use-module (guix read-print) + #:export (kernel->configuration)) + +(define-syntax-rule (G_ str) + ;; In this file, translatable strings are annotated with 'G_' so xgettext + ;; catches them, but translation happens later on at run time. + str) + +(define (kernel->configuration kernel dry-run?) + (if (equal? kernel "Hurd") + `((kernel %hurd-default-operating-system-kernel) + ,(comment (G_ ";; \"noide\" disables the gnumach IDE driver, enabling rumpdisk.\n")) + (kernel-arguments '("noide")) + (firmware '()) + (hurd hurd) + (locale-libcs (list glibc/hurd)) + (name-service-switch #f) + (essential-services (hurd-default-essential-services this-operating-system)) + (privileged-programs '()) + (setuid-programs %setuid-programs/hurd)) + '())) diff --git a/gnu/installer/newt.scm b/gnu/installer/newt.scm index d53bc058b3..1fe710340f 100644 --- a/gnu/installer/newt.scm +++ b/gnu/installer/newt.scm @@ -25,6 +25,7 @@ (define-module (gnu installer newt) #:use-module (gnu installer newt final) #:use-module (gnu installer newt parameters) #:use-module (gnu installer newt hostname) + #:use-module (gnu installer newt kernel) #:use-module (gnu installer newt keymap) #:use-module (gnu installer newt locale) #:use-module (gnu installer newt menu) @@ -193,6 +194,9 @@ (define (substitutes-page) (define (hostname-page) (run-hostname-page)) +(define (kernel-page) + (run-kernel-page)) + (define (user-page) (run-user-page)) @@ -216,6 +220,7 @@ (define newt-installer (exit-error exit-error) (final-page final-page) (keymap-page keymap-page) + (kernel-page kernel-page) (locale-page locale-page) (menu-page menu-page) (network-page network-page) diff --git a/gnu/installer/newt/kernel.scm b/gnu/installer/newt/kernel.scm new file mode 100644 index 0000000000..3117247312 --- /dev/null +++ b/gnu/installer/newt/kernel.scm @@ -0,0 +1,45 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Janneke Nieuwenhuizen +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu installer newt kernel) + #:use-module (gnu installer newt page) + #:use-module (guix i18n) + #:use-module (guix utils) + #:export (run-kernel-page)) + +(define (run-kernel-page) + (let* ((kernels `(,@(if (target-x86?) '("Hurd") '()) + "Linux Libre")) + (result + (run-listbox-selection-page + #:title (G_ "Kernel") + #:info-text + (G_ "Please select a kernel. When in doubt, choose \"Linux Libre\". +The Hurd is offered as a technology preview and development aid; many packages \ +are not yet available in Guix, such as a desktop environment or even a windowing \ +system (X, Wayland).") + #:listbox-items kernels + #:listbox-item->text identity + #:listbox-default-item "Linux Libre" + #:button-text (G_ "Back") + #:button-callback-procedure + (lambda _ + (abort-to-prompt 'installer-step 'abort))))) + (when (equal? result "Hurd") + (%current-target-system "i586-pc-gnu")) + result)) diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm index 48dd306080..b88393405b 100644 --- a/gnu/installer/newt/partition.scm +++ b/gnu/installer/newt/partition.scm @@ -26,6 +26,7 @@ (define-module (gnu installer newt partition) #:use-module (gnu installer newt page) #:use-module (gnu installer newt utils) #:use-module (guix i18n) + #:use-module (guix utils) #:use-module (ice-9 format) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -147,6 +148,8 @@ (define (run-fs-type-page) #:title (G_ "File-system type") #:listbox-items '(btrfs ext4 jfs xfs swap + ;; This is for the Hurd + ext2 ;; These lack basic Unix features. Their only use ;; on GNU is for interoperation, e.g., with UEFI. fat32 fat16 ntfs) @@ -767,7 +770,11 @@ (define (run-partitioning-page) (define (run-page devices) (let* ((items `((entire . ,(G_ "Guided - using the entire disk")) - (entire-encrypted . ,(G_ "Guided - using the entire disk with encryption")) + ,@(if (target-hurd?) + '() + `((entire-encrypted + . + ,(G_ "Guided - using the entire disk with encryption")))) (manual . ,(G_ "Manual")))) (result (run-listbox-selection-page #:info-text (G_ "Please select a partitioning method.") diff --git a/gnu/installer/newt/services.scm b/gnu/installer/newt/services.scm index d1035b6524..848683e8c7 100644 --- a/gnu/installer/newt/services.scm +++ b/gnu/installer/newt/services.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe ;;; Copyright © 2019, 2020 Ludovic Courtès -;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2020, 2024 Janneke Nieuwenhuizen ;;; Copyright © 2021 Tobias Geerinckx-Rice ;;; Copyright © 2021 Leo Famulari ;;; @@ -26,6 +26,7 @@ (define-module (gnu installer newt services) #:use-module (gnu installer newt page) #:use-module (gnu installer newt utils) #:use-module (guix i18n) + #:use-module (guix utils) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:export (run-services-page)) @@ -33,11 +34,13 @@ (define-module (gnu installer newt services) (define (run-desktop-environments-cbt-page) "Run a page allowing the user to choose between various desktop environments." - (let ((items (filter desktop-system-service? %system-services))) + (let ((items (filter desktop-system-service? (%system-services)))) (run-checkbox-tree-page - #:info-text (G_ "Please select the desktop environment(s) you wish to \ + #:info-text (if (target-hurd?) + (G_ "Currently, none of these is available for the Hurd.") + (G_ "Please select the desktop environment(s) you wish to \ install. If you select multiple desktop environments here, you will be able \ -to choose from them later when you log in.") +to choose from them later when you log in.")) #:title (G_ "Desktop environment") #:items items #:selection (map system-service-recommended? items) @@ -51,7 +54,7 @@ (define (run-networking-cbt-page) "Run a page allowing the user to select networking services." (let ((items (filter (lambda (service) (eq? 'networking (system-service-type service))) - %system-services))) + (%system-services)))) (run-checkbox-tree-page #:info-text (G_ "You can now select networking services to run on your \ system.") @@ -69,7 +72,7 @@ (define (run-printing-services-cbt-page) (let ((items (filter (lambda (service) (eq? 'document (system-service-type service))) - %system-services))) + (%system-services)))) (run-checkbox-tree-page #:info-text (G_ "You can now select the CUPS printing service to run on your \ system.") @@ -88,7 +91,7 @@ (define (run-console-services-cbt-page) (let ((items (filter (lambda (service) (eq? 'administration (system-service-type service))) - %system-services))) + (%system-services)))) (run-checkbox-tree-page #:title (G_ "Console services") #:info-text (G_ "Select miscellaneous services to run on your \ @@ -103,7 +106,11 @@ (define (run-console-services-cbt-page) (define (run-network-management-page) "Run a page to select among several network management methods." - (let ((title (G_ "Network management"))) + (let ((title (G_ "Network management")) + (items (filter (lambda (service) + (eq? 'network-management + (system-service-type service))) + (%system-services)))) (run-listbox-selection-page #:title title #:info-text (G_ "Choose the method to manage network connections. @@ -112,10 +119,10 @@ (define (run-network-management-page) client may be enough for a server.") #:info-textbox-width 70 #:listbox-height 7 - #:listbox-items (filter (lambda (service) - (eq? 'network-management - (system-service-type service))) - %system-services) + #:listbox-items `(,@items + ,@(if (target-hurd?) + (list system-service-none) + '())) #:listbox-item->text (compose G_ system-service-name) #:sort-listbox-items? #f #:button-text (G_ "Exit") diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm index b36b238d8b..dfdd4ed60f 100644 --- a/gnu/installer/parted.scm +++ b/gnu/installer/parted.scm @@ -152,7 +152,7 @@ (define-record-type* (crypt-password user-partition-crypt-password ; (default #f)) (fs-type user-partition-fs-type - (default 'ext4)) + (default (if (target-hurd?) 'ext2 'ext4))) (bootable? user-partition-bootable? (default #f)) (esp? user-partition-esp? @@ -223,11 +223,13 @@ (define default-esp-mount-point (define (efi-installation?) "Return #t if an EFI installation should be performed, #f otherwise." - (file-exists? "/sys/firmware/efi")) + (and (file-exists? "/sys/firmware/efi") + (not (target-hurd?)))) (define (user-fs-type-name fs-type) "Return the name of FS-TYPE as specified by libparted." (case fs-type + ((ext2) "ext2") ((ext4) "ext4") ((btrfs) "btrfs") ((fat16) "fat16") @@ -240,6 +242,7 @@ (define (user-fs-type-name fs-type) (define (user-fs-type->mount-type fs-type) "Return the mount type of FS-TYPE." (case fs-type + ((ext2) "ext2") ((ext4) "ext4") ((btrfs) "btrfs") ((fat16) "vfat") @@ -255,6 +258,7 @@ (define (partition-filesystem-user-type partition) (and fs-type (let ((name (filesystem-type-name fs-type))) (cond + ((string=? name "ext2") 'ext2) ((string=? name "ext4") 'ext4) ((string=? name "btrfs") 'btrfs) ((string=? name "fat16") 'fat16) @@ -296,7 +300,7 @@ (define (partition->user-partition partition) (file-name (partition-get-path partition)) (disk-file-name (device-path device)) (fs-type (or (partition-filesystem-user-type partition) - 'ext4)) + (if (target-hurd?) 'ext2 'ext4))) (mount-point (and (esp-partition? partition) (default-esp-mount-point))) (bootable? (boot-partition? partition)) @@ -1053,7 +1057,7 @@ (define* (auto-partition! disk (size new-esp-size) (mount-point (default-esp-mount-point)))) (user-partition - (fs-type 'ext4) + (fs-type (if (target-hurd?) 'ext2 'ext4)) (bootable? #t) (bios-grub? #t) (size bios-grub-size)))) @@ -1065,13 +1069,13 @@ (define* (auto-partition! disk `(,@(if start-partition `(,start-partition) '()) - ,@(if encrypted? + ,@(if (or encrypted? (target-hurd?)) '() `(,(user-partition (fs-type 'swap) (size swap-size)))) ,(user-partition - (fs-type 'ext4) + (fs-type (if (target-hurd?) 'ext2 'ext4)) (bootable? has-extended?) (crypt-label (and encrypted? "cryptroot")) (size "100%") @@ -1083,7 +1087,7 @@ (define* (auto-partition! disk `(,start-partition) '()) ,(user-partition - (fs-type 'ext4) + (fs-type (if (target-hurd?) 'ext2 'ext4)) (bootable? has-extended?) (crypt-label (and encrypted? "cryptroot")) (size "33%") @@ -1105,7 +1109,7 @@ (define* (auto-partition! disk (type (if has-extended? 'logical 'normal)) - (fs-type 'ext4) + (fs-type (if (target-hurd?) 'ext2 'ext4)) (crypt-label (and encrypted? "crypthome")) (size "100%") (mount-point "/home"))))))) @@ -1186,6 +1190,15 @@ (define (create-btrfs-file-system partition) "Create a btrfs file-system for PARTITION file-name." ((%run-command-in-installer) "mkfs.btrfs" "-f" partition)) +(define (create-ext2-file-system partition) + "Create an ext2 file-system for PARTITION file-name, when TARGET-HURD?, +for the Hurd." + (apply (%run-command-in-installer) + `("mkfs.ext2" ,@(if (target-hurd?) + '("-o" "hurd") + '()) + "-F" ,partition))) + (define (create-ext4-file-system partition) "Create an ext4 file-system for PARTITION file-name." ;; Enable the 'large_dir' feature so users can have a store of several TiBs. @@ -1291,6 +1304,10 @@ (define (format-user-partitions user-partitions) (and need-formatting? (not (eq? type 'extended)) (create-btrfs-file-system file-name))) + ((ext2) + (and need-formatting? + (not (eq? type 'extended)) + (create-ext2-file-system file-name))) ((ext4) (and need-formatting? (not (eq? type 'extended)) @@ -1463,7 +1480,11 @@ (define (bootloader-configuration user-partitions) "Return the bootloader configuration field for USER-PARTITIONS." (let ((root-partition (find root-user-partition? user-partitions))) (match user-partitions - (() '()) + (() (if (target-hurd?) + '(bootloader-configuration + (bootloader grub-minimal-bootloader) + (targets "/dev/sdaX")) + '())) (_ (let ((root-partition-disk (user-partition-disk-file-name root-partition))) @@ -1471,7 +1492,9 @@ (define (bootloader-configuration user-partitions) ,@(if (efi-installation?) `((bootloader grub-efi-bootloader) (targets (list ,(default-esp-mount-point)))) - `((bootloader grub-bootloader) + `((bootloader ,(if (target-hurd?) + 'grub-minimal-bootloader + 'grub-bootloader)) (targets (list ,root-partition-disk)))) ;; XXX: Assume we defined the 'keyboard-layout' field of @@ -1491,22 +1514,28 @@ (define (user-partition-missing-modules user-partitions) (const '()))) (delete-duplicates (map user-partition-file-name - (cons root devices))))))) + (filter identity + (cons root devices)))))))) (define (initrd-configuration user-partitions) "Return an 'initrd-modules' field with everything needed for USER-PARTITIONS, or return nothing." - (match (user-partition-missing-modules user-partitions) - (() - '()) - ((modules ...) - `((initrd-modules (append ',modules - %base-initrd-modules)))))) + (if (target-hurd?) + '((initrd #f) + (initrd-modules '())) + (match (user-partition-missing-modules user-partitions) + (() + '()) + ((modules ...) + `((initrd-modules (append ',modules + %base-initrd-modules))))))) (define (user-partitions->configuration user-partitions) "Return the configuration field for USER-PARTITIONS." (let* ((swap-user-partitions (find-swap-user-partitions user-partitions)) - (swap-devices (map user-partition-file-name swap-user-partitions)) + (swap-devices (if (target-hurd?) + '() + (map user-partition-file-name swap-user-partitions))) (encrypted-partitions (filter user-partition-crypt-label user-partitions))) `((bootloader ,@(bootloader-configuration user-partitions)) diff --git a/gnu/installer/record.scm b/gnu/installer/record.scm index 334af44a0c..22adad279c 100644 --- a/gnu/installer/record.scm +++ b/gnu/installer/record.scm @@ -30,6 +30,7 @@ (define-module (gnu installer record) installer-exit installer-exit-error installer-final-page + installer-kernel-page installer-keymap-page installer-locale-page installer-menu-page @@ -69,6 +70,8 @@ (define-record-type* (exit-error installer-exit-error) ;; procedure void -> void (final-page installer-final-page) + ;; procedure void -> void + (kernel-page installer-kernel-page) ;; procedure (layouts context) -> (list layout variant options) (keymap-page installer-keymap-page) ;; procedure: (#:key supported-locales iso639-languages iso3166-territories) diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm index 1cb9dc579c..d5a382606c 100644 --- a/gnu/installer/services.scm +++ b/gnu/installer/services.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe ;;; Copyright © 2019, 2022 Ludovic Courtès -;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2020, 2024 Janneke Nieuwenhuizen ;;; Copyright © 2021 Tobias Geerinckx-Rice ;;; Copyright © 2021 Leo Famulari ;;; Copyright © 2023 Denys Nykula @@ -24,6 +24,7 @@ (define-module (gnu installer services) #:use-module (guix records) #:use-module (guix read-print) + #:use-module (guix utils) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:export (system-service? @@ -34,6 +35,7 @@ (define-module (gnu installer services) system-service-packages desktop-system-service? + system-service-none %system-services system-services->configuration)) @@ -55,7 +57,13 @@ (define-record-type* (packages system-service-packages ;list of sexps (default '()))) -(define %system-services +(define system-service-none + (system-service + (name (G_ "None")) + (type 'network-management) + (snippet '()))) + +(define (%system-services) (let-syntax ((desktop-environment (syntax-rules () ((_ fields ...) (system-service @@ -105,7 +113,11 @@ (define %system-services (G_ "\ ;; To configure OpenSSH, pass an 'openssh-configuration' ;; record as a second argument to 'service' below.\n")) - (service openssh-service-type)))) + ,(if (target-hurd?) + '(service openssh-service-type + (openssh-configuration + (openssh openssh-sans-x))) + '(service openssh-service-type))))) (system-service (name (G_ "Tor anonymous network router")) (type 'networking) @@ -115,7 +127,7 @@ (define %system-services (system-service (name (G_ "Network time service (NTP), to set the clock automatically")) (type 'administration) - (recommended? #t) + (recommended? (not (target-hurd?))) (snippet '((service ntp-service-type)))) (system-service (name (G_ "GPM mouse daemon, to use the mouse on the console")) @@ -154,8 +166,12 @@ (define (system-services->configuration services) (packages (append-map system-service-packages services)) (desktop? (find desktop-system-service? services)) (base (if desktop? - '%desktop-services - '%base-services)) + (if (target-hurd?) + '%desktop-services/hurd + '%desktop-services) + (if (target-hurd?) + '%base-services/hurd + '%base-services))) (native-console-font (match (getenv "LANGUAGE") ((or "be" "bg" "el" "eo" "kk" "ky" "mk" "mn" "ru" "sr" "tg" "uk") @@ -181,18 +197,28 @@ (define (system-services->configuration services) (if (null? snippets) `(,@(if (null? packages) - '() + (if (target-hurd?) + `(,@package-heading + (packages %base-packages/hurd)) + '()) `(,@package-heading (packages (append (list ,@packages) - %base-packages)))) + ,(if (target-hurd?) + '%base-packages/hurd + '%base-packages))))) ,@service-heading (services ,services)) `(,@(if (null? packages) - '() + (if (target-hurd?) + `(,@package-heading + (packages %base-packages/hurd)) + '()) `(,@package-heading (packages (append (list ,@packages) - %base-packages)))) + ,(if (target-hurd?) + '%base-packages/hurd + '%base-packages))))) ,@service-heading (services (append (list ,@snippets diff --git a/gnu/installer/steps.scm b/gnu/installer/steps.scm index de0a852f02..34dd14c9d5 100644 --- a/gnu/installer/steps.scm +++ b/gnu/installer/steps.scm @@ -23,6 +23,7 @@ (define-module (gnu installer steps) #:use-module (guix build utils) #:use-module (guix i18n) #:use-module (guix read-print) + #:use-module (guix utils) #:use-module (gnu installer utils) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -240,17 +241,20 @@ (define (format-configuration steps results) ,(comment (G_ "\ ;; Indicate which modules to import to access the variables ;; used in this configuration.\n")) - (use-modules (gnu)) + ,@(if (target-hurd?) + '((use-modules (gnu) (gnu system hurd)) + (use-package-modules hurd ssh)) + '((use-modules (gnu)))) (use-service-modules cups desktop networking ssh xorg)))) `(,@modules ,(vertical-space 1) (operating-system ,@configuration)))) (define* (configuration->file configuration - #:key (filename (%installer-configuration-file))) - "Write the given CONFIGURATION to FILENAME." - (mkdir-p (dirname filename)) - (call-with-output-file filename + #:key (file-name (%installer-configuration-file))) + "Write the given CONFIGURATION to FILE-NAME." + (mkdir-p (dirname file-name)) + (call-with-output-file file-name (lambda (port) ;; TRANSLATORS: This is a comment within a Scheme file. Each line must ;; start with ";; " (two semicolons and a space). Please keep line diff --git a/gnu/installer/tests.scm b/gnu/installer/tests.scm index 8785cd9a9f..a9a5d5d988 100644 --- a/gnu/installer/tests.scm +++ b/gnu/installer/tests.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Ludovic Courtès ;;; Copyright © 2020 Mathieu Othacehe +;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,7 @@ (define-module (gnu installer tests) choose-locale+keyboard enter-host-name+passwords + choose-kernel choose-services choose-partitioning start-installation @@ -211,6 +213,15 @@ (define* (enter-host-name+passwords port (password ,password))) names passwords)))))) +(define* (choose-kernel port #:key (kernel "Linux Libre")) + "Converse over PORT with the guided installer to choose the specified +KERNEL." + (converse port + ((list-selection (title "Kernel") + (multiple-choices? #f) + (items _)) + kernel))) + (define* (choose-services port #:key (choose-desktop-environment? (const #f)) diff --git a/gnu/local.mk b/gnu/local.mk index 0a1357f114..d0c9ca595e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -862,6 +862,7 @@ INSTALLER_MODULES = \ %D%/installer/final.scm \ %D%/installer/hardware.scm \ %D%/installer/hostname.scm \ + %D%/installer/kernel.scm \ %D%/installer/keymap.scm \ %D%/installer/locale.scm \ %D%/installer/newt.scm \ @@ -880,6 +881,7 @@ INSTALLER_MODULES = \ %D%/installer/newt/final.scm \ %D%/installer/newt/parameters.scm \ %D%/installer/newt/hostname.scm \ + %D%/installer/newt/kernel.scm \ %D%/installer/newt/keymap.scm \ %D%/installer/newt/locale.scm \ %D%/installer/newt/menu.scm \ diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm index 283bae6f10..9a351529e8 100644 --- a/gnu/system/hurd.scm +++ b/gnu/system/hurd.scm @@ -48,6 +48,7 @@ (define-module (gnu system hurd) #:export (%base-packages/hurd %base-services/hurd %base-services+qemu-networking/hurd + %desktop-services/hurd %hurd-default-operating-system %hurd-default-operating-system-kernel %setuid-programs/hurd)) @@ -107,6 +108,8 @@ (define %base-services+qemu-networking/hurd %qemu-static-networking)) %base-services/hurd)) +(define %desktop-services/hurd %base-services/hurd) + (define %setuid-programs/hurd ;; Default set of setuid-root programs. (map file-like->setuid-program diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index 36dbd9111f..c8dccd38b0 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2017, 2019, 2021 Tobias Geerinckx-Rice ;;; Copyright © 2020 Mathieu Othacehe ;;; Copyright © 2020 Danny Milosavljevic -;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2020, 2024 Janneke Nieuwenhuizen ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. @@ -1869,6 +1869,10 @@ (define-syntax-rule (marionette-eval* exp marionette) #$marionette) (screenshot "installer-services.ppm") + (when #$(target-x86?) + (marionette-eval* '(choose-kernel installer-socket) #$marionette) + (screenshot "installer-kernel.ppm")) + (marionette-eval* '(choose-services installer-socket #:choose-desktop-environment? (const #$desktop?) From patchwork Fri Oct 25 09:40:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69451 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 0E9E727BBEA; Fri, 25 Oct 2024 10:42:34 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id CCED327BBE2 for ; Fri, 25 Oct 2024 10:42:33 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4Gp9-0002V9-QU; Fri, 25 Oct 2024 05:41:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp7-0002T6-PW for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:37 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp7-0003uA-FM for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=Ppe8hOhH87LBYDPktBYAQOvm/YbN/xHgkOUNWh7OPSQ=; b=bVBzbq7Hbm3TfMkjTlNfjSAHhMOIlDUGmb+nt+cFUBkBWCtAuai48Ocw2F71su2kVamCi1XzL8JtEsQRaacRzOalCRbfqSZEaAo6sr5OhhS5cB3znnZEXI1MzZyiHsn50d2W/G/r4Vp8XiiRnRGytPh5YPYG106/DUYYpcJeJSecjOswrHs9U2kwDoj59LQfbH89ZTBVVX9wilZOPefptP7BQBHqD1FVUYmf3xTkvltjY+UtLvqfGrXAw5O+qXs3hvV9YQt0ev0qwCYN5q2bD9Wz9NqJFKX+19TOJCGxwWdlc/1NX5IJXdIGbqyNM9vLT9C/nJlP1CQD3yRIMYdY+g==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4Gpd-00027O-6g for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:09 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 16/17] installer: Add static-networking template. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:09 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492917962 (code B ref 73927); Fri, 25 Oct 2024 09:42:09 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:31 +0000 Received: from localhost ([127.0.0.1]:37345 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gp1-00024G-9c for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:31 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36462) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Got-000229-Ig for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4GoI-0003pT-FO; Fri, 25 Oct 2024 05:40:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=Ppe8hOhH87LBYDPktBYAQOvm/YbN/xHgkOUNWh7OPSQ=; b=IUmZ6KNGyXk8VAnbLy5U NCNjYf33GxK4XHCmko/fsvFWzsKZ0y9V4tH8tA3SKl6EoGlmK9zJJxeQCGIVwFh0nUDtWKqHkNWgR Yv170rK1eaTaJjAdR+SJZO05jQDoG+SptYWpuQSQ9BTkRKS8YefuNSqeWqviPKQpnQmSHXYZCx2vP r/I3OBgbwwbwWsqgI979Xd8ZjZuK14Nmt4uzByvSgW0XMYaxVuP0sGxpk5HUJZiAqrXbPlk5VVDM3 5Zsz+iocLnSBwokrGYiqdx1SS/xTaGkTE9LuXDKYtMlQ4f4WWeHjjBHTkAGqYrdO4y1/bidJhlkBv lZR9ic0ETtqqew==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:40:08 +0200 Message-ID: <20241025094011.8540-17-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/installer/services.scm (%system-services): Add static-networking-service-type. Change-Id: Iec6336f8d1f49e8b801e978d5c9eeb4f83a6e748 --- gnu/installer/services.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm index d5a382606c..8b117d9a20 100644 --- a/gnu/installer/services.scm +++ b/gnu/installer/services.scm @@ -149,6 +149,28 @@ (define (%system-services) (name (G_ "DHCP client (dynamic IP address assignment)")) (type 'network-management) (snippet '((service dhcp-client-service-type)))) + (system-service + (name (G_ "Static networking service.")) + (type 'network-management) + (snippet `((service + static-networking-service-type + (list %loopback-static-networking + (static-networking + (addresses + (list + (network-address + (device "eth0") + ,(comment (G_ ";; Fill-in your IP.\n")) + (value "192.168.178.10/24")))) + (routes + (list (network-route + (destination "default") + ,(comment (G_ ";; Fill-in your gateway IP.\n")) + (gateway "192.168.178.1")))) + (requirement '()) + (provision '(networking)) + ,(comment (G_ ";; Fill-in your nameservers.\n")) + (name-servers '("192.168.178.1")))))))) ;; Dealing with documents. (system-service From patchwork Fri Oct 25 09:40:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 69455 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id DFDDE27BBEA; Fri, 25 Oct 2024 10:42:43 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 58FBB27BBE2 for ; Fri, 25 Oct 2024 10:42:43 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t4GpA-0002VQ-03; Fri, 25 Oct 2024 05:41:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4Gp8-0002UH-Uu for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:38 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t4Gp8-0003uT-Fe for guix-patches@gnu.org; Fri, 25 Oct 2024 05:41:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=+STQwkKh3SyvccoJDqQkts7U4WNa17HyCQ6CzqURmME=; b=JJxksrWNt+hd6DQdJvyE+TsALCGIymeeH9zE5Iiq2rcLRPovTYuagxZ228jkurKswi/2UA9pSsEGsxs5fMwwiSDqtpIuvec386a8HLnAkLnCGeGSRu+9uP6zpkf4vJJzciLAT3+qfKEA97fVsTYVOgPhbH7NhEP1D3eNR9qQGq7JZ8H+tyNeXz3iR80nj6vraZeIKGA0LeCqNR8piPY1YsTiquJY+qxYg/OM3PbTD1wGEYhL1yvwgIsP0PTDVDfLDK+mzp2sJtl1rXMF8VsOmIy6lP7fivKwMU4VnZhrNPxVZKOt5z67HXvqg9yTo9sw3WZkJOTOezKnRq28x+jmiw==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t4Gpe-00027e-7T for guix-patches@gnu.org; Fri, 25 Oct 2024 05:42:10 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH v3 17/17] installer: Support dry-run from Guile via store. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 25 Oct 2024 09:42:10 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Received: via spool by 73927-submit@debbugs.gnu.org id=B73927.17298492947978 (code B ref 73927); Fri, 25 Oct 2024 09:42:10 +0000 Received: (at 73927) by debbugs.gnu.org; 25 Oct 2024 09:41:34 +0000 Received: from localhost ([127.0.0.1]:37349 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gp3-00024X-DO for submit@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:33 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36476) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t4Gou-00022N-Je for 73927@debbugs.gnu.org; Fri, 25 Oct 2024 05:41:25 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t4GoJ-0003pg-Gi; Fri, 25 Oct 2024 05:40:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=+STQwkKh3SyvccoJDqQkts7U4WNa17HyCQ6CzqURmME=; b=OQehZTuTw7uxEuBS48+D nwHksk2R5cQodiWMNecm4VmGEXSe6c4wyv+roLPO0MN563lXS2gDCHWjC/26eQlOn50oqiXBIjbrp GTxZw2HbEhp3N/PTg5QJugtQBt92u4xAlvKYSavd5qcwoNqlRNWvSWF1QzstcPrf8rQxgcHW5o2Oh TrdO7CL8mJiVA7xfF9DeXWozHXqFB71YadS+EDFLLJb7lo/VA4PChPHj7GgKnw51wv/bN09lY+JIN ILc4fiQdBQgSZQyVRzQuoDx1ij1SGPdWu4rNxeUOZoI1NaBLJqjijJ2IEVm18o6hbGe2qC8xtgIAl 5UAbD6gHRC2ymA==; From: Janneke Nieuwenhuizen Date: Fri, 25 Oct 2024 11:40:09 +0200 Message-ID: <20241025094011.8540-18-janneke@gnu.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241025094011.8540-1-janneke@gnu.org> References: <20241025094011.8540-1-janneke@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches This supports running the installer quasi-directly from Guile by only building a Guile installer-script in the store. Do something like: ./pre-inst-env guile -c '((@ (gnu installer) run-installer) #:dry-run? #t)' or and BE VERY CAREFUL WHEN NOT USING #:DRY-RUN #T! sudo -E ./pre-inst-env guile -c '((@ (gnu installer) run-installer))' for this to work, you also need connman. * gnu/installer.scm (installer-script, run-installer): New procedures. Change-Id: I8cc1746845ec99f738e35fa91bb2342a674cfa88 --- gnu/installer.scm | 84 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 82 insertions(+), 2 deletions(-) diff --git a/gnu/installer.scm b/gnu/installer.scm index 31c0ff7ff4..981687990a 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -21,10 +21,14 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu installer) + #:use-module (guix build utils) + #:use-module (guix derivations) #:use-module (guix discovery) - #:use-module (guix packages) #:use-module (guix gexp) #:use-module (guix modules) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix store) #:use-module (guix utils) #:use-module (guix ui) #:use-module ((guix self) #:select (make-config.scm)) @@ -56,7 +60,9 @@ (define-module (gnu installer) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (web uri) - #:export (installer-program)) + #:export (installer-program + installer-steps + run-installer)) (define module-to-import? ;; Return true for modules that should be imported. For (gnu system …) and @@ -562,3 +568,77 @@ (define action (execl #$(program-file "installer-real" installer-builder #:guile guile-3.0-latest) "installer-real")))) + +(define* (installer-script #:key dry-run? + (steps (installer-steps #:dry-run? dry-run?))) + (program-file + "installer-script" + #~(begin + (use-modules (gnu installer) + (gnu installer record) + (gnu installer keymap) + (gnu installer steps) + (gnu installer dump) + (gnu installer final) + (gnu installer hostname) + (gnu installer kernel) + (gnu installer locale) + (gnu installer parted) + (gnu installer services) + (gnu installer timezone) + (gnu installer user) + (gnu installer utils) + (gnu installer newt) + ((gnu installer newt keymap) + #:select (keyboard-layout->configuration)) + (gnu services herd) + (guix i18n) + (guix build utils) + (guix utils) + ((system repl debug) + #:select (terminal-width)) + (ice-9 match) + (ice-9 textual-ports)) + (terminal-width 200) + (let* ((current-installer newt-installer) + (steps (#$steps current-installer))) + (catch #t + (lambda _ + ((installer-init current-installer)) + (parameterize ((%run-command-in-installer + (if #$dry-run? + dry-run-command + (installer-run-command current-installer))) + (%installer-configuration-file + (if #$dry-run? + "config.scm" + (%installer-configuration-file)))) + (let ((results (run-installer-steps + #:rewind-strategy 'menu + #:menu-proc + (installer-menu-page current-installer) + #:steps steps + #:dry-run? #$dry-run?))) + (result-step results 'final)))) + (const #f) + (lambda (key . args) + (sleep 10) + ((installer-exit current-installer)) + (display-backtrace (make-stack #t) (current-error-port)) + (apply throw key args))))))) + +(define* (run-installer #:key dry-run?) + "To run the installer from Guile without building it: + ./pre-inst-env guile -c '((@ (gnu installer) run-installer) #:dry-run? #t)' +when using #:dry-run? #t, no root access is required and the LOCALE, KEYMAP, +and PARTITION pages are skipped." + (let* ((script (installer-script #:dry-run? dry-run?)) + (store (open-connection)) + (drv (run-with-store store + (lower-object script))) + (program (match (derivation->output-paths drv) + ((("out" . program)) program))) + (outputs (build-derivations store (list drv)))) + (close-connection store) + (format #t "running installer: ~a\n" program) + (invoke "./pre-inst-env" "guile" program)))