Control: severity -1 grave On Thu, Jul 25, 2019 at 11:53:39PM +0300, Коля Гурьев wrote: >Package: pristine-tar >Version: 1.46 >Severity: important > >pristine-tar of version 1.46 available in Debian Unstable can't unpack >deltas of versions 2 generated by pristine-tar 1.33 from Ubuntu Xenial. > >I've committed a tarball for the rlottie package into my Git repository >using pristine-tar 1.33. Then I try to regenerate the tarball inside >Debian chroot and get the next error. > >$ pristine-tar --debug --verbose checkout >../rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz >pristine-tar: git archive --format=tar >9fed0d3da5cfa7eabd4fa8c2590dd86e5b1442e1 | (cd '/tmp/pristine-tar.2a5pcCDc3n' >&& tar x) >pristine-tar: tar xf /tmp/pristine-tar.cBbx8nKDp6/tmpin -C >/tmp/pristine-tar.Dvxlxlx8Qn >pristine-tar: set subdir to rlottie >pristine-tar: subdir is rlottie >pristine-tar: mkdir /tmp/pristine-tar.o0lKEjWozz/workdir >pristine-tar: mv /tmp/pristine-tar.2a5pcCDc3n >/tmp/pristine-tar.o0lKEjWozz/workdir/rlottie >pristine-tar: rlottie/example/resource/360\302\272_degree.json is listed in >the manifest but may not be present in the source directory >pristine-tar: creating missing rlottie/example/resource/360\302\272_degree.json >pristine-tar: doing full tree sweep to catch missing files >pristine-tar: tar cf /tmp/pristine-tar.o0lKEjWozz/recreatetarball --owner 0 >--group 0 --numeric-owner -C /tmp/pristine-tar.o0lKEjWozz/workdir >--no-recursion --mode 0644 --verbatim-files-from --files-from >/tmp/pristine-tar.o0lKEjWozz/manifest >pristine-tar: xdelta patch --pristine /tmp/pristine-tar.Dvxlxlx8Qn/delta >/tmp/pristine-tar.o0lKEjWozz/recreatetarball >/tmp/pristine-tar.i1k0xBo1aP/rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz.tmp >xdelta: expected from file (/tmp/pristine-tar.o0lKEjWozz/recreatetarball) of >length 12779520 bytes >pristine-tar: tar cf /tmp/pristine-tar.o0lKEjWozz/recreatetarball --owner 0 >--group 0 --numeric-owner -C /tmp/pristine-tar.o0lKEjWozz/workdir >--no-recursion --mode 0644 --verbatim-files-from --files-from >/tmp/pristine-tar.o0lKEjWozz/manifest >pristine-tar: xdelta patch --pristine /tmp/pristine-tar.Dvxlxlx8Qn/delta >/tmp/pristine-tar.o0lKEjWozz/recreatetarball >/tmp/pristine-tar.i1k0xBo1aP/rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz.tmp >xdelta: expected from file (/tmp/pristine-tar.o0lKEjWozz/recreatetarball) of >length 12779520 bytes >pristine-tar: set subdir to rlottie >pristine-tar: subdir is rlottie >pristine-tar: mkdir /tmp/pristine-tar.4XNCSF8pDG/workdir >pristine-tar: mv /tmp/pristine-tar.o0lKEjWozz/workdir/rlottie >/tmp/pristine-tar.4XNCSF8pDG/workdir/rlottie >pristine-tar: tar cf /tmp/pristine-tar.4XNCSF8pDG/recreatetarball --owner 0 >--group 0 --numeric-owner -C /tmp/pristine-tar.4XNCSF8pDG/workdir >--no-recursion --mode 0644 --verbatim-files-from --files-from >/tmp/pristine-tar.4XNCSF8pDG/manifest -H gnu >pristine-tar: xdelta patch --pristine /tmp/pristine-tar.Dvxlxlx8Qn/delta >/tmp/pristine-tar.4XNCSF8pDG/recreatetarball >/tmp/pristine-tar.i1k0xBo1aP/rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz.tmp >xdelta: expected from file (/tmp/pristine-tar.4XNCSF8pDG/recreatetarball) of >length 12779520 bytes >pristine-tar: set subdir to rlottie >pristine-tar: subdir is rlottie >pristine-tar: mkdir /tmp/pristine-tar.SY9ZY0yfKg/workdir >pristine-tar: mv /tmp/pristine-tar.4XNCSF8pDG/workdir/rlottie >/tmp/pristine-tar.SY9ZY0yfKg/workdir/rlottie >pristine-tar: tar cf /tmp/pristine-tar.SY9ZY0yfKg/recreatetarball --owner 0 >--group 0 --numeric-owner -C /tmp/pristine-tar.SY9ZY0yfKg/workdir >--no-recursion --mode 0644 --verbatim-files-from --files-from >/tmp/pristine-tar.SY9ZY0yfKg/manifest -H posix >pristine-tar: xdelta patch --pristine /tmp/pristine-tar.Dvxlxlx8Qn/delta >/tmp/pristine-tar.SY9ZY0yfKg/recreatetarball >/tmp/pristine-tar.i1k0xBo1aP/rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz.tmp >xdelta: expected from file (/tmp/pristine-tar.SY9ZY0yfKg/recreatetarball) of >length 12779520 bytes >pristine-tar: tar cf /tmp/pristine-tar.SY9ZY0yfKg/recreatetarball --owner 0 >--group 0 --numeric-owner -C /tmp/pristine-tar.SY9ZY0yfKg/workdir >--no-recursion --mode 0644 --verbatim-files-from --files-from >/tmp/pristine-tar.SY9ZY0yfKg/manifest >pristine-tar: xdelta patch --pristine /tmp/pristine-tar.Dvxlxlx8Qn/delta >/tmp/pristine-tar.SY9ZY0yfKg/recreatetarball >/tmp/pristine-tar.i1k0xBo1aP/rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz.tmp >xdelta: expected from file (/tmp/pristine-tar.SY9ZY0yfKg/recreatetarball) of >length 12779520 bytes >pristine-tar: Failed to reproduce original tarball. Please file a bug report. >pristine-tar: failed to generate tarball > >You'll find problematic delta in the repository of the rlottie package >under the mymedia/weird-delta tag. Steps to reproduce: > > git clone https://salsa.debian.org/debian/rlottie.git > git branch pristine-tar mymedia/weird-delta > pristine-tar checkout ../rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz > >Here is version numbers of dependencies of both programs.
Also seeing this problem with a repo of the erlang package. Older revisions of pristine-tar were used to make the repo, but version 1.46 in buster shows exactly the same problem as described here on that repo. Log: erlang$ pristine-tar checkout --debug --verbose erlang_21.2.6+dfsg.orig.tar.xz pristine-tar: git archive --format=tar 11e992e50fb4ae6890d612a17a0d0b4d47cc900e | (cd '/tmp/pristine-tar.RSjPOnC1An' && tar x) pristine-tar: tar xf /tmp/pristine-tar.5g30csWjKL/tmpin -C /tmp/pristine-tar.zcgIesmb_Q pristine-tar: set subdir to otp-OTP-21.2.6 pristine-tar: subdir is otp-OTP-21.2.6 pristine-tar: mkdir /tmp/pristine-tar.AMBDcqQ1Hg/workdir pristine-tar: mv /tmp/pristine-tar.RSjPOnC1An /tmp/pristine-tar.AMBDcqQ1Hg/workdir/otp-OTP-21.2.6 pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/ is listed in the manifest but may not be present in the source directory pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/ pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/F\344\270\200.txt is listed in the manifest but may not be present in the source directory pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/F\344\270\200.txt pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/big.txt is listed in the manifest but may not be present in the source directory pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/big.txt pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/ is listed in the manifest but may not be present in the source directory pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/ pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/f1 is listed in the manifest but may not be present in the source directory pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/f1 pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/f2 is listed in the manifest but may not be present in the source directory pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/f2 pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/f2.txt is listed in the manifest but may not be present in the source directory pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/f2.txt pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/f3.txt is listed in the manifest but may not be present in the source directory pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/f3.txt pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/g\345\233\233.txt is listed in the manifest but may not be present in the source directory pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/g\345\233\233.txt pristine-tar: doing full tree sweep to catch missing files pristine-tar: tar cf /tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.AMBDcqQ1Hg/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.AMBDcqQ1Hg/manifest pristine-tar: xdelta patch --pristine /tmp/pristine-tar.zcgIesmb_Q/delta /tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball /tmp/pristine-tar.1f_dVtajKN/erlang_21.2.6+dfsg.orig.tar.xz.tmp xdelta: expected from file (/tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball) of length 170475520 bytes pristine-tar: tar cf /tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.AMBDcqQ1Hg/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.AMBDcqQ1Hg/manifest pristine-tar: xdelta patch --pristine /tmp/pristine-tar.zcgIesmb_Q/delta /tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball /tmp/pristine-tar.1f_dVtajKN/erlang_21.2.6+dfsg.orig.tar.xz.tmp xdelta: expected from file (/tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball) of length 170475520 bytes pristine-tar: set subdir to otp-OTP-21.2.6 pristine-tar: subdir is otp-OTP-21.2.6 pristine-tar: mkdir /tmp/pristine-tar.OQqz11KMwG/workdir pristine-tar: mv /tmp/pristine-tar.AMBDcqQ1Hg/workdir/otp-OTP-21.2.6 /tmp/pristine-tar.OQqz11KMwG/workdir/otp-OTP-21.2.6 pristine-tar: tar cf /tmp/pristine-tar.OQqz11KMwG/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.OQqz11KMwG/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.OQqz11KMwG/manifest -H gnu pristine-tar: xdelta patch --pristine /tmp/pristine-tar.zcgIesmb_Q/delta /tmp/pristine-tar.OQqz11KMwG/recreatetarball /tmp/pristine-tar.1f_dVtajKN/erlang_21.2.6+dfsg.orig.tar.xz.tmp xdelta: expected from file (/tmp/pristine-tar.OQqz11KMwG/recreatetarball) of length 170475520 bytes pristine-tar: set subdir to otp-OTP-21.2.6 pristine-tar: subdir is otp-OTP-21.2.6 pristine-tar: mkdir /tmp/pristine-tar.OVrlMr95XO/workdir pristine-tar: mv /tmp/pristine-tar.OQqz11KMwG/workdir/otp-OTP-21.2.6 /tmp/pristine-tar.OVrlMr95XO/workdir/otp-OTP-21.2.6 pristine-tar: tar cf /tmp/pristine-tar.OVrlMr95XO/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.OVrlMr95XO/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.OVrlMr95XO/manifest -H posix pristine-tar: xdelta patch --pristine /tmp/pristine-tar.zcgIesmb_Q/delta /tmp/pristine-tar.OVrlMr95XO/recreatetarball /tmp/pristine-tar.1f_dVtajKN/erlang_21.2.6+dfsg.orig.tar.xz.tmp xdelta: expected from file (/tmp/pristine-tar.OVrlMr95XO/recreatetarball) of length 170475520 bytes pristine-tar: tar cf /tmp/pristine-tar.OVrlMr95XO/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.OVrlMr95XO/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.OVrlMr95XO/manifest pristine-tar: xdelta patch --pristine /tmp/pristine-tar.zcgIesmb_Q/delta /tmp/pristine-tar.OVrlMr95XO/recreatetarball /tmp/pristine-tar.1f_dVtajKN/erlang_21.2.6+dfsg.orig.tar.xz.tmp xdelta: expected from file (/tmp/pristine-tar.OVrlMr95XO/recreatetarball) of length 170475520 bytes pristine-tar: Failed to reproduce original tarball. Please file a bug report. pristine-tar: failed to generate tarball IMHO this has to be a grave bug - without reimporting this repo we can't get our older revisions back. Then I'm worried that this will break things if we need to go back and rebuild older versions (using older tooling). pristine-tar needs to be safe for data here. :-( I've done a git bisect of the pristine-tar repo to see where things broke, and that clearly tells me: ... f287f10b48c3ca5a30db13dbf3ba918c47a943bb is the first bad commit commit f287f10b48c3ca5a30db13dbf3ba918c47a943bb Author: Tomasz Buchert <tom...@debian.org> Date: Fri Jan 13 23:28:04 2017 +0100 fix #851286 :100755 100755 1a34e953ba363ae1e284b97f83f63f6ef80ea544 3ba76f79d376d011451b8c572b20e185b715bed1 M pristine-tar :040000 040000 84bc809be6b4dcf81cfce71f0550858957a3e92f f8eb72beb458cbd9770f88f0f4efc00f0c75a299 M test bisect run success ... I hope that helps the maintainers - shout if you'd like more help debugging. -- Steve McIntyre, Cambridge, UK. st...@einval.com "...In the UNIX world, people tend to interpret `non-technical user' as meaning someone who's only ever written one device driver." -- Daniel Pead