[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#693030: unblock: debdelta/0.50+2



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package debdelta.

Sorry to bother again.
Carlos Mandela found two annoying bugs; 
* not stripping the ':arch' part of package names in multiarch hosts
* not quoting the ':' in epochs when using a proxy
(both situations admittetly I did not test a lot - BTW I do not have
a proxy here)

See diffs in attachment.

unblock debdelta/0.50+2

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=it_IT.utf8, LC_CTYPE=it_IT.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

-- 
Andrea Mennucc
 "E' un mondo difficile. Che vita intensa!" (Tonino Carotone)
File lists identical (after any substitutions)

Control files of package debdelta: lines which differ (wdiff format)
--------------------------------------------------------------------
Version: [-0.50+1-] {+0.50+2+}

Control files of package debdelta-doc: lines which differ (wdiff format)
------------------------------------------------------------------------
Installed-Size: [-251-] {+252+}
Version: [-0.50+1-] {+0.50+2+}
diff -Nru debdelta-0.50+1/debdelta debdelta-0.50+2/debdelta
--- debdelta-0.50+1/debdelta	2012-09-24 12:04:08.000000000 +0200
+++ debdelta-0.50+2/debdelta	2012-11-07 11:09:14.000000000 +0100
@@ -4197,7 +4197,7 @@
   #########################################
 
   import socket, httplib
-  from urlparse import urlparse
+  from urlparse import urlparse, urlunparse
 
   #################### manage connections
   #keeps a cache of all connections, by URL
@@ -4226,7 +4226,7 @@
   def _connect(uri, headers):
     "connects for a GET ; returns (filetype, statuscode, servermessage, getheaders)"
     uri_p=urlparse(uri)
-    if uri[:7] == 'http://' and not proxies:
+    if uri_p.scheme == 'http' and not proxies:
       #use persistent http connections
       conn=conn_by_url(uri)
       if conn == None :
@@ -4253,7 +4253,11 @@
           return e, None, None, None
     else: #use urllib2
       try:
-        req = urllib2.Request(uri, headers=headers)
+        if uri_p.scheme == 'http':
+          a=[copy(z) for z in uri_p]
+          a[2]=urllib2.quote(uri_p[2])
+          url=urlunparse(a)
+        req = urllib2.Request(url, headers=headers)
         r = urllib2.urlopen(req)
         #print r.info(),dir(r),r.code
         return r, getattr(r,'code',None), getattr(r,'msg','(no message)'), r.info()
@@ -4528,7 +4532,7 @@
       assert(a[0] == 'http')
 
       #delta name
-      delta_name=p.name+'_'+version_mangle(installed_version)+\
+      delta_name=p.name.split(':')[0]+'_'+version_mangle(installed_version)+\
                   '_'+ version_mangle(candidate_version)+'_'+\
                   arch+'.debdelta'
 
diff -Nru debdelta-0.50+1/debdeltas debdelta-0.50+2/debdeltas
--- debdelta-0.50+1/debdeltas	2012-09-24 12:04:08.000000000 +0200
+++ debdelta-0.50+2/debdeltas	2012-11-07 11:09:14.000000000 +0100
@@ -4197,7 +4197,7 @@
   #########################################
 
   import socket, httplib
-  from urlparse import urlparse
+  from urlparse import urlparse, urlunparse
 
   #################### manage connections
   #keeps a cache of all connections, by URL
@@ -4226,7 +4226,7 @@
   def _connect(uri, headers):
     "connects for a GET ; returns (filetype, statuscode, servermessage, getheaders)"
     uri_p=urlparse(uri)
-    if uri[:7] == 'http://' and not proxies:
+    if uri_p.scheme == 'http' and not proxies:
       #use persistent http connections
       conn=conn_by_url(uri)
       if conn == None :
@@ -4253,7 +4253,11 @@
           return e, None, None, None
     else: #use urllib2
       try:
-        req = urllib2.Request(uri, headers=headers)
+        if uri_p.scheme == 'http':
+          a=[copy(z) for z in uri_p]
+          a[2]=urllib2.quote(uri_p[2])
+          url=urlunparse(a)
+        req = urllib2.Request(url, headers=headers)
         r = urllib2.urlopen(req)
         #print r.info(),dir(r),r.code
         return r, getattr(r,'code',None), getattr(r,'msg','(no message)'), r.info()
@@ -4528,7 +4532,7 @@
       assert(a[0] == 'http')
 
       #delta name
-      delta_name=p.name+'_'+version_mangle(installed_version)+\
+      delta_name=p.name.split(':')[0]+'_'+version_mangle(installed_version)+\
                   '_'+ version_mangle(candidate_version)+'_'+\
                   arch+'.debdelta'
 
diff -Nru debdelta-0.50+1/debdelta-upgrade debdelta-0.50+2/debdelta-upgrade
--- debdelta-0.50+1/debdelta-upgrade	2012-09-24 12:04:08.000000000 +0200
+++ debdelta-0.50+2/debdelta-upgrade	2012-11-07 11:09:14.000000000 +0100
@@ -4197,7 +4197,7 @@
   #########################################
 
   import socket, httplib
-  from urlparse import urlparse
+  from urlparse import urlparse, urlunparse
 
   #################### manage connections
   #keeps a cache of all connections, by URL
@@ -4226,7 +4226,7 @@
   def _connect(uri, headers):
     "connects for a GET ; returns (filetype, statuscode, servermessage, getheaders)"
     uri_p=urlparse(uri)
-    if uri[:7] == 'http://' and not proxies:
+    if uri_p.scheme == 'http' and not proxies:
       #use persistent http connections
       conn=conn_by_url(uri)
       if conn == None :
@@ -4253,7 +4253,11 @@
           return e, None, None, None
     else: #use urllib2
       try:
-        req = urllib2.Request(uri, headers=headers)
+        if uri_p.scheme == 'http':
+          a=[copy(z) for z in uri_p]
+          a[2]=urllib2.quote(uri_p[2])
+          url=urlunparse(a)
+        req = urllib2.Request(url, headers=headers)
         r = urllib2.urlopen(req)
         #print r.info(),dir(r),r.code
         return r, getattr(r,'code',None), getattr(r,'msg','(no message)'), r.info()
@@ -4528,7 +4532,7 @@
       assert(a[0] == 'http')
 
       #delta name
-      delta_name=p.name+'_'+version_mangle(installed_version)+\
+      delta_name=p.name.split(':')[0]+'_'+version_mangle(installed_version)+\
                   '_'+ version_mangle(candidate_version)+'_'+\
                   arch+'.debdelta'
 
diff -Nru debdelta-0.50+1/debian/changelog debdelta-0.50+2/debian/changelog
--- debdelta-0.50+1/debian/changelog	2012-10-31 11:06:11.000000000 +0100
+++ debdelta-0.50+2/debian/changelog	2012-11-07 13:33:08.000000000 +0100
@@ -1,3 +1,13 @@
+debdelta (0.50+2) unstable; urgency=high
+
+  * debdelta-upgrade: uses incorrect URL when requesting
+     i386 debdeltas to upgrade amd64 (multiarch) host,
+    thanks to Carlos Maddela (Closes: #692194).
+  * debdelta-upgrade: packages whose version number contains a colon not
+    upgraded when using a proxy, thanks to Carlos Maddela (Closes: #691641).
+
+ -- A Mennucc1 <mennucc1@debian.org>  Wed, 07 Nov 2012 13:31:31 +0100
+
 debdelta (0.50+1) unstable; urgency=high
 
   * debpatch, debdelta-upgrade : do not get confused by broken symlinks
diff -Nru debdelta-0.50+1/debpatch debdelta-0.50+2/debpatch
--- debdelta-0.50+1/debpatch	2012-09-24 12:04:08.000000000 +0200
+++ debdelta-0.50+2/debpatch	2012-11-07 11:09:14.000000000 +0100
@@ -4197,7 +4197,7 @@
   #########################################
 
   import socket, httplib
-  from urlparse import urlparse
+  from urlparse import urlparse, urlunparse
 
   #################### manage connections
   #keeps a cache of all connections, by URL
@@ -4226,7 +4226,7 @@
   def _connect(uri, headers):
     "connects for a GET ; returns (filetype, statuscode, servermessage, getheaders)"
     uri_p=urlparse(uri)
-    if uri[:7] == 'http://' and not proxies:
+    if uri_p.scheme == 'http' and not proxies:
       #use persistent http connections
       conn=conn_by_url(uri)
       if conn == None :
@@ -4253,7 +4253,11 @@
           return e, None, None, None
     else: #use urllib2
       try:
-        req = urllib2.Request(uri, headers=headers)
+        if uri_p.scheme == 'http':
+          a=[copy(z) for z in uri_p]
+          a[2]=urllib2.quote(uri_p[2])
+          url=urlunparse(a)
+        req = urllib2.Request(url, headers=headers)
         r = urllib2.urlopen(req)
         #print r.info(),dir(r),r.code
         return r, getattr(r,'code',None), getattr(r,'msg','(no message)'), r.info()
@@ -4528,7 +4532,7 @@
       assert(a[0] == 'http')
 
       #delta name
-      delta_name=p.name+'_'+version_mangle(installed_version)+\
+      delta_name=p.name.split(':')[0]+'_'+version_mangle(installed_version)+\
                   '_'+ version_mangle(candidate_version)+'_'+\
                   arch+'.debdelta'
 
diff -Nru debdelta-0.50+1/debpatch-url debdelta-0.50+2/debpatch-url
--- debdelta-0.50+1/debpatch-url	2012-09-24 12:04:08.000000000 +0200
+++ debdelta-0.50+2/debpatch-url	2012-11-07 11:09:14.000000000 +0100
@@ -4197,7 +4197,7 @@
   #########################################
 
   import socket, httplib
-  from urlparse import urlparse
+  from urlparse import urlparse, urlunparse
 
   #################### manage connections
   #keeps a cache of all connections, by URL
@@ -4226,7 +4226,7 @@
   def _connect(uri, headers):
     "connects for a GET ; returns (filetype, statuscode, servermessage, getheaders)"
     uri_p=urlparse(uri)
-    if uri[:7] == 'http://' and not proxies:
+    if uri_p.scheme == 'http' and not proxies:
       #use persistent http connections
       conn=conn_by_url(uri)
       if conn == None :
@@ -4253,7 +4253,11 @@
           return e, None, None, None
     else: #use urllib2
       try:
-        req = urllib2.Request(uri, headers=headers)
+        if uri_p.scheme == 'http':
+          a=[copy(z) for z in uri_p]
+          a[2]=urllib2.quote(uri_p[2])
+          url=urlunparse(a)
+        req = urllib2.Request(url, headers=headers)
         r = urllib2.urlopen(req)
         #print r.info(),dir(r),r.code
         return r, getattr(r,'code',None), getattr(r,'msg','(no message)'), r.info()
@@ -4528,7 +4532,7 @@
       assert(a[0] == 'http')
 
       #delta name
-      delta_name=p.name+'_'+version_mangle(installed_version)+\
+      delta_name=p.name.split(':')[0]+'_'+version_mangle(installed_version)+\
                   '_'+ version_mangle(candidate_version)+'_'+\
                   arch+'.debdelta'
 

Reply to: