Date: Thu, 19 Apr 2001 14:13:16 -0700 From: bmah@FreeBSD.org (Bruce A. Mah) To: "Akinori MUSHA" <knu@iDaemons.org> Cc: "Bruce A. Mah" <bmah@FreeBSD.org>, Kris Kennaway <kris@obsecurity.org>, "David O'Brien" <obrien@FreeBSD.org>, Chris Faulhaber <jedgar@fxp.org>, freebsd-ports@FreeBSD.org Subject: Re: cvs commit: ports/editors/vim6 Makefile distinfo pkg-plist Message-ID: <200104192113.f3JLDGj63092@bmah-freebsd-0.cisco.com> In-Reply-To: <864rvkd47m.wl@archon.local.idaemons.org> References: <200104111956.f3BJukl93003@freefall.freebsd.org> <20010419140501.A253@jive.44bsd.net> <8666g0d8ws.wl@archon.local.idaemons.org> <20010419122255.B29435@dragon.nuxi.com> <20010419123216.A53260@xor.obsecurity.org> <200104191955.f3JJtQV60074@bmah-freebsd-0.cisco.com> <864rvkd47m.wl@archon.local.idaemons.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
[moving to -ports]
If memory serves me right, "Akinori MUSHA" wrote:
> At Thu, 19 Apr 2001 12:55:26 -0700,
> Bruce A. Mah <bmah@FreeBSD.org> wrote:
> > I suspect we might need to tweak the comparison algorithm a bit. And
> > it's not entirely clear to me what it should be either, even though knu
> > and I just finished reworking it.
>
> D'oh, I've just found pkg_version's bug!! It thinks 1.0a is smaller
> than 1.0!
Hmmm...yes, that's wrong, even though "1.0a" isn't technically allowed.
(I wonder if the Porters Handbook might need some revision.)
> I am sorry I didn't look into and check your modification over my code
> carefully, but why did you modify the test?? Apparently the test I
> originally wrote had been modified incorrectly and that made
> pkg_version not conform to what the Handbook says.
Well, geez, it's not like I *tried* to break the bloody damn thing. :-(
There are some pretty strange corner cases, and, I know you're aware of
this, the syntax of software package version numbers is not well
defined. When you start mixing letters and digits, it's exceptionally
messy.
pkg_version doesn't handle the 6.0aa > 6.0z case, and it'd be pretty
hard to make it do this without making a bunch of assumptions about the
semantics of the characters in the version numbers. You and I differ
on that point, I believe.
[snip]
> Unfortunately, I couldn't find an easy hotfix against the stock
> CompareNumbers() routine, as it no longer takes account of various
> sequences and combinations of numbers and alphabets in a version
> component.
See patch attached.
> I'd suggest you put my code back and roll the flawless version for
> 4.3-RELEASE, then hack it your way carefully again later.
I'd rather we try my patch, thanks. No offense, but my meager Perl
skills at least have a chance of understanding the code the way I
wrote it.
Bruce.
? pkg_version.diff
Index: pkg_version.pl
===================================================================
RCS file: /home/ncvs/src/usr.sbin/pkg_install/version/pkg_version.pl,v
retrieving revision 1.17
diff -c -r1.17 pkg_version.pl
*** pkg_version.pl 2001/04/03 21:26:32 1.17
--- pkg_version.pl 2001/04/19 20:53:07
***************
*** 148,154 ****
else {
$c1 =~ s/\d+//;
$c2 =~ s/\d+//;
! return &CompareNumbers($c1, $c2);
}
}
}
--- 148,165 ----
else {
$c1 =~ s/\d+//;
$c2 =~ s/\d+//;
! if ($c1 eq $c2) {
! return 0;
! }
! elsif ($c1 eq "") {
! return -1;
! }
! elsif ($c2 eq "") {
! return 1;
! }
! else {
! return &CompareNumbers($c1, $c2);
! }
}
}
}
Index: test-pkg_version.sh
===================================================================
RCS file: /home/ncvs/src/usr.sbin/pkg_install/version/test-pkg_version.sh,v
retrieving revision 1.1
diff -c -r1.1 test-pkg_version.sh
*** test-pkg_version.sh 2001/04/03 21:26:32 1.1
--- test-pkg_version.sh 2001/04/19 20:53:07
***************
*** 61,68 ****
test-pv 2.3p10 ">" 2.3p9 number/letter
test-pv 1.6.0 ">" 1.6.0.p3 number/letter
test-pv 1.0.b ">" 1.0.a3 number/letter
! test-pv 1.0a "<" 1.0 number/letter
! test-pv 5.0a "<" 5.0.b number/letter
test-pv 1.5_1 ">" 1.5 portrevision
test-pv 1.5_2 ">" 1.5_1 portrevision
--- 61,69 ----
test-pv 2.3p10 ">" 2.3p9 number/letter
test-pv 1.6.0 ">" 1.6.0.p3 number/letter
test-pv 1.0.b ">" 1.0.a3 number/letter
! test-pv 1.0a ">" 1.0 number/letter
! test-pv 1.0a "<" 1.0b number/letter
! test-pv 5.0a ">" 5.0.b number/letter
test-pv 1.5_1 ">" 1.5 portrevision
test-pv 1.5_2 ">" 1.5_1 portrevision
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (FreeBSD)
Comment: Exmh version 2.2 06/23/2000
iD8DBQE631Ts2MoxcVugUsMRAhH0AKC2z2TofP30CvZJb51Uj696PhMytgCeL1gx
MLvgcHwIV8d/ByYhDDz5ZX0=
=Lain
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200104192113.f3JLDGj63092>
