Patchwork buildhistory: rename build-id to build-id.txt and add more info

login
register
mail settings
Submitter Martin Jansa
Date July 25, 2014, 1:15 p.m.
Message ID <1406294138-31362-1-git-send-email-Martin.Jansa@gmail.com>
Download mbox | patch
Permalink /patch/76677/
State Accepted
Commit 3223a704f9185e4a828f982b00b653becf0f548b
Headers show

Comments

Martin Jansa - July 25, 2014, 1:15 p.m.
* use .txt extension like other reports (e.g. image-info.txt) it's
  also useful when looking at the file from web server which doesn't
  have text/plain as default content-type
* include whole BUILDCFG_HEADER/BUILDCFG_FUNCS instead of just layer
  info
* this makes it easier for distro to include more fields without the
  need to modify buildhistory.bbclass
* currently it adds following fields:
  Build Configuration:
  BB_VERSION        = "1.23.1"
  BUILD_SYS         = "x86_64-linux"
  NATIVELSBSTRING   = "Gentoo-2.2"
  TARGET_SYS        = "x86_64-oe-linux"
  MACHINE           = "qemux86-64"
  DISTRO            = "shr"
  DISTRO_VERSION    = "2013.07-next-20140725"
  TUNE_FEATURES     = "m64 core2"
  TARGET_FPU        = ""

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/buildhistory.bbclass | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)
Martin Jansa - Aug. 16, 2014, 6:21 p.m.
On Fri, Jul 25, 2014 at 03:15:38PM +0200, Martin Jansa wrote:
> * use .txt extension like other reports (e.g. image-info.txt) it's
>   also useful when looking at the file from web server which doesn't
>   have text/plain as default content-type
> * include whole BUILDCFG_HEADER/BUILDCFG_FUNCS instead of just layer
>   info
> * this makes it easier for distro to include more fields without the
>   need to modify buildhistory.bbclass
> * currently it adds following fields:
>   Build Configuration:
>   BB_VERSION        = "1.23.1"
>   BUILD_SYS         = "x86_64-linux"
>   NATIVELSBSTRING   = "Gentoo-2.2"
>   TARGET_SYS        = "x86_64-oe-linux"
>   MACHINE           = "qemux86-64"
>   DISTRO            = "shr"
>   DISTRO_VERSION    = "2013.07-next-20140725"
>   TUNE_FEATURES     = "m64 core2"
>   TARGET_FPU        = ""

ping

