On Wed, Aug 19, 2020 at 01:16:17PM +0100, Daniel P. Berrangé wrote: > On Wed, Aug 19, 2020 at 02:10:53PM +0200, Pavel Hrdina wrote: > > On Wed, Aug 19, 2020 at 01:22:58PM +0200, Pavel Hrdina wrote: > > > On Wed, Aug 19, 2020 at 12:47:40PM +0200, Andrea Bolognani wrote: > > > > Right now we're unconditionally adding RPATH information to the > > > > installed binaries and libraries, but that's not always desired. > > > > > > > > Debian explicitly passes --disable-rpath to configure, and while > > > > I haven't been able to find the same option in the spec file for > > > > either Fedora or RHEL, by running > > > > > > > > $ readelf -d /usr/bin/virsh | grep PATH > > > > > > > > I can see that the information is not present, so I assume they > > > > also strip it somehow. > > > > > > > > Both Debian and Fedora have wiki pages encouraging packagers to > > > > avoid setting RPATH: > > > > > > > > https://wiki.debian.org/RpathIssue > > > > https://fedoraproject.org/wiki/RPath_Packaging_Draft > > > > > > > > Given the above, it looks like it's actually better to not go > > > > out of our way to include that information in the first place. > > > > > > I need to look into this because I remember adding the rpath there as > > > a result that something was not working correctly but now I don't > > > remember what was it. Originally I did not have it there. > > > > > > Pavel > > > > So I managed to remember what was the issue. If you run install libvirt > > into custom directory like this: > > > > meson build --prefix /my/custom/dir > > ninja -C build install > > > > and after that running: > > > > /my/custom/dir/bin/virsh > > > > will fail with: > > > > /lib64/libvirt.so.0: version `LIBVIRT_PRIVATE_6.7.0' not found (required by ./bin/bin/virsh) > > > > This is what autotools did by default as well and I did not know that > > there is an option --disable-rpath as it's not in output of > > `./configure --help`. > > > > If we don't care about the use case of installing libvirt into custom > > prefix and breaking it it should be OK to remove this from meson but my > > guess is that we should not do it. > > So it is only broken if you failed to set LD_LIBRARY_PATH. > > rpath is basically hardcoding the association between the virsh > binary and the library so that it doesn't need LD_LIBRARY_PATH. > > I'm ambivalent on whether that's important or not, though admittedly > it can avoid surprises for users not used to LD_LIBRARY_PATH type > issues. > > IIUC, meson sets rpath automatically for the binaries so you can > run from the non-installed build dir. When you run install, it > then strips the rpath for the build dir, optionally replacing it > with the "install_rpath" value. Agreed and since the fix is fairly simple I guess we can keep using RPATH to not surprise and break some users. Otherwise I would also say that these users should start using LD_LIBRARY_PATH. Pavel
Attachment:
signature.asc
Description: PGP signature