Hello community, here is the log from the commit of package perl-libwww-perl checked in at Fri Jul 25 17:00:09 CEST 2008. -------- --- perl-libwww-perl/perl-libwww-perl.changes 2008-06-19 17:05:09.000000000 +0200 +++ /mounts/work_src_done/STABLE/perl-libwww-perl/perl-libwww-perl.changes 2008-07-25 15:44:29.000000000 +0200 @@ -1,0 +2,20 @@ +Fri Jul 25 15:17:53 CEST 2008 - anicka@suse.cz + +- update to 5.814 + * Typo fix. + * Add HTTP::Message::decodable() + * Use decoded_content in the synposis + * Avoid adding an empty first part in $mess->add_part() + * Get rid of all the manual dependency tests. + * Simplify the Makefile.PL (no interactivity) + * Provide DELETE method in HTTP::Request::Common + * Checkbox picks up nearby text in description of alternates + * HTML::Form::possible_values() should not returned disabled values + * File::Listing documentation claimed only 'unix' format was supported + * File::Listing only support English locales + * Make common-req.t use Test.pm + * Typo; CAN_TALK_TO_OUTSELF + * Fix up File::Listings fallback to dosftp + * File::Listing parse failure on BSD Linux based systems + +------------------------------------------------------------------- Old: ---- libwww-perl-5.813.tar.bz2 New: ---- libwww-perl-5.814.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-libwww-perl.spec ++++++ --- /var/tmp/diff_new_pack.wrH822/_old 2008-07-25 16:59:53.000000000 +0200 +++ /var/tmp/diff_new_pack.wrH822/_new 2008-07-25 16:59:53.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package perl-libwww-perl (Version 5.813) +# spec file for package perl-libwww-perl (Version 5.814) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -13,7 +13,7 @@ Name: perl-libwww-perl BuildRequires: perl-Compress-Zlib perl-HTML-Parser perl-URI -Version: 5.813 +Version: 5.814 Release: 1 Provides: libwww-perl Provides: perl_lw3 @@ -82,6 +82,23 @@ /var/adm/perl-modules/%{name} %changelog +* Fri Jul 25 2008 anicka@suse.cz +- update to 5.814 + * Typo fix. + * Add HTTP::Message::decodable() + * Use decoded_content in the synposis + * Avoid adding an empty first part in $mess->add_part() + * Get rid of all the manual dependency tests. + * Simplify the Makefile.PL (no interactivity) + * Provide DELETE method in HTTP::Request::Common + * Checkbox picks up nearby text in description of alternates + * HTML::Form::possible_values() should not returned disabled values + * File::Listing documentation claimed only 'unix' format was supported + * File::Listing only support English locales + * Make common-req.t use Test.pm + * Typo; CAN_TALK_TO_OUTSELF + * Fix up File::Listings fallback to dosftp + * File::Listing parse failure on BSD Linux based systems * Thu Jun 19 2008 anicka@suse.cz - update to 5.813 * RobotUA constructor ignores delay, use_sleep ++++++ libwww-perl-5.813.tar.bz2 -> libwww-perl-5.814.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/Changes new/libwww-perl-5.814/Changes --- old/libwww-perl-5.813/Changes 2008-06-17 22:29:42.000000000 +0200 +++ new/libwww-perl-5.814/Changes 2008-07-25 11:02:16.000000000 +0200 @@ -1,3 +1,30 @@ +2008-07-25 Gisle Aas <gisle@ActiveState.com> + + Release 5.814 + + Gisle Aas (13): + Typo fix. + Add HTTP::Message::decodable() + Use decoded_content in the synposis + Avoid adding an empty first part in $mess->add_part() + Get rid of all the manual dependency tests. + Simplify the Makefile.PL (no interactivity) + Provide DELETE method in HTTP::Request::Common [RT#37481] + Checkbox picks up nearby text in description of alternates [RT#36771] + HTML::Form::possible_values() should not returned disabled values [RT#35248] + File::Listing documentation claimed only 'unix' format was supported [RT#22021] + File::Listing only support English locales [RT#28879] + Make common-req.t use Test.pm + Typo; CAN_TALK_TO_OUTSELF + + Bill Mann (1): + Fix up File::Listings fallback to dosftp [RT#23540] + + Hans-H. Froehlich (1): + File::Listing parse failure on BSD Linux based systems [RT#26724] + + + 2008-06-17 Gisle Aas <gisle@ActiveState.com> Release 5.813 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/File/Listing.pm new/libwww-perl-5.814/lib/File/Listing.pm --- old/libwww-perl-5.813/lib/File/Listing.pm 2008-04-07 14:57:56.000000000 +0200 +++ new/libwww-perl-5.814/lib/File/Listing.pm 2008-07-25 10:58:04.000000000 +0200 @@ -1,7 +1,7 @@ package File::Listing; sub Version { $VERSION; } -$VERSION = "5.810"; +$VERSION = "5.814"; require Exporter; @ISA = qw(Exporter); @@ -114,8 +114,7 @@ use HTTP::Date qw(str2time); # A place to remember current directory from last line parsed. -use vars qw($curdir); -no strict qw(vars); +use vars qw($curdir @ISA); @ISA = qw(File::Listing); @@ -142,7 +141,7 @@ .* # Graps \D(\d+) # File size \s+ # Some space - (\w{3}\s+\d+\s+(?:\d{1,2}:\d{2}|\d{4})) # Date + (\w{3}\s+\d+\s+(?:\d{1,2}:\d{2}|\d{4})|\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}) # Date \s+ # Some more space (.*)$ # File name /x ) @@ -197,6 +196,7 @@ } else { # parse failed, check if the dosftp parse understands it + File::Listing::dosftp->init(); return(File::Listing::dosftp->line($_,$tz,$error)); } @@ -209,8 +209,7 @@ use HTTP::Date qw(str2time); # A place to remember current directory from last line parsed. -use vars qw($curdir); -no strict qw(vars); +use vars qw($curdir @ISA); @ISA = qw(File::Listing); @@ -230,11 +229,11 @@ s/\015//g; - my ($kind, $size, $date, $name); + my ($date, $size_or_dir, $name, $size); # 02-05-96 10:48AM 1415 src.slf # 09-10-96 09:18AM <DIR> sl_util - if (($date,$size_or_dir,$name) = + if (($date, $size_or_dir, $name) = /^(\d\d-\d\d-\d\d\s+\d\d:\d\d\wM) # Date and time info \s+ # Some space (<\w{3}>|\d+) # Dir or Size @@ -253,9 +252,7 @@ $type = 'f'; $size = $size_or_dir; } - return [$name, $type, $size, str2time($date, $tz), - File::Listing::file_mode($kind)]; - + return [$name, $type, $size, str2time($date, $tz), undef]; } else { return () unless defined $error; @@ -278,6 +275,8 @@ package File::Listing::apache; +use vars qw(@ISA); + @ISA = qw(File::Listing); @@ -356,6 +355,7 @@ =head1 SYNOPSIS use File::Listing qw(parse_dir); + $ENV{LANG} = "C"; # dates in non-English locales not supported for (parse_dir(`ls -l`)) { ($name, $type, $size, $mtime, $mode) = @$_; next if $type ne 'f'; # plain file @@ -369,10 +369,7 @@ =head1 DESCRIPTION This module exports a single function called parse_dir(), which can be -used to parse directory listings. Currently it only understand Unix -C<'ls -l'> and C<'ls -lR'> format. It should eventually be able to -most things you might get back from a ftp server file listing (LIST -command), i.e. VMS listings, NT listings, DOS listings,... +used to parse directory listings. The first parameter to parse_dir() is the directory listing to parse. It can be a scalar, a reference to an array of directory lines or a @@ -382,10 +379,10 @@ in the listing. If this value is undefined, then the local time zone is assumed. -The third parameter is the type of listing to assume. The values will -be strings like 'unix', 'vms', 'dos'. Currently only 'unix' is -implemented and this is also the default value. Ideally, the listing -type should be determined automatically. +The third parameter is the type of listing to assume. Currently +supported formats are 'unix', 'apache' and 'dosftp'. The default +value 'unix'. Ideally, the listing type should be determined +automatically. The fourth parameter specifies how unparseable lines should be treated. Values can be 'ignore', 'warn' or a code reference. Warn means that diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/HTML/Form.pm new/libwww-perl-5.814/lib/HTML/Form.pm --- old/libwww-perl-5.813/lib/HTML/Form.pm 2008-06-17 22:26:18.000000000 +0200 +++ new/libwww-perl-5.814/lib/HTML/Form.pm 2008-07-25 10:58:18.000000000 +0200 @@ -5,7 +5,7 @@ use Carp (); use vars qw($VERSION); -$VERSION = "5.813"; +$VERSION = "5.814"; my %form_tags = map {$_ => 1} qw(input textarea button select option); @@ -114,10 +114,6 @@ require HTML::TokeParser; my $p = HTML::TokeParser->new(ref($html) ? $html->decoded_content(ref => 1) : \$html); die "Failed to create HTML::TokeParser object" unless $p; - eval { - # optimization - $p->report_tags(qw(form input textarea select optgroup option keygen label button)); - }; my $base_uri = delete $opt{base}; my $verbose = delete $opt{verbose}; @@ -1190,13 +1186,13 @@ sub possible_values { my $self = shift; - map $_->{value}, @{$self->{menu}}; + map $_->{value}, grep !$_->{disabled}, @{$self->{menu}}; } sub other_possible_values { my $self = shift; - map $_->{value}, grep !$_->{seen}, @{$self->{menu}}; + map $_->{value}, grep !$_->{seen} && !$_->{disabled}, @{$self->{menu}}; } sub value_names { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/HTTP/Message.pm new/libwww-perl-5.814/lib/HTTP/Message.pm --- old/libwww-perl-5.813/lib/HTTP/Message.pm 2008-04-16 12:01:16.000000000 +0200 +++ new/libwww-perl-5.814/lib/HTTP/Message.pm 2008-07-25 10:58:30.000000000 +0200 @@ -2,7 +2,7 @@ use strict; use vars qw($VERSION $AUTOLOAD); -$VERSION = "5.812"; +$VERSION = "5.814"; require HTTP::Headers; require Carp; @@ -301,6 +301,26 @@ } +sub decodable +{ + # should match the Content-Encoding values that decoded_content can deal with + my $self = shift; + my @enc; + # XXX preferably we should deterine if the modules are available without loading + # them here + eval { + require Compress::Zlib; + push(@enc, "gzip", "x-gzip", "deflate"); + }; + eval { + require Compess::Bzip2; + push(@enc, "x-bzip2"); + }; + # we don't care about announcing the 'base64' and 'quoted-printable' stuff + return wantarray ? @enc : join(", ", @enc); +} + + sub as_string { my($self, $eol) = @_; @@ -353,7 +373,10 @@ my $p = HTTP::Message->new($self->remove_content_headers, $self->content("")); $self->content_type("multipart/mixed"); - $self->{_parts} = [$p]; + $self->{_parts} = []; + if ($p->headers->header_field_names || $p->content ne "") { + push(@{$self->{_parts}}, $p); + } } elsif (!exists $self->{_parts} || ref($self->{_content}) eq "SCALAR") { $self->_parts; @@ -642,6 +665,17 @@ =back +=item $mess->decodeable + +=item HTTP::Message::decodeable() + +This returns the encoding identifiers that decoded_content() can +process. In scalar context returns a comma separated string of +identifiers. + +This value is suitable for initializing the C<Accept-Encoding> request +header field. + =item $mess->parts =item $mess->parts( @parts ) @@ -656,7 +690,7 @@ If the content type of $msg is not C<multipart/*> or C<message/*> then this will return the empty list. In scalar context only the first object is returned. The returned message parts should be regarded as -are read only (future versions of this library might make it possible +read-only (future versions of this library might make it possible to modify the parent by modifying the parts). If the content type of $msg is C<message/*> then there will only be diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/HTTP/Request/Common.pm new/libwww-perl-5.814/lib/HTTP/Request/Common.pm --- old/libwww-perl-5.813/lib/HTTP/Request/Common.pm 2008-04-14 10:11:42.000000000 +0200 +++ new/libwww-perl-5.814/lib/HTTP/Request/Common.pm 2008-07-25 10:58:55.000000000 +0200 @@ -8,18 +8,19 @@ require Exporter; *import = \&Exporter::import; @EXPORT =qw(GET HEAD PUT POST); -@EXPORT_OK = qw($DYNAMIC_FILE_UPLOAD); +@EXPORT_OK = qw($DYNAMIC_FILE_UPLOAD DELETE); require HTTP::Request; use Carp(); -$VERSION = "5.811"; +$VERSION = "5.814"; my $CRLF = "\015\012"; # "\r\n" is not portable sub GET { _simple_req('GET', @_); } sub HEAD { _simple_req('HEAD', @_); } sub PUT { _simple_req('PUT' , @_); } +sub DELETE { _simple_req('DELETE', @_); } sub POST { @@ -352,6 +353,13 @@ "Content". If you really need this you must update the request returned in a separate statement. +=item DELETE $url + +=item DELETE $url, Header => Value,... + +Like GET() but the method in the request is "DELETE". This funciton +is not exported by default. + =item POST $url =item POST $url, Header => Value,... diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/HTTP/Request.pm new/libwww-perl-5.814/lib/HTTP/Request.pm --- old/libwww-perl-5.813/lib/HTTP/Request.pm 2008-04-14 10:11:18.000000000 +0200 +++ new/libwww-perl-5.814/lib/HTTP/Request.pm 2008-07-25 10:58:39.000000000 +0200 @@ -2,7 +2,7 @@ require HTTP::Message; @ISA = qw(HTTP::Message); -$VERSION = "5.811"; +$VERSION = "5.814"; use strict; @@ -87,6 +87,12 @@ *url = \&uri; # legacy +sub accept_decodable +{ + my $self = shift; + $self->header("Accept-Encoding", scalar($self->decodable)); +} + sub as_string { my $self = shift; @@ -176,6 +182,11 @@ details and other similar methods that can be used to access the headers. +=item $r->accept_decodable + +This will set the C<Accept-Encoding> header to the list of encodings +that decoded_content() can decode. + =item $r->content =item $r->content( $bytes ) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/LWP/UserAgent.pm new/libwww-perl-5.814/lib/LWP/UserAgent.pm --- old/libwww-perl-5.813/lib/LWP/UserAgent.pm 2008-06-17 22:27:05.000000000 +0200 +++ new/libwww-perl-5.814/lib/LWP/UserAgent.pm 2008-07-25 10:59:07.000000000 +0200 @@ -5,7 +5,7 @@ require LWP::MemberMixin; @ISA = qw(LWP::MemberMixin); -$VERSION = "5.813"; +$VERSION = "5.814"; use HTTP::Request (); use HTTP::Response (); @@ -864,7 +864,7 @@ my $response = $ua->get('http://search.cpan.org/'); if ($response->is_success) { - print $response->content; # or whatever + print $response->decoded_content; # or whatever } else { die $response->status_line; @@ -1018,9 +1018,7 @@ Get/set the headers object that will provide default header values for any requests sent. By default this will be an empty C<HTTP::Headers> -object. Example: - - $ua->default_headers->push_header('Accept-Language' => "no, en"); +object. =item $ua->default_header( $field ) @@ -1029,6 +1027,7 @@ This is just a short-cut for $ua->default_headers->header( $field => $value ). Example: + $ua->default_header('Accept-Encoding' => scalar HTTP::Message::decodable()); $ua->default_header('Accept-Language' => "no, en"); =item $ua->conn_cache diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/LWP.pm new/libwww-perl-5.814/lib/LWP.pm --- old/libwww-perl-5.813/lib/LWP.pm 2008-06-17 22:26:07.000000000 +0200 +++ new/libwww-perl-5.814/lib/LWP.pm 2008-07-25 10:57:45.000000000 +0200 @@ -1,6 +1,6 @@ package LWP; -$VERSION = "5.813"; +$VERSION = "5.814"; sub Version { $VERSION; } require 5.005; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/Makefile.PL new/libwww-perl-5.814/Makefile.PL --- old/libwww-perl-5.813/Makefile.PL 2008-04-16 12:20:16.000000000 +0200 +++ new/libwww-perl-5.814/Makefile.PL 2008-07-24 00:52:00.000000000 +0200 @@ -1,291 +1,55 @@ -# This -*- perl -*- script writes the Makefile for libwww-perl +#!perl -w -require 5.005; +require 5.006; use strict; -use ExtUtils::MakeMaker qw(WriteMakefile prompt); -use Config qw(%Config); +use ExtUtils::MakeMaker qw(WriteMakefile); +use Getopt::Long qw(GetOptions); -#--- Configuration section --- - -my @programs_to_install = qw(lwp-request lwp-mirror lwp-rget lwp-download); -my @request_aliases = qw(GET HEAD POST); - -#--- End Configuration - You should not have to change anything below this line - - -# Allow us to suppress all program installation with the -n (library only) -# option. This is for those that don't want to mess with the configuration -# section of this file. -use Getopt::Std; -use vars qw($opt_n); -unless (getopts("n")) { - die "Usage: $0 [-n]\n"; -} -@programs_to_install = () if $opt_n || grep /^LIB=/, @ARGV; - -# Check if we should try to run tests that talk to ourself -system(qq("$^X" talk-to-ourself)); -if ($?) { - print <<EOT; - -You appear to have a misconfigured system, so I will disable tests -that try to talk HTTP to a local server. -EOT - unlink("t/CAN_TALK_TO_OURSELF"); -} -else { - open(CAN_TALK_TO_OURSELF, ">t/CAN_TALK_TO_OURSELF") || die "Can't create CAN_TALK_TO_OURSELF: $!"; - close(CAN_TALK_TO_OURSELF); -} - -# Check if we should try to run the live tests -open(CHANGES, "Changes") || die "Can't open Changes: $!"; -my $release_date; -while (<CHANGES>) { - if (/^(\d{4}-\d{2}-\d{2})\D/) { - $release_date = $1; - last; - } -} -close(CHANGES); -die "Can't figure out release date" unless $release_date; -#print "Release date: $release_date\n"; - -my $some_time_ago = sprintf "%04d-%02d-%02d", - sub { ($_[5]+1900, $_[4]+1, $_[3])}->(localtime(time - 45 * 24*60*60)); -if ($some_time_ago lt $release_date) { - # Check if we have internet connection - require IO::Socket; - my $s = IO::Socket::INET->new(PeerAddr => "www.google.com:80", - Timeout => 10, - ); - if ($s) { - # XXX could try to send a GET to it??? - close($s); - - print <<EOT; - -You appear to be directly connected to the Internet. I have some tests -that tries to access some sites on the net to verify that the new HTTP/1.1 -support works as it should. - -EOT - - if (prompt("Do you want to enable these tests?", "y") =~ /^y/i) { - open(ENABLED, ">t/live/ENABLED") || die "Can't enable: $!"; - close(ENABLED); - - # Figure out if the compress lib works and signal that with - # a file for the test suite to find. We don't want the - # test script to do this 'require' itself because we want - # to test that the module loads it on demand as it should. - eval { - require Compress::Zlib; - Compress::Zlib->VERSION(1.10); - open(ZLIB_OK, ">t/live/ZLIB_OK") || die "Can't create ZLIB_OK: $!"; - print ZLIB_OK "$Compress::Zlib::VERSION\n"; - close(ZLIB_OK); - }; - if ($@) { - #warn $@; - unlink("t/live/ZLIB_OK"); - } - } - else { - unlink("t/live/ENABLED"); - } - } -} - -if (@programs_to_install) { - print <<EOT; - -This package comes with some sample programs that I can try -to install in $Config{installscript}. - - Note that you can avoid these questions by passing - the '-n' option to 'Makefile.PL'. - -EOT - my @tmp; - for (@programs_to_install) { - if (prompt("Do you want to install $_?", "y") =~ /^y/) { - push(@tmp, $_); - } - } - @programs_to_install = @tmp; -} - -if (grep($_ eq 'lwp-request', @programs_to_install) && @request_aliases) { - print <<EOT; - -The lwp-request program will use the name it is invoked with to -determine what HTTP method to use. I can set up alias for the most -common HTTP methods. These alias are also installed in -$Config{installscript}. - -EOT - my @tmp; - for my $alias (@request_aliases) { - my $default = "n"; - if (prompt("Do you want to install the $alias alias?", $default) =~ /^y/) { - push(@tmp, $alias); - } - } - @request_aliases = @tmp; -} -else { - @request_aliases = (); -} - -# Check for non-standard modules that are used by this library. -$| = 1; -my $missing_modules = 0; - -print "\nChecking for URI..........."; -eval { - require URI; - URI->VERSION(1.10); -}; -if ($@) { - print " failed\n"; - $missing_modules++; - print <<EOT; -$@ -The URI module must be installed. WWW without URIs would not -be that great :-) - -EOT - sleep(2); # Don't hurry too much -} -else { - print " ok\n"; -} -print "Checking for HTML::Parser.."; -eval { - require HTML::HeadParser; - HTML::Parser->VERSION(3.33); +GetOptions(\my %opt, + 'aliases', + 'no-programs|n', + 'live-tests', +) or do { + die "Usage: $0 [--aliases] [--no-programs] [--live-tests]\n"; }; -if ($@) { - print " failed\n"; - $missing_modules++; - print <<EOT; -$@ -The HTML::Parser is needed to extract correct base URI information from -HTML so that we can resolve relative links correctly. The HTML::Form -module also needs HTML::TokeParser to work. -EOT - sleep(2); # Don't hurry too much -} -else { - print " ok\n"; -} - -print "Checking for MIME::Base64.."; -eval { - require MIME::Base64; - #MIME::Base64->VERSION('2.00'); -}; -if ($@) { - print " failed\n"; - $missing_modules++; - print <<EOT; -$@ -The Base64 encoding is used in authentication headers in HTTP. +my @prog; +push(@prog, qw(lwp-request lwp-mirror lwp-rget lwp-download)) + unless $opt{'no-programs'} || grep /^LIB=/, @ARGV; -EOT - sleep(2); # Don't hurry too much -} -else { - print " ok\n"; -} - -print "Checking for Net::FTP......"; -eval { - require Net::FTP; - Net::FTP->VERSION('2.58'); -}; -if ($@) { - print " failed\n"; - $missing_modules++; - print <<EOT; -$@ -The libwww-perl library normally use the Net::FTP module when -accessing ftp servers. You would have to install this package or -configure your application to use a proxy server for making ftp -requests work. Net::FTP is part of the 'libnet' distribution. - -EOT - sleep(2); # Don't hurry too much -} -else { - print " ok\n"; -} - -print "Checking for Digest::MD5 .."; -eval { - require Digest::MD5; -}; -if ($@) { - print " failed\n"; - $missing_modules++; - print <<EOT; -$@ -The Digest::MD5 library is needed if you want to be able use the -experimental "Digest Access Authentication" scheme. Since very few -servers implement this authentication scheme, you should normally not -worry too much about this. - -EOT -} -else { - print " ok\n"; -} - -print <<EOT if $missing_modules; -The missing modules can be obtained from CPAN. Visit -<URL:http://www.perl.com/CPAN/> to find a CPAN site near you. - -EOT - -print "\n"; - -if (@request_aliases) { +if ($opt{'aliases'} && grep(/lwp-request/, @prog)) { require File::Copy; - for (@request_aliases) { + for (qw(GET HEAD POST)) { File::Copy::copy("bin/lwp-request", "bin/$_") || die "Can't copy bin/$_"; - chmod(0755, "bin/$_"); - push(@programs_to_install, $_); + chmod(0755, "bin/$_"); + push(@prog, $_); } } - -# Ok, now it is time to really generate the Makefile +system($^X, "talk-to-ourself"); +flag_file("t/CAN_TALK_TO_OURSELF", $? == 0); +flag_file("t/live/ENABLED", $opt{'live-tests'}); WriteMakefile( - NAME => 'LWP', - DISTNAME => 'libwww-perl', - VERSION_FROM => 'lib/LWP.pm', - EXE_FILES => [ map "bin/$_", @programs_to_install ], - PREREQ_PM => { 'URI' => "1.10", - 'MIME::Base64' => "2.1", - 'Net::FTP' => "2.58", - 'HTML::Tagset' => 0, - 'HTML::Parser' => "3.33", - 'Digest::MD5' => 0, - 'Compress::Zlib' => "1.10", - }, - 'clean' => { FILES => join(" ", map "bin/$_", @request_aliases) }, - 'dist' => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, + NAME => 'LWP', + DISTNAME => 'libwww-perl', + VERSION_FROM => 'lib/LWP.pm', + EXE_FILES => [ map "bin/$_", @prog ], + PREREQ_PM => { + 'URI' => "1.10", + 'MIME::Base64' => "2.1", + 'Net::FTP' => "2.58", + 'HTML::Tagset' => 0, + 'HTML::Parser' => "3.33", + 'Digest::MD5' => 0, + 'Compress::Zlib' => "1.10", + }, + clean => { FILES => join(" ", map "bin/$_", grep /^[A-Z]+$/, @prog) }, ); +exit; - -package MY; - -# What happens when we say 'make test' -sub test +sub MY::test { q( TEST_VERBOSE=0 @@ -297,22 +61,12 @@ } -# Determine things that should *not* be installed -sub libscan -{ - my($self, $path) = @_; - return '' if $path =~ m/\.(pl|dtd|sgml)$/; - return '' if $path =~ m:\bCVS/:; - return '' if $path =~ m/~$/; - $path; -} - -# Pass libwww-perl version number to pod2man -sub manifypods -{ - my $self = shift; - my $ver = $self->{VERSION} || ""; - local($_) = $self->SUPER::manifypods(@_); - s/pod2man\s*$/pod2man --release libwww-perl-$ver/m; - $_; +sub flag_file { + my($file, $create) = @_; + if ($create) { + open(my $fh, ">", $file) || die "Can't create $file: $!"; + } + else { + unlink($file); + } } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/MANIFEST new/libwww-perl-5.814/MANIFEST --- old/libwww-perl-5.813/MANIFEST 2008-06-17 22:34:49.000000000 +0200 +++ new/libwww-perl-5.814/MANIFEST 2008-07-25 11:06:43.000000000 +0200 @@ -80,6 +80,7 @@ t/base/message-parts.t Test HTTP::Message parts method t/base/negotiate.t Test HTTP::Negotiation module t/base/protocols.t Test protocol methods of LWP::UserAgent +t/base/request.t Test additional HTTP::Request methods t/base/response.t Test additional HTTP::Response methods t/base/status.t Test HTTP::Status module t/base/ua.t Basic LWP::UserAgent tests diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/META.yml new/libwww-perl-5.814/META.yml --- old/libwww-perl-5.813/META.yml 2008-06-17 22:34:49.000000000 +0200 +++ new/libwww-perl-5.814/META.yml 2008-07-25 11:06:43.000000000 +0200 @@ -1,6 +1,6 @@ --- #YAML:1.0 name: libwww-perl -version: 5.813 +version: 5.814 abstract: ~ license: ~ author: ~ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/README new/libwww-perl-5.814/README --- old/libwww-perl-5.813/README 2008-04-16 12:20:48.000000000 +0200 +++ new/libwww-perl-5.814/README 2008-07-23 17:05:06.000000000 +0200 @@ -10,44 +10,28 @@ contain modules that are of more general use and even classes that help you implement simple HTTP servers. -There are actually two versions of libwww-perl: one for Perl4, and one -for Perl5. Both have a similar architecture, loosely based on the CERN -Library of Common Code (nowadays known as 'w3c-libwww'). - -The Perl4 version was maintained by Roy Fielding, and was the -basis for tools such as MOMSpider. The perl4 version of libwww-perl -and much more information about its libraries can still be found at: -http://www.ics.uci.edu/pub/websoft/libwww-perl/ - -The Perl5 version (this package) is a complete rewrite for Perl5: the -code is organized in Modules, provides an Object Oriented API, and -offers lots of extended functionality. - - PREREQUISITES In order to install and use this package you will need Perl version -5.005 or better. Some modules within this package depend on other +5.6 or better. Some modules within this package depend on other packages that are distributed separately from Perl. We recommend that you have the following packages installed before you install libwww-perl: URI MIME-Base64 + HTML-Tagset HTML-Parser libnet Digest-MD5 Compress-Zlib -These packages should be available on CPAN (see below). - If you want to access sites using the https protocol, then you need to install the Crypt::SSLeay or the IO::Socket::SSL module. The README.SSL file will tell you more about how libwww-perl supports SSL. - INSTALLATION You install libwww-perl using the normal perl module distribution drill: @@ -57,29 +41,16 @@ make test make install -You can edit the configuration section of Makefile.PL to select which -programs to install in addition to the library itself. If you don't -want to install any programs (only the library files) and don't want -to mess with the Makefile.PL then pass the '-n' option to Makefile.PL: - - perl Makefile.PL -n - -If you want to install a private copy of libwww-perl in your home -directory, then you should try to produce the initial Makefile with -something like this command: - - perl Makefile.PL LIB=~/perl - -The Makefile.PL program will start out by checking your perl -installation for a few packages that are recommended to be installed -together with libwww-perl. +If you don't want to install any programs (only the library files) then +pass the '--no-programs' option to Makefile.PL: + perl Makefile.PL --no-programs DOCUMENTATION -See ./lib/LWP.pm for an overview of the library. See ./ChangeLog for -recent changes. +See the lib/LWP.pm file for an overview of the library. See the +Changes file for recent changes. POD style documentation is included in all modules and scripts. These are normally converted to manual pages and installed as part of the @@ -88,18 +59,11 @@ directly. - SUPPORT -Questions about how to use this library should be directed to the -comp.lang.perl.modules USENET Newsgroup. Bug reports and suggestions -for improvements can be sent to the <libwww@perl.org> mailing -list. This mailing list is also the place for general discussions and -development of the libwww-perl package. - -You can join the mailing list by sending a message to -<libwww-subscribe@perl.org>. - ^^^^^^^^^^ +Bug reports and suggestions for improvements can be sent to the +<libwww@perl.org> mailing list. This mailing list is also the place +for general discussions and development of the libwww-perl package. AVAILABILITY @@ -118,7 +82,6 @@ http://gitorious.org/projects/libwww-perl - COPYRIGHT � 1995-2008 Gisle Aas. All rights reserved. diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/base/common-req.t new/libwww-perl-5.814/t/base/common-req.t --- old/libwww-perl-5.813/t/base/common-req.t 2008-04-09 11:10:01.000000000 +0200 +++ new/libwww-perl-5.814/t/base/common-req.t 2008-07-24 00:42:37.000000000 +0200 @@ -1,37 +1,39 @@ -print "1..22\n"; +#perl -w + +use Test; +plan tests => 51; use HTTP::Request::Common; $r = GET 'http://www.sn.no/'; print $r->as_string; -print "not " unless $r->method eq "GET" and $r->url eq "http://www.sn.no/"; -print "ok 1\n"; +ok($r->method, "GET"); +ok($r->url, "http://www.sn.no/"); $r = HEAD "http://www.sn.no/", If_Match => 'abc', From => 'aas@sn.no'; print $r->as_string; -print "not " unless $r->method eq "HEAD" and $r->url->eq("http://www.sn.no"); -print "ok 2\n"; +ok($r->method, "HEAD"); +ok($r->url->eq("http://www.sn.no")); -print "not " unless $r->header('If-Match') eq "abc" and $r->header("from") eq "aas\@sn.no"; -print "ok 3\n"; +ok($r->header('If-Match'), "abc"); +ok($r->header("from"), "aas\@sn.no"); $r = PUT "http://www.sn.no", Content => 'foo'; print $r->as_string, "\n"; -print "not " unless $r->method eq "PUT" and $r->uri->host eq "www.sn.no"; -print "ok 4\n"; +ok($r->method, "PUT"); +ok($r->uri->host, "www.sn.no"); -print "not " if defined($r->header("Content")); -print "ok 5\n"; +ok(!defined($r->header("Content"))); -print "not " unless ${$r->content_ref} eq "foo" and - $r->content eq "foo" and $r->content_length == 3; -print "ok 6\n"; +ok(${$r->content_ref}, "foo"); +ok($r->content, "foo"); +ok($r->content_length, 3); #--- Test POST requests --- @@ -43,26 +45,22 @@ bar => 'foo'; print $r->as_string, "\n"; -print "not " unless $r->method eq "POST" and - $r->content_type eq "application/x-www-form-urlencoded" and - $r->content_length == 58 and - $r->header("bar") eq "foo"; -print "ok 7\n"; - -print "not " unless $r->content eq "foo=bar%3Bbaz&baz=a&baz=b&baz=c&foo=zoo%3D%26&space+=+%2B+"; -print "ok 8\n"; +ok($r->method, "POST"); +ok($r->content_type, "application/x-www-form-urlencoded"); +ok($r->content_length, 58); +ok($r->header("bar"), "foo"); +ok($r->content, "foo=bar%3Bbaz&baz=a&baz=b&baz=c&foo=zoo%3D%26&space+=+%2B+"); $r = POST "mailto:gisle\@aas.no", Subject => "Heisan", Content_Type => "text/plain", Content => "Howdy\n"; -print $r->as_string; +#print $r->as_string; -print "not " unless $r->method eq "POST" and - $r->header("Subject") eq "Heisan" and - $r->content eq "Howdy\n" and - $r->content_type eq "text/plain"; -print "ok 9\n"; +ok($r->method, "POST"); +ok($r->header("Subject"), "Heisan"); +ok($r->content, "Howdy\n"); +ok($r->content_type, "text/plain"); # # POST for File upload @@ -80,15 +78,14 @@ born => '1964', file => [$file], ]; -print $r->as_string; +#print $r->as_string; unlink($file) or warn "Can't unlink $file: $!"; -print "not " unless $r->method eq "POST" and - $r->url->path eq "/survey.cgi" and - $r->content_type eq "multipart/form-data" and - $r->header(Content_type) =~ /boundary="?([^"]+)"?/; -print "ok 10\n"; +ok($r->method, "POST"); +ok($r->url->path, "/survey.cgi"); +ok($r->content_type, "multipart/form-data"); +ok($r->header(Content_type) =~ /boundary="?([^"]+)"?/); $boundary = $1; $c = $r->content; @@ -96,54 +93,40 @@ @c = split(/--\Q$boundary/, $c); print "$c[5]\n"; -print "not " unless @c == 7 and $c[6] =~ /^--\n/; # 5 parts + header & trailer -print "ok 11\n"; +ok(@c == 7 and $c[6] =~ /^--\n/); # 5 parts + header & trailer + +ok($c[2] =~ /^Content-Disposition:\s*form-data;\s*name="email"/m); +ok($c[2] =~ /^gisle\@aas.no$/m); -print "not " unless $c[2] =~ /^Content-Disposition:\s*form-data;\s*name="email"/m and - $c[2] =~ /^gisle\@aas.no$/m; -print "ok 12\n"; - -print "not " unless $c[5] =~ /^Content-Disposition:\s*form-data;\s*name="file";\s*filename="$file"/m and - $c[5] =~ /^Content-Type:\s*text\/plain$/m and - $c[5] =~ /^foo\nbar\nbaz/m; -print "ok 13\n"; +ok($c[5] =~ /^Content-Disposition:\s*form-data;\s*name="file";\s*filename="$file"/m); +ok($c[5] =~ /^Content-Type:\s*text\/plain$/m); +ok($c[5] =~ /^foo\nbar\nbaz/m); $r = POST 'http://www.perl.org/survey.cgi', [ file => [ undef, "xxy\"", Content_type => "text/html", Content => "<h1>Hello, world!</h1>" ]], Content_type => 'multipart/form-data'; print $r->as_string; -if($^O eq "MacOS") { - print "not " unless $r->content =~ /^--\S+\015\012Content-Disposition:\s*form-data;\s*name="file";\s*filename="xxy\\"/m and - $r->content =~ /^\012Content-Type: text\/html/m and - $r->content =~ /^\012<h1>Hello, world/m; -} -else { - print "not " unless $r->content =~ /^--\S+\015\012Content-Disposition:\s*form-data;\s*name="file";\s*filename="xxy\\"/m and - $r->content =~ /^Content-Type: text\/html/m and - $r->content =~ /^<h1>Hello, world/m; -} -print "ok 14\n"; - +ok($r->content =~ /^--\S+\015\012Content-Disposition:\s*form-data;\s*name="file";\s*filename="xxy\\"/m); +ok($r->content =~ /^Content-Type: text\/html/m); +ok($r->content =~ /^<h1>Hello, world/m); $r = POST 'http://www.perl.org/survey.cgi', Content_type => 'multipart/form-data', Content => [ file => [ undef, undef, Content => "foo"]]; -print $r->as_string; +#print $r->as_string; -print "not " if $r->content =~ /filename=/; -print "ok 15\n"; +ok($r->content !~ /filename=/); # The POST routine can now also take a hash reference. my %hash = (foo => 42, bar => 24); $r = POST 'http://www.perl.org/survey.cgi', \%hash; -print $r->as_string, "\n"; -print "not " unless $r->content =~ /foo=42/ && - $r->content =~ /bar=24/ && - $r->content_type eq "application/x-www-form-urlencoded" && - $r->content_length == 13; -print "ok 16\n"; +#print $r->as_string, "\n"; +ok($r->content =~ /foo=42/); +ok($r->content =~ /bar=24/); +ok($r->content_type, "application/x-www-form-urlencoded"); +ok($r->content_length, 13); # @@ -169,16 +152,14 @@ ]; print $r->as_string, "\n"; -print "not " unless $r->method eq "POST" and - $r->url->path eq "/survey.cgi" and - $r->content_type eq "multipart/form-data" and - $r->header(Content_type) =~ /boundary="?([^"]+)"?/ and - ref($r->content) eq "CODE"; -print "ok 17\n"; +ok($r->method, "POST"); +ok($r->url->path, "/survey.cgi"); +ok($r->content_type, "multipart/form-data"); +ok($r->header(Content_type) =~ /boundary="?([^"]+)"?/); $boundary = $1; +ok(ref($r->content), "CODE"); -print "not " unless length($boundary) > 10; -print "ok 18\n"; +ok(length($boundary) > 10); $code = $r->content; my $chunk; @@ -194,12 +175,11 @@ print int(@chunks), " chunks, total size is ", length($_), " bytes\n"; # should be close to expected size and number of chunks -print "not " unless abs(@chunks - 15 < 3) and - abs(length($_) - 26589) < 20; -print "ok 19\n"; +ok(abs(@chunks - 15 < 3)); +ok(abs(length($_) - 26589) < 20); $r = POST 'http://www.example.com'; -print "not " unless $r->as_string eq <<EOT; print "ok 20\n"; +ok($r->as_string, <<EOT); POST http://www.example.com Content-Length: 0 Content-Type: application/x-www-form-urlencoded @@ -207,7 +187,7 @@ EOT $r = POST 'http://www.example.com', Content_Type => 'form-data', Content => []; -print "not " unless $r->as_string eq <<EOT; print "ok 21\n"; +ok($r->as_string, <<EOT); POST http://www.example.com Content-Length: 0 Content-Type: multipart/form-data; boundary=none @@ -216,10 +196,12 @@ $r = POST 'http://www.example.com', Content_Type => 'form-data'; #print $r->as_string; -print "not " unless $r->as_string eq <<EOT; print "ok 22\n"; +ok($r->as_string, <<EOT); POST http://www.example.com Content-Length: 0 Content-Type: multipart/form-data EOT +$r = HTTP::Request::Common::DELETE 'http://www.example.com'; +ok($r->method, "DELETE"); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/base/listing.t new/libwww-perl-5.814/t/base/listing.t --- old/libwww-perl-5.813/t/base/listing.t 2008-04-07 14:57:58.000000000 +0200 +++ new/libwww-perl-5.814/t/base/listing.t 2008-07-23 21:12:46.000000000 +0200 @@ -1,4 +1,4 @@ -print "1..6\n"; +print "1..10\n"; use File::Listing; @@ -84,3 +84,21 @@ $mode == 0100644 || print "not "; print "ok 6\n"; + +@dir = parse_dir(<<'EOT'); +drwxr-xr-x 21 root root 704 2007-03-22 21:48 dir +EOT + +print "not " unless @dir == 1; +print "ok 7\n"; + +print "not " unless $dir[0][0] eq "dir"; +print "ok 8\n"; + +print "not " unless $dir[0][1] eq "d"; +print "ok 9\n"; + +$timestring = scalar(localtime($dir[0][3])); +print "# $timestring\n"; +print "not " unless $timestring =~ /^Thu Mar 22 21:48/; +print "ok 10\n"; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/base/message.t new/libwww-perl-5.814/t/base/message.t --- old/libwww-perl-5.813/t/base/message.t 2008-04-16 12:12:41.000000000 +0200 +++ new/libwww-perl-5.814/t/base/message.t 2008-07-16 12:58:13.000000000 +0200 @@ -3,7 +3,7 @@ use strict; use Test qw(plan ok skip); -plan tests => 102; +plan tests => 104; require HTTP::Message; use Config qw(%Config); @@ -281,6 +281,22 @@ EOT $m = HTTP::Message->new; +$m->add_part(HTTP::Message->new([a=>[1..3]], "a")); +$str = $m->as_string; +$str =~ s/\r/<CR>/g; +ok($str, <<EOT); +Content-Type: multipart/mixed; boundary=xYzZY + +--xYzZY<CR> +A: 1<CR> +A: 2<CR> +A: 3<CR> +<CR> +a<CR> +--xYzZY--<CR> +EOT + +$m = HTTP::Message->new; $m->content_ref(\my $foo); ok($m->content_ref, \$foo); $foo = "foo"; @@ -346,6 +362,8 @@ ok($@ || "", ""); ok($m->content, "H4sICFWAq0ECA3h4eAB7v3u/R6ZCSUZqUarCoxm7uAAZKHXiEAAAAA==\n"); +ok(grep { $_ eq "gzip" } $m->decodable); + my $tmp = MIME::Base64::decode($m->content); $m->content($tmp); $m->header("Content-Encoding", "gzip"); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/base/request.t new/libwww-perl-5.814/t/base/request.t --- old/libwww-perl-5.813/t/base/request.t 1970-01-01 01:00:00.000000000 +0100 +++ new/libwww-perl-5.814/t/base/request.t 2008-07-15 12:24:15.000000000 +0200 @@ -0,0 +1,26 @@ +# Test extra HTTP::Request methods. Basic operation is tested in the +# message.t test suite. + +use strict; + +use Test; +plan tests => 7; + +use HTTP::Request; + +my $req = HTTP::Request->new(GET => "http://www.example.com"); +$req->accept_decodable; + +ok($req->method, "GET"); +ok($req->uri, "http://www.example.com"); +ok($req->header("Accept-Encoding") =~ /\bgzip\b/); # assuming Compress::Zlib is there + +($_ = $req->as_string) =~ s/^/# /gm; +print; + +ok($req->method("DELETE"), "GET"); +ok($req->method, "DELETE"); + +ok($req->uri("http:"), "http://www.example.com"); +ok($req->uri, "http:"); + diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/html/form.t new/libwww-perl-5.814/t/html/form.t --- old/libwww-perl-5.813/t/html/form.t 2008-04-09 10:23:49.000000000 +0200 +++ new/libwww-perl-5.814/t/html/form.t 2008-07-23 20:32:09.000000000 +0200 @@ -3,7 +3,7 @@ use strict; use Test qw(plan ok); -plan tests => 124; +plan tests => 127; use HTML::Form; @@ -535,3 +535,48 @@ ok(join(":", $f->find_input("r2")->value_names), "two"); ok(join(":", $f->find_input("r3")->value_names), "nested"); ok(join(":", $f->find_input("r4")->value_names), "before and after"); + +$f = HTML::Form->parse(<<EOT, "http://www.example.com"); +<form> + <table> + <TR> + <TD align="left" colspan="2"> + Keep me informed on the progress of this election + <INPUT type="checkbox" id="keep_informed" name="keep_informed" value="yes" checked> + </TD> + </TR> + <TR> + <TD align=left colspan=2> + <BR><B>The place you are registered to vote:</B> + </TD> + </TR> + <TR> + <TD valign="middle" height="2" align="right"> + <A name="Note1back">County or Parish</A> + </TD> + <TD align="left"> + <INPUT type="text" id="reg_county" size="40" name="reg_county" value=""> + </TD> + <TD align="left" width="10"> + <A href="#Note2" class="c2" tabindex="-1">Note 2</A> + </TD> + </TR> + </table> +</form> +EOT +ok(join(":", $f->find_input("keep_informed")->value_names), "off:"); + +$f = HTML::Form->parse(<<EOT, "http://www.example.com"); +<form action="test" method="post"> +<select name="test"> +<option value="1">One</option> +<option value="2">Two</option> +<option disabled="disabled" value="3">Three</option> +</select> +<input type="submit" name="submit" value="Go"> +</form> +</body> +</html> +EOT +ok(join(":", $f->find_input("test")->possible_values), "1:2"); +ok(join(":", $f->find_input("test")->other_possible_values), "2"); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/live/jigsaw-te.t new/libwww-perl-5.814/t/live/jigsaw-te.t --- old/libwww-perl-5.813/t/live/jigsaw-te.t 2008-04-07 14:57:58.000000000 +0200 +++ new/libwww-perl-5.814/t/live/jigsaw-te.t 2008-07-23 14:40:41.000000000 +0200 @@ -1,20 +1,5 @@ #!perl -w -my $zlib_ok; -for (("", "live/", "t/live/")) { - if (-f $_ . "ZLIB_OK") { - $zlib_ok++; - last; - } -} - -unless ($zlib_ok) { - print "1..0\n"; - print "Apparently no working ZLIB installed\n"; - exit; -} - - print "1..4\n"; use strict; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de