On 07/15/16 09:37, Walter Schwarzenfeld wrote: > It is a bug the statement is wrong. > The error message disappiear if you add to LIB_DEPENDS > libiconv.so:converters/libiconv. > > Btw. > it says > Error: /usr/local/GNUstep/Local/Library/Libraries/libNGStreams.so.4.9.57 > is linked to /usr/local/lib/libssl.so.38 from security/libressl but it > is not declared as a dependency > Warning: you need USES=ssl > Error: /usr/local/GNUstep/Local/Library/Libraries/libNGStreams.so.4.9.57 > is linked to /usr/local/lib/libcrypto.so.37 from security/libressl but > it is not declared as a dependency > Warning: you need USES=ssl > > > if I add ssl to USES > it states > you may not need USES+=ssl. > > I am not happy with the "new" stage-qa messages.
I agree that this is annoying, and I wish there was some way to tell stage-qa that the library dependencies are in fact OK. The problem here is the heuristic used to determine whether there are any missing library dependencies. This simply uses readelf(1) to find out what's required by the dynamic loader for all of the binaries included in the port. If it finds that an application 'foo' requires a shared library libbar it will tell you 'you need USES+=bar' Much of the time this is correct, and a handy sanity check. However, what seems to happen fairly often is that foo only has a direct dependency on libbaz and libbaz is what links against libbar. foo doesn't know anything about functions and objects provided by libbar or use any of them itself, except through the interface provided by libbaz, so foo's dependency on libbar is entirely indirect. In this situation I can't see why the port foo should list an explicit dependency on libbar; the one it inherits through libbaz seems to me to express the linkage between foo and libbar in an entirely satisfactory way. You should only get the 'you may not need USES+=foo' message when you've added the dependency in the ports Makefile, but none of the resulting binaries link against libfoo. I don't see how you are getting the results you describe there. Cheers, Matthew
signature.asc
Description: OpenPGP digital signature