Bug#925179: perl: autopkgtest failures on arm64, ppc64el and s390x: NDBM backwards binary compatibility

Niko Tyni ntyni at debian.org
Sat Mar 30 19:47:29 GMT 2019


On Sun, Mar 24, 2019 at 12:19:20PM +0200, Niko Tyni wrote:

> While the current test data files from stretch indeed cannot be read
> on sid, I cannot make new test data files on stretch that reproduce the
> behaviour. I've created 100 such databases on each affected architecture
> and all of those are readable on sid.
> 
> I note that the test data files we're shipping for stretch versions of
> ppc64el and arm64 are identical, which seems improbable. My best guess
> is that I've mixed up the test data files from different architectures
> when copying them around and committing them to git. How embarrassing.

Trying to fix things for a new upload I finally understood what went
wrong here.

The stretch version of the GDBM "compat library" created a hard
link between the .dir and .pag files. The buster version checks
for this and handles it as a special case.

  https://sources.debian.org/src/gdbm/1.8.3-14/dbminit.c/#L99

  https://sources.debian.org/src/gdbm/1.18.1-4/compat/dbmopen.c/#L78

As git doesn't store hard links, this broke when I copied
the files around and committed them to git.

What a mess. At least I now know I wasn't *that* careless :)

Possibly I need to tar the files, or just recreate the hard links in
the autopkgtest check. Will try to come up with something tomorrow.
-- 
Niko




More information about the Perl-maintainers mailing list