summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/__init__.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-08-19 22:05:00 +0000
committerZac Medico <zmedico@gentoo.org>2008-08-19 22:05:00 +0000
commit9bb99ddda8070ee38d052e995c2e595b068a4fa8 (patch)
treeabb350183c70f2344aeac272aba08096409273c9 /pym/_emerge/__init__.py
parent2dcba9b087b58c364e1c097e24cc4686fd1654c6 (diff)
downloadportage-9bb99ddda8070ee38d052e995c2e595b068a4fa8.tar.gz
portage-9bb99ddda8070ee38d052e995c2e595b068a4fa8.tar.bz2
portage-9bb99ddda8070ee38d052e995c2e595b068a4fa8.zip
When in background mode, redirect "adjusting permissions" messages for
features directories like CCACHE_DIR and DISTCC_DIR. Thanks to Arfrever for reporting. svn path=/main/trunk/; revision=11439
Diffstat (limited to 'pym/_emerge/__init__.py')
-rw-r--r--pym/_emerge/__init__.py41
1 files changed, 23 insertions, 18 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 2bb1d4428..d9d762860 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -8870,6 +8870,21 @@ class Scheduler(PollScheduler):
for k in self._binpkg_opts.__slots__:
setattr(self._binpkg_opts, k, "--" + k.replace("_", "-") in myopts)
+ self.curval = 0
+ self._logger = self._emerge_log_class()
+ self._task_queues = self._task_queues_class()
+ for k in self._task_queues.allowed_keys:
+ setattr(self._task_queues, k,
+ SequentialTaskQueue())
+ self._status_display = JobStatusDisplay()
+ self._max_load = myopts.get("--load-average")
+ max_jobs = myopts.get("--jobs")
+ if max_jobs is None:
+ max_jobs = 1
+ self._set_max_jobs(max_jobs)
+ background = self._background_mode()
+ self._background = background
+
# The root where the currently running
# portage instance is installed.
self._running_root = trees["/"]["root_config"]
@@ -8880,12 +8895,18 @@ class Scheduler(PollScheduler):
self._config_pool = {}
self._blocker_db = {}
for root in trees:
+ root_config = trees[root]["root_config"]
+ if background:
+ root_config.settings.unlock()
+ root_config.settings["PORTAGE_BACKGROUND"] = "1"
+ root_config.settings.backup_changes("PORTAGE_BACKGROUND")
+ root_config.settings.lock()
+
self.pkgsettings[root] = portage.config(
clone=trees[root]["vartree"].settings)
self._config_pool[root] = []
self._blocker_db[root] = BlockerDB(trees[root]["root_config"])
- self.curval = 0
- self._logger = self._emerge_log_class()
+
fetch_iface = self._fetch_iface_class(log_file=self._fetch_log,
schedule=self._schedule_fetch)
self._sched_iface = self._iface_class(
@@ -8899,17 +8920,10 @@ class Scheduler(PollScheduler):
scheduleYield=self._schedule_yield,
unregister=self._unregister)
- self._task_queues = self._task_queues_class()
- for k in self._task_queues.allowed_keys:
- setattr(self._task_queues, k,
- SequentialTaskQueue())
-
self._prefetchers = weakref.WeakValueDictionary()
self._pkg_queue = []
self._completed_tasks = set()
- self._status_display = JobStatusDisplay()
-
self._failed_pkgs = []
self._failed_pkgs_all = []
self._failed_pkgs_die_msgs = []
@@ -8921,15 +8935,6 @@ class Scheduler(PollScheduler):
curval=0, maxval=merge_count)
self._status_display.maxval = self._pkg_count.maxval
- max_jobs = myopts.get("--jobs")
- if max_jobs is None:
- max_jobs = 1
- self._set_max_jobs(max_jobs)
- background = self._background_mode()
- self._background = background
-
- self._max_load = myopts.get("--load-average")
-
# The load average takes some time to respond when new
# jobs are added, so we need to limit the rate of adding
# new jobs.