Skip site navigation (1)Skip section navigation (2)
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>