summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python-smartpm/smart-attempt.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/python/python-smartpm/smart-attempt.patch')
-rw-r--r--meta/recipes-devtools/python/python-smartpm/smart-attempt.patch14
1 files changed, 11 insertions, 3 deletions
diff --git a/meta/recipes-devtools/python/python-smartpm/smart-attempt.patch b/meta/recipes-devtools/python/python-smartpm/smart-attempt.patch
index 5aedc88266..e1182041bc 100644
--- a/meta/recipes-devtools/python/python-smartpm/smart-attempt.patch
+++ b/meta/recipes-devtools/python/python-smartpm/smart-attempt.patch
@@ -26,7 +26,7 @@ diff --git a/smart/backends/rpm/pm.py b/smart/backends/rpm/pm.py
26index 9bbd952..ba6405a 100644 26index 9bbd952..ba6405a 100644
27--- a/smart/backends/rpm/pm.py 27--- a/smart/backends/rpm/pm.py
28+++ b/smart/backends/rpm/pm.py 28+++ b/smart/backends/rpm/pm.py
29@@ -241,15 +241,48 @@ class RPMPackageManager(PackageManager): 29@@ -241,15 +241,56 @@ class RPMPackageManager(PackageManager):
30 cb = RPMCallback(prog, upgradednames) 30 cb = RPMCallback(prog, upgradednames)
31 cb.grabOutput(True) 31 cb.grabOutput(True)
32 probs = None 32 probs = None
@@ -36,7 +36,12 @@ index 9bbd952..ba6405a 100644
36 finally: 36 finally:
37 del getTS.ts 37 del getTS.ts
38 cb.grabOutput(False) 38 cb.grabOutput(False)
39+ if (probs is not None) and sysconf.has("attempt-install", soft=True): 39+ # If there are file conflicts, and we're attempting installation,
40+ # remove conflicting packages from the transaction and retry
41+ # If there are other problems returned by ts.run(), that are not
42+ # linked with packages/files conflicts (the returned list is empty),
43+ # then don't retry
44+ if (probs is not None) and (len(probs) != 0) and sysconf.has("attempt-install", soft=True):
40+ def remove_conflict(pkgNEVR): 45+ def remove_conflict(pkgNEVR):
41+ for key in changeset.keys(): 46+ for key in changeset.keys():
42+ if pkgNEVR == str(key): 47+ if pkgNEVR == str(key):
@@ -68,7 +73,10 @@ index 9bbd952..ba6405a 100644
68+ 73+
69 prog.setDone() 74 prog.setDone()
70- if probs is not None: 75- if probs is not None:
71+ if (probs is not None) and (not retry): 76+ # If there are other problems than packages/files conflicts
77+ # returned by ts.run(), the returned list is empty, and if
78+ # we're only attempting installation, then don't raise any error
79+ if (probs is not None) and ((len(probs) != 0) or not sysconf.has("attempt-install", soft=True)) and (not retry):
72 raise Error, "\n".join([x[0] for x in probs]) 80 raise Error, "\n".join([x[0] for x in probs])
73 prog.stop() 81 prog.stop()
74+ if retry and len(changeset): 82+ if retry and len(changeset):