This does not seem to address the question I asked. Please do not send
more code that moves things around, but diagnose the original issue
properly.

Alex

On Mon, 20 May 2024 at 10:10, pmi183 via lists.openembedded.org
<[email protected]> wrote:
>
> Hi Alex,
>
> I made some debug in the flow and i saw a timing issue and since there's no 
> reason to generate files-in-package.txt before sstate-cache operations i 
> moved the call to the postfunc of sstate:
>
> ---
>  meta/classes-global/sstate.bbclass |  5 +++++
>  meta/classes/buildhistory.bbclass  | 18 +++++++++++++++---
>  meta/lib/oe/packagedata.py         |  2 +-
>  3 files changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/meta/classes-global/sstate.bbclass 
> b/meta/classes-global/sstate.bbclass
> index 76a7b59636..7e3c3e3c4f 100644
> --- a/meta/classes-global/sstate.bbclass
> +++ b/meta/classes-global/sstate.bbclass
> @@ -104,6 +104,7 @@ SSTATEPOSTCREATEFUNCS = ""
>  SSTATEPREINSTFUNCS = ""
>  SSTATEPOSTUNPACKFUNCS = "sstate_hardcode_path_unpack"
>  SSTATEPOSTINSTFUNCS = ""
> +SSTATEPOSTFUNCS = ""
>  EXTRA_STAGING_FIXMES ?= "HOSTTOOLS_DIR"
>
>  # Check whether sstate exists for tasks that support sstate and are in the
> @@ -805,6 +806,10 @@ python sstate_task_postfunc () {
>      sstate_installpkgdir(shared_state, d)
>
>      bb.utils.remove(d.getVar("SSTATE_BUILDDIR"), recurse=True)
> +
> +    for postfunc in (d.getVar('SSTATEPOSTFUNCS') or '').split():
> +        # All hooks should run in the SSTATE_INSTDIR
> +        bb.build.exec_func(postfunc, d, (sstateinst,))
>  }
>  sstate_task_postfunc[dirs] = "${WORKDIR}"
>
> diff --git a/meta/classes/buildhistory.bbclass 
> b/meta/classes/buildhistory.bbclass
> index fd53e92402..054c213bf5 100644
> --- a/meta/classes/buildhistory.bbclass
> +++ b/meta/classes/buildhistory.bbclass
> @@ -58,6 +58,9 @@ SSTATEPOSTUNPACKFUNCS:append = " 
> buildhistory_emit_outputsigs"
>  sstate_installpkgdir[vardepsexclude] += "buildhistory_emit_outputsigs"
>  SSTATEPOSTUNPACKFUNCS[vardepvalueexclude] .= "| buildhistory_emit_outputsigs"
>
> +SSTATEPOSTFUNCS:append = " buildhistory_emit_filesinpackage"
> +SSTATEPOSTFUNCS[vardepvalueexclude] .= "| buildhistory_emit_filesinpackage"
> +
>  # All items excepts those listed here will be removed from a recipe's
>  # build history directory by buildhistory_emit_pkghistory(). This is
>  # necessary because some of these items (package directories, files that
> @@ -87,6 +90,16 @@ buildhistory_emit_sysroot() {
>         buildhistory_list_files_no_owners $BASE 
> ${BUILDHISTORY_DIR_PACKAGE}/sysroot
>  }
>
> +#
> +# Write out files-in-package for this package
> +#
> +python buildhistory_emit_filesinpackage() {
> +    if d.getVar('BB_CURRENTTASK') in ['package', 'package_setscene']:
> +        # Create files-in-<package-name>.txt files containing a list of 
> files of each recipe's package
> +        bb.build.exec_func("buildhistory_list_pkg_files", d)
> +        return 0
> +}
> +
>  #
>  # Write out metadata about this package for comparison when writing future 
> packages
>  #
> @@ -99,8 +112,6 @@ python buildhistory_emit_pkghistory() {
>          return 0
>
>      if d.getVar('BB_CURRENTTASK') in ['package', 'package_setscene']:
> -        # Create files-in-<package-name>.txt files containing a list of 
> files of each recipe's package
> -        bb.build.exec_func("buildhistory_list_pkg_files", d)
>          return 0
>
>      if not d.getVar('BB_CURRENTTASK') in ['packagedata', 
> 'packagedata_setscene']:
> @@ -599,7 +610,8 @@ buildhistory_list_files_no_owners() {
>
>  buildhistory_list_pkg_files() {
>         # Create individual files-in-package for each recipe's package
> -       for pkgdir in $(find ${PKGDEST}/* -maxdepth 0 -type d); do
> +    pkgdirlist=$(find ${PKGDEST}/* -maxdepth 0 -type d)
> +       for pkgdir in ${pkgdirlist}; do
>                 pkgname=$(basename $pkgdir)
>                 outfolder="${BUILDHISTORY_DIR_PACKAGE}/$pkgname"
>                 outfile="$outfolder/files-in-package.txt"
> diff --git a/meta/lib/oe/packagedata.py b/meta/lib/oe/packagedata.py
> index 2d1d6ddeb7..e8c503b43b 100644
> --- a/meta/lib/oe/packagedata.py
> +++ b/meta/lib/oe/packagedata.py
> @@ -309,7 +309,7 @@ fi
>          subdata_file = pkgdatadir + "/runtime/%s" % pkg
>          with open(subdata_file, 'w') as sf:
>              for var in (d.getVar('PKGDATA_VARS') or "").split():
> -                val = write_if_exists(sf, pkg, var)
> +                write_if_exists(sf, pkg, var)
>
>              write_if_exists(sf, pkg, 'FILERPROVIDESFLIST')
>              for dfile in sorted((d.getVar('FILERPROVIDESFLIST:' + pkg) or 
> "").split()):
> --
> 2.34.1
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#199612): 
https://lists.openembedded.org/g/openembedded-core/message/199612
Mute This Topic: https://lists.openembedded.org/mt/87258776/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to