Date: Thu, 07 Aug 2014 17:08:08 +0100 From: Vsevolod Stakhov <vsevolod@FreeBSD.org> To: Tijl Coosemans <tijl@FreeBSD.org> Cc: svn-ports-head@freebsd.org, svn-ports-all@freebsd.org, ports-committers@freebsd.org Subject: Re: svn commit: r364287 - head/ports-mgmt/pkg-devel Message-ID: <53E3A468.5050603@FreeBSD.org> In-Reply-To: <20140807172841.58633e63@kalimero.tijl.coosemans.org> References: <53e39939.55bc.4ca5432c@svn.freebsd.org> <20140807172841.58633e63@kalimero.tijl.coosemans.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 07/08/14 16:28, Tijl Coosemans wrote: > On Thu, 7 Aug 2014 15:20:25 +0000 (UTC) Vsevolod Stakhov wrote: >> Author: vsevolod >> Date: Thu Aug 7 15:20:25 2014 >> New Revision: 364287 >> URL: http://svnweb.freebsd.org/changeset/ports/364287 >> QAT: https://qat.redports.org/buildarchive/r364287/ >> >> Log: >> Update to 1.4.0.pre-alpha6 >> >> Changes: >> - Use plain .so for all shared libraries requires/provides > > Does this mean without version number? What is the benefit of that? > There is a short answer: ports do not support requires and provides due to pkg_* tools support and pkg had to implement its own heuristic to detect shared libraries dependencies. Unfortunately, there are several problems with that heuristic: 1) private libraries are treated as public 2) there is no clear logic to match provides and requires 3) architecture/abi is not checked 4) there is no multiple ABI versions support Due to mainly [2] there are a lot of broken deps, for example, libxml2 provides libxml2.so.2.12, whilst all dependant ports requires libxml2.so.2. Consequently, some weird packages, such as wine-i386-devel are installed, since it pretends to provide libxml2.so.2 and due to [3] and [1] wine is treated as a provide candidate. Therefore, I have decided to strip all but libname.so. In this case provides list is more permissive but pkg still process direct dependencies and prefer not to install extra packages. Hence, after this change pkg will be able not to install bogus packages due to missed shared libraries requires. Of course, that doesn't save us from false positives but fixing of [1] - [4] issues is hard and it would likely require full rebuild and re-installation of all packages. -- Vsevolod Stakhov
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53E3A468.5050603>