summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-10-31 23:32:13 +0000
committerZac Medico <zmedico@gentoo.org>2009-10-31 23:32:13 +0000
commitc2d6742b707375e7bbc927651f9cdec3f2818210 (patch)
tree072674d1bcfd833d8131a4bf080b794c44878aac /pym
parent3b0c5f8132330d7ebdd468718e8b7aebd27c1524 (diff)
downloadportage-c2d6742b707375e7bbc927651f9cdec3f2818210.tar.gz
portage-c2d6742b707375e7bbc927651f9cdec3f2818210.tar.bz2
portage-c2d6742b707375e7bbc927651f9cdec3f2818210.zip
Add a --backtrack=COUNT option to control how many times backtracking is
allowed, and reduce the default from 30 to 5. svn path=/main/trunk/; revision=14763
Diffstat (limited to 'pym')
-rw-r--r--pym/_emerge/depgraph.py2
-rw-r--r--pym/_emerge/help.py7
-rw-r--r--pym/_emerge/main.py24
3 files changed, 32 insertions, 1 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 5c0aa4b64..7f74b309a 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -5329,7 +5329,7 @@ def backtrack_depgraph(settings, trees, myopts, myparams,
def _backtrack_depgraph(settings, trees, myopts, myparams,
myaction, myfiles, spinner):
- backtrack_max = 30
+ backtrack_max = myopts.get('backtrack', 5)
runtime_pkg_mask = None
allow_backtracking = True
backtracked = 0
diff --git a/pym/_emerge/help.py b/pym/_emerge/help.py
index 94dc17218..422442fb4 100644
--- a/pym/_emerge/help.py
+++ b/pym/_emerge/help.py
@@ -279,6 +279,13 @@ def help(myopts, havecolor=1):
for line in wrap(desc, desc_width):
print(desc_indent + line)
print()
+ print(" " + green("--backtrack") + " " + turquoise("COUNT"))
+ desc = "Specifies an integer number of times to backtrack if " + \
+ "dependency calculation fails due to a conflict or an " + \
+ "unsatisfied dependency (default: '5')."
+ for line in wrap(desc, desc_width):
+ print(desc_indent + line)
+ print()
print(" " + green("--binpkg-respect-use") + \
" < " + turquoise("y") + " | " + turquoise("n") + " >")
desc = "Tells emerge to ignore binary packages if their use flags" + \
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index 71872112e..8e69ad057 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -510,6 +510,15 @@ def parse_opts(tmpcmdline, silent=False):
"help":"temporarily override ACCEPT_PROPERTIES",
"action":"store"
},
+
+ "--backtrack": {
+
+ "help" : "Specifies how many times to backtrack if dependency " + \
+ "calculation fails ",
+
+ "action" : "store"
+ },
+
"--config-root": {
"help":"specify the location for portage configuration files",
"action":"store"
@@ -731,6 +740,21 @@ def parse_opts(tmpcmdline, silent=False):
if myoptions.selective == "True":
myoptions.selective = True
+ if myoptions.backtrack is not None:
+
+ try:
+ backtrack = int(myoptions.backtrack)
+ except (OverflowError, ValueError):
+ backtrack = -1
+
+ if backtrack < 0:
+ backtrack = None
+ if not silent:
+ writemsg("!!! Invalid --backtrack parameter: '%s'\n" % \
+ (myoptions.backtrack,), noiselevel=-1)
+
+ myoptions.backtrack = backtrack
+
if myoptions.deep is not None:
deep = None
if myoptions.deep == "True":