But as expected, other than the changelog diff that is the same.
Yet on buildpackage from that tree and checking debdiff I see:
...
Binary files /tmp/JqU_4VSXKy/diffoscope-243/tests/data/elfmix2.a and /tmp/tbGODW93AS/diffoscope-243ubuntu2/tests/data/elfmix2.a differ
Binary files /tmp/JqU_4VSXKy/diffoscope-243/tests/data/test1.a and /tmp/tbGODW93AS/diffoscope-243ubuntu2/tests/data/test1.a differ
Binary files /tmp/JqU_4VSXKy/diffoscope-243/tests/data/test1.o and /tmp/tbGODW93AS/diffoscope-243ubuntu2/tests/data/test1.o differ
Binary files /tmp/JqU_4VSXKy/diffoscope-243/tests/data/test2.a and /tmp/tbGODW93AS/diffoscope-243ubuntu2/tests/data/test2.a differ
Binary files /tmp/JqU_4VSXKy/diffoscope-243/tests/data/test2.o and /tmp/tbGODW93AS/diffoscope-243ubuntu2/tests/data/test2.o differ
I feel that this is either
a) something super weird proud to eventually have understood
b) something super embarrassing that I've forgotten about native packages and overlook now just waiting on my to facepalm hard
Well either way, it is not in there:
$ cd $(mktemp -d); pull-debian-source diffoscope &>/dev/null; tar tf diffoscope_243.tar.xz | grep elfmix2.a
diffoscope-243/tests/data/elfmix2.a
$ cd $(mktemp -d); pull-lp-source diffoscope &>/dev/null; tar tf diffoscope_243ubuntu1.tar.xz | grep elfmix2.a
And that made me realize that all the files that are missing are .a and .o files.
That looks like a build cleanup stage removing them by accident.
So let me check the set of usual arguments, best candidates are those in regard to cleaning and excluding.
Yep, as expected by now the -I (which in some other build cases is needed) is wreaking havoc here.
Dropping -I from buildpackage (and thereby from dpkg-source) creates a tarball that is ok.
Double checking before upload ...
Yes AFAICS tarball ok, dsc ok, changes ok
re-sponsoring with this fixed:
$ dput ubuntu ../diffoscope_243ubuntu2_source.changes
Uploading diffoscope using ftp to ubuntu (host: upload.ubuntu.com; directory: /ubuntu)
running updatemaintainer: Stop if ubuntu changes are without ubuntu maintainer.
running checksum: verify checksums before uploading
running gitubuntu: Warn if uploading without git-ubuntu Vcs-* entries.
running releasemismatch: Warn about mismatching suffixesg e.g. focal with a XX.YY not being 20.04
running check-debs: makes sure the upload contains a binary package
running ppaforppaonly: Stop uploads to the archive with or to ppa without ~ppa suffix.
running supported-distribution: check whether the target distribution is currently supported (using distro-info)
{'allowed': ['release', 'proposed', 'backports', 'security'], 'known': ['release', 'proposed', 'updates', 'backports', 'security']}
running badauthor: Stop if uploading with root@ or ubuntu@ email adresses.
running required-fields: check whether a field is present and non-empty in the changes file
running gpg: check GnuPG signatures before the upload
running placeholderbug: Stop if using common placeholder numbers as bug reference.
running nobug: Stop if uploading without any bug reference.
running suite-mismatch: check the target distribution for common errors
Uploading diffoscope_243ubuntu2.dsc
Uploading diffoscope_243ubuntu2.tar.xz
Uploading diffoscope_243ubuntu2_source.buildinfo
Uploading diffoscope_243ubuntu2_source.changes
P.S. that also explains why git-ubuntu couldn't match the tree-ish (with the .a/.o files) with the upload (without).
Yep, I can at least reproduce this issue.
What I uploaded was correct on disk and in git:
https:/ /git.launchpad. net/~paelzer/ ubuntu/ +source/ diffoscope/ diff/?h= danilogondolfo_ merge_mantic_ 1&id=bf6c6188d9 44806b516aabe65 bf328d906768336 &id2=202ad0b651 5ef427291d57474 06809c3fc11cc91
I recreated a branch meant to amend this issue. /git.launchpad. net/~paelzer/ ubuntu/ +source/ diffoscope/ diff/?h= fix-lost- test-files- mantic& id=0dd920ae38eb 33c141858e0cd1d 5ecaa0266ce1a& id2=202ad0b6515 ef427291d574740 6809c3fc11cc91
https:/
But as expected, other than the changelog diff that is the same. 4VSXKy/ diffoscope- 243/tests/ data/elfmix2. a and /tmp/tbGODW93AS /diffoscope- 243ubuntu2/ tests/data/ elfmix2. a differ 4VSXKy/ diffoscope- 243/tests/ data/test1. a and /tmp/tbGODW93AS /diffoscope- 243ubuntu2/ tests/data/ test1.a differ 4VSXKy/ diffoscope- 243/tests/ data/test1. o and /tmp/tbGODW93AS /diffoscope- 243ubuntu2/ tests/data/ test1.o differ 4VSXKy/ diffoscope- 243/tests/ data/test2. a and /tmp/tbGODW93AS /diffoscope- 243ubuntu2/ tests/data/ test2.a differ 4VSXKy/ diffoscope- 243/tests/ data/test2. o and /tmp/tbGODW93AS /diffoscope- 243ubuntu2/ tests/data/ test2.o differ
Yet on buildpackage from that tree and checking debdiff I see:
...
Binary files /tmp/JqU_
Binary files /tmp/JqU_
Binary files /tmp/JqU_
Binary files /tmp/JqU_
Binary files /tmp/JqU_
I feel that this is either
a) something super weird proud to eventually have understood
b) something super embarrassing that I've forgotten about native packages and overlook now just waiting on my to facepalm hard
Well either way, it is not in there: 243.tar. xz | grep elfmix2.a 243/tests/ data/elfmix2. a 243ubuntu1. tar.xz | grep elfmix2.a
$ cd $(mktemp -d); pull-debian-source diffoscope &>/dev/null; tar tf diffoscope_
diffoscope-
$ cd $(mktemp -d); pull-lp-source diffoscope &>/dev/null; tar tf diffoscope_
This made me realize that it is very selective, look at this: 243ubuntu2. tar.xz; ll tests/data/elfmix*; dpkg-buildpackage -S -nc -I -i -d -sa -v240ubuntu1 $(git ubuntu prepare-upload args); tar tf ../diffoscope_ 243ubuntu2. tar.xz | grep elfmix elfmix1. not_a elfmix2. a elfmix_ disassembly_ expected_ diff elfmix_ mach_o_ expected_ diff__text elfmix_ src_c_expected_ diff elfmix_ x_obj_expected_ diff elfmix_ x_obj_objdump_ expected_ diff tests/data/ elfmix1. not_a tests/data/ elfmix_ disassembly_ expected_ diff tests/data/ elfmix_ mach_o_ expected_ diff__text tests/data/ elfmix_ src_c_expected_ diff tests/data/ elfmix_ x_obj_expected_ diff tests/data/ elfmix_ x_obj_objdump_ expected_ diff
$ rm ../diffoscope_
-rw-rw-r-- 1 paelzer paelzer 5280 Jul 10 14:38 tests/data/
-rw-rw-r-- 1 paelzer paelzer 5280 Jul 11 07:22 tests/data/
-rw-rw-r-- 1 paelzer paelzer 199 Jul 10 14:38 tests/data/
-rw-rw-r-- 1 paelzer paelzer 154 Jul 10 14:38 tests/data/
-rw-rw-r-- 1 paelzer paelzer 95 Jul 10 14:38 tests/data/
-rw-rw-r-- 1 paelzer paelzer 170 Jul 10 14:38 tests/data/
-rw-rw-r-- 1 paelzer paelzer 167 Jul 10 14:38 tests/data/
...
diffoscope/
diffoscope/
diffoscope/
diffoscope/
diffoscope/
diffoscope/
And that made me realize that all the files that are missing are .a and .o files.
That looks like a build cleanup stage removing them by accident.
So let me check the set of usual arguments, best candidates are those in regard to cleaning and excluding.
Yep, as expected by now the -I (which in some other build cases is needed) is wreaking havoc here.
Dropping -I from buildpackage (and thereby from dpkg-source) creates a tarball that is ok.
Double checking before upload ...
Yes AFAICS tarball ok, dsc ok, changes ok
re-sponsoring with this fixed:
$ dput ubuntu ../diffoscope_ 243ubuntu2_ source. changes distribution: check whether the target distribution is currently supported (using distro-info) 243ubuntu2. dsc 243ubuntu2. tar.xz 243ubuntu2_ source. buildinfo 243ubuntu2_ source. changes
Uploading diffoscope using ftp to ubuntu (host: upload.ubuntu.com; directory: /ubuntu)
running updatemaintainer: Stop if ubuntu changes are without ubuntu maintainer.
running checksum: verify checksums before uploading
running gitubuntu: Warn if uploading without git-ubuntu Vcs-* entries.
running releasemismatch: Warn about mismatching suffixesg e.g. focal with a XX.YY not being 20.04
running check-debs: makes sure the upload contains a binary package
running ppaforppaonly: Stop uploads to the archive with or to ppa without ~ppa suffix.
running supported-
{'allowed': ['release', 'proposed', 'backports', 'security'], 'known': ['release', 'proposed', 'updates', 'backports', 'security']}
running badauthor: Stop if uploading with root@ or ubuntu@ email adresses.
running required-fields: check whether a field is present and non-empty in the changes file
running gpg: check GnuPG signatures before the upload
running placeholderbug: Stop if using common placeholder numbers as bug reference.
running nobug: Stop if uploading without any bug reference.
running suite-mismatch: check the target distribution for common errors
Uploading diffoscope_
Uploading diffoscope_
Uploading diffoscope_
Uploading diffoscope_
P.S. that also explains why git-ubuntu couldn't match the tree-ish (with the .a/.o files) with the upload (without).