r67307 - in /trunk/libdata-serializer-perl: Changes MANIFEST.SKIP META.yml Makefile.PL debian/changelog lib/Data/Serializer.pm lib/Data/Serializer/JSON.pm t/01-09-XML-Simple.t t/05-Encryption.t t/09-Feature-Combos.t
periapt-guest at users.alioth.debian.org
periapt-guest at users.alioth.debian.org
Tue Jan 11 22:42:54 UTC 2011
Author: periapt-guest
Date: Tue Jan 11 22:42:48 2011
New Revision: 67307
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=67307
Log:
New upstream release
Modified:
trunk/libdata-serializer-perl/Changes
trunk/libdata-serializer-perl/MANIFEST.SKIP
trunk/libdata-serializer-perl/META.yml
trunk/libdata-serializer-perl/Makefile.PL
trunk/libdata-serializer-perl/debian/changelog
trunk/libdata-serializer-perl/lib/Data/Serializer.pm
trunk/libdata-serializer-perl/lib/Data/Serializer/JSON.pm
trunk/libdata-serializer-perl/t/01-09-XML-Simple.t
trunk/libdata-serializer-perl/t/05-Encryption.t
trunk/libdata-serializer-perl/t/09-Feature-Combos.t
Modified: trunk/libdata-serializer-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-serializer-perl/Changes?rev=67307&op=diff
==============================================================================
--- trunk/libdata-serializer-perl/Changes (original)
+++ trunk/libdata-serializer-perl/Changes Tue Jan 11 22:42:48 2011
@@ -1,4 +1,24 @@
Revision history for Perl extension Data::Serializer
+
+0.53 Mon Jan 10 2011
+ - Modified tests for XML::Simple - it has sub-dependencies on either XML::Parser or XML::SAX
+ the test harness was posting a failure if neither of these were present. Now it will treat XML::Simple
+ as if it weren't installed if it is missing it's own depenencies. This version only modifies the test harness
+ no modification to module code.
+ Thanks to the cpantesters automated reporting for finding this.
+
+0.52 Mon Jan 3 2011
+ - Simplfied object by removing %_internal references, base $serializer object is much simpler now.
+ This eliminated the need for an overridden DESTROY method, and should truly fix the memory leak
+ problem originally reported by fabrice at dulaunoy.com, essentially it was confusing the Garbage collector (Fix Bug#39592)
+
+0.51 Wed Dec 29 2010
+ - Modified JSON deserializer to handle corrupt input (Bug#63259)
+ Thanks to neil.whelchel at gmail.com for report and patch
+
+0.50 Wed Dec 29 2010
+ - Modified dedigest function to armor against corrupt input values (Bug#63258)
+ Thanks to neil.whelchel at gmail.com for report and patch
0.49 Tue Apr 15 2009
- Modified XML::Simple serializer to support options
Modified: trunk/libdata-serializer-perl/MANIFEST.SKIP
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-serializer-perl/MANIFEST.SKIP?rev=67307&op=diff
==============================================================================
--- trunk/libdata-serializer-perl/MANIFEST.SKIP (original)
+++ trunk/libdata-serializer-perl/MANIFEST.SKIP Tue Jan 11 22:42:48 2011
@@ -5,3 +5,4 @@
^Build$
^_build/
^testout/
+^MYMETA.yml$
Modified: trunk/libdata-serializer-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-serializer-perl/META.yml?rev=67307&op=diff
==============================================================================
--- trunk/libdata-serializer-perl/META.yml (original)
+++ trunk/libdata-serializer-perl/META.yml Tue Jan 11 22:42:48 2011
@@ -1,45 +1,23 @@
---
-name: Data-Serializer
-version: 0.49
+abstract: 'Modules that serialize data structures'
author:
- - Neil Neely (neil at neely.cx)
-abstract: Modules that serialize data structures
-license: perl
-resources:
- license: ~
-requires:
- AutoLoader: 0
- Data::Dumper: 2.08
- Digest::SHA: 0
- Exporter: 0
- IO::File: 0
+ - 'Neil Neely (neil at neely.cx)'
build_requires:
File::Spec: 0
IO::File: 0
Test::More: 0
-recommends:
- Compress::PPMd: 0
- Compress::Zlib: 0
- Config::General: 0
- Crypt::Blowfish: 0
- Crypt::CBC: 0
- Data::Denter: 0
- Data::Taxi: 0
- FreezeThaw: 0
- JSON: 0
- JSON::Syck: 0
- JSON::XS: 0
- MIME::Base64: 0
- PHP::Serialization: 0
- Storable: 0
- XML::Dumper: 0
- XML::Simple: 0
- YAML: 0
- YAML::Syck: 0
+configure_requires:
+ Module::Build: 0.36
+generated_by: 'Module::Build version 0.3607'
+license: perl
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: Data-Serializer
provides:
Data::Serializer:
file: lib/Data/Serializer.pm
- version: 0.49
+ version: 0.53
Data::Serializer::Config::General:
file: lib/Data/Serializer/Config/General.pm
version: 0.02
@@ -82,7 +60,31 @@
Data::Serializer::YAML::Syck:
file: lib/Data/Serializer/YAML/Syck.pm
version: 0.02
-generated_by: Module::Build version 0.31012
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.2.html
- version: 1.2
+recommends:
+ Compress::PPMd: 0
+ Compress::Zlib: 0
+ Config::General: 0
+ Crypt::Blowfish: 0
+ Crypt::CBC: 0
+ Data::Denter: 0
+ Data::Taxi: 0
+ FreezeThaw: 0
+ JSON: 0
+ JSON::Syck: 0
+ JSON::XS: 0
+ MIME::Base64: 0
+ PHP::Serialization: 0
+ Storable: 0
+ XML::Dumper: 0
+ XML::Simple: 0
+ YAML: 0
+ YAML::Syck: 0
+requires:
+ AutoLoader: 0
+ Data::Dumper: 2.08
+ Digest::SHA: 0
+ Exporter: 0
+ IO::File: 0
+resources:
+ license: http://dev.perl.org/licenses/
+version: 0.53
Modified: trunk/libdata-serializer-perl/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-serializer-perl/Makefile.PL?rev=67307&op=diff
==============================================================================
--- trunk/libdata-serializer-perl/Makefile.PL (original)
+++ trunk/libdata-serializer-perl/Makefile.PL Tue Jan 11 22:42:48 2011
@@ -1,31 +1,34 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.31012
-
+# Note: this file was auto-generated by Module::Build::Compat version 0.3607
+
unless (eval "use Module::Build::Compat 0.02; 1" ) {
print "This module requires Module::Build to install itself.\n";
-
+
require ExtUtils::MakeMaker;
my $yn = ExtUtils::MakeMaker::prompt
(' Install Module::Build now from CPAN?', 'y');
-
+
unless ($yn =~ /^y/i) {
die " *** Cannot install without Module::Build. Exiting ...\n";
}
-
+
require Cwd;
require File::Spec;
require CPAN;
-
+
# Save this 'cause CPAN will chdir all over the place.
my $cwd = Cwd::cwd();
-
+
CPAN::Shell->install('Module::Build::Compat');
CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
or die "Couldn't install Module::Build, giving up.\n";
-
+
chdir $cwd or die "Cannot chdir() back to $cwd: $!";
}
eval "use Module::Build::Compat 0.02; 1" or die $@;
Module::Build::Compat->run_build_pl(args => \@ARGV);
+ my $build_script = 'Build';
+ $build_script .= '.com' if $^O eq 'VMS';
+ exit(0) unless(-e $build_script); # cpantesters convention
require Module::Build;
Module::Build::Compat->write_makefile(build_class => 'Module::Build');
Modified: trunk/libdata-serializer-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-serializer-perl/debian/changelog?rev=67307&op=diff
==============================================================================
--- trunk/libdata-serializer-perl/debian/changelog (original)
+++ trunk/libdata-serializer-perl/debian/changelog Tue Jan 11 22:42:48 2011
@@ -1,12 +1,13 @@
-libdata-serializer-perl (0.49-2) UNRELEASED; urgency=low
+libdata-serializer-perl (0.53-1) UNRELEASED; urgency=low
[ Nathan Handler ]
* debian/watch: Update to ignore development releases.
[ Nicholas Bamber ]
* Added myself to Uploaders
+ * New upstream release
- -- Nathan Handler <nhandler at ubuntu.com> Sat, 06 Jun 2009 01:33:33 +0000
+ -- Nicholas Bamber <nicholas at periapt.co.uk> Tue, 11 Jan 2011 22:43:10 +0000
libdata-serializer-perl (0.49-1) unstable; urgency=low
Modified: trunk/libdata-serializer-perl/lib/Data/Serializer.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-serializer-perl/lib/Data/Serializer.pm?rev=67307&op=diff
==============================================================================
--- trunk/libdata-serializer-perl/lib/Data/Serializer.pm (original)
+++ trunk/libdata-serializer-perl/lib/Data/Serializer.pm Tue Jan 11 22:42:48 2011
@@ -19,192 +19,173 @@
@EXPORT = qw( );
@EXPORT_OK = qw( );
-$VERSION = '0.49';
-
-# Preloaded methods go here.
-{
- my %_internal;
- my %_fields = (
- serializer => 'Data::Dumper',
- digester => 'SHA-256',
- cipher => 'Blowfish',
- encoding => 'hex',
- compressor => 'Compress::Zlib',
- secret => undef,
- portable => '1',
- compress => '0',
- raw => '0',
- options => {},
- #transient => '0',
- serializer_token => '1',
- );
- sub new {
- my ($class, %args) = @_;
- my $dataref = {%_fields};
- foreach my $field (keys %_fields) {
- $dataref->{$field} = $args{$field} if exists $args{$field};
- }
-
- $dataref->{_key} = rand
- until $dataref->{_key} && !exists $_internal{$dataref->{_key}};
-
- $_internal{$dataref->{_key}} = $dataref;
- my $self = \$dataref->{_key};
- bless $self, $class;
- #opting to not even warn on this, I don't think anyone ever used it as it never did get published on CPAN.
- #If I am wrong and this is in production use, contact me
- #if (eval "require Tie::Transient") {
- # warn "Support for Tie::Transient is deprecated\n";
- #}
-
- #load serializer module if it is defined
- return $self;
- }
- sub _serializer_obj {
- my $self = (shift);
- my $id = $$self;
- my $serializer;
- if (@_) {
- #if argument, then use it for serializing.
- $serializer = (shift);
- } else {
- $serializer = $_internal{$id}->{serializer};
- }
- $_internal{$id}->{serializer_obj}->{options} = $self->options();
- bless $_internal{$id}->{serializer_obj}, "Data::Serializer::$serializer";
- }
- sub serializer {
- my $self = (shift);
- my $id = $$self;
- my $return = $_internal{$id}->{serializer};
- if (@_) {
- $_internal{$id}->{serializer} = (shift);
- }
- return $return;
- }
- sub digester {
- my $self = (shift);
- my $id = $$self;
- my $return = $_internal{$id}->{digester};
- if (@_) {
- my $value = (shift);
- $_internal{$id}->{digester} = $value;
- }
- return $return;
- }
- sub cipher {
- my $self = (shift);
- my $id = $$self;
- my $return = $_internal{$id}->{cipher};
- if (@_) {
- $_internal{$id}->{cipher} = (shift);
- }
- return $return;
- }
- sub compressor {
- my $self = (shift);
- my $id = $$self;
- my $return = $_internal{$id}->{compressor};
- if (@_) {
- $_internal{$id}->{compressor} = (shift);
- }
- return $return;
- }
- sub secret {
- my $self = (shift);
- my $id = $$self;
- my $return = $_internal{$id}->{secret};
- if (@_) {
- $_internal{$id}->{secret} = (shift);
- }
- return $return;
- }
- sub encoding {
- my $self = (shift);
- my $id = $$self;
- my $return = $_internal{$id}->{encoding};
- if (@_) {
- $_internal{$id}->{encoding} = (shift);
- }
- return $return;
- }
- sub portable {
- my $self = (shift);
- my $id = $$self;
- my $return = $_internal{$id}->{portable};
- if (@_) {
- $_internal{$id}->{portable} = (shift);
- }
- return $return;
- }
- sub options {
- my $self = (shift);
- my $id = $$self;
- my $return = $_internal{$id}->{options};
- if (@_) {
- $_internal{$id}->{options} = (shift);
- }
- return $return;
- }
- sub compress {
- my $self = (shift);
- my $id = $$self;
- my $return = $_internal{$id}->{compress};
- if (@_) {
- $_internal{$id}->{compress} = (shift);
- }
- return $return;
- }
- sub raw {
- my $self = (shift);
- my $id = $$self;
- my $return = $_internal{$id}->{raw};
- if (@_) {
- $_internal{$id}->{raw} = (shift);
- }
- return $return;
- }
- sub serializer_token {
- my $self = (shift);
- my $id = $$self;
- my $return = $_internal{$id}->{serializer_token};
- if (@_) {
- $_internal{$id}->{serializer_token} = (shift);
- }
- return $return;
- }
- sub _module_loader {
- my $self = (shift);
- my $id = $$self;
- my $module_name = (shift);
- return if (exists $_internal{$id}->{loaded_modules}->{$module_name});
- if (@_) {
- $module_name = (shift) . "::$module_name";
- }
- my $package = $module_name;
- $package =~ s|::|/|g;
- $package .= ".pm";
- eval { require $package };
- if ($@) {
- carp "Data::Serializer error: " .
- "Please make sure $package is a properly installed package.\n";
- return undef;
- }
- $_internal{$id}->{loaded_modules}->{$module_name} = 1;
- }
-
- sub DESTROY {
- my $self = (shift);
- undef %_internal;
- }
-
-}
-
-
-#END of public functions, all following functions are for internal use only
+$VERSION = '0.53';
+
+#Global cache of modules we've loaded
+my %_MODULES;
+
+my %_fields = (
+ serializer => 'Data::Dumper',
+ digester => 'SHA-256',
+ cipher => 'Blowfish',
+ encoding => 'hex',
+ compressor => 'Compress::Zlib',
+ secret => undef,
+ portable => '1',
+ compress => '0',
+ raw => '0',
+ options => {},
+ serializer_token => '1',
+ );
+sub new {
+ my ($class, %args) = @_;
+ my $dataref = {%_fields};
+ foreach my $field (keys %_fields) {
+ $dataref->{$field} = $args{$field} if exists $args{$field};
+ }
+ my $self = $dataref;
+ bless $self, $class;
+ return $self;
+}
+
+sub _serializer_obj {
+ my $self = (shift);
+ my $serializer;
+ if (@_) {
+ #if argument, then use it for serializing.
+ $serializer = (shift);
+ } else {
+ $serializer = $self->{serializer};
+ }
+ $self->{serializer_obj}->{options} = $self->options();
+ bless $self->{serializer_obj}, "Data::Serializer::$serializer";
+}
+
+sub serializer {
+ my $self = (shift);
+ my $return = $self->{serializer};
+ if (@_) {
+ $self->{serializer} = (shift);
+ }
+ return $return;
+}
+
+sub digester {
+ my $self = (shift);
+ my $return = $self->{digester};
+ if (@_) {
+ my $value = (shift);
+ $self->{digester} = $value;
+ }
+ return $return;
+}
+
+sub cipher {
+ my $self = (shift);
+ my $return = $self->{cipher};
+ if (@_) {
+ $self->{cipher} = (shift);
+ }
+ return $return;
+}
+
+sub compressor {
+ my $self = (shift);
+ my $return = $self->{compressor};
+ if (@_) {
+ $self->{compressor} = (shift);
+ }
+ return $return;
+}
+
+sub secret {
+ my $self = (shift);
+ my $return = $self->{secret};
+ if (@_) {
+ $self->{secret} = (shift);
+ }
+ return $return;
+}
+
+sub encoding {
+ my $self = (shift);
+ my $return = $self->{encoding};
+ if (@_) {
+ $self->{encoding} = (shift);
+ }
+ return $return;
+}
+
+sub portable {
+ my $self = (shift);
+ my $return = $self->{portable};
+ if (@_) {
+ $self->{portable} = (shift);
+ }
+ return $return;
+}
+
+sub options {
+ my $self = (shift);
+ my $return = $self->{options};
+ if (@_) {
+ $self->{options} = (shift);
+ }
+ return $return;
+}
+
+sub compress {
+ my $self = (shift);
+ my $return = $self->{compress};
+ if (@_) {
+ $self->{compress} = (shift);
+ }
+ return $return;
+}
+
+sub raw {
+ my $self = (shift);
+ my $return = $self->{raw};
+ if (@_) {
+ $self->{raw} = (shift);
+ }
+ return $return;
+}
+
+sub serializer_token {
+ my $self = (shift);
+ my $return = $self->{serializer_token};
+ if (@_) {
+ $self->{serializer_token} = (shift);
+ }
+ return $return;
+}
+
+sub _module_loader {
+ my $self = (shift);
+ my $module_name = (shift);
+ return if (exists $_MODULES{$module_name});
+ if (@_) {
+ $module_name = (shift) . "::$module_name";
+ }
+ my $package = $module_name;
+ $package =~ s|::|/|g;
+ $package .= ".pm";
+ eval { require $package };
+ if ($@) {
+ carp "Data::Serializer error: " .
+ "Please make sure $package is a properly installed package.\n";
+ return undef;
+ }
+ $_MODULES{$module_name} = 1;
+}
+
+
#Documentation follows
+
+=pod
=head1 NAME
@@ -564,6 +545,7 @@
my $serializer_obj = $self->_serializer_obj($method);
return $serializer_obj->serialize(@input);
}
+
sub _compress {
my $self = (shift);
$self->_module_loader($self->compressor);
@@ -654,9 +636,10 @@
my $input = (shift);
my $digester = (shift);
$self->_module_loader('Digest');
- my ($old_digest) = $input =~ /^([^=]+?)=/;
+ #my ($old_digest) = $input =~ /^([^=]+?)=/;
+ $input =~ s/^([^=]+?)=//;
+ my $old_digest = $1;
return undef unless (defined $old_digest);
- $input =~ s/^$old_digest=//;
my $new_digest = $self->_get_digest($input,$digester);
return undef unless ($new_digest eq $old_digest);
return $input;
Modified: trunk/libdata-serializer-perl/lib/Data/Serializer/JSON.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-serializer-perl/lib/Data/Serializer/JSON.pm?rev=67307&op=diff
==============================================================================
--- trunk/libdata-serializer-perl/lib/Data/Serializer/JSON.pm (original)
+++ trunk/libdata-serializer-perl/lib/Data/Serializer/JSON.pm Tue Jan 11 22:42:48 2011
@@ -13,7 +13,8 @@
}
sub deserialize {
- return JSON->VERSION < 2 ? JSON->new->jsonToObj($_[1]) : JSON->new->decode($_[1]);
+ #return JSON->VERSION < 2 ? JSON->new->jsonToObj($_[1]) : JSON->new->decode($_[1]);
+ $_[1] and return JSON->VERSION < 2 ? JSON->new->jsonToObj($_[1]) : JSON->new->decode($_[1]);
}
1;
Modified: trunk/libdata-serializer-perl/t/01-09-XML-Simple.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-serializer-perl/t/01-09-XML-Simple.t?rev=67307&op=diff
==============================================================================
--- trunk/libdata-serializer-perl/t/01-09-XML-Simple.t (original)
+++ trunk/libdata-serializer-perl/t/01-09-XML-Simple.t Tue Jan 11 22:42:48 2011
@@ -19,6 +19,21 @@
push(@serializers, $serializer);
} else {
$T->msg("Serializer $serializer not found") unless (@serializers);
+ }
+}
+
+#
+# XML::Simple has an internal dependency of either XML::SAX or XML::Parser, so we need to test for those
+# too, and if we don't find them, act like XML::Simple is not installed
+#
+if (grep {/^XML::Simple$/} @serializers) {
+ if (eval "require XML::SAX") {
+ $T->msg("Found XML::SAX to support XML::Simple");
+ } elsif (eval "require XML::Parser") {
+ $T->msg("Found XML::Parser to support XML::Simple");
+ } else {
+ $T->msg("Could not find XML::Parser or XML::SAX, removing XML::Simple") unless (@serializers);
+ @serializers = grep {!/^XML::Simple$/} @serializers;
}
}
Modified: trunk/libdata-serializer-perl/t/05-Encryption.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-serializer-perl/t/05-Encryption.t?rev=67307&op=diff
==============================================================================
--- trunk/libdata-serializer-perl/t/05-Encryption.t (original)
+++ trunk/libdata-serializer-perl/t/05-Encryption.t Tue Jan 11 22:42:48 2011
@@ -55,3 +55,4 @@
}
}
+
Modified: trunk/libdata-serializer-perl/t/09-Feature-Combos.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-serializer-perl/t/09-Feature-Combos.t?rev=67307&op=diff
==============================================================================
--- trunk/libdata-serializer-perl/t/09-Feature-Combos.t (original)
+++ trunk/libdata-serializer-perl/t/09-Feature-Combos.t Tue Jan 11 22:42:48 2011
@@ -19,6 +19,21 @@
push(@serializers, $serializer);
}
}
+#
+# XML::Simple has an internal dependency of either XML::SAX or XML::Parser, so we need to test for those
+# too, and if we don't find them, act like XML::Simple is not installed
+#
+if (grep {/^XML::Simple$/} @serializers) {
+ if (eval "require XML::SAX") {
+ $T->msg("Found XML::SAX to support XML::Simple");
+ } elsif (eval "require XML::Parser") {
+ $T->msg("Found XML::Parser to support XML::Simple");
+ } else {
+ $T->msg("Could not find XML::Parser or XML::SAX, removing XML::Simple") unless (@serializers);
+ @serializers = grep {!/^XML::Simple$/} @serializers;
+ }
+}
+
$T->msg("No serializers found!!") unless (@serializers);
More information about the Pkg-perl-cvs-commits
mailing list