diff options
Diffstat (limited to 'pym/_emerge')
-rw-r--r-- | pym/_emerge/actions.py | 12 | ||||
-rw-r--r-- | pym/_emerge/clear_caches.py | 6 | ||||
-rw-r--r-- | pym/_emerge/main.py | 5 |
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() |