[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] scripts/checkpatch: emit a warning if an imported file is to
From: |
Cornelia Huck |
Subject: |
Re: [PATCH] scripts/checkpatch: emit a warning if an imported file is touched |
Date: |
Wed, 17 Jul 2024 11:58:46 +0200 |
User-agent: |
Notmuch/0.38.3 (https://notmuchmail.org) |
On Wed, Jul 17 2024, Stefano Garzarella <sgarzare@redhat.com> wrote:
> If a file imported from Linux is touched, emit a warning and suggest
> using scripts/update-linux-headers.sh
>
> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> ---
> scripts/checkpatch.pl | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index ff373a7083..b0e8266fa2 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -1374,6 +1374,7 @@ sub process {
> my $in_header_lines = $file ? 0 : 1;
> my $in_commit_log = 0; #Scanning lines before patch
> my $reported_maintainer_file = 0;
> + my $reported_imported_file = 0;
> my $non_utf8_charset = 0;
>
> our @report = ();
> @@ -1673,8 +1674,17 @@ sub process {
> # ignore non-hunk lines and lines being removed
> next if (!$hunk_line || $line =~ /^-/);
>
> -# ignore files that are being periodically imported from Linux
> - next if ($realfile =~
> /^(linux-headers|include\/standard-headers)\//);
> +# ignore files that are being periodically imported from Linux and emit a
> warning
> + if ($realfile =~
> /^(linux-headers|include\/standard-headers)\//) {
> + if (!$reported_imported_file) {
> + $reported_imported_file = 1;
> + WARN("added, moved or deleted file(s) " .
> + "imported from Linux, are you using " .
> + "scripts/update-linux-headers.sh?\n" .
> + $herecurr);
> + }
> + next;
> + }
Thanks, that looks useful -- just two comments (sorry, my perl-fu is
low):
- Is there a way to check that this is a proper linux headers update?
We'd have to rely on heuristics, but OTOH, we also usually want a
headers update to use a certain format ($SUBJECT containing "headers
update", patch description pointing to the version this update was
done against.) Not sure if it is worth actually trying to figure this
out.
- A common issue is headers changes mixed in with other code changes,
which should not happen -- can we check for that as well and advise
to either do a headers update, or use a placeholder patch?
>
> #trailing whitespace
> if ($line =~ /^\+.*\015/) {