commit:     f68cbfdfb24218ea11db6e0322a0f05413833b0f
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 10 00:26:13 2017 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Fri Nov 10 00:32:22 2017 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=f68cbfdf

doebuild: record BUILD_ID and BINPKGMD5 for installed package

This is equivalent to the EbuildBuild._record_binpkg_info method
which never gets called when the package is created with the
ebuild(1) command.

Fixes: 328dd4712f88 ("binpkg-multi-instance 3 of 7")

 pym/portage/package/ebuild/doebuild.py | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/pym/portage/package/ebuild/doebuild.py 
b/pym/portage/package/ebuild/doebuild.py
index 66e63b919..0be148fd4 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -1163,8 +1163,23 @@ def doebuild(myebuild, mydo, _unused=DeprecationWarning, 
settings=None, debug=0,
 
                        if retval == os.EX_OK:
                                if mydo == "package" and bintree is not None:
-                                       bintree.inject(mysettings.mycpv,
+                                       pkg = bintree.inject(mysettings.mycpv,
                                                
filename=mysettings["PORTAGE_BINPKG_TMPFILE"])
+                                       if pkg is not None:
+                                               infoloc = os.path.join(
+                                                       
mysettings["PORTAGE_BUILDDIR"], "build-info")
+                                               build_info = {
+                                                       "BINPKGMD5": "%s\n" % 
pkg._metadata["MD5"],
+                                               }
+                                               if pkg.build_id is not None:
+                                                       build_info["BUILD_ID"] 
= "%s\n" % pkg.build_id
+                                               for k, v in build_info.items():
+                                                       with 
io.open(_unicode_encode(
+                                                               
os.path.join(infoloc, k),
+                                                               
encoding=_encodings['fs'], errors='strict'),
+                                                               mode='w', 
encoding=_encodings['repo.content'],
+                                                               
errors='strict') as f:
+                                                               f.write(v)
                        else:
                                if "PORTAGE_BINPKG_TMPFILE" in mysettings:
                                        try:

Reply via email to