get_maintainer: fix perl 5.22/5.24 deprecated/incompatible "\C" use
RFC PATCH v2 1/1 get_maintainer: fix perl 5.22/5.24 deprecated/incompatible "\C" use
from linux commit ce8155f7a3d5:
Perl 5.22 emits a deprecated message when "\C" is used in a regex. Perl 5.24 will disallow it altogether.
Fix it by using [A-Z] instead of \C.
From linux adapted to U-Boot by:
---
running get_maintainer.pl drops warnings with PERL > 5.22 . In linux this is fixed though above commit.
But ... I get differences when running the python script:
import os
import subprocess
root_dir = '.'
for directory, subdirectories, files in os.walk(root_dir):
for file in files:
tmp=os.path.join(directory, file)
print(tmp)
ret = subprocess.call(["scripts/get_maintainer.pl", "-f", tmp])
and comparing the output from it, based on the original u-boot code and the code with this patch ...
I have no PERL experience, so made this patch as RFC, maybe someone with better PERL skills can fix it correct.
Changes in v2:
- add Reviewed-by from Andre Przywara
- remove wrong backslash before [A-Z]
- remove change in MAINTAINERS as no longer needed
scripts/get_maintainer.pl | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
scripts/get_maintainer.pl +11 -11
@@ -298,7 +298,7 @@ sub read_maintainers { while (<$maint>) { my $line = $_; - if ($line =~ m/^(\C):\s*(.*)/) { + if ($line =~ m/^([A-Z]):\s*(.*)/) { my $type = $1; my $value = $2;
@@ -533,7 +533,7 @@ sub range_is_maintained { for (my $i = $start; $i < $end; $i++) { my $line = $typevalue[$i]; - if ($line =~ m/^(\C):\s*(.*)/) { + if ($line =~ m/^([A-Z]):\s*(.*)/) { my $type = $1; my $value = $2; if ($type eq 'S') {
@@ -551,7 +551,7 @@ sub range_has_maintainer { for (my $i = $start; $i < $end; $i++) { my $line = $typevalue[$i]; - if ($line =~ m/^(\C):\s*(.*)/) { + if ($line =~ m/^([A-Z]):\s*(.*)/) { my $type = $1; my $value = $2; if ($type eq 'M') {
@@ -600,7 +600,7 @@ sub get_maintainers { for ($i = $start; $i < $end; $i++) { my $line = $typevalue[$i]; - if ($line =~ m/^(\C):\s*(.*)/) { + if ($line =~ m/^([A-Z]):\s*(.*)/) { my $type = $1; my $value = $2; if ($type eq 'X') {
@@ -615,7 +615,7 @@ sub get_maintainers { if (!$exclude) { for ($i = $start; $i < $end; $i++) { my $line = $typevalue[$i]; - if ($line =~ m/^(\C):\s*(.*)/) { + if ($line =~ m/^([A-Z]):\s*(.*)/) { my $type = $1; my $value = $2; if ($type eq 'F') {
@@ -917,7 +917,7 @@ sub find_first_section { while ($index < @typevalue) { my $tv = $typevalue[$index]; - if (($tv =~ m/^(\C):\s*(.*)/)) { + if (($tv =~ m/^([A-Z]):\s*(.*)/)) { last; } $index++;
@@ -931,7 +931,7 @@ sub find_starting_index { while ($index > 0) { my $tv = $typevalue[$index]; - if (!($tv =~ m/^(\C):\s*(.*)/)) { + if (!($tv =~ m/^([A-Z]):\s*(.*)/)) { last; } $index--;
@@ -945,7 +945,7 @@ sub find_ending_index { while ($index < @typevalue) { my $tv = $typevalue[$index]; - if (!($tv =~ m/^(\C):\s*(.*)/)) { + if (!($tv =~ m/^([A-Z]):\s*(.*)/)) { last; } $index++;
@@ -971,7 +971,7 @@ sub get_maintainer_role { for ($i = $start + 1; $i < $end; $i++) { my $tv = $typevalue[$i]; - if ($tv =~ m/^(\C):\s*(.*)/) { + if ($tv =~ m/^([A-Z]):\s*(.*)/) { my $ptype = $1; my $pvalue = $2; if ($ptype eq "S") {
@@ -1030,7 +1030,7 @@ sub add_categories { for ($i = $start + 1; $i < $end; $i++) { my $tv = $typevalue[$i]; - if ($tv =~ m/^(\C):\s*(.*)/) { + if ($tv =~ m/^([A-Z]):\s*(.*)/) { my $ptype = $1; my $pvalue = $2; if ($ptype eq "L") {
@@ -1072,7 +1072,7 @@ sub add_categories { if ($name eq "") { if ($i > 0) { my $tv = $typevalue[$i - 1]; - if ($tv =~ m/^(\C):\s*(.*)/) { + if ($tv =~ m/^([A-Z]):\s*(.*)/) { if ($1 eq "P") { $name = $2; $pvalue = format_email($name, $address, $email_usename);
Signature · 1 line
2.5.0
RFC PATCH v2 1/1 get_maintainer: fix perl 5.22/5.24 deprecated/incompatible "\C" use
Dear Heiko,
Quoted 3 lines · In message <[email protected]> you wrote:
running get_maintainer.pl drops warnings with PERL > 5.22 . In linux this is fixed though above commit.
ACK.
Quoted 1 line
But ... I get differences when running the python script:
So the Python script ...
Quoted 1 line
ret = subprocess.call(["scripts/get_maintainer.pl", "-f", tmp])
...basically does the equivalent of running
scripts/get_maintainer.pl -f <directory>/<file>
on the command line.
Quoted 2 lines
and comparing the output from it, based on the original u-boot code and the code with this patch ...
What exactly do you mean by "I get differences"? What are the used values for "directory" and "file" in your test case, and which exact differences do you get?
Best regards,
Wolfgang Denk
Signature · 6 lines
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"Don't try to outweird me, three-eyes. I get stranger things than you
free with my breakfast cereal."
- Zaphod Beeblebrox in "Hitchhiker's Guide to the Galaxy"RFC PATCH v2 1/1 get_maintainer: fix perl 5.22/5.24 deprecated/incompatible "\C" use
Hello Wolfgang,
Am 07.01.2016 um 17:13 schrieb Wolfgang Denk:
Quoted 13 lines
Dear Heiko,
Quoted 3 lines · In message <[email protected]> you wrote:
running get_maintainer.pl drops warnings with PERL > 5.22 . In linux this is fixed though above commit.
ACK.
Quoted 1 line
But ... I get differences when running the python script:
So the Python script ...
Quoted 7 lines
Quoted 1 line
ret = subprocess.call(["scripts/get_maintainer.pl", "-f", tmp])...basically does the equivalent of running
scripts/get_maintainer.pl-f <directory>/<file>on the command line.
Yes... the script does this just for *all* files in the u-boot tree.
Quoted 6 lines
Quoted 2 lines
and comparing the output from it, based on the original u-boot code and the code with this patch ...
What exactly do you mean by "I get differences"? What are the used values for "directory" and "file" in your test case, and which exact differences do you get?
I do exactly (should have written this to the commit text ... sorry):
- python2.7 check_get.py > ../gnlmpf_org
- Apply this patch (with "patch" not with "git am") to the u-boot tree
- python2.7 check_get.py > ../gnlmpf_new
- diff -purN ../gnlmpf_org ../gnlmpf_new > ../gnlmpf
So I expect only a difference in the "scripts/get_maintainer.pl" file, as no other file has changed, also no change in the git files... First difference:
gnlmpf_new 2016-01-07 13:41:57.937391203 +0100 renamed from gnlmpf_org 2016-01-07 13:39:39.059124449 +0100 +3 -4
@@ -1,12 +1,11 @@ -Masahiro Yamada <[email protected]> (commit_signer:1/1=100%) Jagan Teki <[email protected]> (commit_signer:1/1=100%,authored:1/1=100%) +Masahiro Yamada <[email protected]> (commit_signer:1/1=100%) u-boot at lists.denx.de (open list) Masahiro Yamada <[email protected]> (commit_signer:2/4=50%,authored:2/4=50%) +Stefan Roese <[email protected]> (commit_signer:1/4=25%) Joe Hershberger <[email protected]> (commit_signer:1/4=25%,authored:1/4=25%) Marek Vasut <[email protected]> (commit_signer:1/4=25%) -Stefan Roese <[email protected]> (commit_signer:1/4=25%) -York Sun <[email protected]> (commit_signer:1/4=25%) -Simon Glass <[email protected]> (authored:1/4=25%) +Simon Glass <[email protected]> (commit_signer:1/4=25%,authored:1/4=25%) u-boot at lists.denx.de (open list) Masahiro Yamada <[email protected]> (commit_signer:14/24=58%,authored:14/24=58%) Stefan Roese <[email protected]> (commit_signer:4/24=17%)
The "Masahiro" and the "Simon" diff are only a diff in the order, but "York Sun" is missing complete ...
bye,
Heiko
Signature · 2 lines
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Quoted 10 lines · Heiko Schocher
from linux commit
ce8155f7a3d5:Perl 5.22 emits a deprecated message when "\C" is used in a regex. Perl 5.24 will disallow it altogether.
Fix it by using [A-Z] instead of \C.
Quoted 1 line
From linux adapted to U-Boot by:
Signed-off-by Heiko Schocher <[email protected]>Reviewed-by Andre Przywara <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160108/54761c00/attachment.sig>