[Rpm-maint] [RFC/PATCH] comparisons without release
james at fedoraproject.org
Mon Nov 29 19:11:56 UTC 2010
On Mon, 2010-11-29 at 19:26 +0100, Michael Schroeder wrote:
> On Mon, Nov 29, 2010 at 01:10:25PM -0500, James Antill wrote:
> > I'm not sure what you mean by explain ... I assume you know why it's
> > doing what it's doing, so I guess you are saying "explain why we would
> > want it to do that"?
> > To which I'd say, why would we want it to match on:
> > Provides: foo > 1.2
> > Conflicts: foo = 1.2-1
> Oh, I do *not* want that to match (and my patch doesn't make it
Ok, so after your patch the following is still true:
Provides: foo > 1.2 Requires: foo = 1.2-1 -> no match.
Provides: foo >= 1.2 Requires: foo = 1.2-1 -> match.
Provides: foo >= 1.2-1 Requires: foo = 1.2-1 -> match.
Provides: foo > 1.2-0 Requires: foo = 1.2-1 -> match.
> I'm arguing that rpm's current behavior is confusing
> and inconsistent:
> Provides: foo >= 1.2-2 Requires: foo = 1.2 -> match
> Provides: foo > 1.2-1 Requires: foo = 1.2 -> no match
I'm not going to argue rpm isn't confusing or inconsistent :)
I'm just not sure we can fix all of those confusions and
inconsistencies (at least not _quickly_).
> "> 1.2-1" provides more than ">= 1.2-2", so why doesn't it match?
Because it doesn't?
For the same reason '1................' == '1.' ?:)
Because missing release comparisons have more edge cases than a big
case with lots of edges ?:).
> Uh, you're confusing me. "Provides: foo > 1.2, Requires foo = 1.2"
> does not match, both with and without the patch. But the patch
> makes "foo > 1.2-1" match "foo = 1.2".
Right, but before your patch those two things did the same thing.
> So you probably need to
> remove the yum workaround and rely on rpm doing the right thing.
Maybe, I know Panu had talked about having rangeCompare() just call
labelCompare() in "new" versions of yum and then just fixing
labelCompare() for any weird cases that break ... but I can't just
change all the released versions of yum tomorrow. So I'm more than a
little worried about doing this change.
More information about the Rpm-maint