From 1f8e2fe1729c68bbe7b173378ce7c9d7bb14f582 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 23 May 2007 04:47:36 +0000 Subject: Pass a temporary file name to the package phase in the environment variable PORTAGE_BINPKG_TMPFILE and move the temporary file into place inside binarytree.inject(). This allows binarytree.inject() to perform the move while holding a lock. svn path=/main/trunk/; revision=6591 --- pym/emerge/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'pym/emerge/__init__.py') diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py index 8a8bbfbe8..2cff1ed41 100644 --- a/pym/emerge/__init__.py +++ b/pym/emerge/__init__.py @@ -3157,13 +3157,18 @@ class MergeTask(object): (mergecount, len(mymergelist), pkg_key) emergelog(xterm_titles, msg, short_msg=short_msg) self.trees[myroot]["bintree"].prevent_collision(pkg_key) + binpkg_tmpfile = os.path.join(pkgsettings["PKGDIR"], + pkg_key + ".tbz2." + str(os.getpid())) + pkgsettings["PORTAGE_BINPKG_TMPFILE"] = binpkg_tmpfile + pkgsettings.backup_changes("PORTAGE_BINPKG_TMPFILE") retval = portage.doebuild(y, "package", myroot, pkgsettings, self.edebug, mydbapi=portdb, tree="porttree") + del pkgsettings["PORTAGE_BINPKG_TMPFILE"] if retval != os.EX_OK: return retval bintree = self.trees[myroot]["bintree"] - bintree.inject(pkg_key) + bintree.inject(pkg_key, filename=binpkg_tmpfile) if "--buildpkgonly" not in self.myopts: msg = " === (%s of %s) Merging (%s::%s)" % \ (mergecount, len(mymergelist), pkg_key, y) -- cgit v1.2.3-1-g7c22