summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools')
-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
index 9bbd952..ba6405a 100644
--- a/smart/backends/rpm/pm.py
+++ b/smart/backends/rpm/pm.py
-@@ -241,15 +241,48 @@ class RPMPackageManager(PackageManager):
+@@ -241,15 +241,56 @@ class RPMPackageManager(PackageManager):
cb = RPMCallback(prog, upgradednames)
cb.grabOutput(True)
probs = None
@@ -36,7 +36,12 @@ index 9bbd952..ba6405a 100644
finally:
del getTS.ts
cb.grabOutput(False)
-+ if (probs is not None) and sysconf.has("attempt-install", soft=True):
++ # If there are file conflicts, and we're attempting installation,
++ # remove conflicting packages from the transaction and retry
++ # If there are other problems returned by ts.run(), that are not
++ # linked with packages/files conflicts (the returned list is empty),
++ # then don't retry
++ if (probs is not None) and (len(probs) != 0) and sysconf.has("attempt-install", soft=True):
+ def remove_conflict(pkgNEVR):
+ for key in changeset.keys():
+ if pkgNEVR == str(key):
@@ -68,7 +73,10 @@ index 9bbd952..ba6405a 100644
+
prog.setDone()
- if probs is not None:
-+ if (probs is not None) and (not retry):
++ # If there are other problems than packages/files conflicts
++ # returned by ts.run(), the returned list is empty, and if
++ # we're only attempting installation, then don't raise any error
++ if (probs is not None) and ((len(probs) != 0) or not sysconf.has("attempt-install", soft=True)) and (not retry):
raise Error, "\n".join([x[0] for x in probs])
prog.stop()
+ if retry and len(changeset):