commit 5f6f3b1df236fa86c56e4f0850b790b46ecc4f11 Author: Petr Písař <ppisar@xxxxxxxxxx> Date: Tue Jul 23 08:16:52 2013 +0200 Perl 5.18 compatibility ...r2-2.5-Editing-iterated-hash-is-undefined.patch | 42 ++++++++++++++++++++ perl-libwhisker2.spec | 4 ++ 2 files changed, 46 insertions(+), 0 deletions(-) --- diff --git a/libwhisker2-2.5-Editing-iterated-hash-is-undefined.patch b/libwhisker2-2.5-Editing-iterated-hash-is-undefined.patch new file mode 100644 index 0000000..d4ce84d --- /dev/null +++ b/libwhisker2-2.5-Editing-iterated-hash-is-undefined.patch @@ -0,0 +1,42 @@ +From b22b4139d769b6f156350d179eaa54e49176b97f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@xxxxxxxxxx> +Date: Tue, 23 Jul 2013 08:07:46 +0200 +Subject: [PATCH] Editing iterated hash is undefined +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +utils_lowercase_keys test fails with Perl 5.18 randomly. Interpreter +complains: + +Use of each() on hash after insertion without resetting hash iterator +results in undefined behavior, Perl interpreter: 0x23b8010 at +../LW2.pm line 5890. + +This patch replaces each with safe keys. + +Signed-off-by: Petr Písař <ppisar@xxxxxxxxxx> +--- + src/utils.pl | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/utils.pl b/src/utils.pl +index f08f0fb..08ce2bd 100644 +--- a/src/utils.pl ++++ b/src/utils.pl +@@ -174,10 +174,10 @@ sub utils_lowercase_keys { + return if ( !( defined $href && ref($href) ) ); + + my $count = 0; +- while ( my ( $key, $val ) = each %$href ) { ++ foreach my $key ( keys %$href ) { + if ( $key =~ tr/A-Z// ) { + $count++; +- delete $$href{$key}; ++ my $val = delete $$href{$key}; + $$href{ lc($key) } = $val; + } + } +-- +1.8.1.4 + diff --git a/perl-libwhisker2.spec b/perl-libwhisker2.spec index 596d3a3..d111b16 100644 --- a/perl-libwhisker2.spec +++ b/perl-libwhisker2.spec @@ -13,6 +13,8 @@ Source0: http://downloads.sourceforge.net/whisker/%{real_name}-%{version} Patch0: %{real_name}-2.4-vendorlib.patch #include libwhisker1 compatibility bridge Patch1: %{real_name}-2.4-lw1bridge.patch +# Perl 5.18 compatibility +Patch2: %{real_name}-2.5-Editing-iterated-hash-is-undefined.patch BuildArch: noarch BuildRequires: perl BuildRequires: perl(Config) @@ -55,6 +57,7 @@ Examples how to use LW(2) Perl module. %setup -qn %{real_name}-%{version} %patch0 -p1 %patch1 -p1 +%patch2 -p1 mv compat/{lw,LW}.pm # Fix EOLs for F in CHANGES KNOWNBUGS LICENSE README docs/* scripts/*; do @@ -102,6 +105,7 @@ perl ./test.pl %changelog * Mon Jul 22 2013 Petr Pisar <ppisar@xxxxxxxxxx> - 2.5-9 - Perl 5.18 rebuild +- Perl 5.18 compatibility * Thu Feb 14 2013 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 2.5-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/perl-devel