Hello community, here is the log from the commit of package perl-FileHandle-Unget for openSUSE:Factory checked in at Fri Nov 27 15:56:41 CET 2009. -------- --- perl-FileHandle-Unget/perl-FileHandle-Unget.changes 2008-07-25 16:39:33.000000000 +0200 +++ /mounts/work_src_done/STABLE/perl-FileHandle-Unget/perl-FileHandle-Unget.changes 2009-09-07 15:06:37.000000000 +0200 @@ -1,0 +2,5 @@ +Mon Sep 7 15:05:59 CEST 2009 - mls@suse.de + +- update to 0.1623 to make it build with perl-5.10.1 + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- FileHandle-Unget-0.1622.tar.bz2 New: ---- FileHandle-Unget-0.1623.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-FileHandle-Unget.spec ++++++ --- /var/tmp/diff_new_pack.SaO71i/_old 2009-11-27 15:56:05.000000000 +0100 +++ /var/tmp/diff_new_pack.SaO71i/_new 2009-11-27 15:56:05.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package perl-FileHandle-Unget (Version 0.1622) +# spec file for package perl-FileHandle-Unget (Version 0.1623) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -20,10 +20,10 @@ Name: perl-FileHandle-Unget BuildRequires: perl-Weakref -Version: 0.1622 -Release: 21 +Version: 0.1623 +Release: 1 Summary: Perl module for creating a FileHandle which supports ungetting of multiple bytes -License: GPL v2 or later +License: GPLv2+ Url: http://sourceforge.net/projects/fh-unget/ Group: Development/Libraries/Perl Requires: perl-Weakref ++++++ FileHandle-Unget-0.1622.tar.bz2 -> FileHandle-Unget-0.1623.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/CHANGES new/FileHandle-Unget-0.1623/CHANGES --- old/FileHandle-Unget-0.1622/CHANGES 2008-07-17 03:07:27.000000000 +0200 +++ new/FileHandle-Unget-0.1623/CHANGES 2009-08-09 23:10:32.000000000 +0200 @@ -1,3 +1,10 @@ +Version 0.1623: Sun Aug 9 2009 +- Fixed a bug where files with binary data would sometimes cause an + unitialized value warning at line 394 as well as incorrect behavior. (Thanks + to Bill Nugent <whn@lopi.com> for the bug report and initial patch.) +- Removed unused ExtUtils::MakeMaker::bytes, which doesn't exist anymore + anyway. (Thanks to Slaven Rezić <srezic@cpan.org> for the bug report.) + Version 0.1622: Wed Jul 16 2008 - Updated to the latest version of Module::Install - Removed auto-install for better compatibility with CPAN and others diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/inc/Module/Install/Base.pm new/FileHandle-Unget-0.1623/inc/Module/Install/Base.pm --- old/FileHandle-Unget-0.1622/inc/Module/Install/Base.pm 2008-07-17 03:07:51.000000000 +0200 +++ new/FileHandle-Unget-0.1623/inc/Module/Install/Base.pm 2009-08-30 20:08:05.000000000 +0200 @@ -1,7 +1,11 @@ #line 1 package Module::Install::Base; -$VERSION = '0.75'; +use strict 'vars'; +use vars qw{$VERSION}; +BEGIN { + $VERSION = '0.91'; +} # Suspend handler for "redefined" warnings BEGIN { @@ -9,52 +13,56 @@ $SIG{__WARN__} = sub { $w }; } -### This is the ONLY module that shouldn't have strict on -# use strict; - -#line 41 +#line 42 sub new { - my ($class, %args) = @_; - - foreach my $method ( qw(call load) ) { - *{"$class\::$method"} = sub { - shift()->_top->$method(@_); - } unless defined &{"$class\::$method"}; - } - - bless( \%args, $class ); + my $class = shift; + unless ( defined &{"${class}::call"} ) { + *{"${class}::call"} = sub { shift->_top->call(@_) }; + } + unless ( defined &{"${class}::load"} ) { + *{"${class}::load"} = sub { shift->_top->load(@_) }; + } + bless { @_ }, $class; } #line 61 sub AUTOLOAD { - my $self = shift; - local $@; - my $autoload = eval { $self->_top->autoload } or return; - goto &$autoload; + local $@; + my $func = eval { shift->_top->autoload } or return; + goto &$func; } -#line 76 +#line 75 -sub _top { $_[0]->{_top} } +sub _top { + $_[0]->{_top}; +} -#line 89 +#line 90 sub admin { - $_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new; + $_[0]->_top->{admin} + or + Module::Install::Base::FakeAdmin->new; } +#line 106 + sub is_admin { - $_[0]->admin->VERSION; + $_[0]->admin->VERSION; } sub DESTROY {} package Module::Install::Base::FakeAdmin; -my $Fake; -sub new { $Fake ||= bless(\@_, $_[0]) } +my $fake; + +sub new { + $fake ||= bless(\@_, $_[0]); +} sub AUTOLOAD {} @@ -67,4 +75,4 @@ 1; -#line 138 +#line 154 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/inc/Module/Install/Can.pm new/FileHandle-Unget-0.1623/inc/Module/Install/Can.pm --- old/FileHandle-Unget-0.1622/inc/Module/Install/Can.pm 2008-07-17 03:07:51.000000000 +0200 +++ new/FileHandle-Unget-0.1623/inc/Module/Install/Can.pm 2009-08-30 20:08:05.000000000 +0200 @@ -2,18 +2,16 @@ package Module::Install::Can; use strict; -use Module::Install::Base; -use Config (); -### This adds a 5.005 Perl version dependency. -### This is a bug and will be fixed. -use File::Spec (); -use ExtUtils::MakeMaker (); +use Config (); +use File::Spec (); +use ExtUtils::MakeMaker (); +use Module::Install::Base (); -use vars qw{$VERSION $ISCORE @ISA}; +use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '0.75'; + $VERSION = '0.91'; + @ISA = 'Module::Install::Base'; $ISCORE = 1; - @ISA = qw{Module::Install::Base}; } # check if we can load some module @@ -39,6 +37,7 @@ return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd)); for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') { + next if $dir eq ''; my $abs = File::Spec->catfile($dir, $_[1]); return $abs if (-x $abs or $abs = MM->maybe_command($abs)); } @@ -79,4 +78,4 @@ __END__ -#line 157 +#line 156 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/inc/Module/Install/Fetch.pm new/FileHandle-Unget-0.1623/inc/Module/Install/Fetch.pm --- old/FileHandle-Unget-0.1622/inc/Module/Install/Fetch.pm 2008-07-17 03:07:51.000000000 +0200 +++ new/FileHandle-Unget-0.1623/inc/Module/Install/Fetch.pm 2009-08-30 20:08:05.000000000 +0200 @@ -2,24 +2,24 @@ package Module::Install::Fetch; use strict; -use Module::Install::Base; +use Module::Install::Base (); -use vars qw{$VERSION $ISCORE @ISA}; +use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '0.75'; + $VERSION = '0.91'; + @ISA = 'Module::Install::Base'; $ISCORE = 1; - @ISA = qw{Module::Install::Base}; } sub get_file { my ($self, %args) = @_; - my ($scheme, $host, $path, $file) = + my ($scheme, $host, $path, $file) = $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return; if ( $scheme eq 'http' and ! eval { require LWP::Simple; 1 } ) { $args{url} = $args{ftp_url} or (warn("LWP support unavailable!\n"), return); - ($scheme, $host, $path, $file) = + ($scheme, $host, $path, $file) = $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/inc/Module/Install/Makefile.pm new/FileHandle-Unget-0.1623/inc/Module/Install/Makefile.pm --- old/FileHandle-Unget-0.1622/inc/Module/Install/Makefile.pm 2008-07-17 03:07:51.000000000 +0200 +++ new/FileHandle-Unget-0.1623/inc/Module/Install/Makefile.pm 2009-08-30 20:08:05.000000000 +0200 @@ -2,14 +2,14 @@ package Module::Install::Makefile; use strict 'vars'; -use Module::Install::Base; -use ExtUtils::MakeMaker (); +use ExtUtils::MakeMaker (); +use Module::Install::Base (); -use vars qw{$VERSION $ISCORE @ISA}; +use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '0.75'; + $VERSION = '0.91'; + @ISA = 'Module::Install::Base'; $ISCORE = 1; - @ISA = qw{Module::Install::Base}; } sub Makefile { $_[0] } @@ -36,9 +36,9 @@ sub makemaker_args { my $self = shift; - my $args = ($self->{makemaker_args} ||= {}); - %$args = ( %$args, @_ ) if @_; - $args; + my $args = ( $self->{makemaker_args} ||= {} ); + %$args = ( %$args, @_ ); + return $args; } # For mm args that take multiple space-seperated args, @@ -64,7 +64,7 @@ my $self = shift; my $clean = $self->makemaker_args->{clean} ||= {}; %$clean = ( - %$clean, + %$clean, FILES => join ' ', grep { length $_ } ($clean->{FILES} || (), @_), ); } @@ -73,7 +73,7 @@ my $self = shift; my $realclean = $self->makemaker_args->{realclean} ||= {}; %$realclean = ( - %$realclean, + %$realclean, FILES => join ' ', grep { length $_ } ($realclean->{FILES} || (), @_), ); } @@ -114,11 +114,32 @@ my $self = shift; die "&Makefile->write() takes no arguments\n" if @_; - # Make sure we have a new enough + # Check the current Perl version + my $perl_version = $self->perl_version; + if ( $perl_version ) { + eval "use $perl_version; 1" + or die "ERROR: perl: Version $] is installed, " + . "but we need version >= $perl_version"; + } + + # Make sure we have a new enough MakeMaker require ExtUtils::MakeMaker; - $self->configure_requires( 'ExtUtils::MakeMaker' => $ExtUtils::MakeMaker::VERSION ); - # Generate the + if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) { + # MakeMaker can complain about module versions that include + # an underscore, even though its own version may contain one! + # Hence the funny regexp to get rid of it. See RT #35800 + # for details. + $self->build_requires( 'ExtUtils::MakeMaker' => $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/ ); + $self->configure_requires( 'ExtUtils::MakeMaker' => $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/ ); + } 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 ); + } + + # Generate the MakeMaker params my $args = $self->makemaker_args; $args->{DISTNAME} = $self->name; $args->{NAME} = $self->module_name || $self->name; @@ -127,7 +148,7 @@ if ( $self->tests ) { $args->{test} = { TESTS => $self->tests }; } - if ($] >= 5.005) { + if ( $] >= 5.005 ) { $args->{ABSTRACT} = $self->abstract; $args->{AUTHOR} = $self->author; } @@ -141,7 +162,7 @@ delete $args->{SIGN}; } - # merge both kinds of requires into prereq_pm + # Merge both kinds of requires into prereq_pm my $prereq = ($args->{PREREQ_PM} ||= {}); %$prereq = ( %$prereq, map { @$_ } @@ -175,7 +196,9 @@ my $user_preop = delete $args{dist}->{PREOP}; if (my $preop = $self->admin->preop($user_preop)) { - $args{dist} = $preop; + foreach my $key ( keys %$preop ) { + $args{dist}->{$key} = $preop->{$key}; + } } my $mm = ExtUtils::MakeMaker::WriteMakefile(%args); @@ -188,7 +211,7 @@ my $top_class = ref($self->_top) || ''; my $top_version = $self->_top->VERSION || ''; - my $preamble = $self->preamble + my $preamble = $self->preamble ? "# Preamble by $top_class $top_version\n" . $self->preamble : ''; @@ -242,4 +265,4 @@ __END__ -#line 371 +#line 394 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/inc/Module/Install/Metadata.pm new/FileHandle-Unget-0.1623/inc/Module/Install/Metadata.pm --- old/FileHandle-Unget-0.1622/inc/Module/Install/Metadata.pm 2008-07-17 03:07:51.000000000 +0200 +++ new/FileHandle-Unget-0.1623/inc/Module/Install/Metadata.pm 2009-08-30 20:08:05.000000000 +0200 @@ -2,24 +2,26 @@ package Module::Install::Metadata; use strict 'vars'; -use Module::Install::Base; +use Module::Install::Base (); -use vars qw{$VERSION $ISCORE @ISA}; +use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '0.75'; + $VERSION = '0.91'; + @ISA = 'Module::Install::Base'; $ISCORE = 1; - @ISA = qw{Module::Install::Base}; } +my @boolean_keys = qw{ + sign +}; + my @scalar_keys = qw{ name module_name abstract author version - license distribution_type - perl_version tests installdirs }; @@ -33,123 +35,199 @@ resources }; -sub Meta { shift } -sub Meta_ScalarKeys { @scalar_keys } -sub Meta_TupleKeys { @tuple_keys } +my @resource_keys = qw{ + homepage + bugtracker + repository +}; + +my @array_keys = qw{ + keywords +}; + +sub Meta { shift } +sub Meta_BooleanKeys { @boolean_keys } +sub Meta_ScalarKeys { @scalar_keys } +sub Meta_TupleKeys { @tuple_keys } +sub Meta_ResourceKeys { @resource_keys } +sub Meta_ArrayKeys { @array_keys } -foreach my $key (@scalar_keys) { +foreach my $key ( @boolean_keys ) { *$key = sub { my $self = shift; - return $self->{values}{$key} if defined wantarray and !@_; - $self->{values}{$key} = shift; + if ( defined wantarray and not @_ ) { + return $self->{values}->{$key}; + } + $self->{values}->{$key} = ( @_ ? $_[0] : 1 ); return $self; }; } -sub requires { - my $self = shift; - while ( @_ ) { - my $module = shift or last; - my $version = shift || 0; - push @{ $self->{values}->{requires} }, [ $module, $version ]; - } - $self->{values}{requires}; -} - -sub build_requires { - my $self = shift; - while ( @_ ) { - my $module = shift or last; - my $version = shift || 0; - push @{ $self->{values}->{build_requires} }, [ $module, $version ]; - } - $self->{values}{build_requires}; +foreach my $key ( @scalar_keys ) { + *$key = sub { + my $self = shift; + return $self->{values}->{$key} if defined wantarray and !@_; + $self->{values}->{$key} = shift; + return $self; + }; } -sub configure_requires { - my $self = shift; - while ( @_ ) { - my $module = shift or last; - my $version = shift || 0; - push @{ $self->{values}->{configure_requires} }, [ $module, $version ]; - } - $self->{values}->{configure_requires}; +foreach my $key ( @array_keys ) { + *$key = sub { + my $self = shift; + return $self->{values}->{$key} if defined wantarray and !@_; + $self->{values}->{$key} ||= []; + push @{$self->{values}->{$key}}, @_; + return $self; + }; } -sub recommends { - my $self = shift; - while ( @_ ) { - my $module = shift or last; - my $version = shift || 0; - push @{ $self->{values}->{recommends} }, [ $module, $version ]; - } - $self->{values}->{recommends}; +foreach my $key ( @resource_keys ) { + *$key = sub { + my $self = shift; + unless ( @_ ) { + return () unless $self->{values}->{resources}; + return map { $_->[1] } + grep { $_->[0] eq $key } + @{ $self->{values}->{resources} }; + } + return $self->{values}->{resources}->{$key} unless @_; + my $uri = shift or die( + "Did not provide a value to $key()" + ); + $self->resources( $key => $uri ); + return 1; + }; } -sub bundles { - my $self = shift; - while ( @_ ) { - my $module = shift or last; - my $version = shift || 0; - push @{ $self->{values}->{bundles} }, [ $module, $version ]; - } - $self->{values}->{bundles}; +foreach my $key ( grep { $_ ne "resources" } @tuple_keys) { + *$key = sub { + my $self = shift; + return $self->{values}->{$key} unless @_; + my @added; + while ( @_ ) { + my $module = shift or last; + my $version = shift || 0; + push @added, [ $module, $version ]; + } + push @{ $self->{values}->{$key} }, @added; + return map {@$_} @added; + }; } # Resource handling +my %lc_resource = map { $_ => 1 } qw{ + homepage + license + bugtracker + repository +}; + sub resources { my $self = shift; while ( @_ ) { - my $resource = shift or last; - my $value = shift or next; - push @{ $self->{values}->{resources} }, [ $resource, $value ]; + my $name = shift or last; + my $value = shift or next; + if ( $name eq lc $name and ! $lc_resource{$name} ) { + die("Unsupported reserved lowercase resource '$name'"); + } + $self->{values}->{resources} ||= []; + push @{ $self->{values}->{resources} }, [ $name, $value ]; } $self->{values}->{resources}; } -sub repository { - my $self = shift; - $self->resources( repository => shift ); - return 1; -} - # Aliases for build_requires that will have alternative # meanings in some future version of META.yml. -sub test_requires { shift->build_requires(@_) } -sub install_requires { shift->build_requires(@_) } +sub test_requires { shift->build_requires(@_) } +sub install_requires { shift->build_requires(@_) } # Aliases for installdirs options -sub install_as_core { $_[0]->installdirs('perl') } -sub install_as_cpan { $_[0]->installdirs('site') } -sub install_as_site { $_[0]->installdirs('site') } -sub install_as_vendor { $_[0]->installdirs('vendor') } - -sub sign { - my $self = shift; - return $self->{'values'}{'sign'} if defined wantarray and ! @_; - $self->{'values'}{'sign'} = ( @_ ? $_[0] : 1 ); - return $self; -} +sub install_as_core { $_[0]->installdirs('perl') } +sub install_as_cpan { $_[0]->installdirs('site') } +sub install_as_site { $_[0]->installdirs('site') } +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, skipping\n"; + warn "You MUST provide an explicit true/false value to dynamic_config\n"; return $self; } - $self->{values}{dynamic_config} = $_[0] ? 1 : 0; - return $self; + $self->{values}->{dynamic_config} = $_[0] ? 1 : 0; + return 1; +} + +sub perl_version { + my $self = shift; + return $self->{values}->{perl_version} unless @_; + my $version = shift or die( + "Did not provide a value to perl_version()" + ); + + # Normalize the version + $version = $self->_perl_version($version); + + # We don't support the reall old versions + unless ( $version >= 5.005 ) { + die "Module::Install only supports 5.005 or newer (use ExtUtils::MakeMaker)\n"; + } + + $self->{values}->{perl_version} = $version; +} + +#Stolen from M::B +my %license_urls = ( + perl => 'http://dev.perl.org/licenses/', + apache => 'http://apache.org/licenses/LICENSE-2.0', + artistic => 'http://opensource.org/licenses/artistic-license.php', + artistic_2 => 'http://opensource.org/licenses/artistic-license-2.0.php', + lgpl => 'http://opensource.org/licenses/lgpl-license.php', + lgpl2 => 'http://opensource.org/licenses/lgpl-2.1.php', + lgpl3 => 'http://opensource.org/licenses/lgpl-3.0.html', + bsd => 'http://opensource.org/licenses/bsd-license.php', + gpl => 'http://opensource.org/licenses/gpl-license.php', + gpl2 => 'http://opensource.org/licenses/gpl-2.0.php', + gpl3 => 'http://opensource.org/licenses/gpl-3.0.html', + mit => 'http://opensource.org/licenses/mit-license.php', + mozilla => 'http://opensource.org/licenses/mozilla1.1.php', + open_source => undef, + unrestricted => undef, + restrictive => undef, + unknown => undef, +); + +sub license { + my $self = shift; + return $self->{values}->{license} unless @_; + my $license = shift or die( + 'Did not provide a value to license()' + ); + $self->{values}->{license} = $license; + + # Automatically fill in license URLs + if ( $license_urls{$license} ) { + $self->resources( license => $license_urls{$license} ); + } + + return 1; } sub all_from { my ( $self, $file ) = @_; unless ( defined($file) ) { - my $name = $self->name - or die "all_from called with no args without setting name() first"; + my $name = $self->name or die( + "all_from called with no args without setting name() first" + ); $file = join('/', 'lib', split(/-/, $name)) . '.pm'; $file =~ s{.*/}{} unless -e $file; - die "all_from: cannot find $file from $name" unless -e $file; + unless ( -e $file ) { + die("all_from cannot find $file from $name"); + } + } + unless ( -f $file ) { + die("The path '$file' does not exist, or is not a file"); } # Some methods pull from POD instead of code. @@ -171,7 +249,7 @@ sub provides { my $self = shift; - my $provides = ( $self->{values}{provides} ||= {} ); + my $provides = ( $self->{values}->{provides} ||= {} ); %$provides = (%$provides, @_) if @_; return $provides; } @@ -200,7 +278,7 @@ sub feature { my $self = shift; my $name = shift; - my $features = ( $self->{values}{features} ||= [] ); + my $features = ( $self->{values}->{features} ||= [] ); my $mods; if ( @_ == 1 and ref( $_[0] ) ) { @@ -236,8 +314,8 @@ sub no_index { my $self = shift; my $type = shift; - push @{ $self->{values}{no_index}{$type} }, @_ if $type; - return $self->{values}{no_index}; + push @{ $self->{values}->{no_index}->{$type} }, @_ if $type; + return $self->{values}->{no_index}; } sub read { @@ -303,7 +381,7 @@ $self->module_name($module_name); } } else { - die "Cannot determine name from $file\n"; + die("Cannot determine name from $file\n"); } } @@ -361,24 +439,25 @@ /ixms ) { my $license_text = $1; my @phrases = ( - 'under the same (?:terms|license) as perl itself' => 'perl', 1, - 'GNU public license' => 'gpl', 1, - 'GNU lesser public license' => 'lgpl', 1, - 'BSD license' => 'bsd', 1, - 'Artistic license' => 'artistic', 1, - 'GPL' => 'gpl', 1, - 'LGPL' => 'lgpl', 1, - 'BSD' => 'bsd', 1, - 'Artistic' => 'artistic', 1, - 'MIT' => 'mit', 1, - 'proprietary' => 'proprietary', 0, + 'under the same (?:terms|license) as (?:perl|the perl programming language) itself' => 'perl', 1, + 'GNU general public license' => 'gpl', 1, + 'GNU public license' => 'gpl', 1, + 'GNU lesser general public license' => 'lgpl', 1, + 'GNU lesser public license' => 'lgpl', 1, + 'GNU library general public license' => 'lgpl', 1, + 'GNU library public license' => 'lgpl', 1, + 'BSD license' => 'bsd', 1, + 'Artistic license' => 'artistic', 1, + 'GPL' => 'gpl', 1, + 'LGPL' => 'lgpl', 1, + 'BSD' => 'bsd', 1, + 'Artistic' => 'artistic', 1, + 'MIT' => 'mit', 1, + 'proprietary' => 'proprietary', 0, ); while ( my ($pattern, $license, $osi) = splice(@phrases, 0, 3) ) { $pattern =~ s{\s+}{\\s+}g; if ( $license_text =~ /\b$pattern\b/i ) { - if ( $osi and $license_text =~ /All rights reserved/i ) { - print "WARNING: 'All rights reserved' in copyright may invalidate Open Source license.\n"; - } $self->license($license); return 1; } @@ -389,19 +468,157 @@ return 'unknown'; } -sub install_script { +sub _extract_bugtracker { + my @links = $_[0] =~ m#L<(\Qhttp://rt.cpan.org/\E[^>]+)>#g; + my %links; + @links{@links}=(); + @links=keys %links; + return @links; +} + +sub bugtracker_from { + my $self = shift; + my $content = Module::Install::_read($_[0]); + my @links = _extract_bugtracker($content); + unless ( @links ) { + warn "Cannot determine bugtracker info from $_[0]\n"; + return 0; + } + if ( @links > 1 ) { + warn "Found more than on rt.cpan.org link in $_[0]\n"; + return 0; + } + + # Set the bugtracker + bugtracker( $links[0] ); + return 1; +} + +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; + while ( @requires ) { + my $module = shift @requires; + my $version = shift @requires; + $self->requires( $module => $version ); + } +} + +sub test_requires_from { + my $self = shift; + my $content = Module::Install::_readperl($_[0]); + my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg; + while ( @requires ) { + my $module = shift @requires; + my $version = shift @requires; + $self->test_requires( $module => $version ); + } +} + +# Convert triple-part versions (eg, 5.6.1 or 5.8.9) to +# numbers (eg, 5.006001 or 5.008009). +# Also, convert double-part versions (eg, 5.8) +sub _perl_version { + my $v = $_[-1]; + $v =~ s/^([1-9])\.([1-9]\d?\d?)$/sprintf("%d.%03d",$1,$2)/e; + $v =~ s/^([1-9])\.([1-9]\d?\d?)\.(0|[1-9]\d?\d?)$/sprintf("%d.%03d%03d",$1,$2,$3 || 0)/e; + $v =~ s/(\.\d\d\d)000$/$1/; + $v =~ s/_.+$//; + if ( ref($v) ) { + # Numify + $v = $v + 0; + } + return $v; +} + + + + + +###################################################################### +# MYMETA Support + +sub WriteMyMeta { + die "WriteMyMeta has been deprecated"; +} + +sub write_mymeta_yaml { my $self = shift; - my $args = $self->makemaker_args; - my $exe = $args->{EXE_FILES} ||= []; - foreach ( @_ ) { - if ( -f $_ ) { - push @$exe, $_; - } elsif ( -d 'script' and -f "script/$_" ) { - push @$exe, "script/$_"; - } else { - die "Cannot find script '$_'"; + + # We need YAML::Tiny to write the MYMETA.yml file + unless ( eval { require YAML::Tiny; 1; } ) { + return 1; + } + + # Generate the data + my $meta = $self->_write_mymeta_data or return 1; + + # Save as the MYMETA.yml file + print "Writing MYMETA.yml\n"; + YAML::Tiny::DumpFile('MYMETA.yml', $meta); +} + +sub write_mymeta_json { + my $self = shift; + + # We need JSON to write the MYMETA.json file + unless ( eval { require JSON; 1; } ) { + return 1; + } + + # Generate the data + my $meta = $self->_write_mymeta_data or return 1; + + # Save as the MYMETA.yml file + print "Writing MYMETA.json\n"; + Module::Install::_write( + 'MYMETA.json', + JSON->new->pretty(1)->canonical->encode($meta), + ); +} + +sub _write_mymeta_data { + my $self = shift; + + # If there's no existing META.yml there is nothing we can do + return undef unless -f 'META.yml'; + + # We need Parse::CPAN::Meta to load the file + unless ( eval { require Parse::CPAN::Meta; 1; } ) { + return undef; + } + + # Merge the perl version into the dependencies + my $val = $self->Meta->{values}; + my $perl = delete $val->{perl_version}; + if ( $perl ) { + $val->{requires} ||= []; + my $requires = $val->{requires}; + + # Canonize to three-dot version after Perl 5.6 + if ( $perl >= 5.006 ) { + $perl =~ s{^(\d+)\.(\d\d\d)(\d*)}{join('.', $1, int($2||0), int($3||0))}e } + unshift @$requires, [ perl => $perl ]; } + + # Load the advisory META.yml file + my @yaml = Parse::CPAN::Meta::LoadFile('META.yml'); + my $meta = $yaml[0]; + + # Overwrite the non-configure dependency hashs + delete $meta->{requires}; + delete $meta->{build_requires}; + delete $meta->{recommends}; + if ( exists $val->{requires} ) { + $meta->{requires} = { map { @$_ } @{ $val->{requires} } }; + } + if ( exists $val->{build_requires} ) { + $meta->{build_requires} = { map { @$_ } @{ $val->{build_requires} } }; + } + + return $meta; } 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/inc/Module/Install/Win32.pm new/FileHandle-Unget-0.1623/inc/Module/Install/Win32.pm --- old/FileHandle-Unget-0.1622/inc/Module/Install/Win32.pm 2008-07-17 03:07:51.000000000 +0200 +++ new/FileHandle-Unget-0.1623/inc/Module/Install/Win32.pm 2009-08-30 20:08:05.000000000 +0200 @@ -2,12 +2,12 @@ package Module::Install::Win32; use strict; -use Module::Install::Base; +use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '0.75'; - @ISA = qw{Module::Install::Base}; + $VERSION = '0.91'; + @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/inc/Module/Install/WriteAll.pm new/FileHandle-Unget-0.1623/inc/Module/Install/WriteAll.pm --- old/FileHandle-Unget-0.1622/inc/Module/Install/WriteAll.pm 2008-07-17 03:07:51.000000000 +0200 +++ new/FileHandle-Unget-0.1623/inc/Module/Install/WriteAll.pm 2009-08-30 20:08:05.000000000 +0200 @@ -2,11 +2,11 @@ package Module::Install::WriteAll; use strict; -use Module::Install::Base; +use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '0.75'; + $VERSION = '0.91';; @ISA = qw{Module::Install::Base}; $ISCORE = 1; } @@ -22,7 +22,6 @@ ); $self->sign(1) if $args{sign}; - $self->Meta->write if $args{meta}; $self->admin->WriteAll(%args) if $self->is_admin; $self->check_nmake if $args{check_nmake}; @@ -30,11 +29,32 @@ $self->makemaker_args( PL_FILES => {} ); } + # Until ExtUtils::MakeMaker support MYMETA.yml, make sure + # we clean it up properly ourself. + $self->realclean_files('MYMETA.yml'); + if ( $args{inline} ) { $self->Inline->write; } else { $self->Makefile->write; } + + # The Makefile write process adds a couple of dependencies, + # so write the META.yml files after the Makefile. + if ( $args{meta} ) { + $self->Meta->write; + } + + # Experimental support for MYMETA + if ( $ENV{X_MYMETA} ) { + if ( $ENV{X_MYMETA} eq 'JSON' ) { + $self->Meta->write_mymeta_json; + } else { + $self->Meta->write_mymeta_yaml; + } + } + + return 1; } 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/inc/Module/Install.pm new/FileHandle-Unget-0.1623/inc/Module/Install.pm --- old/FileHandle-Unget-0.1622/inc/Module/Install.pm 2008-07-17 03:07:51.000000000 +0200 +++ new/FileHandle-Unget-0.1623/inc/Module/Install.pm 2009-08-30 20:08:04.000000000 +0200 @@ -17,12 +17,10 @@ # 3. The ./inc/ version of Module::Install loads # } -BEGIN { - require 5.004; -} +use 5.005; use strict 'vars'; -use vars qw{$VERSION}; +use vars qw{$VERSION $MAIN}; BEGIN { # All Module::Install core packages now require synchronised versions. # This will be used to ensure we don't accidentally load old or @@ -30,7 +28,10 @@ # 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 = '0.75'; + $VERSION = '0.91'; + + # Storage for the pseudo-singleton + $MAIN = undef; *inc::Module::Install::VERSION = *VERSION; @inc::Module::Install::ISA = __PACKAGE__; @@ -69,15 +70,26 @@ # again. This is bad. Rather than taking action to touch it (which # is unreliable on some platforms and requires write permissions) # for now we should catch this and refuse to run. -if ( -f $0 and (stat($0))[9] > time ) { die <<"END_DIE" } +if ( -f $0 ) { + my $s = (stat($0))[9]; -Your installer $0 has a modification time in the future. + # If the modification time is only slightly in the future, + # sleep briefly to remove the problem. + my $a = $s - time; + if ( $a > 0 and $a < 5 ) { sleep 5 } + + # Too far in the future, throw an error. + my $t = time; + if ( $s > $t ) { die <<"END_DIE" } + +Your installer $0 has a modification time in the future ($s > $t). This is known to create infinite loops in make. Please correct this, then run $0 again. END_DIE +} @@ -121,12 +133,22 @@ $sym->{$cwd} = sub { my $pwd = Cwd::cwd(); if ( my $code = $sym->{$pwd} ) { - # delegate back to parent dirs + # Delegate back to parent dirs goto &$code unless $cwd eq $pwd; } $$sym =~ /([^:]+)$/ or die "Cannot autoload $who - $sym"; + my $method = $1; + if ( uc($method) eq $method ) { + # Do nothing + return; + } elsif ( $method =~ /^_/ and $self->can($method) ) { + # Dispatch to the root M:I class + return $self->$method(@_); + } + + # Dispatch to the appropriate plugin unshift @_, ( $self, $1 ); - goto &{$self->can('call')} unless uc($1) eq $1; + goto &{$self->can('call')}; }; } @@ -151,6 +173,9 @@ delete $INC{"$self->{file}"}; delete $INC{"$self->{path}.pm"}; + # Save to the singleton + $MAIN = $self; + return 1; } @@ -164,8 +189,7 @@ my @exts = @{$self->{extensions}}; unless ( @exts ) { - my $admin = $self->{admin}; - @exts = $admin->load_all_extensions; + @exts = $self->{admin}->load_all_extensions; } my %seen; @@ -248,7 +272,7 @@ sub load_extensions { my ($self, $path, $top) = @_; - unless ( grep { lc $_ eq lc $self->{prefix} } @INC ) { + unless ( grep { ! ref $_ and lc $_ eq lc $self->{prefix} } @INC ) { unshift @INC, $self->{prefix}; } @@ -312,7 +336,7 @@ ##################################################################### -# Utility Functions +# Common Utility Functions sub _caller { my $depth = 0; @@ -326,28 +350,81 @@ sub _read { local *FH; - open FH, "< $_[0]" or die "open($_[0]): $!"; - my $str = do { local $/; <FH> }; + if ( $] >= 5.006 ) { + open( FH, '<', $_[0] ) or die "open($_[0]): $!"; + } else { + open( FH, "< $_[0]" ) or die "open($_[0]): $!"; + } + my $string = do { local $/; <FH> }; close FH or die "close($_[0]): $!"; - return $str; + return $string; +} + +sub _readperl { + my $string = Module::Install::_read($_[0]); + $string =~ s/(?:\015{1,2}\012|\015|\012)/\n/sg; + $string =~ s/(\n)\n*__(?:DATA|END)__\b.*\z/$1/s; + $string =~ s/\n\n=\w+.+?\n\n=cut\b.+?\n+/\n\n/sg; + return $string; +} + +sub _readpod { + my $string = Module::Install::_read($_[0]); + $string =~ s/(?:\015{1,2}\012|\015|\012)/\n/sg; + return $string if $_[0] =~ /\.pod\z/; + $string =~ s/(^|\n=cut\b.+?\n+)[^=\s].+?\n(\n=\w+|\z)/$1$2/sg; + $string =~ s/\n*=pod\b[^\n]*\n+/\n\n/sg; + $string =~ s/\n*=cut\b[^\n]*\n+/\n\n/sg; + $string =~ s/^\n+//s; + return $string; } sub _write { local *FH; - open FH, "> $_[0]" or die "open($_[0]): $!"; - foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!" } + if ( $] >= 5.006 ) { + open( FH, '>', $_[0] ) or die "open($_[0]): $!"; + } else { + open( FH, "> $_[0]" ) or die "open($_[0]): $!"; + } + foreach ( 1 .. $#_ ) { + print FH $_[$_] or die "print($_[0]): $!"; + } close FH or die "close($_[0]): $!"; } -sub _version { +# _version is for processing module versions (eg, 1.03_05) not +# Perl versions (eg, 5.8.1). +sub _version ($) { my $s = shift || 0; - $s =~ s/^(\d+)\.?//; + my $d =()= $s =~ /(\.)/g; + if ( $d >= 2 ) { + # Normalise multipart versions + $s =~ s/(\.)(\d{1,3})/sprintf("$1%03d",$2)/eg; + } + $s =~ s/^(\d+)\.?//; my $l = $1 || 0; - my @v = map { $_ . '0' x (3 - length $_) } $s =~ /(\d{1,3})\D?/g; - $l = $l . '.' . join '', @v if @v; + my @v = map { + $_ . '0' x (3 - length $_) + } $s =~ /(\d{1,3})\D?/g; + $l = $l . '.' . join '', @v if @v; return $l + 0; } +sub _cmp ($$) { + _version($_[0]) <=> _version($_[1]); +} + +# Cloned from Params::Util::_CLASS +sub _CLASS ($) { + ( + defined $_[0] + and + ! ref $_[0] + and + $_[0] =~ m/^[^\W\d]\w*(?:::\w+)*\z/s + ) ? $_[0] : undef; +} + 1; -# Copyright 2008 Adam Kennedy. +# Copyright 2008 - 2009 Adam Kennedy. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/lib/FileHandle/Unget.pm new/FileHandle-Unget-0.1623/lib/FileHandle/Unget.pm --- old/FileHandle-Unget-0.1622/lib/FileHandle/Unget.pm 2008-07-17 03:07:16.000000000 +0200 +++ new/FileHandle-Unget-0.1623/lib/FileHandle/Unget.pm 2009-08-09 23:12:04.000000000 +0200 @@ -4,16 +4,15 @@ use Symbol; use FileHandle; use Exporter; -use ExtUtils::MakeMaker::bytes; use Scalar::Util qw( weaken ); -use 5.000; +use 5.005; use vars qw( @ISA $VERSION $AUTOLOAD @EXPORT @EXPORT_OK ); @ISA = qw( Exporter FileHandle ); -$VERSION = sprintf "%d.%02d%02d", q/0.16.22/ =~ /(\d+)/g; +$VERSION = sprintf "%d.%02d%02d", q/0.16.23/ =~ /(\d+)/g; @EXPORT = @FileHandle::EXPORT; @EXPORT_OK = @FileHandle::EXPORT_OK; @@ -389,7 +388,7 @@ { $line = undef; } - else + elsif (defined $templine) { $line .= $templine; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/META.yml new/FileHandle-Unget-0.1623/META.yml --- old/FileHandle-Unget-0.1622/META.yml 2008-07-15 14:02:59.000000000 +0200 +++ new/FileHandle-Unget-0.1623/META.yml 2009-08-30 20:08:05.000000000 +0200 @@ -1,10 +1,28 @@ -#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# -name: FileHandle-Unget -version: 0.15 -version_from: lib/FileHandle/Unget.pm -installdirs: site -requires: - Scalar::Util: 0 - +--- +abstract: 'FileHandle which supports multi-byte unget' +author: + - 'David Coppit <david@coppit.org>.' +build_requires: + ExtUtils::MakeMaker: 6.42 + File::Spec::Functions: 0 + Test::More: 0 +configure_requires: + ExtUtils::MakeMaker: 6.42 distribution_type: module -generated_by: ExtUtils::MakeMaker version 6.12 +generated_by: 'Module::Install version 0.91' +license: gpl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: 1.4 +module_name: FileHandle::Unget +name: FileHandle-Unget +no_index: + directory: + - inc + - t +requires: + Scalar::Util: 1.14 + perl: 5.005 +resources: + license: http://opensource.org/licenses/gpl-license.php +version: 0.1623 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FileHandle-Unget-0.1622/README new/FileHandle-Unget-0.1623/README --- old/FileHandle-Unget-0.1622/README 2008-07-16 05:15:04.000000000 +0200 +++ new/FileHandle-Unget-0.1623/README 2009-08-12 13:59:04.000000000 +0200 @@ -76,7 +76,7 @@ HOMEPAGE The CPAN Page: -http://search.cpan.org/~dcoppit/FileHandle-Unget/ +http://search.cpan.org/dist/FileHandle-Unget/ The Google Code page: http://code.google.com/p/filehandle-unget/ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org