Hello community, here is the log from the commit of package perl-Mojolicious for openSUSE:Factory checked in at 2018-02-16 21:45:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old) and /work/SRC/openSUSE:Factory/.perl-Mojolicious.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Mojolicious" Fri Feb 16 21:45:26 2018 rev:89 rq:577180 version:7.66 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes 2018-02-13 10:31:17.761001959 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Mojolicious.new/perl-Mojolicious.changes 2018-02-16 21:45:27.953370434 +0100 @@ -1,0 +2,16 @@ +Thu Feb 15 06:41:22 UTC 2018 - [email protected] + +- updated to 7.66 + see /usr/share/doc/packages/perl-Mojolicious/Changes + + 7.66 2018-02-13 + - This release contains fixes for security issues, everybody should upgrade! + - Removed origin attribute of Mojo::Cookie::Response. + - Removed deprecated data and remaining methods from Mojo::IOLoop::Delay. + - Added host_only attribute to Mojo::Cookie::Response. + - Improved all method in Mojo::Promise to resolve with no results if no + promises have been passed. + - Fixed a bug in Mojo::UserAgent::CookieJar where old cookies could be leaked. + (exp-innit, sri) + +------------------------------------------------------------------- Old: ---- Mojolicious-7.65.tar.gz New: ---- Mojolicious-7.66.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Mojolicious.spec ++++++ --- /var/tmp/diff_new_pack.eofnf8/_old 2018-02-16 21:45:28.765341150 +0100 +++ /var/tmp/diff_new_pack.eofnf8/_new 2018-02-16 21:45:28.769341005 +0100 @@ -17,7 +17,7 @@ Name: perl-Mojolicious -Version: 7.65 +Version: 7.66 Release: 0 %define cpan_name Mojolicious Summary: Real-time web framework ++++++ Mojolicious-7.65.tar.gz -> Mojolicious-7.66.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/Changes new/Mojolicious-7.66/Changes --- old/Mojolicious-7.65/Changes 2018-02-11 14:19:36.000000000 +0100 +++ new/Mojolicious-7.66/Changes 2018-02-13 18:03:58.000000000 +0100 @@ -1,4 +1,14 @@ +7.66 2018-02-13 + - This release contains fixes for security issues, everybody should upgrade! + - Removed origin attribute of Mojo::Cookie::Response. + - Removed deprecated data and remaining methods from Mojo::IOLoop::Delay. + - Added host_only attribute to Mojo::Cookie::Response. + - Improved all method in Mojo::Promise to resolve with no results if no + promises have been passed. + - Fixed a bug in Mojo::UserAgent::CookieJar where old cookies could be leaked. + (exp-innit, sri) + 7.65 2018-02-11 - Added EXPERIMENTAL timing->begin, timing->elapsed, timing->rps and timing->server_timing helpers to Mojolicious::Plugin::DefaultHelpers. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/META.json new/Mojolicious-7.66/META.json --- old/Mojolicious-7.65/META.json 2018-02-11 22:54:53.000000000 +0100 +++ new/Mojolicious-7.66/META.json 2018-02-14 09:54:38.000000000 +0100 @@ -58,6 +58,6 @@ }, "x_IRC" : "irc://irc.perl.org/#mojo" }, - "version" : "7.65", + "version" : "7.66", "x_serialization_backend" : "JSON::PP version 2.97001" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/META.yml new/Mojolicious-7.66/META.yml --- old/Mojolicious-7.65/META.yml 2018-02-11 22:54:53.000000000 +0100 +++ new/Mojolicious-7.66/META.yml 2018-02-14 09:54:38.000000000 +0100 @@ -31,5 +31,5 @@ homepage: http://mojolicious.org license: http://www.opensource.org/licenses/artistic-license-2.0 repository: https://github.com/kraih/mojo.git -version: '7.65' +version: '7.66' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/lib/Mojo/Cookie/Response.pm new/Mojolicious-7.66/lib/Mojo/Cookie/Response.pm --- old/Mojolicious-7.65/lib/Mojo/Cookie/Response.pm 2018-01-03 13:49:50.000000000 +0100 +++ new/Mojolicious-7.66/lib/Mojo/Cookie/Response.pm 2018-02-13 17:35:27.000000000 +0100 @@ -4,7 +4,7 @@ use Mojo::Date; use Mojo::Util qw(quote split_cookie_header); -has [qw(domain expires httponly max_age origin path secure)]; +has [qw(domain expires host_only httponly max_age path secure)]; my %ATTRS = map { $_ => 1 } qw(domain expires httponly max-age path secure); @@ -100,6 +100,14 @@ Expiration for cookie. +=head2 host_only + + my $bool = $cookie->host_only; + $cookie = $cookie->host_only($bool); + +Host-only flag, indicating that the canonicalized request-host is identical to +the cookie's L</"domain">. + =head2 httponly my $bool = $cookie->httponly; @@ -115,13 +123,6 @@ Max age for cookie. -=head2 origin - - my $origin = $cookie->origin; - $cookie = $cookie->origin('mojolicious.org'); - -Origin of the cookie. - =head2 path my $path = $cookie->path; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/lib/Mojo/IOLoop/Delay.pm new/Mojolicious-7.66/lib/Mojo/IOLoop/Delay.pm --- old/Mojolicious-7.65/lib/Mojo/IOLoop/Delay.pm 2018-01-03 13:49:52.000000000 +0100 +++ new/Mojolicious-7.66/lib/Mojo/IOLoop/Delay.pm 2018-02-13 17:54:49.000000000 +0100 @@ -4,8 +4,6 @@ # DEPRECATED! use base 'Mojo::EventEmitter'; -use Mojo::Util 'deprecated'; - sub begin { my ($self, $offset, $len) = @_; $self->{pending}++; @@ -13,23 +11,8 @@ return sub { $self->_step($id, $offset // 1, $len, @_) }; } -# DEPRECATED! -sub data { - deprecated 'Mojo::IOLoop::Delay::data is DEPRECATED'; - Mojo::Util::_stash(data => @_); -} - sub pass { $_[0]->begin->(@_) } -# DEPRECATED! -sub remaining { - deprecated 'Mojo::IOLoop::Delay::remaining is DEPRECATED'; - my $self = shift; - return $self->{steps} ||= [] unless @_; - $self->{steps} = shift; - return $self; -} - sub steps { my ($self, @steps) = @_; $self->{steps} = \@steps; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/lib/Mojo/Promise.pm new/Mojolicious-7.66/lib/Mojo/Promise.pm --- old/Mojolicious-7.65/lib/Mojo/Promise.pm 2018-02-03 15:24:40.000000000 +0100 +++ new/Mojolicious-7.66/lib/Mojo/Promise.pm 2018-02-13 18:09:41.000000000 +0100 @@ -28,7 +28,7 @@ ); } - return $all; + return @promises ? $all : $all->resolve; } sub catch { shift->then(undef, shift) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/lib/Mojo/UserAgent/CookieJar.pm new/Mojolicious-7.66/lib/Mojo/UserAgent/CookieJar.pm --- old/Mojolicious-7.65/lib/Mojo/UserAgent/CookieJar.pm 2018-01-03 13:49:43.000000000 +0100 +++ new/Mojolicious-7.66/lib/Mojo/UserAgent/CookieJar.pm 2018-02-13 17:46:55.000000000 +0100 @@ -22,12 +22,11 @@ next if length($cookie->value // '') > $size; # Replace cookie - my $origin = $cookie->origin // ''; - next unless my $domain = lc($cookie->domain // $origin); + next unless my $domain = lc($cookie->domain // ''); next unless my $path = $cookie->path; next unless length(my $name = $cookie->name // ''); my $jar = $self->{jar}{$domain} ||= []; - @$jar = (grep({ _compare($_, $path, $name, $origin) } @$jar), $cookie); + @$jar = (grep({ _compare($_, $path, $name, $domain) } @$jar), $cookie); } return $self; @@ -45,8 +44,9 @@ for my $cookie (@{$tx->res->cookies}) { # Validate domain - my $host = lc $url->ihost; - my $domain = lc($cookie->domain // $cookie->origin($host)->origin); + my $host = lc $url->ihost; + $cookie->domain($host)->host_only(1) unless $cookie->domain; + my $domain = lc $cookie->domain; if (my $cb = $self->ignore) { next if $cb->($cookie) } next if $host ne $domain && ($host !~ /\Q.$domain\E$/ || $host =~ /\.\d+$/); @@ -72,7 +72,7 @@ # Grab cookies my $new = $self->{jar}{$domain} = []; for my $cookie (@$old) { - next unless $cookie->domain || $host eq $cookie->origin; + next if $cookie->host_only && $host ne $cookie->domain; # Check if cookie has expired if (defined(my $expires = $cookie->expires)) { next if time > $expires } @@ -101,9 +101,11 @@ } sub _compare { - my ($cookie, $path, $name, $origin) = @_; - return 1 if $cookie->path ne $path || $cookie->name ne $name; - return ($cookie->origin // '') ne $origin; + my ($cookie, $path, $name, $domain) = @_; + return + $cookie->path ne $path + || $cookie->name ne $name + || $cookie->domain ne $domain; } sub _path { $_[0] eq '/' || $_[0] eq $_[1] || index($_[1], "$_[0]/") == 0 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/lib/Mojolicious/Guides/Cookbook.pod new/Mojolicious-7.66/lib/Mojolicious/Guides/Cookbook.pod --- old/Mojolicious-7.65/lib/Mojolicious/Guides/Cookbook.pod 2018-02-05 17:27:58.000000000 +0100 +++ new/Mojolicious-7.66/lib/Mojolicious/Guides/Cookbook.pod 2018-02-13 22:31:29.000000000 +0100 @@ -605,7 +605,7 @@ my $minion = $c->ua->get_p($url->clone->query({q => 'minion'})); # Render a response once both promises have been resolved - Mojo::Promise->all(mojo, $minion)->then(sub { + Mojo::Promise->all($mojo, $minion)->then(sub { my ($mojo, $minion) = @_; $c->render(json => { mojo => $mojo->[0]->result->json('/hits/hits/0/_source/release'), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/lib/Mojolicious.pm new/Mojolicious-7.66/lib/Mojolicious.pm --- old/Mojolicious-7.65/lib/Mojolicious.pm 2018-02-11 02:26:05.000000000 +0100 +++ new/Mojolicious-7.66/lib/Mojolicious.pm 2018-02-13 18:04:20.000000000 +0100 @@ -65,7 +65,7 @@ has validator => sub { Mojolicious::Validator->new }; our $CODENAME = 'Doughnut'; -our $VERSION = '7.65'; +our $VERSION = '7.66'; sub AUTOLOAD { my $self = shift; @@ -1042,6 +1042,8 @@ Paul Evans +Paul Robins + Paul Tomlin Pavel Shaydo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/t/mojo/cookiejar.t new/Mojolicious-7.66/t/mojo/cookiejar.t --- old/Mojolicious-7.65/t/mojo/cookiejar.t 2018-01-03 13:48:53.000000000 +0100 +++ new/Mojolicious-7.66/t/mojo/cookiejar.t 2018-02-13 18:07:32.000000000 +0100 @@ -254,6 +254,10 @@ $jar->prepare($tx); is $tx->req->cookie('foo')->name, 'foo', 'right name'; is $tx->req->cookie('foo')->value, 'without', 'right value'; +is $jar->all->[0]->name, 'foo', 'right name'; +is $jar->all->[0]->value, 'without', 'right value'; +is $jar->all->[0]->domain, 'mojolicious.org', 'right domain'; +is $jar->all->[1], undef, 'no second cookie'; $tx = Mojo::Transaction::HTTP->new; $tx->req->url->parse('http://www.mojolicious.org/perldoc'); $jar->prepare($tx); @@ -284,11 +288,9 @@ $tx->req->url->parse('http://example.com/test'); $jar->prepare($tx); $cookies = $tx->req->every_cookie('foo'); -is $cookies->[0]->name, 'foo', 'right name'; -is $cookies->[0]->value, 'without', 'right value'; -is $cookies->[1]->name, 'foo', 'right name'; -is $cookies->[1]->value, 'with', 'right value'; -is $cookies->[2], undef, 'no third cookie'; +is $cookies->[0]->name, 'foo', 'right name'; +is $cookies->[0]->value, 'with', 'right value'; +is $cookies->[1], undef, 'no second cookie'; $tx = Mojo::Transaction::HTTP->new; $tx->req->url->parse('http://www.example.com/test'); $jar->prepare($tx); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/t/mojo/promise.t new/Mojolicious-7.66/t/mojo/promise.t --- old/Mojolicious-7.65/t/mojo/promise.t 2018-02-01 00:55:31.000000000 +0100 +++ new/Mojolicious-7.66/t/mojo/promise.t 2018-02-13 18:10:09.000000000 +0100 @@ -185,6 +185,14 @@ is_deeply \@results, [], 'promises not resolved'; is_deeply \@errors, ['third'], 'promise rejected'; +# Empty all +(@results, @errors) = (); +Mojo::Promise->all() + ->then(sub { @results = 'pass', @_ }, sub { @errors = 'fail', @_ }); +Mojo::IOLoop->one_tick; +is_deeply \@results, ['pass'], 'promise resolved'; +is_deeply \@errors, [], 'promise not rejected'; + # Settle with promise $promise = Mojo::Promise->new->resolve('works'); @results = (); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.65/t/pod_coverage.t new/Mojolicious-7.66/t/pod_coverage.t --- old/Mojolicious-7.65/t/pod_coverage.t 2018-01-03 13:49:07.000000000 +0100 +++ new/Mojolicious-7.66/t/pod_coverage.t 2018-02-13 18:02:19.000000000 +0100 @@ -7,5 +7,4 @@ plan skip_all => 'Test::Pod::Coverage 1.04+ required for this test!' unless eval 'use Test::Pod::Coverage 1.04; 1'; -# DEPRECATED! -all_pod_coverage_ok({also_private => ['data', 'remaining']}); +all_pod_coverage_ok();
