Package: libmodule-build-perl
Version: 0.421400-2 
Severity: serious
User: reproducible-builds@lists.alioth.debian.org
Usertags: ftbfs
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org
Control: affects -1 libdevice-cdio-perl

The libdevice-cdio-perl package fails to build on current sid because
of the libmodule-build-perl change in 0.421400-2 that sorts results of
Module::Build::Base::rscan_dir() [see #797709].

The libdevice-cdio-perl Build.PL contains this:

            my $cfiles = $self->rscan_dir('./',qr/\.c$/);

and later it basically looks at the basename of the file and
skips it if one by that name has already been compiled.

Now, the rscan_dir() call finds files like
  ./.pc/07_fix_perl_5.16_ftbfs.patch/perlmmc_wrap.c

and the Module::Build change moves those up on the list so they get
compiled first, spectacularly breaking the build of course. See
  https://reproducible.debian.net/rb-pkg/unstable/amd64/libdevice-cdio-perl.html
for the results.

So the libdevice-cdio-perl build relies on ./perlmmc_wrap.c coming before
./.pc/07_fix_perl_5.16_ftbfs.patch/perlmmc_wrap.c in the rscan_dir()
results, and our change breaks that.

It turns out I was wrong with my patch for #797709 in that I assumed
that the order of the File::Find::find() return list is altogether
undeterministic, while it apparently takes care to process regular files
first and only then recurses into subdirectories. This isn't particularly
well (if at all) documented, but the code (or at least the comments; my
eyes bleed already from the actual code) at
 
https://sources.debian.net/src/perl/5.20.2-6/ext/File-Find/lib/File/Find.pm/#L763
or thereabouts seems to confirm it.

So we need to sort more smartly, and I don't have patch right now.
I suggest to revert the patch and reopen #797709 for the time being.
-- 
Niko Tyni   nt...@debian.org

_______________________________________________
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Reply via email to