[Python-modules-commits] r13848 - in packages/urlgrabber/trunk/debian (7 files)
kcoyner at users.alioth.debian.org
kcoyner at users.alioth.debian.org
Thu Jul 8 18:35:03 UTC 2010
Date: Thursday, July 8, 2010 @ 18:35:00
Author: kcoyner
Revision: 13848
Add two upstream patches to close grave bug ##587575.
Added:
packages/urlgrabber/trunk/debian/patches/
packages/urlgrabber/trunk/debian/patches/grabber_fix.diff
packages/urlgrabber/trunk/debian/patches/progress_fix.diff
packages/urlgrabber/trunk/debian/patches/series
Modified:
packages/urlgrabber/trunk/debian/changelog
packages/urlgrabber/trunk/debian/control
packages/urlgrabber/trunk/debian/rules
Modified: packages/urlgrabber/trunk/debian/changelog
===================================================================
--- packages/urlgrabber/trunk/debian/changelog 2010-07-08 12:22:15 UTC (rev 13847)
+++ packages/urlgrabber/trunk/debian/changelog 2010-07-08 18:35:00 UTC (rev 13848)
@@ -1,3 +1,12 @@
+urlgrabber (3.9.1-4) unstable; urgency=low
+
+ * Add two patches created from upstream development version. Closes: #587575.
+ * Changed to 3.0 quilt format:
+ + Add quilt to build-depends.
+ + Add quilt command to debian/rules.
+
+ -- Kevin Coyner <kcoyner at debian.org> Thu, 08 Jul 2010 17:40:08 +0000
+
urlgrabber (3.9.1-3) unstable; urgency=low
* Add Depends on python-pycurl. Closes: #587000.
Modified: packages/urlgrabber/trunk/debian/control
===================================================================
--- packages/urlgrabber/trunk/debian/control 2010-07-08 12:22:15 UTC (rev 13847)
+++ packages/urlgrabber/trunk/debian/control 2010-07-08 18:35:00 UTC (rev 13848)
@@ -3,7 +3,7 @@
Priority: optional
Maintainer: Kevin Coyner <kcoyner at debian.org>
Uploaders: Debian Python Modules Team <python-modules-team at lists.alioth.debian.org>
-Build-Depends: debhelper (>= 7.4~), python-all, python-support (>= 0.6), python-pycurl
+Build-Depends: debhelper (>= 7.4~), python-all, python-support (>= 0.6), python-pycurl, quilt (>= 0.46-7~)
Standards-Version: 3.8.4
Homepage: http://urlgrabber.baseurl.org/
Vcs-Svn: svn://svn.debian.org/python-modules/packages/urlgrabber/trunk/
Added: packages/urlgrabber/trunk/debian/patches/grabber_fix.diff
===================================================================
--- packages/urlgrabber/trunk/debian/patches/grabber_fix.diff (rev 0)
+++ packages/urlgrabber/trunk/debian/patches/grabber_fix.diff 2010-07-08 18:35:00 UTC (rev 13848)
@@ -0,0 +1,236 @@
+--- urlgrabber-3.9.1/urlgrabber/grabber.py.orig 2010-07-02 21:24:12.000000000 -0400
++++ urlgrabber-3.9.1/urlgrabber/grabber.py 2010-07-02 20:30:25.000000000 -0400
+@@ -68,14 +68,14 @@
+ (which can be set on default_grabber.throttle) is used. See
+ BANDWIDTH THROTTLING for more information.
+
+- timeout = None
++ timeout = 300
+
+- a positive float expressing the number of seconds to wait for socket
+- operations. If the value is None or 0.0, socket operations will block
+- forever. Setting this option causes urlgrabber to call the settimeout
+- method on the Socket object used for the request. See the Python
+- documentation on settimeout for more information.
+- http://www.python.org/doc/current/lib/socket-objects.html
++ a positive integer expressing the number of seconds to wait before
++ timing out attempts to connect to a server. If the value is None
++ or 0, connection attempts will not time out. The timeout is passed
++ to the underlying pycurl object as its CONNECTTIMEOUT option, see
++ the curl documentation on CURLOPT_CONNECTTIMEOUT for more information.
++ http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTCONNECTTIMEOUT
+
+ bandwidth = 0
+
+@@ -439,6 +439,12 @@
+ except:
+ __version__ = '???'
+
++try:
++ # this part isn't going to do much - need to talk to gettext
++ from i18n import _
++except ImportError, msg:
++ def _(st): return st
++
+ ########################################################################
+ # functions for debugging output. These functions are here because they
+ # are also part of the module initialization.
+@@ -808,7 +814,7 @@
+ self.prefix = None
+ self.opener = None
+ self.cache_openers = True
+- self.timeout = None
++ self.timeout = 300
+ self.text = None
+ self.http_headers = None
+ self.ftp_headers = None
+@@ -1052,9 +1058,15 @@
+ self._reget_length = 0
+ self._prog_running = False
+ self._error = (None, None)
+- self.size = None
++ self.size = 0
++ self._hdr_ended = False
+ self._do_open()
+
++
++ def geturl(self):
++ """ Provide the geturl() method, used to be got from
++ urllib.addinfourl, via. urllib.URLopener.* """
++ return self.url
+
+ def __getattr__(self, name):
+ """This effectively allows us to wrap at the instance level.
+@@ -1085,9 +1097,14 @@
+ return -1
+
+ def _hdr_retrieve(self, buf):
++ if self._hdr_ended:
++ self._hdr_dump = ''
++ self.size = 0
++ self._hdr_ended = False
++
+ if self._over_max_size(cur=len(self._hdr_dump),
+ max_size=self.opts.max_header_size):
+- return -1
++ return -1
+ try:
+ self._hdr_dump += buf
+ # we have to get the size before we do the progress obj start
+@@ -1104,7 +1121,17 @@
+ s = parse150(buf)
+ if s:
+ self.size = int(s)
+-
++
++ if buf.lower().find('location') != -1:
++ location = ':'.join(buf.split(':')[1:])
++ location = location.strip()
++ self.scheme = urlparse.urlsplit(location)[0]
++ self.url = location
++
++ if len(self._hdr_dump) != 0 and buf == '\r\n':
++ self._hdr_ended = True
++ if DEBUG: DEBUG.info('header ended:')
++
+ return len(buf)
+ except KeyboardInterrupt:
+ return pycurl.READFUNC_ABORT
+@@ -1113,8 +1140,10 @@
+ if self._parsed_hdr:
+ return self._parsed_hdr
+ statusend = self._hdr_dump.find('\n')
++ statusend += 1 # ridiculous as it may seem.
+ hdrfp = StringIO()
+ hdrfp.write(self._hdr_dump[statusend:])
++ hdrfp.seek(0)
+ self._parsed_hdr = mimetools.Message(hdrfp)
+ return self._parsed_hdr
+
+@@ -1136,6 +1165,7 @@
+ self.curl_obj.setopt(pycurl.PROGRESSFUNCTION, self._progress_update)
+ self.curl_obj.setopt(pycurl.FAILONERROR, True)
+ self.curl_obj.setopt(pycurl.OPT_FILETIME, True)
++ self.curl_obj.setopt(pycurl.FOLLOWLOCATION, True)
+
+ if DEBUG:
+ self.curl_obj.setopt(pycurl.VERBOSE, True)
+@@ -1148,9 +1178,11 @@
+
+ # timeouts
+ timeout = 300
+- if opts.timeout:
+- timeout = int(opts.timeout)
+- self.curl_obj.setopt(pycurl.CONNECTTIMEOUT, timeout)
++ if hasattr(opts, 'timeout'):
++ timeout = int(opts.timeout or 0)
++ self.curl_obj.setopt(pycurl.CONNECTTIMEOUT, timeout)
++ self.curl_obj.setopt(pycurl.LOW_SPEED_LIMIT, 1)
++ self.curl_obj.setopt(pycurl.LOW_SPEED_TIME, timeout)
+
+ # ssl options
+ if self.scheme == 'https':
+@@ -1276,7 +1308,7 @@
+ raise err
+
+ elif errcode == 60:
+- msg = _("client cert cannot be verified or client cert incorrect")
++ msg = _("Peer cert cannot be verified or peer cert invalid")
+ err = URLGrabError(14, msg)
+ err.url = self.url
+ raise err
+@@ -1291,7 +1323,12 @@
+ raise err
+
+ elif str(e.args[1]) == '' and self.http_code != 0: # fake it until you make it
+- msg = 'HTTP Error %s : %s ' % (self.http_code, self.url)
++ if self.scheme in ['http', 'https']:
++ msg = 'HTTP Error %s : %s ' % (self.http_code, self.url)
++ elif self.scheme in ['ftp']:
++ msg = 'FTP Error %s : %s ' % (self.http_code, self.url)
++ else:
++ msg = "Unknown Error: URL=%s , scheme=%s" % (self.url, self.scheme)
+ else:
+ msg = 'PYCURL ERROR %s - "%s"' % (errcode, str(e.args[1]))
+ code = errcode
+@@ -1299,6 +1336,12 @@
+ err.code = code
+ err.exception = e
+ raise err
++ else:
++ if self._error[1]:
++ msg = self._error[1]
++ err = URLGRabError(14, msg)
++ err.url = self.url
++ raise err
+
+ def _do_open(self):
+ self.curl_obj = _curl_cache
+@@ -1446,9 +1489,23 @@
+ # set the time
+ mod_time = self.curl_obj.getinfo(pycurl.INFO_FILETIME)
+ if mod_time != -1:
+- os.utime(self.filename, (mod_time, mod_time))
++ try:
++ os.utime(self.filename, (mod_time, mod_time))
++ except OSError, e:
++ err = URLGrabError(16, _(\
++ 'error setting timestamp on file %s from %s, OSError: %s')
++ % (self.filenameself.url, e))
++ err.url = self.url
++ raise err
+ # re open it
+- self.fo = open(self.filename, 'r')
++ try:
++ self.fo = open(self.filename, 'r')
++ except IOError, e:
++ err = URLGrabError(16, _(\
++ 'error opening file from %s, IOError: %s') % (self.url, e))
++ err.url = self.url
++ raise err
++
+ else:
+ #self.fo = open(self._temp_name, 'r')
+ self.fo.seek(0)
+@@ -1532,11 +1589,14 @@
+ def _over_max_size(self, cur, max_size=None):
+
+ if not max_size:
+- max_size = self.size
+- if self.opts.size: # if we set an opts size use that, no matter what
+- max_size = self.opts.size
++ if not self.opts.size:
++ max_size = self.size
++ else:
++ max_size = self.opts.size
++
+ if not max_size: return False # if we have None for all of the Max then this is dumb
+- if cur > max_size + max_size*.10:
++
++ if cur > int(float(max_size) * 1.10):
+
+ msg = _("Downloaded more than max size for %s: %s > %s") \
+ % (self.url, cur, max_size)
+@@ -1582,9 +1642,21 @@
+ self.opts.progress_obj.end(self._amount_read)
+ self.fo.close()
+
+-
++ def geturl(self):
++ """ Provide the geturl() method, used to be got from
++ urllib.addinfourl, via. urllib.URLopener.* """
++ return self.url
++
+ _curl_cache = pycurl.Curl() # make one and reuse it over and over and over
+
++def reset_curl_obj():
++ """To make sure curl has reread the network/dns info we force a reload"""
++ global _curl_cache
++ _curl_cache.close()
++ _curl_cache = pycurl.Curl()
++
++
++
+
+ #####################################################################
+ # DEPRECATED FUNCTIONS
Added: packages/urlgrabber/trunk/debian/patches/progress_fix.diff
===================================================================
--- packages/urlgrabber/trunk/debian/patches/progress_fix.diff (rev 0)
+++ packages/urlgrabber/trunk/debian/patches/progress_fix.diff 2010-07-08 18:35:00 UTC (rev 13848)
@@ -0,0 +1,11 @@
+--- urlgrabber-3.9.1/urlgrabber/progress.py.orig 2010-07-02 21:25:51.000000000 -0400
++++ urlgrabber-3.9.1/urlgrabber/progress.py 2010-07-02 20:30:25.000000000 -0400
+@@ -658,6 +658,8 @@
+ if seconds is None or seconds < 0:
+ if use_hours: return '--:--:--'
+ else: return '--:--'
++ elif seconds == float('inf'):
++ return 'Infinite'
+ else:
+ seconds = int(seconds)
+ minutes = seconds / 60
Added: packages/urlgrabber/trunk/debian/patches/series
===================================================================
--- packages/urlgrabber/trunk/debian/patches/series (rev 0)
+++ packages/urlgrabber/trunk/debian/patches/series 2010-07-08 18:35:00 UTC (rev 13848)
@@ -0,0 +1,2 @@
+grabber_fix.diff
+progress_fix.diff
Modified: packages/urlgrabber/trunk/debian/rules
===================================================================
--- packages/urlgrabber/trunk/debian/rules 2010-07-08 12:22:15 UTC (rev 13847)
+++ packages/urlgrabber/trunk/debian/rules 2010-07-08 18:35:00 UTC (rev 13848)
@@ -8,7 +8,10 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
+%:
+ dh --with quilt $@
+
PYVERS = $(shell pyversions -r)
configure: configure-stamp
More information about the Python-modules-commits
mailing list