James Bowes wrote:
This one (with tests) also won't apply. Do you mind resolving the
conflicts?
Taking the time to do things right pays off...
Patches against current head are attached.
Florian
>From ebe15d09f886f88df35033f0442ddf1db6a766d7 Mon Sep 17 00:00:00 2001
From: Florian Festi <[EMAIL PROTECTED]>
Date: Mon, 12 Nov 2007 17:48:21 +0100
Subject: [PATCH] Do arch checks for versioned obsoletes, too
Reduce duplicated code in doObsoletes
---
rpmUtils/updates.py | 29 +++++------------------------
1 files changed, 5 insertions(+), 24 deletions(-)
diff --git a/rpmUtils/updates.py b/rpmUtils/updates.py
index 861037f..94d8aa1 100644
--- a/rpmUtils/updates.py
+++ b/rpmUtils/updates.py
@@ -207,9 +207,11 @@ class Updates:
for pkgtup in self.rawobsoletes.keys():
(name, arch, epoch, ver, rel) = pkgtup
for (obs_n, flag, (obs_e, obs_v, obs_r)) in self.rawobsoletes[(pkgtup)]:
- if flag in [None, 0]: # unversioned obsolete
- if self.installdict.has_key((obs_n, None)):
- for (rpm_a, rpm_e, rpm_v, rpm_r) in self.installdict[(obs_n, None)]:
+ if self.installdict.has_key((obs_n, None)):
+ for (rpm_a, rpm_e, rpm_v, rpm_r) in self.installdict[(obs_n, None)]:
+ if flag in [None, 0] or \
+ rpmUtils.miscutils.rangeCheck((obs_n, flag, (obs_e, obs_v, obs_r)),
+ (obs_n, rpm_a, rpm_e, rpm_v, rpm_r)):
# make sure the obsoleting pkg is not already installed
willInstall = 1
if self.installdict.has_key((name, None)):
@@ -225,27 +227,6 @@ class Updates:
if not obsdict.has_key(pkgtup):
obsdict[pkgtup] = []
obsdict[pkgtup].append((obs_n, rpm_a, rpm_e, rpm_v, rpm_r))
-
- else: # versioned obsolete
- if self.installdict.has_key((obs_n, None)):
- for (rpm_a, rpm_e, rpm_v, rpm_r) in self.installdict[(obs_n, None)]:
- if rpmUtils.miscutils.rangeCheck((obs_n, flag, (obs_e, \
- obs_v, obs_r)), (obs_n,\
- rpm_a, rpm_e, rpm_v, rpm_r)):
- # make sure the obsoleting pkg is not already installed
- willInstall = 1
- if self.installdict.has_key((name, None)):
- for (ins_a, ins_e, ins_v, ins_r) in self.installdict[(name, None)]:
- pkgver = (epoch, ver, rel)
- installedver = (ins_e, ins_v, ins_r)
- if self.returnNewest((pkgver, installedver)) == installedver:
- willInstall = 0
- break
- if willInstall:
- if not obsdict.has_key(pkgtup):
- obsdict[pkgtup] = []
- obsdict[pkgtup].append((obs_n, rpm_a, rpm_e, rpm_v, rpm_r))
-
self.obsoletes = obsdict
self.makeObsoletedDict()
--
1.5.3.3
>From 28d7657f2faa5f7d7735e8803ff1d406dd53226c Mon Sep 17 00:00:00 2001
From: Florian Festi <[EMAIL PROTECTED]>
Date: Wed, 14 Nov 2007 11:08:04 +0100
Subject: [PATCH] Work around unreliable result of .update()
---
yum/depsolve.py | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 55f7130..665fbdd 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -501,9 +501,10 @@ class Depsolve(object):
# find the best one
# try updating the already install pkgs
+ length = len(self.tsInfo)
for pkg in provSack.returnNewestByName():
- txmbrs = self.update(name=pkg.name, epoch=pkg.epoch, version=pkg.version, rel=pkg.rel)
- if txmbrs:
+ self.update(name=pkg.name, epoch=pkg.epoch, version=pkg.version, rel=pkg.rel)
+ if len(self.tsInfo) != length:
checkdeps = True
return checkdeps, missingdep
--
1.5.3.3
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel