Patchwork package.bbclass: Fix split_and_strip_files when file has single quote (')

login
register
mail settings
Submitter eu@felipetonello.com
Date Nov. 1, 2013, 2:25 a.m.
Message ID <1383272753-20012-1-git-send-email-eu@felipetonello.com>
Download mbox | patch
Permalink /patch/60923/
State New
Headers show

Comments

eu@felipetonello.com - Nov. 1, 2013, 2:25 a.m.
From: "Felipe F. Tonello" <eu@felipetonello.com>

Fix false error report when a file that has a single quote by escaping
the single quote. Some packages might install files with quotes, such
as music files and other types, that will cause the problem.

Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>
---
 meta/classes/package.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
eu@felipetonello.com - Nov. 1, 2013, 3:11 a.m.
On 10/31/2013 07:25 PM, eu@felipetonello.com wrote:
> From: "Felipe F. Tonello" <eu@felipetonello.com>
>
> Fix false error report when a file that has a single quote by escaping
> the single quote. Some packages might install files with quotes, such
> as music files and other types, that will cause the problem.
>
> Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>
> ---
>   meta/classes/package.bbclass | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index b0f44c7..a12b7b7 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -747,7 +747,7 @@ python split_and_strip_files () {
>       # 16 - kernel module
>       def isELF(path):
>           type = 0
> -        ret, result = oe.utils.getstatusoutput("file '%s'" % path)
> +        ret, result = oe.utils.getstatusoutput("file '%s'" % path.replace("'", "\\'"))
>
>           if ret:
>               msg = "split_and_strip_files: 'file %s' failed" % path
>


I just found a bug in this implementation. I will send a v2 shortly.

Felipe
Chris Larson - Nov. 1, 2013, 3:47 a.m.
On Thu, Oct 31, 2013 at 8:11 PM, Felipe Ferreri Tonello <
eu@felipetonello.com> wrote:

> On 10/31/2013 07:25 PM, eu@felipetonello.com wrote:
>
>> From: "Felipe F. Tonello" <eu@felipetonello.com>
>>
>> Fix false error report when a file that has a single quote by escaping
>> the single quote. Some packages might install files with quotes, such
>> as music files and other types, that will cause the problem.
>>
>> Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>
>> ---
>>   meta/classes/package.bbclass | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
>> index b0f44c7..a12b7b7 100644
>> --- a/meta/classes/package.bbclass
>> +++ b/meta/classes/package.bbclass
>> @@ -747,7 +747,7 @@ python split_and_strip_files () {
>>       # 16 - kernel module
>>       def isELF(path):
>>           type = 0
>> -        ret, result = oe.utils.getstatusoutput("file '%s'" % path)
>> +        ret, result = oe.utils.getstatusoutput("file '%s'" %
>> path.replace("'", "\\'"))
>>
>>           if ret:
>>               msg = "split_and_strip_files: 'file %s' failed" % path
>>
>>
>
> I just found a bug in this implementation. I will send a v2 shortly.


This should really be fixed to use a better method. In this case we’re just
running a single binary with one argument, there’s no need to call out to a
shell at all, much less have to mess around with escaping arguments :)

Patch

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index b0f44c7..a12b7b7 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -747,7 +747,7 @@  python split_and_strip_files () {
     # 16 - kernel module
     def isELF(path):
         type = 0
-        ret, result = oe.utils.getstatusoutput("file '%s'" % path)
+        ret, result = oe.utils.getstatusoutput("file '%s'" % path.replace("'", "\\'"))
 
         if ret:
             msg = "split_and_strip_files: 'file %s' failed" % path