David Fang wrote:
>>> The package update I'm working on:
>>> http://sourceforge.net/tracker/index.php?func=detail&aid=1926383&group_id=17203&atid=414256
>>>
>>> The error message:
>>> Error: package contains a dylib with no corresponding Shlibs entry
>>> (/sw/lib/magic/tcl/exttosim.dylib -> exttosim.dylib 0.0.0)
>>>         If this is a private library, add
>>> '!/sw/lib/magic/tcl/exttosim.dylib' to the Shlibs field.
>> [more of these for other .dylib]
>>> ... but I've done exactly that in Shlibs (no whitespace).
>>> [puzzled look]
>> I wonder if the validation-message is the problem. Notice that it
>> first says that the target is "exttosim.dylib 0.0.0", but then later
>> says that the Shlibs entry is "/sw/lib/magic/tcl/exttosim.dylib".
>> Could you verify that the first line of the output of 'otool -L' on
>> that file is indeed just "exttosim.dylib (compatibility version
>> 0.0.0)", i.e., the simple filename rather than the full path? The
>> Shlibs field is required to contain the install_name (what the file
>> calls itself according to otool -L).
> 
> % pwd
> /sw/src/fink.build/root-magic74-7.4.59-1/sw/lib/magic/tcl
> % otool -L exttosim.dylib
> exttosim.dylib:
>          exttosim.dylib (compatibility version 0.0.0, current version 
> 0.0.0)
>          /usr/lib/libSystem.B.dylib (...)
>          /usr/lib/libgcc_s.1.dylib (...)
> 
>> OTOH, that looks a lot like an upstream bug in the package too
>> (similar to what dbreiser saw a week or so ago), where a library has a
>> "simple filename" install_name instead of the full path to it.
> 
> So it looks like we only get a simple filename, no full path.
> What corrective action should be taken?
> I only need this to work as a private shared library for this package.

Hi David,

A basename shared library like this will only be found by dyld if it is
in a directory that is listed in DYLD_FALLBACK_LIBRARY_PATH (~/lib
/usr/local/lib /lib /usr/lib if the var is unset), so if your package
actually works, it would imply that nothing is statically linked to this
shared library. Is that the case, does it appear in the otool -L output
of any other objects in your package?

If not, it is probably loaded with dlopen(), and there should be a way
to make the validator be quiet about it, maybe just '!exttosim.dylib' in
the Shlibs field?


Peter
-- 
Peter O'Gorman
http://pogma.com

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel

Reply via email to