All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
To: Joe Perches <joe@perches.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	Mauro Carvalho Chehab <mchehab@infradead.org>,
	linux-kernel@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
	Jessica Yu <jeyu@kernel.org>,
	Federico Vaga <federico.vaga@vaga.pv.it>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-doc@vger.kernel.org
Subject: Re: [PATCH] docs: license-rules.txt: cover SPDX headers on Python scripts
Date: Fri, 6 Sep 2019 08:37:14 -0300	[thread overview]
Message-ID: <20190906083714.0cf7eb20@coco.lan> (raw)
In-Reply-To: <20190906083457.7e7934ec@coco.lan>

Em Fri, 6 Sep 2019 08:34:57 -0300
Mauro Carvalho Chehab <mchehab+samsung@kernel.org> escreveu:

> Em Thu, 05 Sep 2019 10:45:36 -0700
> Joe Perches <joe@perches.com> 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

In time: I'm enclosing the modified script. just run it directly with:

	perl ./move_spdx.pl

and it will move the SPDX headers where pertinent.

Thanks,
Mauro

---

#!/usr/bin/perl 

@file_arr = qx(git grep -n 'SPDX-License-Identifier: ' | grep -v ':1:');
foreach (@file_arr) {
    /^([^:]+):([^:]+):(.*)/;
    my ($file, $line, $spdx) = ($1, $2, $3);

    next if ($file =~ m,(COPYING|LICENSES/|sha1-armv4-large.S),);
    next if ($line > 10);

    $spdx =~ s/^\s*\/?\*\s*//;
    $spdx =~ s/\s*\*\/\s*$//;
    $spdx = $1 if m/(SPDX-License-Identifier:.*)/;
    $is_script = 0;
    if ($file =~ /\.(h|dts|dtsi|S)$/) {
	$spdx = "/* $spdx */";
    } elsif ($file =~ /\.(c)$/) {
	$spdx = "// $spdx";
    } elsif ($file =~ /\.(rst)$/) {
	$spdx = ".. $spdx";
    } elsif ($file =~ /\.(py|pl|sh)$/ || !$file =~ /\./) {
        $is_script = 1;
	$spdx = "# $spdx";
    } else {
        next;
    }
    open(FH, '<', $file) or die $!;
    my @lines = <FH>;
    close FH;
    open(FH, '>', $file) or die $!;
    my $count = 0;
    my $print_spdx = 1;
    foreach (@lines) {
	$count++;
        if ($print_spdx) {
            if ($count == 1 && (/:orphan:/ || /^#\!/)) {
                print FH "$_";
                next;
            }
            if ($count <= 2 && /^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)/) {
                print FH "$_";
                next;
            }
            print FH "$spdx\n";
	    $print_spdx = 0;
        }
	next if ($count == $line);
	next if ($count == $line - 1 && $_ =~ /^\s*\*\s*$/);
	next if ($count == $line + 1 && $_ =~ /^\s*\*\s*$/);
	next if ($count == $line - 1 && $_ =~ /^$/);
	print FH "$_";
    }
    close FH;
}

  reply	other threads:[~2019-09-06 11:37 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-31 15:11 [PATCH] media: siano: Use the correct style for SPDX License Identifier Nishad Kamdar
2019-09-04 18:34 ` Mauro Carvalho Chehab
2019-09-04 18:36   ` Greg Kroah-Hartman
2019-09-04 19:00     ` Mauro Carvalho Chehab
2019-09-04 19:26       ` Joe Perches
2019-09-05  5:54       ` Greg Kroah-Hartman
2019-09-05  8:56         ` Mauro Carvalho Chehab
2019-09-05  9:23           ` [PATCH] docs: license-rules.txt: cover SPDX headers on Python scripts Mauro Carvalho Chehab
2019-09-05  9:27             ` Greg Kroah-Hartman
2019-09-05 10:50               ` Mauro Carvalho Chehab
2019-09-05 11:01                 ` [PATCH 1/3] docs: sphinx: add SPDX header for some sphinx extensions Mauro Carvalho Chehab
2019-09-05 11:01                   ` [PATCH 2/3] tools: perf: fix SPDX header in the light of PEP-263 Mauro Carvalho Chehab
2019-09-05 11:01                   ` [PATCH 3/3] tools: intel_pstate_tracer.py: " Mauro Carvalho Chehab
2019-09-05 12:07               ` [PATCH] docs: license-rules.txt: cover SPDX headers on Python scripts Mauro Carvalho Chehab
2019-09-05 17:45                 ` Joe Perches
2019-09-06 11:34                   ` Mauro Carvalho Chehab
2019-09-06 11:37                     ` Mauro Carvalho Chehab [this message]
2019-09-06 12:20                     ` Joe Perches
2019-09-06 14:45                       ` Mauro Carvalho Chehab
2019-09-06 16:20                         ` Joe Perches
2019-09-06 17:33                     ` Joe Perches
2019-09-06 18:17                       ` Mauro Carvalho Chehab
2019-09-06 18:30                         ` Joe Perches
2019-09-06 18:12                     ` [RFC PATCH] tools: Add SPDX license to man pages Joe Perches
2019-09-06 19:53                       ` Mauro Carvalho Chehab
2019-09-05 12:57             ` [PATCH] docs: license-rules.txt: cover SPDX headers on Python scripts Jonathan Corbet
2019-09-05 14:17               ` Greg Kroah-Hartman
2019-09-05 17:10                 ` Mauro Carvalho Chehab
2019-09-06 16:41                 ` Markus Heiser
2019-09-05 19:28               ` Mauro Carvalho Chehab
2019-09-05 19:40                 ` Jonathan Corbet
2019-09-05 20:07                   ` Mauro Carvalho Chehab
2019-09-06 15:18                     ` Markus Heiser
2019-09-05  9:28           ` [PATCH] media: siano: Use the correct style for SPDX License Identifier Joe Perches
2019-09-05 10:46             ` Mauro Carvalho Chehab

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=20190906083714.0cf7eb20@coco.lan \
    --to=mchehab+samsung@kernel.org \
    --cc=corbet@lwn.net \
    --cc=federico.vaga@vaga.pv.it \
    --cc=gregkh@linuxfoundation.org \
    --cc=jeyu@kernel.org \
    --cc=joe@perches.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@infradead.org \
    --cc=tglx@linutronix.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.