From owner-svn-ports-head@FreeBSD.ORG Thu Aug 7 16:08:20 2014 Return-Path: Delivered-To: svn-ports-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E81232B3; Thu, 7 Aug 2014 16:08:20 +0000 (UTC) Received: from h.highsecure.ru (h.highsecure.ru [144.76.31.167]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A52C82167; Thu, 7 Aug 2014 16:08:20 +0000 (UTC) Received: from medway.cl.cam.ac.uk (medway.cl.cam.ac.uk [IPv6:2001:630:212:238:21c:c0ff:fe4b:2b85]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: vsevolod@highsecure.ru) by h.highsecure.ru (Postfix) with ESMTPSA id C685D300162; Thu, 7 Aug 2014 18:08:04 +0200 (CEST) Message-ID: <53E3A468.5050603@FreeBSD.org> Date: Thu, 07 Aug 2014 17:08:08 +0100 From: Vsevolod Stakhov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: Tijl Coosemans Subject: Re: svn commit: r364287 - head/ports-mgmt/pkg-devel References: <53e39939.55bc.4ca5432c@svn.freebsd.org> <20140807172841.58633e63@kalimero.tijl.coosemans.org> In-Reply-To: <20140807172841.58633e63@kalimero.tijl.coosemans.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: svn-ports-head@freebsd.org, svn-ports-all@freebsd.org, ports-committers@freebsd.org X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2014 16:08:21 -0000 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