Merge lp:~barry/ubuntu/natty/winpdb/bug-761131 into lp:ubuntu/natty/winpdb

Proposed by Barry Warsaw on 2011-04-14
Status: Rejected
Rejected by: Colin Watson on 2011-05-17
Proposed branch: lp:~barry/ubuntu/natty/winpdb/bug-761131
Merge into: lp:ubuntu/natty/winpdb
Diff against target: 479 lines (+161/-179)
9 files modified
.hg_archival.txt (+2/-0)
.hgtags (+2/-0)
PKG-INFO (+0/-13)
README.txt (+1/-1)
debian/changelog (+7/-0)
debian/watch (+1/-2)
rpdb2.py (+141/-156)
setup.py (+1/-1)
winpdb.py (+6/-6)
To merge this branch: bzr merge lp:~barry/ubuntu/natty/winpdb/bug-761131
Reviewer Review Type Date Requested Status
Luke Yelavich Needs Information on 2011-04-29
Ubuntu branches 2011-04-14 Pending
Review via email: mp+57787@code.launchpad.net

Description of the change

bzr merge-upstream with new debian/watch file.

To post a comment you must log in.
13. By Barry Warsaw on 2011-04-21

Debian still has 1.4.6-2

Luke Yelavich (themuso) wrote :

Barry, since Natty is now released, do you think this is SRU worthy? I've only glanced briefly at it but am not sure myself.

Thanks.

review: Needs Information
Barry Warsaw (barry) wrote :

Hi Luke. I've asked for input from the bug OP, and the Debian maintainer of the package. For now I've marked the bug Incomplete. I don't know myself because I don't use it, and it doesn't have many rdepends, so unless/until we hear about a strong need from others, let's not pursue an SRU for this.

Jamie Strandboge (jdstrand) wrote :

This is now marked Fix Released in the bug since Oneiric and Debian have 1.4.8-1.

Colin Watson (cjwatson) wrote :

Rejected per the comments above and dholbach's request.

Barry Warsaw (barry) wrote :

WFM! Thanks.

Unmerged revisions

13. By Barry Warsaw on 2011-04-21

Debian still has 1.4.6-2

12. By Barry Warsaw on 2011-04-14

