My fixes based on the latest git repo are available in the bugfixes
branch of https://github.com/e7appew/debdelta.git.
My fixes based on the latest version in sid are represented in the
attached debdiff patch.
diff -Nru debdelta-0.55/debdelta debdelta-0.55+nmu1/debdelta
--- debdelta-0.55/debdelta 2014-12-01 04:31:13.000000000 +1100
+++ debdelta-0.55+nmu1/debdelta 2016-11-21 15:11:41.000000000 +1100
@@ -676,7 +676,14 @@
return join(v.split('%3a'),':')
else:
return v
-
+
+def delta_base_name(pkg, old_ver, new_ver, arch, ext='.debdelta'):
+ assert(':' not in pkg)
+ return pkg + \
+ '_' + version_mangle(old_ver) + \
+ '_' + version_mangle(new_ver) + \
+ '_' + arch + ext
+
def tempo():
TD = abspath(tempfile.mkdtemp(prefix='debdelta',dir=TMPDIR))
for i in 'OLD','NEW','PATCH' :
@@ -2761,6 +2768,7 @@
"tries to guess the parameters used to compress, returns a string of
options ; if check=True and it fails, returns False "
par=''
crc=''
+ thread=''
z=tempfile.NamedTemporaryFile(suffix='.xz',delete=False)
#unfortunately 'xz --list' does not work on pipes!
shutil.copyfileobj(o,z)
@@ -2779,6 +2787,8 @@
if par and par != a[15]:
print " warning : this xz -- compressed file was compressed with
variable blocks options ?! '%s' != '%s'" & (par,a[15])
par=a[15]
+ if not thread and a[12]=='cu':
+ thread='-T2'
#print ' guessed par crc ',par,crc
if crc:
crc=crc.lower()
@@ -2799,6 +2809,8 @@
w.append(par)
if crc:
w+=['-C',crc]
+ if thread:
+ w.append(thread)
w.append('-')
if VERBOSE > 2 : print ' Testing XZ options ',w
w=subprocess.Popen(w,stdin=y.stdout,stdout=subprocess.PIPE,close_fds=True)
@@ -2815,8 +2827,10 @@
return False
if crc:
crc=' -C '+crc
+ if thread:
+ thread=' '+thread
os.unlink(z.name)
- return par+crc
+ return par+crc+thread
########### helper sh functions for script, for delta_tar()
@@ -3885,8 +3899,7 @@
continue
assert( old['Package'] == pa and pa == new['Package'] )
- deltabasename = pa +'_'+ version_mangle(old['Version']) +\
- '_'+ version_mangle(new['Version']) +'_'+ar+'.debdelta'
+ deltabasename = delta_base_name(pa, old['Version'], new['Version'], ar)
if 'Filename' in new:
deltadirname=delta_dirname(os.path.dirname(new['Filename']),DIR)
@@ -4693,13 +4706,13 @@
deb_path=string.join(deb_path[(thepoolindex):],'/')
#try all possible variants of the filename
- newdebs=[p.name+'_'+candidate_version+'_'+arch+'.deb',
+ newdebs=[p.shortname+'_'+candidate_version+'_'+arch+'.deb',
os.path.basename(deb_uri)]
if ':' in candidate_version:
a=candidate_version.split(':')
- newdebs.append(p.name+'_'+a[1]+'_'+arch+'.deb')
- newdebs.append(p.name+'_'+a[0]+'%3A'+a[1]+'_'+arch+'.deb')
- newdebs.append(p.name+'_'+a[0]+'%3a'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[0]+'%3A'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[0]+'%3a'+a[1]+'_'+arch+'.deb')
for newdeb in newdebs:
if os.path.exists(DEB_DIR+'/'+newdeb) or \
@@ -4727,9 +4740,8 @@
assert(a[0] == 'http')
#delta name
- delta_name=p.name.split(':')[0]+'_'+version_mangle(installed_version)+\
- '_'+ version_mangle(candidate_version)+'_'+\
- arch+'.debdelta'
+ delta_name = delta_base_name(p.shortname, installed_version,
+ candidate_version, arch)
uri=delta_uri_base+'/'+os.path.dirname(deb_path)+'/'+delta_name
@@ -5114,9 +5126,8 @@
continue
#delta name
- delta_name=p.name+'_'+version_mangle(installed_version)+\
- '_'+ version_mangle(candidate_version)+'_'+\
- arch+'.debdelta'
+ delta_name = delta_base_name(p.shortname, installed_version,
+ candidate_version, arch)
uri=delta_uri_base+'/'+os.path.dirname(deb_path)+'/'+delta_name
diff -Nru debdelta-0.55/debdeltas debdelta-0.55+nmu1/debdeltas
--- debdelta-0.55/debdeltas 2014-12-01 04:31:13.000000000 +1100
+++ debdelta-0.55+nmu1/debdeltas 2016-11-21 15:11:41.000000000 +1100
@@ -676,7 +676,14 @@
return join(v.split('%3a'),':')
else:
return v
-
+
+def delta_base_name(pkg, old_ver, new_ver, arch, ext='.debdelta'):
+ assert(':' not in pkg)
+ return pkg + \
+ '_' + version_mangle(old_ver) + \
+ '_' + version_mangle(new_ver) + \
+ '_' + arch + ext
+
def tempo():
TD = abspath(tempfile.mkdtemp(prefix='debdelta',dir=TMPDIR))
for i in 'OLD','NEW','PATCH' :
@@ -2761,6 +2768,7 @@
"tries to guess the parameters used to compress, returns a string of
options ; if check=True and it fails, returns False "
par=''
crc=''
+ thread=''
z=tempfile.NamedTemporaryFile(suffix='.xz',delete=False)
#unfortunately 'xz --list' does not work on pipes!
shutil.copyfileobj(o,z)
@@ -2779,6 +2787,8 @@
if par and par != a[15]:
print " warning : this xz -- compressed file was compressed with
variable blocks options ?! '%s' != '%s'" & (par,a[15])
par=a[15]
+ if not thread and a[12]=='cu':
+ thread='-T2'
#print ' guessed par crc ',par,crc
if crc:
crc=crc.lower()
@@ -2799,6 +2809,8 @@
w.append(par)
if crc:
w+=['-C',crc]
+ if thread:
+ w.append(thread)
w.append('-')
if VERBOSE > 2 : print ' Testing XZ options ',w
w=subprocess.Popen(w,stdin=y.stdout,stdout=subprocess.PIPE,close_fds=True)
@@ -2815,8 +2827,10 @@
return False
if crc:
crc=' -C '+crc
+ if thread:
+ thread=' '+thread
os.unlink(z.name)
- return par+crc
+ return par+crc+thread
########### helper sh functions for script, for delta_tar()
@@ -3885,8 +3899,7 @@
continue
assert( old['Package'] == pa and pa == new['Package'] )
- deltabasename = pa +'_'+ version_mangle(old['Version']) +\
- '_'+ version_mangle(new['Version']) +'_'+ar+'.debdelta'
+ deltabasename = delta_base_name(pa, old['Version'], new['Version'], ar)
if 'Filename' in new:
deltadirname=delta_dirname(os.path.dirname(new['Filename']),DIR)
@@ -4693,13 +4706,13 @@
deb_path=string.join(deb_path[(thepoolindex):],'/')
#try all possible variants of the filename
- newdebs=[p.name+'_'+candidate_version+'_'+arch+'.deb',
+ newdebs=[p.shortname+'_'+candidate_version+'_'+arch+'.deb',
os.path.basename(deb_uri)]
if ':' in candidate_version:
a=candidate_version.split(':')
- newdebs.append(p.name+'_'+a[1]+'_'+arch+'.deb')
- newdebs.append(p.name+'_'+a[0]+'%3A'+a[1]+'_'+arch+'.deb')
- newdebs.append(p.name+'_'+a[0]+'%3a'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[0]+'%3A'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[0]+'%3a'+a[1]+'_'+arch+'.deb')
for newdeb in newdebs:
if os.path.exists(DEB_DIR+'/'+newdeb) or \
@@ -4727,9 +4740,8 @@
assert(a[0] == 'http')
#delta name
- delta_name=p.name.split(':')[0]+'_'+version_mangle(installed_version)+\
- '_'+ version_mangle(candidate_version)+'_'+\
- arch+'.debdelta'
+ delta_name = delta_base_name(p.shortname, installed_version,
+ candidate_version, arch)
uri=delta_uri_base+'/'+os.path.dirname(deb_path)+'/'+delta_name
@@ -5114,9 +5126,8 @@
continue
#delta name
- delta_name=p.name+'_'+version_mangle(installed_version)+\
- '_'+ version_mangle(candidate_version)+'_'+\
- arch+'.debdelta'
+ delta_name = delta_base_name(p.shortname, installed_version,
+ candidate_version, arch)
uri=delta_uri_base+'/'+os.path.dirname(deb_path)+'/'+delta_name
diff -Nru debdelta-0.55/debdelta-upgrade debdelta-0.55+nmu1/debdelta-upgrade
--- debdelta-0.55/debdelta-upgrade 2014-12-01 04:31:13.000000000 +1100
+++ debdelta-0.55+nmu1/debdelta-upgrade 2016-11-21 15:11:41.000000000 +1100
@@ -676,7 +676,14 @@
return join(v.split('%3a'),':')
else:
return v
-
+
+def delta_base_name(pkg, old_ver, new_ver, arch, ext='.debdelta'):
+ assert(':' not in pkg)
+ return pkg + \
+ '_' + version_mangle(old_ver) + \
+ '_' + version_mangle(new_ver) + \
+ '_' + arch + ext
+
def tempo():
TD = abspath(tempfile.mkdtemp(prefix='debdelta',dir=TMPDIR))
for i in 'OLD','NEW','PATCH' :
@@ -2761,6 +2768,7 @@
"tries to guess the parameters used to compress, returns a string of
options ; if check=True and it fails, returns False "
par=''
crc=''
+ thread=''
z=tempfile.NamedTemporaryFile(suffix='.xz',delete=False)
#unfortunately 'xz --list' does not work on pipes!
shutil.copyfileobj(o,z)
@@ -2779,6 +2787,8 @@
if par and par != a[15]:
print " warning : this xz -- compressed file was compressed with
variable blocks options ?! '%s' != '%s'" & (par,a[15])
par=a[15]
+ if not thread and a[12]=='cu':
+ thread='-T2'
#print ' guessed par crc ',par,crc
if crc:
crc=crc.lower()
@@ -2799,6 +2809,8 @@
w.append(par)
if crc:
w+=['-C',crc]
+ if thread:
+ w.append(thread)
w.append('-')
if VERBOSE > 2 : print ' Testing XZ options ',w
w=subprocess.Popen(w,stdin=y.stdout,stdout=subprocess.PIPE,close_fds=True)
@@ -2815,8 +2827,10 @@
return False
if crc:
crc=' -C '+crc
+ if thread:
+ thread=' '+thread
os.unlink(z.name)
- return par+crc
+ return par+crc+thread
########### helper sh functions for script, for delta_tar()
@@ -3885,8 +3899,7 @@
continue
assert( old['Package'] == pa and pa == new['Package'] )
- deltabasename = pa +'_'+ version_mangle(old['Version']) +\
- '_'+ version_mangle(new['Version']) +'_'+ar+'.debdelta'
+ deltabasename = delta_base_name(pa, old['Version'], new['Version'], ar)
if 'Filename' in new:
deltadirname=delta_dirname(os.path.dirname(new['Filename']),DIR)
@@ -4693,13 +4706,13 @@
deb_path=string.join(deb_path[(thepoolindex):],'/')
#try all possible variants of the filename
- newdebs=[p.name+'_'+candidate_version+'_'+arch+'.deb',
+ newdebs=[p.shortname+'_'+candidate_version+'_'+arch+'.deb',
os.path.basename(deb_uri)]
if ':' in candidate_version:
a=candidate_version.split(':')
- newdebs.append(p.name+'_'+a[1]+'_'+arch+'.deb')
- newdebs.append(p.name+'_'+a[0]+'%3A'+a[1]+'_'+arch+'.deb')
- newdebs.append(p.name+'_'+a[0]+'%3a'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[0]+'%3A'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[0]+'%3a'+a[1]+'_'+arch+'.deb')
for newdeb in newdebs:
if os.path.exists(DEB_DIR+'/'+newdeb) or \
@@ -4727,9 +4740,8 @@
assert(a[0] == 'http')
#delta name
- delta_name=p.name.split(':')[0]+'_'+version_mangle(installed_version)+\
- '_'+ version_mangle(candidate_version)+'_'+\
- arch+'.debdelta'
+ delta_name = delta_base_name(p.shortname, installed_version,
+ candidate_version, arch)
uri=delta_uri_base+'/'+os.path.dirname(deb_path)+'/'+delta_name
@@ -5114,9 +5126,8 @@
continue
#delta name
- delta_name=p.name+'_'+version_mangle(installed_version)+\
- '_'+ version_mangle(candidate_version)+'_'+\
- arch+'.debdelta'
+ delta_name = delta_base_name(p.shortname, installed_version,
+ candidate_version, arch)
uri=delta_uri_base+'/'+os.path.dirname(deb_path)+'/'+delta_name
diff -Nru debdelta-0.55/debian/changelog debdelta-0.55+nmu1/debian/changelog
--- debdelta-0.55/debian/changelog 2014-12-01 04:31:13.000000000 +1100
+++ debdelta-0.55+nmu1/debian/changelog 2016-11-21 15:12:23.000000000 +1100
@@ -1,3 +1,13 @@
+debdelta (0.55+nmu1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix i386 debdelta URLs output by debpatch-url on amd64 system.
+ (Closes: #740552)
+ * Fix guessing of xz parameters for files compressed in parallel.
+ (Closes: #845173)
+
+ -- Carlos Maddela <[email protected]> Mon, 21 Nov 2016 15:12:23 +1100
+
debdelta (0.55) unstable; urgency=medium
* update git location
diff -Nru debdelta-0.55/debpatch debdelta-0.55+nmu1/debpatch
--- debdelta-0.55/debpatch 2014-12-01 04:31:13.000000000 +1100
+++ debdelta-0.55+nmu1/debpatch 2016-11-21 15:11:41.000000000 +1100
@@ -676,7 +676,14 @@
return join(v.split('%3a'),':')
else:
return v
-
+
+def delta_base_name(pkg, old_ver, new_ver, arch, ext='.debdelta'):
+ assert(':' not in pkg)
+ return pkg + \
+ '_' + version_mangle(old_ver) + \
+ '_' + version_mangle(new_ver) + \
+ '_' + arch + ext
+
def tempo():
TD = abspath(tempfile.mkdtemp(prefix='debdelta',dir=TMPDIR))
for i in 'OLD','NEW','PATCH' :
@@ -2761,6 +2768,7 @@
"tries to guess the parameters used to compress, returns a string of
options ; if check=True and it fails, returns False "
par=''
crc=''
+ thread=''
z=tempfile.NamedTemporaryFile(suffix='.xz',delete=False)
#unfortunately 'xz --list' does not work on pipes!
shutil.copyfileobj(o,z)
@@ -2779,6 +2787,8 @@
if par and par != a[15]:
print " warning : this xz -- compressed file was compressed with
variable blocks options ?! '%s' != '%s'" & (par,a[15])
par=a[15]
+ if not thread and a[12]=='cu':
+ thread='-T2'
#print ' guessed par crc ',par,crc
if crc:
crc=crc.lower()
@@ -2799,6 +2809,8 @@
w.append(par)
if crc:
w+=['-C',crc]
+ if thread:
+ w.append(thread)
w.append('-')
if VERBOSE > 2 : print ' Testing XZ options ',w
w=subprocess.Popen(w,stdin=y.stdout,stdout=subprocess.PIPE,close_fds=True)
@@ -2815,8 +2827,10 @@
return False
if crc:
crc=' -C '+crc
+ if thread:
+ thread=' '+thread
os.unlink(z.name)
- return par+crc
+ return par+crc+thread
########### helper sh functions for script, for delta_tar()
@@ -3885,8 +3899,7 @@
continue
assert( old['Package'] == pa and pa == new['Package'] )
- deltabasename = pa +'_'+ version_mangle(old['Version']) +\
- '_'+ version_mangle(new['Version']) +'_'+ar+'.debdelta'
+ deltabasename = delta_base_name(pa, old['Version'], new['Version'], ar)
if 'Filename' in new:
deltadirname=delta_dirname(os.path.dirname(new['Filename']),DIR)
@@ -4693,13 +4706,13 @@
deb_path=string.join(deb_path[(thepoolindex):],'/')
#try all possible variants of the filename
- newdebs=[p.name+'_'+candidate_version+'_'+arch+'.deb',
+ newdebs=[p.shortname+'_'+candidate_version+'_'+arch+'.deb',
os.path.basename(deb_uri)]
if ':' in candidate_version:
a=candidate_version.split(':')
- newdebs.append(p.name+'_'+a[1]+'_'+arch+'.deb')
- newdebs.append(p.name+'_'+a[0]+'%3A'+a[1]+'_'+arch+'.deb')
- newdebs.append(p.name+'_'+a[0]+'%3a'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[0]+'%3A'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[0]+'%3a'+a[1]+'_'+arch+'.deb')
for newdeb in newdebs:
if os.path.exists(DEB_DIR+'/'+newdeb) or \
@@ -4727,9 +4740,8 @@
assert(a[0] == 'http')
#delta name
- delta_name=p.name.split(':')[0]+'_'+version_mangle(installed_version)+\
- '_'+ version_mangle(candidate_version)+'_'+\
- arch+'.debdelta'
+ delta_name = delta_base_name(p.shortname, installed_version,
+ candidate_version, arch)
uri=delta_uri_base+'/'+os.path.dirname(deb_path)+'/'+delta_name
@@ -5114,9 +5126,8 @@
continue
#delta name
- delta_name=p.name+'_'+version_mangle(installed_version)+\
- '_'+ version_mangle(candidate_version)+'_'+\
- arch+'.debdelta'
+ delta_name = delta_base_name(p.shortname, installed_version,
+ candidate_version, arch)
uri=delta_uri_base+'/'+os.path.dirname(deb_path)+'/'+delta_name
diff -Nru debdelta-0.55/debpatch-url debdelta-0.55+nmu1/debpatch-url
--- debdelta-0.55/debpatch-url 2014-12-01 04:31:13.000000000 +1100
+++ debdelta-0.55+nmu1/debpatch-url 2016-11-21 15:11:41.000000000 +1100
@@ -676,7 +676,14 @@
return join(v.split('%3a'),':')
else:
return v
-
+
+def delta_base_name(pkg, old_ver, new_ver, arch, ext='.debdelta'):
+ assert(':' not in pkg)
+ return pkg + \
+ '_' + version_mangle(old_ver) + \
+ '_' + version_mangle(new_ver) + \
+ '_' + arch + ext
+
def tempo():
TD = abspath(tempfile.mkdtemp(prefix='debdelta',dir=TMPDIR))
for i in 'OLD','NEW','PATCH' :
@@ -2761,6 +2768,7 @@
"tries to guess the parameters used to compress, returns a string of
options ; if check=True and it fails, returns False "
par=''
crc=''
+ thread=''
z=tempfile.NamedTemporaryFile(suffix='.xz',delete=False)
#unfortunately 'xz --list' does not work on pipes!
shutil.copyfileobj(o,z)
@@ -2779,6 +2787,8 @@
if par and par != a[15]:
print " warning : this xz -- compressed file was compressed with
variable blocks options ?! '%s' != '%s'" & (par,a[15])
par=a[15]
+ if not thread and a[12]=='cu':
+ thread='-T2'
#print ' guessed par crc ',par,crc
if crc:
crc=crc.lower()
@@ -2799,6 +2809,8 @@
w.append(par)
if crc:
w+=['-C',crc]
+ if thread:
+ w.append(thread)
w.append('-')
if VERBOSE > 2 : print ' Testing XZ options ',w
w=subprocess.Popen(w,stdin=y.stdout,stdout=subprocess.PIPE,close_fds=True)
@@ -2815,8 +2827,10 @@
return False
if crc:
crc=' -C '+crc
+ if thread:
+ thread=' '+thread
os.unlink(z.name)
- return par+crc
+ return par+crc+thread
########### helper sh functions for script, for delta_tar()
@@ -3885,8 +3899,7 @@
continue
assert( old['Package'] == pa and pa == new['Package'] )
- deltabasename = pa +'_'+ version_mangle(old['Version']) +\
- '_'+ version_mangle(new['Version']) +'_'+ar+'.debdelta'
+ deltabasename = delta_base_name(pa, old['Version'], new['Version'], ar)
if 'Filename' in new:
deltadirname=delta_dirname(os.path.dirname(new['Filename']),DIR)
@@ -4693,13 +4706,13 @@
deb_path=string.join(deb_path[(thepoolindex):],'/')
#try all possible variants of the filename
- newdebs=[p.name+'_'+candidate_version+'_'+arch+'.deb',
+ newdebs=[p.shortname+'_'+candidate_version+'_'+arch+'.deb',
os.path.basename(deb_uri)]
if ':' in candidate_version:
a=candidate_version.split(':')
- newdebs.append(p.name+'_'+a[1]+'_'+arch+'.deb')
- newdebs.append(p.name+'_'+a[0]+'%3A'+a[1]+'_'+arch+'.deb')
- newdebs.append(p.name+'_'+a[0]+'%3a'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[0]+'%3A'+a[1]+'_'+arch+'.deb')
+ newdebs.append(p.shortname+'_'+a[0]+'%3a'+a[1]+'_'+arch+'.deb')
for newdeb in newdebs:
if os.path.exists(DEB_DIR+'/'+newdeb) or \
@@ -4727,9 +4740,8 @@
assert(a[0] == 'http')
#delta name
- delta_name=p.name.split(':')[0]+'_'+version_mangle(installed_version)+\
- '_'+ version_mangle(candidate_version)+'_'+\
- arch+'.debdelta'
+ delta_name = delta_base_name(p.shortname, installed_version,
+ candidate_version, arch)
uri=delta_uri_base+'/'+os.path.dirname(deb_path)+'/'+delta_name
@@ -5114,9 +5126,8 @@
continue
#delta name
- delta_name=p.name+'_'+version_mangle(installed_version)+\
- '_'+ version_mangle(candidate_version)+'_'+\
- arch+'.debdelta'
+ delta_name = delta_base_name(p.shortname, installed_version,
+ candidate_version, arch)
uri=delta_uri_base+'/'+os.path.dirname(deb_path)+'/'+delta_name