Re: [PATCH] docs: license-rules.txt: cover SPDX headers on Python scripts
From: Mauro Carvalho Chehab
Date: Fri Sep 06 2019 - 07:35:07 EST
Em Thu, 05 Sep 2019 10:45:36 -0700
Joe Perches <joe@xxxxxxxxxxx> escreveu:
> On Thu, 2019-09-05 at 09:07 -0300, Mauro Carvalho Chehab wrote:
> > There are currently 227 files that don't complain with the "up to line 3"
> > rule, including COPYING (with should probably be excluded from the check).
> >
> > Patches are at:
> >
> > https://git.linuxtv.org/mchehab/experimental.git/log/?h=spdx_pedantic
> >
> > Btw, most violations are due to:
> >
> > /*
> > * SPDX...
>
> Hey Mauro.
>
> Here's a little script to move all of the improperly located
> SPDX-License-Identifier lines in [.ch] files.
>
> Using this command line:
>
> $ git grep -n 'SPDX-License-Identifier: ' -- '*.[ch]' | \
> grep -v ':1:' | perl move_spdx.pl
>
> and
>
> $ cat move_spdx.pl
> while (<>) {
> /^([^:]+):([^:]+):(.*)/;
> my ($file, $line, $spdx) = ($1, $2, $3);
> $spdx =~ s/^\s*\/?\*\s*//;
> $spdx =~ s/\s*\*\/\s*$//;
> if ($file =~ /\.h$/) {
> $spdx = "/* $spdx */";
> } else {
> $spdx = "// $spdx";
> }
> open(FH, '<', $file) or die $!;
> my @lines = <FH>;
> close FH;
> open(FH, '>', $file) or die $!;
> print FH "$spdx\n";
> my $count = 0;
> foreach (@lines) {
> $count++;
> next if ($count == $line);
> next if ($count == $line - 1 && $_ =~ /^\s*\*\s*$/);
> next if ($count == $line + 1 && $_ =~ /^\s*\*\s*$/);
> print FH "$_";
> }
> close FH;
> }
>
> which gives this diff for today's -next
Nice script!
I did some changes on it, plus one change at the pedantic mode of
scripts/spdxcheck.py, and placed the corresponding patches at:
https://git.linuxtv.org/mchehab/experimental.git/log/?h=spdx_pedantic
With that, we now have (next-20190904):
Warning: SPDX header for file Documentation/networking/caif/caif.rst is at line 2
Warning: SPDX header for file Documentation/networking/mac80211_hwsim/mac80211_hwsim.rst is at line 2
Warning: SPDX header for file tools/thermal/tmon/tmon.8 is at line 2
The first two are due to a ":orphan:" tag at the RST files. IMO, it makes
sense to have this at the very beginning of the files with weren't added
yet at the documentation body. Having them generating a warning is a plus.
The last one is interesting... what's the "very first line" where a
SPDX header tag should be on a man page?
Thanks,
Mauro