Re: How to package a Python module with shared libraries ?
Le lundi 26 avril 2010 à 11:04 +0100, Floris Bruynooghe a écrit :
> On Mon, Apr 26, 2010 at 09:44:52AM +0200, Josselin Mouette wrote:
> > Unfortunately that won’t work, since the rpath used by dlopen() is the
> > one provided by the binary, not the one for the module being loaded.
>
> You are correct, I drew the wrong conclusions from some earlier
> experience but upon checking the dlopen manual I see my memory must
> have gotten confused over time.
You have a good excuse, since this behavior is completely
counter-intuitive.
> > A possible way would be to make a wrapper Python extension, that would
> > parse the module for its NEEDED components and load them manually using
> > the given rpath before loading the actual module.
> >
> > Which in turn will not be possible since there is no shared version of
> > libbfd - which would be required for doing this.
>
> Is it not possible to do it with just including elf.h and using the
> structures in there to find the relevant NEEDED and RPATH/RUNPATH tags
> in the dynamic section? It seems like a substantial amount of code
> would be required tough.
Yes, but it might be worth writing a generic Python extension to do
that, given that we already have several packages affected.
--
.''`. Josselin Mouette
: :' :
`. `' “A handshake with whitnesses is the same
`- as a signed contact.” -- Jörg Schilling
Reply to: