From: Constantin Musca <constantinx.musca@intel.com>
To: Saul Wold <sgw@linux.intel.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] buildhistory.bbclass: add support for SRCREV logging
Date: Mon, 04 Mar 2013 18:48:55 +0200 [thread overview]
Message-ID: <5134D077.9000506@intel.com> (raw)
In-Reply-To: <5131019F.8030805@linux.intel.com>
On 03/01/2013 09:29 PM, Saul Wold wrote:
> On 02/27/2013 07:37 AM, Constantin Musca wrote:
>> - create "latest_srcrev" for each recipe with the following format:
>> ${BB_FILENAME},${SRC_URI},${SRCREV},${FROM_AUTOREV}
>>
>> [YOCTO #3041]
>>
>> Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
>> ---
>> meta/classes/buildhistory.bbclass | 23 ++++++++++++++++++++++-
>> 1 file changed, 22 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta/classes/buildhistory.bbclass
>> b/meta/classes/buildhistory.bbclass
>> index a20d03d..fa13ef5 100644
>> --- a/meta/classes/buildhistory.bbclass
>> +++ b/meta/classes/buildhistory.bbclass
>> @@ -44,6 +44,11 @@ python buildhistory_emit_pkghistory() {
>> self.pr = "r0"
>> self.depends = ""
>> self.packages = ""
>> + self.bbfile = ""
>> + self.src_uri = ""
>> + self.srcrev = ""
>> + self.srcrev_autorev = ""
>> +
>>
>> class PackageInfo:
>> def __init__(self, name):
>> @@ -151,6 +156,12 @@ python buildhistory_emit_pkghistory() {
>> pe = d.getVar('PE', True) or "0"
>> pv = d.getVar('PV', True)
>> pr = d.getVar('PR', True)
>> +
>> + bbfile = d.getVar('BB_FILENAME', True)
>> + src_uri = d.getVar('SRC_URI', True)
>> + srcrev = d.getVar('SRCREV', True)
>> + srcrev_autorev = 'yes' if d.getVar('SRCREV', False) == 'AUTOINC'
>> else 'no'
>> +
>> packages = squashspaces(d.getVar('PACKAGES', True))
>>
>> packagelist = packages.split()
>> @@ -159,7 +170,7 @@ python buildhistory_emit_pkghistory() {
>> else:
>> # Remove files for packages that no longer exist
>> for item in os.listdir(pkghistdir):
>> - if item != "latest":
>> + if item != "latest" and item != "latest_srcrev":
>> if item not in packagelist:
>> subdir = os.path.join(pkghistdir, item)
>> for subfile in os.listdir(subdir):
>> @@ -171,6 +182,10 @@ python buildhistory_emit_pkghistory() {
>> rcpinfo.pv = pv
>> rcpinfo.pr = pr
>> rcpinfo.depends = sortlist(squashspaces(d.getVar('DEPENDS',
>> True) or ""))
>> + rcpinfo.bbfile = bbfile
>> + rcpinfo.src_uri = src_uri
>> + rcpinfo.srcrev = srcrev
>> + rcpinfo.srcrev_autorev = srcrev_autorev
>> rcpinfo.packages = packages
>> write_recipehistory(rcpinfo, d)
>>
>> @@ -241,6 +256,12 @@ def write_recipehistory(rcpinfo, d):
>> f.write("DEPENDS = %s\n" % rcpinfo.depends)
>> f.write("PACKAGES = %s\n" % rcpinfo.packages)
>>
>> + if rcpinfo.srcrev:
>> + srcrevfile = os.path.join(pkghistdir, "latest_srcrev")
>> + with open(srcrevfile, "w") as f:
>> + f.write(','.join([rcpinfo.bbfile, rcpinfo.src_uri,
>> rcpinfo.srcrev,
>> + rcpinfo.srcrev_autorev]))
>> +
>>
>> def write_pkghistory(pkginfo, d):
>> bb.debug(2, "Writing package history for package %s" %
>> pkginfo.name)
>>
>
> I found the following problem with multiple builds:
>
>> ERROR: The stack trace of python calls that resulted in this
>> exception/failure was:
>> ERROR: File "buildhistory_emit_pkghistory", line 200, in <module>
>> ERROR:
>> ERROR: File "buildhistory_emit_pkghistory", line 136, in
>> buildhistory_emit_pkghistory
>> ERROR:
>> ERROR: The code that was being executed was:
>> ERROR: 0196:
>> ERROR: 0197: write_pkghistory(pkginfo, d)
>> ERROR: 0198:
>> ERROR: 0199:
>> ERROR: *** 0200:buildhistory_emit_pkghistory(d)
>> ERROR: 0201:
>> ERROR: [From file: 'buildhistory_emit_pkghistory', lineno: 200,
>> function: <module>]
>> ERROR: 0132: for item in os.listdir(pkghistdir):
>> ERROR: 0133: if item != "latest":
The patch changes this line to : if item != "latest" and item !=
"latest_srcrev":
I think the patch has not been applied correctly. I tested this locally
and it worked.
Cheers,
Constantin
>> ERROR: 0134: if item not in packagelist:
>> ERROR: 0135: subdir =
>> os.path.join(pkghistdir, item)
>> ERROR: *** 0136: for subfile in os.listdir(subdir):
>> ERROR: 0137: os.unlink(os.path.join(subdir, subfile))
>> ERROR: 0138: os.rmdir(subdir)
>> ERROR: 0139:
>> ERROR: 0140: rcpinfo = RecipeInfo(pn)
>> ERROR: [From file: 'buildhistory_emit_pkghistory', lineno: 136,
>> function: buildhistory_emit_pkghistory]
>> ERROR: Function failed: buildhistory_emit_pkghistory
>> ERROR: Logfile of failure stored in:
>> /home/sgw/yocto/builds/world/tmp/work/x86_64-poky-linux/libgcc/4.7.2-r19/temp/log.do_package.24155
>> ERROR: Task 953
>> (/home/sgw/yocto/poky/meta/recipes-devtools/gcc/libgcc_4.7.bb,
>> do_package) failed with exit code '1'
>
> It occurs with base-files also.
prev parent reply other threads:[~2013-03-04 17:04 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-27 15:37 [PATCH] buildhistory.bbclass: add support for SRCREV logging Constantin Musca
2013-03-01 19:29 ` Saul Wold
2013-03-04 16:48 ` Constantin Musca [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5134D077.9000506@intel.com \
--to=constantinx.musca@intel.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=sgw@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.