PORTVERSION and portlint

Oliver Eikemeier eik at FreeBSD.org
Thu Nov 27 08:15:56 PST 2003


Sergey Matveychuk wrote:

> What's wrong with '+' sign in PORTVERSION?
> www/apache13+modssl, russian/apache* and dns/bind9-dlz ports use it for 
> separating port version and module version. I think it's a good practice.
> 
> But portlint marks it as FATAL. May be make a sense this simple patch to 
> apply?
> 
> ---
> Sem.
> -------------- next part --------------
> --- portlint.orig	Thu Nov 27 01:22:30 2003
> +++ portlint	Thu Nov 27 01:23:04 2003
> @@ -1535,7 +1535,7 @@
>  		&perror("FATAL: $file: PORTVERSION must be specified");
>  	}
>  	if ($portversion =~ /^pl[0-9]*$/
> -	|| $portversion =~ /^[0-9]*[A-Za-z]?[0-9]*(\.[0-9]*[A-Za-z]?[0-9]*)*$/) {
> +	|| $portversion =~ /^[0-9]*[A-Za-z]?[0-9]*(\.[0-9]*[A-Za-z]?[0-9+]*)*$/) {
>  		print "OK: PORTVERSION \"$portversion\" looks fine.\n" if ($verbose);
>  	} elsif ($portversion =~ /^[^\-]*\$[{\(].+[\)}][^\-]*$/) {
>  		&perror("WARN: $file: using variable, \"$portversion\", as version ".

The problem with `+' in PORTVERSIONs is that they suggest a semantic that the
current port tools don't conform with. I did some test for PR 56961:

  <http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/56961>

and realized that 1.0.1+2003.11.27 < 1.0+2003.10.03, try

  pkg_version -t 1.0.1+2003.11.27 1.0+2003.10.03


See also the FreeBSD Porter's Handbook, 4.2.4 Package Naming Conventions:

  The idea is to make it easier to sort ports by looking at the version string.
  In mparticular, make sure version number components are always delimited by a
  period [...]

  <http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-naming.html#PORTING-PKGNAME>


It is no problem to extend PR 56961 so that the plus sign is a real separator
between version numbers, but that change is incompatible with current port
tools (although nobody will notice, I guess). Currently you can only use `.' as
a separator in version numbers and be more or less sure what you'll get. I would
keep that error, or at least issue a warning. The ports should use

PORTVERSION=	${VERSION_ONE}.${VERSION_TWO}

until the port tools can handle multi-version numbers.

-Oliver



More information about the freebsd-ports mailing list