From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1RvwSG-0004pz-Qv for garchives@archives.gentoo.org; Fri, 10 Feb 2012 19:48:26 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 7B30FE0782; Fri, 10 Feb 2012 19:48:17 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 30B47E0782 for ; Fri, 10 Feb 2012 19:48:17 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 3BE321B400B for ; Fri, 10 Feb 2012 19:48:16 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id E4FB2E53FF for ; Fri, 10 Feb 2012 19:48:14 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <57a1219ba81b8f7d9c9beecf27ed500da6239b3a.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/Binpkg.py pym/_emerge/EbuildBuild.py pym/_emerge/EbuildMerge.py X-VCS-Directories: pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 57a1219ba81b8f7d9c9beecf27ed500da6239b3a Date: Fri, 10 Feb 2012 19:48:14 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: b47c16f0-7cd9-4b8e-a823-d092d2f05061 X-Archives-Hash: 815b1f27f538dafd43f4b5e796f6cd62 commit: 57a1219ba81b8f7d9c9beecf27ed500da6239b3a Author: Zac Medico gentoo org> AuthorDate: Fri Feb 10 19:47:38 2012 +0000 Commit: Zac Medico gentoo org> CommitDate: Fri Feb 10 19:47:38 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D57a1219b EbuildMerge: add exit_hook to unlock build dir This is needed since commit 7a6c34cc6bd6eb20a97e05347f87a0157f4ae58a in order to ensure that the build dir is unlocked before exit listeners are called. It fixes failures in catalyst stage 1 builds where two instances of the same package, built sequentially for separate roots, interfere with eachother's build dir lock. --- pym/_emerge/Binpkg.py | 4 ++-- pym/_emerge/EbuildBuild.py | 4 ++-- pym/_emerge/EbuildMerge.py | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pym/_emerge/Binpkg.py b/pym/_emerge/Binpkg.py index 6c70b19..395a506 100644 --- a/pym/_emerge/Binpkg.py +++ b/pym/_emerge/Binpkg.py @@ -373,13 +373,13 @@ class Binpkg(CompositeTask): self._build_dir.unlock() =20 def create_install_task(self): - task =3D EbuildMerge(find_blockers=3Dself.find_blockers, + task =3D EbuildMerge(exit_hook=3Dself._install_exit, + find_blockers=3Dself.find_blockers, ldpath_mtimes=3Dself.ldpath_mtimes, logger=3Dself.logger, pkg=3Dself.pkg, pkg_count=3Dself.pkg_count, pkg_path=3Dself._pkg_path, scheduler=3Dself.scheduler, settings=3Dself.settings, tree=3Dself._tree, world_atom=3Dself.world_atom) - task.addExitListener(self._install_exit) return task =20 def _install_exit(self, task): diff --git a/pym/_emerge/EbuildBuild.py b/pym/_emerge/EbuildBuild.py index d44dcf3..6e37cda 100644 --- a/pym/_emerge/EbuildBuild.py +++ b/pym/_emerge/EbuildBuild.py @@ -360,7 +360,8 @@ class EbuildBuild(CompositeTask): ebuild_path =3D self._ebuild_path tree =3D self._tree =20 - task =3D EbuildMerge(find_blockers=3Dself.find_blockers, + task =3D EbuildMerge(exit_hook=3Dself._install_exit, + find_blockers=3Dself.find_blockers, ldpath_mtimes=3Dldpath_mtimes, logger=3Dlogger, pkg=3Dpkg, pkg_count=3Dpkg_count, pkg_path=3Debuild_path, scheduler=3Dself.scheduler, @@ -373,7 +374,6 @@ class EbuildBuild(CompositeTask): (pkg_count.curval, pkg_count.maxval, pkg.cpv) logger.log(msg, short_msg=3Dshort_msg) =20 - task.addExitListener(self._install_exit) return task =20 def _install_exit(self, task): diff --git a/pym/_emerge/EbuildMerge.py b/pym/_emerge/EbuildMerge.py index 9c35988..df0778c 100644 --- a/pym/_emerge/EbuildMerge.py +++ b/pym/_emerge/EbuildMerge.py @@ -7,7 +7,7 @@ from portage.dbapi._MergeProcess import MergeProcess =20 class EbuildMerge(CompositeTask): =20 - __slots__ =3D ("find_blockers", "logger", "ldpath_mtimes", + __slots__ =3D ("exit_hook", "find_blockers", "logger", "ldpath_mtimes", "pkg", "pkg_count", "pkg_path", "pretend", "settings", "tree", "world_atom") =20 @@ -35,6 +35,7 @@ class EbuildMerge(CompositeTask): =20 def _merge_exit(self, merge_task): if self._final_exit(merge_task) !=3D os.EX_OK: + self.exit_hook(self) self.wait() return =20 @@ -53,4 +54,5 @@ class EbuildMerge(CompositeTask): logger.log(" ::: completed emerge (%s of %s) %s to %s" % \ (pkg_count.curval, pkg_count.maxval, pkg.cpv, pkg.root)) =20 + self.exit_hook(self) self.wait()