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

Reply via email to