Andreas Enge <andr...@enge.fr> skribis: > So I added Qt 4.8.5, after disabling a few tests requiring an X server - > adding xorg-server as an input was not enough, as the server would not be > started by the tests, but supposed to be already running.
I wonder how people address this in general. Perhaps we could start xvfb in a pre-check phase if that’s enough? > Two "hello world" programs I found in a tutorial compile. Neat. > The gui program complains about a missing icui18n library. Strace shows the > following: [...] > open("/etc/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or > directory) What’s this?! Would be good to know where it comes from. Normally our glibc doesn’t look for ld.so.cache (see ‘glibc-no-ld-so-cache.patch’.) [...] > icu4c was present at the time of compilation, but is not listed as a > reference: > > $$ ./pre-inst-env guix gc --references > /nix/store/z70fv39wa8yrvvqq9zfidsh86z72p4gr-qt-4.8.5 > > /nix/store/2332f9jmabldwz08lqj9yd8znrx9z125-libpng-1.5.17 > /nix/store/3xkdzldlqm4sa2p4czjbnybdwq47qlw2-fontconfig-2.10.93 > /nix/store/52998i0m4gr7k35lni8fmg591zsyqamv-gcc-4.7.3 > /nix/store/8cpwgsdx2njpkdj20i963zfxs0fyqkvi-libjpeg-8d > /nix/store/arsxjcl3kdxxjxf7s1nsvfczis6pckm3-libxrender-0.9.7 > /nix/store/asmki6g7ca64sdlcf6ahnjxvxg2x6sgv-libx11-1.5.0 > /nix/store/b3c1z47c201gz8gnx5553kw2qb4qdq3b-freetype-2.4.11 > /nix/store/dly2cqqprdsb4fqabrw0bxm1n42vpi6w-glib-2.38.0 > /nix/store/g4cs0ssg7ry4da1615947ild5l4wv6ba-zlib-1.2.7 > /nix/store/i9b6q8wciapn69wifmb1xgpikj4ljjzy-alsa-lib-1.0.27.1 > /nix/store/l8bnfq6n6hb2wvx0kxdy141jna8mkns3-mysql-5.1.54 > /nix/store/lhb68hrv6hcris5bbr7y894c9g8fj558-libxext-1.3.1 > /nix/store/shamfhyg9hcac63y3bll9p50ixxid8vb-glibc-2.18 > /nix/store/vmajpkk5ih03g0wik16693fkc638if8k-mesa-8.0.5 > /nix/store/z70fv39wa8yrvvqq9zfidsh86z72p4gr-qt-4.8.5 > > ldd on the offending binary shows no dependency on anything icu related, > and installing icu4c in the user profile does not have any effect. > > If I add $HOME/.guix-profile/lib to LD_LIBRARY_PATH, the problem disappears. > I wonder if some dlopen magic is involved. Do you see a solution from > this description? libicu4c is a dependency of Qt, right? If so, I would make sure that it’s NEEDed by libqt.so, and that it’s in its RUNPATH. To do that, run: objdump -x libqt.so | grep -E '(NEED|PATH)' If it’s not NEEDed, then -licu4c must be added on the link command for libqt.so. If it’s not in the RUNPATH, then -Wl,-rpath=/path/to/icu4c/lib must be added to the libqt.so ld flags. HTH, Ludo’.