cvs commit: ports/sysutils/pkg_install-devel Makefile distinfo

Oliver Eikemeier eikemeier at fillmore-labs.com
Fri Apr 16 11:18:08 PDT 2004


Jacques A. Vidrine wrote:
> On Fri, Apr 16, 2004 at 12:38:57PM -0500, Jacques A. Vidrine wrote:
> 
>>On Fri, Apr 16, 2004 at 07:17:16PM +0200, Oliver Eikemeier wrote:
>>
>>>Jacques A. Vidrine wrote:
>>>
>>>>On Thu, Apr 15, 2004 at 06:24:47PM -0700, Oliver Eikemeier wrote:
>>>>
>>>>>Introduce '*' as the lowest possible version number, so that
>>>>>  >=2.* <3.*
>>>>>matches all 2.X versions, even alpha.
>>>>
>>>>How is this different from  ` >=2.a <3.a ' ?
>>>
>>>It matches 2.a.b, does not match 3.a.b2
>>
>>*scratches head*   I still don't see a difference.
>>
>>   2.a <= 2.a.b < 3.a
>>   2.a <= 3.a   < 3.a.b2
> 
> *blink* Oh, wait, I got that wrong.  2.a > 2.a.b and 3.a >
> 3.a.b2.  Except that version names such as `2.a.b' and `3.a.b2' are
> unacceptable.

See biology/fasta3 for an example. They may be unacceptable for portlint,
but pkg_install has to be as tolerant as possible, and needs a consistent
definition of version numbers.

>>>and is more similar to >=2.X than >= 2.a is. 
>>
>>How so?  Maybe you mean to say that 2.a > 2.* ?
>>I find that rather confusing.

I meant that 2.* is somewhat similar to 'all 2.X versions'. Of course
you have to be careful to get things right, but at least it is a proper
definition of 'the lowest possible version number' instead of hoping
that it would be 2.a. There are already lot of entries in VuXML which
erroneously assume it would be 2.0.

> I think I'm with you now.  `*' is not a version number, but a glob?

Nope, * is a version number that can not be assigned to a port. It is
guaranteed to be the lowest possible one, and there is a similarity between
  portname-2.*
and
  portname>=2.*
the first being a glob (matching all 2.X versions, but not 02.1), the second
a relational comparison (matching all 2.X versions, but 3.2 too) . It may be
confusing, but in most cases it is easy to do the right thing, and things
like 2.# or 2.% aren't really better.

>>Btw, at least for pkg_install-devel we have 2.pl0 < 2.a.
> 
> How did that become broken?  What does 2.pl0 even mean?  Do you have
> an example?  I'm certain that is against our naming conventions.

Nope, refer to the FreeBSD Porter's Handbook, 5.2.4 Package Naming Conventions:
 <http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-naming.html#PORTING-PKGNAME>

Item 4. mentions `pl' as a version number, so it is special (like NetBSD's nb),
and it makes no sense to allow it only as a standalone component.

> I'm concerned because I have a function that converts a package
> version into a 128 bit integer, such that if the package version A is
> greater than package version B, then f(A) > f(B).  If the versioning
> rules are being changed, I wanna know (and I'd also like to know why).

I have a function that converts a version number into a floating point
number < 1.0, such that A > B iff f(A) > f(B). I doubt that 128 bits are
sufficient in every case, but I may be wrong. Do you have a reference to
a definition of the versioning rules besides PR 56961?

-Oliver


More information about the cvs-ports mailing list