emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#73927: closed ([PATCH 00/16] Installer support for (cross) installin


From: GNU bug Tracking System
Subject: bug#73927: closed ([PATCH 00/16] Installer support for (cross) installing the Hurd.)
Date: Mon, 11 Nov 2024 06:38:02 +0000

Your message dated Mon, 11 Nov 2024 07:37:03 +0100
with message-id <874j4exomo.fsf@gnu.org>
and subject line Re: [PATCH v4 00/18] Installer support for (cross) installing 
the Hurd.
has caused the debbugs.gnu.org bug report #73927,
regarding [PATCH 00/16] Installer support for (cross) installing the Hurd.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
73927: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=73927
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: [PATCH 00/16] Installer support for (cross) installing the Hurd. Date: Mon, 21 Oct 2024 10:13:54 +0200
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
-- 
2.46.0




--- End Message ---
--- Begin Message --- Subject: Re: [PATCH v4 00/18] Installer support for (cross) installing the Hurd. Date: Mon, 11 Nov 2024 07:37:03 +0100 User-agent: Gnus/5.13 (Gnus v5.13)
Mathieu Othacehe writes:

Hello,

> Janneke Nieuwenhuizen writes:
>> From: "Janneke Nieuwenhuizen" <janneke@gnu.org>
>>
>> New in this series:
>>
>>   * reconfigure: Use native bootloader package for running the installer,
>>   * default to "msdos" partion table,
>>   * do not suggest/create boot partition,
>>   * remove "--skip-checks" from guix system init call,
>>   * default to part:1:device:wd0 instead of failing when no permission to 
>> read
>>     /dev (resurrecting tests/guix-system.sh),
>>
>> which lead to the first fresh install that actually boots without any extra
>> tinkering on my x60 using this
>>
>> ./pre-inst-env guix system image -t iso9660 --system=i686-linux 
>> gnu/system/install.scm
>>
>> installer.  I've updated the hurd-team branch.

> I remember resorting to a similar hack, back in 2018 when writing the
> installer. Maybe we should go the extra mile and integrate that one to a
> proper guix command, such as `guix system installer` that would call
> `run-installer` with dry-run set to #t. WDYT?

Yes, I still think this is a nice idea.  Better to open a new bug for
that when someone wants to write a patch?

Pushed to master as 035e5f0c743d80be3d4029f9daba90cb8b657782.

Thanks!
Janneke

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | AvatarĀ® https://AvatarAcademy.com


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]