I am trying to use guile-wm, but it fails when I launch it. I define an operating system that includes guile-wm as a package and use it to build a virtual machine image. Here is the operating system definition: ~~~~~ (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) (use-package-modules certs gnome guile-wm) (operating-system  (host-name "piranhaplant")  (timezone "America/Boise")  (locale "en_US.utf8")  (bootloader (bootloader-configuration               (bootloader grub-bootloader)               (target "/dev/sda")))  (file-systems (cons (file-system                       (device (file-system-label "mini8"))                       (mount-point "/")                       (type "ext4"))                      %base-file-systems))  (users   %base-user-accounts)  (packages (cons* nss-certs                   gvfs           guile-wm                   %base-packages))  (services (cons* (gnome-desktop-service)                   %desktop-services))  (name-service-switch %mdns-host-lookup-nss)) ~~~~~ When I try to log in, it flashes an error so fast I cannot record it, then returns to the login screen. When I launch it from a console, it sends the following to stderr: ~~~~~ ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 ;;;       or pass the --no-auto-compile argument to disable. ;;; compiling /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/bin/.guile-wm-real ;;; compiling /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/shared.scm ;;; compiling /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml.scm ;;; compiling /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/connection.scm ;;; compiling /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/struct.scm ;;; compiling /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/type.scm ;;; compiling /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/enum.scm ;;; compiling /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/records.scm ;;; compiled /root/.cache/guile/ccache/2.2-LE-8-3.A/gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/records.scm.go ;;; compiled /root/.cache/guile/ccache/2.2-LE-8-3.A/gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/enum.scm.go ;;; compiled /root/.cache/guile/ccache/2.2-LE-8-3.A/gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/type.scm.go ;;; compiling /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/union.scm ;;; compiled /root/.cache/guile/ccache/2.2-LE-8-3.A/gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/union.scm.go ;;; compiled /root/.cache/guile/ccache/2.2-LE-8-3.A/gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/struct.scm.go ;;; compiled /root/.cache/guile/ccache/2.2-LE-8-3.A/gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/connection.scm.go ;;; compiling /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/doc.scm ;;; compiled /root/.cache/guile/ccache/2.2-LE-8-3.A/gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/doc.scm.go ;;; compiling /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/auth.scm ;;; WARNING: compilation of /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/auth.scm failed: ;;; no code for module (xcb xml xproto) ;;; WARNING: compilation of /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml.scm failed: ;;; no code for module (xcb xml xproto) ;;; compiling /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/core.scm ;;; WARNING: compilation of /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/xml/core.scm failed: ;;; no code for module (xcb xml xproto) ;;; WARNING: compilation of /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/shared.scm failed: ;;; no code for module (xcb xml xproto) ;;; WARNING: compilation of /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/bin/.guile-wm-real failed: ;;; no code for module (xcb xml xproto) ;;; compiling /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/user.scm ;;; compiling /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/command.scm ;;; compiling /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/event-loop.scm ;;; WARNING: compilation of /gnu/store/gv2n0k75d5svzcgwqna33nvhvczrj3z2-guile-xcb-1.3-1.db7d5a3/share/guile/site/2.2/xcb/event-loop.scm failed: ;;; no code for module (xcb xml xproto) ;;; WARNING: compilation of /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/command.scm failed: ;;; no code for module (xcb xml xproto) ;;; compiling /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/log.scm ;;; compiled /root/.cache/guile/ccache/2.2-LE-8-3.A/gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/log.scm.go ;;; compiling /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/keymap.scm ;;; compiled /root/.cache/guile/ccache/2.2-LE-8-3.A/gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/keymap.scm.go ;;; compiling /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/text.scm ;;; compiling /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/draw.scm ;;; WARNING: compilation of /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/draw.scm failed: ;;; no code for module (xcb xml xproto) ;;; WARNING: compilation of /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/text.scm failed: ;;; no code for module (xcb xml xproto) ;;; compiling /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/color.scm ;;; WARNING: compilation of /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/color.scm failed: ;;; no code for module (xcb xml xproto) ;;; WARNING: compilation of /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/user.scm failed: ;;; no code for module (xcb xml xproto) ;;; compiling /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/redirect.scm ;;; WARNING: compilation of /gnu/store/q549b5c0fwds1l8bycvabva3jwr86p63-guile-wm-1.0-1.f3c7b3b/share/guile/site/2.2/guile-wm/redirect.scm failed: ;;; no code for module (xcb xml xproto) Backtrace: In ice-9/boot-9.scm:    222:29 19 (map1 (((guile-wm keymap)) ((guile-wm redirect)) ((…)) …))    222:17 18 (map1 (((guile-wm redirect)) ((xcb event-loop)) ((…)) …))   2800:17 17 (resolve-interface (guile-wm redirect) #:select _ #:hide …) In ice-9/threads.scm:     390:8 16 (_ _) In ice-9/boot-9.scm:   2726:13 15 (_) In ice-9/threads.scm:     390:8 14 (_ _) In ice-9/boot-9.scm:   2994:20 13 (_)    2312:4 12 (save-module-excursion #)   3014:26 11 (_) In unknown file:           10 (primitive-load-path "guile-wm/redirect" #) In ice-9/eval.scm:    721:20  9 (primitive-eval (define-module (guile-wm redirect) # # …)) In ice-9/psyntax.scm:   1235:36  8 (expand-top-sequence ((define-module (guile-wm #) # …)) …)   1182:24  7 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)    285:10  6 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …) In ice-9/eval.scm:    293:34  5 (_ #) In ice-9/boot-9.scm:    2874:4  4 (define-module* _ #:filename _ #:pure _ #:version _ # _ …)   2887:24  3 (_)    222:17  2 (map1 (((xcb xml xproto)) ((xcb xml)) ((xcb #)) ((…)) #))    2803:6  1 (resolve-interface _ #:select _ #:hide _ #:prefix _ # _ …) In unknown file:            0 (scm-error misc-error #f "~A ~S" ("no code for modu…" …) …) ERROR: In procedure scm-error: no code for module (xcb xml xproto) Some deprecated features have been used.  Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information.  Set it to "no" to suppress this message. ~~~~~ From what I can tell, it is attempting to re-compile guile-wm, and cannot find the prerequisite guile-xcb package files. Possible solutions: -Edit the guile-wm package to include guile-xcb in the propagated-inputs. As the manual says, "Another example where |propagated-inputs| is useful is for languages that lack a facility to record the run-time search path akin to the |RUNPATH| of ELF files; this includes Guile, Python, Perl, and more. To ensure that libraries written in those languages can find library code they depend on at run time, run-time dependencies must be listed in |propagated-inputs| rather than |inputs|." If there are no objections to taking this action as suggested by the manual, here is a patch: ~~~~~ From 7bd5859eaef1b823ade87faa790092a553b40a91 Mon Sep 17 00:00:00 2001 From: jesse Date: Tue, 19 Mar 2019 16:19:38 -0600 Subject: [PATCH] Fix guile-wm to have guile-xcb as a propagated-input. ---  gnu/packages/guile-wm.scm | 4 ++--  1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile-wm.scm b/gnu/packages/guile-wm.scm index 7b1731171..40b56d64e 100644 --- a/gnu/packages/guile-wm.scm +++ b/gnu/packages/guile-wm.scm @@ -139,8 +139,8 @@ dependencies.")                 #t)))))        (native-inputs `(("pkg-config" ,pkg-config)                         ("texinfo" ,texinfo))) -      (inputs `(("guile" ,guile-2.2) -                ("guile-xcb" ,guile-xcb))) +      (inputs `(("guile" ,guile-2.2))) +      (propagated-inputs `(("guile-xcb" ,guile-xcb)))        (home-page "https://github.com/mwitmer/guile-wm/releases")        (description         "Guile-WM is a simple window manager that's completely customizable—you -- 2.20.1 ~~~~~ I could not test this fix because even in a guix environment and pre-inst-env with the patch, guix does not recognize the file I edited as the file that defines the guile-wm package. (I think that's a problem with my OS.) However, when I included a similarly revised definition of guile-wm in an OS definition, guile did not try to re-build guile-wm, so I think this is progress on the guile-wm crash bug. It does not allow me to run guile-wm as my window manager, but it does fix one part of the problem. -Jesse