def _start(self): pkg = self.pkg scheduler = self.scheduler settings = self.settings cleanup = 0 portage.prepare_build_dirs(pkg.root, settings, cleanup) portdb = pkg.root_config.trees['porttree'].dbapi ebuild_path = settings['EBUILD'] mytree = os.path.dirname(os.path.dirname( os.path.dirname(ebuild_path))) alist = portdb.getFetchMap(pkg.cpv, useflags=pkg.use.enabled, mytree=mytree) aalist = portdb.getFetchMap(pkg.cpv, mytree=mytree) settings.configdict["pkg"]["A"] = " ".join(alist) settings.configdict["pkg"]["AA"] = " ".join(aalist) _prepare_fake_distdir(settings, alist) if eapi_exports_replace_vars(settings['EAPI']): vardb = pkg.root_config.trees['vartree'].dbapi settings["REPLACING_VERSIONS"] = " ".join( set(portage.versions.cpv_getversion(match) \ for match in vardb.match(pkg.slot_atom) + \ vardb.match('='+pkg.cpv))) setup_phase = EbuildPhase(background=self.background, phase="setup", scheduler=scheduler, settings=settings) setup_phase.addExitListener(self._setup_exit) self._current_task = setup_phase self.scheduler.scheduleSetup(setup_phase)
def _start(self): pkg = self.pkg scheduler = self.scheduler settings = self.settings cleanup = 0 portage.prepare_build_dirs(pkg.root, settings, cleanup) portdb = pkg.root_config.trees['porttree'].dbapi ebuild_path = settings['EBUILD'] mytree = os.path.dirname(os.path.dirname(os.path.dirname(ebuild_path))) alist = portdb.getFetchMap(pkg.cpv, useflags=pkg.use.enabled, mytree=mytree) aalist = portdb.getFetchMap(pkg.cpv, mytree=mytree) settings.configdict["pkg"]["A"] = " ".join(alist) settings.configdict["pkg"]["AA"] = " ".join(aalist) _prepare_fake_distdir(settings, alist) if eapi_exports_replace_vars(settings['EAPI']): vardb = pkg.root_config.trees['vartree'].dbapi settings["REPLACING_VERSIONS"] = " ".join( set(portage.versions.cpv_getversion(match) \ for match in vardb.match(pkg.slot_atom) + \ vardb.match('='+pkg.cpv))) setup_phase = EbuildPhase(background=self.background, phase="setup", scheduler=scheduler, settings=settings) setup_phase.addExitListener(self._setup_exit) self._current_task = setup_phase self.scheduler.scheduleSetup(setup_phase)
def _start(self): pkg = self.pkg scheduler = self.scheduler settings = self.settings cleanup = 0 portage.prepare_build_dirs(pkg.root, settings, cleanup) if eapi_exports_replace_vars(settings["EAPI"]): vardb = pkg.root_config.trees["vartree"].dbapi settings["REPLACING_VERSIONS"] = " ".join( set( portage.versions.cpv_getversion(match) for match in vardb.match(pkg.slot_atom) + vardb.match("=" + pkg.cpv))) setup_phase = EbuildPhase( background=self.background, phase="setup", scheduler=scheduler, settings=settings, ) setup_phase.addExitListener(self._setup_exit) self._task_queued(setup_phase) self.scheduler.scheduleSetup(setup_phase)
def _start(self): pkg = self.pkg scheduler = self.scheduler settings = self.settings cleanup = 0 portage.prepare_build_dirs(pkg.root, settings, cleanup) portdb = pkg.root_config.trees['porttree'].dbapi ebuild_path = settings['EBUILD'] alist = settings.configdict["pkg"].get("A", "").split() _prepare_fake_distdir(settings, alist) if eapi_exports_replace_vars(settings['EAPI']): vardb = pkg.root_config.trees['vartree'].dbapi settings["REPLACING_VERSIONS"] = " ".join( set(portage.versions.cpv_getversion(match) \ for match in vardb.match(pkg.slot_atom) + \ vardb.match('='+pkg.cpv))) setup_phase = EbuildPhase(background=self.background, phase="setup", scheduler=scheduler, settings=settings) setup_phase.addExitListener(self._setup_exit) self._task_queued(setup_phase) self.scheduler.scheduleSetup(setup_phase)
def _start(self): pkg = self.pkg scheduler = self.scheduler settings = self.settings cleanup = 0 portage.prepare_build_dirs(pkg.root, settings, cleanup) alist = settings.configdict["pkg"].get("A", "").split() _prepare_fake_distdir(settings, alist) if eapi_exports_replace_vars(settings['EAPI']): vardb = pkg.root_config.trees['vartree'].dbapi settings["REPLACING_VERSIONS"] = " ".join( set(portage.versions.cpv_getversion(match) \ for match in vardb.match(pkg.slot_atom) + \ vardb.match('='+pkg.cpv))) setup_phase = EbuildPhase(background=self.background, phase="setup", scheduler=scheduler, settings=settings) setup_phase.addExitListener(self._setup_exit) self._task_queued(setup_phase) self.scheduler.scheduleSetup(setup_phase)
def _start(self): pkg = self.pkg settings = self.settings settings.setcpv(pkg) self._tree = "bintree" self._bintree = self.pkg.root_config.trees[self._tree] self._verify = not self.opts.pretend # Use realpath like doebuild_environment() does, since we assert # that this path is literally identical to PORTAGE_BUILDDIR. dir_path = os.path.join(os.path.realpath(settings["PORTAGE_TMPDIR"]), "portage", pkg.category, pkg.pf) self._image_dir = os.path.join(dir_path, "image") self._infloc = os.path.join(dir_path, "build-info") self._ebuild_path = os.path.join(self._infloc, pkg.pf + ".ebuild") settings["EBUILD"] = self._ebuild_path portage.doebuild_environment(self._ebuild_path, 'setup', settings=self.settings, db=self._bintree.dbapi) if dir_path != self.settings['PORTAGE_BUILDDIR']: raise AssertionError("'%s' != '%s'" % \ (dir_path, self.settings['PORTAGE_BUILDDIR'])) self._build_dir = EbuildBuildDir(scheduler=self.scheduler, settings=settings) settings.configdict["pkg"]["EMERGE_FROM"] = "binary" settings.configdict["pkg"]["MERGE_TYPE"] = "binary" if eapi_exports_replace_vars(settings["EAPI"]): vardb = self.pkg.root_config.trees["vartree"].dbapi settings["REPLACING_VERSIONS"] = " ".join( set(portage.versions.cpv_getversion(x) \ for x in vardb.match(self.pkg.slot_atom) + \ vardb.match('='+self.pkg.cpv))) # The prefetcher has already completed or it # could be running now. If it's running now, # wait for it to complete since it holds # a lock on the file being fetched. The # portage.locks functions are only designed # to work between separate processes. Since # the lock is held by the current process, # use the scheduler and fetcher methods to # synchronize with the fetcher. prefetcher = self.prefetcher if prefetcher is None: pass elif prefetcher.isAlive() and \ prefetcher.poll() is None: if not self.background: fetch_log = os.path.join(_emerge.emergelog._emerge_log_dir, 'emerge-fetch.log') msg = ( 'Fetching in the background:', prefetcher.pkg_path, 'To view fetch progress, run in another terminal:', 'tail -f %s' % fetch_log, ) out = portage.output.EOutput() for l in msg: out.einfo(l) self._current_task = prefetcher prefetcher.addExitListener(self._prefetch_exit) return self._prefetch_exit(prefetcher)
def _start(self): pkg = self.pkg settings = self.settings settings.setcpv(pkg) self._tree = "bintree" self._bintree = self.pkg.root_config.trees[self._tree] self._verify = not self.opts.pretend # Use realpath like doebuild_environment() does, since we assert # that this path is literally identical to PORTAGE_BUILDDIR. dir_path = os.path.join(os.path.realpath(settings["PORTAGE_TMPDIR"]), "portage", pkg.category, pkg.pf) self._image_dir = os.path.join(dir_path, "image") self._infloc = os.path.join(dir_path, "build-info") self._ebuild_path = os.path.join(self._infloc, pkg.pf + ".ebuild") settings["EBUILD"] = self._ebuild_path portage.doebuild_environment(self._ebuild_path, 'setup', settings=self.settings, db=self._bintree.dbapi) if dir_path != self.settings['PORTAGE_BUILDDIR']: raise AssertionError("'%s' != '%s'" % \ (dir_path, self.settings['PORTAGE_BUILDDIR'])) self._build_dir = EbuildBuildDir( scheduler=self.scheduler, settings=settings) settings.configdict["pkg"]["EMERGE_FROM"] = "binary" settings.configdict["pkg"]["MERGE_TYPE"] = "binary" if eapi_exports_replace_vars(settings["EAPI"]): vardb = self.pkg.root_config.trees["vartree"].dbapi settings["REPLACING_VERSIONS"] = " ".join( set(portage.versions.cpv_getversion(x) \ for x in vardb.match(self.pkg.slot_atom) + \ vardb.match('='+self.pkg.cpv))) # The prefetcher has already completed or it # could be running now. If it's running now, # wait for it to complete since it holds # a lock on the file being fetched. The # portage.locks functions are only designed # to work between separate processes. Since # the lock is held by the current process, # use the scheduler and fetcher methods to # synchronize with the fetcher. prefetcher = self.prefetcher if prefetcher is None: pass elif prefetcher.isAlive() and \ prefetcher.poll() is None: if not self.background: fetch_log = os.path.join( _emerge.emergelog._emerge_log_dir, 'emerge-fetch.log') msg = ( 'Fetching in the background:', prefetcher.pkg_path, 'To view fetch progress, run in another terminal:', 'tail -f %s' % fetch_log, ) out = portage.output.EOutput() for l in msg: out.einfo(l) self._current_task = prefetcher prefetcher.addExitListener(self._prefetch_exit) return self._prefetch_exit(prefetcher)