On Tue, Nov 26, 2019 at 11:21:41AM +0100, Lars Pedersen wrote:
> Thanks for the review.
> 
> On Mon, 25 Nov 2019 at 07:53, Michael Olbrich <[email protected]> 
> wrote:
> >
> > > -     @$(call install_lib, strongswan, 0, 0, 0644, libcharon)
> > > -     @$(call install_lib, strongswan, 0, 0, 0644, libstrongswan)
> > > +     @$(call install_tree, strongswan, 0, 0, -, /usr/bin)
> > > +     @$(call install_glob, strongswan, 0, 0, -, /usr/lib,,*.la)
> > > +     @$(call install_tree, strongswan, 0, 0, -, /usr/libexec)
> > > +     @$(call install_tree, strongswan, 0, 0, -, /usr/sbin)
> >
> > No, we deliberately install the files explicitly. For shared libraries,
> > this ensures that only the necessary links are installed.
> > For all other files, this makes sure that we notice issues with the build
> > configuration.
> >
> > Also, my check scripts noticed, that /usr/libexec/ipsec/xfrmi uses
> > libstrongswan-kernel-netlink.so but is missing the correct rpath for this.
> > It's in /usr/lib/plugins so not found by default.
> >
> > This can happen in ptxdist because we do tricks with the rpath to avoid
> > paths to the build tree. Pulseaudio has the same problem. Take a look how
> > it's handled there.
> >
> 
> So basically you want the install_glob of libraries to be reverted
> back into installing them all in a for loop using install_lib like
> before?

exactly.

> I'm unsure about the rpath for xfrmi. The paths looks similar using
> readelf if I compare it with the starter executable in the same dir.
> What does your script output? The xfrmi is a new executable in
> strongswan for policy based routing.
> 
> $readelf -a xfrmi
> ...
> Dynamic section at offset 0x1e38 contains 32 entries:
>   Tag        Type                         Name/Value
>  0x00000001 (NEEDED)                     Shared library:
> [libstrongswan-kernel-netlink.so]

This library is in a non-standard directory, so it won't be found by ld.so.
If you try to execute this xfrmi on the target you should get a 'file not
found' error or something like that.

To fix this, an rpath for /usr/lib/plugins (the directory containing this
lib) must be added.

Pulseaudio has the same problem (with two dirs instead of one).

Michael

>  0x00000001 (NEEDED)                     Shared library: [libstrongswan.so.0]
>  0x00000001 (NEEDED)                     Shared library: [libcharon.so.0]
>  0x00000001 (NEEDED)                     Shared library: [libc.so.6]
>  0x00000001 (NEEDED)                     Shared library: [ld-linux.so.3]
> ...
> 
> /Lars Pedersen
> 
> _______________________________________________
> ptxdist mailing list
> [email protected]
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
[email protected]

Reply via email to