From 86250c61c7e3fd227e9e2ccbb48358b1c80114d1 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 25 Mar 2011 20:24:10 -0700 Subject: MergeProcess: call elog_process for replaced pkgs --- pym/_emerge/Binpkg.py | 2 -- pym/_emerge/EbuildBuild.py | 2 -- pym/portage/dbapi/_MergeProcess.py | 9 ++++++++- 3 files changed, 8 insertions(+), 5 deletions(-) (limited to 'pym') diff --git a/pym/_emerge/Binpkg.py b/pym/_emerge/Binpkg.py index fbd2a53ac..62d44c48f 100644 --- a/pym/_emerge/Binpkg.py +++ b/pym/_emerge/Binpkg.py @@ -304,8 +304,6 @@ class Binpkg(CompositeTask): def _unlock_builddir(self): if self.opts.pretend or self.opts.fetchonly: return - portage.elog.elog_process(self.pkg.cpv, self.settings, - phasefilter=("prerm", "postrm")) portage.elog.elog_process(self.pkg.cpv, self.settings) self._build_dir.unlock() diff --git a/pym/_emerge/EbuildBuild.py b/pym/_emerge/EbuildBuild.py index b72b3d55e..c7a5f5cdb 100644 --- a/pym/_emerge/EbuildBuild.py +++ b/pym/_emerge/EbuildBuild.py @@ -243,8 +243,6 @@ class EbuildBuild(CompositeTask): self.wait() def _unlock_builddir(self): - portage.elog.elog_process(self.pkg.cpv, self.settings, - phasefilter=("prerm", "postrm")) portage.elog.elog_process(self.pkg.cpv, self.settings) self._build_dir.unlock() diff --git a/pym/portage/dbapi/_MergeProcess.py b/pym/portage/dbapi/_MergeProcess.py index 809af373c..10d8873ec 100644 --- a/pym/portage/dbapi/_MergeProcess.py +++ b/pym/portage/dbapi/_MergeProcess.py @@ -21,7 +21,7 @@ class MergeProcess(SpawnProcess): __slots__ = ('dblink', 'mycat', 'mypkg', 'settings', 'treetype', 'vartree', 'scheduler', 'blockers', 'pkgloc', 'infloc', 'myebuild', 'mydbapi', 'prev_mtimes', '_elog_reader_fd', '_elog_reg_id', - '_buf') + '_buf', '_elog_keys') def _elog_output_handler(self, fd, event): output = None @@ -41,6 +41,7 @@ class MergeProcess(SpawnProcess): out = StringIO() for line in lines: funcname, phase, key, msg = line.split(' ', 3) + self._elog_keys.add(key) reporter = getattr(portage.elog.messages, funcname) reporter(msg, phase=phase, key=key, out=out) @@ -67,6 +68,7 @@ class MergeProcess(SpawnProcess): os.close(elog_writer_fd) self._elog_reader_fd = elog_reader_fd self._buf = "" + self._elog_keys = set() self.vartree.dbapi._pkgs_changed = True portage.process.spawned_pids.append(pid) return [pid] @@ -124,5 +126,10 @@ class MergeProcess(SpawnProcess): if self._elog_reader_fd: os.close(self._elog_reader_fd) self._elog_reader_fd = None + if self._elog_keys is not None: + for key in self._elog_keys: + portage.elog.elog_process(key, self.settings, + phasefilter=("prerm", "postrm")) + self._elog_keys = None super(MergeProcess, self)._unregister() -- cgit v1.2.3-1-g7c22