summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-03-25 20:24:10 -0700
committerZac Medico <zmedico@gentoo.org>2011-03-25 20:24:10 -0700
commit86250c61c7e3fd227e9e2ccbb48358b1c80114d1 (patch)
treec82c613b2711009dda06b4b27f84a0a2d4db3dae
parent1d73babb0e5c1eb735cd8ac16e4950f4d96f3b18 (diff)
downloadportage-86250c61c7e3fd227e9e2ccbb48358b1c80114d1.tar.gz
portage-86250c61c7e3fd227e9e2ccbb48358b1c80114d1.tar.bz2
portage-86250c61c7e3fd227e9e2ccbb48358b1c80114d1.zip
MergeProcess: call elog_process for replaced pkgs
-rw-r--r--pym/_emerge/Binpkg.py2
-rw-r--r--pym/_emerge/EbuildBuild.py2
-rw-r--r--pym/portage/dbapi/_MergeProcess.py9
3 files changed, 8 insertions, 5 deletions
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()