diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-11-26 19:12:04 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-11-26 19:12:04 +0000 |
commit | 7f254678851c439d085207fb6e7ddb7d5801de4a (patch) | |
tree | fd53cb670701a13a60b813a92ef2dfc85ce25f23 | |
parent | 885f7ff5c088138359ac58ff9fad901ebabaede5 (diff) | |
download | portage-7f254678851c439d085207fb6e7ddb7d5801de4a.tar.gz portage-7f254678851c439d085207fb6e7ddb7d5801de4a.tar.bz2 portage-7f254678851c439d085207fb6e7ddb7d5801de4a.zip |
Make Scheduler.merge() bail out early if PORTAGE_TMPDIR is not properly set.
svn path=/main/trunk/; revision=12103
-rw-r--r-- | pym/_emerge/__init__.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 2d7c05eb8..e82269dd4 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -9697,6 +9697,22 @@ class Scheduler(PollScheduler): for root in self.trees: root_config = self.trees[root]["root_config"] + + # Even for --pretend --fetch mode, PORTAGE_TMPDIR is required + # since it might spawn pkg_nofetch which requires PORTAGE_BUILDDIR + # for ensuring sane $PWD (bug #239560) and storing elog messages. + tmpdir = root_config.settings.get("PORTAGE_TMPDIR", "") + if not tmpdir or not os.path.isdir(tmpdir): + msg = "The directory specified in your " + \ + "PORTAGE_TMPDIR variable, '%s', " % tmpdir + \ + "does not exist. Please create this " + \ + "directory or correct your PORTAGE_TMPDIR setting." + msg = textwrap.wrap(msg, 70) + out = portage.output.EOutput() + for l in msg: + out.eerror(l) + return 1 + if self._background: root_config.settings.unlock() root_config.settings["PORTAGE_BACKGROUND"] = "1" |