* debian/watch: Downloads are now on code.google.com.
* New upstream release. (LP: #761131)

11. By Barry Warsaw on 2011-04-14

Downloads are now on code.google.com.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file '.hg_archival.txt'
2--- .hg_archival.txt 1970-01-01 00:00:00 +0000
3+++ .hg_archival.txt 2011-04-21 21:18:39 +0000
4@@ -0,0 +1,2 @@
5+repo: f88e6e3493b83efb388dae63f265b7c8495d2453
6+node: 0aed109de5d171c00dbab20a1e4631d321ba5233
7
8=== added file '.hgtags'
9--- .hgtags 1970-01-01 00:00:00 +0000
10+++ .hgtags 2011-04-21 21:18:39 +0000
11@@ -0,0 +1,2 @@
12+22ebb952cad2e4c6f2612484711dfcf044a670d7 winpdb-1.4.6
13+4803baa67c54c607093ef3e0f7119486203a11ba winpdb-1.4.6 retag!
14
15=== removed file 'PKG-INFO'
16--- PKG-INFO 2009-04-19 14:46:16 +0000
17+++ PKG-INFO 1970-01-01 00:00:00 +0000
18@@ -1,13 +0,0 @@
19-Metadata-Version: 1.0
20-Name: winpdb
21-Version: 1.4.6
22-Summary: A platform independent GPL Python debugger.
23-Home-page: http://www.winpdb.org/
24-Author: Nir Aides
25-Author-email: nir@winpdb.org
26-License: GNU GPL
27-Description: Winpdb is a platform independent GPL Python debugger
28- with support for multiple threads, namespace modification,
29- embedded debugging, encrypted communication
30- and is up to 20 times faster than pdb.
31-Platform: any
32
33=== modified file 'README.txt'
34--- README.txt 2009-04-19 14:46:16 +0000
35+++ README.txt 2011-04-21 21:18:39 +0000
36@@ -6,7 +6,7 @@
37 Contact: Nir Aides
38 Email: nir@winpdb.org
39 Website: http://www.winpdb.org/
40-Version: 1.4.6
41+Version: 1.4.8
42
43
44
45
46=== modified file 'debian/changelog'
47--- debian/changelog 2009-10-01 22:27:05 +0000
48+++ debian/changelog 2011-04-21 21:18:39 +0000
49@@ -1,3 +1,10 @@
50+winpdb (1.4.8-0ubuntu1) natty; urgency=low
51+
52+ * debian/watch: Downloads are now on code.google.com.
53+ * New upstream release. (LP: #761131)
54+
55+ -- Barry Warsaw <barry@ubuntu.com> Thu, 14 Apr 2011 17:29:44 -0400
56+
57 winpdb (1.4.6-2) unstable; urgency=low
58
59 [ Severin Heiniger]
60
61=== modified file 'debian/watch'
62--- debian/watch 2007-10-08 20:39:23 +0000
63+++ debian/watch 2011-04-21 21:18:39 +0000
64@@ -1,5 +1,4 @@
65 # Compulsory line, this is a version 3 file
66 version=3
67
68-http://sf.net/winpdb/winpdb-(.*)\.tar\.gz
69-
70+http://code.google.com/p/winpdb/downloads/detail?name=winpdb-1.4.8.tar.gz&can=2&q= http://winpdb.googlecode.com/files/winpdb-(.*).tar.gz
71
72=== modified file 'rpdb2.py'
73--- rpdb2.py 2009-04-19 14:46:16 +0000
74+++ rpdb2.py 2011-04-21 21:18:39 +0000
75@@ -1,7 +1,7 @@
76 #! /usr/bin/env python
77
78 """
79- rpdb2.py - version 2.4.6
80+ rpdb2.py - version 2.4.8
81
82 A remote Python debugger for CPython
83
84@@ -24,7 +24,7 @@
85
86 COPYRIGHT_NOTICE = """Copyright (C) 2005-2009 Nir Aides"""
87
88-CREDITS_NOTICE = """This project is waiting for your contribution and support."""
89+CREDITS_NOTICE = """Work on version 2.4.8 was sponsored by Investortools, Inc."""
90
91 LICENSE_NOTICE = """
92 This program is free software; you can redistribute it and/or modify it
93@@ -539,9 +539,9 @@
94
95
96
97-VERSION = (2, 4, 6, 0, 'Tychod')
98-RPDB_TITLE = "RPDB 2.4.6 - Tychod"
99-RPDB_VERSION = "RPDB_2_4_6"
100+VERSION = (2, 4, 8, 0, 'Tychod')
101+RPDB_TITLE = "RPDB 2.4.8 - Tychod"
102+RPDB_VERSION = "RPDB_2_4_8"
103 RPDB_COMPATIBILITY_VERSION = "RPDB_2_4_0"
104
105
106@@ -2191,8 +2191,12 @@
107
108
109
110-g_safe_base64_to = string.maketrans(as_bytes('/+='), as_bytes('_-#'))
111-g_safe_base64_from = string.maketrans(as_bytes('_-#'), as_bytes('/+='))
112+if is_py3k():
113+ g_safe_base64_to = bytes.maketrans(as_bytes('/+='), as_bytes('_-#'))
114+ g_safe_base64_from = bytes.maketrans(as_bytes('_-#'), as_bytes('/+='))
115+else:
116+ g_safe_base64_to = string.maketrans(as_bytes('/+='), as_bytes('_-#'))
117+ g_safe_base64_from = string.maketrans(as_bytes('_-#'), as_bytes('/+='))
118
119
120
121@@ -3962,7 +3966,7 @@
122
123 fd = os.open(path, os.O_WRONLY | os.O_CREAT, int('0600', 8))
124
125- os.write(fd, _rpdb2_pwd)
126+ os.write(fd, as_bytes(_rpdb2_pwd))
127 os.close(fd)
128
129
130@@ -9967,156 +9971,93 @@
131
132
133
134-if not is_py3k():
135- #
136- # MOD
137- #
138- class CTimeoutHTTPConnection(httplib.HTTPConnection):
139- """
140- Modification of httplib.HTTPConnection with timeout for sockets.
141- """
142-
143- _rpdb2_timeout = PING_TIMEOUT
144-
145- def connect(self):
146- """Connect to the host and port specified in __init__."""
147- msg = "getaddrinfo returns an empty list"
148- for res in socket.getaddrinfo(self.host, self.port, 0,
149- socket.SOCK_STREAM):
150- af, socktype, proto, canonname, sa = res
151- try:
152- self.sock = socket.socket(af, socktype, proto)
153- self.sock.settimeout(self._rpdb2_timeout)
154- if self.debuglevel > 0:
155- print_debug("connect: (%s, %s)" % (self.host, self.port))
156- self.sock.connect(sa)
157- except socket.error:
158- msg = sys.exc_info()[1]
159- if self.debuglevel > 0:
160- print_debug('connect fail: ' + repr((self.host, self.port)))
161- if self.sock:
162- self.sock.close()
163- self.sock = None
164- continue
165- break
166- if not self.sock:
167- raise socket.error(msg)
168-
169-
170-
171- #
172- # MOD
173- #
174- class CLocalTimeoutHTTPConnection(CTimeoutHTTPConnection):
175- """
176- Modification of httplib.HTTPConnection with timeout for sockets.
177- """
178-
179- _rpdb2_timeout = LOCAL_TIMEOUT
180-
181-
182-
183- #
184- # MOD
185- #
186- class CTimeoutHTTP(httplib.HTTP):
187- """
188- Modification of httplib.HTTP with timeout for sockets.
189- """
190-
191- _connection_class = CTimeoutHTTPConnection
192-
193-
194-
195- #
196- # MOD
197- #
198- class CLocalTimeoutHTTP(httplib.HTTP):
199- """
200- Modification of httplib.HTTP with timeout for sockets.
201- """
202-
203- _connection_class = CLocalTimeoutHTTPConnection
204-
205+#
206+# MOD
207+#
208+class CTimeoutHTTPConnection(httplib.HTTPConnection):
209+ """
210+ Modification of httplib.HTTPConnection with timeout for sockets.
211+ """
212+
213+ _rpdb2_timeout = PING_TIMEOUT
214
215-
216- #
217- # MOD
218- #
219- class CTimeoutTransport(xmlrpclib.Transport):
220- """
221- Modification of xmlrpclib.Transport with timeout for sockets.
222- """
223-
224- def make_connection(self, host):
225- # create a HTTP connection object from a host descriptor
226- host, extra_headers, x509 = self.get_host_info(host)
227- return CTimeoutHTTP(host)
228-
229-
230-
231- #
232- # MOD
233- #
234- class CLocalTimeoutTransport(xmlrpclib.Transport):
235- """
236- Modification of xmlrpclib.Transport with timeout for sockets.
237- """
238-
239- def make_connection(self, host):
240- # create a HTTP connection object from a host descriptor
241- host, extra_headers, x509 = self.get_host_info(host)
242- return CLocalTimeoutHTTP(host)
243-
244+ def connect(self):
245+ """Connect to the host and port specified in __init__."""
246+
247+ # New Python version of connect().
248+ if hasattr(self, 'timeout'):
249+ self.timeout = self._rpdb2_timeout
250+ return httplib.HTTPConnection.connect(self)
251+
252+ # Old Python version of connect().
253+ msg = "getaddrinfo returns an empty list"
254+ for res in socket.getaddrinfo(self.host, self.port, 0,
255+ socket.SOCK_STREAM):
256+ af, socktype, proto, canonname, sa = res
257+ try:
258+ self.sock = socket.socket(af, socktype, proto)
259+ self.sock.settimeout(self._rpdb2_timeout)
260+ if self.debuglevel > 0:
261+ print_debug("connect: (%s, %s)" % (self.host, self.port))
262+ self.sock.connect(sa)
263+ except socket.error:
264+ msg = sys.exc_info()[1]
265+ if self.debuglevel > 0:
266+ print_debug('connect fail: ' + repr((self.host, self.port)))
267+ if self.sock:
268+ self.sock.close()
269+ self.sock = None
270+ continue
271+ break
272+ if not self.sock:
273+ raise socket.error(msg)
274+
275+
276+
277+#
278+# MOD
279+#
280+class CLocalTimeoutHTTPConnection(CTimeoutHTTPConnection):
281+ """
282+ Modification of httplib.HTTPConnection with timeout for sockets.
283+ """
284+
285+ _rpdb2_timeout = LOCAL_TIMEOUT
286+
287+
288+
289+if is_py3k():
290+ class httplib_HTTP(object):
291+ pass
292 else:
293- #
294- # MOD
295- #
296- class CTimeoutTransport(xmlrpclib.Transport):
297- """
298- Modification of xmlrpclib.Transport with timeout for sockets.
299- """
300-
301- def send_request(self, host, handler, request_body, debug):
302- host, extra_headers, x509 = self.get_host_info(host)
303- connection = httplib.HTTPConnection(host, timeout = PING_TIMEOUT)
304- if debug:
305- connection.set_debuglevel(1)
306- headers = {}
307- if extra_headers:
308- for key, val in extra_headers:
309- header[key] = val
310- headers["Content-Type"] = "text/xml"
311- headers["User-Agent"] = self.user_agent
312- connection.request("POST", handler, request_body, headers)
313- return connection
314-
315-
316-
317- #
318- # MOD
319- #
320- class CLocalTimeoutTransport(xmlrpclib.Transport):
321- """
322- Modification of xmlrpclib.Transport with timeout for sockets.
323- """
324-
325- def send_request(self, host, handler, request_body, debug):
326- host, extra_headers, x509 = self.get_host_info(host)
327- connection = httplib.HTTPConnection(host, timeout = LOCAL_TIMEOUT)
328- if debug:
329- connection.set_debuglevel(1)
330- headers = {}
331- if extra_headers:
332- for key, val in extra_headers:
333- header[key] = val
334- headers["Content-Type"] = "text/xml"
335- headers["User-Agent"] = self.user_agent
336- connection.request("POST", handler, request_body, headers)
337- return connection
338-
339-
340-
341+ httplib_HTTP = httplib.HTTP
342+
343+
344+
345+#
346+# MOD
347+#
348+class CTimeoutHTTP(httplib_HTTP):
349+ """
350+ Modification of httplib.HTTP with timeout for sockets.
351+ """
352+
353+ _connection_class = CTimeoutHTTPConnection
354+
355+
356+
357+#
358+# MOD
359+#
360+class CLocalTimeoutHTTP(httplib_HTTP):
361+ """
362+ Modification of httplib.HTTP with timeout for sockets.
363+ """
364+
365+ _connection_class = CLocalTimeoutHTTPConnection
366+
367+
368+
369 #
370 # MOD
371 #
372@@ -10126,6 +10067,24 @@
373 bug.
374 """
375
376+ _connection_class = httplib.HTTPConnection
377+ _connection_class_old = httplib_HTTP
378+
379+
380+ def make_connection(self, host):
381+ # New Python version of connect().
382+ # However, make_connection is hacked to always create a new connection
383+ # Otherwise all threads use single connection and crash.
384+ if hasattr(self, '_connection'):
385+ chost, self._extra_headers, x509 = self.get_host_info(host)
386+ return self._connection_class(chost)
387+
388+ # Old Python version of connect().
389+ # create a HTTP connection object from a host descriptor
390+ host, extra_headers, x509 = self.get_host_info(host)
391+ return self._connection_class_old(host)
392+
393+
394 def __parse_response(self, file, sock):
395 # read response from input file/socket, and parse it
396
397@@ -10153,6 +10112,32 @@
398
399
400
401+#
402+# MOD
403+#
404+class CTimeoutTransport(CLocalTransport):
405+ """
406+ Modification of xmlrpclib.Transport with timeout for sockets.
407+ """
408+
409+ _connection_class = CTimeoutHTTPConnection
410+ _connection_class_old = CTimeoutHTTP
411+
412+
413+
414+#
415+# MOD
416+#
417+class CLocalTimeoutTransport(CLocalTransport):
418+ """
419+ Modification of xmlrpclib.Transport with timeout for sockets.
420+ """
421+
422+ _connection_class = CLocalTimeoutHTTPConnection
423+ _connection_class_old = CLocalTimeoutHTTP
424+
425+
426+
427 class CSession:
428 """
429 Basic class that communicates with the debuggee server.
430
431=== modified file 'setup.py'
432--- setup.py 2009-04-19 14:46:16 +0000
433+++ setup.py 2011-04-21 21:18:39 +0000
434@@ -51,7 +51,7 @@
435
436 setup(
437 name = 'winpdb',
438- version = '1.4.6',
439+ version = '1.4.8',
440 description = 'A platform independent GPL Python debugger.',
441 long_description = LONG_DESC,
442 author = 'Nir Aides',
443
444=== modified file 'winpdb.py'
445--- winpdb.py 2009-04-19 14:46:16 +0000
446+++ winpdb.py 2011-04-21 21:18:39 +0000
447@@ -40,7 +40,7 @@
448 See the GNU General Public License for more details.
449
450 Credits:
451-This project is waiting for your contribution and support."""
452+Work on version 1.4.8 was sponsored by Investortools, Inc."""
453
454 LICENSE_NOTICE = """
455 This program is free software; you can redistribute it and/or modify it
456@@ -495,9 +495,9 @@
457 TLC_HEADER_REPR = "Repr"
458 TLC_HEADER_TYPE = "Type"
459
460-VERSION = (1, 4, 6, 0, 'Tychod')
461-WINPDB_TITLE = "Winpdb 1.4.6 - Tychod"
462-WINPDB_VERSION = "WINPDB_1_4_6"
463+VERSION = (1, 4, 8, 0, 'Tychod')
464+WINPDB_TITLE = "Winpdb 1.4.8 - Tychod"
465+WINPDB_VERSION = "WINPDB_1_4_8"
466
467 WINPDB_SIZE = "winpdb_size"
468 WINPDB_MAXIMIZE = "winpdb_maximize"
469@@ -4650,8 +4650,8 @@
470
471
472 def main():
473- if rpdb2.get_version() != "RPDB_2_4_6":
474- rpdb2._print(STR_ERROR_INTERFACE_COMPATIBILITY % ("RPDB_2_4_6", rpdb2.get_version()))
475+ if rpdb2.get_version() != "RPDB_2_4_8":
476+ rpdb2._print(STR_ERROR_INTERFACE_COMPATIBILITY % ("RPDB_2_4_8", rpdb2.get_version()))
477 return
478
479 return rpdb2.main(StartClient, WINPDB_TITLE)

Subscribers

People subscribed via source and target branches

to all changes: