Package: liblucy-perl Version: 0.3.3-5 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: randomness X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org
This package currently builds non-reproducible binaries, because the code that generates lib/Lucy.xs writes out the classes in an undeterministic order. Patch attached. See https://reproducible.debian.net/reproducible.html for more information about the "reproducible builds" effort in general, and https://reproducible.debian.net/rb-pkg/unstable/amd64/liblucy-perl.html for the information its CI system has gathered about this package. -- Niko Tyni nt...@debian.org
>From c602a943fa712771b819dafed5658b9641f0c83c Mon Sep 17 00:00:00 2001 From: Niko Tyni <nt...@debian.org> Date: Thu, 20 Aug 2015 22:11:23 +0300 Subject: [PATCH] Generate the XS code in a deterministic way Sort the list of classes when writing out XS code, so that it stays stable between builds. This makes it possible to build reproducible binaries from the generated code. --- clownfish/perl/lib/Clownfish/CFC/Binding/Perl.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clownfish/perl/lib/Clownfish/CFC/Binding/Perl.pm b/clownfish/perl/lib/Clownfish/CFC/Binding/Perl.pm index e782270..c5f819b 100644 --- a/clownfish/perl/lib/Clownfish/CFC/Binding/Perl.pm +++ b/clownfish/perl/lib/Clownfish/CFC/Binding/Perl.pm @@ -133,7 +133,7 @@ sub write_bindings { } # Hand-rolled XS. - for my $class_name ( keys %has_xs_code ) { + for my $class_name ( sort keys %has_xs_code ) { my $class_binding = Clownfish::CFC::Binding::Perl::Class->singleton($class_name); $hand_rolled_xs .= $class_binding->get_xs_code . "\n"; -- 2.1.4