[OE-core] [PATCH] insane: add qa check for lowercase recipe name

Leonardo Sandoval leonardo.sandoval.gonzalez at linux.intel.com
Tue Aug 15 14:23:00 UTC 2017


On Mon, 2017-08-14 at 19:23 -0700, Yeoh Ee Peng wrote:
> Since we disabled uppercase characters in overrides a few releases ago,
> uppercase characters in recipe names (and for that matter, distro and
> machine names) cannot be supported due to their reliance upon overrides
> including the name.
> 
> QA check will produce an warning message when it verify that recipe
> name is not lowercase.
> 
> [YOCTO# 11592]
> 
> Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh at intel.com>
> ---
>  meta/classes/insane.bbclass | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
> index b7177c9..8e062d1 100644
> --- a/meta/classes/insane.bbclass
> +++ b/meta/classes/insane.bbclass
> @@ -27,7 +27,7 @@ WARN_QA ?= "ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi \
>              installed-vs-shipped compile-host-path install-host-path \
>              pn-overrides infodir build-deps \
>              unknown-configure-option symlink-to-sysroot multilib \
> -            invalid-packageconfig host-user-contaminated \
> +            invalid-packageconfig host-user-contaminated pn_lowercase \
>              "

IMO, what you warn is that variable has uppercase letters, so the test
should be named 'pn_uppercase'


>  ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
>              perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
> @@ -1274,7 +1274,9 @@ python () {
>      if pn in overrides:
>          msg = 'Recipe %s has PN of "%s" which is in OVERRIDES, this can result in unexpected behaviour.' % (d.getVar("FILE"), pn)
>          package_qa_handle_error("pn-overrides", msg, d)
> -
> +    if pn != pn.lower():
> +        package_qa_handle_error("pn_lowercase", 'PN: %s is not lower case, this can result in unexpected behavior.' % pn, d)
> +    

for performance reasons, perhaps it would be better to create a regex
matching uppercases and if match succeeded, the raise the error/warning

One more thing. At the beginning of the insane class, on the comments
area you can include this one on the 'Checks we do' section.

>      issues = []
>      if (d.getVar('PACKAGES') or "").split():
>          for dep in (d.getVar('QADEPENDS') or "").split():
> -- 
> 2.7.4
> 





More information about the Openembedded-core mailing list