[yocto] [PATCH v4 1/3] image.bbclass: add prohibited-paths QA test
Leonardo Sandoval
leonardo.sandoval.gonzalez at linux.intel.com
Thu Nov 16 15:21:29 PST 2017
isn't it this class meta/classes/insane.bbclass for this type of checks?
On Thu, 16 Nov 2017 15:05:56 +0000
Martyn Welch <martyn.welch at collabora.co.uk> wrote:
> Sometimes we wish to ensure that files or directories are not installed
> somewhere that may prove detrimental to the operation of the system. For
> example, this may be the case if files are placed in a directory that is
> utilised as a mount point at run time, thus making them inaccessible once
> when the mount point is being utilised.
>
> Implement the prohibited paths QA test, which enables such locations to be
> specified in a "IMAGE_QA_PROHIBITED_PATHS" variable. This implementation
> allows for a colon separated list of paths to be provided. Shell style
> wildcards can be used.
>
> Signed-off-by: Fabien Lahoudere <fabien.lahoudere at collabora.co.uk>
> Signed-off-by: Martyn Welch <martyn.welch at collabora.co.uk>
> ---
> Changes since v1:
> - Correcting author and SOB.
>
> Changes since v2:
> - Reimplemented as image rather than package level QA test.
> - Changed variable from PROHIBITED_PATH to PROHIBITED_PATHS to better
> reflect its use.
>
> Changes since v3:
> - Rename variable to IMAGE_QA_PROHIBITED_PATHS.
> - Use str.startswith().
> - Simplify if statement.
>
> meta/classes/image.bbclass | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index d93de02..9053ce3 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -296,6 +296,26 @@ python do_image_complete_setscene () {
> }
> addtask do_image_complete_setscene
>
> +python image_check_prohibited_paths () {
> + import glob
> + from oe.utils import ImageQAFailed
> +
> + rootfs = d.getVar('IMAGE_ROOTFS')
> +
> + path = (d.getVar('IMAGE_QA_PROHIBITED_PATHS') or "")
> + if path != "":
> + for p in path.split(':'):
> + if not p.startswith('/'):
> + raise ImageQAFailed("IMAGE_QA_PROHIBITED_PATHS \"%s\" must be an absolute path" % p, image_check_prohibited_paths)
> +
> + match = glob.glob("%s%s" % (rootfs, p))
> + if match:
> + loc = ", ".join(item.replace(rootfs, '') for item in match)
> + raise ImageQAFailed("Match(es) for IMAGE_QA_PROHIBITED_PATHS \"%s\": %s" % (p, loc), image_check_prohibited_paths)
> +}
> +
> +IMAGE_QA_COMMANDS += "image_check_prohibited_paths"
> +
> # Add image-level QA/sanity checks to IMAGE_QA_COMMANDS
> #
> # IMAGE_QA_COMMANDS += " \
> --
> 2.1.4
>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
More information about the yocto
mailing list