Subject: Re: [bug#28444] [PATCH 3/3] build-system: Add 'meson-build-system'.

From: [email-masked] (Ludovic Courtès)
Date: Sun, 17 Sep 2017 15:19:50 +0200

Hi Peter,

Peter Mikkelsen <[email-masked]> skribis:

> and without the shrinking done, the runpath looks like this:
>
> /gnu/store/8y6wd2rfi6p3gpxcz3p1gyzsbxwyc9ha-uuid-cpp-0.6.5.1/lib:$ORIGIN/:/gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib:/gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib:/gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.4.0/../../..
>
> and with, it looks like this:
>
> /gnu/store/nqdf6kr5cqfqh9z5yprar1yyfqwprj4v-uuid-cpp-0.6.5.1/lib:$ORIGIN/:/gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib:/gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib
>
> So the last part of the old runpath is removed, and looking at the
> output of ldd, it seems like it was never needed:
>
> linux-vdso.so.1 (0x00007ffd6cbe2000)
> libuuid.so => /gnu/store/8y6wd2rfi6p3gpxcz3p1gyzsbxwyc9ha-uuid-cpp-0.6.5.1/lib/libuuid.so
> (0x00007feae61bc000)
> libstdc++.so.6 =>
> /gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib/libstdc++.so.6
> (0x00007feae5e42000)
> libgcc_s.so.1 =>
> /gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib/libgcc_s.so.1
> (0x00007feae5c2b000)
> libc.so.6 => /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libc.so.6
> (0x00007feae588c000)
> libm.so.6 => /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libm.so.6
> (0x00007feae557a000)
> /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/ld-linux-x86-64.so.2
> (0x00007feae63c4000)
>
> Now, I am not sure it is worth shrinking, but I just think it is a
> little bit strange having unneeded directories in the runpath :)

The last element of the RUNPATH above comes from GCC or so.  I can’t
hurt and you’ll probably find it on all the binaries we build; it’s not
related to Meson, I think.

So if that’s the only reason for ‘patchelf --shrink-runpath’, I would
argue it’s not a valid one.  :-)

> While trying to build a gnome package, I noticed that the runpath was
> huuuge before shrinking, but I don't have that package definition
> anymore :/

Unless you find a more compelling example ;-) as you build packages with
‘meson-build-system’, I’d suggest we eventually revisit this issue and
get rid of ‘fix-runpath’.  That would remove the dependency on PatchELF,
which is sometimes a bit fragile.

How does that sound?

Thanks,
Ludo’.