On Thu, 2007-02-15 at 03:34 -0500, seth vidal wrote:
> On Thu, 2007-02-15 at 01:13 -0500, seth vidal wrote:
> > On Wed, 2007-02-14 at 17:33 -0500, seth vidal wrote:
> > > in _checkRemove() in the new code it seems like the provides of a
> > > package being removed are only ever being checked by provname not by
> > > prov_ver.
> > >
> > > So it seems like if we remove foo3 which provides foobin = 3.0
> > >
> > > and we have foo2 installed, which provides foobin = 2.0
> > >
> > > and a package requires foobin > 2.0
> > >
> > > Then we'll never see the requirement.
> > >
> > > I'm going to check this when I get home. It's not a hard fix - but I
> > > wanted to see if anyone else was seeing this.
> >
> > yah, okay. I was right about this, it does leave an unresolved dep. I'll
> > have patch in a few minutes then I'll go through install and update and
> > see if there are any other cases.
> >
>
> okay, I'm not going to have a quick fix for it. This goes fairly deep
> into our inPrcoRange method of each package object. Essentially, since
> it is not a full overlapping-ranges check it isn't giving the right
> answers for every case of the depcheck. It's right enough for some of
> the ranges but not for some odd cases. I'm trying to map out all the
> cases where the ranges overlap and it's making my head twist a bit. I
> was actually just looking to see if rpm's dsCompare has been brought out
> into the python module, that would save a lot of the same code, I think.
>
okay. i think this is the pseudo-code for the range overlap. I'd
appreciate it if someone could check this.
self is the prco from the package
reqtuple is the requested prco that we're comparing
f is the flag from the prco in the package
reqf is the flag from the reqtuple
# does not match unless
# if self is newer than reqtuple
# if the reqf is GT, GE:
# true
# if the reqf is EQ:
# if f is EQ, LE, GE:
# true
# if the reqf is LE, LT:
# false
# if self is equal to reqtuple
# if the reqf is GT:
# if f is GT, GE:
# true
# if the reqf is GE:
# if f is GT,GE,EQ,LE:
# true
# if the reqf is EQ:
# if f is EQ,GE,LE:
# true
# if the reqf is LE:
# if f is EQ,LE,LT,GE:
# true
# if the reqf is LT:
# if f is LE, LT:
# true
# if self is less than reqtuple
# if the reqf is GT:
# if f is GT, GE:
# true
# if the reqf is GE:
# if f is GT,GE:
# true
# if the reqf is EQ:
# if f is GT, GE:
# true
# if the reqf is LE, LT:
# true
-sv
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel