diff -Nru libhttp-link-parser-perl-0.101/Changes libhttp-link-parser-perl-0.103/Changes --- libhttp-link-parser-perl-0.101/Changes 2011-02-19 23:08:27.000000000 +0000 +++ libhttp-link-parser-perl-0.103/Changes 2011-12-04 10:18:32.000000000 +0000 @@ -1,37 +1,51 @@ -############################################################################ -## Changes ################################################################# -############################################################################ - HTTP-Link-Parser ================ Created: 2009-10-09 -Home page: +Home page: Bug tracker: Maintainer: Toby Inkster -0.101 [2011-02-19] +0.103 2011-12-04 + + - (Bugfix Packaging) Newer version of Module::Package::RDF. + +0.102 2011-11-27 + + - Minor tidy + - (Packaging) Module::Package::RDF + - (Update) use 5.010 + +0.101 2011-02-19 + - Minor cleanups. - (Update) Copyright 2011. -0.100 [2010-06-26] +0.100 2010-06-26 + - (Update) Let the Content-Language header provide a default language for the 'title' property. -0.05 [2010-02-07] +0.05 2010-02-07 + - Clean up @EXPORT and @EXPORT_OK. - General documentation improvements. - Rename parse_header to parse_single_link, and document this. - - (Update) Copyright 2010. - (Update) Use my new build system. + - (Update) Copyright 2010. + +0.04 2009-12-15 -0.04 [2009-12-15] - (Addition) Support the 'title*' parameter. -0.03 [2009-11-28] +0.03 2009-11-28 + - (Addition) Provide an RDF::Trine::Model -0.02 [2009-11-24] +0.02 2009-11-24 + + +0.01 2009-10-09 +# First release -0.01 [2009-10-09] # First release diff -Nru libhttp-link-parser-perl-0.101/Changes.ttl libhttp-link-parser-perl-0.103/Changes.ttl --- libhttp-link-parser-perl-0.101/Changes.ttl 2011-02-19 22:56:35.000000000 +0000 +++ libhttp-link-parser-perl-0.103/Changes.ttl 1970-01-01 00:00:00.000000000 +0000 @@ -1,138 +0,0 @@ -############################################################# - -@prefix : . -@prefix dcs: . -@prefix dc: . -@prefix foaf: . -@prefix my: . -@prefix rdfs: . -@prefix toby: . -@prefix xsd: . - -############################################################# - -<> - - dc:title "Changes" ; - dc:description "Revision history for Perl extension HTTP::Link::Parser."@en ; - dc:subject my:project ; - dc:creator toby:i . - -############################################################# - -my:v_0-01 - - a :Version ; - dc:issued "2009-10-09"^^xsd:date ; - :revision "0.01"^^xsd:string ; - :file-release ; - rdfs:label "First release"@en . - -my:v_0-02 - - a :Version ; - dc:issued "2009-11-24"^^xsd:date ; - :revision "0.02"^^xsd:string ; - :file-release ; - dcs:changeset [ - dcs:versus my:v_0-01 ; - rdfs:comment "Bugfixes" - ] . - -my:v_0-03 - - a :Version ; - dc:issued "2009-11-28"^^xsd:date ; - :revision "0.03"^^xsd:string ; - :file-release ; - dcs:changeset [ - dcs:versus my:v_0-02 ; - dcs:item - [ rdfs:label "Provide an RDF::Trine::Model"@en ; a dcs:Addition ] - ] . - -my:v_0-04 - - a :Version ; - dc:issued "2009-12-15"^^xsd:date ; - :revision "0.04"^^xsd:string ; - :file-release ; - dcs:changeset [ - dcs:versus my:v_0-03 ; - dcs:item - [ rdfs:label "Support the 'title*' parameter."@en ; a dcs:Addition ] - ] . - -my:v_0-05 - - a :Version ; - dc:issued "2010-02-07"^^xsd:date ; - :revision "0.05"^^xsd:string ; - :file-release ; - dcs:changeset [ - dcs:versus my:v_0-04 ; - dcs:item - [ rdfs:label "Rename parse_header to parse_single_link, and document this."@en ] , - [ rdfs:label "Clean up @EXPORT and @EXPORT_OK."@en ] , - [ rdfs:label "Copyright 2010."@en ; a dcs:Update ] , - [ rdfs:label "Use my new build system."@en ; a dcs:Update ] , - [ rdfs:label "General documentation improvements."@en ] - ] . - -my:v_0-100 - - a :Version ; - dc:issued "2010-06-26"^^xsd:date ; - :revision "0.100"^^xsd:string ; - :file-release ; - dcs:changeset [ - dcs:versus my:v_0-05 ; - dcs:item - [ rdfs:label "Let the Content-Language header provide a default language for the 'title' property."@en ; a dcs:Update ] - ] . - -my:v_0-101 - - a :Version ; - dc:issued "2011-02-19"^^xsd:date ; - :revision "0.101"^^xsd:string ; - :file-release ; - dcs:changeset [ - dcs:versus my:v_0-100 ; - dcs:item [ rdfs:label "Minor cleanups."@en ] ; - dcs:item [ rdfs:label "Copyright 2011."@en ; a dcs:Update ] - ] . - -############################################################# - -my:project - - a :Project ; - :name "HTTP-Link-Parser" ; - :shortdesc "parse HTTP Link headers"@en ; - :programming-language "Perl" ; - :homepage ; - :download-page ; - :bug-database ; - :repository [ a :SVNRepository ; :browse ] ; - :maintainer toby:i ; - :developer toby:i ; - :documenter toby:i ; - :tester toby:i ; - :created "2009-10-09"^^xsd:date ; - :license ; - :release my:v_0-01 , my:v_0-02 , my:v_0-03 , my:v_0-04 , my:v_0-05 , - my:v_0-100 , my:v_0-101 . - -############################################################# - -toby:i - - a foaf:Person ; - foaf:name "Toby Inkster" ; - foaf:homepage ; - foaf:page ; - foaf:mbox ; - . - -############################################################# diff -Nru libhttp-link-parser-perl-0.101/Changes.xml libhttp-link-parser-perl-0.103/Changes.xml --- libhttp-link-parser-perl-0.101/Changes.xml 2011-02-19 23:08:33.000000000 +0000 +++ libhttp-link-parser-perl-0.103/Changes.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,158 +0,0 @@ - - - - - Bugfixes - - - - - - - General documentation improvements. - - - - - - - - Let the Content-Language header provide a default language for the 'title' property. - - - - - - - - Minor cleanups. - - - - Copyright 2011. - - - - - - - - Provide an RDF::Trine::Model - - - - - - - - Support the 'title*' parameter. - - - - - - - - - - - Rename parse_header to parse_single_link, and document this. - - - Clean up @EXPORT and @EXPORT_OK. - - - - Copyright 2010. - - - - Use my new build system. - - - - Revision history for Perl extension HTTP::Link::Parser. - - Changes - - - - 2009-10-09 - - - - - - - HTTP-Link-Parser - Perl - - - - - - - - - parse HTTP Link headers - - - - - 2009-10-09 - - 0.01 - - First release - - - - 2009-11-24 - - 0.02 - - - - - 2009-11-28 - - 0.03 - - - - - 2009-12-15 - - 0.04 - - - - - 2010-02-07 - - 0.05 - - - - - 2010-06-26 - - 0.100 - - - - - 2011-02-19 - - 0.101 - - - - - - - - Toby Inkster - - - diff -Nru libhttp-link-parser-perl-0.101/debian/changelog libhttp-link-parser-perl-0.103/debian/changelog --- libhttp-link-parser-perl-0.101/debian/changelog 2011-05-08 18:45:43.000000000 +0000 +++ libhttp-link-parser-perl-0.103/debian/changelog 2011-12-17 20:24:33.000000000 +0000 @@ -1,3 +1,22 @@ +libhttp-link-parser-perl (0.103-1) unstable; urgency=low + + [ Florian Schlichting ] + * Imported Upstream version 0.103. + * Bumped copyright years, adjusted DEP-5 headers and added/deleted stanzas + for new and removed files under inc/. + * Added myself to Uploaders and copyright. + * Added dependency on libhttp-message-perl. + + [ Jonas Smedegaard ] + * Update copyright file: Improve references for convenience copy of + Module::Install. + + [ gregor herrmann ] + * Remove debian/source/local-options; abort-on-upstream-changes and + unapply-patches are default in dpkg-source since 1.16.1. + + -- Florian Schlichting Sat, 17 Dec 2011 21:15:22 +0100 + libhttp-link-parser-perl (0.101-2) unstable; urgency=low * Improve package relations: diff -Nru libhttp-link-parser-perl-0.101/debian/control libhttp-link-parser-perl-0.103/debian/control --- libhttp-link-parser-perl-0.101/debian/control 2011-05-08 18:44:21.000000000 +0000 +++ libhttp-link-parser-perl-0.103/debian/control 2011-12-17 20:24:33.000000000 +0000 @@ -6,10 +6,12 @@ cdbs (>= 0.4.85~), debhelper (>= 7.0.1), dh-buildinfo, + libhttp-message-perl, librdf-trine-perl, liburi-perl Maintainer: Debian Perl Group -Uploaders: Jonas Smedegaard +Uploaders: Jonas Smedegaard , + Florian Schlichting Standards-Version: 3.9.2 Vcs-Git: git://git.debian.org/git/pkg-perl/packages/libhttp-link-parser-perl Vcs-Browser: http://git.debian.org/?p=pkg-perl/packages/libhttp-link-parser-perl.git diff -Nru libhttp-link-parser-perl-0.101/debian/copyright libhttp-link-parser-perl-0.103/debian/copyright --- libhttp-link-parser-perl-0.101/debian/copyright 2011-05-08 18:36:30.000000000 +0000 +++ libhttp-link-parser-perl-0.103/debian/copyright 2011-12-17 20:24:33.000000000 +0000 @@ -1,24 +1,44 @@ -Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?rev=174 -Upstream-Name: HTTP::Link::Parser -Upstream-Contact: Toby Inkster +Format-Specification: http://anonscm.debian.org/viewvc/dep/web/deps/dep5.mdwn?view=markup&pathrev=135 +Name: HTTP::Link::Parser +Maintainer: Toby Inkster Source: http://search.cpan.org/dist/HTTP-Link-Parser/ Files: * Copyright: 2009-2011, Toby Inkster License: Expat -Files: inc/Module/Install.pm -Copyright: 2008-2010, Adam Kennedy +Files: inc/Module/* +Copyright: 2002-2011, Adam Kennedy + 2002-2011, Audrey Tang + 2002-2011, Brian Ingerson License: Artistic or GPL-1+ + This program is free software; you can redistribute it and/or modify it + under the same terms as Perl itself. Comment: - Code lack licensing, but is apparently a convenience copy of - Module::Install which has standard Perl licensing. - . - Perl 5 is licensed under either the Artistic license or the GNU General - Public License, version 1 or later. + Code lacks licensing, but is clearly a mangled convenience copy of + lib/Module/* from Module::Install (also contained, similarly mangled, + in that project below inc/Module/*), containing above copyright and + licensing. + +Files: inc/Module/Package* +Copyright: 2011, Ingy döt Net +License: Artistic or GPL-1+ + +Files: inc/Scalar/Util* +Copyright: 1997-2010, Graham Barr +License: Artistic or GPL-1+ + +Files: inc/YAML/Tiny.pm +Copyright: 2006-2011, Adam Kennedy +License: Artistic or GPL-1+ +Comment: + Code lacks licensing, but is clearly a mangled convenience copy of + lib/YAML/Tiny.pm from YAML::Tiny, containing above copyright and + licensing. Files: debian/* Copyright: 2011, Jonas Smedegaard + 2011, Florian Schlichting License: GPL-2+ License: Expat @@ -63,7 +83,7 @@ General Public License for more details. Comment: On Debian systems the GNU General Public License (GPL) version 2 is - located in '/usr/share/common-licenses/GPL'. + located in '/usr/share/common-licenses/GPL-2'. . You should have received a copy of the GNU General Public License along with this program. If not, see . diff -Nru libhttp-link-parser-perl-0.101/debian/rules libhttp-link-parser-perl-0.103/debian/rules --- libhttp-link-parser-perl-0.101/debian/rules 2011-05-08 18:43:34.000000000 +0000 +++ libhttp-link-parser-perl-0.103/debian/rules 2011-12-17 20:24:33.000000000 +0000 @@ -27,7 +27,7 @@ DEB_UPSTREAM_TARBALL_MD5 = 7710e29fe9de7c23fabf0b53c9700c4a # Needed both by upstream build process and at runtime -common-depends = librdf-trine-perl, liburi-perl +common-depends = libhttp-message-perl, librdf-trine-perl, liburi-perl CDBS_BUILD_DEPENDS += , $(common-depends) CDBS_DEPENDS_ALL = $(common-depends) diff -Nru libhttp-link-parser-perl-0.101/inc/Module/AutoInstall.pm libhttp-link-parser-perl-0.103/inc/Module/AutoInstall.pm --- libhttp-link-parser-perl-0.101/inc/Module/AutoInstall.pm 2011-02-19 23:08:33.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/AutoInstall.pm 2011-12-04 10:18:32.000000000 +0000 @@ -17,11 +17,14 @@ ); # various lexical flags -my ( @Missing, @Existing, %DisabledTests, $UnderCPAN, $HasCPANPLUS ); +my ( @Missing, @Existing, %DisabledTests, $UnderCPAN, $InstallDepsTarget, $HasCPANPLUS ); my ( - $Config, $CheckOnly, $SkipInstall, $AcceptDefault, $TestOnly, $AllDeps + $Config, $CheckOnly, $SkipInstall, $AcceptDefault, $TestOnly, $AllDeps, + $UpgradeDeps ); -my ( $PostambleActions, $PostambleUsed ); +my ( $PostambleActions, $PostambleActionsNoTest, $PostambleActionsUpgradeDeps, + $PostambleActionsUpgradeDepsNoTest, $PostambleActionsListDeps, + $PostambleActionsListAllDeps, $PostambleUsed, $NoTest); # See if it's a testing or non-interactive session _accept_default( $ENV{AUTOMATED_TESTING} or ! -t STDIN ); @@ -31,6 +34,10 @@ $AcceptDefault = shift; } +sub _installdeps_target { + $InstallDepsTarget = shift; +} + sub missing_modules { return @Missing; } @@ -63,6 +70,11 @@ __PACKAGE__->install( $Config, @Missing = split( /,/, $1 ) ); exit 0; } + elsif ( $arg =~ /^--upgradedeps=(.*)$/ ) { + $UpgradeDeps = 1; + __PACKAGE__->install( $Config, @Missing = split( /,/, $1 ) ); + exit 0; + } elsif ( $arg =~ /^--default(?:deps)?$/ ) { $AcceptDefault = 1; } @@ -125,7 +137,7 @@ # check entirely since we don't want to have to load (and configure) # an old CPAN just for a cosmetic message - $UnderCPAN = _check_lock(1) unless $SkipInstall; + $UnderCPAN = _check_lock(1) unless $SkipInstall || $InstallDepsTarget; while ( my ( $feature, $modules ) = splice( @args, 0, 2 ) ) { my ( @required, @tests, @skiptests ); @@ -207,6 +219,7 @@ $CheckOnly or ($mandatory and $UnderCPAN) or $AllDeps + or $InstallDepsTarget or _prompt( qq{==> Auto-install the } . ( @required / 2 ) @@ -237,10 +250,17 @@ } } - if ( @Missing and not( $CheckOnly or $UnderCPAN ) ) { + if ( @Missing and not( $CheckOnly or $UnderCPAN) ) { require Config; - print -"*** Dependencies will be installed the next time you type '$Config::Config{make}'.\n"; + my $make = $Config::Config{make}; + if ($InstallDepsTarget) { + print +"*** To install dependencies type '$make installdeps' or '$make installdeps_notest'.\n"; + } + else { + print +"*** Dependencies will be installed the next time you type '$make'.\n"; + } # make an educated guess of whether we'll need root permission. print " (You may need to do that as the 'root' user.)\n" @@ -271,6 +291,10 @@ sub _check_lock { return unless @Missing or @_; + if ($ENV{PERL5_CPANM_IS_RUNNING}) { + return _running_under('cpanminus'); + } + my $cpan_env = $ENV{PERL5_CPAN_IS_RUNNING}; if ($ENV{PERL5_CPANPLUS_IS_RUNNING}) { @@ -332,6 +356,11 @@ } } + if ($UpgradeDeps) { + push @modules, @installed; + @installed = (); + } + return @installed unless @modules; # nothing to do return @installed if _check_lock(); # defer to the CPAN shell @@ -463,6 +492,11 @@ } else { die "*** Cannot convert option $key = '$value' to CPANPLUS version.\n"; } + push @config, 'prereqs', $value; + } elsif ( $key eq 'force' ) { + push @config, $key, $value; + } elsif ( $key eq 'notest' ) { + push @config, 'skiptest', $value; } else { die "*** Cannot convert option $key to CPANPLUS version.\n"; } @@ -497,10 +531,14 @@ # set additional options while ( my ( $opt, $arg ) = splice( @config, 0, 2 ) ) { ( $args{$opt} = $arg, next ) - if $opt =~ /^force$/; # pseudo-option + if $opt =~ /^(?:force|notest)$/; # pseudo-option $CPAN::Config->{$opt} = $arg; } + if ($args{notest} && (not CPAN::Shell->can('notest'))) { + die "Your version of CPAN is too old to support the 'notest' pragma"; + } + local $CPAN::Config->{prerequisites_policy} = 'follow'; while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) { @@ -519,8 +557,16 @@ delete $INC{$inc}; } - my $rv = $args{force} ? CPAN::Shell->force( install => $pkg ) - : CPAN::Shell->install($pkg); + my $rv = do { + if ($args{force}) { + CPAN::Shell->force( install => $pkg ) + } elsif ($args{notest}) { + CPAN::Shell->notest( install => $pkg ) + } else { + CPAN::Shell->install($pkg) + } + }; + $rv ||= eval { $CPAN::META->instance( 'CPAN::Distribution', $obj->cpan_file, ) ->{install} @@ -763,6 +809,35 @@ : "\$(NOECHO) \$(NOOP)" ); + my $deps_list = join( ',', @Missing, @Existing ); + + $PostambleActionsUpgradeDeps = + "\$(PERL) $0 --config=$config --upgradedeps=$deps_list"; + + my $config_notest = + join( ',', (UNIVERSAL::isa( $Config, 'HASH' ) ? %{$Config} : @{$Config}), + 'notest', 1 ) + if $Config; + + $PostambleActionsNoTest = ( + ($missing and not $UnderCPAN) + ? "\$(PERL) $0 --config=$config_notest --installdeps=$missing" + : "\$(NOECHO) \$(NOOP)" + ); + + $PostambleActionsUpgradeDepsNoTest = + "\$(PERL) $0 --config=$config_notest --upgradedeps=$deps_list"; + + $PostambleActionsListDeps = + '@$(PERL) -le "print for @ARGV" ' + . join(' ', map $Missing[$_], grep $_ % 2 == 0, 0..$#Missing); + + my @all = (@Missing, @Existing); + + $PostambleActionsListAllDeps = + '@$(PERL) -le "print for @ARGV" ' + . join(' ', map $all[$_], grep $_ % 2 == 0, 0..$#all); + return %args; } @@ -797,11 +872,15 @@ sub postamble { $PostambleUsed = 1; + my $fragment; - return <<"END_MAKE"; + $fragment .= <<"AUTO_INSTALL" if !$InstallDepsTarget; config :: installdeps \t\$(NOECHO) \$(NOOP) +AUTO_INSTALL + + $fragment .= <<"END_MAKE"; checkdeps :: \t\$(PERL) $0 --checkdeps @@ -809,12 +888,28 @@ installdeps :: \t$PostambleActions +installdeps_notest :: +\t$PostambleActionsNoTest + +upgradedeps :: +\t$PostambleActionsUpgradeDeps + +upgradedeps_notest :: +\t$PostambleActionsUpgradeDepsNoTest + +listdeps :: +\t$PostambleActionsListDeps + +listalldeps :: +\t$PostambleActionsListAllDeps + END_MAKE + return $fragment; } 1; __END__ -#line 1071 +#line 1178 diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/AutoInstall.pm libhttp-link-parser-perl-0.103/inc/Module/Install/AutoInstall.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/AutoInstall.pm 2011-02-19 23:08:33.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/AutoInstall.pm 2011-12-04 10:18:32.000000000 +0000 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.02'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -73,6 +73,17 @@ ); } +sub installdeps_target { + my ($self, @args) = @_; + + $self->include('Module::AutoInstall'); + require Module::AutoInstall; + + Module::AutoInstall::_installdeps_target(1); + + $self->auto_install(@args); +} + sub auto_install_now { my $self = shift; $self->auto_install(@_); diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/AutoManifest.pm libhttp-link-parser-perl-0.103/inc/Module/Install/AutoManifest.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/AutoManifest.pm 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/AutoManifest.pm 2011-12-04 10:18:32.000000000 +0000 @@ -0,0 +1,45 @@ +#line 1 +use strict; +use warnings; + +package Module::Install::AutoManifest; + +use Module::Install::Base; + +BEGIN { + our $VERSION = '0.003'; + our $ISCORE = 1; + our @ISA = qw(Module::Install::Base); +} + +sub auto_manifest { + my ($self) = @_; + + return unless $Module::Install::AUTHOR; + + die "auto_manifest requested, but no MANIFEST.SKIP exists\n" + unless -e "MANIFEST.SKIP"; + + if (-e "MANIFEST") { + unlink('MANIFEST') or die "Can't remove MANIFEST: $!"; + } + + $self->postamble(<<"END"); +create_distdir: manifest_clean manifest + +distclean :: manifest_clean + +manifest_clean: +\t\$(RM_F) MANIFEST +END + +} + +1; +__END__ + +#line 48 + +#line 131 + +1; # End of Module::Install::AutoManifest diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/Base.pm libhttp-link-parser-perl-0.103/inc/Module/Install/Base.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/Base.pm 2011-02-19 23:08:19.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/Base.pm 2011-12-04 10:18:23.000000000 +0000 @@ -4,7 +4,7 @@ use strict 'vars'; use vars qw{$VERSION}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.02'; } # Suspend handler for "redefined" warnings diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/Can.pm libhttp-link-parser-perl-0.103/inc/Module/Install/Can.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/Can.pm 2011-02-19 23:08:34.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/Can.pm 2011-12-04 10:18:35.000000000 +0000 @@ -9,7 +9,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.02'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/DOAPChangeSets.pm libhttp-link-parser-perl-0.103/inc/Module/Install/DOAPChangeSets.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/DOAPChangeSets.pm 2011-02-19 23:08:19.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/DOAPChangeSets.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -#line 1 -package Module::Install::DOAPChangeSets; - -use 5.008; -use base qw(Module::Install::Base); -use strict; - -our $VERSION = '0.101'; - -sub write_doap_changes { - my $self = shift; - $self->admin->write_doap_changes(@_) if $self->is_admin; -} - -sub write_doap_changes_xml { - my $self = shift; - $self->admin->write_doap_changes_xml(@_) if $self->is_admin; -} - -1; - -__END__ -#line 76 diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/Fetch.pm libhttp-link-parser-perl-0.103/inc/Module/Install/Fetch.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/Fetch.pm 2011-02-19 23:08:34.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/Fetch.pm 2011-12-04 10:18:35.000000000 +0000 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.02'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/Include.pm libhttp-link-parser-perl-0.103/inc/Module/Install/Include.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/Include.pm 2011-02-19 23:08:33.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/Include.pm 2011-12-04 10:18:23.000000000 +0000 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.02'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/Makefile.pm libhttp-link-parser-perl-0.103/inc/Module/Install/Makefile.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/Makefile.pm 2011-02-19 23:08:19.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/Makefile.pm 2011-12-04 10:18:28.000000000 +0000 @@ -8,7 +8,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.02'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/Metadata.pm libhttp-link-parser-perl-0.103/inc/Module/Install/Metadata.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/Metadata.pm 2011-02-19 23:08:19.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/Metadata.pm 2011-12-04 10:18:23.000000000 +0000 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.02'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -170,7 +170,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"; } @@ -515,6 +515,7 @@ 'GNU Free Documentation license' => 'unrestricted', 1, 'GNU Affero General Public License' => 'open_source', 1, '(?:Free)?BSD license' => 'bsd', 1, + 'Artistic license 2\.0' => 'artistic_2', 1, 'Artistic license' => 'artistic', 1, 'Apache (?:Software )?license' => 'apache', 1, 'GPL' => 'gpl', 1, @@ -550,9 +551,9 @@ sub _extract_bugtracker { my @links = $_[0] =~ m#L<( - \Qhttp://rt.cpan.org/\E[^>]+| - \Qhttp://github.com/\E[\w_]+/[\w_]+/issues| - \Qhttp://code.google.com/p/\E[\w_\-]+/issues/list + https?\Q://rt.cpan.org/\E[^>]+| + https?\Q://github.com/\E[\w_]+/[\w_]+/issues| + https?\Q://code.google.com/p/\E[\w_\-]+/issues/list )>#gx; my %links; @links{@links}=(); @@ -581,7 +582,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 -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/Package.pm libhttp-link-parser-perl-0.103/inc/Module/Install/Package.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/Package.pm 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/Package.pm 2011-12-04 10:18:23.000000000 +0000 @@ -0,0 +1,323 @@ +#line 1 +## +# name: Module::Install::Package +# abstract: Module::Install support for Module::Package +# author: Ingy döt Net +# license: perl +# copyright: 2011 +# see: +# - Module::Package + +# This module contains the Module::Package logic that must be available to +# both the Author and the End User. Author-only logic goes in a +# Module::Package::Plugin subclass. +package Module::Install::Package; +use strict; +use Module::Install::Base; +use vars qw'@ISA $VERSION'; +@ISA = 'Module::Install::Base'; +$VERSION = '0.30'; + +#-----------------------------------------------------------------------------# +# XXX BOOTBUGHACK +# This is here to try to get us out of Module-Package-0.11 cpantesters hell... +# Remove this when the situation has blown over. +sub pkg { + *inc::Module::Package::VERSION = sub { $VERSION }; + my $self = shift; + $self->module_package_internals_init($@); +} + +#-----------------------------------------------------------------------------# +# We allow the author to specify key/value options after the plugin. These +# options need to be available both at author time and install time. +#-----------------------------------------------------------------------------# +# OO accessor for command line options: +sub package_options { + @_>1?($_[0]->{package_options}=$_[1]):$_[0]->{package_options}} + +my $default_options = { + deps_list => 1, + install_bin => 1, + install_share => 1, + manifest_skip => 1, + requires_from => 1, +}; + +#-----------------------------------------------------------------------------# +# Module::Install plugin directives. Use long, ugly names to not pollute the +# Module::Install plugin namespace. These are only intended to be called from +# Module::Package. +#-----------------------------------------------------------------------------# + +# Module::Package starts off life as a normal call to this Module::Install +# plugin directive: +my $module_install_plugin; +my $module_package_plugin; +my $module_package_dist_plugin; +# XXX ARGVHACK This @argv thing is a temporary fix for an ugly bug somewhere in the +# Wikitext module usage. +my @argv; +sub module_package_internals_init { + my $self = $module_install_plugin = shift; + my ($plugin_spec, %options) = @_; + $self->package_options({%$default_options, %options}); + + if ($module_install_plugin->is_admin) { + $module_package_plugin = $self->_load_plugin($plugin_spec); + $module_package_plugin->mi($module_install_plugin); + $module_package_plugin->version_check($VERSION); + } + else { + $module_package_dist_plugin = $self->_load_dist_plugin($plugin_spec); + $module_package_dist_plugin->mi($module_install_plugin) if ref $module_package_dist_plugin; + } + # NOTE - This is the point in time where the body of Makefile.PL runs... + return; + + sub INIT { + return unless $module_install_plugin; + return if $Module::Package::ERROR; + eval { + if ($module_install_plugin->is_admin) { + $module_package_plugin->initial(); + $module_package_plugin->main(); + } + else { + $module_install_plugin->_initial(); + $module_package_dist_plugin->_initial() if ref $module_package_dist_plugin; + $module_install_plugin->_main(); + $module_package_dist_plugin->_main() if ref $module_package_dist_plugin; + } + }; + if ($@) { + $Module::Package::ERROR = $@; + die $@; + } + @argv = @ARGV; # XXX ARGVHACK + } + + # If this Module::Install plugin was used (by Module::Package) then wrap + # up any loose ends. This will get called after Makefile.PL has completed. + sub END { + @ARGV = @argv; # XXX ARGVHACK + return unless $module_install_plugin; + return if $Module::Package::ERROR; + $module_package_plugin + ? do { + $module_package_plugin->final; + $module_package_plugin->replicate_module_package; + } + : do { + $module_install_plugin->_final; + $module_package_dist_plugin->_final() if ref $module_package_dist_plugin; + } + } +} + +# Module::Package, Module::Install::Package and Module::Package::Plugin +# must all have the same version. Seems wise. +sub module_package_internals_version_check { + my ($self, $version) = @_; + return if $version < 0.1800001; # XXX BOOTBUGHACK!! + die <<"..." unless $version == $VERSION; + +Error! Something has gone awry: + Module::Package version=$version is using + Module::Install::Package version=$VERSION +If you are the author of this module, try upgrading Module::Package. +Otherwise, please notify the author of this error. + +... +} + +# Find and load the author side plugin: +sub _load_plugin { + my ($self, $spec, $namespace) = @_; + $spec ||= ''; + $namespace ||= 'Module::Package'; + my $version = ''; + $Module::Package::plugin_version = 0; + if ($spec =~ s/\s+(\S+)\s*//) { + $version = $1; + $Module::Package::plugin_version = $version; + } + my ($module, $plugin) = + not($spec) ? ('Plugin', "Plugin::basic") : + ($spec =~ /^\w(\w|::)*$/) ? ($spec, $spec) : + ($spec =~ /^:(\w+)$/) ? ('Plugin', "Plugin::$1") : + ($spec =~ /^(\S*\w):(\w+)$/) ? ($1, "$1::$2") : + die "$spec is invalid"; + $module = "${namespace}::${module}"; + $plugin = "${namespace}::${plugin}"; + eval "use $module $version (); 1" or die $@; + return $plugin->new(); +} + +# Find and load the user side plugin: +sub _load_dist_plugin { + my ($self, $spec, $namespace) = @_; + $spec ||= ''; + $namespace ||= 'Module::Package::Dist'; + my $r = eval { $self->_load_plugin($spec, $namespace); }; + return $r if ref $r; + return; +} + +#-----------------------------------------------------------------------------# +# These are the user side analogs to the author side plugin API calls. +# Prefix with '_' to not pollute Module::Install plugin space. +#-----------------------------------------------------------------------------# +sub _initial { + my ($self) = @_; +} + +sub _main { + my ($self) = @_; +} + +# NOTE These must match Module::Package::Plugin::final. +sub _final { + my ($self) = @_; + $self->_all_from; + $self->_requires_from; + $self->_install_bin; + $self->_install_share; + $self->_WriteAll; +} + +#-----------------------------------------------------------------------------# +# This section is where all the useful code bits go. These bits are needed by +# both Author and User side runs. +#-----------------------------------------------------------------------------# + +my $all_from = 0; +sub _all_from { + my $self = shift; + return if $all_from++; + return if $self->name; + my $file = shift || "$main::PM" or die "all_from has no file"; + $self->all_from($file); +} + +my $requires_from = 0; +sub _requires_from { + my $self = shift; + return if $requires_from++; + return unless $self->package_options->{requires_from}; + my $file = shift || "$main::PM" or die "requires_from has no file"; + $self->requires_from($main::PM) +} + +my $install_bin = 0; +sub _install_bin { + my $self = shift; + return if $install_bin++; + return unless $self->package_options->{install_bin}; + return unless -d 'bin'; + my @bin; + File::Find::find(sub { + return unless -f $_; + push @bin, $File::Find::name; + }, 'bin'); + $self->install_script($_) for @bin; +} + +my $install_share = 0; +sub _install_share { + my $self = shift; + return if $install_share++; + return unless $self->package_options->{install_share}; + return unless -d 'share'; + $self->install_share; +} + +my $WriteAll = 0; +sub _WriteAll { + my $self = shift; + return if $WriteAll++; + $self->WriteAll(@_); +} + +# Base package for Module::Package plugin distributed components. +package Module::Package::Dist; + +sub new { + my ($class, %args) = @_; + bless \%args, $class; +} + +sub mi { + @_ > 1 ? ($_[0]->{mi}=$_[1]) : $_[0]->{mi}; +} + +sub _initial { + my ($self) = @_; +} + +sub _main { + my ($self) = @_; +} + +sub _final { + my ($self) = @_; +} + +1; + +#-----------------------------------------------------------------------------# +# Take a guess at the primary .pm and .pod files for 'all_from', and friends. +# Put them in global magical vars in the main:: namespace. +#-----------------------------------------------------------------------------# +package Module::Package::PM; +use overload '""' => sub { + $_[0]->guess_pm unless @{$_[0]}; + return $_[0]->[0]; +}; +sub set { $_[0]->[0] = $_[1] } +sub guess_pm { + my $pm = ''; + my $self = shift; + if (-e 'META.yml') { + open META, 'META.yml' or die "Can't open 'META.yml' for input:\n$!"; + my $meta = do { local $/; }; + close META; + $meta =~ /^module_name: (\S+)$/m + or die "Can't get module_name from META.yml"; + $pm = $1; + $pm =~ s!::!/!g; + $pm = "lib/$pm.pm"; + } + else { + require File::Find; + my @array = (); + File::Find::find(sub { + return unless /\.pm$/; + my $name = $File::Find::name; + my $num = ($name =~ s!/+!/!g); + my $ary = $array[$num] ||= []; + push @$ary, $name; + }, 'lib'); + shift @array while @array and not defined $array[0]; + die "Can't guess main module" unless @array; + (($pm) = sort @{$array[0]}) or + die "Can't guess main module"; + } + my $pmc = $pm . 'c'; + $pm = $pmc if -e $pmc; + $self->set($pm); +} +$main::PM = bless [$main::PM ? ($main::PM) : ()], __PACKAGE__; + +package Module::Package::POD; +use overload '""' => sub { + return $_[0]->[0] if @{$_[0]}; + (my $pod = "$main::PM") =~ s/\.pm/.pod/ + or die "Module::Package's \$main::PM value should end in '.pm'"; + return -e $pod ? $pod : ''; +}; +sub set { $_[0][0] = $_[1] } +$main::POD = bless [$main::POD ? ($main::POD) : ()], __PACKAGE__; + +1; + diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/ReadmeFromPod.pm libhttp-link-parser-perl-0.103/inc/Module/Install/ReadmeFromPod.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/ReadmeFromPod.pm 2011-02-19 23:08:19.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/ReadmeFromPod.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -#line 1 -package Module::Install::ReadmeFromPod; - -use strict; -use warnings; -use base qw(Module::Install::Base); -use vars qw($VERSION); - -$VERSION = '0.06'; - -sub readme_from { - my $self = shift; - return unless $Module::Install::AUTHOR; - my $file = shift || return; - my $clean = shift; - require Pod::Text; - my $parser = Pod::Text->new(); - open README, '> README' or die "$!\n"; - $parser->output_fh( *README ); - $parser->parse_file( $file ); - return 1 unless $clean; - $self->postamble(<<"END"); -distclean :: license_clean - -license_clean: -\t\$(RM_F) README -END - return 1; -} - -'Readme!'; - -__END__ - -#line 89 - diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/TrustMetaYml.pm libhttp-link-parser-perl-0.103/inc/Module/Install/TrustMetaYml.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/TrustMetaYml.pm 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/TrustMetaYml.pm 2011-12-04 10:18:23.000000000 +0000 @@ -0,0 +1,52 @@ +#line 1 +package Module::Install::TrustMetaYml; + +use 5.008; +use constant { FALSE => 0, TRUE => 1 }; +use strict; +use utf8; + +BEGIN { + $Module::Install::TrustMetaYml::AUTHORITY = 'cpan:TOBYINK'; +} +BEGIN { + $Module::Install::TrustMetaYml::VERSION = '0.001'; +} + +use base qw(Module::Install::Base); + +sub trust_meta_yml +{ + my ($self, $where) = @_; + $where ||= 'META.yml'; + + $self->perl_version('5.006') unless defined $self->perl_version; + + $self->include_deps('YAML::Tiny', 0); + return $self if $self->is_admin; + + require YAML::Tiny; + my $data = YAML::Tiny::LoadFile($where); + + $self->perl_version($data->{requires}{perl} || '5.006'); + + KEY: foreach my $key (qw(requires recommends build_requires)) + { + next KEY unless ref $data->{$key} eq 'HASH'; + my %deps = %{$data->{$key}}; + DEP: while (my ($pkg, $ver) = each %deps) + { + next if $pkg eq 'perl'; + $self->$key($pkg, $ver); + } + } + + return $self; +} + +*trust_meta_yaml = \&trust_meta_yml; + +TRUE; + +__END__ + diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/Win32.pm libhttp-link-parser-perl-0.103/inc/Module/Install/Win32.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/Win32.pm 2011-02-19 23:08:34.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/Win32.pm 2011-12-04 10:18:35.000000000 +0000 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.02'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install/WriteAll.pm libhttp-link-parser-perl-0.103/inc/Module/Install/WriteAll.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install/WriteAll.pm 2011-02-19 23:08:34.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install/WriteAll.pm 2011-12-04 10:18:35.000000000 +0000 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.02'; @ISA = qw{Module::Install::Base}; $ISCORE = 1; } diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Install.pm libhttp-link-parser-perl-0.103/inc/Module/Install.pm --- libhttp-link-parser-perl-0.101/inc/Module/Install.pm 2011-02-19 23:08:13.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Install.pm 2011-12-04 10:18:16.000000000 +0000 @@ -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.00'; + $VERSION = '1.02'; # Storage for the pseudo-singleton $MAIN = undef; @@ -467,4 +467,4 @@ 1; -# Copyright 2008 - 2010 Adam Kennedy. +# Copyright 2008 - 2011 Adam Kennedy. diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Package/Dist/RDF.pm libhttp-link-parser-perl-0.103/inc/Module/Package/Dist/RDF.pm --- libhttp-link-parser-perl-0.101/inc/Module/Package/Dist/RDF.pm 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Package/Dist/RDF.pm 2011-12-04 10:18:28.000000000 +0000 @@ -0,0 +1,27 @@ +#line 1 +package Module::Package::Dist::RDF; + +use 5.008003; +BEGIN { + $Module::Package::Dist::RDF::AUTHORITY = 'cpan:TOBYINK'; + $Module::Package::Dist::RDF::VERSION = '0.005'; +} + +package Module::Package::Dist::RDF::standard; + +use 5.008003; +use strict; +use base qw[Module::Package::Dist]; +BEGIN { + $Module::Package::Dist::RDF::standard::AUTHORITY = 'cpan:TOBYINK'; + $Module::Package::Dist::RDF::standard::VERSION = '0.005'; +} + +sub _main +{ + my ($self) = @_; + $self->mi->trust_meta_yml; + $self->mi->auto_install; +} + +1; diff -Nru libhttp-link-parser-perl-0.101/inc/Module/Package.pm libhttp-link-parser-perl-0.103/inc/Module/Package.pm --- libhttp-link-parser-perl-0.101/inc/Module/Package.pm 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Module/Package.pm 2011-12-04 10:18:37.000000000 +0000 @@ -0,0 +1,71 @@ +#line 1 +## +# name: Module::Package +# abstract: Postmodern Perl Module Packaging +# author: Ingy döt Net +# license: perl +# copyright: 2011 +# see: +# - Module::Package::Plugin +# - Module::Install::Package +# - Module::Package::Tutorial + +package Module::Package; +use 5.005; +use strict; + +BEGIN { + $Module::Package::VERSION = '0.30'; + $inc::Module::Package::VERSION ||= $Module::Package::VERSION; + @inc::Module::Package::ISA = __PACKAGE__; +} + +sub import { + my $class = shift; + $INC{'inc/Module/Install.pm'} = __FILE__; + unshift @INC, 'inc' unless $INC[0] eq 'inc'; + eval "use Module::Install 1.01 (); 1" or $class->error($@); + + package main; + Module::Install->import(); + eval { + module_package_internals_version_check($Module::Package::VERSION); + module_package_internals_init(@_); + }; + if ($@) { + $Module::Package::ERROR = $@; + die $@; + } +} + +# XXX Remove this when things are stable. +sub error { + my ($class, $error) = @_; + if (-e 'inc' and not -e 'inc/.author') { + require Data::Dumper; + $Data::Dumper::Sortkeys = 1; + my $dump1 = Data::Dumper::Dumper(\%INC); + my $dump2 = Data::Dumper::Dumper(\@INC); + die <<"..."; +This should not have happened. Hopefully this dump will explain the problem: + +inc::Module::Package: $inc::Module::Package::VERSION +Module::Package: $Module::Package::VERSION +inc::Module::Install: $inc::Module::Install::VERSION +Module::Install: $Module::Install::VERSION + +Error: $error + +%INC: +$dump1 +\@INC: +$dump2 +... + } + else { + die $error; + } +} + +1; + diff -Nru libhttp-link-parser-perl-0.101/inc/Scalar/Util/PP.pm libhttp-link-parser-perl-0.103/inc/Scalar/Util/PP.pm --- libhttp-link-parser-perl-0.101/inc/Scalar/Util/PP.pm 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Scalar/Util/PP.pm 2011-12-04 10:18:25.000000000 +0000 @@ -0,0 +1,110 @@ +#line 1 +# Scalar::Util::PP.pm +# +# Copyright (c) 1997-2009 Graham Barr . All rights reserved. +# This program is free software; you can redistribute it and/or +# modify it under the same terms as Perl itself. +# +# This module is normally only loaded if the XS module is not available + +package Scalar::Util::PP; + +use strict; +use warnings; +use vars qw(@ISA @EXPORT $VERSION $recurse); +require Exporter; +use B qw(svref_2object); + +@ISA = qw(Exporter); +@EXPORT = qw(blessed reftype tainted readonly refaddr looks_like_number); +$VERSION = "1.21"; +$VERSION = eval $VERSION; + +sub blessed ($) { + return undef unless length(ref($_[0])); + my $b = svref_2object($_[0]); + return undef unless $b->isa('B::PVMG'); + my $s = $b->SvSTASH; + return $s->isa('B::HV') ? $s->NAME : undef; +} + +sub refaddr($) { + return undef unless length(ref($_[0])); + + my $addr; + if(defined(my $pkg = blessed($_[0]))) { + $addr .= bless $_[0], 'Scalar::Util::Fake'; + bless $_[0], $pkg; + } + else { + $addr .= $_[0] + } + + $addr =~ /0x(\w+)/; + local $^W; + hex($1); +} + +{ + my %tmap = qw( + B::HV HASH + B::AV ARRAY + B::CV CODE + B::IO IO + B::NULL SCALAR + B::NV SCALAR + B::PV SCALAR + B::GV GLOB + B::RV REF + B::REGEXP REGEXP + ); + + sub reftype ($) { + my $r = shift; + + return undef unless length(ref($r)); + + my $t = ref(svref_2object($r)); + + return + exists $tmap{$t} ? $tmap{$t} + : length(ref($$r)) ? 'REF' + : 'SCALAR'; + } +} + +sub tainted { + local($@, $SIG{__DIE__}, $SIG{__WARN__}); + local $^W = 0; + no warnings; + eval { kill 0 * $_[0] }; + $@ =~ /^Insecure/; +} + +sub readonly { + return 0 if tied($_[0]) || (ref(\($_[0])) ne "SCALAR"); + + local($@, $SIG{__DIE__}, $SIG{__WARN__}); + my $tmp = $_[0]; + + !eval { $_[0] = $tmp; 1 }; +} + +sub looks_like_number { + local $_ = shift; + + # checks from perlfaq4 + return 0 if !defined($_); + if (ref($_)) { + require overload; + return overload::Overloaded($_) ? defined(0 + $_) : 0; + } + return 1 if (/^[+-]?\d+$/); # is a +/- integer + return 1 if (/^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/); # a C float + return 1 if ($] >= 5.008 and /^(Inf(inity)?|NaN)$/i) or ($] >= 5.006001 and /^Inf$/i); + + 0; +} + + +1; diff -Nru libhttp-link-parser-perl-0.101/inc/Scalar/Util.pm libhttp-link-parser-perl-0.103/inc/Scalar/Util.pm --- libhttp-link-parser-perl-0.101/inc/Scalar/Util.pm 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Scalar/Util.pm 2011-12-04 10:18:25.000000000 +0000 @@ -0,0 +1,71 @@ +#line 1 +# Scalar::Util.pm +# +# Copyright (c) 1997-2007 Graham Barr . All rights reserved. +# This program is free software; you can redistribute it and/or +# modify it under the same terms as Perl itself. + +package Scalar::Util; + +use strict; +use vars qw(@ISA @EXPORT_OK $VERSION @EXPORT_FAIL); +require Exporter; +require List::Util; # List::Util loads the XS + +@ISA = qw(Exporter); +@EXPORT_OK = qw(blessed dualvar reftype weaken isweak tainted readonly openhandle refaddr isvstring looks_like_number set_prototype); +$VERSION = "1.21"; +$VERSION = eval $VERSION; + +unless (defined &dualvar) { + # Load Pure Perl version if XS not loaded + require Scalar::Util::PP; + Scalar::Util::PP->import; + push @EXPORT_FAIL, qw(weaken isweak dualvar isvstring set_prototype); +} + +sub export_fail { + if (grep { /dualvar/ } @EXPORT_FAIL) { # no XS loaded + my $pat = join("|", @EXPORT_FAIL); + if (my ($err) = grep { /^($pat)$/ } @_ ) { + require Carp; + Carp::croak("$err is only available with the XS version of Scalar::Util"); + } + } + + if (grep { /^(weaken|isweak)$/ } @_ ) { + require Carp; + Carp::croak("Weak references are not implemented in the version of perl"); + } + + if (grep { /^(isvstring)$/ } @_ ) { + require Carp; + Carp::croak("Vstrings are not implemented in the version of perl"); + } + + @_; +} + +sub openhandle ($) { + my $fh = shift; + my $rt = reftype($fh) || ''; + + return defined(fileno($fh)) ? $fh : undef + if $rt eq 'IO'; + + if (reftype(\$fh) eq 'GLOB') { # handle openhandle(*DATA) + $fh = \(my $tmp=$fh); + } + elsif ($rt ne 'GLOB') { + return undef; + } + + (tied(*$fh) or defined(fileno($fh))) + ? $fh : undef; +} + +1; + +__END__ + +#line 283 diff -Nru libhttp-link-parser-perl-0.101/inc/Test/Signature.pm libhttp-link-parser-perl-0.103/inc/Test/Signature.pm --- libhttp-link-parser-perl-0.101/inc/Test/Signature.pm 2011-02-19 23:08:33.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/Test/Signature.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ -#line 1 -package Test::Signature; - -use 5.004; -use strict; -use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK ); -use Exporter; -use Test::Builder; - -BEGIN { - $VERSION = '1.10'; - @ISA = qw( Exporter ); - @EXPORT = qw( signature_ok ); - @EXPORT_OK = qw( signature_force_ok ); -} - -my $test = Test::Builder->new(); - -#line 53 - -#line 77 - -sub action_skip { $test->skip( $_[0] ) } -sub action_ok { $test->ok( 0, $_[0] ) } - -sub signature_ok { - my $name = shift || 'Valid signature'; - my $force = shift || 0; - my $action = $force ? \&action_ok : \&action_skip; - SKIP: { - if ( !-s 'SIGNATURE' ) { - $action->("No SIGNATURE file found."); - } - elsif ( !eval { require Module::Signature; 1 } ) { - $action->( - "Next time around, consider installing Module::Signature, " - . "so you can verify the integrity of this distribution." ); - } - elsif ( !eval { require Socket; Socket::inet_aton('pgp.mit.edu') } ) { - $action->("Cannot connect to the keyserver."); - } - else { - $test->ok( Module::Signature::verify() == - Module::Signature::SIGNATURE_OK() => $name ); - } - } -} - -#line 118 - -sub signature_force_ok { - signature_ok( $_[0] || undef, 1 ); -} - -1; -__END__ - -#line 297 diff -Nru libhttp-link-parser-perl-0.101/inc/YAML/Tiny.pm libhttp-link-parser-perl-0.103/inc/YAML/Tiny.pm --- libhttp-link-parser-perl-0.101/inc/YAML/Tiny.pm 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/inc/YAML/Tiny.pm 2011-12-04 10:18:25.000000000 +0000 @@ -0,0 +1,622 @@ +#line 1 +package YAML::Tiny; + +use strict; +use Carp 'croak'; + +# UTF Support? +sub HAVE_UTF8 () { $] >= 5.007003 } +BEGIN { + if ( HAVE_UTF8 ) { + # The string eval helps hide this from Test::MinimumVersion + eval "require utf8;"; + die "Failed to load UTF-8 support" if $@; + } + + # Class structure + require 5.004; + require Exporter; + $YAML::Tiny::VERSION = '1.41'; + @YAML::Tiny::ISA = qw{ Exporter }; + @YAML::Tiny::EXPORT = qw{ Load Dump }; + @YAML::Tiny::EXPORT_OK = qw{ LoadFile DumpFile freeze thaw }; + + # Error storage + $YAML::Tiny::errstr = ''; +} + +# The character class of all characters we need to escape +# NOTE: Inlined, since it's only used once +# my $RE_ESCAPE = '[\\x00-\\x08\\x0b-\\x0d\\x0e-\\x1f\"\n]'; + +# Printed form of the unprintable characters in the lowest range +# of ASCII characters, listed by ASCII ordinal position. +my @UNPRINTABLE = qw( + z x01 x02 x03 x04 x05 x06 a + x08 t n v f r x0e x0f + x10 x11 x12 x13 x14 x15 x16 x17 + x18 x19 x1a e x1c x1d x1e x1f +); + +# Printable characters for escapes +my %UNESCAPES = ( + z => "\x00", a => "\x07", t => "\x09", + n => "\x0a", v => "\x0b", f => "\x0c", + r => "\x0d", e => "\x1b", '\\' => '\\', +); + +# Special magic boolean words +my %QUOTE = map { $_ => 1 } qw{ + null Null NULL + y Y yes Yes YES n N no No NO + true True TRUE false False FALSE + on On ON off Off OFF +}; + + + + + +##################################################################### +# Implementation + +# Create an empty YAML::Tiny object +sub new { + my $class = shift; + bless [ @_ ], $class; +} + +# Create an object from a file +sub read { + my $class = ref $_[0] ? ref shift : shift; + + # Check the file + my $file = shift or return $class->_error( 'You did not specify a file name' ); + return $class->_error( "File '$file' does not exist" ) unless -e $file; + return $class->_error( "'$file' is a directory, not a file" ) unless -f _; + return $class->_error( "Insufficient permissions to read '$file'" ) unless -r _; + + # Slurp in the file + local $/ = undef; + local *CFG; + unless ( open(CFG, $file) ) { + return $class->_error("Failed to open file '$file': $!"); + } + my $contents = ; + unless ( close(CFG) ) { + return $class->_error("Failed to close file '$file': $!"); + } + + $class->read_string( $contents ); +} + +# Create an object from a string +sub read_string { + my $class = ref $_[0] ? ref shift : shift; + my $self = bless [], $class; + my $string = $_[0]; + unless ( defined $string ) { + return $self->_error("Did not provide a string to load"); + } + + # Byte order marks + # NOTE: Keeping this here to educate maintainers + # my %BOM = ( + # "\357\273\277" => 'UTF-8', + # "\376\377" => 'UTF-16BE', + # "\377\376" => 'UTF-16LE', + # "\377\376\0\0" => 'UTF-32LE' + # "\0\0\376\377" => 'UTF-32BE', + # ); + if ( $string =~ /^(?:\376\377|\377\376|\377\376\0\0|\0\0\376\377)/ ) { + return $self->_error("Stream has a non UTF-8 BOM"); + } else { + # Strip UTF-8 bom if found, we'll just ignore it + $string =~ s/^\357\273\277//; + } + + # Try to decode as utf8 + utf8::decode($string) if HAVE_UTF8; + + # Check for some special cases + return $self unless length $string; + unless ( $string =~ /[\012\015]+\z/ ) { + return $self->_error("Stream does not end with newline character"); + } + + # Split the file into lines + my @lines = grep { ! /^\s*(?:\#.*)?\z/ } + split /(?:\015{1,2}\012|\015|\012)/, $string; + + # Strip the initial YAML header + @lines and $lines[0] =~ /^\%YAML[: ][\d\.]+.*\z/ and shift @lines; + + # A nibbling parser + while ( @lines ) { + # Do we have a document header? + if ( $lines[0] =~ /^---\s*(?:(.+)\s*)?\z/ ) { + # Handle scalar documents + shift @lines; + if ( defined $1 and $1 !~ /^(?:\#.+|\%YAML[: ][\d\.]+)\z/ ) { + push @$self, $self->_read_scalar( "$1", [ undef ], \@lines ); + next; + } + } + + if ( ! @lines or $lines[0] =~ /^(?:---|\.\.\.)/ ) { + # A naked document + push @$self, undef; + while ( @lines and $lines[0] !~ /^---/ ) { + shift @lines; + } + + } elsif ( $lines[0] =~ /^\s*\-/ ) { + # An array at the root + my $document = [ ]; + push @$self, $document; + $self->_read_array( $document, [ 0 ], \@lines ); + + } elsif ( $lines[0] =~ /^(\s*)\S/ ) { + # A hash at the root + my $document = { }; + push @$self, $document; + $self->_read_hash( $document, [ length($1) ], \@lines ); + + } else { + croak("YAML::Tiny failed to classify the line '$lines[0]'"); + } + } + + $self; +} + +# Deparse a scalar string to the actual scalar +sub _read_scalar { + my ($self, $string, $indent, $lines) = @_; + + # Trim trailing whitespace + $string =~ s/\s*\z//; + + # Explitic null/undef + return undef if $string eq '~'; + + # Single quote + if ( $string =~ /^\'(.*?)\'\z/ ) { + return '' unless defined $1; + $string = $1; + $string =~ s/\'\'/\'/g; + return $string; + } + + # Double quote. + # The commented out form is simpler, but overloaded the Perl regex + # engine due to recursion and backtracking problems on strings + # larger than 32,000ish characters. Keep it for reference purposes. + # if ( $string =~ /^\"((?:\\.|[^\"])*)\"\z/ ) { + if ( $string =~ /^\"([^\\"]*(?:\\.[^\\"]*)*)\"\z/ ) { + # Reusing the variable is a little ugly, + # but avoids a new variable and a string copy. + $string = $1; + $string =~ s/\\"/"/g; + $string =~ s/\\([never\\fartz]|x([0-9a-fA-F]{2}))/(length($1)>1)?pack("H2",$2):$UNESCAPES{$1}/gex; + return $string; + } + + # Special cases + if ( $string =~ /^[\'\"!&]/ ) { + croak("YAML::Tiny does not support a feature in line '$lines->[0]'"); + } + return {} if $string eq '{}'; + return [] if $string eq '[]'; + + # Regular unquoted string + return $string unless $string =~ /^[>|]/; + + # Error + croak("YAML::Tiny failed to find multi-line scalar content") unless @$lines; + + # Check the indent depth + $lines->[0] =~ /^(\s*)/; + $indent->[-1] = length("$1"); + if ( defined $indent->[-2] and $indent->[-1] <= $indent->[-2] ) { + croak("YAML::Tiny found bad indenting in line '$lines->[0]'"); + } + + # Pull the lines + my @multiline = (); + while ( @$lines ) { + $lines->[0] =~ /^(\s*)/; + last unless length($1) >= $indent->[-1]; + push @multiline, substr(shift(@$lines), length($1)); + } + + my $j = (substr($string, 0, 1) eq '>') ? ' ' : "\n"; + my $t = (substr($string, 1, 1) eq '-') ? '' : "\n"; + return join( $j, @multiline ) . $t; +} + +# Parse an array +sub _read_array { + my ($self, $array, $indent, $lines) = @_; + + while ( @$lines ) { + # Check for a new document + if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) { + while ( @$lines and $lines->[0] !~ /^---/ ) { + shift @$lines; + } + return 1; + } + + # Check the indent level + $lines->[0] =~ /^(\s*)/; + if ( length($1) < $indent->[-1] ) { + return 1; + } elsif ( length($1) > $indent->[-1] ) { + croak("YAML::Tiny found bad indenting in line '$lines->[0]'"); + } + + if ( $lines->[0] =~ /^(\s*\-\s+)[^\'\"]\S*\s*:(?:\s+|$)/ ) { + # Inline nested hash + my $indent2 = length("$1"); + $lines->[0] =~ s/-/ /; + push @$array, { }; + $self->_read_hash( $array->[-1], [ @$indent, $indent2 ], $lines ); + + } elsif ( $lines->[0] =~ /^\s*\-(\s*)(.+?)\s*\z/ ) { + # Array entry with a value + shift @$lines; + push @$array, $self->_read_scalar( "$2", [ @$indent, undef ], $lines ); + + } elsif ( $lines->[0] =~ /^\s*\-\s*\z/ ) { + shift @$lines; + unless ( @$lines ) { + push @$array, undef; + return 1; + } + if ( $lines->[0] =~ /^(\s*)\-/ ) { + my $indent2 = length("$1"); + if ( $indent->[-1] == $indent2 ) { + # Null array entry + push @$array, undef; + } else { + # Naked indenter + push @$array, [ ]; + $self->_read_array( $array->[-1], [ @$indent, $indent2 ], $lines ); + } + + } elsif ( $lines->[0] =~ /^(\s*)\S/ ) { + push @$array, { }; + $self->_read_hash( $array->[-1], [ @$indent, length("$1") ], $lines ); + + } else { + croak("YAML::Tiny failed to classify line '$lines->[0]'"); + } + + } elsif ( defined $indent->[-2] and $indent->[-1] == $indent->[-2] ) { + # This is probably a structure like the following... + # --- + # foo: + # - list + # bar: value + # + # ... so lets return and let the hash parser handle it + return 1; + + } else { + croak("YAML::Tiny failed to classify line '$lines->[0]'"); + } + } + + return 1; +} + +# Parse an array +sub _read_hash { + my ($self, $hash, $indent, $lines) = @_; + + while ( @$lines ) { + # Check for a new document + if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) { + while ( @$lines and $lines->[0] !~ /^---/ ) { + shift @$lines; + } + return 1; + } + + # Check the indent level + $lines->[0] =~ /^(\s*)/; + if ( length($1) < $indent->[-1] ) { + return 1; + } elsif ( length($1) > $indent->[-1] ) { + croak("YAML::Tiny found bad indenting in line '$lines->[0]'"); + } + + # Get the key + unless ( $lines->[0] =~ s/^\s*([^\'\" ][^\n]*?)\s*:(\s+|$)// ) { + if ( $lines->[0] =~ /^\s*[?\'\"]/ ) { + croak("YAML::Tiny does not support a feature in line '$lines->[0]'"); + } + croak("YAML::Tiny failed to classify line '$lines->[0]'"); + } + my $key = $1; + + # Do we have a value? + if ( length $lines->[0] ) { + # Yes + $hash->{$key} = $self->_read_scalar( shift(@$lines), [ @$indent, undef ], $lines ); + } else { + # An indent + shift @$lines; + unless ( @$lines ) { + $hash->{$key} = undef; + return 1; + } + if ( $lines->[0] =~ /^(\s*)-/ ) { + $hash->{$key} = []; + $self->_read_array( $hash->{$key}, [ @$indent, length($1) ], $lines ); + } elsif ( $lines->[0] =~ /^(\s*)./ ) { + my $indent2 = length("$1"); + if ( $indent->[-1] >= $indent2 ) { + # Null hash entry + $hash->{$key} = undef; + } else { + $hash->{$key} = {}; + $self->_read_hash( $hash->{$key}, [ @$indent, length($1) ], $lines ); + } + } + } + } + + return 1; +} + +# Save an object to a file +sub write { + my $self = shift; + my $file = shift or return $self->_error('No file name provided'); + + # Write it to the file + open( CFG, '>' . $file ) or return $self->_error( + "Failed to open file '$file' for writing: $!" + ); + print CFG $self->write_string; + close CFG; + + return 1; +} + +# Save an object to a string +sub write_string { + my $self = shift; + return '' unless @$self; + + # Iterate over the documents + my $indent = 0; + my @lines = (); + foreach my $cursor ( @$self ) { + push @lines, '---'; + + # An empty document + if ( ! defined $cursor ) { + # Do nothing + + # A scalar document + } elsif ( ! ref $cursor ) { + $lines[-1] .= ' ' . $self->_write_scalar( $cursor, $indent ); + + # A list at the root + } elsif ( ref $cursor eq 'ARRAY' ) { + unless ( @$cursor ) { + $lines[-1] .= ' []'; + next; + } + push @lines, $self->_write_array( $cursor, $indent, {} ); + + # A hash at the root + } elsif ( ref $cursor eq 'HASH' ) { + unless ( %$cursor ) { + $lines[-1] .= ' {}'; + next; + } + push @lines, $self->_write_hash( $cursor, $indent, {} ); + + } else { + croak("Cannot serialize " . ref($cursor)); + } + } + + join '', map { "$_\n" } @lines; +} + +sub _write_scalar { + my $string = $_[1]; + return '~' unless defined $string; + return "''" unless length $string; + if ( $string =~ /[\x00-\x08\x0b-\x0d\x0e-\x1f\"\'\n]/ ) { + $string =~ s/\\/\\\\/g; + $string =~ s/"/\\"/g; + $string =~ s/\n/\\n/g; + $string =~ s/([\x00-\x1f])/\\$UNPRINTABLE[ord($1)]/g; + return qq|"$string"|; + } + if ( $string =~ /(?:^\W|\s)/ or $QUOTE{$string} ) { + return "'$string'"; + } + return $string; +} + +sub _write_array { + my ($self, $array, $indent, $seen) = @_; + if ( $seen->{refaddr($array)}++ ) { + die "YAML::Tiny does not support circular references"; + } + my @lines = (); + foreach my $el ( @$array ) { + my $line = (' ' x $indent) . '-'; + my $type = ref $el; + if ( ! $type ) { + $line .= ' ' . $self->_write_scalar( $el, $indent + 1 ); + push @lines, $line; + + } elsif ( $type eq 'ARRAY' ) { + if ( @$el ) { + push @lines, $line; + push @lines, $self->_write_array( $el, $indent + 1, $seen ); + } else { + $line .= ' []'; + push @lines, $line; + } + + } elsif ( $type eq 'HASH' ) { + if ( keys %$el ) { + push @lines, $line; + push @lines, $self->_write_hash( $el, $indent + 1, $seen ); + } else { + $line .= ' {}'; + push @lines, $line; + } + + } else { + die "YAML::Tiny does not support $type references"; + } + } + + @lines; +} + +sub _write_hash { + my ($self, $hash, $indent, $seen) = @_; + if ( $seen->{refaddr($hash)}++ ) { + die "YAML::Tiny does not support circular references"; + } + my @lines = (); + foreach my $name ( sort keys %$hash ) { + my $el = $hash->{$name}; + my $line = (' ' x $indent) . "$name:"; + my $type = ref $el; + if ( ! $type ) { + $line .= ' ' . $self->_write_scalar( $el, $indent + 1 ); + push @lines, $line; + + } elsif ( $type eq 'ARRAY' ) { + if ( @$el ) { + push @lines, $line; + push @lines, $self->_write_array( $el, $indent + 1, $seen ); + } else { + $line .= ' []'; + push @lines, $line; + } + + } elsif ( $type eq 'HASH' ) { + if ( keys %$el ) { + push @lines, $line; + push @lines, $self->_write_hash( $el, $indent + 1, $seen ); + } else { + $line .= ' {}'; + push @lines, $line; + } + + } else { + die "YAML::Tiny does not support $type references"; + } + } + + @lines; +} + +# Set error +sub _error { + $YAML::Tiny::errstr = $_[1]; + undef; +} + +# Retrieve error +sub errstr { + $YAML::Tiny::errstr; +} + + + + + +##################################################################### +# YAML Compatibility + +sub Dump { + YAML::Tiny->new(@_)->write_string; +} + +sub Load { + my $self = YAML::Tiny->read_string(@_); + unless ( $self ) { + croak("Failed to load YAML document from string"); + } + if ( wantarray ) { + return @$self; + } else { + # To match YAML.pm, return the last document + return $self->[-1]; + } +} + +BEGIN { + *freeze = *Dump; + *thaw = *Load; +} + +sub DumpFile { + my $file = shift; + YAML::Tiny->new(@_)->write($file); +} + +sub LoadFile { + my $self = YAML::Tiny->read($_[0]); + unless ( $self ) { + croak("Failed to load YAML document from '" . ($_[0] || '') . "'"); + } + if ( wantarray ) { + return @$self; + } else { + # Return only the last document to match YAML.pm, + return $self->[-1]; + } +} + + + + + +##################################################################### +# Use Scalar::Util if possible, otherwise emulate it + +BEGIN { + eval { + require Scalar::Util; + }; + if ( $@ ) { + # Failed to load Scalar::Util + eval <<'END_PERL'; +sub refaddr { + my $pkg = ref($_[0]) or return undef; + if (!!UNIVERSAL::can($_[0], 'can')) { + bless $_[0], 'Scalar::Util::Fake'; + } else { + $pkg = undef; + } + "$_[0]" =~ /0x(\w+)/; + my $i = do { local $^W; hex $1 }; + bless $_[0], $pkg if defined $pkg; + $i; +} +END_PERL + } else { + Scalar::Util->import('refaddr'); + } +} + +1; + +__END__ + +#line 1132 diff -Nru libhttp-link-parser-perl-0.101/lib/HTTP/Link/Parser.pm libhttp-link-parser-perl-0.103/lib/HTTP/Link/Parser.pm --- libhttp-link-parser-perl-0.101/lib/HTTP/Link/Parser.pm 2011-02-19 23:05:34.000000000 +0000 +++ libhttp-link-parser-perl-0.103/lib/HTTP/Link/Parser.pm 2011-12-04 09:58:25.000000000 +0000 @@ -1,92 +1,39 @@ -=head1 NAME - -HTTP::Link::Parser - parse HTTP Link headers - -=head1 SYNOPSIS - - use HTTP::Link::Parser ':standard'; - use LWP::UserAgent; - - my $ua = LWP::UserAgent->new; - my $response = $ua->get("http://example.com/foo"); - - # Parse link headers into an RDF::Trine::Model. - my $model = parse_links_into_model($response); - - # Find data about . - my $iterator = $model->get_statements( - RDF::Trine::Node::Resource->new('http://example.com/foo'), - undef, - undef); - - while ($statement = $iterator->next) - { - # Skip data where the value is not a resource (i.e. link) - next unless $statement->object->is_resource; - - printf("Link to <%s> with rel=\"%s\".\n", - $statement->object->uri, - $statement->predicate->uri); - } - -=cut - package HTTP::Link::Parser; -use 5.006; +use 5.010; use strict; no warnings; -require Exporter; -our @ISA = qw(Exporter); -our %EXPORT_TAGS = ( - 'all' => [ qw(parse_links_into_model parse_links_to_rdfjson parse_links_to_list parse_single_link relationship_uri) ], - 'standard' => [ qw(parse_links_into_model parse_links_to_rdfjson) ] - ); -our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); -our @EXPORT = ( @{ $EXPORT_TAGS{'standard'} } ); - -our $VERSION = '0.101'; +our (@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT); +BEGIN +{ + $HTTP::Link::Parser::AUTHORITY = 'cpan:TOBYINK'; + $HTTP::Link::Parser::VERSION = '0.103'; + + require Exporter; + @ISA = qw(Exporter); + %EXPORT_TAGS = ( + 'all' => [qw/parse_links_into_model parse_links_to_rdfjson parse_links_to_list parse_single_link relationship_uri/], + 'standard' => [qw/parse_links_into_model parse_links_to_rdfjson/], + ); + @EXPORT_OK = @{ $EXPORT_TAGS{'all'} }; + @EXPORT = @{ $EXPORT_TAGS{'standard'} }; +} +use Carp qw(croak carp); use Encode qw(decode encode_utf8); -use RDF::Trine '0.126'; +use RDF::Trine '0.135'; use Scalar::Util qw(blessed); use URI; use URI::Escape; use constant LINK_NAMESPACE => 'http://www.iana.org/assignments/relation/'; -=head1 DESCRIPTION - -HTTP::Link::Parser parses HTTP "Link" headers found in an -HTTP::Response object. Headers should conform to the format -described in RFC 5988. - -=head2 Functions - -To export all functions: - - use HTTP::Link::Parser ':all'; - -=over 4 - -=item C<< parse_links_into_model($response, [$existing_model]) >> - -Takes an L object (or in fact, any L object) -and returns an L containing link data extracted from the -response. Dublin Core is used to encode 'hreflang', 'title' and 'type' link -parameters. - -C<$existing_model> is an RDF::Trine::Model to add data to. If omitted, a -new, empty model is created. - -=cut - sub parse_links_into_model { my ($response, $model) = @_; - die "Parameter to parse_links_to_list should be an HTTP::Message.\n" + croak "Parameter to parse_links_into_model should be an HTTP::Message" unless blessed($response) && $response->isa('HTTP::Message'); my $model ||= RDF::Trine::Model->temporary_model; @@ -94,22 +41,11 @@ return $model; } -=item C<< parse_links_to_rdfjson($response) >> - -Returns a hashref with a structure inspired by the RDF/JSON -specification. This can be thought of as a shortcut for: - - parse_links_into_model($response)->as_hashref - -But it's faster as no intermediate model is built. - -=cut - sub parse_links_to_rdfjson { my ($response) = @_; - die "Parameter to parse_links_to_list should be an HTTP::Message.\n" + croak "Parameter to parse_links_to_rdfjson should be an HTTP::Message." unless blessed($response) && $response->isa('HTTP::Message'); my $base = URI->new($response->base); @@ -206,66 +142,24 @@ return $rv; } -=item C<< relationship_uri($short) >> - -This function is not exported by default. - -It may be used to convert short strings identifying relationships, -such as "next" and "prev", into longer URIs identifying the same -relationships, such as "http://www.iana.org/assignments/relation/next" -and "http://www.iana.org/assignments/relation/prev". - -If passed a string which is a URI already, simply returns it as-is. - -=cut - sub relationship_uri { my ($str) = @_; - if ($str =~ /^([a-z][a-z0-9\+\.\-]*)\:/i) + if ($str =~ /^([a-z][a-z0-9\+\.\-]{0,126})\:/i) { # seems to be an absolute URI, so can safely return "as is". return $str; } - return sprintf('%s%s', LINK_NAMESPACE, lc $str); + return LINK_NAMESPACE . lc $str; } - -=back - -=head2 Internal Functions - -These are really just internal implementations, but you can use them if you -like. - -=over - -=item C<< parse_links_to_list($response) >> - -This function is not exported by default. - -Returns an arrayref of hashrefs. Each hashref contains keys -corresponding to the link parameters of the link, and a key called -'URI' corresponding to the target of the link. - -The 'rel' and 'rev' keys are arrayrefs containing lists of -relationships. If the Link used the short form of a registered -relationship, then the short form is present on this list. Short -forms can be converted to long forms (URIs) using the -C function. - -The structure returned by this function should not be considered -stable. - -=cut - sub parse_links_to_list { my ($response) = @_; - die "Parameter to parse_links_to_list should be an HTTP::Message.\n" + croak "Parameter to parse_links_to_list should be an HTTP::Message." unless blessed($response) && $response->isa('HTTP::Message'); my $rv = []; @@ -285,18 +179,6 @@ return $rv; } -=item C<< parse_single_link($link, $base, [$default_lang]) >> - -This function is not exported by default. - -This parses a single Link header (minus the "Link:" bit itself) into a hashref -structure. A base URI must be included in case the link contains relative URIs. -A default language can be provided for the 'title' parameter. - -The structure returned by this function should not be considered stable. - -=cut - sub parse_single_link { my ($hdrv, $base, $default_lang) = @_; @@ -396,6 +278,117 @@ __END__ +=head1 NAME + +HTTP::Link::Parser - parse HTTP Link headers + +=head1 SYNOPSIS + + use HTTP::Link::Parser ':standard'; + use LWP::UserAgent; + + my $ua = LWP::UserAgent->new; + my $response = $ua->get("http://example.com/foo"); + + # Parse link headers into an RDF::Trine::Model. + my $model = parse_links_into_model($response); + + # Find data about . + my $iterator = $model->get_statements( + RDF::Trine::Node::Resource->new('http://example.com/foo'), + undef, + undef); + + while ($statement = $iterator->next) + { + # Skip data where the value is not a resource (i.e. link) + next unless $statement->object->is_resource; + + printf("Link to <%s> with rel=\"%s\".\n", + $statement->object->uri, + $statement->predicate->uri); + } + +=head1 DESCRIPTION + +HTTP::Link::Parser parses HTTP "Link" headers found in an +HTTP::Response object. Headers should conform to the format +described in RFC 5988. + +=head2 Functions + +To export all functions: + + use HTTP::Link::Parser ':all'; + +=over 4 + +=item C<< parse_links_into_model($response, [$existing_model]) >> + +Takes an L object (or in fact, any L object) +and returns an L containing link data extracted from the +response. Dublin Core is used to encode 'hreflang', 'title' and 'type' link +parameters. + +C<$existing_model> is an RDF::Trine::Model to add data to. If omitted, a +new, empty model is created. + +=item C<< parse_links_to_rdfjson($response) >> + +Returns a hashref with a structure inspired by the RDF/JSON +specification. This can be thought of as a shortcut for: + + parse_links_into_model($response)->as_hashref + +But it's faster as no intermediate model is built. + +=item C<< relationship_uri($short) >> + +This function is not exported by default. + +It may be used to convert short strings identifying relationships, +such as "next" and "prev", into longer URIs identifying the same +relationships, such as "http://www.iana.org/assignments/relation/next" +and "http://www.iana.org/assignments/relation/prev". + +If passed a string which is a URI already, simply returns it as-is. + +=back + +=head2 Internal Functions + +These are really just internal implementations, but you can use them if you +like. + +=over + +=item C<< parse_links_to_list($response) >> + +This function is not exported by default. + +Returns an arrayref of hashrefs. Each hashref contains keys +corresponding to the link parameters of the link, and a key called +'URI' corresponding to the target of the link. + +The 'rel' and 'rev' keys are arrayrefs containing lists of +relationships. If the Link used the short form of a registered +relationship, then the short form is present on this list. Short +forms can be converted to long forms (URIs) using the +C function. + +The structure returned by this function should not be considered +stable. + +=item C<< parse_single_link($link, $base, [$default_lang]) >> + +This function is not exported by default. + +This parses a single Link header (minus the "Link:" bit itself) into a hashref +structure. A base URI must be included in case the link contains relative URIs. +A default language can be provided for the 'title' parameter. + +The structure returned by this function should not be considered stable. + =back =head1 BUGS @@ -406,7 +399,10 @@ L -L, L, L. +L, +L, +L, +L. L. diff -Nru libhttp-link-parser-perl-0.101/LICENSE libhttp-link-parser-perl-0.103/LICENSE --- libhttp-link-parser-perl-0.101/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/LICENSE 2011-12-04 10:18:32.000000000 +0000 @@ -0,0 +1,32 @@ +This software is Copyright (c) 2011 by Toby Inkster . + +This is free software, licensed under: + + The MIT (X11) License + +The MIT License + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to +whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall +be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT +WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff -Nru libhttp-link-parser-perl-0.101/Makefile.PL libhttp-link-parser-perl-0.103/Makefile.PL --- libhttp-link-parser-perl-0.101/Makefile.PL 2011-02-19 22:52:16.000000000 +0000 +++ libhttp-link-parser-perl-0.103/Makefile.PL 2011-12-04 09:57:24.000000000 +0000 @@ -1,41 +1 @@ -use strict; -use warnings; - -use inc::Module::Install; - -my $dist = 'HTTP-Link-Parser'; -my $fn = "lib/$dist.pm"; $fn =~ s#-#/#g; - -name $dist; -perl_version_from $fn; -version_from $fn; -abstract_from $fn; -readme_from $fn; -author 'Toby Inkster '; -license 'mit'; - -requires 'Encode' => 0; -requires 'RDF::Trine' => '0.126'; -requires 'Scalar::Util' => 0; -test_requires 'Test::More' => '0.61'; -requires 'URI' => '1.30'; -requires 'URI::Escape' => '3.00'; - -resources( - 'homepage' => "http://search.cpan.org/dist/$dist/", - 'repository' => "http://goddamn.co.uk/viewvc/perlmods/$dist/", - 'bugtracker' => "http://rt.cpan.org/Dist/Display.html?Queue=$dist", - ); - -keywords(qw(RFC5988 Link HTTP RDF Semantics Relationships Rel)); - -write_doap_changes; -write_doap_changes_xml; - -include 'Test::Signature'; -auto_install; - -WriteAll( - 'meta' => 1, - 'sign' => 1, - ); +use inc::Module::Package 'RDF:standard 0.005'; diff -Nru libhttp-link-parser-perl-0.101/MANIFEST libhttp-link-parser-perl-0.103/MANIFEST --- libhttp-link-parser-perl-0.101/MANIFEST 2010-04-09 16:16:55.000000000 +0000 +++ libhttp-link-parser-perl-0.103/MANIFEST 2011-12-04 10:19:21.000000000 +0000 @@ -1,30 +1,31 @@ Changes -Changes.ttl -Changes.xml -Makefile.PL -MANIFEST -MANIFEST.SKIP -README -META.yml -SIGNATURE - -lib/HTTP/Link/Parser.pm - -t/00sig.t -t/01basic.t - inc/Module/AutoInstall.pm +inc/Module/Install.pm inc/Module/Install/AutoInstall.pm +inc/Module/Install/AutoManifest.pm inc/Module/Install/Base.pm inc/Module/Install/Can.pm -inc/Module/Install/DOAPChangeSets.pm inc/Module/Install/Fetch.pm inc/Module/Install/Include.pm inc/Module/Install/Makefile.pm inc/Module/Install/Metadata.pm -inc/Module/Install.pm -inc/Module/Install/ReadmeFromPod.pm +inc/Module/Install/Package.pm +inc/Module/Install/TrustMetaYml.pm inc/Module/Install/Win32.pm inc/Module/Install/WriteAll.pm -inc/Test/Signature.pm - +inc/Module/Package.pm +inc/Module/Package/Dist/RDF.pm +inc/Scalar/Util.pm +inc/Scalar/Util/PP.pm +inc/YAML/Tiny.pm +lib/HTTP/Link/Parser.pm +LICENSE +Makefile.PL +MANIFEST This list of files +META.yml +meta/changes.ttl +meta/doap.ttl +meta/makefile.ttl +README +t/01basic.t +SIGNATURE Public-key signature (added by MakeMaker) diff -Nru libhttp-link-parser-perl-0.101/MANIFEST.SKIP libhttp-link-parser-perl-0.103/MANIFEST.SKIP --- libhttp-link-parser-perl-0.101/MANIFEST.SKIP 2011-02-19 22:54:23.000000000 +0000 +++ libhttp-link-parser-perl-0.103/MANIFEST.SKIP 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -^HTTP-Link-Parser-.*\.tar\.gz$ -.svn/ -^Makefile$ -^Makefile\.old$ -^pm_to_blib$ -^blib/ -^MYMETA\. -^example diff -Nru libhttp-link-parser-perl-0.101/meta/changes.ttl libhttp-link-parser-perl-0.103/meta/changes.ttl --- libhttp-link-parser-perl-0.101/meta/changes.ttl 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/meta/changes.ttl 2011-12-04 10:00:24.000000000 +0000 @@ -0,0 +1,115 @@ +@prefix : . +@prefix dcs: . +@prefix dc: . +@prefix foaf: . +@prefix my: . +@prefix rdfs: . +@prefix toby: . +@prefix xsd: . + +my:project :release my:v_0-01 . +my:v_0-01 + a :Version ; + dc:issued "2009-10-09"^^xsd:date ; + :revision "0.01"^^xsd:string ; + :file-release ; + rdfs:label "First release"@en . + +my:project :release my:v_0-02 . +my:v_0-02 + a :Version ; + dc:issued "2009-11-24"^^xsd:date ; + :revision "0.02"^^xsd:string ; + :file-release ; + dcs:changeset [ + dcs:versus my:v_0-01 ; + rdfs:comment "Bugfixes" + ] . + +my:project :release my:v_0-03 . +my:v_0-03 + a :Version ; + dc:issued "2009-11-28"^^xsd:date ; + :revision "0.03"^^xsd:string ; + :file-release ; + dcs:changeset [ + dcs:versus my:v_0-02 ; + dcs:item + [ rdfs:label "Provide an RDF::Trine::Model"@en ; a dcs:Addition ] + ] . + +my:project :release my:v_0-04 . +my:v_0-04 + a :Version ; + dc:issued "2009-12-15"^^xsd:date ; + :revision "0.04"^^xsd:string ; + :file-release ; + dcs:changeset [ + dcs:versus my:v_0-03 ; + dcs:item + [ rdfs:label "Support the 'title*' parameter."@en ; a dcs:Addition ] + ] . + +my:project :release my:v_0-05 . +my:v_0-05 + a :Version ; + dc:issued "2010-02-07"^^xsd:date ; + :revision "0.05"^^xsd:string ; + :file-release ; + dcs:changeset [ + dcs:versus my:v_0-04 ; + dcs:item + [ rdfs:label "Rename parse_header to parse_single_link, and document this."@en ] , + [ rdfs:label "Clean up @EXPORT and @EXPORT_OK."@en ] , + [ rdfs:label "Copyright 2010."@en ; a dcs:Update ] , + [ rdfs:label "Use my new build system."@en ; a dcs:Update ] , + [ rdfs:label "General documentation improvements."@en ] + ] . + +my:project :release my:v_0-100 . +my:v_0-100 + a :Version ; + dc:issued "2010-06-26"^^xsd:date ; + :revision "0.100"^^xsd:string ; + :file-release ; + dcs:changeset [ + dcs:versus my:v_0-05 ; + dcs:item + [ rdfs:label "Let the Content-Language header provide a default language for the 'title' property."@en ; a dcs:Update ] + ] . + +my:project :release my:v_0-101 . +my:v_0-101 + a :Version ; + dc:issued "2011-02-19"^^xsd:date ; + :revision "0.101"^^xsd:string ; + :file-release ; + dcs:changeset [ + dcs:versus my:v_0-100 ; + dcs:item [ rdfs:label "Minor cleanups."@en ] ; + dcs:item [ rdfs:label "Copyright 2011."@en ; a dcs:Update ] + ] . + +my:project :release my:v_0-102 . +my:v_0-102 + a :Version ; + dc:issued "2011-11-27"^^xsd:date ; + :revision "0.102"^^xsd:string ; + :file-release ; + dcs:changeset [ + dcs:versus my:v_0-101 ; + dcs:item [ rdfs:label "use 5.010"@en ; a dcs:Update ] ; + dcs:item [ rdfs:label "Minor tidy"@en ] ; + dcs:item [ rdfs:label "Module::Package::RDF"@en ; a dcs:Packaging ] + ] . + +my:project :release my:v_0-103 . +my:v_0-103 + a :Version ; + dc:issued "2011-12-04"^^xsd:date ; + :revision "0.103"^^xsd:string ; + :file-release ; + dcs:changeset [ + dcs:versus my:v_0-102 ; + dcs:item [ rdfs:label "Newer version of Module::Package::RDF."@en ; a dcs:Packaging, dcs:Bugfix ] + ] . diff -Nru libhttp-link-parser-perl-0.101/meta/doap.ttl libhttp-link-parser-perl-0.103/meta/doap.ttl --- libhttp-link-parser-perl-0.101/meta/doap.ttl 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/meta/doap.ttl 2011-11-27 13:50:06.000000000 +0000 @@ -0,0 +1,40 @@ +@prefix : . +@prefix dcs: . +@prefix dc: . +@prefix foaf: . +@prefix my: . +@prefix rdfs: . +@prefix toby: . +@prefix xsd: . + +my:project + a :Project ; + :name "HTTP-Link-Parser" ; + :shortdesc "parse HTTP Link headers"@en ; + :programming-language "Perl" ; + :homepage ; + :download-page ; + :bug-database ; + :repository [ a :HgRepository ; :browse ] ; + :maintainer toby:i ; + :developer toby:i ; + :documenter toby:i ; + :tester toby:i ; + :created "2009-10-09"^^xsd:date ; + :license ; + :category + [ rdfs:label "RFC5988" ] , + [ rdfs:label "HTTP" ] , + [ rdfs:label "Link" ] , + [ rdfs:label "RDF" ] , + [ rdfs:label "Semantics" ] , + [ rdfs:label "Relationships" ] , + [ rdfs:label "rel" ] . + +toby:i + a foaf:Person ; + foaf:name "Toby Inkster" ; + foaf:homepage ; + foaf:page ; + foaf:mbox ; + . diff -Nru libhttp-link-parser-perl-0.101/meta/makefile.ttl libhttp-link-parser-perl-0.103/meta/makefile.ttl --- libhttp-link-parser-perl-0.101/meta/makefile.ttl 1970-01-01 00:00:00.000000000 +0000 +++ libhttp-link-parser-perl-0.103/meta/makefile.ttl 2011-11-27 13:40:08.000000000 +0000 @@ -0,0 +1,21 @@ +# This file provides instructions for packaging. + +@prefix : . + + + :perl_version_from _:main ; + :version_from _:main ; + :readme_from _:main ; + :test_requires "Test::More 0.61" ; + :requires + "Exporter", + "Carp", + "Encode", + "HTTP::Message", + "RDF::Trine 0.135", + "Scalar::Util", + "URI", + "URI::Escape". + +_:main "lib/HTTP/Link/Parser.pm" . + diff -Nru libhttp-link-parser-perl-0.101/META.yml libhttp-link-parser-perl-0.103/META.yml --- libhttp-link-parser-perl-0.101/META.yml 2011-02-19 23:08:35.000000000 +0000 +++ libhttp-link-parser-perl-0.103/META.yml 2011-12-04 10:18:37.000000000 +0000 @@ -8,34 +8,39 @@ configure_requires: ExtUtils::MakeMaker: 6.42 distribution_type: module -generated_by: 'Module::Install version 1.00' +generated_by: 'Module::Install version 1.02' keywords: - - RFC5988 - - Link - HTTP + - Link - RDF - - Semantics + - RFC5988 - Relationships - - Rel + - Semantics + - rel license: mit meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 +module_name: HTTP::Link::Parser name: HTTP-Link-Parser no_index: directory: - inc - t + - xt requires: + Carp: 0 Encode: 0 - RDF::Trine: 0.126 + Exporter: 0 + HTTP::Message: 0 + RDF::Trine: 0.135 Scalar::Util: 0 - URI: 1.30 - URI::Escape: 3.00 - perl: 5.6.0 + URI: 0 + URI::Escape: 0 + perl: 5.10.0 resources: bugtracker: http://rt.cpan.org/Dist/Display.html?Queue=HTTP-Link-Parser - homepage: http://search.cpan.org/dist/HTTP-Link-Parser/ - license: http://opensource.org/licenses/mit-license.php - repository: http://goddamn.co.uk/viewvc/perlmods/HTTP-Link-Parser/ -version: 0.101 + homepage: https://metacpan.org/release/HTTP-Link-Parser + license: http://www.opensource.org/licenses/mit-license.php + repository: https://bitbucket.org/tobyink/p5-http-link-parser +version: 0.103 diff -Nru libhttp-link-parser-perl-0.101/README libhttp-link-parser-perl-0.103/README --- libhttp-link-parser-perl-0.101/README 2011-02-19 23:08:19.000000000 +0000 +++ libhttp-link-parser-perl-0.103/README 2011-12-04 10:18:28.000000000 +0000 @@ -101,7 +101,7 @@ SEE ALSO - RDF::Trine, RDF::TrineShortcuts, HTTP::Response. + RDF::Trine, HTTP::Response, XRD::Parser, HTTP::LRDD. . diff -Nru libhttp-link-parser-perl-0.101/SIGNATURE libhttp-link-parser-perl-0.103/SIGNATURE --- libhttp-link-parser-perl-0.101/SIGNATURE 2011-02-19 23:08:41.000000000 +0000 +++ libhttp-link-parser-perl-0.103/SIGNATURE 2011-12-04 10:19:22.000000000 +0000 @@ -14,35 +14,40 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -SHA1 3c988fb72a804eec0203a422985959f02433016e Changes -SHA1 94c0c1a1d37aec7c595ac6ccf533b30883dfa369 Changes.ttl -SHA1 ee438ebd13dc548145ed43610972f70c474aea4f Changes.xml -SHA1 aa0f9c5ee40e1411176a5f1f3fb6a514f807dcb1 MANIFEST -SHA1 d25d1b98684bcebf73698a7075fd7f730aba30b2 MANIFEST.SKIP -SHA1 ff3b31c53d715863f119ba465e2e7fed32c41c9d META.yml -SHA1 da333a5596fd3e7367b7318dcf541e7e56879969 Makefile.PL -SHA1 1d415f4210ffd35d78fdaf2019ca8cbf35c16094 README -SHA1 20c73697e1713638140c719d8eaa19a275ed43a5 inc/Module/AutoInstall.pm -SHA1 7305dbe2904416e28decb05396988a5d51d578be inc/Module/Install.pm -SHA1 ca13d9875e1249f6e84f7070be8152c34837955e inc/Module/Install/AutoInstall.pm -SHA1 129960509127732258570c122042bc48615222e1 inc/Module/Install/Base.pm -SHA1 cf3356ed9a5bd2f732527ef9e7bc5ef4458c8a93 inc/Module/Install/Can.pm -SHA1 de189984fc99741cc060d1964f513e45bf6d5c74 inc/Module/Install/DOAPChangeSets.pm -SHA1 bf0a3e1977effc2832d7a813a76dce3f31b437b6 inc/Module/Install/Fetch.pm -SHA1 b501b0df59a5cd235cca473889f82c3d3429f39e inc/Module/Install/Include.pm -SHA1 b721c93ca5bc9a6aa863b49af15f1b1de6125935 inc/Module/Install/Makefile.pm -SHA1 026cc0551a0ad399d195e395b46bdf842e115192 inc/Module/Install/Metadata.pm -SHA1 a615bb050ca0b2d79bfa0224addcb83019a53b09 inc/Module/Install/ReadmeFromPod.pm -SHA1 5457015ea5a50e93465bf2dafa29feebd547f85b inc/Module/Install/Win32.pm -SHA1 051e7fa8063908befa3440508d0584a2497b97db inc/Module/Install/WriteAll.pm -SHA1 1e6399a0585817abef500c34fce676fb9b0545f0 inc/Test/Signature.pm -SHA1 f8536d3ce4070f8adafbe1133cdb4a55850d90d4 lib/HTTP/Link/Parser.pm -SHA1 dca2c83fbf0687af75b9a5b88f1eb4fac46e1b50 t/00sig.t +SHA1 8492e7612b235c9ed6bc9dd71b2fa702530853cf Changes +SHA1 440d259879a3bb3fad0211112b392e642e8a9419 LICENSE +SHA1 23ea80d648f891fd5b88d1c2e03a50bf20777146 MANIFEST +SHA1 6fe8b09bfa3579a6ca1099ed78f551b83072da1b META.yml +SHA1 c8bbc7c0230334690da1fb48d6d13df4c1631a80 Makefile.PL +SHA1 093aa0f0e2f8d1ff20fe01370db0df1552b45f84 README +SHA1 5d94bc10deff1dd74e4bc5dfa6fc015e39271f15 inc/Module/AutoInstall.pm +SHA1 40106479d4e07f379cb82ca1d69fca92e3a40f47 inc/Module/Install.pm +SHA1 34a24a530ecf0365cc02e4150b06c9bed702a441 inc/Module/Install/AutoInstall.pm +SHA1 c04f94f91fa97b9f8cfb5a36071098ab0e6c78e3 inc/Module/Install/AutoManifest.pm +SHA1 ae8aa01a73cb83da31c39e8eed1120c59cb530a1 inc/Module/Install/Base.pm +SHA1 5c87d2d0e2c08b5173259006c88ad81c24303f9d inc/Module/Install/Can.pm +SHA1 98daf9d8c50b4b7e8988cf1fa2b86044ad219533 inc/Module/Install/Fetch.pm +SHA1 f3e008113f7f49b0625083b6cc358a312854f613 inc/Module/Install/Include.pm +SHA1 e67589fcbacdda6c98ff34d8e26a004ab0467bdc inc/Module/Install/Makefile.pm +SHA1 209ea405d4ab94475661bb450d0ea042d2ec25b5 inc/Module/Install/Metadata.pm +SHA1 3b9281ddf7dd6d6f5de0a9642c69333023193c80 inc/Module/Install/Package.pm +SHA1 b86d0385e10881db680d28bde94f275e49e34a27 inc/Module/Install/TrustMetaYml.pm +SHA1 1326052d1df1065debee74f9d8583a734b9b3d00 inc/Module/Install/Win32.pm +SHA1 bb607f3715c40fc3bc1c46496587cdb215bc4fa2 inc/Module/Install/WriteAll.pm +SHA1 26d58a041cd6b3d21db98b32e8fd1841aae21204 inc/Module/Package.pm +SHA1 6b807287940754cc31a3db59f2b22e363d5525be inc/Module/Package/Dist/RDF.pm +SHA1 775bd24f2fdbb6dce51a8b5b0cdb01fccfce83c4 inc/Scalar/Util.pm +SHA1 b1b664983568bf822c327599eb88e223483ae96a inc/Scalar/Util/PP.pm +SHA1 eef6bff62046bff2ce08ba132d0b58fba30f40b4 inc/YAML/Tiny.pm +SHA1 a241c074ddddb1792915db45dc445f002267796d lib/HTTP/Link/Parser.pm +SHA1 01a4029deb0142643652dea3c5f0b66ced94f5a0 meta/changes.ttl +SHA1 ca05275d4506b1896d81f4312f858b3d925aa87e meta/doap.ttl +SHA1 d9e5623573daa21475975563684336e3c1d259e9 meta/makefile.ttl SHA1 650a7354f657fbdb5d4d5cf5386941bba8e6781f t/01basic.t -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) -iEYEARECAAYFAk1gTXkACgkQzr+BKGoqfTndHwCeLQanQWu3f4mzD361XisQolLc -GGgAn25GHvgWAuxPb3c/goQLf6/FcWbW -=dPJ5 +iEYEARECAAYFAk7bSSoACgkQzr+BKGoqfTnA9wCfdwz9dev6vo3FhL4IOhgYByPD +phEAninYXfmGKjWYXXDf4dKLTj4l0Kag +=SBf3 -----END PGP SIGNATURE----- diff -Nru libhttp-link-parser-perl-0.101/t/00sig.t libhttp-link-parser-perl-0.103/t/00sig.t --- libhttp-link-parser-perl-0.101/t/00sig.t 2011-02-19 23:01:11.000000000 +0000 +++ libhttp-link-parser-perl-0.103/t/00sig.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -use lib 'inc'; -use Test::More; -use Test::Signature; - -if (eval 'use Module::Signature 0.66; 1') -{ - plan tests => 1; - &signature_ok; -} -else -{ - plan skip_all =>'Need Module::Signature >= 0.66'; -}