]> git.decadent.org.uk Git - dak.git/commitdiff
Merge from Thomas
authorJoerg Jaspert <joerg@debian.org>
Wed, 23 Apr 2008 23:22:36 +0000 (01:22 +0200)
committerJoerg Jaspert <joerg@debian.org>
Wed, 23 Apr 2008 23:22:36 +0000 (01:22 +0200)
ChangeLog
dak/process_unchecked.py
daklib/queue.py
daklib/utils.py

index 4f72b591b03c7149670fdaf491d3b3fc78a90a48..8aef43b7be077880aecf5b47706292670c2fe960 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-04-23  Thomas Viehmann  <tviehmann@ries.debian.org>
+
+       * dak/process_unchecked.py: add changes["sponsoremail"]
+         for sponsored uploads if desired
+       * daklib/utils.py: add functions
+         is_email_alias to check which accounts allow email forwarding and
+         which_alias_file to find the alias file
+
 2008-04-22  Joerg Jaspert  <joerg@debian.org>
 
        * setup/init_pool.sql: added a function/aggregate for the release
@@ -12,7 +20,7 @@
        dumps, using a scheme to keep more of the recent dumps.
 
        * config/debian/cron.daily: Use the new script. Also - compress
-       all files older than 7 days, instead of 30. 
+       all files older than 7 days, instead of 30.
 
        * dak/process_accepted.py (install): Do not break if a
        source/maintainer combination is already in src_uploaders, "just"
index 30737ed1252fb7d7996d1612541798ad76d87db4..d33408cfa229d1829a6a91694d8bb1943a11cd61 100755 (executable)
@@ -1072,6 +1072,8 @@ def check_signed_by_key():
         if uid_name == "": sponsored = 1
     else:
         sponsored = 1
+        if daklib.utils.is_email_alias(uid_email):
+            changes["sponsoremail"] = uid_email
 
     if sponsored and not may_sponsor: 
         reject("%s is not authorised to sponsor uploads" % (uid))
index 9fac0cc00b2053e3deb63b7778adff9da48242b3..a5a8eab4a2518e703d3a8c4f9884b588c60b9201 100755 (executable)
@@ -279,6 +279,8 @@ class Upload:
             Subst["__MAINTAINER_FROM__"] = changes["changedby2047"]
             Subst["__MAINTAINER_TO__"] = "%s, %s" % (changes["changedby2047"],
                                                      changes["maintainer2047"])
+            if "sponsoremail" in changes:
+                Subst["__MAINTAINER_TO__"] += ", %s"%changes["sponsoremail"]
             Subst["__MAINTAINER__"] = changes.get("changed-by", "Unknown")
         else:
             Subst["__MAINTAINER_FROM__"] = changes["maintainer2047"]
index 16cc1ff16ed54df640d0ccbfb1da8e5879e4eef2..c4c55723ddee9f87fc64e3fab805ed4e56688c95 100755 (executable)
@@ -59,6 +59,8 @@ tried_too_hard_exc = "Tried too hard to find a free filename."
 default_config = "/etc/dak/dak.conf"
 default_apt_config = "/etc/dak/apt.conf"
 
+alias_cache = None
+
 ################################################################################
 
 class Error(Exception):
@@ -468,6 +470,14 @@ def which_apt_conf_file ():
     else:
        return default_apt_config
 
+def which_alias_file():
+    hostname = socket.gethostbyaddr(socket.gethostname())[0]
+    aliasfn = '/var/lib/misc/'+hostname+'/forward-alias'
+    if os.path.exists(aliasfn):
+        return aliasfn
+    else:
+        return None
+
 ################################################################################
 
 # Escape characters which have meaning to SQL's regex comparison operator ('~')
@@ -1148,6 +1158,21 @@ If 'dotprefix' is non-null, the filename will be prefixed with a '.'."""
 
 ################################################################################
 
+# checks if the user part of the email is listed in the alias file
+
+def is_email_alias(email):
+    global alias_cache
+    if alias_cache == None:
+        aliasfn = which_alias_file()
+        alias_cache = set()
+        if aliasfn:
+            for l in open(aliasfn):
+                alias_cache.add(l.split(':')[0])
+    uid = email.split('@')[0]
+    return uid in alias_cache
+
+################################################################################
+
 apt_pkg.init()
 
 Cnf = apt_pkg.newConfiguration()