Patchwork [3/6] sanity.bbclass: warn the user if BBPATH contains wrong entries

login
register
mail settings
Submitter Scott Garman
Date June 18, 2012, 7:57 p.m.
Message ID <8e362de541f2827cb615e86b850353d929d33d24.1340038108.git.scott.a.garman@intel.com>
Download mbox | patch
Permalink /patch/30073/
State New
Headers show

Comments

Scott Garman - June 18, 2012, 7:57 p.m.
From: Laurentiu Palcu <laurentiu.palcu@intel.com>

If BBPATH references the working directory, the user is warned and asked
to fix the problem.

[Yocto #1465]

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Reworked commit to fix merge conflicts with denzil branch.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
---
 meta/classes/sanity.bbclass |   13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
Richard Purdie - June 21, 2012, 10:54 a.m.
On Mon, 2012-06-18 at 12:57 -0700, Scott Garman wrote:
> From: Laurentiu Palcu <laurentiu.palcu@intel.com>
> 
> If BBPATH references the working directory, the user is warned and asked
> to fix the problem.
> 
> [Yocto #1465]
> 
> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> 
> Reworked commit to fix merge conflicts with denzil branch.
> 
> Signed-off-by: Scott Garman <scott.a.garman@intel.com>
> ---
>  meta/classes/sanity.bbclass |   13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
> index 9755694..298372b 100644
> --- a/meta/classes/sanity.bbclass
> +++ b/meta/classes/sanity.bbclass
> @@ -310,7 +310,18 @@ def check_sanity(sanity_data):
>      if "." in data.getVar('PATH', sanity_data, True).split(":"):
>          messages = messages + "PATH contains '.' which will break the build, please remove this"
>  
> -    if data.getVar('TARGET_ARCH', sanity_data, True) == "arm":
> +    bbpaths = sanity_data.getVar('BBPATH', True).split(":")
> +    if "." in bbpaths or "" in bbpaths:
> +        # TODO: change the following message to fatal when all BBPATH issues
> +        # are fixed
> +        bb.warn("BBPATH references the current directory, either through "    \
> +                "an empty entry, or a '.'.\n\t This is unsafe and means your "\
> +                "layer configuration is adding empty elements to BBPATH.\n\t "\
> +                "Please check your layer.conf files and other BBPATH "        \
> +                "settings to remove the current working directory "           \
> +                "references.");
> +
> +    if sanity_data.getVar('TARGET_ARCH', True) == "arm":
>          # This path is no longer user-readable in modern (very recent) Linux
>          try:
>              if os.path.exists("/proc/sys/vm/mmap_min_addr"):

I think for this one, I'd like to merge the bitbake fixes back to denzil
but leave this one out. Its going to warn pretty much everywhere and we
don't have good ways of fixing it yet.

The actual manifestation of the bug is fixed by the bitbake changes.

Cheers,

Richard

Patch

diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index 9755694..298372b 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -310,7 +310,18 @@  def check_sanity(sanity_data):
     if "." in data.getVar('PATH', sanity_data, True).split(":"):
         messages = messages + "PATH contains '.' which will break the build, please remove this"
 
-    if data.getVar('TARGET_ARCH', sanity_data, True) == "arm":
+    bbpaths = sanity_data.getVar('BBPATH', True).split(":")
+    if "." in bbpaths or "" in bbpaths:
+        # TODO: change the following message to fatal when all BBPATH issues
+        # are fixed
+        bb.warn("BBPATH references the current directory, either through "    \
+                "an empty entry, or a '.'.\n\t This is unsafe and means your "\
+                "layer configuration is adding empty elements to BBPATH.\n\t "\
+                "Please check your layer.conf files and other BBPATH "        \
+                "settings to remove the current working directory "           \
+                "references.");
+
+    if sanity_data.getVar('TARGET_ARCH', True) == "arm":
         # This path is no longer user-readable in modern (very recent) Linux
         try:
             if os.path.exists("/proc/sys/vm/mmap_min_addr"):