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

login
register
mail settings
Submitter Laurentiu Palcu
Date June 12, 2012, 3:17 p.m.
Message ID <1339514272-7427-2-git-send-email-laurentiu.palcu@intel.com>
Download mbox | patch
Permalink /patch/29711/
State Accepted
Commit 73f10ae955ba217078fa2c5288b736ae8a30b184
Headers show

Comments

Laurentiu Palcu - June 12, 2012, 3:17 p.m.
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>
---
 meta/classes/sanity.bbclass |   11 +++++++++++
 1 file changed, 11 insertions(+)
Saul Wold - June 14, 2012, 4:27 a.m.
On 06/12/2012 08:17 AM, Laurentiu Palcu wrote:
> 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>
> ---
>   meta/classes/sanity.bbclass |   11 +++++++++++
>   1 file changed, 11 insertions(+)
>
> diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
> index f79fc3f..6ed1e6f 100644
> --- a/meta/classes/sanity.bbclass
> +++ b/meta/classes/sanity.bbclass
> @@ -387,6 +387,17 @@ def check_sanity(sanity_data):
>       if "." in paths or "" in paths:
>           messages = messages + "PATH contains '.' or '', which will break the build, please remove this."
>
> +    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.");
> +
This change seems to trigger in the default case of the standard 
bblayers.conf file included in meta-yocto.  Is there a fix for this?  Do 
we need to uprev the bblayers file?

Sau!

>       if sanity_data.getVar('TARGET_ARCH', True) == "arm":
>           # This path is no longer user-readable in modern (very recent) Linux
>           try:
Laurentiu Palcu - June 14, 2012, 12:06 p.m.
On 06/14/2012 07:27 AM, Saul Wold wrote:
> On 06/12/2012 08:17 AM, Laurentiu Palcu wrote:
>> 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>
>> ---
>>   meta/classes/sanity.bbclass |   11 +++++++++++
>>   1 file changed, 11 insertions(+)
>>
>> diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
>> index f79fc3f..6ed1e6f 100644
>> --- a/meta/classes/sanity.bbclass
>> +++ b/meta/classes/sanity.bbclass
>> @@ -387,6 +387,17 @@ def check_sanity(sanity_data):
>>       if "." in paths or "" in paths:
>>           messages = messages + "PATH contains '.' or '', which will break the build, please remove this."
>>
>> +    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.");
>> +
> This change seems to trigger in the default case of the standard 
> bblayers.conf file included in meta-yocto.  Is there a fix for this?  Do 
> we need to uprev the bblayers file?
There's no fix yet. I will take a look and come with a fix. That's the
reason I avoided throwing a fatal error and print just a warning. So we
have time to fix these existing BBPATH issues without affecting everybody.

Thanks,
Laurentiu

> 
> Sau!
> 
>>       if sanity_data.getVar('TARGET_ARCH', True) == "arm":
>>           # This path is no longer user-readable in modern (very recent) Linux
>>           try:

Patch

diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index f79fc3f..6ed1e6f 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -387,6 +387,17 @@  def check_sanity(sanity_data):
     if "." in paths or "" in paths:
         messages = messages + "PATH contains '.' or '', which will break the build, please remove this."
 
+    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: