Jan Nieuwenhuizen writes: Hello, > we have now something "that works" for the Hurd. Hmm...that was too fast; apparently I fooled myself last Friday. Anyway, I found it! Using this --8<---------------cut here---------------start------------->8--- (define (hurd-vm-disk-image config) "Return a disk-image for the Hurd according to CONFIG." (with-parameters ((%current-target-system "i586-pc-gnu")) (let ((os (hurd-vm-configuration-os config)) (disk-size (hurd-vm-configuration-disk-size config))) (system-image (image (inherit hurd-disk-image) (size disk-size) (operating-system os)))))) --8<---------------cut here---------------end--------------->8--- almost worked...but it goes wrong cross-building the services. In gnu/services/shepherd.scm's scm->go, we were bitten by --8<---------------cut here---------------start------------->8--- (define (scm->go file) ;; FIXME: %current-target-system may not be bound (let ((target (%current-target-system))) (with-extensions (list shepherd) --8<---------------cut here---------------end--------------->8--- ...but we now have let-system; so using --8<---------------cut here---------------start------------->8--- diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index 77c4d0a8be..e14ceca231 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -266,8 +266,7 @@ stored." (define (scm->go file) "Compile FILE, which contains code to be loaded by shepherd's config file, and return the resulting '.go' file." - ;; FIXME: %current-target-system may not be bound - (let ((target (%current-target-system))) + (let-system (system target) (with-extensions (list shepherd) (computed-file (string-append (basename (scheme-file-name file) ".scm") ".go") --8<---------------cut here---------------end--------------->8--- produces a working hurd-vm service! New patch attached, I intend to push to master once rebased, all the tests pass, etc. ;-) Phew, thank you! Greetings, Janneke