GNU bug report logs - #41541
merge wip-hurd-vm

Previous Next

Package: guix-patches;

Reported by: Jan Nieuwenhuizen <janneke <at> gnu.org>

Date: Tue, 26 May 2020 14:22:02 UTC

Severity: normal

Done: Jan Nieuwenhuizen <janneke <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #20 received at 41541 <at> debbugs.gnu.org (full text, mbox):

From: Jan Nieuwenhuizen <janneke <at> gnu.org>
To: Mathieu Othacehe <othacehe <at> gnu.org>
Cc: 41541 <at> debbugs.gnu.org
Subject: Re: bug#41541: merge wip-hurd-vm
Date: Tue, 02 Jun 2020 11:24:33 +0200
Mathieu Othacehe writes:

Hello Mathieu,

>> I have managed to completely boot-activation.  Still using the same
>> patch for hurd-directives, but I've got a feeling we're getting real
>> close now.
>
> Just discovered your (gnu build hurd-boot), that's awesome!

Thanks...yeah I was just attempting to write a mail about that,
asking/wondering if you think some commits should be collapsed
again...especially the introduction of using MAKEDEV

--8<---------------cut here---------------start------------->8---
Subject: [PATCH 1/9] gnu: hurd: Create minimal "runsystem" script to invoke "rc".
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
@@ -329,10 +329,26 @@ boot, since this cannot be done from GNU/Linux."
[...]
+          ;; "@HURD@" and "@COREUTILS@" are a placeholders.
+          (setenv "PATH" "@HURD@/bin:@HURD@/sbin:@COREUTILS@/bin")
@@ -349,10 +374,43 @@ boot, since this cannot be done from GNU/Linux."
[...]
-          (invoke "console" "--daemonize" "-c" "/dev/vcs"
-                  "-d" "vga" "-d" "pc_kbd" "-d" "generic_speaker"))))
+          (format #t "Creating essential device nodes...\n")
+          (with-directory-excursion "/dev"
+            (invoke "MAKEDEV" "--devdir=/dev" "std")
+            (invoke "MAKEDEV" "--devdir=/dev" "vcs")
+            (invoke "MAKEDEV" "--devdir=/dev" "tty1""tty2" "tty3" "tty4" "tty5" "tty6")
+            (invoke "MAKEDEV" "--devdir=/dev" "ptyp0" "ptyp1" "ptyp2")
+            (invoke "MAKEDEV" "--devdir=/dev" "console"))
--8<---------------cut here---------------end--------------->8---

later moving it to hurd-boot, and its subsequent removal...

> I wonder if we could go one step further and move the "rc" script
> outside of the "hurd" package (not sure where to put it though).

Yes, I agree that would be great.  I briefly thought about it and gave
up, instead of asking this question...so

The "normal" (old, current master) bootstrap goes like this

    /hurd/startup -> /libexec/runsystem -> /hurd/init ->
         /libexec/runsystem.hurd -> /libexec/rc

where RC is our initial Guile script.  I've managed to patch that into

    /hurd/startup -> /libexec/runsystem* -> /libexec/rc

Where, /hurd is symlink to /gnu/store/*-hurd-0.9/hurd/ and runsystem*
now is a very minimal bash script, doing

    exec /libexec/rc "$@"

and /libexecc is currently being substituted with the store file name,
which gives us a hurd package that does this

    /hurd/startup
    -> /gnu/store/xyz-hurd-0.9/libexec/runsystem
    -> /gnu/store/xyz-hurd-0.9/libexec/rc

Now, how could we have runsystem run another RC?  Hmm, runsystem is
being called with --load and --system arguments too; we could even
give it an --rc=RC-FILE if that's more convenient.

Then, we would only need to add this RC-FILE to the system, maybe add a
%hurd-"something" service?

Hmm.  Please share your thoughts, I'm having a go at this.

Greetings,
Janneke

-- 
Jan Nieuwenhuizen <janneke <at> gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | AvatarĀ® http://AvatarAcademy.com




This bug report was last modified 4 years and 339 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.