+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
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"
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))
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"]
default_config = "/etc/dak/dak.conf"
default_apt_config = "/etc/dak/apt.conf"
+alias_cache = None
+
################################################################################
class Error(Exception):
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 ('~')
################################################################################
+# 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()