[OE-core] [master][zeus][PATCH] toaster.bbclass: Correct pkgdatadir path in toaster_package_dumpdata()

Peter Kjellerstedt peter.kjellerstedt at axis.com
Sun Dec 22 13:01:42 UTC 2019


*ping*

//Peter

> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org <openembedded-core-
> bounces at lists.openembedded.org> On Behalf Of Peter Kjellerstedt
> Sent: den 11 december 2019 02:06
> To: openembedded-core at lists.openembedded.org
> Subject: [OE-core] [master][zeus][PATCH] toaster.bbclass: Correct
> pkgdatadir path in toaster_package_dumpdata()
> 
> In commit 692b2046 (package: Fix race between do_package and
> do_packagedata), the path used for do_packagedata[sstate-inputdirs]
> was changed from "${PKGDESTWORK}" to "${WORKDIR}/pkgdata-pdata-input".
> This commit adapts the path used for pkgdatadir in
> toaster_package_dumpdata() accordingly to avoid setscene errors like:
> 
>   ERROR: libgcc-9.2.0-r0 do_packagedata_setscene: Error executing a
>   python function in exec_python_func() autogenerated:
> 
>   The stack trace of python calls that resulted in this
>   exception/failure was:
>   File: 'exec_python_func() autogenerated', lineno: 2, function:
>   <module>
>        0001:
>    *** 0002:toaster_package_dumpdata(d)
>        0003:
>   File: 'meta/classes/toaster.bbclass', lineno: 130, function:
>   toaster_package_dumpdata
>        0126:    lpkgdata = {}
>        0127:    datadir = os.path.join(pkgdatadir, 'runtime')
>        0128:
>        0129:    # scan and send data for each generated package
>    *** 0130:    for datafile in os.listdir(datadir):
>        0131:        if not datafile.endswith('.packaged'):
>        0132:            lpkgdata = _toaster_load_pkgdatafile(datadir,
>        0133:            # Fire an event containing the pkg data
>        0134:            bb.event.fire(bb.event.MetadataEvent(
>   Exception: FileNotFoundError: [Errno 2] No such file or directory:
>   'tmp/work/mips32r2el-nf-poky-linux/libgcc/9.2.0-r0/pkgdata/runtime'
> 
> Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
> ---
>  meta/classes/toaster.bbclass | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/classes/toaster.bbclass b/meta/classes/toaster.bbclass
> index 6cef0b8f6e..6a65ecb957 100644
> --- a/meta/classes/toaster.bbclass
> +++ b/meta/classes/toaster.bbclass
> @@ -113,7 +113,7 @@ def _toaster_load_pkgdatafile(dirpath, filepath):
>                  pass    # ignore lines without valid key: value pairs
>      return pkgdata
> 
> -python toaster_package_dumpdata() {
> +def _toaster_dumpdata(pkgdatadir, d):
>      """
>      Dumps the data about the packages created by a recipe
>      """
> @@ -122,7 +122,6 @@ python toaster_package_dumpdata() {
>      if not d.getVar('PACKAGES'):
>          return
> 
> -    pkgdatadir = d.getVar('PKGDESTWORK')
>      lpkgdata = {}
>      datadir = os.path.join(pkgdatadir, 'runtime')
> 
> @@ -132,6 +131,14 @@ python toaster_package_dumpdata() {
>              lpkgdata = _toaster_load_pkgdatafile(datadir, datafile)
>              # Fire an event containing the pkg data
>              bb.event.fire(bb.event.MetadataEvent("SinglePackageInfo",
> lpkgdata), d)
> +
> +python toaster_package_dumpdata() {
> +    _toaster_dumpdata(d.getVar('PKGDESTWORK'), d)
> +}
> +
> +python toaster_packagedata_dumpdata() {
> +    # This path needs to match do_packagedata[sstate-inputdirs]
> +    _toaster_dumpdata(os.path.join(d.getVar('WORKDIR'), 'pkgdata-pdata-
> input'), d)
>  }
> 
>  # 2. Dump output image files information
> @@ -366,8 +373,8 @@ toaster_buildhistory_dump[eventmask] =
> "bb.event.BuildCompleted"
>  addhandler toaster_artifacts
>  toaster_artifacts[eventmask] = "bb.runqueue.runQueueTaskSkipped
> bb.runqueue.runQueueTaskCompleted"
> 
> -do_packagedata_setscene[postfuncs] += "toaster_package_dumpdata "
> -do_packagedata_setscene[vardepsexclude] += "toaster_package_dumpdata "
> +do_packagedata_setscene[postfuncs] += "toaster_packagedata_dumpdata "
> +do_packagedata_setscene[vardepsexclude] += "toaster_packagedata_dumpdata
> "
> 
>  do_package[postfuncs] += "toaster_package_dumpdata "
>  do_package[vardepsexclude] += "toaster_package_dumpdata "
> --
> 2.21.0
> 
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


More information about the Openembedded-core mailing list