Package: reportbug
Version: 7.1.1
Tags: patch
Followup-For: Bug #848692
In reportbug/utils.py, there's a namespace collision between the "import
email" on line 38, and the use of 'email' as variable in the get_user_id
function, starting from line 282.
A possible patch is to rename 'email' to 'emailaddr' in get_user_id, see
attached patch.
Cheers,
OdyX
-- Package-specific info:
** Environment settings:
DEBEMAIL="o...@debian.org"
INTERFACE="text"
** /home/didier/.reportbugrc:
reportbug_version "7.1.1"
mode expert
ui text
realname "Didier 'OdyX' Raboud"
>From 8f7ae2aa6067b713c02004bbba174849ff513287 Mon Sep 17 00:00:00 2001
From: Didier Raboud
Date: Tue, 27 Dec 2016 13:56:36 +0100
Subject: [PATCH] In utils.py's get_user_id, replace email with emailaddr to
avoid namespace collision with the 'email' package
Closes: #848692
---
reportbug/utils.py | 22 ++
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/reportbug/utils.py b/reportbug/utils.py
index 89e0991..53244aa 100644
--- a/reportbug/utils.py
+++ b/reportbug/utils.py
@@ -279,25 +279,25 @@ def get_email(email='', realname=''):
return get_email_addr(get_user_id(email, realname))
-def get_user_id(email='', realname='', charset='utf-8'):
+def get_user_id(emailaddr='', realname='', charset='utf-8'):
uid = os.getuid()
info = pwd.getpwuid(uid)
-email = (os.environ.get('REPORTBUGEMAIL', email) or
+emailaddr = (os.environ.get('REPORTBUGEMAIL', emailaddr) or
os.environ.get('DEBEMAIL') or os.environ.get('EMAIL'))
-email = email or find_rewritten(info[0]) or info[0]
+emailaddr = emailaddr or find_rewritten(info[0]) or info[0]
-if '@' not in email:
+if '@' not in emailaddr:
if os.path.exists('/etc/mailname'):
domainname = open('/etc/mailname').readline().strip()
else:
domainname = socket.getfqdn()
-email = email + '@' + domainname
+emailaddr = emailaddr + '@' + domainname
# Handle EMAIL if it's formatted as 'Bob '.
-if '<' in email or '(' in email:
-realname, email = get_email_addr(email)
+if '<' in emailaddr or '(' in emailaddr:
+realname, emailaddr = get_email_addr(emailaddr)
if not realname:
realname = (os.environ.get('DEBFULLNAME') or os.environ.get('DEBNAME')
@@ -308,14 +308,12 @@ def get_user_id(email='', realname='', charset='utf-8'):
realname = realname.replace('&', info[0].upper())
if not realname:
-return email
+return emailaddr
if re.match(r'[\w\s]+$', realname):
-return '%s <%s>' % (realname, email)
+return '%s <%s>' % (realname, emailaddr)
-addr = email.utils.formataddr((realname, email))
-
-return addr
+return email.utils.formataddr((realname, emailaddr))
statuscache = {}
--
2.11.0