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

From: Peter Mikkelsen <[email-masked]>
Date: Sun, 17 Sep 2017 16:01:59 +0200

2017-09-17 15:19 GMT+02:00 Ludovic Courtès <[email-masked]>:
> 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’.

I just tried building nautilus 3.26.0 and without the shrinking done,
the nautilus binary has the following rpath:

/gnu/store/xw2zvqd6q2gf2pj9y3xvgk4y2fnk5nna-nautilus-3.26.0/lib:$ORIGIN/../libnautilus-extension:/gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib:/gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib:/gnu/store/12zbd0c57gb79gyfx8xwqiv6pyj3i0q6-glib-2.52.2/lib:/gnu/store/b8lcaqx0rkfnd3xbvqy5lr879fyk5x3q-gtk+-3.22.15/lib:/gnu/store/ssgjajkyc4az3akaham2azyq7gs9cl37-pango-1.40.6/lib:/gnu/store/rcs3yji9vi2lmm22lmxk54jnhch2jry9-atk-2.24.0/lib:/gnu/store/1fzljsi7ksngzq2g66lcvwjadfxnplkh-cairo-1.14.8/lib:/gnu/store/w7rxc4g47k2i6f8zrxnlsvajm5vz4r68-gdk-pixbuf+svg-2.36.6/lib:/gnu/store/q0aya45mp1y1hk8i2wx4jgr0y81j8pi3-gnome-autoar-0.2.2/lib:/gnu/store/13980g3067dcx7hw6m766qlhagj1vfck-libarchive-3.3.1/lib:/gnu/store/kwzs8k97qy7avxxldnzavlii9zphh3d6-libxml2-2.9.4/lib:/gnu/store/h4vf97f7fxjzqwhds2xccmk4ahr1009q-gnome-desktop-3.24.2/lib:/gnu/store/np05q8mf1y9y4bk5y4ssj99m0dss2b1q-libx11-1.6.5/lib:/gnu/store/mw7hxaz7k5amabk8g2gr5akyrvvm1pmf-tracker-1.12.3/lib:/gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.4.0/../../..

And with shrinking this:

/gnu/store/c0jkvchpxs3qfkai8cgz2d65xzhlhwb6-nautilus-3.26.0/lib:$ORIGIN/../libnautilus-extension:/gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib:/gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib:/gnu/store/12zbd0c57gb79gyfx8xwqiv6pyj3i0q6-glib-2.52.2/lib:/gnu/store/b8lcaqx0rkfnd3xbvqy5lr879fyk5x3q-gtk+-3.22.15/lib:/gnu/store/ssgjajkyc4az3akaham2azyq7gs9cl37-pango-1.40.6/lib:/gnu/store/rcs3yji9vi2lmm22lmxk54jnhch2jry9-atk-2.24.0/lib:/gnu/store/1fzljsi7ksngzq2g66lcvwjadfxnplkh-cairo-1.14.8/lib:/gnu/store/w7rxc4g47k2i6f8zrxnlsvajm5vz4r68-gdk-pixbuf+svg-2.36.6/lib:/gnu/store/q0aya45mp1y1hk8i2wx4jgr0y81j8pi3-gnome-autoar-0.2.2/lib:/gnu/store/h4vf97f7fxjzqwhds2xccmk4ahr1009q-gnome-desktop-3.24.2/lib:/gnu/store/np05q8mf1y9y4bk5y4ssj99m0dss2b1q-libx11-1.6.5/lib:/gnu/store/mw7hxaz7k5amabk8g2gr5akyrvvm1pmf-tracker-1.12.3/lib

This means that the following directories are unneeded but still in
the RUNPATH for some reason:

/gnu/store/13980g3067dcx7hw6m766qlhagj1vfck-libarchive-3.3.1/lib:/gnu/store/kwzs8k97qy7avxxldnzavlii9zphh3d6-libxml2-2.9.4/lib

:)

Peter