> 
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
>  meta/classes/buildhistory.bbclass | 26 ++++++++++++++++++--------
>  1 file changed, 18 insertions(+), 8 deletions(-)
> 
> diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
> index 20382ce..479e460 100644
> --- a/meta/classes/buildhistory.bbclass
> +++ b/meta/classes/buildhistory.bbclass
> @@ -461,10 +461,10 @@ END
>  	echo "IMAGESIZE = $imagesize" >> ${BUILDHISTORY_DIR_IMAGE}/image-info.txt
>  
>  	# Add some configuration information
> -	echo "${MACHINE}: ${IMAGE_BASENAME} configured for ${DISTRO} ${DISTRO_VERSION}" > ${BUILDHISTORY_DIR_IMAGE}/build-id
> +	echo "${MACHINE}: ${IMAGE_BASENAME} configured for ${DISTRO} ${DISTRO_VERSION}" > ${BUILDHISTORY_DIR_IMAGE}/build-id.txt
>  
> -	cat >> ${BUILDHISTORY_DIR_IMAGE}/build-id <<END
> -${@buildhistory_get_layers(d)}
> +	cat >> ${BUILDHISTORY_DIR_IMAGE}/build-id.txt <<END
> +${@buildhistory_get_build_id(d)}
>  END
>  }
>  
> @@ -498,11 +498,21 @@ POPULATE_SDK_POST_HOST_COMMAND_append = " buildhistory_list_installed_sdk_host ;
>  
>  SDK_POSTPROCESS_COMMAND += "buildhistory_get_sdkinfo ; "
>  
> -def buildhistory_get_layers(d):
> -    if d.getVar('BB_WORKERCONTEXT', True) != '1':
> -        return ""
> -    layertext = "Configured metadata layers:\n%s\n" % '\n'.join(get_layers_branch_rev(d))
> -    return layertext
> +def buildhistory_get_build_id(d):
> +    localdata = bb.data.createCopy(d)
> +    bb.data.update_data(localdata)
> +    statuslines = []
> +    for func in oe.data.typed_value('BUILDCFG_FUNCS', localdata):
> +        g = globals()
> +        if func not in g:
> +            bb.warn("Build configuration function '%s' does not exist" % func)
> +        else:
> +            flines = g[func](localdata)
> +            if flines:
> +                statuslines.extend(flines)
> +
> +    statusheader = d.getVar('BUILDCFG_HEADER', True)
> +    return('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines)))
>  
>  def buildhistory_get_metadata_revs(d):
>      # We want an easily machine-readable format here, so get_layers_branch_rev isn't quite what we want
> -- 
> 2.0.2
>
Paul Eggleton - Aug. 18, 2014, 10:54 a.m.
On Saturday 16 August 2014 20:21:09 Martin Jansa wrote:
> On Fri, Jul 25, 2014 at 03:15:38PM +0200, Martin Jansa wrote:
> > * use .txt extension like other reports (e.g. image-info.txt) it's
> > 
> >   also useful when looking at the file from web server which doesn't
> >   have text/plain as default content-type
> > 
> > * include whole BUILDCFG_HEADER/BUILDCFG_FUNCS instead of just layer
> > 
> >   info
> > 
> > * this makes it easier for distro to include more fields without the
> > 
> >   need to modify buildhistory.bbclass
> > 
> > * currently it adds following fields:
> >   Build Configuration:
> >   BB_VERSION        = "1.23.1"
> >   BUILD_SYS         = "x86_64-linux"
> >   NATIVELSBSTRING   = "Gentoo-2.2"
> >   TARGET_SYS        = "x86_64-oe-linux"
> >   MACHINE           = "qemux86-64"
> >   DISTRO            = "shr"
> >   DISTRO_VERSION    = "2013.07-next-20140725"
> >   TUNE_FEATURES     = "m64 core2"
> >   TARGET_FPU        = ""
> 
> ping
> 
> > Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> > ---
> > 
> >  meta/classes/buildhistory.bbclass | 26 ++++++++++++++++++--------
> >  1 file changed, 18 insertions(+), 8 deletions(-)
> > 
> > diff --git a/meta/classes/buildhistory.bbclass
> > b/meta/classes/buildhistory.bbclass index 20382ce..479e460 100644
> > --- a/meta/classes/buildhistory.bbclass
> > +++ b/meta/classes/buildhistory.bbclass
> > @@ -461,10 +461,10 @@ END
> > 
> >  	echo "IMAGESIZE = $imagesize" >>
> >  	${BUILDHISTORY_DIR_IMAGE}/image-info.txt
> >  	
> >  	# Add some configuration information
> > 
> > -	echo "${MACHINE}: ${IMAGE_BASENAME} configured for ${DISTRO}
> > ${DISTRO_VERSION}" > ${BUILDHISTORY_DIR_IMAGE}/build-id +	echo
> > "${MACHINE}: ${IMAGE_BASENAME} configured for ${DISTRO}
> > ${DISTRO_VERSION}" > ${BUILDHISTORY_DIR_IMAGE}/build-id.txt
> > 
> > -	cat >> ${BUILDHISTORY_DIR_IMAGE}/build-id <<END
> > -${@buildhistory_get_layers(d)}
> > +	cat >> ${BUILDHISTORY_DIR_IMAGE}/build-id.txt <<END
> > +${@buildhistory_get_build_id(d)}
> > 
> >  END
> >  }
> > 
> > @@ -498,11 +498,21 @@ POPULATE_SDK_POST_HOST_COMMAND_append = "
> > buildhistory_list_installed_sdk_host ;> 
> >  SDK_POSTPROCESS_COMMAND += "buildhistory_get_sdkinfo ; "
> > 
> > -def buildhistory_get_layers(d):
> > -    if d.getVar('BB_WORKERCONTEXT', True) != '1':
> > -        return ""
> > -    layertext = "Configured metadata layers:\n%s\n" %
> > '\n'.join(get_layers_branch_rev(d)) -    return layertext
> > +def buildhistory_get_build_id(d):
> > +    localdata = bb.data.createCopy(d)
> > +    bb.data.update_data(localdata)
> > +    statuslines = []
> > +    for func in oe.data.typed_value('BUILDCFG_FUNCS', localdata):
> > +        g = globals()
> > +        if func not in g:
> > +            bb.warn("Build configuration function '%s' does not exist" %
> > func) +        else:
> > +            flines = g[func](localdata)
> > +            if flines:
> > +                statuslines.extend(flines)
> > +
> > +    statusheader = d.getVar('BUILDCFG_HEADER', True)
> > +    return('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines)))
> > 
> >  def buildhistory_get_metadata_revs(d):
> >      # We want an easily machine-readable format here, so
> >      get_layers_branch_rev isn't quite what we want

Sorry I looked at this earlier and it looked OK to me then, I should have 
acked it already.

Acked-by: Paul Eggleton <paul.eggleton@linux.intel.com>

Cheers,
Paul
Martin Jansa - Aug. 24, 2014, 4:19 p.m.
On Mon, Aug 18, 2014 at 11:54:28AM +0100, Paul Eggleton wrote:
> On Saturday 16 August 2014 20:21:09 Martin Jansa wrote:
> > On Fri, Jul 25, 2014 at 03:15:38PM +0200, Martin Jansa wrote:
> > > * use .txt extension like other reports (e.g. image-info.txt) it's
> > > 
> > >   also useful when looking at the file from web server which doesn't
> > >   have text/plain as default content-type
> > > 
> > > * include whole BUILDCFG_HEADER/BUILDCFG_FUNCS instead of just layer
> > > 
> > >   info
> > > 
> > > * this makes it easier for distro to include more fields without the
> > > 
> > >   need to modify buildhistory.bbclass
> > > 
> > > * currently it adds following fields:
> > >   Build Configuration:
> > >   BB_VERSION        = "1.23.1"
> > >   BUILD_SYS         = "x86_64-linux"
> > >   NATIVELSBSTRING   = "Gentoo-2.2"
> > >   TARGET_SYS        = "x86_64-oe-linux"
> > >   MACHINE           = "qemux86-64"
> > >   DISTRO            = "shr"
> > >   DISTRO_VERSION    = "2013.07-next-20140725"
> > >   TUNE_FEATURES     = "m64 core2"
> > >   TARGET_FPU        = ""
> > 
> > ping
> > 
> > > Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> > > ---
> > > 
> > >  meta/classes/buildhistory.bbclass | 26 ++++++++++++++++++--------
> > >  1 file changed, 18 insertions(+), 8 deletions(-)
> > > 
> > > diff --git a/meta/classes/buildhistory.bbclass
> > > b/meta/classes/buildhistory.bbclass index 20382ce..479e460 100644
> > > --- a/meta/classes/buildhistory.bbclass
> > > +++ b/meta/classes/buildhistory.bbclass
> > > @@ -461,10 +461,10 @@ END
> > > 
> > >  	echo "IMAGESIZE = $imagesize" >>
> > >  	${BUILDHISTORY_DIR_IMAGE}/image-info.txt
> > >  	
> > >  	# Add some configuration information
> > > 
> > > -	echo "${MACHINE}: ${IMAGE_BASENAME} configured for ${DISTRO}
> > > ${DISTRO_VERSION}" > ${BUILDHISTORY_DIR_IMAGE}/build-id +	echo
> > > "${MACHINE}: ${IMAGE_BASENAME} configured for ${DISTRO}
> > > ${DISTRO_VERSION}" > ${BUILDHISTORY_DIR_IMAGE}/build-id.txt
> > > 
> > > -	cat >> ${BUILDHISTORY_DIR_IMAGE}/build-id <<END
> > > -${@buildhistory_get_layers(d)}
> > > +	cat >> ${BUILDHISTORY_DIR_IMAGE}/build-id.txt <<END
> > > +${@buildhistory_get_build_id(d)}
> > > 
> > >  END
> > >  }
> > > 
> > > @@ -498,11 +498,21 @@ POPULATE_SDK_POST_HOST_COMMAND_append = "
> > > buildhistory_list_installed_sdk_host ;> 
> > >  SDK_POSTPROCESS_COMMAND += "buildhistory_get_sdkinfo ; "
> > > 
> > > -def buildhistory_get_layers(d):
> > > -    if d.getVar('BB_WORKERCONTEXT', True) != '1':
> > > -        return ""

