dirname = os.path.dirname(x)
success |= install(basename, dirname, options)
+ global skipped_directories
+ for x in skipped_directories:
+ eqawarn(["QA Notice: dohtml on directory " + \
+ "'%s' without recursion option" % x])
+
if success:
retcode = 0
else:
retcode = 1
- global skipped_directories
- for x in skipped_directories:
- eqawarn(["QA Notice: dohtml on directory " + \
- "'%s' without recursion option" % x])
sys.exit(retcode)
intended to be set in the \fBmake.conf\fR(5)
\fBEMERGE_DEFAULT_OPTS\fR variable.
.TP
+.BR \-\-backtrack=COUNT
+Specifies an integer number of times to backtrack if
+dependency calculation fails due to a conflict or an
+unsatisfied dependency (default: \'5\').
+.TP
.BR "\-\-binpkg\-respect\-use < y | n >"
Tells emerge to ignore binary packages if their use flags
don't match the current configuration. (default: \'n\')
Ebuilds that have a missing or empty HOMEPAGE variable
.TP
.B IUSE.invalid
-This build has a variable in IUSE that is not in the use.desc or use.local.desc file
+This ebuild has a variable in IUSE that is not in the use.desc or its metadata.xml file
.TP
.B IUSE.undefined
This ebuild does not define IUSE (style guideline says to define IUSE even when empty)
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
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" + \
"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"
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":
parents = []
for s in installed_sets:
# skip sets that the user requested to unmerge, and skip world
- # unless we're unmerging a package set (as the package would be
- # removed from "world" later on)
- if s in root_config.setconfig.active or \
- (s == "selected" and not root_config.setconfig.active):
+ # user-selected set, since the package will be removed from
+ # that set later on.
+ if s in root_config.setconfig.active or s == "selected":
continue
if s not in sets:
if e.errno == portage.exception.PermissionDenied.errno:
raise portage.exception.PermissionDenied(mypath)
del e
- if EmptyOnError:
- return [], []
- return None, None
+ return [], []
except portage.exception.PortageException:
- if EmptyOnError:
- return [], []
- return None, None
+ return [], []
# Python retuns mtime in seconds, so if it was changed in the last few seconds, it could be invalid
if mtime != cached_mtime or time.time() - mtime < 4:
if mypath in dircache:
@type ignorelist: List
@param followSymlinks: Follow Symlink'd files and directories
@type followSymlinks: Boolean
- @param EmptyOnError: Return [] if an error occurs.
+ @param EmptyOnError: Return [] if an error occurs (deprecated, always True)
@type EmptyOnError: Boolean
@param dirsonly: Only return directories.
@type dirsonly: Boolean
catdir = base + _os.sep + cat
t = time.time()
t = (t, t)
- for x in (catdir, base):
- os.utime(x, t)
+ try:
+ for x in (catdir, base):
+ os.utime(x, t)
+ except OSError:
+ os.makedirs(catdir)
def cpv_exists(self, mykey):
"Tells us whether an actual ebuild exists on disk (no masking)"
return
shutil.rmtree(self.dbdir)
+ # If empty, remove parent category directory.
+ try:
+ os.rmdir(os.path.dirname(self.dbdir))
+ except OSError:
+ pass
self.vartree.dbapi._remove(self)
def clearcontents(self):