From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Qt Date: Sat, 12 Oct 2013 21:38:08 +0200 Message-ID: <87k3hib7q7.fsf@gnu.org> References: <20131008190520.GA31264@debian> <87mwmjxym7.fsf@gnu.org> <20131010125952.GA32470@debian.bordeaux.inria.fr> <874n8pe0i2.fsf@gnu.org> <20131010200038.GA16170@debian> <20131012130804.GA4092@debian> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51891) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VV55p-0001nA-Eu for guix-devel@gnu.org; Sat, 12 Oct 2013 15:43:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VV55j-0006fH-1C for guix-devel@gnu.org; Sat, 12 Oct 2013 15:43:17 -0400 Received: from hera.aquilenet.fr ([141.255.128.1]:37708) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VV55i-0006fA-Ls for guix-devel@gnu.org; Sat, 12 Oct 2013 15:43:10 -0400 In-Reply-To: <20131012130804.GA4092@debian> (Andreas Enge's message of "Sat, 12 Oct 2013 15:08:04 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Andreas Enge Cc: guix-devel@gnu.org Andreas Enge 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=E2=80=99s enough? > Two "hello world" programs I found in a tutorial compile. Neat. > The gui program complains about a missing icui18n library. Strace shows t= he > following: [...] > open("/etc/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) =3D -1 ENOENT (No such f= ile or directory) What=E2=80=99s this?! Would be good to know where it comes from. Normally= our glibc doesn=E2=80=99t look for ld.so.cache (see =E2=80=98glibc-no-ld-so-cac= he.patch=E2=80=99.) [...] > icu4c was present at the time of compilation, but is not listed as a refe= rence: > > $$ ./pre-inst-env guix gc --references /nix/store/z70fv39wa8yrvvqq9zfidsh= 86z72p4gr-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 disappea= rs. > 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=E2=80=99s NEEDed by libqt.so, and that it= =E2=80=99s in its RUNPATH. To do that, run: objdump -x libqt.so | grep -E '(NEED|PATH)' If it=E2=80=99s not NEEDed, then -licu4c must be added on the link command = for libqt.so. If it=E2=80=99s not in the RUNPATH, then -Wl,-rpath=3D/path/to/icu4c/lib mu= st be added to the libqt.so ld flags. HTH, Ludo=E2=80=99.