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 - [email protected] + +- 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?= <[email protected]> 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 <[email protected]> --- 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 <<EOT; + my @exp = unique_sorted( $packages{$package}{exp_ok} ); + print OUT <<EOT; package ${package}; -push \@EXPORT_OK, qw(@{$packages{$package}{exp_ok}}); +push \@EXPORT_OK, qw(@exp); \$EXPORT_TAGS{'everything'} = \\\@EXPORT_OK; @@ -103,8 +109,9 @@ EOT foreach my $tag ( sort keys %{ $packages{$package}{tags} } ) { next unless length $tag; + my @pkgtags = unique_sorted( $packages{$package}{tags}{$tag} ); print OUT <<EOT; -\$EXPORT_TAGS{'$tag'} = [ qw(@{ $packages{$package}{tags}{$tag} }) ]; +\$EXPORT_TAGS{'$tag'} = [ qw(@pkgtags) ]; EOT } } -- 2.11.1 ++++++ 0001-fix-incomplete-Wx_Exp.pm-due-to-missing-dependecy-in.patch ++++++ >From bebdd9566fb806cb29aeaa8256658f583def4f48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=83=C2=BCns?= <[email protected]> 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 <[email protected]> --- 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?= <[email protected]> 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 <[email protected]> --- 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: |-
