Bug#824085: packages.debian.org: please fix @p.d.o email aliases to forward to tracker.debian.org (and more)

Raphael Hertzog <[email protected]>
Newsgroups gmane.linux.debian.devel.www
Message-ID <20160512061250.GA416__19185.4039826014$1463033730$gmane$org@home.ouaza.com>
Package: www.debian.org
Severity: important
Tags: patch

As per
https://lists.debian.org/debian-devel-announce/2015/12/msg00001.html all
emails sent to @packages.qa.debian.org should now be sent to
@tracker.debian.org.

I have prepared a patch implementing this for the @packages.debian.org
email aliases. Please find it attached.

My patch also makes sure to ignore maintainer address that are in
@packages.debian.org (to avoid mail loops). This makes it possible
to not create a mailing list for co-maintenance and just use
tracker.debian.org to subscribe to the package (while listing the @p.d.o
alias in Maintainer).

Thank you in advance!

PS: The patch is to applied on
picconi.debian.org:/srv/packages.debian.org/bin/build-maintainerdb

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.5.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/
build-maintainerdb.patch (text/x-diff, 3 KB)
--- /srv/packages.debian.org/bin/build-maintainerdb	2013-10-02 11:42:37.255082956 +0000
+++ bin/build-maintainerdb	2015-12-15 15:48:02.989559788 +0000
@@ -35,7 +35,7 @@
     print "\nInternal Error: Cannot open configuration file.\n\n";
     exit 0;
 }
-my $topdir = "/org/packages.debian.org";
+my $topdir = "/srv/packages.debian.org";
 my $localdir = "/srv/mirrors/debian/";
 
 while (<C>) {
@@ -44,8 +44,8 @@
 }
 close (C);
 
-#my $maildomain = "packages.debian.org";
-my $ptsdomain = "packages.qa.debian.org";
+my $maildomain = "packages.debian.org";
+my $trackerdomain = "tracker.debian.org";
 
 
 my $maintainerfile = "$localdir/indices/Maintainers";
@@ -119,6 +119,22 @@
     return $addr;
 }
 
+sub add_maintainer
+{
+    my $package = shift;
+    my $email = shift;
+
+    $maint{$package} //= "";
+
+    if ($email =~ /\Q$maildomain\E$/) {
+	return;  # Do not register emails in @packages.debian.org pointing to us
+    }
+
+    $maint{$package} .= " " if ($maint{$package});
+    $maint{$package} .= $email;
+    printf "  ADD (%s, %s)\n", $package, $email if ($opt_verbose > 2);
+}
+
 sub read_maintainer
 {
     my $file = shift;
@@ -136,20 +152,13 @@
 	if (! exists $maint{$package}) {
 	    printf "  EVAL (%s, \"%s\")\n", $package, $maint if ($opt_verbose > 2);
 
-		if (exists $maint{$package}) {
-		    $maint{$package} .= " ";
-		    printf "  EXPAND (%s)\n", $package if ($opt_verbose > 2);
-		}
-		if ($maint =~ /.*<(.*)>/) {
-		    $maint{$package} .= $1;
-		    printf "  ADD (%s, %s)\n", $package, $1 if ($opt_verbose > 2);
-		} elsif ($maint =~ /\s*(\S+)\s+\(.*\)/) {
-		    $maint{$package} .= $1;
-		    printf "  ADD (%s, %s)\n", $package, $1 if ($opt_verbose > 2);
-		} else {
-		    $maint{$package} .= $maint;
-		    printf "  ADD (%s, %s)\n", $package, $maint if ($opt_verbose > 2);
-		}
+	    if ($maint =~ /.*<(.*)>/) {
+		add_maintainer($package, $1);
+	    } elsif ($maint =~ /\s*(\S+)\s+\(.*\)/) {
+		add_maintainer($package, $1);
+	    } else {
+		add_maintainer($package, $maint);
+	    }
 
 	    printf "  %s: %s\n", $package, $maint{$package} if ($opt_verbose > 1);
 
@@ -191,13 +200,12 @@
     open (CALLOUT, ">$calloutfile.new") || die "Can't open $file.new, $!";
     my $forward;
     foreach my $package (sort(keys(%maint))) {
-# It is possible that we do not know a source package -> in that case fall back to old behaviour
-# and only mail the maintainer. Can happen when pdo doesnt know the suite the source is in, like
-# it doesnt know oldstable-proposed-updates at date of writing this code.
-	$forward = "$maint{$package}";
 	if ($binsrc{$package}) {
-	    $forward .= ", $binsrc{$package}_contact\@$ptsdomain";
+	    $forward = "dispatch+$binsrc{$package}_contact\@$trackerdomain";
+	} else {
+	    $forward = "dispatch+${package}_contact\@$trackerdomain";
 	}
+	$forward .= ", $maint{$package}" if $maint{$package};
 	printf "%s -> %s\n", $package, $forward if ($opt_verbose);
 	printf CONF "%s:\t%s\n", $package, $forward;
 	printf WRITE "+%d,%d:%s->%s\n", length($package), length($forward), $package, $forward;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.