The following commit has been merged in the ubuntu-master branch:
commit 974926bc9499febca5504f5e4da8e4733ddd960e
Author: Frank Lichtenheld <[EMAIL PROTECTED]>
Date:   Mon Apr 21 20:02:04 2008 +0200

    [UBUNTU] Implement on-the-fly rewriting of maintainer fields
    
    Implement the same rules as pkgbinarymangler for rewriting
    maintainer fields. This will fix the maintainer field of
    source packages that were taken without changes from Debian
    and contain therefor still the original maintainer information.
    
    This should significantly reduce the number of Debian maintainers
    that are listed on packages.ubuntu.com as Maintainers.
    
    Thanks again to Colin Watson <cjwatson -at- ubuntu com> for the
    suggestion.

diff --git a/lib/Packages/Page.pm b/lib/Packages/Page.pm
index 879e6a6..4772f83 100644
--- a/lib/Packages/Page.pm
+++ b/lib/Packages/Page.pm
@@ -10,7 +10,7 @@ use Packages::CGI;
 use Packages::I18N::Locale;
 
 our @ISA = qw( Exporter );
-our @EXPORT_OK = qw( split_name_mail parse_deps handle_maintainer_fields);
+our @EXPORT_OK = qw( split_name_mail parse_deps );
 our %EXPORT_TAGS = ( all => [ @EXPORT_OK ] );
 
 our $ARCHIVE_DEFAULT = '';
@@ -51,8 +51,46 @@ sub split_name_mail {
     return ($name, $email);
 }
 
+sub override_maint {
+    my ($self, $data) = @_;
+
+    return if $data->{'original-maintainer'};
+    return unless $data->{maintainer};
+
+    my ($name, $mail) = split_name_mail( $data->{maintainer} );
+
+    # taken from etc/pkgbinarymangler/maintainermangler.overrides
+    return if $mail =~ 
/\@(ubuntu\.com|canonical\.com|lists\.ubuntu\.com|lists\.canonical\.com|ubuntu\.com\.au|kubuntu\.org)^/o;
+    return if $mail =~ /^([EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL 
PROTECTED]|[EMAIL PROTECTED])^/o;
+
+    if ($mail eq '[EMAIL PROTECTED]') {
+       $data->{maintainer} = 'Adam Conrad <[EMAIL PROTECTED]>';
+       return 1;
+    }
+    if ($mail eq '[EMAIL PROTECTED]') {
+       $data->{maintainer} = 'Martin Pitt <[EMAIL PROTECTED]>';
+       return 1;
+    }
+
+    $data->{'original-maintainer'} = $data->{maintainer};
+    foreach ($data->{section}) {
+       /^(main|restricted)$/ && do {
+           $data->{maintainer} = 'Ubuntu Core Developers <[EMAIL PROTECTED]>';
+           last;
+       };
+       /^(uni|multi)verse$/ && do {
+           $data->{maintainer} = 'Ubuntu MOTU Developers <[EMAIL PROTECTED]>';
+           last;
+       };
+
+       die 'Huh?';
+    }
+
+    return 1;
+}
+
 sub handle_maintainer_fields {
-    my ($data) = @_;
+    my ($self, $data) = @_;
     my (@uploaders, @orig_uploaders);
 
     if ($data->{'original-maintainer'}) {
@@ -69,6 +107,10 @@ sub handle_maintainer_fields {
        }
     } else {
        if ($data->{maintainer} ||= '') {
+           if ($self->override_maint($data)) {
+               return $self->handle_maintainer_fields($data);
+           }
+
            push @uploaders, [ split_name_mail( $data->{maintainer} ) ];
        }
        if ($data->{uploaders}) {
@@ -97,7 +139,7 @@ sub add_src_data {
        $self->{src}{files} = [EMAIL PROTECTED];
     }
     $self->{src}{directory} = $data{directory};
-    my ($uploaders, $orig_uploaders) = handle_maintainer_fields(\%data);
+    my ($uploaders, $orig_uploaders) = $self->handle_maintainer_fields(\%data);
     $self->{src}{uploaders} = $uploaders;
     $self->{src}{orig_uploaders} = $orig_uploaders if @$orig_uploaders;
 
diff --git a/lib/Packages/SrcPage.pm b/lib/Packages/SrcPage.pm
index 47735cf..433bb9d 100644
--- a/lib/Packages/SrcPage.pm
+++ b/lib/Packages/SrcPage.pm
@@ -38,7 +38,7 @@ sub merge_package {
 
        $self->{data} = $data;
 
-       my ($uploaders, $orig_uploaders) = handle_maintainer_fields($data);
+       my ($uploaders, $orig_uploaders) = 
$self->handle_maintainer_fields($data);
        $self->{uploaders} = $uploaders;
        $self->{orig_uploaders} = $orig_uploaders if @$orig_uploaders;
 

-- 
APT Archive Web-Frontend (Alioth repository)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to