Hey guys,
I noticed that there's a problem in packages.py/hdrlist.py with package
ordering. There seemed to be an API change between RPM 4.2.1 and 4.2.3 which
returns the ORDER tag h[1000003] as an empty list instead of a "None" value.
At any rate, if you're trying to install on a system which doesn't have ordered
packages, this bit of code in packages.py always fails:
depcheck = DependencyChecker(id.grpset)
if not id.grpset.hdrlist.preordered():
log ("WARNING: not all packages in hdlist had order tag")
# have to call ts.check before ts.order() to set up the alIndex
ts.check(depcheck.callback)
ts.order()
else:
ts.check(depcheck.callback)
which results in a system having the RPMs installed in alphabetical order. This
is not good, as you can imagine. Anyway, the problem is sitting in the
preordered() method call in hdrlist.py.
def preordered(self):
preordered = 1
for h in self.pkgs.values():
if h.isSelected() and h[1000003] == None:
preordered = 0
return preordered
should be:
def preordered(self):
preordered = 1
for h in self.pkgs.values():
if h.isSelected() and not h[1000003]:
preordered = 0
return preordered
simple change, but caused me a great deal of frustration. grr. If you
want a diff, let me know.
--Patrick.