From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id YGRjD6ANFmfEHgEAqHPOHw:P1 (envelope-from ) for ; Mon, 21 Oct 2024 08:15:28 +0000 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id YGRjD6ANFmfEHgEAqHPOHw (envelope-from ) for ; Mon, 21 Oct 2024 10:15:28 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=debbugs.gnu.org header.s=debbugs-gnu-org header.b="frwhaHi/"; dkim=fail ("headers rsa verify failed") header.d=gnu.org header.s=fencepost-gnu-org header.b="lE/SaTEQ"; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1729498528; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=9gWGrl9USD6DYPm/ILBSd/YF0CTCIUKPOmKYd+gR62o=; b=mioaWjwaGtXYGvTbE7HwjplBuO2XFG5mJMGr9cUaLYNsXi9luS5c2S5Dlt0hGxA4lNoaRT 3StXIwXnO7cGmyVGkenE7iFNuZnbuC8EnQnosRf42bmVfNWkhP3upMFzs1ZuCda6tVc+Z/ VOi0gYGR876W0YQB0cvddvNwIurpxxeg69WpHPws7jHLxbtGqnHI/xAxvvILwG9ySuHAmC 59HFCbw2+LAVn74D8vjA/0XQiSVuB/5Pj0DpmLOumbHjq3wZWiYW9PQ4FS2k0SSWLnvDmT 0u/kTR1O4VVbPRHqth/5djoOk5EV9s2ESt850YnQoVQTkt8bkHAAGeoGg/a5jw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1729498528; a=rsa-sha256; cv=none; b=aSCBOWmswEQgGZSULuc08LXqNwPKrf/JEwJ9LuqGkBoxDhPdO3qe/T0gIl3TDznC3G+JpX QoPdOWDsWqQ9dnQUMf7jt0/XYZvNgEYhhA+iHmbqqM+Mpg7D4H07mN1C8aBmeT4ZCVRbAc NTPbDfpj+6jVb9uj5yOQHzbPaj8x4JylbkX1dSt+feeSB6hjT/ie+O6ARk/rDYf3IjO8eL GosvKkGouEH6n7k/DD2CgiW/7Tq/0FsKE/8V5BfHoQHhnHNGO4XqD19j6MBzjxo+HqEIt3 xwhyHBsDEvW05nSm3PyOowpboDT1SWcQ8q4F7AWuQ1m8yjWNCSruP52j8joOhg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=debbugs.gnu.org header.s=debbugs-gnu-org header.b="frwhaHi/"; dkim=fail ("headers rsa verify failed") header.d=gnu.org header.s=fencepost-gnu-org header.b="lE/SaTEQ"; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D0DCE1DFC for ; Mon, 21 Oct 2024 10:15:27 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) 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 ) 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 ) 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 ) 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 Original-Sender: "Debbugs-submit" 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: 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 , Ludovic =?UTF-8?Q?Court=C3=A8s?= , Mathieu Othacehe X-Debbugs-Original-To: guix-patches@gnu.org X-Debbugs-Original-Xcc: Josselin Poiret , Ludovic =?UTF-8?Q?Court=C3=A8s?= , Mathieu Othacehe 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 ) 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 ) 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 ) 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 ) 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 Date: Mon, 21 Oct 2024 10:13:54 +0200 Message-ID: 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -0.46 X-Spam-Score: -0.46 X-Migadu-Queue-Id: D0DCE1DFC X-Migadu-Scanner: mx13.migadu.com X-TUID: gAYR15R/alJ8 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 ). 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 ), but #:autoload seems to fail on record predicates like `disk?' --8<---------------cut here---------------start------------->8--- Wrong type to apply (#). --8<---------------cut here---------------end--------------->8--- and also tried adding an extra indirection (see ) 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 -- 2.46.0