Date: Sat, 5 Jun 2010 23:31:28 +0200 From: Alexander Leidinger <Alexander@Leidinger.net> To: freebsd-ports@freebsd.org Cc: bf1783@gmail.com Subject: Re: devel/gettext further update Message-ID: <20100605233128.0000011e@unknown> In-Reply-To: <AANLkTimTZuJ8hw9UIBloDCVSiHt680nofsbQiTSs2lD8@mail.gmail.com> References: <AANLkTimTZuJ8hw9UIBloDCVSiHt680nofsbQiTSs2lD8@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 4 Jun 2010 09:20:48 +0000 "b. f." <bf1783@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100605233128.0000011e>