Re: git: 48437516330b - main - www/nghttp2: Remove unnecessary substitution

From: Mathieu Arnold <mat_at_freebsd.org>
Date: Thu, 22 Feb 2024 09:59:38 UTC
On Thu, Feb 22, 2024 at 12:32:44PM +0300, Max Brazhnikov wrote:
> On Thu, 22 Feb 2024 at 11:01, Nuno Teixeira <eduardo@freebsd.org> wrote:
> >
> > Hello,
> >
> > What's going on?
> >
> > -DISTVERSION=   1.59.0
> > +PORTVERSION=   1.59.0
> >
> > Should Porter's Handbook be fixed?
> 
> Or veteran committers should update their knowledge :)
> 
> Less jokingly, the problem with DISTVERSION/PORTVERSION is that the
> Porters's Handbook and ports framework are out of sync. Somebody has
> decided that DISTVERSION is higher than PORTVERSION (makes sense for
> me, if you want my opinion) and has commited update to the handbook.
> However, the framework has not been changed, it checks for PORTVERSION
> first, while DISTVERSION is derived from PORTVERSION.
> 
> If we want to switch to DISTVERSION and deprecate PORTVERSION, we
> should update the framework and docs and CHANGES and notify people
> before upcoming change and after. This applies to other changes in the
> ports framework.

That's fubar, we're not deprecating PORTVERSION, nor should we change
the way they work inside the framework. It's only a if/else, it does not
matter which way it goes.

The algorithm is simple :

1) Use DISTVERSION, and thus, PORTVERSION is derived from it so that the
   port version is correct wrt what pkg expects.
   For example, 1.2.0-beta1 -> 1.2.0.b1
2) If the software version is non standard, DISTVERSION's automatic
   derivation does something funky, and the software version is
   something pkg can understand correctly, then use PORTVERSION.
   For example, 1.34a that is after 1.34 (aka not an alpha), as is done
   for sysutils/tmux
3) If it still does not work, set PORTVERSION and DISTNAME.
   For example the software version of 9.8.7-P1 that is after 9.8.7, and
   thus should have a port version of 9.8.7P1. In that case set
   PORTVERSION so the version is untouched, and set DISTNAME with
   foo-9.8.7-P1 as was done with very old versions of dns/bind9, say:
   https://cgit.freebsd.org/ports/tree/dns/bind98/Makefile?h=9a1f79615562d0c5b74732c244790121c0c905b8

-- 
Mathieu Arnold