Re: [PATCH v2] checkpatch: extend author Signed-off-by check for split From: header

From: Lukas Bulwahn
Date: Mon Sep 21 2020 - 03:49:05 EST



Dwaipayan, just a quick nitpick:

Your subject line has two spaces in front of 'From:'

On Sun, 20 Sep 2020, Dwaipayan Ray wrote:

> Checkpatch did not handle cases where the author From: header
> was split into multiple lines. The author identity could not
> be resolved and checkpatch generated a false NO_AUTHOR_SIGN_OFF
> warning.
>
> A typical example is Commit e33bcbab16d1 ("tee: add support for

You can write 'Commit' lowercase as 'commit'.

> session's client UUID generation"). When checkpatch was run on
> this commit, it displayed:
>
> "WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal
> patch author ''"
>
> This was due to split header lines not being handled properly and
> the author himself wrote in Commit cd2614967d8b ("checkpatch: warn
> if missing author Signed-off-by"):
>

Same here.

> "Split From: headers are not fully handled: only the first part
> is compared."
>
> Support split From: headers by correctly parsing the header
> extension lines. RFC 2822, Section-2.2.3 stated that each extended
> line must start with a WSP character (a space or htab). The solution
> was therefore to concatenate the lines which start with a WSP to
> get the correct long header.
>
> Suggested-by: Joe Perches <joe@xxxxxxxxxxx>
> Link: https://lore.kernel.org/linux-kernel-mentees/f5d8124e54a50480b0a9fa638787bc29b6e09854.camel@xxxxxxxxxxx/
> Signed-off-by: Dwaipayan Ray <dwaipayanray1@xxxxxxxxx>



On v5.4..v5.7 using data from a previous evaluation, I found 116 commits
with
the error message "Missing Signed-off-by: line by nominal patch author
''",
when running ./scripts/checkpatch.pl on v5.9-rc6.


After this patch application, all 116 warnings disappeared with "Missing
Signed-off-by: line by nominal patch author ''"
and these three new warnings appeared:

322f6a3182d42df18059a89c53b09d33919f755e:35: WARNING: Missing Signed-off-by: line by nominal patch author 'Johnson CH Chen <JohnsonCH.Chen@xxxxxxxx>'
18977008f44c66bdd6d20bb432adf71372589303:37: WARNING: Missing Signed-off-by: line by nominal patch author '"Marek Szyprowski via Linux.Kernel.Org" <m.szyprowski=samsung.com@xxxxxxxxxxxxxxxx>'
ed3520427f57327f581de0cc28c1c30df08f0103:51: WARNING: Missing Signed-off-by: line by nominal patch author 'Chengguang Xu via Linux-f2fs-devel <linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx>'

With that said, I think am happy to add my tags:

Reviewed-by: Lukas Bulwahn <lukas.bulwahn@xxxxxxxxx>
Tested-by: Lukas Bulwahn <lukas.bulwahn@xxxxxxxxx>

Dwaipayan, you can fix the minor commit message issues above, add the tags
from Joe and me to the end of your commit message and send the patch as v3
out to Andrew Morton with everyone sofar as CC. Andrew Morton will pick up
the patch and make it travel to Linus Torvalds.

Good job so far!

After you did that, let us develop and discuss a plan to refine the
'trickier' part of false AUTHOR_SIGN_OFF warnings for developer and
maintainers with some known special author and sign-off procedures.

Lukas

> ---
> scripts/checkpatch.pl | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 504d2e431c60..9e65d21456f1 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -2661,6 +2661,10 @@ sub process {
> # Check the patch for a From:
> if (decode("MIME-Header", $line) =~ /^From:\s*(.*)/) {
> $author = $1;
> + my $curline = $linenr;
> + while(defined($rawlines[$curline]) && ($rawlines[$curline++] =~ /^[ \t]\s*(.*)/)) {
> + $author .= $1;
> + }
> $author = encode("utf8", $author) if ($line =~ /=\?utf-8\?/i);
> $author =~ s/"//g;
> $author = reformat_email($author);
> --
> 2.27.0
>
>