Message ID | cover.1729494414.git.janneke@gnu.org |
---|---|
Headers |
Return-Path: <guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org> X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 759B627BBEA; Mon, 21 Oct 2024 09:15:28 +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 5698927BBE2 for <patchwork@mira.cbaines.net>; Mon, 21 Oct 2024 09:15:27 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <guix-patches-bounces@gnu.org>) id 1t2nYv-0007cB-Qd; Mon, 21 Oct 2024 04:14:49 -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 <Debian-debbugs@debbugs.gnu.org>) id 1t2nYj-0007bQ-1M for guix-patches@gnu.org; Mon, 21 Oct 2024 04:14: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 <Debian-debbugs@debbugs.gnu.org>) id 1t2nYi-0002wV-NF; Mon, 21 Oct 2024 04:14: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:Date:From:To:Subject; bh=9gWGrl9USD6DYPm/ILBSd/YF0CTCIUKPOmKYd+gR62o=; b=frwhaHi/3JsxoSu42/0LdTk845XuB58KTV3yCILFSh6rwJ+N+E+w4cN48q/JEl5Yw4FQWxkLvwM8HBM8Huw/fH7gzXJB4WAQDMfm+wQm9oVEIpbdcuiwt5evJqjgnSckLcK99eUQGv7udu8WQBy5xMtC487ozISO7JE5fFkY2+KXo7wws9zuAeTEiFV/caiFZnELwUgSVWrIfWuQvKiCzuyARDeFRt+M1FnzdgpmhCSGPDPtqp3ABhilORfXcvTg3I+ijqg2Ew8M1ODMhRRY+xjd2b8qf/d0VOPr+PFbI6WyszEH2g6fDfu4TFMEYtwcATtrjjXf5i3CbVxzIwwgoA==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1t2nZ8-0003T8-M0; Mon, 21 Oct 2024 04:15:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73927] [PATCH 00/16] Installer support for (cross) installing the Hurd. Resent-From: Janneke Nieuwenhuizen <janneke@gnu.org> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org> Resent-CC: dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, guix-patches@gnu.org Resent-Date: Mon, 21 Oct 2024 08:15:02 +0000 Resent-Message-ID: <handler.73927.B.172949848513291@debbugs.gnu.org> Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 73927 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73927@debbugs.gnu.org Cc: othacehe@gnu.org, ludo@gnu.org, dev@jpoiret.xyz, Josselin Poiret <dev@jpoiret.xyz>, Ludovic =?utf-8?q?Court=C3=A8s?= <ludo@gnu.org>, Mathieu Othacehe <othacehe@gnu.org> X-Debbugs-Original-To: guix-patches@gnu.org X-Debbugs-Original-Xcc: Josselin Poiret <dev@jpoiret.xyz>, Ludovic =?utf-8?q?Court=C3=A8s?= <ludo@gnu.org>, Mathieu Othacehe <othacehe@gnu.org> Received: via spool by submit@debbugs.gnu.org id=B.172949848513291 (code B ref -1); Mon, 21 Oct 2024 08:15:02 +0000 Received: (at submit) by debbugs.gnu.org; 21 Oct 2024 08:14:45 +0000 Received: from localhost ([127.0.0.1]:49966 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>) id 1t2nYq-0003SJ-C5 for submit@debbugs.gnu.org; Mon, 21 Oct 2024 04:14:44 -0400 Received: from lists.gnu.org ([209.51.188.17]:48126) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <janneke@gnu.org>) id 1t2nYo-0003SB-67 for submit@debbugs.gnu.org; Mon, 21 Oct 2024 04:14:43 -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 <janneke@gnu.org>) id 1t2nYM-0007a0-2q for guix-patches@gnu.org; Mon, 21 Oct 2024 04:14: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 <janneke@gnu.org>) id 1t2nYK-0002uN-Ug; Mon, 21 Oct 2024 04:14:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=9gWGrl9USD6DYPm/ILBSd/YF0CTCIUKPOmKYd+gR62o=; b=lE/SaTEQqzBVdj L6gw139D/Op8uPTIcKT1+S4kp7tiO/m9fH/7bSmNxPvOEgoA9uVEoXdEnh00/dK1L9/mKPK/K8fhb 2/fwPJELDbYiQug2NytLHGWqSmAv+5QVJSvOWll3GDIBNlOf5pEZfH2stgDVgfnw2Xmv+UJXleQrm NkLECpmVX4YK1jUbKAx0Ib/2/aBSK28MVNgmDbzN3kE7cAhz77w2rtiXEu8ine4FxGowzFIGhjVos hYv1VSLAIvPcnaGOmuAZqWstbQ108vFtBbrjAgW28e/sXX+gmsPjkkoxan/LWvBFcClopgo5+vnVU s/yCgujdjBbq4byT0OTQ==; From: Janneke Nieuwenhuizen <janneke@gnu.org> Date: Mon, 21 Oct 2024 10:13:54 +0200 Message-ID: <cover.1729494414.git.janneke@gnu.org> X-Mailer: git-send-email 2.46.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: <guix-patches.gnu.org> List-Unsubscribe: <https://lists.gnu.org/mailman/options/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=unsubscribe> List-Archive: <https://lists.gnu.org/archive/html/guix-patches> List-Post: <mailto:guix-patches@gnu.org> List-Help: <mailto:guix-patches-request@gnu.org?subject=help> List-Subscribe: <https://lists.gnu.org/mailman/listinfo/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=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 |
Series |
Installer support for (cross) installing the Hurd.
|
|
Message
Janneke Nieuwenhuizen
Oct. 21, 2024, 8:13 a.m. UTC
Hi! This patch set adds initial support for installing and running the Hurd on real iron. Writing a draft blog post on all the Hurd work that we've done last year and describing the clumsy way to install a Hurd system inspired me to have another look at the installer. I've dusted off some old patches to fix booting a Hurd installation more than once, then there's some preliminary (installer) work and then it adds a "Kernel" selection page where you can optionally select "Hurd" next to the default "Linux Libre". If you select "Hurd", some defaults are changed such as using an ext2 file system, some options are disabled such as creating an encrypted partition or a swap partition, and some menus have a warning about availability of packages. Finally a fully functional "config.scm" is created for installing the Hurd. It is using the regular GNU/Linux installer for now and the Hurd system is being cross installed. It might be nice to have a Hurd based installer image some time, maybe when we have better networking support (rumpnet? ;). I've updated the `hurd-team' branch with this patch set. To build the installer, do something like --8<---------------cut here---------------start------------->8--- ./pre-inst-env guix system image -t iso9660 gnu/system/install.scm or ./pre-inst-env guix system image -t iso9660 --system=i686-linux gnu/system/install.scm --8<---------------cut here---------------end--------------->8--- (note that the 32bit version using linux-libre-6.10.13 panics for me, I've had success with linux-libre-5.15 (see <https://git.savannah.gnu.org/cgit/guix.git/commit/?id=80f8ef0a01f2cf39deebfecc344e5f04d87d4bd4>). The last, but not unimportant feature, are patches to run the installer in dry-run mode and especially to run it directly from Guile, i.e., without building the (current-guix) guix derivation for the `hurd-team' branch and whatnot. To run the installer (semi-) directly, do something like: --8<---------------cut here---------------start------------->8--- /pre-inst-env guile -c '((@ (gnu installer) run-installer) #:dry-run? #t)' or sudo -E ./pre-inst-env guile -c '((@ (gnu installer) run-installer))' --8<---------------cut here---------------end--------------->8--- BE VERY CAREFUL WHEN NOT USING #:DRY-RUN #T! It feels a bit clumsy because it still builds a lightweight installer script in the store. We could avoid going via the store and factor-out the gexp'ed installer steps list from the `installer-steps' procedure. This is problematic because it then needs (newt), (parted), and (webutils) modules to build the installer OS. We could just add guile-newt, guile-parted, guile-webutils to the guix package's dependencies but I figured, also from how the installer was written, that we really don't want this. I also tried using #:autoload (see <https://git.savannah.gnu.org/cgit/guix.git/commit/?id=841b0f00afcc57442e348cdec7ca4fcae8372afb>), but #:autoload seems to fail on record predicates like `disk?' --8<---------------cut here---------------start------------->8--- Wrong type to apply (#<syntax-transformer disk?>). --8<---------------cut here---------------end--------------->8--- and also tried adding an extra indirection (see <https://git.savannah.gnu.org/cgit/guix.git/commit/?id=29a65fa3d251fe1cffea6db5231a0eb7c339987b>) in the hope to avoid having to use #:autoload for (parted), but as yet to no avail. Greetings, Janneke Janneke Nieuwenhuizen (16): system: hurd: Remove qemu networking from %base-services/hurd. gnu: hurd: Support system init in /libexec/runsystem. hurd-boot: Support system init: Create essential device nodes. system: hurd: Add swap-services to hurd-default-essential-services. gnu: hurd: Support second boot. hurd-boot: Support second boot. maint: Add installer dependencies to the manifest. installer: Remove unused (newt) imports. installer: Align comments. installer: Use "partitioning-page" consistently. installer: Fix file-name typos. installer: Use `%' for parameter %run-command-in-installer. installer: Add dry-run? installer: Add "Kernel" page to select the Hurd. installer: Add static-networking template. DRAFT installer: Support dry-run from Guile via store. gnu/build/hurd-boot.scm | 35 ++-- gnu/installer.scm | 206 ++++++++++++++++++------ gnu/installer/final.scm | 10 +- gnu/installer/kernel.scm | 34 ++++ gnu/installer/newt.scm | 24 ++- gnu/installer/newt/ethernet.scm | 1 - gnu/installer/newt/final.scm | 20 ++- gnu/installer/newt/kernel.scm | 45 ++++++ gnu/installer/newt/keymap.scm | 6 +- gnu/installer/newt/locale.scm | 7 +- gnu/installer/newt/page.scm | 7 +- gnu/installer/newt/parameters.scm | 1 - gnu/installer/newt/partition.scm | 10 +- gnu/installer/newt/services.scm | 32 ++-- gnu/installer/parted.scm | 114 ++++++++----- gnu/installer/record.scm | 8 +- gnu/installer/services.scm | 68 ++++++-- gnu/installer/steps.scm | 30 ++-- gnu/installer/utils.scm | 17 +- gnu/local.mk | 3 + gnu/packages/hurd.scm | 8 +- gnu/packages/patches/hurd-startup.patch | 82 ++++++++++ gnu/services/base.scm | 20 ++- gnu/services/virtualization.scm | 4 +- gnu/system.scm | 13 +- gnu/system/examples/bare-hurd.tmpl | 10 +- gnu/system/hurd.scm | 26 +-- gnu/system/images/hurd.scm | 2 +- manifest.scm | 7 +- 29 files changed, 661 insertions(+), 189 deletions(-) create mode 100644 gnu/installer/kernel.scm create mode 100644 gnu/installer/newt/kernel.scm create mode 100644 gnu/packages/patches/hurd-startup.patch base-commit: aaa12db63270c487e3be1963b0fdfe93fdb2544d