I've just noticed that I've unintentionally removed these 2 lines, which
were added in:
  commit 540a2a30be21c3eca4323efbe91e7dcfc31a4c97
  Author: Paul Eggleton <paul.eggleton@linux.intel.com>
  Date:   Mon Dec 2 18:50:50 2013 +0000

    classes/buildhistory: reduce parsing time
    
    Disable several python functions if not parsing within the worker
    context. This avoids executing expensive operations while parsing
    recipes (which is unnecessary).
    
and I believe still useful, I'll send another commit to restore it.

> > > -    layertext = "Configured metadata layers:\n%s\n" %
> > > '\n'.join(get_layers_branch_rev(d)) -    return layertext
> > > +def buildhistory_get_build_id(d):
> > > +    localdata = bb.data.createCopy(d)
> > > +    bb.data.update_data(localdata)
> > > +    statuslines = []
> > > +    for func in oe.data.typed_value('BUILDCFG_FUNCS', localdata):
> > > +        g = globals()
> > > +        if func not in g:
> > > +            bb.warn("Build configuration function '%s' does not exist" %
> > > func) +        else:
> > > +            flines = g[func](localdata)
> > > +            if flines:
> > > +                statuslines.extend(flines)
> > > +
> > > +    statusheader = d.getVar('BUILDCFG_HEADER', True)
> > > +    return('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines)))
> > > 
> > >  def buildhistory_get_metadata_revs(d):
> > >      # We want an easily machine-readable format here, so
> > >      get_layers_branch_rev isn't quite what we want
> 
> Sorry I looked at this earlier and it looked OK to me then, I should have 
> acked it already.
> 
> Acked-by: Paul Eggleton <paul.eggleton@linux.intel.com>
> 
> Cheers,
> Paul
> 
> -- 
> 
> Paul Eggleton
> Intel Open Source Technology Centre

Patch

diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index 20382ce..479e460 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -461,10 +461,10 @@  END
 	echo "IMAGESIZE = $imagesize" >> ${BUILDHISTORY_DIR_IMAGE}/image-info.txt
 
 	# Add some configuration information
-	echo "${MACHINE}: ${IMAGE_BASENAME} configured for ${DISTRO} ${DISTRO_VERSION}" > ${BUILDHISTORY_DIR_IMAGE}/build-id
+	echo "${MACHINE}: ${IMAGE_BASENAME} configured for ${DISTRO} ${DISTRO_VERSION}" > ${BUILDHISTORY_DIR_IMAGE}/build-id.txt
 
-	cat >> ${BUILDHISTORY_DIR_IMAGE}/build-id <<END
-${@buildhistory_get_layers(d)}
+	cat >> ${BUILDHISTORY_DIR_IMAGE}/build-id.txt <<END
+${@buildhistory_get_build_id(d)}
 END
 }
 
@@ -498,11 +498,21 @@  POPULATE_SDK_POST_HOST_COMMAND_append = " buildhistory_list_installed_sdk_host ;
 
 SDK_POSTPROCESS_COMMAND += "buildhistory_get_sdkinfo ; "
 
-def buildhistory_get_layers(d):
-    if d.getVar('BB_WORKERCONTEXT', True) != '1':
-        return ""
-    layertext = "Configured metadata layers:\n%s\n" % '\n'.join(get_layers_branch_rev(d))
-    return layertext
+def buildhistory_get_build_id(d):
+    localdata = bb.data.createCopy(d)
+    bb.data.update_data(localdata)
+    statuslines = []
+    for func in oe.data.typed_value('BUILDCFG_FUNCS', localdata):
+        g = globals()
+        if func not in g:
+            bb.warn("Build configuration function '%s' does not exist" % func)
+        else:
+            flines = g[func](localdata)
+            if flines:
+                statuslines.extend(flines)
+
+    statusheader = d.getVar('BUILDCFG_HEADER', True)
+    return('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines)))
 
 def buildhistory_get_metadata_revs(d):
     # We want an easily machine-readable format here, so get_layers_branch_rev isn't quite what we want