Package: perl Version: 5.22.0-4 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org
As seen at https://reproducible.debian.net/rb-pkg/experimental/amd64/perl.html https://reproducible.debian.net/dbd/experimental/amd64/perl_5.22.0-4.debbindiff.html the compiled file usr/lib/x86_64-linux-gnu/perl/5.22.0/auto/Devel/PPPort/PPPort.so varies with file system ordering, because PPPort_xs.PL uses readdir() to generate the list of files to process. This breaks build reproducibility, as readdir() ordering can vary between file systems. It's easy to test with the disorderfs package, recently added to the reproducible.debian.net setup. The attached patch fixes the issue. The reproducible.debian.net logs have a size cutoff so we can't know if this was the only issue of its kind. I was expecting more of them, but my test didn't turn up any. -- Niko Tyni nt...@debian.org
>From c01f602d1926b0671fd2c8d91f7e52c4e4c9fb24 Mon Sep 17 00:00:00 2001 From: Niko Tyni <nt...@debian.org> Date: Sun, 11 Oct 2015 19:27:56 +0300 Subject: [PATCH] Sort the list of XS code files when generating RealPPPort.xs all_files_in_dir() uses readdir() ordering to make the list of input files. This can vary between build systems, breaking build reproducibility. --- cpan/Devel-PPPort/PPPort_xs.PL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpan/Devel-PPPort/PPPort_xs.PL b/cpan/Devel-PPPort/PPPort_xs.PL index 5f18940..149f2fe 100644 --- a/cpan/Devel-PPPort/PPPort_xs.PL +++ b/cpan/Devel-PPPort/PPPort_xs.PL @@ -38,7 +38,7 @@ END my $file; my $sec; -for $file (all_files_in_dir('parts/inc')) { +for $file (sort(all_files_in_dir('parts/inc'))) { my $spec = parse_partspec($file); my $msg = 0; -- 2.5.1