tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: patch for REQUIRES



On Mon, 19 Mar 2012 06:47:26 +0900, Filip Hajny <filip%joyent.com@localhost> 
wrote:

On 18. 3. 2012, at 21:46, Joerg Sonnenberger wrote:

On Sun, Mar 18, 2012 at 08:57:53PM +0100, Filip Hajny wrote:
On 18. 3. 2012, at 19:06, Joerg Sonnenberger wrote:

On Sun, Mar 18, 2012 at 01:55:44PM +0100, Filip Hajny wrote:
Without the patch, for instance 'expat' has /usr/lib/libexpat.so.1 (or
whatever else 'ldd' resolved under the DESTDIR environment) recorded
in its REQUIRES, even though the binary (xmlwf) is in fact linked
against the package's own libexpat.so.1.

BTW, you should look at getting the readelf based shared library check
to work for Solaris, since it is more precise and reliable.

Thanks, but that's not a good option IMO. readelf is not a guaranteed
part of the SunOS platform. And bringing in devel/binutils opens
a different can of worms.

Solaris has no tools to extract the necessary data directly in the base
installation? It doesn't have to be readelf. I.e. what is needed is
DT_RPATH and DT_NEEDED.

There is elfdump, but I don't see how it helps in this case. The only information you can 
get from NEEDED are the base names of the libraries, and RPATH reports (typically) the 
single ${PREFIX}/lib path, so you can't get a full list of "what's required from 
where", let alone identify which libs are to be ignored for the REQUIRES meta, for 
they are in fact part of the PROVIDES meta.

Or am I missing something?

pkgsrc/pkgtools/bootstrap-extras/files/fakeldd-Haiku may help you.

Haiku does not have `ldd', then use `objdump' to read NEEDED and RPATH, and
print as `ldd' doing (LIBRARY_PATH environment variable has default library 
search path).

--
OBATA Akio / obache%NetBSD.org@localhost


Home | Main Index | Thread Index | Old Index