[OE-core] [pyro][PATCH] package.bbclass: Add '-b' option to file call in isELF

akuster808 akuster808 at gmail.com
Wed Apr 18 21:52:06 UTC 2018



On 04/16/2018 12:32 PM, Mark Hatle wrote:
> The isELF function works by running:
>
>    result = file <pathname>
>    if 'ELF' in result
>
> By default 'file' will prepend the result with the path name of the file
> that is being checked.  This usually works fine, such as:
>
> $ file /home/foo/openembedded-core/meta/classes/package.bbclass
> /home/foo/openembedded-core/meta/classes/package.bbclass: Python script, ASCII text executable, with very long lines
>
> However, if the path includes 'ELF', ELF will end up in the result, and then
> the check will return positive.
>
> $ file /home/ELF/openembedded-core/meta/classes/package.bbclass
> /home/ELF/openembedded-core/meta/classes/package.bbclass: Python script, ASCII text executable, with very long lines
>
> This will then result in the isELF coming back true, and possibly causing the
> checks that use isELF, such as the 'is it already stripped' check, to do the
> incorrect thing.
>
> Adding the '-b' option to file will result in the path being omitted in the
> result:
>
> $ file /home/ELF/openembedded-core/meta/classes/package.bbclass
> Python script, ASCII text executable, with very long lines
>
> Signed-off-by: Mark Hatle <mark.hatle at windriver.com>
In stable/pyro-next


> ---
>  meta/classes/package.bbclass | 2 +-
>  meta/classes/staging.bbclass | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index a03c05b9f7..0844fd5065 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -898,7 +898,7 @@ python split_and_strip_files () {
>      # 16 - kernel module
>      def isELF(path):
>          type = 0
> -        ret, result = oe.utils.getstatusoutput("file \"%s\"" % path.replace("\"", "\\\""))
> +        ret, result = oe.utils.getstatusoutput("file -b '%s'" % path.replace("\"", "\\\""))
>  
>          if ret:
>              msg = "split_and_strip_files: 'file %s' failed" % path
> diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
> index 984051d6aa..bff04373dc 100644
> --- a/meta/classes/staging.bbclass
> +++ b/meta/classes/staging.bbclass
> @@ -84,7 +84,7 @@ python sysroot_strip () {
>      # 16 - kernel module
>      def isELF(path):
>          type = 0
> -        ret, result = oe.utils.getstatusoutput("file \"%s\"" % path.replace("\"", "\\\""))
> +        ret, result = oe.utils.getstatusoutput("file -b \"%s\"" % path.replace("\"", "\\\""))
>  
>          if ret:
>              bb.error("split_and_strip_files: 'file %s' failed" % path)




More information about the Openembedded-core mailing list