summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/Binpkg.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/_emerge/Binpkg.py')
-rw-r--r--pym/_emerge/Binpkg.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/pym/_emerge/Binpkg.py b/pym/_emerge/Binpkg.py
index 4dee0925f..66b7bd424 100644
--- a/pym/_emerge/Binpkg.py
+++ b/pym/_emerge/Binpkg.py
@@ -3,6 +3,7 @@
from _emerge.EbuildPhase import EbuildPhase
from _emerge.BinpkgFetcher import BinpkgFetcher
+from _emerge.BinpkgEnvExtractor import BinpkgEnvExtractor
from _emerge.BinpkgExtractorAsync import BinpkgExtractorAsync
from _emerge.CompositeTask import CompositeTask
from _emerge.BinpkgVerifier import BinpkgVerifier
@@ -16,7 +17,6 @@ from portage import _unicode_encode
import codecs
import logging
from portage.output import colorize
-from portage.package.ebuild.doebuild import _prepare_env_file
class Binpkg(CompositeTask):
@@ -255,10 +255,13 @@ class Binpkg(CompositeTask):
finally:
f.close()
- rval = _prepare_env_file(self.settings)
- if rval != os.EX_OK:
- self._current_phase = None
- self.returncode = rval
+ env_extractor = BinpkgEnvExtractor(background=self.background,
+ scheduler=self.scheduler, settings=self.settings)
+
+ self._start_task(env_extractor, self._env_extractor_exit)
+
+ def _env_extractor_exit(self, env_extractor):
+ if self._default_exit(env_extractor) != os.EX_OK:
self._unlock_builddir()
self.wait()
return
@@ -267,12 +270,11 @@ class Binpkg(CompositeTask):
# such as remove binary packages after they're installed.
settings = self.settings
settings.setcpv(self.pkg)
- settings["PORTAGE_BINPKG_FILE"] = pkg_path
+ settings["PORTAGE_BINPKG_FILE"] = self._pkg_path
settings.backup_changes("PORTAGE_BINPKG_FILE")
- phase = "setup"
setup_phase = EbuildPhase(background=self.background,
- phase=phase, scheduler=self.scheduler,
+ phase="setup", scheduler=self.scheduler,
settings=settings)
setup_phase.addExitListener(self._setup_exit)