Hello community, here is the log from the commit of package perl-Mojolicious for openSUSE:Factory checked in at 2017-09-05 15:14:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old) and /work/SRC/openSUSE:Factory/.perl-Mojolicious.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Mojolicious" Tue Sep 5 15:14:03 2017 rev:75 rq:520605 version:7.44 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes 2017-08-29 11:35:54.833283793 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Mojolicious.new/perl-Mojolicious.changes 2017-09-05 15:14:06.406627495 +0200 @@ -1,0 +2,14 @@ +Mon Sep 4 05:46:40 UTC 2017 - co...@suse.com + +- updated to 7.44 + see /usr/share/doc/packages/perl-Mojolicious/Changes + + 7.44 2017-09-02 + - Reverted a previous change to Mojo::Loader that allowed for load_class to be + called on the same class multiple times, since it had very bad side effects. + - Improved Mojo::IOLoop::TLS to use a little less memory. + - Fixed a bug where Mojolicious controllers like "MyApp::Controller::Foo::Bar" + would disappear if loading the controller "MyApp::Controller::Foo" was + attempted but failed. + +------------------------------------------------------------------- Old: ---- Mojolicious-7.43.tar.gz New: ---- Mojolicious-7.44.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Mojolicious.spec ++++++ --- /var/tmp/diff_new_pack.gnuoFW/_old 2017-09-05 15:14:07.166520682 +0200 +++ /var/tmp/diff_new_pack.gnuoFW/_new 2017-09-05 15:14:07.174519557 +0200 @@ -17,7 +17,7 @@ Name: perl-Mojolicious -Version: 7.43 +Version: 7.44 Release: 0 %define cpan_name Mojolicious Summary: Real-time web framework ++++++ Mojolicious-7.43.tar.gz -> Mojolicious-7.44.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/Changes new/Mojolicious-7.44/Changes --- old/Mojolicious-7.43/Changes 2017-08-17 22:25:27.000000000 +0200 +++ new/Mojolicious-7.44/Changes 2017-09-02 14:41:52.000000000 +0200 @@ -1,4 +1,12 @@ +7.44 2017-09-02 + - Reverted a previous change to Mojo::Loader that allowed for load_class to be + called on the same class multiple times, since it had very bad side effects. + - Improved Mojo::IOLoop::TLS to use a little less memory. + - Fixed a bug where Mojolicious controllers like "MyApp::Controller::Foo::Bar" + would disappear if loading the controller "MyApp::Controller::Foo" was + attempted but failed. + 7.43 2017-08-18 - Improved Mojo::Base role support with the ability to rebless objects. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/MANIFEST new/Mojolicious-7.44/MANIFEST --- old/Mojolicious-7.43/MANIFEST 2017-08-18 10:25:25.000000000 +0200 +++ new/Mojolicious-7.44/MANIFEST 2017-09-03 18:03:41.000000000 +0200 @@ -210,6 +210,7 @@ t/mojo/prefork.t t/mojo/proxy.t t/mojo/psgi.t +t/mojo/reactor_detect.t t/mojo/reactor_ev.t t/mojo/reactor_poll.t t/mojo/request.t @@ -277,6 +278,7 @@ t/mojolicious/lib/MojoliciousTest/Plugin/Test/SomePlugin2.pm t/mojolicious/lib/MojoliciousTest/Plugin/UPPERCASETestPlugin.pm t/mojolicious/lib/MojoliciousTest/PODTest.pm +t/mojolicious/lib/MojoliciousTest/SideEffects/Test.pm t/mojolicious/lib/MojoliciousTest/SyntaxError.pm t/mojolicious/lib/MojoliciousTest2/Foo.pm t/mojolicious/lib/MojoliciousTest3/Bar.pm diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/META.json new/Mojolicious-7.44/META.json --- old/Mojolicious-7.43/META.json 2017-08-18 10:25:25.000000000 +0200 +++ new/Mojolicious-7.44/META.json 2017-09-03 18:03:41.000000000 +0200 @@ -58,6 +58,6 @@ }, "x_IRC" : "irc://irc.perl.org/#mojo" }, - "version" : "7.43", + "version" : "7.44", "x_serialization_backend" : "JSON::PP version 2.94" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/META.yml new/Mojolicious-7.44/META.yml --- old/Mojolicious-7.43/META.yml 2017-08-18 10:25:24.000000000 +0200 +++ new/Mojolicious-7.44/META.yml 2017-09-03 18:03:41.000000000 +0200 @@ -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.43' +version: '7.44' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/lib/Mojo/IOLoop/TLS.pm new/Mojolicious-7.44/lib/Mojo/IOLoop/TLS.pm --- old/Mojolicious-7.43/lib/Mojo/IOLoop/TLS.pm 2017-07-17 21:07:54.000000000 +0200 +++ new/Mojolicious-7.44/lib/Mojo/IOLoop/TLS.pm 2017-08-20 16:51:56.000000000 +0200 @@ -51,7 +51,7 @@ weaken $self; my $tls = { SSL_ca_file => $args->{tls_ca} - && -T $args->{tls_ca} ? $args->{tls_ca} : undef, + && -T $args->{tls_ca} ? $args->{tls_ca} : \undef, SSL_error_trap => sub { $self->_cleanup->emit(error => $_[1]) }, SSL_honor_cipher_order => 1, SSL_startHandshake => 0 @@ -71,7 +71,6 @@ else { $tls->{SSL_hostname} = IO::Socket::SSL->can_client_sni ? $args->{address} : ''; - $tls->{SSL_verifycn_scheme} = $args->{tls_ca} ? 'http' : undef; $tls->{SSL_verify_mode} //= $args->{tls_ca} ? 0x01 : 0x00; $tls->{SSL_verifycn_name} = $args->{address}; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/lib/Mojo/Loader.pm new/Mojolicious-7.44/lib/Mojo/Loader.pm --- old/Mojolicious-7.43/lib/Mojo/Loader.pm 2017-07-17 21:07:54.000000000 +0200 +++ new/Mojolicious-7.44/lib/Mojo/Loader.pm 2017-09-02 14:50:22.000000000 +0200 @@ -40,11 +40,8 @@ # Invalid class name return 1 if ($class || '') !~ /^\w(?:[\w:']*\w)?$/; - # Already loaded - return undef if $class->can('new'); - - # Success - eval "require $class; 1" ? return undef : Mojo::Util::_teardown($class); + # Load if not already loaded + return undef if $class->can('new') || eval "require $class; 1"; # Does not exist return 1 if $@ =~ /^Can't locate \Q@{[class_to_path $class]}\E in \@INC/; @@ -173,7 +170,8 @@ Load a class and catch exceptions, returns a false value if loading was successful, a true value if the class was not found, or a L<Mojo::Exception> object if loading failed. Note that classes are checked for a C<new> method to -see if they are already loaded. +see if they are already loaded, so trying to load the same class multiple times +may yield different results. # Handle exceptions if (my $e = load_class 'Foo::Bar') { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/lib/Mojo/Reactor.pm new/Mojolicious-7.44/lib/Mojo/Reactor.pm --- old/Mojolicious-7.43/lib/Mojo/Reactor.pm 2017-07-17 21:07:54.000000000 +0200 +++ new/Mojolicious-7.44/lib/Mojo/Reactor.pm 2017-09-02 15:23:05.000000000 +0200 @@ -5,12 +5,14 @@ use Config; use Mojo::Loader 'load_class'; +my %DETECTED; + sub again { croak 'Method "again" not implemented by subclass' } sub detect { my $default = 'Mojo::Reactor::' . ($Config{d_pseudofork} ? 'Poll' : 'EV'); my $try = $ENV{MOJO_REACTOR} || $default; - return load_class($try) ? 'Mojo::Reactor::Poll' : $try; + return $DETECTED{$try} ||= load_class($try) ? 'Mojo::Reactor::Poll' : $try; } sub io { croak 'Method "io" not implemented by subclass' } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/lib/Mojolicious.pm new/Mojolicious-7.44/lib/Mojolicious.pm --- old/Mojolicious-7.43/lib/Mojolicious.pm 2017-08-17 13:15:48.000000000 +0200 +++ new/Mojolicious-7.44/lib/Mojolicious.pm 2017-08-18 10:25:47.000000000 +0200 @@ -58,7 +58,7 @@ has validator => sub { Mojolicious::Validator->new }; our $CODENAME = 'Doughnut'; -our $VERSION = '7.43'; +our $VERSION = '7.44'; sub AUTOLOAD { my $self = shift; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/t/mojo/ioloop.t new/Mojolicious-7.44/t/mojo/ioloop.t --- old/Mojolicious-7.43/t/mojo/ioloop.t 2017-07-19 18:43:26.000000000 +0200 +++ new/Mojolicious-7.44/t/mojo/ioloop.t 2017-09-02 14:44:47.000000000 +0200 @@ -9,22 +9,8 @@ use Mojo::IOLoop::Server; use Mojo::IOLoop::Stream; -# Custom reactor -package MyReactor; -use Mojo::Base 'Mojo::Reactor::Poll'; - -package main; - -# Reactor detection -$ENV{MOJO_REACTOR} = 'MyReactorDoesNotExist'; -my $loop = Mojo::IOLoop->new; -is ref $loop->reactor, 'Mojo::Reactor::Poll', 'right class'; -$ENV{MOJO_REACTOR} = 'MyReactor'; -$loop = Mojo::IOLoop->new; -is ref $loop->reactor, 'MyReactor', 'right class'; - # Defaults -$loop = Mojo::IOLoop->new; +my $loop = Mojo::IOLoop->new; is $loop->max_connections, 1000, 'right default'; $loop = Mojo::IOLoop->new(max_connections => 10); is $loop->max_connections, 10, 'right value'; @@ -332,7 +318,7 @@ my $loop = Mojo::IOLoop->new; $loop->timer(0 => sub { die 'Bye!' }); $loop->start; - like $err, qr/^MyReactor:.*Bye!/, 'right error'; + like $err, qr/^Mojo::Reactor::Poll:.*Bye!/, 'right error'; } # Defaults diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/t/mojo/lib/Mojo/LoaderException.pm new/Mojolicious-7.44/t/mojo/lib/Mojo/LoaderException.pm --- old/Mojolicious-7.43/t/mojo/lib/Mojo/LoaderException.pm 2017-07-17 21:07:54.000000000 +0200 +++ new/Mojolicious-7.44/t/mojo/lib/Mojo/LoaderException.pm 2017-09-02 13:50:38.000000000 +0200 @@ -2,6 +2,8 @@ use Mojo::Base -base; +sub new {} + foo { 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/t/mojo/loader.t new/Mojolicious-7.44/t/mojo/loader.t --- old/Mojolicious-7.43/t/mojo/loader.t 2017-07-17 21:07:54.000000000 +0200 +++ new/Mojolicious-7.44/t/mojo/loader.t 2017-09-02 14:24:17.000000000 +0200 @@ -24,25 +24,20 @@ my $e = load_class 'Mojo::LoaderException'; isa_ok $e, 'Mojo::Exception', 'right exception'; like $e->message, qr/Missing right curly/, 'right message'; -is $e->lines_before->[0][0], 2, 'right number'; -is $e->lines_before->[0][1], '', 'right line'; -is $e->lines_before->[1][0], 3, 'right number'; -is $e->lines_before->[1][1], 'use Mojo::Base -base;', 'right line'; -is $e->lines_before->[2][0], 4, 'right number'; -is $e->lines_before->[2][1], '', 'right line'; -is $e->lines_before->[3][0], 5, 'right number'; -is $e->lines_before->[3][1], 'foo {', 'right line'; -is $e->lines_before->[4][0], 6, 'right number'; -is $e->lines_before->[4][1], '', 'right line'; -is $e->line->[0], 7, 'right number'; +is $e->lines_before->[0][0], 4, 'right number'; +is $e->lines_before->[0][1], '', 'right line'; +is $e->lines_before->[1][0], 5, 'right number'; +is $e->lines_before->[1][1], 'sub new {}', 'right line'; +is $e->lines_before->[2][0], 6, 'right number'; +is $e->lines_before->[2][1], '', 'right line'; +is $e->lines_before->[3][0], 7, 'right number'; +is $e->lines_before->[3][1], 'foo {', 'right line'; +is $e->lines_before->[4][0], 8, 'right number'; +is $e->lines_before->[4][1], '', 'right line'; +is $e->line->[0], 9, 'right number'; is $e->line->[1], "1;", 'right line'; like "$e", qr/Missing right curly/, 'right message'; -# Exception again -$e = load_class 'Mojo::LoaderException'; -isa_ok $e, 'Mojo::Exception', 'right exception'; -like $e->message, qr/Attempt to reload/, 'right message'; - # Complicated exception $e = load_class 'Mojo::LoaderException2'; isa_ok $e, 'Mojo::Exception', 'right exception'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/t/mojo/reactor_detect.t new/Mojolicious-7.44/t/mojo/reactor_detect.t --- old/Mojolicious-7.43/t/mojo/reactor_detect.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Mojolicious-7.44/t/mojo/reactor_detect.t 2017-09-02 15:26:35.000000000 +0200 @@ -0,0 +1,33 @@ +use Mojo::Base -strict; + +BEGIN { $ENV{MOJO_REACTOR} = 'Mojo::Reactor::Poll' } + +use Test::More; +use Mojo::Reactor::Poll; + +# Dummy reactor +package Mojo::Reactor::Test; +use Mojo::Base 'Mojo::Reactor::Poll'; + +package main; + +# Detection (success) +{ + local $ENV{MOJO_REACTOR} = 'Mojo::Reactor::Test'; + is(Mojo::Reactor->detect, 'Mojo::Reactor::Test', 'right class'); +} + +# Detection (fail) +{ + local $ENV{MOJO_REACTOR} = 'Mojo::Reactor::DoesNotExist'; + is(Mojo::Reactor->detect, 'Mojo::Reactor::Poll', 'right class'); +} + +# Event loop detection +{ + local $ENV{MOJO_REACTOR} = 'Mojo::Reactor::Test'; + require Mojo::IOLoop; + is ref Mojo::IOLoop->new->reactor, 'Mojo::Reactor::Test', 'right class'; +} + +done_testing(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/t/mojo/reactor_ev.t new/Mojolicious-7.44/t/mojo/reactor_ev.t --- old/Mojolicious-7.43/t/mojo/reactor_ev.t 2017-07-19 18:36:19.000000000 +0200 +++ new/Mojolicious-7.44/t/mojo/reactor_ev.t 2017-09-02 14:35:45.000000000 +0200 @@ -253,18 +253,6 @@ # Detection is(Mojo::Reactor->detect, 'Mojo::Reactor::EV', 'right class'); -# Dummy reactor -package Mojo::Reactor::Test; -use Mojo::Base 'Mojo::Reactor::Poll'; - -package main; - -# Detection (env) -{ - local $ENV{MOJO_REACTOR} = 'Mojo::Reactor::Test'; - is(Mojo::Reactor->detect, 'Mojo::Reactor::Test', 'right class'); -} - # EV in control is ref Mojo::IOLoop->singleton->reactor, 'Mojo::Reactor::EV', 'right object'; ok !Mojo::IOLoop->is_running, 'loop is not running'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/t/mojo/reactor_poll.t new/Mojolicious-7.44/t/mojo/reactor_poll.t --- old/Mojolicious-7.43/t/mojo/reactor_poll.t 2017-07-19 18:36:26.000000000 +0200 +++ new/Mojolicious-7.44/t/mojo/reactor_poll.t 2017-09-02 14:35:32.000000000 +0200 @@ -250,18 +250,6 @@ # Detection is(Mojo::Reactor::Poll->detect, 'Mojo::Reactor::Poll', 'right class'); -# Dummy reactor -package Mojo::Reactor::Test; -use Mojo::Base 'Mojo::Reactor::Poll'; - -package main; - -# Detection (env) -{ - local $ENV{MOJO_REACTOR} = 'Mojo::Reactor::Test'; - is(Mojo::Reactor->detect, 'Mojo::Reactor::Test', 'right class'); -} - # Reactor in control is ref Mojo::IOLoop->singleton->reactor, 'Mojo::Reactor::Poll', 'right object'; ok !Mojo::IOLoop->is_running, 'loop is not running'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/t/mojolicious/app.t new/Mojolicious-7.44/t/mojolicious/app.t --- old/Mojolicious-7.43/t/mojolicious/app.t 2017-07-17 21:07:54.000000000 +0200 +++ new/Mojolicious-7.44/t/mojolicious/app.t 2017-09-02 14:36:57.000000000 +0200 @@ -599,6 +599,16 @@ $t->get_ok('/rss.xml')->status_is(200)->content_type_is('application/rss+xml') ->content_like(qr!<\?xml version="1.0" encoding="UTF-8"\?><rss />!); +# Missing controller has no side effects +$t->get_ok('/side_effects-test/index')->status_is(200) + ->header_is(Server => 'Mojolicious (Perl)')->content_is('pass'); +$t->get_ok('/side_effects/index')->status_is(404) + ->header_is(Server => 'Mojolicious (Perl)'); +$t->get_ok('/side_effects/index')->status_is(404) + ->header_is(Server => 'Mojolicious (Perl)'); +$t->get_ok('/side_effects-test/index')->status_is(200) + ->header_is(Server => 'Mojolicious (Perl)')->content_is('pass'); + # Connection already closed eval { Mojolicious::Controller->new->finish }; like $@, qr/Connection already closed/, 'right error'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.43/t/mojolicious/lib/MojoliciousTest/SideEffects/Test.pm new/Mojolicious-7.44/t/mojolicious/lib/MojoliciousTest/SideEffects/Test.pm --- old/Mojolicious-7.43/t/mojolicious/lib/MojoliciousTest/SideEffects/Test.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/Mojolicious-7.44/t/mojolicious/lib/MojoliciousTest/SideEffects/Test.pm 2017-09-02 14:36:33.000000000 +0200 @@ -0,0 +1,6 @@ +package MojoliciousTest::SideEffects::Test; +use Mojo::Base 'Mojolicious::Controller'; + +sub index { shift->render(text => 'pass') } + +1;