Hello,
I’m trying to get Guacamole Server working as a NixOS module. The work is being done in an external flake, but the idea is to backport this in nixpkgs
as soon as it’s completely done.
Find the current work in progress branch at: https://github.com/drupol/guacamole-nixos/blob/switch-to-flake-parts/overlay.nix#L4
We currently have a runtime issue (WARNING: Support for protocol "rdp" is not installed
) with the Guacamole server preventing us from moving forward. As I couldn’t find the reason by myself, I’ve sent a message to the mailing list, you can find the message here: https://lists.apache.org/thread/dzvf4jvhd2vhtd19n1rp7n48rcbxtbsn
In the reply, I’m told to run ldconfig
but I know that in NixOS, there is no ld cache, so things needs to be done in a different way.
When I run the guacd
daemon with LD_DEBUG=libs
(complete log here), I get:
guacd[606271]: INFO: Creating new client for protocol "rdp"
guacd[606271]: INFO: Connection ID is "$1832a1ef-63ac-4f07-944b-cbce3f7b310b"
606273: find library=libguac-client-rdp.so [0]; searching
606273: search path=/nix/store/vl3a3sc6yx3jvlqhgb7mg8s0nj3l3qgp-cairo-1.16.0/lib:/nix/store/9df67sa27z2bmmi51jkwhdgf5crjm4pp-libjpeg-turbo-2.1.5.1/lib:/nix/store/hm7qi1y054xh74hbdls0nimnrdkmsbx3-libpng-apng-1.6.39/lib:/nix/store/8dxriyfzj2nycr6wlmk5zs0xpczbz7an-openssl-3.0.8/lib:/nix/store/ljknlg2320vva6mk1j63jrz8qvdsslgx-libossp-uuid-1.6.2/lib:/nix/store/mrc9q37wmsp5bcf675a4af9bsdqcshpq-libogg-1.3.5/lib:/nix/store/my5jn6b9bvd10fjd08n1zqrzz8iycr9b-libvorbis-1.3.7/lib:/nix/store/qaghh6kiw1w9rfgj54f4zy3w9j2byxc3-libwebp-1.3.0/lib (RUNPATH from file /nix/store/hc8qkkvdvjm464221yqcj1m045x09fvk-guacamole-1.5.2/bin/guacd)
606273: trying file=/nix/store/vl3a3sc6yx3jvlqhgb7mg8s0nj3l3qgp-cairo-1.16.0/lib/libguac-client-rdp.so
606273: trying file=/nix/store/9df67sa27z2bmmi51jkwhdgf5crjm4pp-libjpeg-turbo-2.1.5.1/lib/libguac-client-rdp.so
606273: trying file=/nix/store/hm7qi1y054xh74hbdls0nimnrdkmsbx3-libpng-apng-1.6.39/lib/libguac-client-rdp.so
606273: trying file=/nix/store/8dxriyfzj2nycr6wlmk5zs0xpczbz7an-openssl-3.0.8/lib/libguac-client-rdp.so
606273: trying file=/nix/store/ljknlg2320vva6mk1j63jrz8qvdsslgx-libossp-uuid-1.6.2/lib/libguac-client-rdp.so
606273: trying file=/nix/store/mrc9q37wmsp5bcf675a4af9bsdqcshpq-libogg-1.3.5/lib/libguac-client-rdp.so
606273: trying file=/nix/store/my5jn6b9bvd10fjd08n1zqrzz8iycr9b-libvorbis-1.3.7/lib/libguac-client-rdp.so
606273: trying file=/nix/store/qaghh6kiw1w9rfgj54f4zy3w9j2byxc3-libwebp-1.3.0/lib/libguac-client-rdp.so
606273: search cache=/nix/store/x33pcmpsiimxhip52mwxbb5y77dhmb21-glibc-2.37-8/etc/ld.so.cache
606273: search path=/nix/store/x33pcmpsiimxhip52mwxbb5y77dhmb21-glibc-2.37-8/lib:/nix/store/05cd846a6pbhdijq28ga5piyk6d5mzvb-xgcc-12.2.0-libgcc/lib/glibc-hwcaps/x86-64-v3:/nix/store/05cd846a6pbhdijq28ga5piyk6d5mzvb-xgcc-12.2.0-libgcc/lib/glibc-hwcaps/x86-64-v2:/nix/store/05cd846a6pbhdijq28ga5piyk6d5mzvb-xgcc-12.2.0-libgcc/lib (system search path)
606273: trying file=/nix/store/x33pcmpsiimxhip52mwxbb5y77dhmb21-glibc-2.37-8/lib/libguac-client-rdp.so
606273: trying file=/nix/store/05cd846a6pbhdijq28ga5piyk6d5mzvb-xgcc-12.2.0-libgcc/lib/glibc-hwcaps/x86-64-v3/libguac-client-rdp.so
606273: trying file=/nix/store/05cd846a6pbhdijq28ga5piyk6d5mzvb-xgcc-12.2.0-libgcc/lib/glibc-hwcaps/x86-64-v2/libguac-client-rdp.so
606273: trying file=/nix/store/05cd846a6pbhdijq28ga5piyk6d5mzvb-xgcc-12.2.0-libgcc/lib/libguac-client-rdp.so
606273:
guacd[606273]: WARNING: Support for protocol "rdp" is not installed
606273:
606273: calling fini: [0]
We can notice that libguac-client-rdp.so
is being searched and the first directory being tried is: /nix/store/vl3a3sc6yx3jvlqhgb7mg8s0nj3l3qgp-cairo-1.16.0/lib/
However, when I do:
nix build github:drupol/guacamole-nixos/switch-to-flake-parts#guacamole-server
And then:
patchelf --print-rpath result/bin/guacd
I get:
/nix/store/hc8qkkvdvjm464221yqcj1m045x09fvk-guacamole-1.5.2/lib:/nix/store/vl3a3sc6yx3jvlqhgb7mg8s0nj3l3qgp-cairo-1.16.0/lib:/nix/store/9df67sa27z2bmmi51jkwhdgf5crjm4pp-libjpeg-turbo-2.1.5.1/lib:/nix/store/hm7qi1y054xh74hbdls0nimnrdkmsbx3-libpng-apng-1.6.39/lib:/nix/store/8dxriyfzj2nycr6wlmk5zs0xpczbz7an-openssl-3.0.8/lib:/nix/store/ljknlg2320vva6mk1j63jrz8qvdsslgx-libossp-uuid-1.6.2/lib:/nix/store/mrc9q37wmsp5bcf675a4af9bsdqcshpq-libogg-1.3.5/lib:/nix/store/my5jn6b9bvd10fjd08n1zqrzz8iycr9b-libvorbis-1.3.7/lib:/nix/store/qaghh6kiw1w9rfgj54f4zy3w9j2byxc3-libwebp-1.3.0/lib
At this point, I’m running out of ideas… I simply don’t know what to do to unblock the situation.
Do you have any clue that might help?