summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/_emerge/PackageVirtualDbapi.py7
-rw-r--r--pym/_emerge/depgraph.py5
2 files changed, 11 insertions, 1 deletions
diff --git a/pym/_emerge/PackageVirtualDbapi.py b/pym/_emerge/PackageVirtualDbapi.py
index adf269116..e557f0489 100644
--- a/pym/_emerge/PackageVirtualDbapi.py
+++ b/pym/_emerge/PackageVirtualDbapi.py
@@ -2,6 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
# $Id$
+import sys
import portage
class PackageVirtualDbapi(portage.dbapi):
@@ -37,6 +38,12 @@ class PackageVirtualDbapi(portage.dbapi):
obj._cpv_map = self._cpv_map.copy()
return obj
+ def __bool__(self):
+ return bool(self._cpv_map)
+
+ if sys.hexversion < 0x3000000:
+ __nonzero__ = __bool__
+
def __iter__(self):
return iter(self._cpv_map.values())
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index e7407893f..d2f101bd6 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -270,7 +270,10 @@ class depgraph(object):
"--buildpkgonly" not in self._frozen_config.myopts
fake_vartree = self._frozen_config.trees[myroot]["vartree"]
- fake_vartree.sync()
+ if not fake_vartree.dbapi:
+ # This needs to be called for the first depgraph, but not for
+ # backtracking depgraphs that share the same frozen_config.
+ fake_vartree.sync()
if preload_installed_pkgs:
vardb = fake_vartree.dbapi