From: "Denys Dmytriyenko" <denis@denix.org>
To: Domarys Correa <domarys.correa@ossystems.com.br>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core][PATCH v2] insane.bbclass: Add test for shebang line length
Date: Wed, 15 Apr 2020 15:00:14 -0400 [thread overview]
Message-ID: <20200415190014.GE11927@denix.org> (raw)
In-Reply-To: <20200414182020.11777-1-domarys.correa@ossystems.com.br>
On Tue, Apr 14, 2020 at 03:20:20PM -0300, Domarys Correa wrote:
> Shebang lines longer than 128 characters can give an error
> depending on the operating system.
> This implements a test that signals an error when locating a
> faulty shebang.
>
> YOCTO: #11053
>
> Signed-off-by: Domarys Correa <domarys.correa@ossystems.com.br>
> ---
What are the changes from v1? Please mention briefly here to help with reviews.
> meta/classes/insane.bbclass | 25 ++++++++++++++++++++++++-
> 1 file changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
> index 9605ac2bae..bcb1464c91 100644
> --- a/meta/classes/insane.bbclass
> +++ b/meta/classes/insane.bbclass
> @@ -34,7 +34,7 @@ ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
> split-strip packages-list pkgv-undefined var-undefined \
> version-going-backwards expanded-d invalid-chars \
> license-checksum dev-elf file-rdeps configure-unsafe \
> - configure-gettext perllocalpod \
> + configure-gettext perllocalpod shebang-size \
> "
> # Add usrmerge QA check based on distro feature
> ERROR_QA_append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}"
> @@ -82,6 +82,29 @@ def package_qa_add_message(messages, section, new_msg):
> else:
> messages[section] = messages[section] + "\n" + new_msg
>
> +QAPATHTEST[shebang-size] = "package_qa_check_shebang_size"
> +def package_qa_check_shebang_size(path, name, d, elf, messages):
> + if os.path.islink(path) or elf:
> + return
> +
> + try:
> + with open(path, 'rb') as f:
> + stanza = f.readline(130)
> + except IOError:
> + return
> +
> + if stanza.startswith(b'#!'):
> + #Shebang not found
> + try:
> + stanza = stanza.decode("utf-8")
> + except UnicodeDecodeError:
> + #If it is not a text file, it is not a script
> + return
> +
> + if len(stanza) > 129:
> + package_qa_add_message(messages, "shebang-size", "%s: %s maximum shebang size exceeded, the maximum size is 128." % (name, package_qa_clean_path(path, d)))
> + return
> +
> QAPATHTEST[libexec] = "package_qa_check_libexec"
> def package_qa_check_libexec(path,name, d, elf, messages):
>
> --
> 2.17.1
>
>
prev parent reply other threads:[~2020-04-15 19:00 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-14 18:20 [OE-core][PATCH v2] insane.bbclass: Add test for shebang line length Domarys Correa
2020-04-15 19:00 ` Denys Dmytriyenko [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200415190014.GE11927@denix.org \
--to=denis@denix.org \
--cc=domarys.correa@ossystems.com.br \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox