1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
From efa36d64ab5be55a03deebf2fa91a4938de57fef Mon Sep 17 00:00:00 2001
From: Niko Tyni <ntyni@debian.org>
Date: Fri, 28 Aug 2015 22:49:22 +0300
Subject: [PATCH] Sort the list of source files when generating XS code
The order of the file list affects generated code, so nondeterminism
there renders the build unreproducible.
The $first trick is a tad inelegant, but a custom sort() function
that would put Kinosearch1.pm first would probably be more confusing.
Bug-Debian: https://bugs.debian.org/797711
Forwarded: https://rt.cpan.org/Public/Bug/Display.html?id=107019
---
Build.PL | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Build.PL b/Build.PL
index 50a466a..31fbd4f 100644
--- a/Build.PL
+++ b/Build.PL
@@ -37,10 +37,11 @@ my %source_pm = ();
# grab all .pm filepaths, making sure that KinoSearch1.pm is first
my @pm_filepaths;
+my $first;
find(
{ wanted => sub {
if ( $File::Find::name =~ /KinoSearch1\.pm$/ ) {
- unshift @pm_filepaths, $File::Find::name;
+ $first = $File::Find::name;
}
elsif ( $File::Find::name =~ /\.pm$/ ) {
push @pm_filepaths, $File::Find::name;
@@ -51,6 +52,8 @@ find(
'lib',
);
+@pm_filepaths = ( $first, sort @pm_filepaths );
+
for my $pm_filepath (@pm_filepaths) {
open( my $module_fh, '<', $pm_filepath )
or die "couldn't open file '$pm_filepath': $!";
--
2.1.4
|