Hi Chris, Nice work on building Docker images of GuixSD!
Chris Marusich <cmmarus...@gmail.com> skribis: > [ 1.345843] FS-Cache: Loaded > [ 1.362140] 9pnet: Installing 9P2000 support > [ 1.366118] 9p: Installing v9fs 9p2000 file system support > [ 1.368730] FS-Cache: Netfs '9p' registered for caching > configuring QEMU networking... > loading '/gnu/store/jy509dgcsz82y13fmizv2sqaj90s1vfg-linux-vm-loader'... > ERROR: In procedure dynamic-link: > ERROR: In procedure dynamic-link: file: > "/gnu/store/hwygv5jwd47amhp1m67iy3bkvxqjlbhm-libgcrypt-1.8.1/lib/libgcrypt", > message: "file not found" The code above is running in the initrd, which means that it’s executed by ‘guile-static-stripped’, which does not support dlopening: --8<---------------cut here---------------start------------->8--- $ guix environment -C --ad-hoc guile-static-stripped libgcrypt -- guile [...] GNU Guile 2.2.2 Copyright (C) 1995-2017 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> (file-exists? (string-append (getenv "GUIX_ENVIRONMENT") "/lib/libgcrypt.so")) $1 = #t scheme@(guile-user)> (dynamic-link (string-append (getenv "GUIX_ENVIRONMENT") "/lib/libgcrypt")) ERROR: In procedure dynamic-link: ERROR: In procedure dynamic-link: file: "/gnu/store/wplxvw0mxxy35j7019j6mkjvpgl0hs1g-profile/lib/libgcrypt", message: "file not found" Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. scheme@(guile-user) [1]> --8<---------------cut here---------------end--------------->8--- (The “file not found” message is misleading.) So we should either make a big initrd with the dynamically-linked Guile, but then we may need to pass “-m 512” or similar to qemu… Or we mount the host store over 9p and exec a dynamically-linked Guile from there. I realize it’s a bit sketchy, but I hope it makes sense. Thanks, Ludo’.