Hello community,
here is the log from the commit of package perl-AnyEvent for openSUSE:Factory checked in at 2016-04-28 16:52:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-AnyEvent (Old)
and /work/SRC/openSUSE:Factory/.perl-AnyEvent.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-AnyEvent"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-AnyEvent/perl-AnyEvent.changes 2015-05-05 00:56:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-AnyEvent.new/perl-AnyEvent.changes 2016-04-28 16:52:54.000000000 +0200
@@ -1,0 +2,19 @@
+Sun Sep 20 15:35:05 UTC 2015 - coolo@suse.com
+
+- updated to 7.11
+ see /usr/share/doc/packages/perl-AnyEvent/Changes
+
+ TODO: more formats for parse_ipv6 (single ipv6 address without port, ...p80, ...#80)
+
+ 7.11 Thu Jul 16 14:36:00 CEST 2015
+ - AnyEvent::Socket::parse_ipv6 could accept malformed ipv6
+ addresses (extra "::" at end and similar cases).
+ - add a more explicit warning to AnyEvent::Handle that it doesn't
+ work on files, people keep getting confused.
+ - new function AnyEvent::Socket::tcp_bind.
+ - new functions AnyEvent::fh_block and AnyEvent::fh_unblock.
+ - aligned ipv6 address formatting with RFC 5952 (by not shortening
+ a single :0: to ::).
+ - added stability canary support.
+
+-------------------------------------------------------------------
Old:
----
AnyEvent-7.09.tar.gz
New:
----
AnyEvent-7.11.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-AnyEvent.spec ++++++
--- /var/tmp/diff_new_pack.VU0D4T/_old 2016-04-28 16:52:55.000000000 +0200
+++ /var/tmp/diff_new_pack.VU0D4T/_new 2016-04-28 16:52:55.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-AnyEvent
-Version: 7.09
+Version: 7.11
Release: 0
#Upstream: CHECK(GPL-1.0+ or Artistic-1.0)
%define cpan_name AnyEvent
@@ -32,6 +32,7 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
+BuildRequires: perl(Canary::Stability)
Recommends: perl(Async::Interrupt) >= 1
Recommends: perl(EV) >= 4
Recommends: perl(Guard) >= 1.02
++++++ AnyEvent-7.09.tar.gz -> AnyEvent-7.11.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AnyEvent-7.09/Changes new/AnyEvent-7.11/Changes
--- old/AnyEvent-7.09/Changes 2015-05-02 16:39:12.000000000 +0200
+++ new/AnyEvent-7.11/Changes 2015-07-16 14:36:18.000000000 +0200
@@ -9,6 +9,18 @@
TODO: invalid. and localhost. specialcasing inside AEDNS and not AESocket (rfc6761)
TODO: maybe implement env variable to give hosts precedence
TODO: hosts always read? that's not expected
+TODO: more formats for parse_ipv6 (single ipv6 address without port, ...p80, ...#80)
+
+7.11 Thu Jul 16 14:36:00 CEST 2015
+ - AnyEvent::Socket::parse_ipv6 could accept malformed ipv6
+ addresses (extra "::" at end and similar cases).
+ - add a more explicit warning to AnyEvent::Handle that it doesn't
+ work on files, people keep getting confused.
+ - new function AnyEvent::Socket::tcp_bind.
+ - new functions AnyEvent::fh_block and AnyEvent::fh_unblock.
+ - aligned ipv6 address formatting with RFC 5952 (by not shortening
+ a single :0: to ::).
+ - added stability canary support.
7.09 Sat May 2 16:38:53 CEST 2015
- AnyEvent::Debug called an internal function (AnyEvent::Log::ft)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AnyEvent-7.09/META.json new/AnyEvent-7.11/META.json
--- old/AnyEvent-7.09/META.json 2015-05-02 16:39:23.000000000 +0200
+++ new/AnyEvent-7.11/META.json 2015-07-16 14:48:29.000000000 +0200
@@ -4,7 +4,7 @@
"unknown"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.142060",
+ "generated_by" : "ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter version 2.150001",
"license" : [
"unknown"
],
@@ -27,7 +27,8 @@
},
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "0"
+ "Canary::Stability" : "0",
+ "ExtUtils::MakeMaker" : "6.52"
}
},
"runtime" : {
@@ -44,5 +45,5 @@
}
},
"release_status" : "stable",
- "version" : "7.09"
+ "version" : 7.11
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AnyEvent-7.09/META.yml new/AnyEvent-7.11/META.yml
--- old/AnyEvent-7.09/META.yml 2015-05-02 16:39:23.000000000 +0200
+++ new/AnyEvent-7.11/META.yml 2015-07-16 14:48:29.000000000 +0200
@@ -5,9 +5,10 @@
build_requires:
ExtUtils::MakeMaker: '0'
configure_requires:
- ExtUtils::MakeMaker: '0'
+ Canary::Stability: '0'
+ ExtUtils::MakeMaker: '6.52'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.142060'
+generated_by: 'ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter version 2.150001'
license: unknown
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -26,4 +27,4 @@
Net::SSLeay: '1.33'
Task::Weaken: '0'
requires: {}
-version: '7.09'
+version: 7.11
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AnyEvent-7.09/Makefile.PL new/AnyEvent-7.11/Makefile.PL
--- old/AnyEvent-7.09/Makefile.PL 2014-08-28 17:01:41.000000000 +0200
+++ new/AnyEvent-7.11/Makefile.PL 2015-07-16 14:38:11.000000000 +0200
@@ -1,6 +1,7 @@
use ExtUtils::MakeMaker;
-use 5.008001; # AnyEvent perl event loop seems to work with 5.6, other modules not
+# AnyEvent perl event loop seems to work with 5.6, other modules not
+eval 'use Canary::Stability AnyEvent => 1, 5.008001';
print < {
# Task::Weaken => 0,
# },
+ CONFIGURE_REQUIRES => { "ExtUtils::MakeMaker" => 6.52, "Canary::Stability" => 0 },
META_MERGE => {
recommends => {
"Task::Weaken" => 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AnyEvent-7.09/README new/AnyEvent-7.11/README
--- old/AnyEvent-7.09/README 2015-05-02 16:39:23.000000000 +0200
+++ new/AnyEvent-7.11/README 2015-07-16 14:48:29.000000000 +0200
@@ -1032,6 +1032,10 @@
function, which can reduce typing, codesize and can reduce the
logging overhead enourmously.
+ AnyEvent::fh_block $filehandle
+ AnyEvent::fh_unblock $filehandle
+ Sets blocking or non-blocking behaviour for the given filehandle.
+
WHAT TO DO IN A MODULE
As a module author, you should "use AnyEvent" and call AnyEvent methods
freely, but you should not load a specific event module or rely on it.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AnyEvent-7.09/lib/AnyEvent/DNS.pm new/AnyEvent-7.11/lib/AnyEvent/DNS.pm
--- old/AnyEvent-7.09/lib/AnyEvent/DNS.pm 2014-12-31 14:19:01.000000000 +0100
+++ new/AnyEvent-7.11/lib/AnyEvent/DNS.pm 2015-06-16 05:21:36.000000000 +0200
@@ -812,7 +812,7 @@
if (socket my $fh4, AF_INET , Socket::SOCK_DGRAM(), 0) {
++$got_socket;
- AnyEvent::Util::fh_nonblocking $fh4, 1;
+ AnyEvent::fh_unblock $fh4;
$self->{fh4} = $fh4;
$self->{rw4} = AE::io $fh4, 0, sub {
if (my $peer = recv $fh4, my $pkt, MAX_PKT, 0) {
@@ -825,7 +825,7 @@
++$got_socket;
$self->{fh6} = $fh6;
- AnyEvent::Util::fh_nonblocking $fh6, 1;
+ AnyEvent::fh_unblock $fh6;
$self->{rw6} = AE::io $fh6, 0, sub {
if (my $peer = recv $fh6, my $pkt, MAX_PKT, 0) {
$wself->_recv ($pkt, $peer);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AnyEvent-7.09/lib/AnyEvent/Debug.pm new/AnyEvent-7.11/lib/AnyEvent/Debug.pm
--- old/AnyEvent-7.09/lib/AnyEvent/Debug.pm 2015-03-13 08:40:07.000000000 +0100
+++ new/AnyEvent-7.11/lib/AnyEvent/Debug.pm 2015-06-16 05:22:58.000000000 +0200
@@ -128,7 +128,7 @@
while ($rbuf =~ s/^(.*)\015?\012//) {
my $line = $1;
- AnyEvent::Util::fh_nonblocking $fh, 0;
+ AnyEvent::fh_block $fh;
if ($line =~ /^\s*exit\b/) {
syswrite $fh, "sorry, no... if you want to execute exit, try CORE::exit.\015\012";
@@ -175,7 +175,7 @@
}
syswrite $fh, "> ";
- AnyEvent::Util::fh_nonblocking $fh, 1;
+ AnyEvent::fh_unblock $fh;
}
}
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AnyEvent-7.09/lib/AnyEvent/Handle.pm new/AnyEvent-7.11/lib/AnyEvent/Handle.pm
--- old/AnyEvent-7.09/lib/AnyEvent/Handle.pm 2015-04-01 21:58:51.000000000 +0200
+++ new/AnyEvent-7.11/lib/AnyEvent/Handle.pm 2015-06-28 11:30:06.000000000 +0200
@@ -32,8 +32,10 @@
=head1 DESCRIPTION
-This is a helper module to make it easier to do event-based I/O on
-stream-based filehandles (sockets, pipes, and other stream things).
+This is a helper module to make it easier to do event-based I/O
+on stream-based filehandles (sockets, pipes, and other stream
+things). Specifically, it doesn't work as expected on files, packet-based
+sockets or similar things.
The LAnyEvent::Intro tutorial contains some well-documented
AnyEvent::Handle examples.
@@ -93,7 +95,7 @@
The filehandle this LAnyEvent::Handle object will operate on.
NOTE: The filehandle will be set to non-blocking mode (using
-CAnyEvent::Util::fh_nonblocking) by the constructor and needs to stay in
+CAnyEvent::fh_unblock) by the constructor and needs to stay in
that mode.
=item connect => [$host, $service] [C<fh> or C<connect> MANDATORY]
@@ -613,7 +615,7 @@
Carp::croak "AnyEvent::Handle: only stream sockets supported, anything else will NOT work!"
if Socket::SOCK_STREAM () != (unpack "I", $type) && defined $type;
- AnyEvent::Util::fh_nonblocking $self->{fh}, 1;
+ AnyEvent::fh_unblock $self->{fh};
$self->{_activity} =
$self->{_ractivity} =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AnyEvent-7.09/lib/AnyEvent/Socket.pm new/AnyEvent-7.11/lib/AnyEvent/Socket.pm
--- old/AnyEvent-7.09/lib/AnyEvent/Socket.pm 2015-03-13 08:41:40.000000000 +0100
+++ new/AnyEvent-7.11/lib/AnyEvent/Socket.pm 2015-07-10 05:10:44.000000000 +0200
@@ -40,7 +40,7 @@
use Socket qw(AF_INET AF_UNIX SOCK_STREAM SOCK_DGRAM SOL_SOCKET SO_REUSEADDR);
use AnyEvent (); BEGIN { AnyEvent::common_sense }
-use AnyEvent::Util qw(guard fh_nonblocking AF_INET6);
+use AnyEvent::Util qw(guard AF_INET6);
use AnyEvent::DNS ();
use base 'Exporter';
@@ -117,8 +117,8 @@
($h, $t) = (undef, $h);
}
- my @h = split /:/, $h;
- my @t = split /:/, $t;
+ my @h = split /:/, $h, -1;
+ my @t = split /:/, $t, -1;
# check for ipv4 tail
if (@t && $t[-1]=~ /\./) {
@@ -271,7 +271,7 @@
print join ",", parse_hostport "[::1]";
# => "," (empty list)
- print join ",", parse_host_port "/tmp/debug.sock";
+ print join ",", parse_hostport "/tmp/debug.sock";
# => "unix/", "/tmp/debug.sock"
=cut
@@ -418,8 +418,7 @@
or $ip =~ s/(?:^|:) 0:0:0:0:0 (?:$|:)/::/x
or $ip =~ s/(?:^|:) 0:0:0:0 (?:$|:)/::/x
or $ip =~ s/(?:^|:) 0:0:0 (?:$|:)/::/x
- or $ip =~ s/(?:^|:) 0:0 (?:$|:)/::/x
- or $ip =~ s/(?:^|:) 0 (?:$|:)/::/x;
+ or $ip =~ s/(?:^|:) 0:0 (?:$|:)/::/x;
$ip
}
@@ -1007,7 +1006,7 @@
socket $state{fh}, $domain, $type, $proto
or return $state{next}();
- fh_nonblocking $state{fh}, 1;
+ AnyEvent::fh_unblock $state{fh};
my $timeout = $prepare && $prepare->($state{fh});
@@ -1144,10 +1143,23 @@
my ($fh) = @_;
};
+=item $guard = AnyEvent::Socket::tcp_bind $host, $service, $done_cb[, $prepare_cb]
+
+Same as C, except it doesn't call C<accept> in a loop for you
+but simply passes the listen socket to the C<$done_cb>. This is useful
+when you want to have a convenient set up for your listen socket, but want
+to do the C<accept>'ing yourself, for example, in another process.
+
+In case of an error, C either croaks, or passes C<undef> to the
+C<$done_cb>.
+
+The guard only protects the set-up phase, it isn't used after C<$done_cb>
+has been invoked.
+
=cut
-sub tcp_server($$$;$) {
- my ($host, $service, $accept, $prepare) = @_;
+sub _tcp_bind($$$;$) {
+ my ($host, $service, $done, $prepare) = @_;
$host = $AnyEvent::PROTOCOL{ipv4} < $AnyEvent::PROTOCOL{ipv6} && AF_INET6
? "::" : "0"
@@ -1193,7 +1205,7 @@
};
}
- fh_nonblocking $state{fh}, 1;
+ AnyEvent::fh_unblock $state{fh};
my $len;
@@ -1207,21 +1219,39 @@
listen $state{fh}, $len
or Carp::croak "listen: $!";
- $state{aw} = AE::io $state{fh}, 0, sub {
- # this closure keeps $state alive
- while ($state{fh} && (my $peer = accept my $fh, $state{fh})) {
- fh_nonblocking $fh, 1; # POSIX requires inheritance, the outside world does not
-
- my ($service, $host) = unpack_sockaddr $peer;
- $accept->($fh, format_address $host, $service);
- }
- };
+ $done->(\%state);
defined wantarray
? guard { %state = () } # clear fh and watcher, which breaks the circular dependency
: ()
}
+sub tcp_bind($$$;$) {
+ my ($host, $service, $done, $prepare) = @_;
+
+ _tcp_bind $host, $service, sub {
+ $done->(delete shift->{fh});
+ }, $prepare
+}
+
+sub tcp_server($$$;$) {
+ my ($host, $service, $accept, $prepare) = @_;
+
+ _tcp_bind $host, $service, sub {
+ my $rstate = shift;
+
+ $rstate->{aw} = AE::io $rstate->{fh}, 0, sub {
+ # this closure keeps $state alive
+ while ($rstate->{fh} && (my $peer = accept my $fh, $rstate->{fh})) {
+ AnyEvent::fh_unblock $fh; # POSIX requires inheritance, the outside world does not
+
+ my ($service, $host) = unpack_sockaddr $peer;
+ $accept->($fh, format_address $host, $service);
+ }
+ };
+ }, $prepare
+}
+
=item tcp_nodelay $fh, $enable
Enables (or disables) the C socket option (also known as
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AnyEvent-7.09/lib/AnyEvent/Util.pm new/AnyEvent-7.11/lib/AnyEvent/Util.pm
--- old/AnyEvent-7.09/lib/AnyEvent/Util.pm 2015-03-13 08:45:11.000000000 +0100
+++ new/AnyEvent-7.11/lib/AnyEvent/Util.pm 2015-06-16 05:15:55.000000000 +0200
@@ -354,17 +354,13 @@
false == blocking). Uses fcntl on anything sensible and ioctl FIONBIO on
broken (i.e. windows) platforms.
+Instead of using this function, you could use CAnyEvent::fh_block or
+CAnyEvent::fh_unblock.
+
=cut
BEGIN {
- *fh_nonblocking = AnyEvent::WIN32
- ? sub($$) {
- ioctl $_[0], 0x8004667e, pack "L", $_[1]; # FIONBIO
- }
- : sub($$) {
- fcntl $_[0], AnyEvent::F_SETFL, $_[1] ? AnyEvent::O_NONBLOCK : 0;
- }
- ;
+ *fh_nonblocking = \&AnyEvent::_fh_nonblocking;
}
=item $guard = guard { CODE }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AnyEvent-7.09/lib/AnyEvent.pm new/AnyEvent-7.11/lib/AnyEvent.pm
--- old/AnyEvent-7.09/lib/AnyEvent.pm 2015-05-02 16:39:21.000000000 +0200
+++ new/AnyEvent-7.11/lib/AnyEvent.pm 2015-07-16 14:39:33.000000000 +0200
@@ -1080,6 +1080,12 @@
which can reduce typing, codesize and can reduce the logging overhead
enourmously.
+=item AnyEvent::fh_block $filehandle
+
+=item AnyEvent::fh_unblock $filehandle
+
+Sets blocking or non-blocking behaviour for the given filehandle.
+
=back
=head1 WHAT TO DO IN A MODULE
@@ -1250,7 +1256,7 @@
use Carp ();
-our $VERSION = '7.09';
+our $VERSION = 7.11;
our $MODEL;
our @ISA;
our @REGISTRY;
@@ -1357,6 +1363,25 @@
require AnyEvent::Log; # AnyEvent::Log does the thing for us
}
+BEGIN {
+ *_fh_nonblocking = AnyEvent::WIN32
+ ? sub($$) {
+ ioctl $_[0], 0x8004667e, pack "L", $_[1]; # FIONBIO
+ }
+ : sub($$) {
+ fcntl $_[0], AnyEvent::F_SETFL, $_[1] ? AnyEvent::O_NONBLOCK : 0;
+ }
+ ;
+}
+
+sub fh_block($) {
+ _fh_nonblocking shift, 0
+}
+
+sub fh_unblock($) {
+ _fh_nonblocking shift, 1
+}
+
our @models = (
[EV:: => AnyEvent::Impl::EV::],
[AnyEvent::Loop:: => AnyEvent::Impl::Perl::],