summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-29 23:49:32 -0700
committerZac Medico <zmedico@gentoo.org>2010-08-29 23:49:32 -0700
commit445f0d70d3624bc108b08da6d370bf194fcfc4ac (patch)
treee38668a619323ff90386bb5b9f622430550570db /pym/_emerge
parent2f351c8a47472560c5f1bd063efc8a97ed56636f (diff)
downloadportage-445f0d70d3624bc108b08da6d370bf194fcfc4ac.tar.gz
portage-445f0d70d3624bc108b08da6d370bf194fcfc4ac.tar.bz2
portage-445f0d70d3624bc108b08da6d370bf194fcfc4ac.zip
Always check if vardbapi._linkmap and vardbapi._plib_registry are
None before trying to use them. This will be useful in the upcoming 2.1.9 branch which will not have preserve-libs support but will still have the code in private and disabled form.
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/actions.py12
-rw-r--r--pym/_emerge/clear_caches.py6
-rw-r--r--pym/_emerge/main.py5
3 files changed, 20 insertions, 3 deletions
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
index a2cff5957..99b2a469e 100644
--- a/pym/_emerge/actions.py
+++ b/pym/_emerge/actions.py
@@ -447,7 +447,13 @@ def action_build(settings, trees, mtimedb,
portage.writemsg_stdout(colorize("WARN", "WARNING:")
+ " AUTOCLEAN is disabled. This can cause serious"
+ " problems due to overlapping packages.\n")
- trees[settings["ROOT"]]["vartree"].dbapi._plib_registry.pruneNonExisting()
+ plib_registry = \
+ trees[settings["ROOT"]]["vartree"].dbapi._plib_registry
+ if plib_registry is None:
+ # preserve-libs is entirely disabled
+ pass
+ else:
+ plib_registry.pruneNonExisting()
return retval
@@ -875,7 +881,9 @@ def calc_depclean(settings, trees, ldpath_mtimes,
cleanlist = create_cleanlist()
clean_set = set(cleanlist)
- if cleanlist and myopts.get('--depclean-lib-check') != 'n':
+ if cleanlist and \
+ real_vardb._linkmap is not None and \
+ myopts.get('--depclean-lib-check') != 'n':
# Check if any of these package are the sole providers of libraries
# with consumers that have not been selected for removal. If so, these
diff --git a/pym/_emerge/clear_caches.py b/pym/_emerge/clear_caches.py
index a0e945255..7b7c5eced 100644
--- a/pym/_emerge/clear_caches.py
+++ b/pym/_emerge/clear_caches.py
@@ -10,6 +10,10 @@ def clear_caches(trees):
d["porttree"].dbapi._aux_cache.clear()
d["bintree"].dbapi._aux_cache.clear()
d["bintree"].dbapi._clear_cache()
- d["vartree"].dbapi._linkmap._clear_cache()
+ if d["vartree"].dbapi._linkmap is None:
+ # preserve-libs is entirely disabled
+ pass
+ else:
+ d["vartree"].dbapi._linkmap._clear_cache()
dircache.clear()
gc.collect()
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index 4b77f3b1f..3bd72226f 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -211,6 +211,11 @@ def chk_updated_info_files(root, infodirs, prev_mtimes, retval):
def display_preserved_libs(vardbapi, myopts):
MAX_DISPLAY = 3
+ if vardbapi._linkmap is None or \
+ vardbapi._plib_registry is None:
+ # preserve-libs is entirely disabled
+ return
+
# Ensure the registry is consistent with existing files.
vardbapi._plib_registry.pruneNonExisting()