Package: qa.debian.org Severity: important Tags: patch Hi,
Since several weeks, my ddpo at http://qa.debian.org/developer.php?login=Andreas+Fester&comaint=yes is messed up: it shows all package lists twice and most of my packages are missing. It is caused by an improper lookup of maintainer entries in ddpo.py. The first bug happens because two identical entries are written into the maintainers.txt file, leading to the duplicate display; the same is true for four other people (Arnaud Kyheng <[EMAIL PROTECTED]>, Christian Aichinger <[EMAIL PROTECTED]>, Marc Dequènes (Duck) <[EMAIL PROTECTED]> and Oliver Elphick <[EMAIL PROTECTED]>), and it only happens when using the name in the URL (with the email address it does not happen). The reason for the missing packages is that an entry for the maintainer is made in the h_maint hashtable with a different key when adding co-maintainers; then, all packages which are found afterwards are not added to this maintainer. The attached patch fixes both bugs. Thanks, Andreas -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.17.4 Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Index: data/ddpo/ddpo.py =================================================================== --- data/ddpo/ddpo.py (Revision 1431) +++ data/ddpo/ddpo.py (Arbeitskopie) @@ -277,8 +277,8 @@ else: (maint_name, maint_email) = ("Nobody", "[EMAIL PROTECTED]") #print "Nobody for: " + line - if h_maint.has_key(maint_email) == 0: - h_maint = new_maintainer(h_maint, maint_name, maint_email) + if h_maint.has_key(maint_email.lower()) == 0: + h_maint = new_maintainer(h_maint, maint_name, maint_email.lower()) maintainer.close() return h_maint @@ -343,14 +343,14 @@ match_maint = reg_maint.search(line) if match_maint: if (branch == "unstable") or (branch == "experimental"): - if h_maint.has_key(match_maint.group(2)): - package = h_maint[match_maint.group(2)].add_package(package) + maint_email = match_maint.group(2) + if h_maint.has_key(maint_email.lower()): + package = h_maint[maint_email.lower()].add_package(package) else: maint = search_maint(h_maint,match_maint.group(1)) if maint: maint.add_package(package) - maint_email = match_maint.group(1) - package.set_maint(match_maint.group(2)) + package.set_maint(maint_email) continue match_arch = reg_arch.search(line) if match_arch: