Hello community,
here is the log from the commit of package perl-Wx for openSUSE:Factory checked in at 2017-03-31 15:08:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Wx (Old)
and /work/SRC/openSUSE:Factory/.perl-Wx.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Wx"
Fri Mar 31 15:08:20 2017 rev:6 rq:482416 version:0.9928
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Wx/perl-Wx.changes 2016-11-28 15:06:37.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Wx.new/perl-Wx.changes 2017-03-31 15:08:25.241433956 +0200
@@ -1,0 +2,11 @@
+Sun Mar 19 17:21:08 UTC 2017 - stefan.bruens@rwth-aachen.de
+
+- Add 0001-Sort-output-of-dumped-dictionaries-for-reproducible-.patch:
+ sort config dictionaries to make builds deterministic
+- Add 0002-Provide-overload-methods-to-XSpp-in-sorted-order.patch:
+ Feed sorted output to XSpp
+- Add 0001-fix-incomplete-Wx_Exp.pm-due-to-missing-dependecy-in.patch:
+ Wx_Exp.pm was incomplete, as the generator script was run to early
+ Fixes https://rt.cpan.org/Public/Bug/Display.html?id=120657
+
+-------------------------------------------------------------------
New:
----
0001-Sort-output-of-dumped-dictionaries-for-reproducible-.patch
0001-fix-incomplete-Wx_Exp.pm-due-to-missing-dependecy-in.patch
0002-Provide-overload-methods-to-XSpp-in-sorted-order.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Wx.spec ++++++
--- /var/tmp/diff_new_pack.U5Ft1o/_old 2017-03-31 15:08:25.837349706 +0200
+++ /var/tmp/diff_new_pack.U5Ft1o/_new 2017-03-31 15:08:25.841349141 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Wx
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -27,9 +27,12 @@
Source0: http://www.cpan.org/authors/id/M/MD/MDOOTSON/%{cpan_name}-%{version}.tar.gz
Source1: perl-Wx-rpmlintrc
Source2: cpanspec.yml
+# Needed for reproducible build
+Patch0: 0001-Sort-output-of-dumped-dictionaries-for-reproducible-.patch
+Patch1: 0002-Provide-overload-methods-to-XSpp-in-sorted-order.patch
+# Fix for incomplete Wx_Exp.pm, https://rt.cpan.org/Public/Bug/Display.html?id=120657
+Patch2: 0001-fix-incomplete-Wx_Exp.pm-due-to-missing-dependecy-in.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: perl
-BuildRequires: perl-macros
BuildRequires: perl(Alien::wxWidgets) >= 0.25
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.46
BuildRequires: perl(ExtUtils::ParseXS) >= 3.15
@@ -58,6 +61,9 @@
%prep
%setup -q -n %{cpan_name}-%{version}
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
++++++ 0001-Sort-output-of-dumped-dictionaries-for-reproducible-.patch ++++++
From cfb24d6c3de259ad46fdc96099419fed22636c28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?=
Date: Tue, 21 Feb 2017 06:37:03 +0100
Subject: [PATCH 1/2] Sort output of dumped dictionaries for reproducible
builds
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
By default, dictionaries are dumped in hash order, with a random hash
initialization value.
Also sort export list and make entries unique, exports may be declared
in multiple files.
Signed-off-by: Stefan Brüns
---
build/Wx/build/MakeMaker/Any_OS.pm | 2 ++
build/Wx/build/Options.pm | 2 ++
script/fix_alien_path.pl | 2 ++
script/make_exp_list.pl | 13 ++++++++++---
4 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/build/Wx/build/MakeMaker/Any_OS.pm b/build/Wx/build/MakeMaker/Any_OS.pm
index 55d3b7b..5dd2a2f 100644
--- a/build/Wx/build/MakeMaker/Any_OS.pm
+++ b/build/Wx/build/MakeMaker/Any_OS.pm
@@ -200,6 +200,8 @@ sub postamble_core {
# strictly necessary, but it's better to keep them in case the
# dependencies here are changed
require Data::Dumper;
+ # sort output for reproducible builds
+ $Data::Dumper::Sortkeys = 1;
Wx::build::Utils::write_string( 'files.lst',
Data::Dumper->Dump( [ \%files ] ) );
# $exp and fix_alien depend on wxt_copy_files to ensure that blib/lib/Wx
diff --git a/build/Wx/build/Options.pm b/build/Wx/build/Options.pm
index 578bec5..a0fb8da 100644
--- a/build/Wx/build/Options.pm
+++ b/build/Wx/build/Options.pm
@@ -163,6 +163,8 @@ sub write_config_file {
my $file = shift;
require Data::Dumper;
+ # sort output for reproducible builds
+ $Data::Dumper::Sortkeys = 1;
my $str = Data::Dumper->Dump( [ { extra_libs => $extra_libs,
extra_cflags => $extra_cflags,
alien_key => $alien_key,
diff --git a/script/fix_alien_path.pl b/script/fix_alien_path.pl
index 99aca90..83266a7 100644
--- a/script/fix_alien_path.pl
+++ b/script/fix_alien_path.pl
@@ -30,6 +30,8 @@ my $key = Alien::wxWidgets->key;
my $version = Alien::wxWidgets->version;
my @libs = Alien::wxWidgets->library_keys;
my %libs; @libs{@libs} = Alien::wxWidgets->shared_libraries( @libs );
+# sort output for reproducible builds
+$Data::Dumper::Sortkeys = 1;
my $libs = Data::Dumper::Dumper( \%libs );
my $keyd;
diff --git a/script/make_exp_list.pl b/script/make_exp_list.pl
index 211a484..9b32dbd 100644
--- a/script/make_exp_list.pl
+++ b/script/make_exp_list.pl
@@ -22,6 +22,11 @@ my %packages;
my $tag;
my $package;
+sub unique_sorted {
+ my %v = %{ { map { ($_ => 1) } @{$_[0]} } };
+ sort keys %v;
+}
+
sub add_to_exports {
my( $values, $tags ) = @_;
@@ -91,11 +96,12 @@ package Wx::Wx_Exp; # for RPM
EOT
foreach my $package ( sort keys %packages ) {
-print OUT <
From bebdd9566fb806cb29aeaa8256658f583def4f48 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=83=C2=BCns?=
Date: Sun, 19 Mar 2017 05:45:08 +0100
Subject: [PATCH] fix incomplete Wx_Exp.pm due to missing dependecy in
generated Makefile
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Stefan Brüns
---
build/Wx/build/MakeMaker/Any_OS.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/Wx/build/MakeMaker/Any_OS.pm b/build/Wx/build/MakeMaker/Any_OS.pm
index 5dd2a2f..2671339 100644
--- a/build/Wx/build/MakeMaker/Any_OS.pm
+++ b/build/Wx/build/MakeMaker/Any_OS.pm
@@ -122,7 +122,7 @@ sub depend_core {
my %files = $this->files_to_install();
my %depend = ( _depend_common( $this ),
- $exp => join( ' ', $this->files_with_constants, ),
+ $exp => join( ' ', $this->files_with_constants, 'subdirs', ),
'wxt_fix_alien' => 'pm_to_blib',
'pm_to_blib' => 'wxt_copy_files',
'blibdirs' => 'wxt_copy_files',
--
2.12.0
++++++ 0002-Provide-overload-methods-to-XSpp-in-sorted-order.patch ++++++
From 5b46e838686eaf039942892dbe471c48e8818bc1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?=
Date: Mon, 27 Feb 2017 20:47:08 +0100
Subject: [PATCH 2/2] Provide overload methods to XSpp in sorted order
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Stefan Brüns
---
build/Wx/XSP/Overload.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/Wx/XSP/Overload.pm b/build/Wx/XSP/Overload.pm
index 34f89e9..40e1c77 100644
--- a/build/Wx/XSP/Overload.pm
+++ b/build/Wx/XSP/Overload.pm
@@ -85,7 +85,7 @@ sub post_process {
$node->add_methods( ExtUtils::XSpp::Node::Raw->new( rows => [ '#include "cpp/overload.h"' ] ) );
}
- foreach my $method_name ( @ovl_methods ) {
+ foreach my $method_name ( sort @ovl_methods ) {
_add_overload( $self, $node, $all_methods{$method_name} );
}
}
--
2.11.1
++++++ cpanspec.yml ++++++
--- /var/tmp/diff_new_pack.U5Ft1o/_old 2017-03-31 15:08:25.917338398 +0200
+++ /var/tmp/diff_new_pack.U5Ft1o/_new 2017-03-31 15:08:25.917338398 +0200
@@ -3,7 +3,12 @@
no_testing: needs X
sources:
- perl-Wx-rpmlintrc
-#patches:
+patches:
+# Needed for reproducible build
+ 0001-Sort-output-of-dumped-dictionaries-for-reproducible-.patch: -p1
+ 0002-Provide-overload-methods-to-XSpp-in-sorted-order.patch: -p1
+# Fix for incomplete Wx_Exp.pm, https://rt.cpan.org/Public/Bug/Display.html?id=120657
+ 0001-fix-incomplete-Wx_Exp.pm-due-to-missing-dependecy-in.patch: -p1
# foo.patch: -p1
# bar.patch:
preamble: |-