On Fri, 4 Jun 2010 09:20:48 +0000 "b. f." <bf1...@googlemail.com> wrote:
> Alexander Leidinger wrote: > >Quoting Doug Barton <dougb at FreeBSD.org> (from Thu, 03 Jun 2010 > 11:29:01 -0700): > > > >> On 06/03/10 05:39, Matthias Andree wrote: > >>> Am 03.06.2010 13:30, schrieb Andrey Chernov: > >>> > >>>> security/libksba > >>>> security/libgcrypt > >>>> (they use libgpg-error) > >> > >> So libgpg-error needs to be bumped, but why do things that don't > >> like directly with gettext need it? One of the major benefits of > >> shared libraries is to avoid pointless recompiling. > > > >The reason (for those interested) is explained here: > http://www.leidinger.net/blog/2010/06/03/direct-indirect-and-explicit-dependencies-in-progamsports/ > > Just for the record, the useful > ports/Tools/scripts/explicit_lib_depends.sh, described and used in > your link above, may _not_ find libraries that: > > -- are needed, but were intended to be statically linked; Correct. If you are of a way how to detect it after the fact, feel free to share the info here. > -- are needed, but loaded via dlopen(3) and friends (this is noted in > a comment in ports/Tools/scripts/neededlibs.sh ); Correct. The goal for the scripts are to find entries for LIB_DEPENDS. A static lib is a BUILD_DEPEND, not a LIB_DEPEND, and something which is opened via dlopen() is typically not a LIB_DEPEND but a RUN_DEPEND (it is the other way around and the stuff which is dlopen()en depends upon what is dlopen()ing it). Additionally if a something is using dlopen(), it should give sensible error messages when it does not work, so instead of a cryptic error message which not everyone understands, there should be (yes, I know, this is an idealistic POV) an error message even your mother can understand. I have to tell that those scripts are far from finished, the heuristic of files to look at needs to be improved, and the translation into ports-framework variable (like GNOME and X11 ones) needs to be written. I didn't continue with this back when I was committing those scripts, as the 3rd party software was far away from a state which would made it really useful (indirect dependencies show up in runs of the scripts, but they are not really welcome in our ports). > -- are needed, and dynamically linked in the usual way, but are not > referenced in any ELF DT_NEEDED tags. These tags are optional, not > mandatory, in the System V ABI, and they can be missing for a number > of reasons. They may not be present in a pre-compiled binary. Or, > for example. because some ports make shared libraries by converting > static archives into shared libraries with the linker, the tags can > sometimes be missing for those libraries. Also, some ports use a > version of gcc4* wired to devel/binutils, but then directly invoke > some portion of the older base system binutils. I've seen this lead > to missing tags in the past. Apart from the fact that I did not know that, do you know which ports in the FreeBSD ports collection show this problem? Is there another way to find this info in then? Bye, Alexander. _______________________________________________ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"