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