svn commit: r364287 - head/ports-mgmt/pkg-devel

Vsevolod Stakhov vsevolod at FreeBSD.org
Thu Aug 7 17:26:55 UTC 2014


On 07/08/14 18:13, Matthias Andree wrote:
> Am 07.08.2014 um 18:44 schrieb Vsevolod Stakhov:
> 
>> On 07/08/14 17:40, Matthias Andree wrote:
>>> Am 07.08.2014 um 18:08 schrieb Vsevolod Stakhov:
>>>
> [skipped]
> Please reconsider/revert that change, and instead snatch the embedded
> ELF SONAME from all libraries and use that for shared object (= dynamic
> library) requires/provides.

Ok, I'll spend some more of my time to explain the problem.

1) We have the field called manifestdigest, that is intended to be
unique per package.
2) We have packages with wrong provides (they could be generated by 1.2
or some of 1.3 versions)
3) Manifestdigest is not changed by shlib changes (there is a request
but it requires to rebuild all digests from the scratch).
4) So for now, we have installed package with a wrong provide and a
remote package with the same manifestdigest.
5) Remote package is not even considered by pkg as packages with the
same digests are considered equal.
6) Pkg installs something from the remote repo that has the provide
needed (e.g. wine-devel-i386).

Hence, I *won't* revert this change until we fix other problems with
shared libraries and digests calculation.

I understand that it might be unclear, but currently shared library
dependencies are used merely to fix ports that lack explicit
dependencies. For example, if your port has something like

LIB_DEPENDS= libblah.so.2:${PORTSDIR}/some/port

then you would have *explicit* dependency and you won't be affected by
my change. It merely prevents pkg from installing unnecessary shit for now.

-- 
Vsevolod Stakhov


More information about the svn-ports-head mailing list