Subject: Re: bug#41541: merge wip-hurd-vm

From: Jan Nieuwenhuizen <[email-masked]>
Date: Thu, 04 Jun 2020 13:33:55 +0200

Ludovic Courtès writes:

Hello!

> Jan Nieuwenhuizen <[email-masked]> skribis:
>
>> --- a/gnu/packages/hurd.scm
>> +++ b/gnu/packages/hurd.scm

[...]

>> +               (substitute* "hurd/paths.h"
>> +                 (("_HURD_STARTUP\t")
>> +                  (string-append "_HURD_STARTUP\t\"" out "\" "))
>> +                 (("_HURD_PROC\t")
>> +                  (string-append "_HURD_PROC\t\"" out "\" "))
>> +                 (("_HURD_AUTH\t")
>> +                  (string-append "_HURD_AUTH\t\"" out "\" ")))
>>                 (substitute* '("daemons/runsystem.sh"
>>                                "sutils/MAKEDEV.sh")
>>                   (("^PATH=.*")
>>
>> produces a bootable VM.  So...this could be great or maybe...well, what
>> do you think?
>
> As discussed on IRC, I wonder if changing <hurd/paths.h> is a good idea
> because it’s captured by libc, etc.

Thank you for explaining it on IRC and stating it so clearly here again;
this really helped me!

> So it could have the effect of
> forcing all the applications to refer to /gnu/store/…-old-hurd instead
> of using the (typically more up-to-date) /hurd.
>
> It could also lead to setting /gnu/store/…-old-hurd as passive
> translator settings, which would be very bad because
> /gnu/store/…-old-hurd could be GC’d (the GC doesn’t scan passive
> translator settings and probably never will).

Ah...right.  As discussed on IRC, I already tried only using a fixed
file-name for _HURD_STARTUP (out + "/hurd/startup"); which worked.

So, after digesting your message here I took the next step: grep for
_HURD_STARTUP and change it there, like so

diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 421783eb80..8c73ea8430 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -428,9 +428,10 @@ exec ${system}/rc \"$@\"
                               "startup/startup.c")
                  (("/hurd/")
                   (string-append out "/hurd/")))
-               (substitute* "hurd/paths.h"
-                 (("_HURD_STARTUP\t")
-                  (string-append "_HURD_STARTUP\t\"" out "\" ")))
+               (substitute* '("libdiskfs/boot-start.c"
+                              "libdiskfs/opts-std-startup.c")
+                 (("_HURD_STARTUP")
+                  (string-append "\"" out "/hurd/startup\"")))

This also works, and so I figure we're fine now.  I'm resetting
wip-hurd-vm and, like Mathieu suggested will prepare to send send a
patch series here for the unreviewed subset of patches.

Greetings,
Janneke

-- 
Jan Nieuwenhuizen <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com