From c4703d79878e4e0eb8e2b36e49c0bdee835b847e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 24 Sep 2012 08:17:11 -0700 Subject: _global_updates: scan binarytree only if needed This will fix bug #436084. --- pym/portage/_global_updates.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pym/portage/_global_updates.py b/pym/portage/_global_updates.py index c0f3df0b6..9ae734b24 100644 --- a/pym/portage/_global_updates.py +++ b/pym/portage/_global_updates.py @@ -46,12 +46,6 @@ def _do_global_updates(trees, prev_mtimes, quiet=False, if_mtime_changed=True): portdb = trees[root]["porttree"].dbapi vardb = trees[root]["vartree"].dbapi bindb = trees[root]["bintree"].dbapi - if not os.access(bindb.bintree.pkgdir, os.W_OK): - bindb = None - else: - # Call binarytree.populate(), since we want to make sure it's - # only populated with local packages here (getbinpkgs=0). - bindb.bintree.populate() world_file = os.path.join(mysettings['EROOT'], WORLD_FILE) world_list = grabfile(world_file) @@ -120,6 +114,14 @@ def _do_global_updates(trees, prev_mtimes, quiet=False, if_mtime_changed=True): if myupd: retupd = True + if retupd: + if os.access(bindb.bintree.pkgdir, os.W_OK): + # Call binarytree.populate(), since we want to make sure it's + # only populated with local packages here (getbinpkgs=0). + bindb.bintree.populate() + else: + bindb = None + master_repo = portdb.getRepositoryName(portdb.porttree_root) if master_repo in repo_map: repo_map['DEFAULT'] = repo_map[master_repo] -- cgit v1.2.3-1-g7c22