Hi all,
this is inspired by the discussion around "[RFC PATCH] image: Reorder
do_copy_boot_files task".
Early tests suggest that this works well. Everybody might want to try
this on their most hacky layer.
I could envision future QA checks like ... do we find any files that do
not belong to packages but live in package manager locations.
regards,
Henning
Am Mon, 28 Feb 2022 15:59:18 +0100
schrieb Henning Schild <
wo...@hennsch.de>:
> From: Henning Schild <
henning...@siemens.com>
>
> Content of rootfs should ideally all be coming from packages and their
> hooks. POSTPROCESSing and custom tasks should be handled with a lot of
> care and avoided where possible.
>
> This commit introduces a quality check task to help devs not
> accidentially abuse POSTPROCESS, while allowing them to add files to
> an ignore list.
>
> Signed-off-by: Henning Schild <
henning...@siemens.com>
> ---
> meta/classes/image.bbclass | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index d44298bcdd7c..a0d44489d5bb 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -231,5 +231,33 @@ EOSUDO
> }
> addtask rootfs_finalize before do_rootfs after do_rootfs_postprocess
>
> +ROOTFS_QA_FIND_ARGS ?= ""
> +
> +do_rootfs_quality_check() {
> + rootfs_install_stamp=$( ls -1 "${STAMP}".do_rootfs_install.* |
> head -1 )
> + test -f $rootfs_install_stamp
> +
> + args="$ROOTFS_QA_FIND_ARGS"
> + # rootfs_finalize chroot-setup.sh
> + args="${args} ! -path ${ROOTFSDIR}/var/lib/dpkg/diversions"
> + for cmd in ${ROOTFS_POSTPROCESS_COMMAND}; do
> + case "${cmd}" in
> + image_postprocess_mark)
> + args="${args} ! -path ${ROOTFSDIR}/etc/os-release";;
> + image_postprocess_machine_id)
> + args="${args} ! -path ${ROOTFSDIR}/etc/machine-id";;
> + esac
> + done
> + found=$( sudo find ${ROOTFSDIR} -type f -newer
> $rootfs_install_stamp $args )
> + if [ -n "$found" ]; then
> + bbwarn "Files changed after package install. The following
> files seem"
> + bbwarn "to have changed where they probably should not have."
> + bbwarn "You might have a custom task or writing POSTPROCESS
> function."
> + bbwarn "$found"
> + fi
> +}
> +
> +addtask rootfs_quality_check after do_rootfs_finalize before
> do_rootfs +
> # Last so that the image type can overwrite tasks if needed
> inherit ${IMAGE_FSTYPES}