Hello community,
here is the log from the commit of package perl-Hash-MultiValue for
openSUSE:Factory checked in at 2012-02-17 12:07:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Hash-MultiValue (Old)
and /work/SRC/openSUSE:Factory/.perl-Hash-MultiValue.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Hash-MultiValue", Maintainer is ""
Changes:
--------
---
/work/SRC/openSUSE:Factory/perl-Hash-MultiValue/perl-Hash-MultiValue.changes
2011-11-18 15:47:36.000000000 +0100
+++
/work/SRC/openSUSE:Factory/.perl-Hash-MultiValue.new/perl-Hash-MultiValue.changes
2012-02-17 12:07:39.000000000 +0100
@@ -1,0 +2,9 @@
+Thu Feb 16 21:14:35 UTC 2012 - [email protected]
+
+- updated to 0.12
+ - Reapply set method optimisation that was lost in 0.11
+ - *really* fix uninitialized warnings in tests (RT#74096)
+ - Add support for Storable serialization
+ - Fix segfaulting splice invocation on perls
+
+-------------------------------------------------------------------
Old:
----
Hash-MultiValue-0.10.tar.gz
New:
----
Hash-MultiValue-0.12.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Hash-MultiValue.spec ++++++
--- /var/tmp/diff_new_pack.boQ0DJ/_old 2012-02-17 12:07:40.000000000 +0100
+++ /var/tmp/diff_new_pack.boQ0DJ/_new 2012-02-17 12:07:40.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package perl-Hash-MultiValue
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,26 +15,22 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-# norootforbuild
-
Name: perl-Hash-MultiValue
+Version: 0.12
+Release: 0
%define cpan_name Hash-MultiValue
Summary: Store multiple values per key
-Version: 0.10
-Release: 1
-License: GPL-1.0+ or Artistic-1.0
+License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Hash-MultiValue/
-Source:
http://www.cpan.org/authors/id/M/MI/MIYAGAWA/Hash-MultiValue-%{version}.tar.gz
+Source:
http://www.cpan.org/authors/id/A/AR/ARISTOTLE/%{cpan_name}-%{version}.tar.gz
Patch0: test-more-no-plan.patch
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%{perl_requires}
BuildRequires: perl
BuildRequires: perl-macros
-BuildRequires: perl >= 5.8.1
-Requires: perl >= 5.8.1
+%{perl_requires}
%description
Hash::MultiValue is an object (and a plain hash reference) that may contain
@@ -53,18 +49,11 @@
%install
%perl_make_install
-# do not perl_process_packlist (noarch)
-# remove .packlist file
-%{__rm} -rf $RPM_BUILD_ROOT%perl_vendorarch
-# remove perllocal.pod file
-%{__rm} -rf $RPM_BUILD_ROOT%perl_archlib
+%perl_process_packlist
%perl_gen_filelist
-%clean
-%{__rm} -rf $RPM_BUILD_ROOT
-
%files -f %{name}.files
-%defattr(-,root,root,-)
+%defattr(-,root,root,755)
%doc Changes README
%changelog
++++++ Hash-MultiValue-0.10.tar.gz -> Hash-MultiValue-0.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/.gitignore
new/Hash-MultiValue-0.12/.gitignore
--- old/Hash-MultiValue-0.10/.gitignore 2009-12-15 09:35:55.000000000 +0100
+++ new/Hash-MultiValue-0.12/.gitignore 2012-02-13 16:44:23.000000000 +0100
@@ -1,4 +1,5 @@
-META.yml
+META.*
+MYMETA.*
Makefile
inc/
pm_to_blib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/Changes
new/Hash-MultiValue-0.12/Changes
--- old/Hash-MultiValue-0.10/Changes 2011-09-18 21:52:01.000000000 +0200
+++ new/Hash-MultiValue-0.12/Changes 2012-02-15 07:46:11.000000000 +0100
@@ -1,5 +1,14 @@
Revision history for Perl extension Hash::MultiValue
+0.12 Wed Feb 15 07:45:50 CET 2012
+ - Reapply set method optimisation that was lost in 0.11
+ - *really* fix uninitialized warnings in tests (RT#74096)
+ - Add support for Storable serialization
+
+0.11 Sun Feb 12 13:04:54 PST 2012
+ - Fix segfaulting splice invocation on perls < 5.8.7
+ - Fix uninitialized warning on older perls
+
0.10 Sun Sep 18 12:51:49 PDT 2011
- Implemented set (aristotle)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/MANIFEST
new/Hash-MultiValue-0.12/MANIFEST
--- old/Hash-MultiValue-0.10/MANIFEST 2011-09-18 21:53:02.000000000 +0200
+++ new/Hash-MultiValue-0.12/MANIFEST 2012-02-15 07:53:29.000000000 +0100
@@ -30,6 +30,7 @@
t/multi.t
t/ref.t
t/set.t
+t/storable.t
t/threads.t
t/write.t
tools/benchmark.pl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/META.yml
new/Hash-MultiValue-0.12/META.yml
--- old/Hash-MultiValue-0.10/META.yml 2011-09-18 21:53:15.000000000 +0200
+++ new/Hash-MultiValue-0.12/META.yml 2012-02-15 08:01:22.000000000 +0100
@@ -3,11 +3,12 @@
author:
- 'Tatsuhiko Miyagawa <[email protected]>'
build_requires:
- ExtUtils::MakeMaker: 6.42
+ ExtUtils::MakeMaker: 6.62
configure_requires:
- ExtUtils::MakeMaker: 6.42
+ ExtUtils::MakeMaker: 6.62
distribution_type: module
-generated_by: 'Module::Install version 1.01'
+dynamic_config: 1
+generated_by: 'Module::Install version 1.04'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -20,8 +21,8 @@
- xt
requires:
Filter::Util::Call: 0
- perl: 5.8.1
+ perl: 5.6.2
resources:
license: http://dev.perl.org/licenses/
repository: git://github.com/miyagawa/Hash-MultiValue.git
-version: 0.10
+version: 0.12
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/Makefile.PL
new/Hash-MultiValue-0.12/Makefile.PL
--- old/Hash-MultiValue-0.10/Makefile.PL 2009-12-15 09:35:55.000000000
+0100
+++ new/Hash-MultiValue-0.12/Makefile.PL 2012-02-15 07:55:36.000000000
+0100
@@ -1,10 +1,10 @@
use inc::Module::Install;
name 'Hash-MultiValue';
all_from 'lib/Hash/MultiValue.pm';
-readme_from 'lib/Hash/MultiValue.pm';
+readme_from 'lib/Hash/MultiValue.pm'; # Module::Install::ReadmeFromPod
build_requires 'Test::More';
-use_test_base;
+use_test_base; # Module::Install::TestBase
auto_include_deps;
-author_tests('xt');
-auto_set_repository;
+author_tests('xt'); # Module::Install::AuthorTests
+auto_set_repository; # Module::Install::Repository
WriteAll;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/inc/Module/Install/Base.pm
new/Hash-MultiValue-0.12/inc/Module/Install/Base.pm
--- old/Hash-MultiValue-0.10/inc/Module/Install/Base.pm 2011-09-18
21:53:15.000000000 +0200
+++ new/Hash-MultiValue-0.12/inc/Module/Install/Base.pm 2012-02-15
08:01:22.000000000 +0100
@@ -4,7 +4,7 @@
use strict 'vars';
use vars qw{$VERSION};
BEGIN {
- $VERSION = '1.01';
+ $VERSION = '1.04';
}
# Suspend handler for "redefined" warnings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/inc/Module/Install/Can.pm
new/Hash-MultiValue-0.12/inc/Module/Install/Can.pm
--- old/Hash-MultiValue-0.10/inc/Module/Install/Can.pm 2011-09-18
21:53:15.000000000 +0200
+++ new/Hash-MultiValue-0.12/inc/Module/Install/Can.pm 2012-02-15
08:01:22.000000000 +0100
@@ -9,7 +9,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.01';
+ $VERSION = '1.04';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/inc/Module/Install/Fetch.pm
new/Hash-MultiValue-0.12/inc/Module/Install/Fetch.pm
--- old/Hash-MultiValue-0.10/inc/Module/Install/Fetch.pm 2011-09-18
21:53:15.000000000 +0200
+++ new/Hash-MultiValue-0.12/inc/Module/Install/Fetch.pm 2012-02-15
08:01:22.000000000 +0100
@@ -6,7 +6,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.01';
+ $VERSION = '1.04';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/inc/Module/Install/Include.pm
new/Hash-MultiValue-0.12/inc/Module/Install/Include.pm
--- old/Hash-MultiValue-0.10/inc/Module/Install/Include.pm 2011-09-18
21:53:15.000000000 +0200
+++ new/Hash-MultiValue-0.12/inc/Module/Install/Include.pm 2012-02-15
08:01:22.000000000 +0100
@@ -6,7 +6,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.01';
+ $VERSION = '1.04';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/inc/Module/Install/Makefile.pm
new/Hash-MultiValue-0.12/inc/Module/Install/Makefile.pm
--- old/Hash-MultiValue-0.10/inc/Module/Install/Makefile.pm 2011-09-18
21:53:15.000000000 +0200
+++ new/Hash-MultiValue-0.12/inc/Module/Install/Makefile.pm 2012-02-15
08:01:22.000000000 +0100
@@ -8,7 +8,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.01';
+ $VERSION = '1.04';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
@@ -219,14 +219,14 @@
# an underscore, even though its own version may contain one!
# Hence the funny regexp to get rid of it. See RT #35800
# for details.
- my $v = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/;
+ my ($v) = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/;
$self->build_requires( 'ExtUtils::MakeMaker' => $v );
$self->configure_requires( 'ExtUtils::MakeMaker' => $v );
} else {
# Allow legacy-compatibility with 5.005 by depending on the
# most recent EU:MM that supported 5.005.
- $self->build_requires( 'ExtUtils::MakeMaker' => 6.42 );
- $self->configure_requires( 'ExtUtils::MakeMaker' => 6.42 );
+ $self->build_requires( 'ExtUtils::MakeMaker' => 6.36 );
+ $self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 );
}
# Generate the MakeMaker params
@@ -241,7 +241,6 @@
'all_from' if you prefer) in Makefile.PL.
EOT
- $DB::single = 1;
if ( $self->tests ) {
my @tests = split ' ', $self->tests;
my %seen;
@@ -412,4 +411,4 @@
__END__
-#line 541
+#line 540
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/inc/Module/Install/Metadata.pm
new/Hash-MultiValue-0.12/inc/Module/Install/Metadata.pm
--- old/Hash-MultiValue-0.10/inc/Module/Install/Metadata.pm 2011-09-18
21:53:15.000000000 +0200
+++ new/Hash-MultiValue-0.12/inc/Module/Install/Metadata.pm 2012-02-15
08:01:22.000000000 +0100
@@ -6,7 +6,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.01';
+ $VERSION = '1.04';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
@@ -151,15 +151,21 @@
sub install_as_vendor { $_[0]->installdirs('vendor') }
sub dynamic_config {
- my $self = shift;
- unless ( @_ ) {
- warn "You MUST provide an explicit true/false value to
dynamic_config\n";
- return $self;
+ my $self = shift;
+ my $value = @_ ? shift : 1;
+ if ( $self->{values}->{dynamic_config} ) {
+ # Once dynamic we never change to static, for safety
+ return 0;
}
- $self->{values}->{dynamic_config} = $_[0] ? 1 : 0;
+ $self->{values}->{dynamic_config} = $value ? 1 : 0;
return 1;
}
+# Convenience command
+sub static_config {
+ shift->dynamic_config(0);
+}
+
sub perl_version {
my $self = shift;
return $self->{values}->{perl_version} unless @_;
@@ -170,7 +176,7 @@
# Normalize the version
$version = $self->_perl_version($version);
- # We don't support the reall old versions
+ # We don't support the really old versions
unless ( $version >= 5.005 ) {
die "Module::Install only supports 5.005 or newer (use
ExtUtils::MakeMaker)\n";
}
@@ -582,7 +588,7 @@
sub requires_from {
my $self = shift;
my $content = Module::Install::_readperl($_[0]);
- my @requires = $content =~
m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg;
+ my @requires = $content =~
m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg;
while ( @requires ) {
my $module = shift @requires;
my $version = shift @requires;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/inc/Module/Install/Win32.pm
new/Hash-MultiValue-0.12/inc/Module/Install/Win32.pm
--- old/Hash-MultiValue-0.10/inc/Module/Install/Win32.pm 2011-09-18
21:53:15.000000000 +0200
+++ new/Hash-MultiValue-0.12/inc/Module/Install/Win32.pm 2012-02-15
08:01:22.000000000 +0100
@@ -6,7 +6,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.01';
+ $VERSION = '1.04';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/inc/Module/Install/WriteAll.pm
new/Hash-MultiValue-0.12/inc/Module/Install/WriteAll.pm
--- old/Hash-MultiValue-0.10/inc/Module/Install/WriteAll.pm 2011-09-18
21:53:15.000000000 +0200
+++ new/Hash-MultiValue-0.12/inc/Module/Install/WriteAll.pm 2012-02-15
08:01:22.000000000 +0100
@@ -6,7 +6,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.01';
+ $VERSION = '1.04';
@ISA = qw{Module::Install::Base};
$ISCORE = 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/inc/Module/Install.pm
new/Hash-MultiValue-0.12/inc/Module/Install.pm
--- old/Hash-MultiValue-0.10/inc/Module/Install.pm 2011-09-18
21:53:14.000000000 +0200
+++ new/Hash-MultiValue-0.12/inc/Module/Install.pm 2012-02-15
08:01:21.000000000 +0100
@@ -31,7 +31,7 @@
# This is not enforced yet, but will be some time in the next few
# releases once we can make sure it won't clash with custom
# Module::Install extensions.
- $VERSION = '1.01';
+ $VERSION = '1.04';
# Storage for the pseudo-singleton
$MAIN = undef;
@@ -451,7 +451,7 @@
}
sub _cmp ($$) {
- _version($_[0]) <=> _version($_[1]);
+ _version($_[1]) <=> _version($_[2]);
}
# Cloned from Params::Util::_CLASS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/lib/Hash/MultiValue.pm
new/Hash-MultiValue-0.12/lib/Hash/MultiValue.pm
--- old/Hash-MultiValue-0.10/lib/Hash/MultiValue.pm 2011-09-18
21:53:05.000000000 +0200
+++ new/Hash-MultiValue-0.12/lib/Hash/MultiValue.pm 2012-02-15
07:56:46.000000000 +0100
@@ -1,12 +1,16 @@
package Hash::MultiValue;
use strict;
-use 5.008_001;
-our $VERSION = '0.10';
+no warnings 'void';
+use 5.006_002;
+our $VERSION = '0.12';
use Carp ();
use Scalar::Util qw(refaddr);
+# there does not seem to be a relevant RT or perldelta entry for this
+use constant _SPLICE_SAME_ARRAY_SEGFAULT => $] < '5.008007';
+
my %keys;
my %values;
my %registry;
@@ -39,9 +43,7 @@
my $this = refaddr $self;
$keys{$this} = [];
$values{$this} = [];
- if (NEEDS_REGISTRY) {
- Scalar::Util::weaken($registry{$this} = $self);
- }
+ Scalar::Util::weaken($registry{$this} = $self) if NEEDS_REGISTRY;
$self;
}
@@ -63,9 +65,7 @@
my $this = refaddr shift;
delete $keys{$this};
delete $values{$this};
- if (NEEDS_REGISTRY) {
- delete $registry{$this};
- }
+ delete $registry{$this} if NEEDS_REGISTRY;
}
sub get {
@@ -106,12 +106,18 @@
}
elsif ($added < 0) {
my ($start, @drop, @keep) = splice @idx, $added;
- for ($start+1 .. $#$k) {
- shift @drop, next if $_ == $drop[0];
- push @keep, $_;
+ for my $i ($start+1 .. $#$k) {
+ if (@drop and $i == $drop[0]) {
+ shift @drop;
+ next;
+ }
+ push @keep, $i;
}
- splice @$k, $start, 0+@$k, @$k[@keep];
- splice @$v, $start, 0+@$v, @$v[@keep];
+
+ splice @$_, $start, 0+@$_, ( _SPLICE_SAME_ARRAY_SEGFAULT
+ ? @{[ @$_[@keep] ]} # force different source array
+ : @$_[@keep]
+ ) for $k, $v;
}
if (@_) {
@@ -248,6 +254,22 @@
sub multi { $_[0]->as_hashref_multi }
+sub STORABLE_freeze {
+ my $self = shift;
+ my $this = refaddr $self;
+ return '', $keys{$this}, $values{$this};
+}
+
+sub STORABLE_thaw {
+ my $self = shift;
+ my ($is_cloning, $serialised, $k, $v) = @_;
+ my $this = refaddr $self;
+ $keys {$this} = $k;
+ $values{$this} = $v;
+ @{$self}{@$k} = @$v;
+ return $self;
+}
+
1;
__END__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/t/storable.t
new/Hash-MultiValue-0.12/t/storable.t
--- old/Hash-MultiValue-0.10/t/storable.t 1970-01-01 01:00:00.000000000
+0100
+++ new/Hash-MultiValue-0.12/t/storable.t 2012-02-15 07:37:02.000000000
+0100
@@ -0,0 +1,24 @@
+use strict;
+use Test::More;
+use Hash::MultiValue;
+use Storable qw(freeze thaw dclone);
+
+my $l = [ qw( foo a bar baz foo b bar quux ) ];
+
+my $hash = Hash::MultiValue->new( @$l );
+
+is_deeply [ $hash->flatten ], $l, 'flattening works';
+
+my $frozen = freeze $hash;
+undef $hash;
+$hash = thaw $frozen;
+is_deeply [ $hash->flatten ], $l, '... even after deserialisation';
+
+my $clone = dclone $hash;
+is_deeply [ $clone->flatten ], $l, '... and cloning';
+
+$clone->remove('foo');
+my ($n_hash, $n_clone) = map scalar @{[$_->flatten]}, $hash, $clone;
+ok $n_hash > $n_clone, '... which makes independent objects';
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Hash-MultiValue-0.10/t/threads.t
new/Hash-MultiValue-0.12/t/threads.t
--- old/Hash-MultiValue-0.10/t/threads.t 2011-06-16 00:21:32.000000000
+0200
+++ new/Hash-MultiValue-0.12/t/threads.t 2012-02-13 16:44:52.000000000
+0100
@@ -7,6 +7,9 @@
plan skip_all => "perl interpreter is not compiled with ithreads"
unless $Config{useithreads};
+ plan skip_all => "perl 5.8.1 required for thread tests"
+ unless $] > '5.0080009';
+
require threads;
}
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]