lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200427055755.GA21898@ravnborg.org>
Date:   Mon, 27 Apr 2020 07:57:55 +0200
From:   Sam Ravnborg <sam@...nborg.org>
To:     Joe Perches <joe@...ches.com>
Cc:     Rob Herring <robh+dt@...nel.org>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Adrian Ratiu <adrian.ratiu@...labora.com>,
        devicetree@...r.kernel.org,
        dri-devel <dri-devel@...ts.freedesktop.org>,
        Laurent Pinchart <laurent.pinchart+renesas@...asonboard.com>,
        Neil Armstrong <narmstrong@...libre.com>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        Andrzej Hajda <a.hajda@...sung.com>,
        Collabora Kernel ML <kernel@...labora.com>
Subject: Re: [PATCH] get_maintainer: Add email addresses from .yaml files

Hi Joe.

On Sun, Apr 26, 2020 at 10:40:52PM -0700, Joe Perches wrote:
> .yaml files can contain maintainer/author addresses and it seems
> unlikely or unnecessary that individual MAINTAINER file section
> entries for each .yaml file will be created.
> 
> So dd the email addresses found in .yaml files to the default
     ^
     add

> get_maintainer output.
> 
> The email addresses are marked with "(in file)" when using the
> "--roles" or "--rolestats" options.
> 
> Miscellanea:
> 
> o Change $file_emails to $email_file_emails to avoid visual
>   naming conflicts with @file_emails
> 
> Signed-off-by: Joe Perches <joe@...ches.com>
Acked-by: Sam Ravnborg <sam@...nborg.org>
Tested-by: Sam Ravnborg <sam@...nborg.org>

The patch did not apply on top of -rc3, but it was trivial to fix.
Tested and works like a charm.
Thanks for doing this!

	Sam

> ---
>  scripts/get_maintainer.pl | 44 +++++++++++++++++++++++++++++---------------
>  1 file changed, 29 insertions(+), 15 deletions(-)
> 
> diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
> index 6cbcd1..6d973f 100755
> --- a/scripts/get_maintainer.pl
> +++ b/scripts/get_maintainer.pl
> @@ -57,7 +57,7 @@ my $status = 0;
>  my $letters = "";
>  my $keywords = 1;
>  my $sections = 0;
> -my $file_emails = 0;
> +my $email_file_emails = 0;
>  my $from_filename = 0;
>  my $pattern_depth = 0;
>  my $self_test = undef;
> @@ -69,6 +69,12 @@ my $vcs_used = 0;
>  
>  my $exit = 0;
>  
> +my @files = ();
> +my @fixes = ();			# If a patch description includes Fixes: lines
> +my @range = ();
> +my @keyword_tvi = ();
> +my @file_emails = ();
> +
>  my %commit_author_hash;
>  my %commit_signer_hash;
>  
> @@ -266,7 +272,7 @@ if (!GetOptions(
>  		'pattern-depth=i' => \$pattern_depth,
>  		'k|keywords!' => \$keywords,
>  		'sections!' => \$sections,
> -		'fe|file-emails!' => \$file_emails,
> +		'fe|file-emails!' => \$email_file_emails,
>  		'f|file' => \$from_filename,
>  		'find-maintainer-files' => \$find_maintainer_files,
>  		'mpath|maintainer-path=s' => \$maintainer_path,
> @@ -424,6 +430,22 @@ sub read_all_maintainer_files {
>      }
>  }
>  
> +sub maintainers_in_file {
> +    my ($file) = @_;
> +
> +    return if ($file =~ m@\bMAINTAINERS$@);
> +
> +    if (-f $file && ($email_file_emails || $file =~ /\.yaml$/)) {
> +	open(my $f, '<', $file)
> +	    or die "$P: Can't open $file: $!\n";
> +	my $text = do { local($/) ; <$f> };
> +	close($f);
> +
> +	my @poss_addr = $text =~ m$[A-Za-zÀ-ÿ\"\' \,\.\+-]*\s*[\,]*\s*[\(\<\{]{0,1}[A-Za-z0-9_\.\+-]+\@[A-Za-z0-9\.-]+\.[A-Za-z0-9]+[\)\>\}]{0,1}$g;
> +	push(@file_emails, clean_file_emails(@poss_addr));
> +    }
> +}
> +
>  #
>  # Read mail address map
>  #
> @@ -504,12 +526,6 @@ sub read_mailmap {
>  
>  ## use the filenames on the command line or find the filenames in the patchfiles
>  
> -my @files = ();
> -my @fixes = ();			# If a patch description includes Fixes: lines
> -my @range = ();
> -my @keyword_tvi = ();
> -my @file_emails = ();
> -
>  if (!@...V) {
>      push(@ARGV, "&STDIN");
>  }
> @@ -527,7 +543,7 @@ foreach my $file (@ARGV) {
>  	$file =~ s/^\Q${cur_path}\E//;	#strip any absolute path
>  	$file =~ s/^\Q${lk_path}\E//;	#or the path to the lk tree
>  	push(@files, $file);
> -	if ($file ne "MAINTAINERS" && -f $file && ($keywords || $file_emails)) {
> +	if ($file ne "MAINTAINERS" && -f $file && $keywords) {
>  	    open(my $f, '<', $file)
>  		or die "$P: Can't open $file: $!\n";
>  	    my $text = do { local($/) ; <$f> };
> @@ -539,10 +555,6 @@ foreach my $file (@ARGV) {
>  		    }
>  		}
>  	    }
> -	    if ($file_emails) {
> -		my @poss_addr = $text =~ m$[A-Za-zÀ-ÿ\"\' \,\.\+-]*\s*[\,]*\s*[\(\<\{]{0,1}[A-Za-z0-9_\.\+-]+\@[A-Za-z0-9\.-]+\.[A-Za-z0-9]+[\)\>\}]{0,1}$g;
> -		push(@file_emails, clean_file_emails(@poss_addr));
> -	    }
>  	}
>      } else {
>  	my $file_cnt = @files;
> @@ -923,6 +935,8 @@ sub get_maintainers {
>  		print("\n");
>  	    }
>  	}
> +
> +	maintainers_in_file($file);
>      }
>  
>      if ($keywords) {
> @@ -1835,7 +1849,7 @@ tm toggle maintainers
>  tg toggle git entries
>  tl toggle open list entries
>  ts toggle subscriber list entries
> -f  emails in file       [$file_emails]
> +f  emails in file       [$email_file_emails]
>  k  keywords in file     [$keywords]
>  r  remove duplicates    [$email_remove_duplicates]
>  p# pattern match depth  [$pattern_depth]
> @@ -1960,7 +1974,7 @@ EOT
>  		bool_invert(\$email_git_all_signature_types);
>  		$rerun = 1;
>  	    } elsif ($sel eq "f") {
> -		bool_invert(\$file_emails);
> +		bool_invert(\$email_file_emails);
>  		$rerun = 1;
>  	    } elsif ($sel eq "r") {
>  		bool_invert(\$email_remove_duplicates);
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