Package: dpkg
Version: 1.18.4
Severity: wishlist
Tags: patch
Making dpkg-deb to be deterministic by fixing #719845 was good for
reproducible build. But "dpkg-deb -c" output is not human friendly.
Basically, we want it to be sorted by name instead of internal data
order.
Please consider adding patch such as one attached to instruct tar to
change its default behavior.
One debatable point is when to sort output. Instead of always sorting
by name, should we sort only when LIST? Should we have option to
control it?
Pertinent code will be around below in dpkg-deb/extract.c:
if ((taroption & DPKG_TAR_LIST) && (taroption & DPKG_TAR_EXTRACT))
command_add_arg(&cmd, "-xv");
else if (taroption & DPKG_TAR_EXTRACT)
command_add_arg(&cmd, "-x");
else if (taroption & DPKG_TAR_LIST)
command_add_arg(&cmd, "-tv");
else
If this is fixed, people will not complain like:
https://bugs.debian.org/694515
Regards,
Osamu
-- System Information:
Debian Release: stretch/sid
APT prefers testing
APT policy: (500, 'testing'), (98, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.3.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages dpkg depends on:
ii libbz2-1.0 1.0.6-8
ii libc6 2.21-9
ii liblzma5 5.1.1alpha+20120614-2.1
ii libselinux1 2.4-3+b1
ii tar 1.28-2.1
ii zlib1g 1:1.2.8.dfsg-2+b1
dpkg recommends no packages.
Versions of packages dpkg suggests:
ii apt 1.2.4
-- no debconf information
--- extract.c.orig 2016-03-07 22:44:03.421627595 +0900
+++ extract.c 2016-03-07 22:47:23.810190427 +0900
@@ -320,6 +320,7 @@
command_init(&cmd, TAR, "tar");
command_add_arg(&cmd, "tar");
+ command_add_arg(&cmd, "--sort=name");
if ((taroption & DPKG_TAR_LIST) && (taroption & DPKG_TAR_EXTRACT))
command_add_arg(&cmd, "-xv");
else if (taroption & DPKG_TAR_EXTRACT)