Date: Fri, 17 Feb 2012 11:54:41 +0100 From: Alexander Leidinger <Alexander@Leidinger.net> To: Alex Dupre <ale@FreeBSD.org> Cc: ashish@FreeBSD.org, freebsd-ports@FreeBSD.org, Andriy Gapon <avg@FreeBSD.org> Subject: Re: recent portrevision bump for libvpx Message-ID: <20120217115441.Horde.mJZLe5jmRSRPPjHxZRgRf2k@webmail.leidinger.net> In-Reply-To: <4F3E2CED.90601@FreeBSD.org> References: <4F3E289D.9050605@FreeBSD.org> <4F3E2CED.90601@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Alex Dupre <ale@FreeBSD.org> (from Fri, 17 Feb 2012 11:33:17 +0100): > Andriy Gapon wrote: >> Needless to say that all these ports got their port revisions bumped. >> Was there a good reason for that? I don't know. >> >> I just know that now I need to needlessly reinstall/rebuild about a hundred >> ports, many of which are not quite light-weight. > > It's time to experiment seriously with ${EXPLICIT_PACKAGE_DEPENDS} > and libtool patch to not link to indirect dependencies > (ports/104877). Ideally a port should include in LIB_DEPENDS all the > direct dependencies. When I made the EXPLICIT_PACKAGE_DEPENDS patch, I noticed that there is not only libtool at fault (reaction of the libtool developers was IIRC: it's not trivial to fix known problems for the cross-building case (for libtool-1.x?)), but also pkg-config and similar things (dependencies of dependencies where specified, e.g. your port links against liba, the pkg-config for liba also told to link against libb which liba depends upon but for which the ABI was not exposed to your port by liba, but this caused a record of libb to show up in binaries of your port). I do not know if the situation improved in _all_ ports, but some look more sane. You can also have a look at /usr/ports/Tools/scripts/explicit_lib_depends.sh, thats a script which analyzes the recorded dependencies in binaries for a given port (this may be different from what is recorded in LIB_DEPENDS, and it can be different from it even if LIB_DEPENDS is 100% correct). So if a lib which is listed in the output changes the soversion, you _have_ to recompile this port, no matter if the binary has his hands in the ABI of the changed lib or not (that's the port->liba->libb case from the paragraph above). Bye, Alexander. -- There must be at least 500,000,000 rats in the United States; of course, I never heard the story before. http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120217115441.Horde.mJZLe5jmRSRPPjHxZRgRf2k>