Package: debdelta
Version: 0.50
Severity: normal

Dear Maintainer,

Not sure if this is a configuration problem on the debdeltas.debian.net
server, but packages whose version number contains a colon, such as
those found in pool/main/k/kde4libs, are not upgraded.  debdelta-upgrade
will report that their debdeltas are not present on the server, even
though they are in fact available.

The problem is that the debdeltas are stored with URL encoding on the
server.  For example, a debdelta file name would be:

    kdelibs-bin_4%3a4.8.4-3_4%3a4.8.4-4_amd64.debdelta

instead of the expected:

    kdelibs-bin_4:4.8.4-3_4:4.8.4-4_amd64.debdelta

If the former is how debdeltas should be stored on the server, then
debdelta-upgrade should instead request the above example as:

    kdelibs-bin_4%253a4.8.4-3_4%253a4.8.4-4_amd64.debdelta

I have attached a patch to fix this problem, should this be the case.
Otherwise, the server should be reconfigured.


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

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

Versions of packages debdelta depends on:
ii  binutils    2.22-7.1
ii  bzip2       1.0.6-4
ii  libbz2-1.0  1.0.6-4
ii  libc6       2.13-36
ii  python      2.7.3-3
ii  zlib1g      1:1.2.7.dfsg-13

Versions of packages debdelta recommends:
ii  bsdiff           4.3-14
ii  gnupg-agent      2.0.19-1
ii  gnupg2           2.0.19-1
ii  lzma             9.22-2
ii  python-apt       0.8.8
ii  xdelta           1.1.3-9
ii  xdelta3          3.0.0.dfsg-1
ii  xz-utils [lzma]  5.1.1alpha+20120614-1

Versions of packages debdelta suggests:
ii  debdelta-doc  0.50

-- no debconf information
diff --git a/debdelta/debdelta b/debdelta/debdelta
index 7618e10..84cdc2a 100755
--- a/debdelta/debdelta
+++ b/debdelta/debdelta
@@ -563,13 +563,13 @@ from string import join
 
 def version_mangle(v):
   if  ':' in v :
-    return join(v.split(':'),'%3a')
+    return join(v.split(':'),'%253a')
   else:
     return v
   
 def version_demangle(v):
   if  '%' in v :
-    return join(v.split('%3a'),':')
+    return join(v.split('%253a'),':')
   else:
     return v
   

Reply via email to