port renaming

Vsevolod Stakhov vsevolod at highsecure.ru
Thu Jul 16 17:47:34 UTC 2015

On 16/07/2015 18:32, Kimmo Paasiala wrote:
> On Thu, Jul 16, 2015 at 8:23 PM, Vsevolod Stakhov
> <vsevolod at highsecure.ru> wrote:
>> On 16/07/2015 18:11, Henry Hu wrote:
>>> On Thu, Jul 16, 2015 at 7:04 AM, Vsevolod Stakhov
>>> <vsevolod at highsecure.ru <mailto:vsevolod at highsecure.ru>> wrote:
>>>     On Thu, Jul 16, 2015 at 2:56 PM, Anton Yuzhaninov <citrin at citrin.ru
>>>     <mailto:citrin at citrin.ru>> wrote:
>>>     >
>>>     > Port maintainers and port commiters, when PORTNAME/PKGNAMEPREFIX/PKGNAMESUFFIX is changed, please note this change in commit log and for important ports also in /usr/ports/UPDATING. Any rename affect at leas some of FreeBSD users and
>>>     >
>>>     > Depends in our local ports was broken and I spent some time to figure out why.
>>>     > It turns out, that PORTNAME for graphics/gd was changed in r324437.
>>>     > No singe word about this rename was added to commit message or UPDATING...
>>>     From the perspective of pkg things are even worse, as pkg can no
>>>     longer detect that the renamed package is a replacement for some
>>>     existing one. It breaks many stuff and solver could hardly help to
>>>     resolve this in a pain-less matter. We need something like 'Replace'
>>>     or 'Obsolete' field badly. 'UPDATING' does NOT help to solve this task
>>>     at all.
>>> We already have the 'MOVED' file. Does it help?
>> It doesn't because:
>> 1) it is human readable and not very convenient for parsing;
>> 2) we must keep this information on per-package basis and not globally;
>> 3) many items are missing in MOVED (and I've recently missed one when
>> changing a port, for example)
>> 4) MOVED contains too many unnecessary information that is useful merely
>> because we are using archaic version control system (namely, subversion)
>> So the answer is no: we need a special field in manifests to make
>> renaming transparent for pkg and, in turn, for users.
>> --
>> Vsevolod Stakhov
> So basically you need a data structure in the pkg metadata that can
> track all the previous origins for the port (not just the last because
> ports might have multiple renames). That's quite a tall order I might
> say.

Why? We have already arrays in a package's metadata. For instance,
licenses or dependencies. And we can obviously avoid that by placing a
corresponding field 'Obsoleted by' in the *old* package. Then we'd need
merely the last rename.

Vsevolod Stakhov

More information about the freebsd-ports mailing list