diff -up bzr-2.2.1/bzrlib/transport/http/_urllib2_wrappers.py.5439 bzr-2.2.1/bzrlib/transport/http/_urllib2_wrappers.py
--- bzr-2.2.1/bzrlib/transport/http/_urllib2_wrappers.py.5439 2010-09-18 02:37:55.000000000 +0200
+++ bzr-2.2.1/bzrlib/transport/http/_urllib2_wrappers.py 2010-09-21 14:14:21.000000000 +0200
@@ -75,6 +75,26 @@ from bzrlib import (
)
+class addinfourl(urllib2.addinfourl):
+ '''Replacement addinfourl class compatible with python-2.7's xmlrpclib
+
+ In python-2.7, xmlrpclib expects that the response object that it receives
+ has a getheader method. httplib.HTTPResponse provides this but
+ urllib2.addinfourl does not. Add the necessary functions here, ported to
+ use the internal data structures of addinfourl.
+ '''
+
+ def getheader(self, name, default=None):
+ if self.headers is None:
+ raise httplib.ResponseNotReady()
+ return self.headers.getheader(name, default)
+
+ def getheaders(self):
+ if self.headers is None:
+ raise httplib.ResponseNotReady()
+ return self.headers.items()
+
+
class _ReportingFileSocket(object):
def __init__(self, filesock, report_activity=None):
@@ -656,7 +676,7 @@ class AbstractHTTPHandler(urllib2.Abstra
r = response
r.recv = r.read
fp = socket._fileobject(r, bufsize=65536)
- resp = urllib2.addinfourl(fp, r.msg, req.get_full_url())
+ resp = addinfourl(fp, r.msg, req.get_full_url())
resp.code = r.status
resp.msg = r.reason
resp.version = r.version
diff -up bzr-2.2.1/NEWS.5439 bzr-2.2.1/NEWS
--- bzr-2.2.1/NEWS.5439 2010-09-18 02:37:55.000000000 +0200
+++ bzr-2.2.1/NEWS 2010-09-21 14:16:02.000000000 +0200
@@ -17,6 +17,12 @@ earlier 2.2 releases.
Compatibility Breaks
********************
+Fedora Backported Bug Fixes
+***************************
+
+* Fix traceback with python-2.7's xmlrpclib
+ (Toshio Kuratomi, #612096)
+
Bug Fixes
*********