On Wed, 2026-07-08 at 15:26 +0530, Ashish Mishra via
lists.openembedded.org wrote:
> This patch hardcode the emit_pkgdata to run last and adds a new hook
> PACKAGE_POSTPROCESS_FUNCS to package.bbclass which
> 
> PACKAGE_PREPROCESS_FUNCS comes in picture before the per-package file
> split,
> so at that point the final file lists are not yet available.
> There is no existing hook that fires after the split with the ability
> to still
> modify package scripts postinst
> 
> One of use case driving this patch is SELinux context labeling
> There can be other user defined usage if the hook is available
> 
> Signed-off-by: AshishKumar Mishra <[email protected]>
> ---
>  meta/classes-global/package.bbclass | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/classes-global/package.bbclass b/meta/classes-
> global/package.bbclass
> index 30accaeaa9..c53b5c2d3d 100644
> --- a/meta/classes-global/package.bbclass
> +++ b/meta/classes-global/package.bbclass
> @@ -460,6 +460,7 @@ def gen_packagevar(d, pkgvars="PACKAGEVARS"):
>  
>  # Functions for setting up PKGD
>  PACKAGE_PREPROCESS_FUNCS ?= ""
> +PACKAGE_POSTPROCESS_FUNCS ?= ""
>  # Functions which split PKGD up into separate packages
>  PACKAGESPLITFUNCS ?= " \
>                  package_do_split_locales \
> @@ -472,8 +473,7 @@ PACKAGEFUNCS += " \
>                  package_do_shlibs \
>                  package_do_pkgconfig \
>                  read_shlibdeps \
> -                package_depchains \
> -                emit_pkgdata"
> +                package_depchains"
>  
>  python do_package () {
>      # Change the following version to cause sstate to invalidate the
> package
> @@ -564,14 +564,24 @@ python do_package () {
>              for file in files:
>                  pkgfiles[pkg].append(walkroot + os.sep + file)
>  
> +    #
> +    # We want emit_pkgdata to run last, after everything
> +    # This is becuase any layer which adds its custom function
> +    # to PACKAGEFUNCS using +=  would get executed after
> emit_pkgdata
> +    #
>      for f in (d.getVar('PACKAGEFUNCS') or '').split():
>          bb.build.exec_func(f, d)
>  
> +    for f in (d.getVar('PACKAGE_POSTPROCESS_FUNCS') or '').split():
> +        bb.build.exec_func(f, d)
> +
> +    bb.build.exec_func("emit_pkgdata", d)
> +
>      oe.qa.exit_if_errors(d)

Just put emit_pkgdata here and then you don't need
PACKAGE_POSTPROCESS_FUNCS at all, you can just append to PACAGEFUNCS?

Cheers,

Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#240457): 
https://lists.openembedded.org/g/openembedded-core/message/240457
Mute This Topic: https://lists.openembedded.org/mt/120170952/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to