From: Zac Medico Date: Wed, 26 Nov 2008 19:12:04 +0000 (-0000) Subject: Make Scheduler.merge() bail out early if PORTAGE_TMPDIR is not properly set. X-Git-Tag: v2.2_rc17~27 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=7f254678851c439d085207fb6e7ddb7d5801de4a;p=portage.git Make Scheduler.merge() bail out early if PORTAGE_TMPDIR is not properly set. svn path=/main/trunk/; revision=12103 --- 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"