[OE-core] [PATCH] insane.bbclass: add qa_package_check_name

Richard Purdie richard.purdie at linuxfoundation.org
Tue Nov 13 14:45:04 UTC 2012


On Tue, 2012-11-13 at 16:08 +0200, Constantin Musca wrote:
> Check if package names match the [a-z0-9.+-]+ regular
> expression
> 
> [YOCTO #3139]
> 
> Signed-off-by: Constantin Musca <constantinx.musca at intel.com>
> ---
>  meta/classes/insane.bbclass | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
> index d51d1a1..f22e620 100644
> --- a/meta/classes/insane.bbclass
> +++ b/meta/classes/insane.bbclass
> @@ -235,6 +235,15 @@ def package_qa_check_staticdev(path, name, d, elf, messages):
>          messages.append("non -staticdev package contains static .a library: %s path '%s'" % \
>                   (name, package_qa_clean_path(path,d)))
>  
> +def package_qa_check_name(name, d):
> +    """
> +    Check if the package name matches the [a-z0-9.+-]+ regular expression
> +    """
> +    import re
> +    pattern = re.compile("^[a-z0-9.+-]+$")


Please stash this somewhere outside the function. Compiling regexps is
expensive, using them is much less so. We'll get much performance if we
just compile it once.

Cheers,

Richard

> +    if not pattern.match(name):
> +        package_qa_handle_error("pkgname", "%s doesn't match the [a-z0-9.+-]+ regex\n" % name, d)
> +
>  def package_qa_check_libdir(d):
>      """
>      Check for wrong library installation paths. For instance, catch
> @@ -780,6 +789,9 @@ python do_package_qa () {
>                  errorchecks.append(g[testmatrix[e]])
>  
>          bb.note("Checking Package: %s" % package)
> +        # Check package name
> +        package_qa_check_name(package, d)
> +
>          path = "%s/%s" % (pkgdest, package)
>          if not package_qa_walk(path, warnchecks, errorchecks, skip, package, d):
>              walk_sane  = False






More information about the Openembedded-core mailing list