openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
August 2017
- 1 participants
- 2097 discussions
28 Aug '17
Hello community,
here is the log from the commit of package perl-Log-Dispatch-FileRotate for openSUSE:Factory checked in at 2017-08-28 15:10:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Log-Dispatch-FileRotate (Old)
and /work/SRC/openSUSE:Factory/.perl-Log-Dispatch-FileRotate.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Log-Dispatch-FileRotate"
Mon Aug 28 15:10:21 2017 rev:23 rq:516824 version:1.29
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Log-Dispatch-FileRotate/perl-Log-Dispatch-FileRotate.changes 2017-07-21 22:47:19.586272093 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Log-Dispatch-FileRotate.new/perl-Log-Dispatch-FileRotate.changes 2017-08-28 15:10:35.276207103 +0200
@@ -1,0 +2,28 @@
+Thu Aug 3 05:43:55 UTC 2017 - coolo(a)suse.com
+
+- updated to 1.29
+ see /usr/share/doc/packages/perl-Log-Dispatch-FileRotate/Changes
+
+ 1.29 Fri Jul 28 2017
+ - Fix deadlock on Windows due to the fact that stat() on a filehandle vs a
+ path doesn't return the same device field on Windows.
+
+-------------------------------------------------------------------
+Fri Jul 28 05:46:28 UTC 2017 - coolo(a)suse.com
+
+- updated to 1.28
+ see /usr/share/doc/packages/perl-Log-Dispatch-FileRotate/Changes
+
+ 1.28 Thu Jul 27 2017
+ *** Multiple fixes to locking code:
+ - flock() can be interrupted by a syscall. work around by using a
+ safe_flock() wrapper that retries if errno is EAGAIN (and also
+ EWOULDBLOCK).
+ - handle several possible race conditions between open() and flock().
+ - DESTROY() was unlinking the lockfile (.logfile.LCK). This was the cause
+ of a race condition where multiple processes could enter the critical
+ seciton at the same time. Avoided by leaving .LCK files in place.
+ Probably fixes #77075 (Thanks Emanuele Tomasi).
+ - add author test for DESTROY lockfile race condition.
+
+-------------------------------------------------------------------
Old:
----
Log-Dispatch-FileRotate-1.27.tar.gz
New:
----
Log-Dispatch-FileRotate-1.29.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Log-Dispatch-FileRotate.spec ++++++
--- /var/tmp/diff_new_pack.WTWHe2/_old 2017-08-28 15:10:36.468039443 +0200
+++ /var/tmp/diff_new_pack.WTWHe2/_new 2017-08-28 15:10:36.472038880 +0200
@@ -17,7 +17,7 @@
Name: perl-Log-Dispatch-FileRotate
-Version: 1.27
+Version: 1.29
Release: 0
%define cpan_name Log-Dispatch-FileRotate
Summary: Log to Files that Archive/Rotate Themselves
++++++ Log-Dispatch-FileRotate-1.27.tar.gz -> Log-Dispatch-FileRotate-1.29.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatch-FileRotate-1.27/Changes new/Log-Dispatch-FileRotate-1.29/Changes
--- old/Log-Dispatch-FileRotate-1.27/Changes 2017-07-06 17:48:44.000000000 +0200
+++ new/Log-Dispatch-FileRotate-1.29/Changes 2017-07-28 17:15:44.000000000 +0200
@@ -1,5 +1,21 @@
Revision history for Perl extension Log::Dispatch::FileRotate.
+1.29 Fri Jul 28 2017
+ - Fix deadlock on Windows due to the fact that stat() on a filehandle vs a
+ path doesn't return the same device field on Windows.
+
+1.28 Thu Jul 27 2017
+ *** Multiple fixes to locking code:
+ - flock() can be interrupted by a syscall. work around by using a
+ safe_flock() wrapper that retries if errno is EAGAIN (and also
+ EWOULDBLOCK).
+ - handle several possible race conditions between open() and flock().
+ - DESTROY() was unlinking the lockfile (.logfile.LCK). This was the cause
+ of a race condition where multiple processes could enter the critical
+ seciton at the same time. Avoided by leaving .LCK files in place.
+ Probably fixes #77075 (Thanks Emanuele Tomasi).
+ - add author test for DESTROY lockfile race condition.
+
1.27 Thu Jul 06 2017
- add "check_both" configuration option which allows the use of both time and
size based rotation at the same time. If either conditions require a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatch-FileRotate-1.27/MANIFEST new/Log-Dispatch-FileRotate-1.29/MANIFEST
--- old/Log-Dispatch-FileRotate-1.27/MANIFEST 2017-07-06 17:48:44.000000000 +0200
+++ new/Log-Dispatch-FileRotate-1.29/MANIFEST 2017-07-28 17:15:44.000000000 +0200
@@ -9,6 +9,7 @@
README
SIGNATURE
lib/Log/Dispatch/FileRotate.pm
+t/author-lockfile-race-condition.t
t/author-pod-syntax.t
t/author-signature.t
t/basic.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatch-FileRotate-1.27/META.json new/Log-Dispatch-FileRotate-1.29/META.json
--- old/Log-Dispatch-FileRotate-1.27/META.json 2017-07-06 17:48:44.000000000 +0200
+++ new/Log-Dispatch-FileRotate-1.29/META.json 2017-07-28 17:15:44.000000000 +0200
@@ -61,7 +61,7 @@
"web" : "https://github.com/mschout/perl-log-dispatch-filerotate"
}
},
- "version" : "1.27",
+ "version" : "1.29",
"x_serialization_backend" : "Cpanel::JSON::XS version 3.0217"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatch-FileRotate-1.27/META.yml new/Log-Dispatch-FileRotate-1.29/META.yml
--- old/Log-Dispatch-FileRotate-1.27/META.yml 2017-07-06 17:48:44.000000000 +0200
+++ new/Log-Dispatch-FileRotate-1.29/META.yml 2017-07-28 17:15:44.000000000 +0200
@@ -32,5 +32,5 @@
bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Log-Dispatch-FileRotate
homepage: http://search.cpan.org/dist/Log-Dispatch-FileRotate/
repository: git://github.com/mschout/perl-log-dispatch-filerotate.git
-version: '1.27'
+version: '1.29'
x_serialization_backend: 'YAML::Tiny version 1.69'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatch-FileRotate-1.27/Makefile.PL new/Log-Dispatch-FileRotate-1.29/Makefile.PL
--- old/Log-Dispatch-FileRotate-1.27/Makefile.PL 2017-07-06 17:48:44.000000000 +0200
+++ new/Log-Dispatch-FileRotate-1.29/Makefile.PL 2017-07-28 17:15:44.000000000 +0200
@@ -34,7 +34,7 @@
"Test::Warn" => 0,
"warnings" => 0
},
- "VERSION" => "1.27",
+ "VERSION" => "1.29",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatch-FileRotate-1.27/README new/Log-Dispatch-FileRotate-1.29/README
--- old/Log-Dispatch-FileRotate-1.27/README 2017-07-06 17:48:44.000000000 +0200
+++ new/Log-Dispatch-FileRotate-1.29/README 2017-07-28 17:15:44.000000000 +0200
@@ -1,7 +1,7 @@
This archive contains the distribution Log-Dispatch-FileRotate,
-version 1.27:
+version 1.29:
Log to Files that Archive/Rotate Themselves
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatch-FileRotate-1.27/SIGNATURE new/Log-Dispatch-FileRotate-1.29/SIGNATURE
--- old/Log-Dispatch-FileRotate-1.27/SIGNATURE 2017-07-06 17:48:44.000000000 +0200
+++ new/Log-Dispatch-FileRotate-1.29/SIGNATURE 2017-07-28 17:15:44.000000000 +0200
@@ -14,15 +14,16 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
-SHA1 5f2848a7a136999809d69d575eaa048911150c01 Changes
+SHA1 117fb6a8ebe95e7bc99da90302d2ab6c601a658a Changes
SHA1 bab88f54ea8c7c2588e407bd69fad8bf7cb47c1b LICENSE
-SHA1 e8eda729f34b53e40683914c05a4f2514b7aa8c2 MANIFEST
+SHA1 4a7726f10a2d40e2ddf0907f67e92453f03e466a MANIFEST
SHA1 eb174e472fc75cb6a5a5f04e1dc740d569ad310b MANIFEST.SKIP
-SHA1 78eb2037a7f576b64612717a38021a7c732af909 META.json
-SHA1 92e3bb780fee17927d31cd6e109f59e2ad43406e META.yml
-SHA1 a444aa6dd3aa9efa9f9fdfc3fb308237a379a74e Makefile.PL
-SHA1 a9d40c8b3367a8e65c0e47bfda1350eb903928ed README
-SHA1 904fc63cbfc4c402cfe493f6173ef8c36fd4ea19 lib/Log/Dispatch/FileRotate.pm
+SHA1 b80a323a6a0a20509667e20879f6e3809010e9ff META.json
+SHA1 8ab48a984f989b1e156c1543f53f0cf4a9ec7878 META.yml
+SHA1 95b3d9dfc8f9c0522d58d0626377b26365372ba8 Makefile.PL
+SHA1 4f55a0709453c16ee46a1f7ede1de6c4f6ce83d4 README
+SHA1 6baf938139d4ed75d632f2b1d68e100991c5d766 lib/Log/Dispatch/FileRotate.pm
+SHA1 468e2f4cfd487b11e031a13ac79a56b2cc502d23 t/author-lockfile-race-condition.t
SHA1 8efad25309730a4d501fb40fc03eda4697303372 t/author-pod-syntax.t
SHA1 c985a5f343adfd44c02ddf90efa70d3601d1c34b t/author-signature.t
SHA1 1b0ff3264a10a8bbb678cc7cbec943d838fc7677 t/basic.t
@@ -33,17 +34,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
-iQIVAwUBWV5b3KQl27WkM10aAQh0PRAA4F/P6I8FUjNf0xODcHyMVwjvFIEsmrKi
-B1NW+Gjfm19KCfop3O236TjqGXM9s5vokQU9X6dRWwCjsB2SfXHsBauJwE5UV5au
-yR3EKeiarii1/L8uy8nCHtTwNQWaO7V31zE6QYDq3Dtfz/pwKC6Qp/qrLeYgPKMM
-ZKo2ZLVW72uCZgzS9d71c7HtyiPQr6tb/puvSzIZ/3vf523WHKCQzdR6LciHxqbp
-ZvWju6j19idDX5oCKRlw274/AwWsiAq+OSpJNi2xCRXAszjVlvK4WYbKVS3ZRqeR
-AGuW4/gQi+SQPlRp9UgQHBNUUaOfwif6BDXWA89V/SnRVdAr9j+VbS5NIy2f/CRG
-Rm2NXLyj5AiegWkt7LFxI1p2vHkkIGbveq4HRJrVsXMScJAl0qGfDV9kX13TqMCN
-cQLHB9og7vkZ3F0OajRZetvlEeUipDLEY7jRtIBQAS+Emc+JjTD0LwToW1siCky4
-4ZM5VmtEmqxgj+qF/ILp5IzCscui6V+vNuMFXK1yBAb+N9TyHMe5yfmxzgNWKJdQ
-xYgf8+W3PDUCXhhdGlynsonQdIPcJrkJ+E8JJSQ64agGyEAD/eSKphD8WOSZU6I1
-jvG88WeLAl5pZDOoFoLY2pm0A268wwO6Q3KNzykl1mAX1cPnQdQXv0Oet6jrJzTP
-+JuANW5xGms=
-=eNkv
+iQIVAwUBWXtVIKQl27WkM10aAQhqkg//Znl8z8bxvhcA1NcdSGRT6n0eSqkh4RTx
+ag86+NcSFIMBrKf8I49T3zGJpUSgYvafT2PFhGvRlpL74yaAQmfS6nLa+tJv/ZsX
+fj2TL6U9Oi+KpppkWXSPvbHL5mCwJq576lnVzLec8AcbfRLKJVungzCLOd3DZxdM
+dA6PbYyA9QIUlt3iVhY8U3m4OYGB9Exu2Odb9I5oMDiIRPA6TMkOpCQcBXVjWXqn
+Qlbf9RaqsOMAPRgivYEk/74NFbgZkmzKRcp7yjnzg56s+xAJfV3StrpIwrjv850q
+hPxsnXC9R4rq1n2d1Bz1JZXfuqOb/Q9QIPtgGdov5ySxoy1Hxh8LZNv8zLqcb/i1
+Md6s6jLcC0MxkhJE7oALLXgHLTYg8jCqPyu3COSz8PSeTZKfsnRzmtH31X4Qou2j
+zsFdJKYq/mT+GD03RmwR+4BhV+MyHOnY0pHYT58xkXxvHU7jM0xQ9nQ+BZBsscx9
+yN0pPKERMK9Yt7IHq3sISuMZdkKBFtn2qVT/TQ96BqYhDA54QH9O3R3QIqUfr23o
+NNcJtLQMVxOHn5C+XEBwAYYR9Gz8SdSnhyVhofllj0CzLv6yVYwXT3WvhA8O19jT
+tgQlTOoOlskqqKyG6x4gwlUZsTR2wnPnpclCPFN5o3PvtSEfFHWayjXSWmAipJ0b
+htiV0L/Mn+A=
+=g55+
-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatch-FileRotate-1.27/lib/Log/Dispatch/FileRotate.pm new/Log-Dispatch-FileRotate-1.29/lib/Log/Dispatch/FileRotate.pm
--- old/Log-Dispatch-FileRotate-1.27/lib/Log/Dispatch/FileRotate.pm 2017-07-06 17:48:44.000000000 +0200
+++ new/Log-Dispatch-FileRotate-1.29/lib/Log/Dispatch/FileRotate.pm 2017-07-28 17:15:44.000000000 +0200
@@ -1,5 +1,5 @@
package Log::Dispatch::FileRotate;
-$Log::Dispatch::FileRotate::VERSION = '1.27';
+$Log::Dispatch::FileRotate::VERSION = '1.29';
# ABSTRACT: Log to Files that Archive/Rotate Themselves
require 5.005;
@@ -13,6 +13,7 @@
use Date::Manip; # For time based recurring rotations
use File::Spec; # For file-names
+use Fcntl ':flock'; # import LOCK_* constants
use Params::Validate qw(validate SCALAR BOOLEAN);
Params::Validate::validation_options( allow_extra => 1 );
@@ -63,7 +64,7 @@
my $lockfile = File::Spec->catpath($vol, $dir, ".".$f.".LCK");
warn "Lock file is $lockfile\n" if $self->{'debug'};
- $self->{'lf'} = $lockfile;
+ $self->{lf} = $lockfile;
# Have we been called with a time based rotation pattern then setup
# timebased stuff. TZ is important and must match current TZ or all
@@ -203,18 +204,17 @@
# Prime our time based data outside the critical code area
my ($in_time_mode,$time_to_rotate) = $self->time_to_rotate();
- # Handle critical code for logging. No changes if someone else is in
- if( !$self->lfhlock_test() )
- {
- warn "$$ waiting on lock\n" if $self->{debug};
- unless($self->lfhlock())
- {
- warn "$$ Log::Dispatch::FileRotate failed to get lock: ", $self->{_lfhlock_test_err}, ". Not logging.\n";
- return;
- }
- warn "$$ got lock after wait\n" if $self->{debug};
+ # Handle critical code for logging. No changes if someone else is in. We
+ # lock a lockfile, not the actual log filehandle because locking doesn't
+ # work properly if the logfile was opened in a parent process for example.
+ my $lfh;
+ unless ($lfh = flopen($self->{lf})) {
+ warn "$$ Log::Dispatch::FileRotate failed to get lock: $!. Not logging.\n";
+ return;
}
+ warn "$$ got lock\n" if $self->{debug};
+
my $have_to_rotate = 0;
my $size = (stat($fh))[7]; # Stat the handle to get real size
my $inode = (stat($fh))[1]; # get real inode
@@ -282,7 +282,8 @@
}
$self->logit($p{message});
- $self->lfhunlock();
+
+ safe_flock($lfh, LOCK_UN);
}
sub DESTROY
@@ -293,10 +294,6 @@
{
delete $self->{LDF}; # Should get rid of current LDF
}
-
- # Clean up locks
- close $self->{lfh} if $self->{lfh};
- unlink $self->{lf} if $self->{lf} && -f $self->{lf};
}
sub logit
@@ -581,15 +578,12 @@
return( shift(@{$self->{'dates'}{$pat}}) );
}
-
# Lock and unlock routines. For when we need to write a message.
-use Fcntl ':flock'; # import LOCK_* constants
-
sub lock
{
my $self = shift;
- flock($self->{LDF}->{fh},LOCK_EX);
+ safe_flock($self->{LDF}->{fh},LOCK_EX);
# Make sure we are at the EOF
seek($self->{LDF}->{fh}, 0, 2);
@@ -601,67 +595,76 @@
sub unlock
{
my $self = shift;
- flock($self->{LDF}->{fh},LOCK_UN);
+ safe_flock($self->{LDF}->{fh},LOCK_UN);
warn localtime() . " $$ unLocked\n" if $self->{debug};
}
-# Lock and unlock routines. For when we need to roll the logs.
-#
-# Note: On May 1, Dan Waldheim's good news was:
-# I discovered something interesting about forked processes and locking.
-# If the parent "open"s the filehandle and then forks, exclusive locks
-# don't work properly between the parent and children. Anyone can grab a
-# lock while someone else thinks they have it. To work properly the
-# "open" has to be done within each process.
-#
-# Thanks Dan
-sub lfhlock_test
-{
- my $self = shift;
+# Inspired by BSD's flopen(), returns filehandle on success
+sub flopen {
+ my $path = shift;
- if (open(LFH, ">>$self->{lf}"))
- {
- $self->{lfh} = *LFH;
- if (flock($self->{lfh}, LOCK_EX | LOCK_NB))
- {
- warn "$$ got lock on Lock File ".$self->{lfh}."\n" if $self->{debug};
- return 1;
+ my $flags = LOCK_EX;
+
+ my $fh;
+
+ while (1) {
+ unless (open $fh, '>>', $path) {
+ return;
}
- }
- else
- {
- $self->{_lfhlock_test_err} = "couldn't lock $self->{lf}: $!";
- $self->{lfh} = 0;
- warn "$$ couldn't get lock on Lock File\n" if $self->{debug};
- return 0;
- }
-}
-sub lfhlock
-{
- my $self = shift;
+ unless (safe_flock($fh, $flags)) {
+ return;
+ }
- if (!$self->{lfh})
- {
- if (!open(LFH, ">>$self->{lf}"))
+ my @path_stat = stat $path;
+
+ unless (@path_stat) {
+ # file disappeared fron under our feet
+ close $fh;
+ next;
+ }
+
+ my @fh_stat = stat $fh;
+ unless (@fh_stat) {
+ # This should never happen
+ return;
+ }
+
+ unless ($^O =~ /^MSWin/) {
+ # stat on a filehandle and path return different "dev" and "rdev"
+ # fields on windows
+ if ($path_stat[0] != $fh_stat[0]) {
+ # file was changed under our feet. try again;
+ close $fh;
+ next;
+ }
+ }
+
+ # check that device and inode are the same for the path and fh
+ if ($path_stat[1] != $fh_stat[1])
{
- return 0;
+ # file was changed under our feet. try again;
+ close $fh;
+ next;
}
- $self->{lfh} = *LFH;
- }
- flock($self->{lfh},LOCK_EX);
+ return $fh;
+ }
}
-sub lfhunlock
-{
- my $self = shift;
+sub safe_flock {
+ my ($fh, $flags) = @_;
- if($self->{lfh})
- {
- flock($self->{lfh},LOCK_UN);
- close $self->{lfh};
- $self->{lfh} = 0;
+ while (1) {
+ unless (flock $fh, $flags) {
+ # retry if we were interrupted or we are in non-blocking and the file is locked
+ next if $!{EAGAIN} or $!{EWOULDBLOCK};
+
+ return 0;
+ }
+ else {
+ return 1;
+ }
}
}
@@ -670,8 +673,6 @@
$_[0]->{'debug'} = $_[1];
}
-__END__
-
=pod
=head1 NAME
@@ -680,7 +681,7 @@
=head1 VERSION
-version 1.27
+version 1.29
=head1 SYNOPSIS
@@ -963,3 +964,8 @@
the same terms as the Perl 5 programming language system itself.
=cut
+
+__END__
+
+
+# vim: noet
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Dispatch-FileRotate-1.27/t/author-lockfile-race-condition.t new/Log-Dispatch-FileRotate-1.29/t/author-lockfile-race-condition.t
--- old/Log-Dispatch-FileRotate-1.27/t/author-lockfile-race-condition.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Log-Dispatch-FileRotate-1.29/t/author-lockfile-race-condition.t 2017-07-28 17:15:44.000000000 +0200
@@ -0,0 +1,129 @@
+#!/usr/bin/perl -w
+
+BEGIN {
+ unless ($ENV{AUTHOR_TESTING}) {
+ print qq{1..0 # SKIP these tests are for testing by the author\n};
+ exit
+ }
+}
+
+
+# test case for regression where the .LCK file was unlinked in DESTROY(),
+# allowing multiple processes to enter the critical section at the same time.
+
+use strict;
+use warnings;
+use Path::Tiny;
+use IO::Handle;
+use Test::More;
+
+my $pid = fork;
+if (!defined $pid) {
+ plan skip_all => 'fork() does not work on this platform';
+}
+elsif ($pid == 0) {
+ # child
+ exit;
+}
+else {
+ # parent
+ waitpid $pid, 0;
+}
+
+plan tests => 2;
+
+use_ok 'Log::Dispatch::FileRotate' or exit 1;
+
+shim_logit_delay();
+
+my $tempdir = Path::Tiny->tempdir;
+my $warnings_file = $tempdir->child('warnings.txt')->stringify;
+
+$pid = fork;
+if (!defined $pid) {
+ die "fork failed: $!\n";
+}
+if ($pid == 0) {
+ run_processes();
+ exit;
+}
+else {
+ waitpid($pid, 0);
+}
+
+my $output = read_warnings($warnings_file);
+
+is $output, 'got lock:exiting:got lock:exiting:got lock:exiting';
+
+# shim a delay in before logit() so that it will wait for the child process
+# to enter the critical section
+sub shim_logit_delay {
+ no warnings 'redefine';
+
+ my $orig_logit = \&Log::Dispatch::FileRotate::logit;
+ *Log::Dispatch::FileRotate::logit = sub {
+ sleep 3;
+ &$orig_logit(@_);
+ };
+}
+
+sub run_processes {
+ open my $warnfh, '+>', $warnings_file
+ or die "Failed to open warnings file: $!";
+
+ $warnfh->autoflush(1);
+
+ $SIG{__WARN__} = sub {
+ my $msg = shift;
+
+ # we only want the "got lock" and "exiting" lines
+ if ($msg =~ /got lock/ or $msg =~ /exiting/) {
+ # strip off pid numbers from front of message
+ $msg =~ s/^[0-9]+ //;
+
+ # save in the warnings file
+ print $warnfh $msg;
+ }
+ };
+
+ my $file = Log::Dispatch::FileRotate->new(
+ filename => $tempdir->child('test.log')->stringify,
+ min_level => 'info',
+ DEBUG => 1);
+
+ my $child1_pid = fork;
+ if ($child1_pid == 0) {
+ $file->log(level => 'info', message => "first_child\n");
+ }
+ else {
+ sleep 1;
+ my $child2_pid = fork;
+ if ($child2_pid == 0) {
+ $file->log(level => 'info', message => "second_child\n");
+ }
+ else {
+ waitpid($child1_pid, 0);
+ $file->log(level => 'info', message => "parent\n");
+ }
+ }
+
+ warn "$$ exiting\n";
+
+ delete $SIG{__WARN__};
+ close $warnfh;
+}
+
+sub read_warnings {
+ my $file = shift;
+
+ local $/ = undef;
+
+ open my $fh, '<', $file;
+
+ my $content = <$fh>;
+
+ $content =~ s/[\r\n]+$//s;
+ $content =~ s/[\r\n]+/:/sg;
+
+ return $content;
+}
1
0
Hello community,
here is the log from the commit of package perl-Cpanel-JSON-XS for openSUSE:Factory checked in at 2017-08-28 15:10:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Cpanel-JSON-XS (Old)
and /work/SRC/openSUSE:Factory/.perl-Cpanel-JSON-XS.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Cpanel-JSON-XS"
Mon Aug 28 15:10:19 2017 rev:7 rq:516813 version:3.0237
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Cpanel-JSON-XS/perl-Cpanel-JSON-XS.changes 2017-05-03 15:57:10.880300414 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Cpanel-JSON-XS.new/perl-Cpanel-JSON-XS.changes 2017-08-28 15:10:32.952533985 +0200
@@ -1,0 +2,41 @@
+Thu Aug 3 05:16:12 UTC 2017 - coolo(a)suse.com
+
+- updated to 3.0237
+ see /usr/share/doc/packages/perl-Cpanel-JSON-XS/Changes
+
+ 3.0237 2017-07-28 (rurban)
+ - relax inf/nan tests as in t/op/infnan.t for windows.
+ we cannot know if msvcrt.dll or the new ucrt.dll is used.
+ try a list of valid values.
+
+-------------------------------------------------------------------
+Fri Jul 28 05:15:31 UTC 2017 - coolo(a)suse.com
+
+- updated to 3.0236
+ see /usr/share/doc/packages/perl-Cpanel-JSON-XS/Changes
+
+ 3.0236 2017-07-27 (rurban)
+ - Stringify true again as "1", not as "true" due to popular demand.
+ (haarg #87)
+
+ 3.0235 2017-07-27 (rurban)
+ - Disallow duplicate keys by default, only allow them in relaxed
+ mode. (#75)
+ Analog to invalid unicode, which does error by default.
+ RFC 7159 section 4 says that "The names within an object should be unique."
+ So it's either i_ (undefined) or n_ (errors).
+ See http://seriot.ch/parsing_json.php#24
+ This is different to the other JSON modules, which do have a different
+ interpretation of the spec. Use relaxed for backcompat if you want to
+ allow duplicate keys.
+ - De-fragilize t/96_mojo.t false test to "". It mostly is.
+
+ 3.0234 2017-07-27 (rurban)
+ - Fix and unify utf8 handling with 5.6.2
+ and improve many utf8 tests. (pali #88)
+ - Add tests for boolean sv_yes and sv_no (pali #88)
+ - Check for correct module in %INC (Patrick Cronin #89)
+ - Fix appveyor smoke with latest strawberry, use $Config{make} (pali #91)
+ - Fix inf/nan for strawberry 5.26
+
+-------------------------------------------------------------------
Old:
----
Cpanel-JSON-XS-3.0233.tar.gz
New:
----
Cpanel-JSON-XS-3.0237.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Cpanel-JSON-XS.spec ++++++
--- /var/tmp/diff_new_pack.eyrObp/_old 2017-08-28 15:10:34.264349446 +0200
+++ /var/tmp/diff_new_pack.eyrObp/_new 2017-08-28 15:10:34.292345508 +0200
@@ -17,7 +17,7 @@
Name: perl-Cpanel-JSON-XS
-Version: 3.0233
+Version: 3.0237
Release: 0
%define cpan_name Cpanel-JSON-XS
Summary: Cpanel Fork of Json::Xs, Fast and Correct Serializing
++++++ Cpanel-JSON-XS-3.0233.tar.gz -> Cpanel-JSON-XS-3.0237.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/.appveyor.yml new/Cpanel-JSON-XS-3.0237/.appveyor.yml
--- old/Cpanel-JSON-XS-3.0233/.appveyor.yml 2017-05-01 14:18:48.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/.appveyor.yml 2017-07-27 22:15:44.000000000 +0200
@@ -45,4 +45,4 @@
build: off
test_script:
- - 't\appveyor-test.bat'
+ - cmd: 'call t\appveyor-test.bat'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/.travis.yml new/Cpanel-JSON-XS-3.0237/.travis.yml
--- old/Cpanel-JSON-XS-3.0233/.travis.yml 2017-03-29 11:51:37.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/.travis.yml 2017-07-27 22:15:44.000000000 +0200
@@ -11,10 +11,11 @@
- "5.20"
- "5.22"
- "5.24"
- - "5.24-thr"
- - "5.24-dbg"
- - "5.24-thr-dbg"
- - "5.24-mb"
+ - "5.26"
+ #- "5.26-thr"
+ #- "5.26-dbg"
+ #- "5.26-thr-dbg"
+ #- "5.26-mb"
- "dev"
# - "blead"
@@ -26,10 +27,10 @@
# directories:
# - /home/travis/perl5/perlbrew/
-#addons:
-# apt:
-# packages:
-# - gperf
+addons:
+ apt:
+ packages:
+ - aspell
# blead and 5.6 stumble over YAML and more missing dependencies
# for Devel::Cover::Report::Coveralls
@@ -39,9 +40,12 @@
- ln -s `which true` /home/travis/bin/cpansign
- eval $(curl https://travis-perl.github.io/init) --auto
install:
- - export AUTOMATED_TESTING=1 HARNESS_TIMER=1 AUTHOR_TESTING=0 RELEASE_TESTING=0
+ - export AUTOMATED_TESTING=1 HARNESS_TIMER=1
- cpan-install --deps # installs prereqs, including recommends
- cpan-install JSON JSON::PP JSON::XS Mojo::JSON Test::LeakTrace Time::Piece
+ - test x$AUTHOR_TESTING = x1 && cpan-install Test::CPAN::Meta Test::MinimumVersion
+ Pod::Spell::CommonMistakes Class::XSAccessor Test::Kwalitee Test::Spelling
+ Text::CSV_XS Test::Pod Test::Pod::Coverage
- cpan-install --coverage # installs converage prereqs, if enabled
before_script:
@@ -55,7 +59,7 @@
matrix:
fast_finish: true
include:
- - perl: "5.18"
+ - perl: "5.26"
env: COVERAGE=1 AUTHOR_TESTING=1 # enables coverage+coveralls reporting
allow_failures:
- env: COVERAGE=1 AUTHOR_TESTING=1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/Changes new/Cpanel-JSON-XS-3.0237/Changes
--- old/Cpanel-JSON-XS-3.0233/Changes 2017-05-01 15:11:15.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/Changes 2017-07-28 11:20:18.000000000 +0200
@@ -2,6 +2,35 @@
TODO: http://stevehanov.ca/blog/index.php?id=104 compression
+3.0237 2017-07-28 (rurban)
+ - relax inf/nan tests as in t/op/infnan.t for windows.
+ we cannot know if msvcrt.dll or the new ucrt.dll is used.
+ try a list of valid values.
+
+3.0236 2017-07-27 (rurban)
+ - Stringify true again as "1", not as "true" due to popular demand.
+ (haarg #87)
+
+3.0235 2017-07-27 (rurban)
+ - Disallow duplicate keys by default, only allow them in relaxed
+ mode. (#75)
+ Analog to invalid unicode, which does error by default.
+ RFC 7159 section 4 says that "The names within an object should be unique."
+ So it's either i_ (undefined) or n_ (errors).
+ See http://seriot.ch/parsing_json.php#24
+ This is different to the other JSON modules, which do have a different
+ interpretation of the spec. Use relaxed for backcompat if you want to
+ allow duplicate keys.
+ - De-fragilize t/96_mojo.t false test to "". It mostly is.
+
+3.0234 2017-07-27 (rurban)
+ - Fix and unify utf8 handling with 5.6.2
+ and improve many utf8 tests. (pali #88)
+ - Add tests for boolean sv_yes and sv_no (pali #88)
+ - Check for correct module in %INC (Patrick Cronin #89)
+ - Fix appveyor smoke with latest strawberry, use $Config{make} (pali #91)
+ - Fix inf/nan for strawberry 5.26
+
3.0233 2017-05-01 (rurban)
- 5.6 test fixes, silence some cc warnings,
add coverage and release targets, fix appveyor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/MANIFEST new/Cpanel-JSON-XS-3.0237/MANIFEST
--- old/Cpanel-JSON-XS-3.0233/MANIFEST 2017-05-01 16:54:36.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/MANIFEST 2017-07-28 13:14:53.000000000 +0200
@@ -39,6 +39,7 @@
t/23_array_ctx.t
t/24_freeze_recursion.t
t/25_boolean.t
+t/26_duplicate.t
t/30_jsonspec.t
t/31_bom.t
t/52_object.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/META.json new/Cpanel-JSON-XS-3.0237/META.json
--- old/Cpanel-JSON-XS-3.0233/META.json 2017-05-01 16:54:36.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/META.json 2017-07-28 13:14:53.000000000 +0200
@@ -1,16 +1,16 @@
{
"abstract" : "cPanel fork of JSON::XS, fast and correct serializing",
"author" : [
- "Reini Urban <rurban(a)cpanel.net>"
+ "Reini Urban <rurban(a)cpan.org>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010",
+ "generated_by" : "ExtUtils::MakeMaker version 8.0404, CPAN::Meta::Converter version 2.150010",
"license" : [
"perl_5"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
- "version" : "2"
+ "version" : 2
},
"name" : "Cpanel-JSON-XS",
"no_index" : {
@@ -41,7 +41,6 @@
"bugtracker" : {
"web" : "https://github.com/rurban/Cpanel-JSON-XS/issues"
},
- "homepage" : "http://software.schmorp.de/pkg/JSON-XS.html",
"license" : [
"http://dev.perl.org/licenses/"
],
@@ -49,6 +48,6 @@
"url" : "https://github.com/rurban/Cpanel-JSON-XS"
}
},
- "version" : "3.0233",
- "x_serialization_backend" : "JSON::PP version 2.27400"
+ "version" : "3.0237",
+ "x_serialization_backend" : "JSON::PP version 2.93"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/META.yml new/Cpanel-JSON-XS-3.0237/META.yml
--- old/Cpanel-JSON-XS-3.0233/META.yml 2017-05-01 16:54:35.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/META.yml 2017-07-28 13:14:53.000000000 +0200
@@ -1,13 +1,13 @@
---
abstract: 'cPanel fork of JSON::XS, fast and correct serializing'
author:
- - 'Reini Urban <rurban(a)cpanel.net>'
+ - 'Reini Urban <rurban(a)cpan.org>'
build_requires:
ExtUtils::MakeMaker: '0'
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010'
+generated_by: 'ExtUtils::MakeMaker version 8.0404, CPAN::Meta::Converter version 2.150010'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -21,8 +21,7 @@
Pod::Text: '2.08'
resources:
bugtracker: https://github.com/rurban/Cpanel-JSON-XS/issues
- homepage: http://software.schmorp.de/pkg/JSON-XS.html
license: http://dev.perl.org/licenses/
repository: https://github.com/rurban/Cpanel-JSON-XS
-version: '3.0233'
+version: '3.0237'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/Makefile.PL new/Cpanel-JSON-XS-3.0237/Makefile.PL
--- old/Cpanel-JSON-XS-3.0233/Makefile.PL 2017-05-01 14:23:34.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/Makefile.PL 2017-07-27 22:28:41.000000000 +0200
@@ -29,7 +29,7 @@
LICENSE => 'perl',
($] >= 5.005 ?
(ABSTRACT_FROM => 'XS.pm',
- AUTHOR => 'Reini Urban <rurban(a)cpanel.net>',
+ AUTHOR => 'Reini Urban <rurban(a)cpan.org>',
# ORIGINAL_AUTHOR => 'Marc Lehmann <schmorp(a)schmorp.de>'
) : ()),
($ExtUtils::MakeMaker::VERSION gt '6.46'
@@ -67,7 +67,6 @@
bugtracker => 'https://github.com/rurban/Cpanel-JSON-XS/issues',
# Note: https://rt.cpan.org/Public/Dist/Display.html?Queue=Cpanel-JSON-XS is also observed
repository => 'https://github.com/rurban/Cpanel-JSON-XS',
- homepage => 'http://software.schmorp.de/pkg/JSON-XS.html',
},
}
) : ()),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/README new/Cpanel-JSON-XS-3.0237/README
--- old/Cpanel-JSON-XS-3.0233/README 2017-05-01 16:54:37.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/README 2017-07-28 13:14:54.000000000 +0200
@@ -123,7 +123,8 @@
- interop for true/false overloading. JSON::XS, JSON::PP and Mojo::JSON
representations for booleans are accepted and JSON::XS accepts
Cpanel::JSON::XS booleans [#13, #37] Fixed overloading of booleans.
- Cpanel::JSON::XS::true stringifies now to true, not 1.
+ Cpanel::JSON::XS::true stringifies again to "1", not "true", analog to
+ all other JSON modules.
- native boolean mapping of yes and no to true and false, as in
YAML::XS. In perl "!0" is yes, "!1" is no. The JSON value true maps to
@@ -166,12 +167,13 @@
- extended testsuite, passes all http://seriot.ch/parsing_json.html
tests. In fact it is the only know JSON decoder which does so, while
- being the fastest.
+ also being the fastest.
- support many more options and methods from JSON::PP: stringify_infnan,
allow_unknown, allow_stringify, allow_barekey, encode_stringify,
allow_bignum, allow_singlequote, sort_by (partially), escape_slash,
- convert_blessed, ... optional decode_json(, allow_nonref) arg
+ convert_blessed, ... optional decode_json(, allow_nonref) arg. relaxed
+ implements allow_dupkeys.
- support all 5 unicode BOM's: UTF-8, UTF-16LE, UTF-16BE, UTF-32LE,
UTF-32BE, encoding internally to UTF-8.
@@ -541,6 +543,13 @@
{ foo:"bar" }
+ * duplicate keys
+
+ With relaxed decoding of duplicate keys does not error and are
+ silently accepted. See <http://seriot.ch/parsing_json.php#24>:
+ RFC 7159 section 4: "The names within an object should be
+ unique."
+
$json = $json->canonical ([$enable])
$enabled = $json->get_canonical
If $enable is true (or missing), then the "encode" method will
@@ -1301,7 +1310,7 @@
respectively. You can also use "\1" and "\0" or "!0" and "!1"
directly if you want.
- encode_json [Cpanel::JSON::XS::true, Cpanel::JSON::XS::true] # yields [false,true]
+ encode_json [Cpanel::JSON::XS::true, Cpanel::JSON::XS::true] # yields [false,true]
encode_json [!1, !0] # yields [false,true]
blessed objects
@@ -1983,7 +1992,7 @@
AUTHOR
Marc Lehmann <schmorp(a)schmorp.de>, http://home.schmorp.de/
- Reini Urban <rurban(a)cpan.org>, http://cpanel.net/
+ Reini Urban <rurban(a)cpan.org>
MAINTAINER
Reini Urban <rurban(a)cpan.org>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/SIGNATURE new/Cpanel-JSON-XS-3.0237/SIGNATURE
--- old/Cpanel-JSON-XS-3.0233/SIGNATURE 2017-05-01 16:54:36.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/SIGNATURE 2017-07-28 13:14:54.000000000 +0200
@@ -14,25 +14,25 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-SHA1 b1dc76bb84e636c3d4a32dc6676ae3259fa25aeb .appveyor.yml
-SHA1 bddff1b119b111563d9c812b92e28289c3ea450e .travis.yml
+SHA1 66ade5a767190219d6892f1e4d59fea22be138d8 .appveyor.yml
+SHA1 041783628ea621df1271501c341141be0c4cd0c2 .travis.yml
SHA1 9a56f3b919dfc8fced3803e165a2e38de62646e5 COPYING
-SHA1 7eb2da232117269dbdd796c7eb869d7b143ea767 Changes
-SHA1 dddd524be72a6784fc85f96bd6f054bba0f3cd26 MANIFEST
-SHA1 1b54ffa91cf810f678afdece79df596f0e2c77ff META.json
-SHA1 5232306e51deaf16449d2336f1cce6a3163b3144 META.yml
-SHA1 7ddbf57c8a0b04ca11e50c1fcf534ec19b2a0806 Makefile.PL
-SHA1 5f9c081e4f784fbfccc7df27bf386da13f3b6301 README
-SHA1 faf7ee3dcf51ca9dee6c8ab4864632cfcf2aa0b8 XS.pm
-SHA1 de4fa143391188f9de660d068715fe134a1ba97c XS.xs
+SHA1 05e39fba1f3550cca1f9d6f15fb2fd472b133fa6 Changes
+SHA1 1cb5b409cb86b392753ca0ea2d6ba718f104b128 MANIFEST
+SHA1 0293f584ff61e62d9a5efea0bb74191a93eaae62 META.json
+SHA1 dc0b25e34b021a66f298791270c523c70812b347 META.yml
+SHA1 9f4e725e4e2fa7e255d1fce4314446c77da64035 Makefile.PL
+SHA1 ad85457cffa84dc07f9016b170f0ea7894a2b5eb README
+SHA1 9a3fda3cb684c8a4d482472640aa0e38de6e55a7 XS.pm
+SHA1 3022dd0522d14476779a21d7d9ad550bbea4a3a3 XS.xs
SHA1 27b0bc7e0cd6fe90876fb3d285065c6a07cca028 XS/Boolean.pm
SHA1 9e4b04d1af085e6959aaed51734475d350136392 bin/cpanel_json_xs
SHA1 ea72bbe602baaabdd0004ef1d7e7cc3334b42bb4 eg/bench
SHA1 6e5d2153e1931be4e416c8feef7f7dfcab0f91b4 ppport.h
SHA1 f7101031fd3fde35fe2421a07ab6cee8a822c00c t/00_load.t
-SHA1 2e04c54c8e6bf0d8090bcbc17487238a98f5e0aa t/01_utf8.t
+SHA1 c8f0471da3ab4cab5e197a5362e24c0e2958f589 t/01_utf8.t
SHA1 9cf542e0bf68c90749420c7d07d7be80e1860592 t/02_error.t
-SHA1 1dbcee8e27652d901af1c7f03a06a081e3b69092 t/03_types.t
+SHA1 7ceff3f6fafe1ca6c3bb1c6e3042178753966013 t/03_types.t
SHA1 d876bdffc381f4f67ec90f9c331e3ec2138946e2 t/04_dwiw_encode.t
SHA1 94b1130a9b760102e0a24ad518f1e7439ef9122c t/05_dwiw_decode.t
SHA1 d8c75d0fc7061469eba29275eb366b593c156f7d t/06_pc_pretty.t
@@ -53,7 +53,7 @@
SHA1 8dece990d5b07df0ae1b6364caefced774cb587d t/114_decode_prefix.t
SHA1 eb050780996f1e428c87bf6375415ca4c863cbb2 t/115_tie_ixhash.t
SHA1 3477b0490b8666e451ac15df97f9f35d72c946b1 t/116_incr_parse_fixed.t
-SHA1 528c68984530cf1a3bdfbdb6c0792b23255552b9 t/117_numbers.t
+SHA1 5dc6d574882edd0d6c49ec3d5daeb8d9d4afc246 t/117_numbers.t
SHA1 d1003d09b5da3609977362bcda64b2c593039a6b t/11_pc_expo.t
SHA1 c0037e62cefc891df4bb84a110051963a60e9f8c t/12_blessed.t
SHA1 4d553fd6b5e4486f087babff2946e0cb4b2c38fb t/13_limit.t
@@ -69,8 +69,9 @@
SHA1 3d155f37e687f929bd0cae767dc2dbf1993b73c9 t/22_comment_at_eof.t
SHA1 1ffb0242c800720c565a9e148e184bfa9d54b1c4 t/23_array_ctx.t
SHA1 2d2ccc7877250f80755a74acd0c3c2f21e606aae t/24_freeze_recursion.t
-SHA1 de63833eb7d922d21339a210680ebf84508b987a t/25_boolean.t
-SHA1 e69768ad5d6900497ab088e74473b3208e3a4bbd t/30_jsonspec.t
+SHA1 b1af7c633a8654de5180ae42289f8fe6d86263de t/25_boolean.t
+SHA1 b731e24e61fd24c19c7b2e636bf20b368fbc851e t/26_duplicate.t
+SHA1 7f4c74f3c46477c513a2baf07a60c94969d2e0e9 t/30_jsonspec.t
SHA1 3705a4bc706627dde26e444f41342b88850cbe98 t/31_bom.t
SHA1 ded6191143511074b0cfa5c7ff990e0cbaa11ff9 t/52_object.t
SHA1 292cb103dae404294cb77c68e3f28a1239f603b9 t/53_readonly.t
@@ -78,12 +79,12 @@
SHA1 f08d2ec9499dc0d0e5ede5691c75b865f466b69c t/55_modifiable.t
SHA1 7ad4a15bfdec5bbd757a48a4670f0275fb2ffd71 t/96_interop.t
SHA1 1caf7492922f42dd78cf34b2de7bba5481f84fd8 t/96_interop_pp.t
-SHA1 711a469b7cf72b40bbe94ce65264d1c0a3f0a016 t/96_mojo.t
+SHA1 758322045b9e08bfd98122a662950eb86efb7180 t/96_mojo.t
SHA1 3291c73ec3a19df551d0fff59695153616fc982a t/97_unshare_hek.t
SHA1 1bf6336a76101f747b84c35cca38c4e8bacb9224 t/98_56only.t
SHA1 e5e4ea9e68154f9adb4e5e19a86c96efb1704d02 t/99_binary.t
SHA1 e6078e2fc5c375d45498494bb91487834601a189 t/_unicode_handling.pm
-SHA1 4fe1bc58fd22b56b331ef2050977bd488588919a t/appveyor-test.bat
+SHA1 ef62decbf1634f795ef03babe0b36ab9855f263b t/appveyor-test.bat
SHA1 483157c2a683750b52011f4b6cc00fc3b4381d9a t/gh70-asan.t
SHA1 413be8df242f37f68aa3841888174e545cba5b2f t/test_parsing/i_number_neg_int_huge_exp.json
SHA1 fa1cc74fc07e84b1a18883a4f5e85472c41df793 t/test_parsing/i_number_pos_double_huge_exp.json
@@ -424,7 +425,7 @@
SHA1 5cd847ba5ed5d1a90807dbf8891bf1690918cb5e t/z_kwalitee.t
SHA1 6dfd7f5112f80b65e84916c780a0b1a71aad32dc t/z_leaktrace.t
SHA1 e3259ac6c4bd7f3349cf6f2ff829827483bc749d t/z_meta.t
-SHA1 741e9e8bf600c7f7441794fe49ea8904cfd4bf58 t/z_perl_minimum_version.t
+SHA1 204e8376b847824292d6630be5b0ecfb54ad9a2b t/z_perl_minimum_version.t
SHA1 d91cc1b39fcb1dbf23c11ebb5885cfaaeb2c3a50 t/z_pod-coverage.t
SHA1 2eb526b1649c6306df677d7ae63433856b672476 t/z_pod-spell-mistakes.t
SHA1 6e74cfbeb5080643d126b9d74f2f7e6dad26b013 t/z_pod-spelling.t
@@ -433,7 +434,7 @@
SHA1 e93c9b53438be114c25aa426742e24f4343057a7 typemap
-----BEGIN PGP SIGNATURE-----
-iF0EARECAB0WIQRZHhhUcL58V8z0UW2abZJij/3JQgUCWQdMLAAKCRCabZJij/3J
-Qij9AJ0WBByTlFpF82C91mJ1SncHd6/k0wCeO6iIEafqRW21gWAF+GrNnPvvHYg=
-=wI+L
+iF0EARECAB0WIQRZHhhUcL58V8z0UW2abZJij/3JQgUCWXscrQAKCRCabZJij/3J
+QuLWAJ9MygjIcjr3je/GWcbxuToLjGUADwCgi4KIy98+e+HNEpVgBKEy+pqXeec=
+=7QEI
-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/XS.pm new/Cpanel-JSON-XS-3.0237/XS.pm
--- old/Cpanel-JSON-XS-3.0233/XS.pm 2017-05-01 15:11:32.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/XS.pm 2017-07-28 11:20:18.000000000 +0200
@@ -1,7 +1,7 @@
package Cpanel::JSON::XS;
-our $VERSION = '3.0233';
+our $VERSION = '3.0237';
our $XS_VERSION = $VERSION;
-$VERSION = eval $VERSION;
+# $VERSION = eval $VERSION;
=pod
@@ -112,16 +112,17 @@
- stricter decode_json() as documented. non-refs are disallowed.
added a 2nd optional argument. decode() honors now allow_nonref.
-- fixed encode of numbers for dual-vars. Different string representations
- are preserved, but numbers with temporary strings which represent the same number
- are here treated as numbers, not strings. Cpanel::JSON::XS is a bit slower, but
- preserves numeric types better.
-
-- numbers ending with .0 stay numbers, are not converted to integers. [#63]
- dual-vars which are represented as number not integer (42+"bar" != 5.8.9)
- are now encoded as number (=> 42.0) because internally it's now a NOK type.
- However !!1 which is wrongly encoded in 5.8 as "1"/1.0 is still represented
- as integer.
+- fixed encode of numbers for dual-vars. Different string
+ representations are preserved, but numbers with temporary strings
+ which represent the same number are here treated as numbers, not
+ strings. Cpanel::JSON::XS is a bit slower, but preserves numeric
+ types better.
+
+- numbers ending with .0 stay numbers, are not converted to
+ integers. [#63] dual-vars which are represented as number not
+ integer (42+"bar" != 5.8.9) are now encoded as number (=> 42.0)
+ because internally it's now a NOK type. However !!1 which is
+ wrongly encoded in 5.8 as "1"/1.0 is still represented as integer.
- different handling of inf/nan. Default now to null, optionally with
stringify_infnan() to "inf"/"nan". [#28, #32]
@@ -129,14 +130,14 @@
- added C<binary> extension, non-JSON and non JSON parsable, allows
C<\xNN> and C<\NNN> sequences.
-- 5.6.2 support; sacrificing some utf8 features (assuming bytes all-over),
- no multi-byte unicode characters with 5.6.
+- 5.6.2 support; sacrificing some utf8 features (assuming bytes
+ all-over), no multi-byte unicode characters with 5.6.
- interop for true/false overloading. JSON::XS, JSON::PP and Mojo::JSON
representations for booleans are accepted and JSON::XS accepts
Cpanel::JSON::XS booleans [#13, #37]
- Fixed overloading of booleans. Cpanel::JSON::XS::true stringifies now
- to true, not 1.
+ Fixed overloading of booleans. Cpanel::JSON::XS::true stringifies again
+ to "1", not "true", analog to all other JSON modules.
- native boolean mapping of yes and no to true and false, as in YAML::XS.
In perl C<!0> is yes, C<!1> is no.
@@ -174,20 +175,22 @@
- use ppport.h, sanify XS.xs comment styles, harness C coding style
-- common::sense is optional. When available it is not used in the published
- production module, just during development and testing.
+- common::sense is optional. When available it is not used in the
+ published production module, just during development and testing.
-- extended testsuite, passes all http://seriot.ch/parsing_json.html tests.
- In fact it is the only know JSON decoder which does so, while being the fastest.
+- extended testsuite, passes all http://seriot.ch/parsing_json.html
+ tests. In fact it is the only know JSON decoder which does so,
+ while also being the fastest.
- support many more options and methods from JSON::PP:
stringify_infnan, allow_unknown, allow_stringify, allow_barekey,
- encode_stringify, allow_bignum, allow_singlequote, sort_by (partially),
- escape_slash, convert_blessed, ...
- optional decode_json(, allow_nonref) arg
+ encode_stringify, allow_bignum, allow_singlequote, sort_by
+ (partially), escape_slash, convert_blessed, ... optional
+ decode_json(, allow_nonref) arg.
+ relaxed implements allow_dupkeys.
-- support all 5 unicode BOM's: UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE,
- encoding internally to UTF-8.
+- support all 5 unicode BOM's: UTF-8, UTF-16LE, UTF-16BE, UTF-32LE,
+ UTF-32BE, encoding internally to UTF-8.
=cut
@@ -197,7 +200,9 @@
sub to_json($@) {
if ($] >= 5.008) {
require Carp;
- Carp::croak ("Cpanel::JSON::XS::to_json has been renamed to encode_json, either downgrade to pre-2.0 versions of Cpanel::JSON::XS or rename the call");
+ Carp::croak ("Cpanel::JSON::XS::to_json has been renamed to encode_json,".
+ " either downgrade to pre-2.0 versions of Cpanel::JSON::XS or".
+ " rename the call");
} else {
_to_json(@_);
}
@@ -206,7 +211,9 @@
sub from_json($@) {
if ($] >= 5.008) {
require Carp;
- Carp::croak ("Cpanel::JSON::XS::from_json has been renamed to decode_json, either downgrade to pre-2.0 versions of Cpanel::JSON::XS or rename the call");
+ Carp::croak ("Cpanel::JSON::XS::from_json has been renamed to decode_json,".
+ " either downgrade to pre-2.0 versions of Cpanel::JSON::XS or".
+ " rename the call");
} else {
_from_json(@_);
}
@@ -235,9 +242,9 @@
=item $perl_scalar = decode_json $json_text [, $allow_nonref ]
-The opposite of C<encode_json>: expects an UTF-8 (binary) string of an json reference
-and tries to parse that as an UTF-8 encoded JSON text, returning the resulting
-reference. Croaks on error.
+The opposite of C<encode_json>: expects an UTF-8 (binary) string of an
+json reference and tries to parse that as an UTF-8 encoded JSON text,
+returning the resulting reference. Croaks on error.
This function call is functionally identical to:
@@ -249,18 +256,20 @@
3.0116 and JSON::XS did not set allow_nonref but allowed them due to a
bug in the decoder.
-If the new optional $allow_nonref argument is set and not false, the allow_nonref
-option will be set and the function will act is described as in the relaxed RFC 7159
-allowing all values such as objects, arrays, strings, numbers, "null", "true", and "false".
+If the new optional $allow_nonref argument is set and not false, the
+allow_nonref option will be set and the function will act is described
+as in the relaxed RFC 7159 allowing all values such as objects,
+arrays, strings, numbers, "null", "true", and "false".
=item $is_boolean = Cpanel::JSON::XS::is_bool $scalar
-Returns true if the passed scalar represents either C<JSON::XS::true> or
-C<JSON::XS::false>, two constants that act like C<1> and C<0>, respectively
-and are used to represent JSON C<true> and C<false> values in Perl.
+Returns true if the passed scalar represents either C<JSON::XS::true>
+or C<JSON::XS::false>, two constants that act like C<1> and C<0>,
+respectively and are used to represent JSON C<true> and C<false>
+values in Perl.
-See MAPPING, below, for more information on how JSON values are mapped to
-Perl.
+See MAPPING, below, for more information on how JSON values are mapped
+to Perl.
=back
@@ -294,27 +303,29 @@
=item 2. Perl does I<not> associate an encoding with your strings.
... until you force it to, e.g. when matching it against a regex, or
-printing the scalar to a file, in which case Perl either interprets your
-string as locale-encoded text, octets/binary, or as Unicode, depending
-on various settings. In no case is an encoding stored together with your
-data, it is I<use> that decides encoding, not any magical meta data.
+printing the scalar to a file, in which case Perl either interprets
+your string as locale-encoded text, octets/binary, or as Unicode,
+depending on various settings. In no case is an encoding stored
+together with your data, it is I<use> that decides encoding, not any
+magical meta data.
=item 3. The internal utf-8 flag has no meaning with regards to the
encoding of your string.
-=item 4. A "Unicode String" is simply a string where each character can be
-validly interpreted as a Unicode code point.
+=item 4. A "Unicode String" is simply a string where each character
+can be validly interpreted as a Unicode code point.
-If you have UTF-8 encoded data, it is no longer a Unicode string, but a
-Unicode string encoded in UTF-8, giving you a binary string.
+If you have UTF-8 encoded data, it is no longer a Unicode string, but
+a Unicode string encoded in UTF-8, giving you a binary string.
-=item 5. A string containing "high" (> 255) character values is I<not> a UTF-8 string.
+=item 5. A string containing "high" (> 255) character values is I<not>
+a UTF-8 string.
=item 6. Unicode noncharacters only warn, as in core.
-The 66 Unicode noncharacters U+FDD0..U+FDEF, and U+*FFFE, U+*FFFF just warn,
-see L<http://www.unicode.org/versions/corrigendum9.html>.
-But illegal surrogate pairs fail to parse.
+The 66 Unicode noncharacters U+FDD0..U+FDEF, and U+*FFFE, U+*FFFF just
+warn, see L<http://www.unicode.org/versions/corrigendum9.html>. But
+illegal surrogate pairs fail to parse.
=item 7. Raw non-Unicode characters above U+10FFFF are disallowed.
@@ -409,9 +420,9 @@
If the C<$enable> argument is true (or missing), then the C<encode>
method will not try to detect an UTF-8 encoding in any JSON string, it
will strictly interpret it as byte sequence. The result might contain
-new C<\xNN> sequences, which is B<unparsable JSON>. The C<decode> method
-forbids C<\uNNNN> sequences and accepts C<\xNN> and octal C<\NNN>
-sequences.
+new C<\xNN> sequences, which is B<unparsable JSON>. The C<decode>
+method forbids C<\uNNNN> sequences and accepts C<\xNN> and octal
+C<\NNN> sequences.
There is also a special logic for perl 5.6 and utf8. 5.6 encodes any
string to utf-8 automatically when seeing a codepoint >= C<0x80> and
@@ -506,9 +517,9 @@
=item $enabled = $json->get_indent
-If C<$enable> is true (or missing), then the C<encode> method will use a multiline
-format as output, putting every array member or object/hash key-value pair
-into its own line, indenting them properly.
+If C<$enable> is true (or missing), then the C<encode> method will use
+a multiline format as output, putting every array member or
+object/hash key-value pair into its own line, indenting them properly.
If C<$enable> is false, no newlines or indenting will be produced, and the
resulting JSON text is guaranteed not to contain any C<newlines>.
@@ -537,10 +548,10 @@
=item $enabled = $json->get_space_after
-If C<$enable> is true (or missing), then the C<encode> method will add an extra
-optional space after the C<:> separating keys from values in JSON objects
-and extra whitespace after the C<,> separating key-value pairs and array
-members.
+If C<$enable> is true (or missing), then the C<encode> method will add
+an extra optional space after the C<:> separating keys from values in
+JSON objects and extra whitespace after the C<,> separating key-value
+pairs and array members.
If C<$enable> is false, then the C<encode> method will not add any extra
space at those places.
@@ -623,6 +634,12 @@
{ foo:"bar" }
+=item * duplicate keys
+
+With relaxed decoding of duplicate keys does not error and are silently accepted.
+See L<http://seriot.ch/parsing_json.php#24>:
+RFC 7159 section 4: "The names within an object should be unique."
+
=back
@@ -630,8 +647,9 @@
=item $enabled = $json->get_canonical
-If C<$enable> is true (or missing), then the C<encode> method will output JSON objects
-by sorting their keys. This is adding a comparatively high overhead.
+If C<$enable> is true (or missing), then the C<encode> method will
+output JSON objects by sorting their keys. This is adding a
+comparatively high overhead.
If C<$enable> is false, then the C<encode> method will output key-value
pairs in the order Perl stores them (which will likely change between runs
@@ -705,7 +723,6 @@
$json->allow_barekey->decode('{foo:"bar"}');
-
=item $json = $json->allow_bignum ([$enable])
=item $enabled = $json->get_allow_bignum
@@ -716,8 +733,9 @@
the big integer Perl cannot handle as integer into a L<Math::BigInt>
object and convert a floating number (any) into a L<Math::BigFloat>.
-On the contrary, C<encode> converts C<Math::BigInt> objects and C<Math::BigFloat>
-objects into JSON numbers with C<allow_blessed> enable.
+On the contrary, C<encode> converts C<Math::BigInt> objects and
+C<Math::BigFloat> objects into JSON numbers with C<allow_blessed>
+enable.
$json->allow_nonref->allow_blessed->allow_bignum;
$bigfloat = $json->decode('2.000000000000000000000000001');
@@ -736,10 +754,10 @@
=item $enabled = $json->get_allow_nonref
-If C<$enable> is true (or missing), then the C<encode> method can convert a
-non-reference into its corresponding string, number or null JSON value,
-which is an extension to RFC4627. Likewise, C<decode> will accept those JSON
-values instead of croaking.
+If C<$enable> is true (or missing), then the C<encode> method can
+convert a non-reference into its corresponding string, number or null
+JSON value, which is an extension to RFC4627. Likewise, C<decode> will
+accept those JSON values instead of croaking.
If C<$enable> is false, then the C<encode> method will croak if it isn't
passed an arrayref or hashref, as JSON texts must either be an object
@@ -1001,21 +1019,21 @@
Stringified via sprintf(%g), with double quotes.
inf/nan: infnan_mode = 2. As in JSON::XS, and older releases.
-Passes through platform dependent values, invalid JSON. Stringified via sprintf(%g),
-but without double quotes.
+Passes through platform dependent values, invalid JSON. Stringified via
+sprintf(%g), but without double quotes.
-"inf/-inf/nan": infnan_mode = 3. Platform independent inf/nan/-inf strings.
-No QNAN/SNAN/negative NAN support, unified to "nan". Much easier to detect, but may
-conflict with valid strings.
+"inf/-inf/nan": infnan_mode = 3. Platform independent inf/nan/-inf
+strings. No QNAN/SNAN/negative NAN support, unified to "nan". Much
+easier to detect, but may conflict with valid strings.
=item $json_text = $json->encode ($perl_scalar)
Converts the given Perl data structure (a simple scalar or a reference
to a hash or array) to its JSON representation. Simple scalars will be
-converted into JSON string or number sequences, while references to arrays
-become JSON arrays and references to hashes become JSON objects. Undefined
-Perl values (e.g. C<undef>) become JSON C<null> values. Neither C<true>
-nor C<false> values will be generated.
+converted into JSON string or number sequences, while references to
+arrays become JSON arrays and references to hashes become JSON
+objects. Undefined Perl values (e.g. C<undef>) become JSON C<null>
+values. Neither C<true> nor C<false> values will be generated.
=item $perl_scalar = $json->decode ($json_text)
@@ -1061,14 +1079,14 @@
is much more efficient (and can be implemented with a minimum of method
calls).
-Cpanel::JSON::XS will only attempt to parse the JSON text once it is sure it
-has enough text to get a decisive result, using a very simple but
-truly incremental parser. This means that it sometimes won't stop as
-early as the full parser, for example, it doesn't detect mismatched
-parentheses. The only thing it guarantees is that it starts decoding as
-soon as a syntactically valid JSON text has been seen. This means you need
-to set resource limits (e.g. C<max_size>) to ensure the parser will stop
-parsing in the presence if syntax errors.
+Cpanel::JSON::XS will only attempt to parse the JSON text once it is
+sure it has enough text to get a decisive result, using a very simple
+but truly incremental parser. This means that it sometimes won't stop
+as early as the full parser, for example, it doesn't detect mismatched
+parentheses. The only thing it guarantees is that it starts decoding
+as soon as a syntactically valid JSON text has been seen. This means
+you need to set resource limits (e.g. C<max_size>) to ensure the
+parser will stop parsing in the presence if syntax errors.
The following methods implement this incremental parser.
@@ -1148,15 +1166,16 @@
=head2 LIMITATIONS
All options that affect decoding are supported, except
-C<allow_nonref>. The reason for this is that it cannot be made to
-work sensibly: JSON objects and arrays are self-delimited, i.e. you can concatenate
-them back to back and still decode them perfectly. This does not hold true
-for JSON numbers, however.
-
-For example, is the string C<1> a single JSON number, or is it simply the
-start of C<12>? Or is C<12> a single JSON number, or the concatenation
-of C<1> and C<2>? In neither case you can tell, and this is why Cpanel::JSON::XS
-takes the conservative route and disallows this case.
+C<allow_nonref>. The reason for this is that it cannot be made to work
+sensibly: JSON objects and arrays are self-delimited, i.e. you can
+concatenate them back to back and still decode them perfectly. This
+does not hold true for JSON numbers, however.
+
+For example, is the string C<1> a single JSON number, or is it simply
+the start of C<12>? Or is C<12> a single JSON number, or the
+concatenation of C<1> and C<2>? In neither case you can tell, and this
+is why Cpanel::JSON::XS takes the conservative route and disallows
+this case.
=head2 EXAMPLES
@@ -1222,11 +1241,11 @@
but you cannot load it into memory fully (this has actually happened in
the real world :).
-Well, you lost, you have to implement your own JSON parser. But Cpanel::JSON::XS
-can still help you: You implement a (very simple) array parser and let
-JSON decode the array elements, which are all full JSON objects on their
-own (this wouldn't work if the array elements could be JSON numbers, for
-example):
+Well, you lost, you have to implement your own JSON parser. But
+Cpanel::JSON::XS can still help you: You implement a (very simple)
+array parser and let JSON decode the array elements, which are all
+full JSON objects on their own (this wouldn't work if the array
+elements could be JSON numbers, for example):
my $json = new Cpanel::JSON::XS;
@@ -1312,15 +1331,15 @@
See also L<http://www.unicode.org/faq/utf_bom.html#BOM>.
-Beware that Cpanel::JSON::XS is currently the only JSON module which does accept
-and decode a BOM.
+Beware that Cpanel::JSON::XS is currently the only JSON module which
+does accept and decode a BOM.
=head1 MAPPING
-This section describes how Cpanel::JSON::XS maps Perl values to JSON values and
-vice versa. These mappings are designed to "do the right thing" in most
-circumstances automatically, preserving round-tripping characteristics
-(what you put in comes out as something equivalent).
+This section describes how Cpanel::JSON::XS maps Perl values to JSON
+values and vice versa. These mappings are designed to "do the right
+thing" in most circumstances automatically, preserving round-tripping
+characteristics (what you put in comes out as something equivalent).
For the more enlightened: note that in the following descriptions,
lowercase I<perl> refers to the Perl interpreter, while uppercase I<Perl>
@@ -1354,12 +1373,12 @@
the conversion details, but an integer may take slightly less memory and
might represent more values exactly than floating point numbers.
-If the number consists of digits only, Cpanel::JSON::XS will try to represent
-it as an integer value. If that fails, it will try to represent it as
-a numeric (floating point) value if that is possible without loss of
-precision. Otherwise it will preserve the number as a string value (in
-which case you lose roundtripping ability, as the JSON number will be
-re-encoded to a JSON string).
+If the number consists of digits only, Cpanel::JSON::XS will try to
+represent it as an integer value. If that fails, it will try to
+represent it as a numeric (floating point) value if that is possible
+without loss of precision. Otherwise it will preserve the number as a
+string value (in which case you lose roundtripping ability, as the
+JSON number will be re-encoded to a JSON string).
Numbers containing a fractional or exponential part will always be
represented as numeric (floating point) values, possibly at a loss of
@@ -1454,7 +1473,7 @@
respectively. You can also use C<\1> and C<\0> or C<!0> and C<!1>
directly if you want.
- encode_json [Cpanel::JSON::XS::true, Cpanel::JSON::XS::true] # yields [false,true]
+ encode_json [Cpanel::JSON::XS::true, Cpanel::JSON::XS::true] # yields [false,true]
encode_json [!1, !0] # yields [false,true]
=item blessed objects
@@ -1530,9 +1549,9 @@
=head3 SERIALIZATION
-What happens when C<Cpanel::JSON::XS> encounters a Perl object depends on the
-C<allow_blessed>, C<convert_blessed> and C<allow_tags> settings, which are
-used in this order:
+What happens when C<Cpanel::JSON::XS> encounters a Perl object depends
+on the C<allow_blessed>, C<convert_blessed> and C<allow_tags>
+settings, which are used in this order:
=over 4
@@ -2178,7 +2197,7 @@
sub is_bool($) {
shift if @_ == 2; # as method call
(ref($_[0]) and UNIVERSAL::isa( $_[0], JSON::PP::Boolean::))
- or (exists $INC{'Types/Serializer.pm'} and Types::Serialiser::is_bool($_[0]))
+ or (exists $INC{'Types/Serialiser.pm'} and Types::Serialiser::is_bool($_[0]))
}
XSLoader::load 'Cpanel::JSON::XS', $XS_VERSION;
@@ -2194,11 +2213,11 @@
"0+" => sub { ${$_[0]} },
"++" => sub { $_[0] = ${$_[0]} + 1 },
"--" => sub { $_[0] = ${$_[0]} - 1 },
- '""' => sub { ${$_[0]} == 1 ? 'true' : '0' }, # GH 29
+ '""' => sub { ${$_[0]} == 1 ? '1' : '0' }, # GH 29
'eq' => sub {
my ($obj, $op) = ref ($_[0]) ? ($_[0], $_[1]) : ($_[1], $_[0]);
if ($op eq 'true' or $op eq 'false') {
- return "$obj" eq 'true' ? 'true' eq $op : 'false' eq $op;
+ return "$obj" eq '1' ? 'true' eq $op : 'false' eq $op;
}
else {
return $obj ? 1 == $op : 0 == $op;
@@ -2227,7 +2246,7 @@
Marc Lehmann <schmorp(a)schmorp.de>, http://home.schmorp.de/
-Reini Urban <rurban(a)cpan.org>, http://cpanel.net/
+Reini Urban <rurban(a)cpan.org>
=head1 MAINTAINER
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/XS.xs new/Cpanel-JSON-XS-3.0237/XS.xs
--- old/Cpanel-JSON-XS-3.0233/XS.xs 2017-05-01 14:33:02.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/XS.xs 2017-07-28 11:20:18.000000000 +0200
@@ -36,22 +36,20 @@
#define UTF32BOM "\377\376\000\000" /* FF FE 00 00 or +UFEFF */
#define UTF32BOM_BE "\000\000\376\377" /* 00 00 FE FF */
-/* strawberry 5.22 with USE_MINGW_ANSI_STDIO and USE_LONG_DOUBLE has now
- a proper inf/nan */
+/* mingw with USE_LONG_DOUBLE (and implied USE_MINGW_ANSI_STDIO) do use the
+ non-msvcrt inf/nan stringification in sprintf(). */
#if defined(WIN32) && !defined(__USE_MINGW_ANSI_STDIO) && !defined(USE_LONG_DOUBLE)
-# if _MSC_VER > 1800
-# define STR_INF "inf"
-# define STR_INF2 "inf.0"
-# define STR_NAN "nan"
-# define STR_QNAN "nan(ind)"
-# define HAVE_QNAN
-# else
-# define STR_INF "1.#INF"
-# define STR_INF2 "1.#INF.0"
-# define STR_NAN "1.#IND"
-# define STR_QNAN "1.#QNAN"
-# define HAVE_QNAN
-# endif
+/* new ucrtd.dll runtime? We do not probe the runtime or variants in the Makefile.PL yet. */
+#define STR_INF "inf"
+#define STR_INF2 "inf.0"
+#define STR_NAN "nan"
+#define STR_QNAN "nan(ind)"
+/* old standard msvcrt.dll */
+#define STR_INF3 "1.#INF"
+#define STR_INF4 "1.#INF.0"
+#define STR_NAN2 "1.#IND"
+#define STR_QNAN2 "1.#QNAN"
+#define HAVE_QNAN
#elif defined(sun) || defined(__sun)
#define STR_INF "Infinity"
#define STR_NAN "NaN"
@@ -235,11 +233,7 @@
#define SHORT_STRING_LEN 16384 // special-case strings of up to this size
-#if PERL_VERSION >= 8
#define DECODE_WANTS_OCTETS(json) ((json)->flags & F_UTF8)
-#else
-#define DECODE_WANTS_OCTETS(json) (0)
-#endif
#define SB do {
#define SE } while (0)
@@ -1407,9 +1401,9 @@
# else
if (UNLIKELY(isinf(nv) || isnan(nv)))
# endif
- {
- goto is_inf_or_nan;
- }
+ {
+ goto is_inf_or_nan;
+ }
}
#endif
#ifdef USE_QUADMATH
@@ -1418,12 +1412,18 @@
(void)Gconvert (nv, NV_DIG, 0, enc->cur);
#endif
+#ifdef STR_INF4
+ if (UNLIKELY(strEQc(enc->cur, STR_INF)
+ || strEQc(enc->cur, STR_INF2)
+ || strEQc(enc->cur, STR_INF3)
+ || strEQc(enc->cur, STR_INF4)))
+#elif STR_INF2
+ if (UNLIKELY(strEQc(enc->cur, STR_INF)
+ || strEQc(enc->cur, STR_INF2)))
+#else
if (UNLIKELY(strEQc(enc->cur, STR_INF)))
- inf_or_nan = 1;
-#ifdef STR_INF2
- else if (UNLIKELY(strEQc(enc->cur, STR_INF2)))
- inf_or_nan = 1;
#endif
+ inf_or_nan = 1;
#if defined(__hpux)
else if (UNLIKELY(strEQc(enc->cur, STR_NEG_INF)))
inf_or_nan = 2;
@@ -1432,23 +1432,43 @@
#endif
else if
#ifdef HAVE_QNAN
+# ifdef STR_QNAN2
+ (UNLIKELY(strEQc(enc->cur, STR_NAN)
+ || strEQc(enc->cur, STR_QNAN)
+ || strEQc(enc->cur, STR_NAN2)
+ || strEQc(enc->cur, STR_QNAN2)))
+# else
(UNLIKELY(strEQc(enc->cur, STR_NAN)
|| strEQc(enc->cur, STR_QNAN)))
+# endif
#else
(UNLIKELY(strEQc(enc->cur, STR_NAN)))
#endif
inf_or_nan = 3;
else if (*enc->cur == '-') {
+#ifdef STR_INF4
+ if (UNLIKELY(strEQc(enc->cur+1, STR_INF)
+ || strEQc(enc->cur+1, STR_INF2)
+ || strEQc(enc->cur+1, STR_INF3)
+ || strEQc(enc->cur+1, STR_INF4)))
+#elif STR_INF2
+ if (UNLIKELY(strEQc(enc->cur+1, STR_INF)
+ || strEQc(enc->cur+1, STR_INF2)))
+#else
if (UNLIKELY(strEQc(enc->cur+1, STR_INF)))
- inf_or_nan = 2;
-#ifdef STR_INF2
- else if (UNLIKELY(strEQc(enc->cur+1, STR_INF2)))
- inf_or_nan = 2;
#endif
+ inf_or_nan = 2;
else if
#ifdef HAVE_QNAN
+# ifdef STR_QNAN2
+ (UNLIKELY(strEQc(enc->cur+1, STR_NAN)
+ || strEQc(enc->cur+1, STR_QNAN)
+ || strEQc(enc->cur+1, STR_NAN2)
+ || strEQc(enc->cur+1, STR_QNAN2)))
+# else
(UNLIKELY(strEQc(enc->cur+1, STR_NAN)
|| strEQc(enc->cur+1, STR_QNAN)))
+# endif
#else
(UNLIKELY(strEQc(enc->cur+1, STR_NAN)))
#endif
@@ -1477,7 +1497,8 @@
strncpy(enc->cur, "\"nan\"\0", 6);
}
else if (enc->json.infnan_mode != 2) {
- croak ("invalid stringify_infnan mode %c. Must be 0, 1, 2 or 3", enc->json.infnan_mode);
+ croak ("invalid stringify_infnan mode %c. Must be 0, 1, 2 or 3",
+ enc->json.infnan_mode);
}
}
if (SvPOKp (sv) && !strEQ(enc->cur, SvPVX (sv))) {
@@ -2705,6 +2726,7 @@
HV *hv = newHV ();
int allow_squote = dec->json.flags & F_ALLOW_SQUOTE;
int allow_barekey = dec->json.flags & F_ALLOW_BAREKEY;
+ int relaxed = dec->json.flags & F_RELAXED;
char endstr = '"';
DEC_INC_DEPTH;
@@ -2786,6 +2808,10 @@
if (UNLIKELY(p - key > I32_MAX))
ERR ("Hash key too large");
#endif
+ if (!relaxed && UNLIKELY(hv_exists (hv, key, len))) {
+ ERR ("Duplicate keys not allowed");
+ }
+
dec->cur = p + 1;
decode_ws (dec); if (*p != ':') EXPECT_CH (':');
@@ -2847,7 +2873,7 @@
/* the next line creates a mortal sv each time it's called. */
/* might want to optimise this for common cases. */
- if (LIKELY(he))
+ if (LIKELY((long)he))
cb = hv_fetch_ent (dec->json.cb_sk_object, hv_iterkeysv (he), 0, 0);
if (cb)
@@ -3185,14 +3211,12 @@
}
}
-#if PERL_VERSION >= 8
if (LIKELY(!converted)) {
if (DECODE_WANTS_OCTETS (json))
sv_utf8_downgrade (string, 0);
else
sv_utf8_upgrade (string);
}
-#endif
/* should basically be a NOP but needed for 5.6 with undef */
if (!SvPOK(string))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/t/01_utf8.t new/Cpanel-JSON-XS-3.0237/t/01_utf8.t
--- old/Cpanel-JSON-XS-3.0233/t/01_utf8.t 2017-03-29 11:51:37.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/t/01_utf8.t 2017-07-27 22:15:44.000000000 +0200
@@ -1,72 +1,76 @@
-use Test::More tests => 155;
+use Test::More tests => 162;
use utf8;
use Cpanel::JSON::XS;
+use warnings;
-is(Cpanel::JSON::XS->new->allow_nonref (1)->utf8 (1)->encode ("ü"), "\"\xc3\xbc\"");
-is(Cpanel::JSON::XS->new->allow_nonref (1)->encode ("ü"), "\"ü\"");
+is(Cpanel::JSON::XS->new->allow_nonref->utf8->encode("ü"), "\"\xc3\xbc\"");
+is(Cpanel::JSON::XS->new->allow_nonref->encode("ü"), "\"ü\"");
-is(Cpanel::JSON::XS->new->allow_nonref (1)->ascii (1)->utf8 (1)->encode (chr 0x8000), '"\u8000"');
-is(Cpanel::JSON::XS->new->allow_nonref (1)->ascii (1)->utf8 (1)->pretty (1)->encode (chr 0x10402), "\"\\ud801\\udc02\"\n");
+is(Cpanel::JSON::XS->new->allow_nonref->ascii->utf8->encode(chr 0x8000), '"\u8000"');
+is(Cpanel::JSON::XS->new->allow_nonref->ascii->utf8->pretty->encode(chr 0x10402), "\"\\ud801\\udc02\"\n");
+
+ok not defined eval { Cpanel::JSON::XS->new->allow_nonref->utf8->decode('"ü"') };
+like $@, qr/malformed UTF-8/;
+
+is(Cpanel::JSON::XS->new->allow_nonref->decode('"ü"'), "ü");
+is(Cpanel::JSON::XS->new->allow_nonref->decode('"\u00fc"'), "ü");
+
+ok not defined eval { decode_json ('"\ud801\udc02' . "\x{10204}\"", 1) };
+like $@, qr/Wide character/;
SKIP: {
skip "5.6", 1 if $] < 5.008;
- eval { Cpanel::JSON::XS->new->allow_nonref (1)->utf8 (1)->decode ('"ü"') };
- like $@, qr/malformed UTF-8/;
+ is(Cpanel::JSON::XS->new->allow_nonref->decode('"\ud801\udc02' . "\x{10204}\""), "\x{10402}\x{10204}");
}
-is(Cpanel::JSON::XS->new->allow_nonref (1)->decode ('"ü"'), "ü");
-is(Cpanel::JSON::XS->new->allow_nonref (1)->decode ('"\u00fc"'), "ü");
-if ($] < 5.008) {
- eval { decode_json ('"\ud801\udc02' . "\x{10204}\"", 1) };
- like $@, qr/malformed UTF-8/;
-} else {
- is(Cpanel::JSON::XS->new->allow_nonref (1)->decode ('"\ud801\udc02' . "\x{10204}\""), "\x{10402}\x{10204}");
-}
-is(Cpanel::JSON::XS->new->allow_nonref (1)->decode ('"\"\n\\\\\r\t\f\b"'), "\"\012\\\015\011\014\010");
+is(Cpanel::JSON::XS->new->allow_nonref->decode('"\"\n\\\\\r\t\f\b"'), "\"\012\\\015\011\014\010");
-my $love = $] < 5.008 ? "I \342\235\244 perl" : "I ❤ perl";
-is(Cpanel::JSON::XS->new->ascii->encode ([$love]),
- $] < 5.008 ? '["I \u00e2\u009d\u00a4 perl"]' : '["I \u2764 perl"]', 'utf8 enc ascii');
-is(Cpanel::JSON::XS->new->latin1->encode ([$love]),
- $] < 5.008 ? "[\"I \342\235\244 perl\"]" : '["I \u2764 perl"]', 'utf8 enc latin1');
+my $utf8_love = "I \342\235\244 perl";
+is(Cpanel::JSON::XS->new->ascii->encode([$utf8_love]), '["I \u00e2\u009d\u00a4 perl"]', 'utf8 enc ascii');
+is(Cpanel::JSON::XS->new->latin1->encode([$utf8_love]), "[\"I \342\235\244 perl\"]", 'utf8 enc latin1');
+is(Cpanel::JSON::XS->new->utf8->encode([$utf8_love]), "[\"I \303\242\302\235\302\244 perl\"]", 'utf8 enc utf8');
+is(Cpanel::JSON::XS->new->binary->encode([$utf8_love]), '["I \xe2\x9d\xa4 perl"]', 'utf8 enc binary');
SKIP: {
- skip "5.6", 1 if $] < 5.008;
- require Encode;
- # [RT #84244] wrong complaint: JSON::XS double encodes to ["I ⤠perl"]
- # and with utf8 triple encodes it to ["I ⤠perl"]
- if ($Encode::VERSION < 2.40 or $Encode::VERSION >= 2.54) { # Encode stricter check: Cannot decode string with wide characters
- # see also http://stackoverflow.com/questions/12994100/perl-encode-pm-cannot-decode-st…
- $love = "I \342\235\244 perl";
- }
- my $s = Encode::decode_utf8($love); # User tries to double decode wide-char to unicode with Encode
- is(Cpanel::JSON::XS->new->utf8->encode ([$s]), "[\"I \342\235\244 perl\"]", 'utf8 enc utf8 [RT #84244]');
+ skip "5.6", 4 if $] < 5.008;
+ my $unicode_love = "I ❤ perl";
+ is(Cpanel::JSON::XS->new->ascii->encode([$unicode_love]), '["I \u2764 perl"]', 'unicode enc ascii');
+ is(Cpanel::JSON::XS->new->latin1->encode([$unicode_love]), "[\"I \\u2764 perl\"]", 'unicode enc latin1');
+ is(Cpanel::JSON::XS->new->utf8->encode([$unicode_love]), "[\"I \342\235\244 perl\"]", 'unicode enc utf8');
+ is(Cpanel::JSON::XS->new->binary->encode([$unicode_love]), '["I \xe2\x9d\xa4 perl"]', 'unicode enc binary');
}
-is(Cpanel::JSON::XS->new->binary->encode ([$love]), '["I \xe2\x9d\xa4 perl"]', 'utf8 enc binary');
# TODO: test utf8 hash keys,
# test utf8 strings without any char > 0x80.
# warn on the 66 non-characters as in core
{
- my $w;
- require warnings;
- warnings->unimport($] < 5.014 ? 'utf8' : 'nonchar');
+ BEGIN { 'warnings'->import($] < 5.014 ? 'utf8' : 'nonchar') }
+ my $w = '';
$SIG{__WARN__} = sub { $w = shift };
my $d = Cpanel::JSON::XS->new->allow_nonref->decode('"\ufdd0"');
my $warn = $w;
- is ($d, "\x{fdd0}", substr($warn,0,31)."...");
+ {
+ no warnings 'utf8';
+ is ($d, "\x{fdd0}", substr($warn,0,31)."...");
+ }
like ($warn, qr/^Unicode non-character U\+FDD0 is/);
$w = '';
# higher planes
$d = Cpanel::JSON::XS->new->allow_nonref->decode('"\ud83f\udfff"');
$warn = $w;
- is ($d, "\x{1ffff}", substr($warn,0,31)."...");
+ {
+ no warnings 'utf8';
+ is ($d, "\x{1ffff}", substr($warn,0,31)."...");
+ }
like ($w, qr/^Unicode non-character U\+1FFFF is/);
$w = '';
$d = Cpanel::JSON::XS->new->allow_nonref->decode('"\ud87f\udffe"');
$warn = $w;
- is ($d, "\x{2fffe}", substr($warn,0,31)."...");
+ {
+ no warnings 'utf8';
+ is ($d, "\x{2fffe}", substr($warn,0,31)."...");
+ }
like ($w, qr/^Unicode non-character U\+2FFFE is/);
$w = '';
@@ -77,12 +81,15 @@
}
{
my $w;
- warnings->unimport($] < 5.014 ? 'utf8' : 'nonchar');
+ BEGIN { 'warnings'->import($] < 5.014 ? 'utf8' : 'nonchar') }
$SIG{__WARN__} = sub { $w = shift };
# no warning with relaxed
my $d = Cpanel::JSON::XS->new->allow_nonref->relaxed->decode('"\ufdd0"');
my $warn = $w;
- is ($d, "\x{fdd0}", "no warning with relaxed");
+ {
+ no warnings 'utf8';
+ is ($d, "\x{fdd0}", "no warning with relaxed");
+ }
is($w, undef);
}
@@ -144,9 +151,9 @@
{
# these are no multibyte codepoints, just raw utf8 bytes,
# so most of them work with 5.6 also.
- $^W = 1;
+ BEGIN { $^W = 1 }
+ BEGIN { 'warnings'->import($] < 5.014 ? 'utf8' : 'nonchar') }
my $w;
- warnings->import($] < 5.014 ? 'utf8' : 'nonchar');
$SIG{__WARN__} = sub { $w = shift };
for my $ill (@ill) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/t/03_types.t new/Cpanel-JSON-XS-3.0237/t/03_types.t
--- old/Cpanel-JSON-XS-3.0233/t/03_types.t 2016-06-02 17:34:50.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/t/03_types.t 2017-07-27 22:15:44.000000000 +0200
@@ -22,7 +22,7 @@
ok ("$false" eq "0", "false: stringified $false eq 0");
#ok ("$false" eq "false", "false: stringified $false eq false");
#ok ("$true" eq "1", "true: stringified $true eq 1");
-ok ("$true" eq "true", "true: stringified $true");
+ok ("$true" eq "1", "true: stringified $true");
{
my $FH;
my $fn = "tmp_$$";
@@ -32,7 +32,7 @@
open $FH, "<", $fn;
my $s = <$FH>;
close $FH;
- ok ($s eq "0true\n", $s); # 11
+ ok ($s eq "01\n", $s); # 11
unlink $fn;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/t/117_numbers.t new/Cpanel-JSON-XS-3.0237/t/117_numbers.t
--- old/Cpanel-JSON-XS-3.0233/t/117_numbers.t 2017-05-01 07:01:08.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/t/117_numbers.t 2017-07-28 11:20:18.000000000 +0200
@@ -16,6 +16,8 @@
my $json = Cpanel::JSON::XS->new->stringify_infnan;
my $have_qnan = ($^O eq 'MSWin32' || $^O eq 'aix') ? 1 : 0;
# TODO dec_osf
+# variants as in t/op/infnan.t
+my (@inf, @neg_inf, @nan, @neg_nan);
my ($inf, $nan) =
($^O eq 'MSWin32') ? ('1.#INF','1.#QNAN') :
($^O eq 'solaris') ? ('Infinity','NaN') :
@@ -30,22 +32,25 @@
($^O eq 'hpux') ? "---" :
"-".$inf;
-if ($^O eq 'MSWin32'
- and $Config{ccflags} =~ /-D__USE_MINGW_ANSI_STDIO/
- and $Config{uselongdouble})
-{
+if ($^O eq 'MSWin32' and $Config{ccflags} =~ /-D__USE_MINGW_ANSI_STDIO/) {
$have_qnan = 0;
($inf, $neg_inf, $nan, $neg_nan) = ('inf','-inf','nan','-nan');
+ @inf = ($inf);
+ @neg_inf = ($neg_inf);
+ @nan = ($nan);
+ @neg_nan = ($neg_nan);
}
-# Windows changed it with MSVC 14.0 and the ucrtd.dll runtime
-diag "ccversion = $Config{ccversion}" if $^O eq 'MSWin32' and $Config{ccversion};
-if ($^O eq 'MSWin32' and $Config{ccversion}) {
- my $mscver = $Config{ccversion}; # "19.00.24215.1" for 14.0 (VC++ 2015)
- $mscver =~ s/^(\d+\.\d\+).(\d+)\.(\d+)/$1$2$3/;
- if ($mscver >= 19.0) {
- $have_qnan = 0;
- ($inf, $neg_inf, $nan, $neg_nan) = ('inf','-inf','nan','-nan(ind)');
- }
+elsif ($^O eq 'MSWin32') { # new ucrtd.dll
+ ($inf, $neg_inf, $nan, $neg_nan) = ('inf','-inf','nan','-nan');
+ @inf = ('1.#INF', 'inf');
+ @neg_inf = ('-1.#INF', '-inf');
+ @nan = ('1.#QNAN', 'nan');
+ @neg_nan = ('-1.#IND', '-nan', '-nan(ind)');
+} else {
+ @inf = ($inf);
+ @neg_inf = ($neg_inf);
+ @nan = ($nan);
+ @neg_nan = ($neg_nan);
}
# newlib and glibc 2.5 have no -nan support, just nan. The BSD's neither, but they might
# come up with it lateron, as darwin did.
@@ -53,27 +58,45 @@
# $neg_nan = $nan;
#}
+sub match {
+ my ($r, $tmpl, $desc, @list) = @_;
+ my $match = shift @list;
+ my $m = $tmpl;
+ $m =~ s/__XX__/$match/;
+ $match = $m;
+ for my $m1 (@list) { # at least one must match
+ $m = $tmpl;
+ $m =~ s/__XX__/$m1/;
+ diag "try $m eq $r" if $ENV{TEST_VERBOSE};
+ $match = $m if $r eq $m;
+ }
+ is $r, $match, $desc;
+}
+
my $r = $json->encode([9**9**9]);
$r =~ s/\.0$// if $^O eq 'MSWin32';
-is $r, "[\"$inf\"]", "inf -> \"inf\" stringify_infnan(1)";
+match($r, "[\"__XX__\"]", "inf -> \"inf\" stringify_infnan(1)", @inf);
+
$r = $json->encode([-9**9**9]);
$r =~ s/\.0$// if $^O eq 'MSWin32';
-is $r, "[\"$neg_inf\"]", "-inf -> \"-inf\"";
+match($r, "[\"__XX__\"]", "-inf -> \"-inf\"", @neg_inf);
+
# The concept of negative nan is not portable and varies too much.
# Windows even emits neg_nan for the first test sometimes. HP-UX has all tests reverse.
-like $json->encode([-sin(9**9**9)]), qr/\[\"(\Q$neg_nan\E|\Q$nan\E)\"\]/, "nan -> \"nan\"";
-like $json->encode([sin(9**9**9)]), qr/\[\"(\Q$neg_nan\E|\Q$nan\E)\"\]/, "-nan -> \"-nan\"";
-like $json->encode([9**9**9/9**9**9]), qr/\[\"(\Q$neg_nan\E|\Q$nan\E)\"\]/, "-nan -> \"-nan\"";
+match($json->encode([-sin(9**9**9)]), "[\"__XX__\"]", "nan -> \"nan\"", @nan, @neg_nan);
+match($json->encode([sin(9**9**9)]), "[\"__XX__\"]", "-nan -> \"-nan\"", @nan, @neg_nan);
+match($json->encode([9**9**9/9**9**9]), "[\"__XX__\"]", "-nan -> \"-nan\"", @nan, @neg_nan);
# infnan_mode = 2: # inf/nan values, as in JSON::XS and older releases.
$json = Cpanel::JSON::XS->new->stringify_infnan(2);
-is $json->encode([9**9**9]), "[$inf]", "inf stringify_infnan(2)";
-is $json->encode([-9**9**9]), "[$neg_inf]", "-inf";
-like $json->encode([-sin(9**9**9)]), qr/\[(\Q$neg_nan\E|\Q$nan\E)\]/, "nan";
-like $json->encode([sin(9**9**9)]), qr/\[(\Q$neg_nan\E|\Q$nan\E)\]/, "-nan";
-like $json->encode([9**9**9/9**9**9]), qr/\[(\Q$neg_nan\E|\Q$nan\E)\]/, "-nan";
+match($json->encode([9**9**9]), "[__XX__]", "inf stringify_infnan(2)", @inf);
+match($json->encode([-9**9**9]), "[__XX__]", "-inf", @neg_inf);
+match($json->encode([-sin(9**9**9)]), "[__XX__]", "nan", @nan, @neg_nan);
+match($json->encode([sin(9**9**9)]), "[__XX__]", "-nan", @nan, @neg_nan);
+match($json->encode([9**9**9/9**9**9]), "[__XX__]", "-nan", @nan, @neg_nan);
-# infnan_mode = 3: # inf/nan values unified to inf/-inf/nan strings. no qnan/snan/negative nan
+# infnan_mode = 3:
+# inf/nan values unified to inf/-inf/nan strings. no qnan/snan/negative nan
$json = Cpanel::JSON::XS->new->stringify_infnan(3);
is $json->encode([9**9**9]), '["inf"]', "inf stringify_infnan(3)";
is $json->encode([-9**9**9]), '["-inf"]', "-inf";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/t/25_boolean.t new/Cpanel-JSON-XS-3.0237/t/25_boolean.t
--- old/Cpanel-JSON-XS-3.0233/t/25_boolean.t 2015-12-02 23:45:39.000000000 +0100
+++ new/Cpanel-JSON-XS-3.0237/t/25_boolean.t 2017-07-27 22:15:44.000000000 +0200
@@ -1,19 +1,16 @@
use strict;
-use Test::More tests => 17;
+use Test::More tests => 32;
use Cpanel::JSON::XS ();
my $booltrue = q({"is_true":true});
my $boolfalse = q({"is_false":false});
-# since 5.16 yes/no is !0/!1, but for earlier perls we need to use a BoolSV
-my $a = 0;
-my $yes = do{$a==0}; # < 5.16 !0 is not sv_yes
-my $no = do{$a==1}; # < 5.16 !1 is not sv_no
-my $yesno = [ $yes, $no ]; # native yes/no. YAML::XS compatible
my $truefalse = "[true,false]";
my $cjson = Cpanel::JSON::XS->new;
my $true = Cpanel::JSON::XS::true;
my $false = Cpanel::JSON::XS::false;
+my $nonref_cjson = Cpanel::JSON::XS->new->allow_nonref;
+
# from JSON::MaybeXS
my $data = $cjson->decode('{"foo": true, "bar": false, "baz": 1}');
ok($cjson->is_bool($data->{foo}), 'true decodes to a bool')
@@ -37,10 +34,43 @@
is( $cjson->encode( [ $true, $false] ),
$truefalse );
-TODO: {
- local $TODO = 'GH #39';
- is( $cjson->encode( $yesno ), $truefalse, "map yes/no to [true,false]");
+# GH #39
+# perl block which returns sv_no or sv_yes
+is( $nonref_cjson->encode( do{(my $a=0)==1} ), "false", "map do{(my \$a)=0)==1} to false");
+is( $nonref_cjson->encode( do{(my $a=0)==1} ), "false", "map do{(my \$a)=0)==1} to false");
+is( $nonref_cjson->encode( do{(my $a=1)==1} ), "true", "map do{(my \$a)=1)==1} to true");
+is( $nonref_cjson->encode( do{(my $a=1)==1} ), "true", "map do{(my \$a)=1)==1} to true");
+
+# GH #39
+# XS function UNIVERSAL::isa returns sv_no or sv_yes
+is( $nonref_cjson->encode( UNIVERSAL::isa('0', '1') ), "false", "map UNIVERSAL::isa('0', '1') to false");
+is( $nonref_cjson->encode( UNIVERSAL::isa('0', '1') ), "false", "map UNIVERSAL::isa('0', '1') to false");
+is( $nonref_cjson->encode( UNIVERSAL::isa('UNIVERSAL', 'UNIVERSAL') ), "true", "map UNIVERSAL::isa('UNIVERSAL', 'UNIVERSAL') to true");
+is( $nonref_cjson->encode( UNIVERSAL::isa('UNIVERSAL', 'UNIVERSAL') ), "true", "map UNIVERSAL::isa('UNIVERSAL', 'UNIVERSAL') to true");
+
+# GH #39
+# XS function utf8::is_utf8 returns sv_no or sv_yes
+SKIP: {
+ skip 'Perl 5.8 is needed for boolean tests based on utf8::upgrade()+utf8::is_utf8()', 4 if $] < 5.008;
+ is( $nonref_cjson->encode( do{utf8::is_utf8(my $a)} ), "false", "map do{utf8::is_utf8(my \$a)} to false");
+ is( $nonref_cjson->encode( do{utf8::is_utf8(my $a)} ), "false", "map do{utf8::is_utf8(my \$a)} to false");
+ my $utf8 = '';
+ utf8::upgrade($utf8);
+ is( $nonref_cjson->encode( do{utf8::is_utf8($utf8)} ), "true", "map do{utf8::is_utf8(\$utf8)} to true");
+ is( $nonref_cjson->encode( do{utf8::is_utf8($utf8)} ), "true", "map do{utf8::is_utf8(\$utf8)} to true");
+}
+
+# GH #39
+# perl expression which evaluates to sv_no or sv_yes
+SKIP: {
+ # implemented in 5.16 but broken, works since 5.20
+ skip 'Perl 5.20 is needed for boolean tests based on !1 and !0', 4 if $] < 5.020;
+ is( $nonref_cjson->encode( !1 ), "false", "map !1 to false");
+ is( $nonref_cjson->encode( !1 ), "false", "map !1 to false");
+ is( $nonref_cjson->encode( !0 ), "true", "map !0 to true");
+ is( $nonref_cjson->encode( !0 ), "true", "map !0 to true");
}
+
$js = $cjson->decode( $truefalse );
ok ($js->[0] == $true, "decode true to yes");
ok ($js->[1] == $false, "decode false to no");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/t/26_duplicate.t new/Cpanel-JSON-XS-3.0237/t/26_duplicate.t
--- old/Cpanel-JSON-XS-3.0233/t/26_duplicate.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Cpanel-JSON-XS-3.0237/t/26_duplicate.t 2017-07-27 22:15:44.000000000 +0200
@@ -0,0 +1,13 @@
+use Test::More tests => 4;
+use Cpanel::JSON::XS;
+
+my $json = Cpanel::JSON::XS->new;
+
+# disallow dupkeys:
+ok (!eval { $json->decode ('{"a":"b","a":"c"}') }); # y_object_duplicated_key.json
+ok (!eval { $json->decode ('{"a":"b","a":"b"}') }); # y_object_duplicated_key_and_value.json
+
+$json->relaxed;
+is (encode_json $json->decode ('{"a":"b","a":"c"}'), '{"a":"c"}'); # y_object_duplicated_key.json
+is (encode_json $json->decode ('{"a":"b","a":"b"}'), '{"a":"b"}'); # y_object_duplicated_key_and_value.json
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/t/30_jsonspec.t new/Cpanel-JSON-XS-3.0237/t/30_jsonspec.t
--- old/Cpanel-JSON-XS-3.0233/t/30_jsonspec.t 2017-05-01 15:08:59.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/t/30_jsonspec.t 2017-07-27 22:15:44.000000000 +0200
@@ -14,7 +14,7 @@
# i_string_unicode_*_nonchar ["\uDBFF\uDFFE"] (add warning as in core)
# i_string_not_in_unicode_range Code point 0x13FFFF is not Unicode UTF8_DISALLOW_SUPER
# y_string_utf16, y_string_utf16be, y_string_utf32, y_string_utf32be fixed with 3.0222
-my %todo = {};
+my %todo;
$todo{'y_string_nonCharacterInUTF-8_U+FFFF'}++ if $] < 5.013;
$todo{'n_string_UTF8_surrogate_U+D800'}++ if $] >= 5.012;
if ($] < 5.008) {
@@ -54,6 +54,8 @@
i_string_UTF-16_invalid_surrogate
i_string_UTF-8_invalid_sequence
i_string_not_in_unicode_range
+ y_object_duplicated_key
+ y_object_duplicated_key_and_value
);
# should parse and return undef:
my %i_empty = map{$_ => 1}
@@ -166,7 +168,11 @@
close $fh;
}
my ($base) = ($f =~ m|test_parsing/(.*)\.json|);
- if ($base =~ /^y_/) {
+ # This is arguably a specification bug. it should error on default
+ if ($base =~ /y_object_duplicated_key/) {
+ n_error($s, $base);
+ }
+ elsif ($base =~ /^y_/) {
y_pass($s, $base);
}
elsif ($base =~ /^n_/) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/t/96_mojo.t new/Cpanel-JSON-XS-3.0237/t/96_mojo.t
--- old/Cpanel-JSON-XS-3.0233/t/96_mojo.t 2016-06-06 15:26:10.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/t/96_mojo.t 2017-07-27 22:15:44.000000000 +0200
@@ -38,10 +38,15 @@
# fragile
ok( $js->[0] eq '' or $js->[0] == 0 or !$js->[0], 'can decode Mojo false' );
is( $js->[1], 1, 'can decode Mojo true' );
-TODO: {
- # Note this is fragile. it depends on the internal representation of booleans.
- # It can also be ['0', '1']
- local $TODO = 'fragile';
+# Note this is fragile. it depends on the internal representation of booleans.
+# It can also be ['0', '1']
+if ($js->[0] eq '') {
is_deeply( $js, ['', 1], 'can decode Mojo booleans' )
or diag( $mj, $js );
+} else {
+ TODO: {
+ local $TODO = 'fragile false => "0"';
+ is_deeply( $js, ['', 1], 'can decode Mojo booleans' )
+ or diag( $mj, $js );
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/t/appveyor-test.bat new/Cpanel-JSON-XS-3.0237/t/appveyor-test.bat
--- old/Cpanel-JSON-XS-3.0233/t/appveyor-test.bat 2017-05-01 14:18:48.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/t/appveyor-test.bat 2017-07-27 22:15:44.000000000 +0200
@@ -1,7 +1,7 @@
@echo off
-rem Test::MinimumVersion
-set REQS=Pod::Text Time::Piece common::sense Mojo::JSON JSON Test::LeakTrace Test::CPAN::Meta Test::Pod Test::Pod::Coverage
+rem Test::MinimumVersion JSON
+set REQS=Pod::Text Time::Piece common::sense Mojo::JSON Test::LeakTrace Test::CPAN::Meta Test::Pod Test::Pod::Coverage
set PERL_MM_USE_DEFAULT=1
if not "%PLATFORM%" == "x64" set WIN64=undef
@@ -11,14 +11,15 @@
:gcc
set PATH=C:\strawberry\perl\bin;C:\strawberry\perl\site\bin;C:\strawberry\c\bin;%PATH%
-rem echo cpan -T %REQS%
-rem cpan -T %REQS%
+echo cpan -T %REQS%
+call cpan -T %REQS% || exit /b 1
echo perl Makefile.PL
-perl Makefile.PL
-echo dmake
-dmake
-echo dmake test
-dmake test
+perl Makefile.PL || exit /b 1
+rem strawberry switched with 5.26 from dmake to gmake
+echo $Config{make}
+perl -MConfig -e "system({$Config{make}} $Config{make}); exit(($? < 0 || $? & 127) ? 1 : ($? >> 8));" || exit /b 1
+echo $Config{make} test
+perl -MConfig -e "system({$Config{make}} $Config{make}, 'test'); exit(($? < 0 || $? & 127) ? 1 : ($? >> 8));" || exit /b 1
exit /b
@@ -26,11 +27,15 @@
if "%PLATFORM%" == "x64" set PLATFORM=amd64
rem 14 deviates from cperl with linker errors for the libc runtime
set MSVC_VERSION=12
-call "C:\Program Files (x86)\Microsoft Visual Studio %MSVC_VERSION%.0\VC\vcvarsall.bat" %PLATFORM%
+call "C:\Program Files (x86)\Microsoft Visual Studio %MSVC_VERSION%.0\VC\vcvarsall.bat" %PLATFORM% || exit /b 1
set PATH=C:\cperl\bin;C:\cperl\site\bin;%PATH%
-cperl -S cpan -T %REQS%
-cperl Makefile.PL
-nmake
-nmake test
+echo cperl -S cpan -T %REQS%
+cperl -S cpan -T %REQS% || exit /b 1
+echo cperl Makefile.PL
+cperl Makefile.PL || exit /b 1
+echo nmake
+nmake || exit /b 1
+echo nmake test
+nmake test || exit /b 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0233/t/z_perl_minimum_version.t new/Cpanel-JSON-XS-3.0237/t/z_perl_minimum_version.t
--- old/Cpanel-JSON-XS-3.0233/t/z_perl_minimum_version.t 2015-10-23 11:00:11.000000000 +0200
+++ new/Cpanel-JSON-XS-3.0237/t/z_perl_minimum_version.t 2017-07-27 22:15:44.000000000 +0200
@@ -9,7 +9,7 @@
my @MODULES = (
'Perl::MinimumVersion 1.20',
- 'Test::MinimumVersion 0.008',
+ 'Test::MinimumVersion 0.101082',
);
# Don't run tests during end-user installs
1
0
Hello community,
here is the log from the commit of package arpwatch for openSUSE:Factory checked in at 2017-08-28 15:10:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/arpwatch (Old)
and /work/SRC/openSUSE:Factory/.arpwatch.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "arpwatch"
Mon Aug 28 15:10:15 2017 rev:25 rq:516799 version:2.1a15
Changes:
--------
--- /work/SRC/openSUSE:Factory/arpwatch/arpwatch.changes 2015-06-23 11:58:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.arpwatch.new/arpwatch.changes 2017-08-28 15:10:25.097638966 +0200
@@ -1,0 +2,11 @@
+Sat Aug 12 16:09:14 UTC 2017 - tchvatal(a)suse.com
+
+- Remove initscript support. Fix the service initialization to\
+ either allow single full client or user has to symlink the instance
+ and make sure he can run only one of them. bsc#737527
+- Make sure rcarpwatch is working
+- Use install commands for installation of files
+- Format with spec-cleaner
+- Generate temp files using systemd
+
+-------------------------------------------------------------------
Old:
----
arpwatch.init
New:
----
arpwatch.service
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ arpwatch.spec ++++++
--- /var/tmp/diff_new_pack.UqpogP/_old 2017-08-28 15:10:27.669277203 +0200
+++ /var/tmp/diff_new_pack.UqpogP/_new 2017-08-28 15:10:27.673276641 +0200
@@ -1,7 +1,7 @@
#
# spec file for package arpwatch
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,36 +16,17 @@
#
-%if 0%{?suse_version} > 1140
-%define has_systemd 1
-%endif
-
Name: arpwatch
-BuildRequires: libpcap-devel
-BuildRequires: postfix
-%if 0%{?has_systemd}
-BuildRequires: systemd
-%{?systemd_requires}
-%endif
-Url: http://www-nrg.ee.lbl.gov/nrg.html
-Requires: arpwatch-ethercodes
-%if 0%{?suse_version} <= 1140
-PreReq: /usr/bin/touch %insserv_prereq %fillup_prereq
-%else
-PreReq: /usr/bin/touch %fillup_prereq
-%endif
-Summary: Arpwatch Keeps Track of Ethernet and IP Address Pairings
-License: BSD-3-Clause
-Group: Productivity/Networking/Diagnostic
Version: 2.1a15
Release: 0
+Summary: Keeps Track of Ethernet and IP Address Pairings
+License: BSD-3-Clause
+Group: Productivity/Networking/Diagnostic
+Url: http://www-nrg.ee.lbl.gov/nrg.html
Source: %{name}-%{version}.tar.bz2
-%if 0%{?has_systemd}
Source10: arpwatch@.service
-%else
-Source10: arpwatch.init
-%endif
Source11: sysconfig.arpwatch
+Source12: arpwatch.service
Patch0: arpwatch-2.1a11-chrootbuild.diff
Patch1: arpwatch-no-source-zero.dif
Patch3: arpwatch-2.1a11-tokenring.diff
@@ -54,7 +35,12 @@
Patch6: arpwatch-2.1a11-drop-privs.dif
Patch7: arpwatch-2.1a11-emailaddr.dif
Patch8: arpwatch-2.1a15-massagevendor.patch
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: libpcap-devel
+BuildRequires: postfix
+BuildRequires: systemd-rpm-macros
+Requires: arpwatch-ethercodes
+Requires(post): %fillup_prereq
+Requires(post): coreutils
%description
Arpwatch keeps track of Ethernet and IP address pairings. It logs
@@ -71,7 +57,7 @@
%prep
%setup -q
-%patch -P 0 -E
+%patch0 -E
%patch1 -p1 -E
%patch3 -p1 -E
%patch4 -p1 -E
@@ -82,88 +68,63 @@
%build
%configure
-%{__make} ARPDIR=/var/lib/arpwatch %{?_smp_mflags}
+make ARPDIR=%{_localstatedir}/lib/arpwatch %{?_smp_mflags}
%install
mkdir -p \
-%if 0%{?has_systemd}
- $RPM_BUILD_ROOT/%{_unitdir} \
-%else
- $RPM_BUILD_ROOT/etc/init.d \
-%endif
- $RPM_BUILD_ROOT/%{_sbindir} \
- $RPM_BUILD_ROOT/%{_datadir}/arpwatch \
- $RPM_BUILD_ROOT/%{_mandir}/man8 \
- $RPM_BUILD_ROOT/var/adm/fillup-templates
-%makeinstall
+ %{buildroot}/%{_tmpfilesdir} \
+ %{buildroot}/%{_sbindir} \
+ %{buildroot}/%{_datadir}/arpwatch \
+ %{buildroot}/%{_mandir}/man8 \
+ %{buildroot}%{_localstatedir}/adm/fillup-templates
+%make_install
# ethercodes.dat is in the arpwatch-ethercodes package
-rm -f $RPM_BUILD_ROOT/%{_datadir}/arpwatch/ethercodes.dat
+rm -f %{buildroot}/%{_datadir}/arpwatch/ethercodes.dat
for file in massagevendor euppertolower.awk duplicates.awk p.awk; do
- cp -p ${file} $RPM_BUILD_ROOT/%{_datadir}/arpwatch
+ cp -p ${file} %{buildroot}/%{_datadir}/arpwatch
done
-make DESTDIR=$RPM_BUILD_ROOT install-man
-%if 0%{?has_systemd}
-install -m 0644 $RPM_SOURCE_DIR/arpwatch@.service $RPM_BUILD_ROOT/%{_unitdir}
-%else
-install -m 0754 $RPM_SOURCE_DIR/arpwatch.init $RPM_BUILD_ROOT/etc/init.d/arpwatch
-ln -sf ../../etc/init.d/arpwatch $RPM_BUILD_ROOT/%{_sbindir}/rcarpwatch
-%endif
-cp -p ${RPM_SOURCE_DIR}/sysconfig.arpwatch $RPM_BUILD_ROOT/var/adm/fillup-templates
+make DESTDIR=%{buildroot} install-man
+install -Dm 0644 %{SOURCE10} %{buildroot}/%{_unitdir}/arpwatch@.service
+install -Dm 0644 %{SOURCE12} %{buildroot}/%{_unitdir}/arpwatch.service
+ln -s service %{buildroot}%{_sbindir}/rcarpwatch
+install -Dm 0644 %{SOURCE11} \
+ %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.arpwatch
# own the database files
-touch $RPM_BUILD_ROOT/var/lib/arpwatch/arp.dat
-touch $RPM_BUILD_ROOT/var/lib/arpwatch/arp.dat-
+cat > %{buildroot}%{_tmpfilesdir}/arpwatch.conf <<EOF
+# See tmpfiles.d(5) for details
+d /var/lib/arpwatch - - - -
+f /var/lib/arpwatch/arp.dat - - - -
+EOF
%pre
-%if 0%{?has_systemd}
-%service_add_pre arpwatch@.service
-%endif
+%service_add_pre arpwatch.service
%preun
-%if 0%{?has_systemd}
-%service_del_preun arpwatch@.service
-%else
-%stop_on_removal arpwatch
-%endif
+%service_del_preun arpwatch.service
%post
-%if 0%{?has_systemd}
-%service_add_post arpwatch@.service
+%service_add_post arpwatch.service
%fillup_only
-%else
-%fillup_and_insserv
-%endif
-if [ ! -f var/lib/arpwatch/arp.dat ]; then
- touch var/lib/arpwatch/arp.dat
-fi
+%tmpfiles_create %{_tmpfilesdir}/arpwatch.conf
%postun
-%if 0%{?has_systemd}
-%service_del_postun arpwatch@.service
-%else
-%restart_on_update arpwatch
-%insserv_cleanup
-%endif
+%service_del_postun arpwatch.service
%files
-%defattr(-,root,root)
-%if 0%{?has_systemd}
+%{_unitdir}/arpwatch.service
%{_unitdir}/arpwatch@.service
-%else
-%config /etc/init.d/arpwatch
+%{_tmpfilesdir}/arpwatch.conf
%{_sbindir}/rcarpwatch
-%endif
%{_sbindir}/arpsnmp
%{_sbindir}/arpwatch
-%dir /var/lib/arpwatch
-%ghost %config(noreplace) /var/lib/arpwatch/arp.dat
-%ghost %config(noreplace) /var/lib/arpwatch/arp.dat-
-/var/adm/fillup-templates/sysconfig.arpwatch
-%doc %{_mandir}/man8/arpsnmp.8.gz
-%doc %{_mandir}/man8/arpwatch.8.gz
+%ghost %dir %{_localstatedir}/lib/arpwatch
+%ghost %{_localstatedir}/lib/arpwatch/arp.dat
+%{_localstatedir}/adm/fillup-templates/sysconfig.arpwatch
+%{_mandir}/man8/arpsnmp.8%{ext_man}
+%{_mandir}/man8/arpwatch.8%{ext_man}
%doc CHANGES FILES README
%files ethercodes-build
-%defattr(-,root,root)
%{_datadir}/arpwatch
%changelog
++++++ arpwatch.service ++++++
[Unit]
Description=Arpwatch daemon which keeps track of ethernet/ip address pairings
After=network.target
Conflicts=arpwatch.target
[Service]
Type=forking
Environment=ARPWATCH_ARGS=
EnvironmentFile=-/etc/sysconfig/arpwatch
PrivateTmp=yes
ExecStartPre=/usr/bin/touch /var/lib/arpwatch/arp.dat
ExecStart=/usr/sbin/arpwatch $ARPWATCH_ARGS -f /var/lib/arpwatch/arp.dat
[Install]
WantedBy=multi-user.target
++++++ arpwatch@.service ++++++
--- /var/tmp/diff_new_pack.UqpogP/_old 2017-08-28 15:10:28.033226005 +0200
+++ /var/tmp/diff_new_pack.UqpogP/_new 2017-08-28 15:10:28.045224317 +0200
@@ -1,6 +1,7 @@
[Unit]
Description=Arpwatch daemon which keeps track of ethernet/ip address pairings
-After=syslog.target network.target
+After=network.target
+PartOf=arpwatch.target
[Service]
Type=forking
1
0
Hello community,
here is the log from the commit of package kde-print-manager for openSUSE:Factory checked in at 2017-08-28 15:10:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kde-print-manager (Old)
and /work/SRC/openSUSE:Factory/.kde-print-manager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kde-print-manager"
Mon Aug 28 15:10:14 2017 rev:28 rq:516564 version:17.08.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kde-print-manager/kde-print-manager.changes 2017-07-29 08:56:56.846635916 +0200
+++ /work/SRC/openSUSE:Factory/.kde-print-manager.new/kde-print-manager.changes 2017-08-28 15:10:22.729972035 +0200
@@ -1,0 +2,23 @@
+Sat Aug 12 12:29:51 UTC 2017 - jengelh(a)inai.de
+
+- Remove author list, replace time-sensitive description.
+
+-------------------------------------------------------------------
+Fri Aug 11 22:45:22 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.08.0
+ * New feature release
+ * https://www.kde.org/announcements/announce-applications-17.08.0.php
+- Changes since 17.04.3 :
+ * Fix license to match the source code license headers
+ * Use Q_DECLARE_OVERRIDE
+
+-------------------------------------------------------------------
+Sat Aug 5 18:19:47 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.07.90
+ * KDE Applications 17.07.90
+ * https://www.kde.org/announcements/announce-applications-17.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
print-manager-17.04.3.tar.xz
New:
----
print-manager-17.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kde-print-manager.spec ++++++
--- /var/tmp/diff_new_pack.jK0CAT/_old 2017-08-28 15:10:24.013791435 +0200
+++ /var/tmp/diff_new_pack.jK0CAT/_new 2017-08-28 15:10:24.041787497 +0200
@@ -20,12 +20,12 @@
%bcond_without lang
Name: kde-print-manager
-Version: 17.04.3
+Version: 17.08.0
Release: 0
%define kf5_version 5.26.0
-# Latest stable Applications (e.g. 16.08 in KA, but 16.11.80 in KUA)
+# Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)
%{!?_kapp_version: %global _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
-Summary: A new print manager for KDE
+Summary: A print manager for KDE
License: GPL-2.0+
Group: System/GUI/KDE
Url: http://www.kde.org
@@ -62,19 +62,13 @@
Obsoletes: kde4-print-manager < %{version}
Obsoletes: print-manager5 < %{version}
Provides: print-manager5 = %{version}
+%if %{with lang}
Recommends: %{name}-lang
+%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
-This project aims to be a full replacement for the
-current printing management of KDE.
-
-* It should be small and fast
-* Simple and functional
-* Very well integrated
-
-Author(s):
- Dantti
+This project is a replacement for the previous printing management of KDE.
%if %{with lang}
%lang_package
@@ -101,25 +95,25 @@
%files
%defattr(-,root,root)
%doc README COPYING
-%{_kf5_bindir}/kde-print-queue
+%dir %{_kf5_appstreamdir}/
+%dir %{_kf5_plasmadir}
+%dir %{_kf5_plasmadir}/plasmoids
+%{_kf5_applicationsdir}/org.kde.AddPrinter.desktop
+%{_kf5_applicationsdir}/org.kde.ConfigurePrinter.desktop
+%{_kf5_applicationsdir}/org.kde.PrintQueue.desktop
+%{_kf5_appstreamdir}/org.kde.plasma.printmanager.appdata.xml
%{_kf5_bindir}/configure-printer
%{_kf5_bindir}/kde-add-printer
+%{_kf5_bindir}/kde-print-queue
%{_kf5_libdir}/libkcupslib.so*
-%{_kf5_servicesdir}/kcm_printer_manager.desktop
-%{_kf5_servicesdir}/kded/
+%{_kf5_notifydir}/printmanager.notifyrc
+%{_kf5_plasmadir}/plasmoids/org.kde.plasma.printmanager/
%{_kf5_plugindir}/kcm_printer_manager.so
%{_kf5_plugindir}/kded_printmanager.so
-%{_kf5_applicationsdir}/org.kde.ConfigurePrinter.desktop
-%{_kf5_applicationsdir}/org.kde.AddPrinter.desktop
-%dir %{_datadir}/plasma
-%dir %{_datadir}/plasma/plasmoids
-%dir %{_kf5_appstreamdir}/
-%{_datadir}/plasma/plasmoids/org.kde.plasma.printmanager/
-%{_kf5_servicesdir}/plasma-applet-org.kde.plasma.printmanager.desktop
-%{_kf5_applicationsdir}/org.kde.PrintQueue.desktop
%{_kf5_qmldir}/org/kde/plasma/printmanager/
-%{_kf5_notifydir}/printmanager.notifyrc
-%{_kf5_appstreamdir}/org.kde.plasma.printmanager.appdata.xml
+%{_kf5_servicesdir}/kcm_printer_manager.desktop
+%{_kf5_servicesdir}/kded/
+%{_kf5_servicesdir}/plasma-applet-org.kde.plasma.printmanager.desktop
%if %{with lang}
%files lang -f %{name}.lang
++++++ print-manager-17.04.3.tar.xz -> print-manager-17.08.0.tar.xz ++++++
++++ 2038 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package grantlee-editor for openSUSE:Factory checked in at 2017-08-28 15:10:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grantlee-editor (Old)
and /work/SRC/openSUSE:Factory/.grantlee-editor.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grantlee-editor"
Mon Aug 28 15:10:12 2017 rev:9 rq:516524 version:17.08.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/grantlee-editor/grantlee-editor.changes 2017-07-29 08:55:37.237883257 +0200
+++ /work/SRC/openSUSE:Factory/.grantlee-editor.new/grantlee-editor.changes 2017-08-28 15:10:20.258319732 +0200
@@ -1,0 +2,27 @@
+Fri Aug 11 22:44:57 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.08.0
+ * New feature release
+ * https://www.kde.org/announcements/announce-applications-17.08.0.php
+- Changes since 17.04.3 :
+ * QtWebEngine supports Wayland starting with Qt 5.9
+ * Disable context menu
+ * Fix compile
+ * Minor
+ * Fix icon problem on wayland
+ * Don't use deprecated method
+ * Port some foreach
+ * Fix coding style
+ * Activate by default QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
+ * Don't use kpartgui
+- Update the package summary and description
+
+-------------------------------------------------------------------
+Sat Aug 5 18:16:47 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.07.90
+ * KDE Applications 17.07.90
+ * https://www.kde.org/announcements/announce-applications-17.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
grantlee-editor-17.04.3.tar.xz
New:
----
grantlee-editor-17.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ grantlee-editor.spec ++++++
--- /var/tmp/diff_new_pack.ywRzIX/_old 2017-08-28 15:10:21.838097498 +0200
+++ /var/tmp/diff_new_pack.ywRzIX/_new 2017-08-28 15:10:21.870092998 +0200
@@ -19,12 +19,12 @@
%bcond_without lang
Name: grantlee-editor
-Version: 17.04.3
+Version: 17.08.0
Release: 0
%define kf5_version 5.26.0
-# Latest stable Applications (e.g. 16.08 in KA, but 16.11.80 in KUA)
+# Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)
%{!?_kapp_version: %global _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
-Summary: Base package of kdepim
+Summary: Messageviewer header theme editor based on Grantlee
License: GPL-2.0+ and LGPL-2.1+
Group: System/GUI/KDE
Url: http://www.kde.org
@@ -34,6 +34,7 @@
BuildRequires: fdupes
BuildRequires: gettext-devel
BuildRequires: grantleetheme-devel
+BuildRequires: cmake(KF5KaddressbookGrantlee)
#Only required for the icon
BuildRequires: kaddressbook
BuildRequires: karchive-devel
@@ -53,7 +54,6 @@
BuildRequires: python-devel
BuildRequires: syntax-highlighting-devel
BuildRequires: update-desktop-files
-BuildRequires: cmake(KF5KaddressbookGrantlee)
BuildRequires: pkgconfig(Qt5Gui) >= 5.2.0
BuildRequires: pkgconfig(Qt5Network) >= 5.2.0
BuildRequires: pkgconfig(Qt5Qml) >= 5.2.0
@@ -68,13 +68,16 @@
%endif
Requires: kaddressbook
Requires: kmail-application-icons
+%if %{with lang}
Recommends: %{name}-lang
+%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# It can only build on the same platforms as Qt Webengine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mips mips64
%description
-This package contains the core files of the kdepim module.
+A theme editor for messageviewer based on Grantlee. Once created or modified,
+the themes can be used in KMail.
%if %{with lang}
%lang_package
@@ -103,16 +106,16 @@
%doc COPYING COPYING.LIB COPYING.DOC
%config %{_kf5_configdir}/grantleeditor.categories
%config %{_kf5_configdir}/grantleeditor.renamecategories
-%{_bindir}/contactprintthemeeditor
-%{_bindir}/contactthemeeditor
-%{_bindir}/headerthemeeditor
-%{_libdir}/libgrantleethemeeditor.so.*
+%{_kf5_bindir}/contactprintthemeeditor
+%{_kf5_bindir}/contactthemeeditor
+%{_kf5_bindir}/headerthemeeditor
%{_kf5_applicationsdir}/org.kde.contactprintthemeeditor.desktop
%{_kf5_applicationsdir}/org.kde.contactthemeeditor.desktop
%{_kf5_applicationsdir}/org.kde.headerthemeeditor.desktop
%{_kf5_configkcfgdir}/grantleethemeeditor.kcfg
-%{_kf5_htmldir}/en/contactthemeeditor/
-%{_kf5_htmldir}/en/headerthemeeditor/
+%doc %lang(en) %{_kf5_htmldir}/en/contactthemeeditor/
+%doc %lang(en) %{_kf5_htmldir}/en/headerthemeeditor/
+%{_kf5_libdir}/libgrantleethemeeditor.so.*
%if %{with lang}
%files lang -f %{name}.lang
++++++ grantlee-editor-17.04.3.tar.xz -> grantlee-editor-17.08.0.tar.xz ++++++
++++ 15201 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package bomber for openSUSE:Factory checked in at 2017-08-28 15:10:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bomber (Old)
and /work/SRC/openSUSE:Factory/.bomber.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bomber"
Mon Aug 28 15:10:09 2017 rev:64 rq:516520 version:17.08.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/bomber/bomber.changes 2017-07-29 08:55:11.289549319 +0200
+++ /work/SRC/openSUSE:Factory/.bomber.new/bomber.changes 2017-08-28 15:10:17.978640423 +0200
@@ -1,0 +2,17 @@
+Fri Aug 11 22:44:51 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.08.0
+ * New feature release
+ * https://www.kde.org/announcements/announce-applications-17.08.0.php
+- Changes since 17.04.3 :
+ * None
+
+-------------------------------------------------------------------
+Sat Aug 5 18:16:35 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.07.90
+ * KDE Applications 17.07.90
+ * https://www.kde.org/announcements/announce-applications-17.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
bomber-17.04.3.tar.xz
New:
----
bomber-17.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bomber.spec ++++++
--- /var/tmp/diff_new_pack.yIpteO/_old 2017-08-28 15:10:19.110481203 +0200
+++ /var/tmp/diff_new_pack.yIpteO/_new 2017-08-28 15:10:19.114480640 +0200
@@ -1,7 +1,7 @@
#
# spec file for package bomber
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,13 +15,14 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
%bcond_without lang
Name: bomber
-Version: 17.04.3
+Version: 17.08.0
Release: 0
%define kf5_version 5.26.0
-# Latest stable Applications (e.g. 16.08 in KA, but 16.11.80 in KUA)
+# Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)
%{!?_kapp_version: %global _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
Summary: Invading cities with a plane
License: GPL-2.0+
@@ -53,7 +54,9 @@
BuildRequires: pkgconfig(Qt5Widgets)
Obsoletes: %{name}5 < %{version}
Provides: %{name}5 = %{version}
+%if %{with lang}
Recommends: %{name}-lang
+%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -84,14 +87,15 @@
%files
%defattr(-,root,root)
-%{_kf5_bindir}/bomber
-%{_kf5_htmldir}/en/bomber/
+%doc COPYING*
+%dir %{_kf5_configkcfgdir}
%{_kf5_applicationsdir}/org.kde.bomber.desktop
-%{_kf5_iconsdir}/hicolor/*/*/bomber.*
%{_kf5_appsdir}/bomber/
-%dir %{_kf5_configkcfgdir}
-%{_kf5_configkcfgdir}/bomber.kcfg
%{_kf5_appstreamdir}/
+%{_kf5_bindir}/bomber
+%{_kf5_configkcfgdir}/bomber.kcfg
+%doc %lang(en) %{_kf5_htmldir}/en/bomber/
+%{_kf5_iconsdir}/hicolor/*/*/bomber.*
%{_kf5_kxmlguidir}/bomber/
%if %{with lang}
++++++ bomber-17.04.3.tar.xz -> bomber-17.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bomber-17.04.3/po/gl/bomber.po new/bomber-17.08.0/po/gl/bomber.po
--- old/bomber-17.04.3/po/gl/bomber.po 2017-07-11 02:21:09.000000000 +0200
+++ new/bomber-17.08.0/po/gl/bomber.po 2017-08-11 02:38:16.000000000 +0200
@@ -131,7 +131,7 @@
"Welcome to Bomber.\n"
"Click to start a game"
msgstr ""
-"Benvido ao Bomber.\n"
+"Benvido a Bomber.\n"
"Preme para comezar unha partida."
#: src/bomberwidget.cpp:321
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bomber-17.04.3/po/pt/docs/bomber/index.docbook new/bomber-17.08.0/po/pt/docs/bomber/index.docbook
--- old/bomber-17.04.3/po/pt/docs/bomber/index.docbook 2017-07-11 02:21:10.000000000 +0200
+++ new/bomber-17.08.0/po/pt/docs/bomber/index.docbook 2017-08-11 02:38:16.000000000 +0200
@@ -1,12 +1,5 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
- <!ENTITY bomber "<application
->Bomber</application
->">
- <!ENTITY kappname "&bomber;">
- <!ENTITY package "kdegames">
- <!ENTITY kappversion "0.1"
-><!--Applicaion version. Use this variable everywhere it's needed.-->
<!ENTITY % addindex "IGNORE">
<!ENTITY % Portuguese "INCLUDE">
]>
@@ -57,15 +50,13 @@
</legalnotice>
<date
->2012-08-06</date
-><!-- Date of (re)writing, or update.-->
+>2016-05-09</date>
<releaseinfo
->&kappversion; (&kde; 4.9) </releaseinfo
-><!-- Application version number. Use the variable definitions within header to change this value.-->
+>0.4 (Aplicações 16.04) </releaseinfo>
<abstract>
<para
->Esta documentação descreve o jogo &bomber; na versão &kappversion; </para>
+>Esta documentação descreve o jogo &bomber; na versão 0.4 </para>
</abstract>
<keywordset>
@@ -112,6 +103,17 @@
<chapter id="how-to-play">
<title
>Como Jogar</title>
+<screenshot>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mainscreen.png" format="PNG"/>
+</imageobject>
+<textobject>
+<phrase
+>Ecrã principal do &bomber;</phrase>
+</textobject>
+</mediaobject>
+</screenshot>
<para
>O jogador está a pilotar um avião numa cidade. Este avião voa da esquerda para a direita. Sempre que desaparecer no extremo da área de jogo, volta a aparecer do lado esquerdo, mas um pouco mais abaixo do local onde estava antes. </para>
<para
@@ -139,9 +141,9 @@
>, localizado na parte inferior desta janela. </para>
</chapter>
- <chapter id="credits-and-licenses">
+ <chapter id="credits-and-license">
<title
->Créditos e Licenças</title>
+>Créditos e Licença</title>
<para
@@ -166,15 +168,4 @@
>
&underFDL; &underGPL; </chapter>
- <appendix id="installation">
- <title
->Instalação</title>
-
- &install.intro.documentation;
-
- &install.compile.documentation;
-
- </appendix>
-
-
</book>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bomber-17.04.3/po/tr/bomber.po new/bomber-17.08.0/po/tr/bomber.po
--- old/bomber-17.04.3/po/tr/bomber.po 2017-07-11 02:21:10.000000000 +0200
+++ new/bomber-17.08.0/po/tr/bomber.po 2017-08-11 02:38:16.000000000 +0200
@@ -12,8 +12,8 @@
"POT-Creation-Date: 2016-11-19 20:14+0100\n"
"PO-Revision-Date: 2017-05-16 12:46+0000\n"
"Last-Translator: Mete <metebilgin48(a)gmail.com>\n"
-"Language-Team: Turkish "
-"(http://www.transifex.com/projects/p/kdegames-k-tr/language/tr/)\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/kdegames-k-tr/"
+"language/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bomber-17.04.3/po/zh_CN/bomber.po new/bomber-17.08.0/po/zh_CN/bomber.po
--- old/bomber-17.04.3/po/zh_CN/bomber.po 2017-07-11 02:21:10.000000000 +0200
+++ new/bomber-17.08.0/po/zh_CN/bomber.po 2017-08-11 02:38:16.000000000 +0200
@@ -1,24 +1,20 @@
-# translation of bomber.po to 简体中文
-# Copyright (C) YEAR This_file_is_part_of_KDE
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Ni Hui <shuizhuyuanluo(a)126.com>, 2008, 2012.
-# Lie Ex <lilith.ex(a)gmail.com>, 2008,2009.
-# Chao Feng <chaofeng111(a)gmail.com>, 2016.
msgid ""
msgstr ""
-"Project-Id-Version: bomber\n"
+"Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2016-11-19 20:14+0100\n"
-"PO-Revision-Date: 2016-07-30 15:45+0800\n"
-"Last-Translator: Chao Feng <chaofeng111(a)gmail.com>\n"
-"Language-Team: Chinese <kde-china(a)kde.org>\n"
+"PO-Revision-Date: 2017-08-05 09:35-0400\n"
+"Last-Translator: guoyunhebrave <guoyunhebrave(a)gmail.com>\n"
+"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Lokalize 2.0\n"
+"X-Generator: crowdin.com\n"
+"X-Crowdin-Project: kdeorg\n"
+"X-Crowdin-Language: zh-CN\n"
+"X-Crowdin-File: /kf5-stable/messages/kdegames/bomber.pot\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -179,76 +175,3 @@
#, kde-format
msgid "Porting to QGraphicsView."
msgstr "移植到 QGraphicsView。"
-
-#~ msgid "The graphical theme to be used."
-#~ msgstr "要使用的图形主题。"
-
-#~ msgid "Theme"
-#~ msgstr "主题"
-
-#~ msgid "Background color:"
-#~ msgstr "背景颜色:"
-
-#~ msgid "Choose a new background color"
-#~ msgstr "选择新背景颜色"
-
-#~ msgid ""
-#~ "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/"
-#~ "css\">\n"
-#~ "p, li { white-space: pre-wrap; }\n"
-#~ "</style></head><body style=\" font-family:'DejaVu Serif'; font-size:9pt; "
-#~ "font-weight:400; font-style:normal;\">\n"
-#~ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-"
-#~ "right:0px; -qt-block-indent:0; text-indent:0px;\">Change the <span style="
-#~ "\" font-weight:600;\">background</span> color by clicking here and choose "
-#~ "the new <span style=\" color:#ff0000;\">color</span> in the <span style="
-#~ "\" font-style:italic;\">color dialog</span>.</p></body></html>"
-#~ msgstr ""
-#~ "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/"
-#~ "css\">\n"
-#~ "p, li { white-space: pre-wrap; }\n"
-#~ "</style></head><body style=\" font-family:'DejaVu Serif'; font-size:9pt; "
-#~ "font-weight:400; font-style:normal;\">\n"
-#~ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-"
-#~ "right:0px; -qt-block-indent:0; text-indent:0px;\">点击这里可以更改<span "
-#~ "style=\" font-weight:600;\">背景</span>颜色,也可以在<span style=\" font-"
-#~ "style:italic;\">颜色对话框</span>中选择新<span style=\" color:#ff0000;\">"
-#~ "颜色</span>。</p></body></html>"
-
-#~ msgid "Project age:"
-#~ msgstr "工程时间:"
-
-#~ msgid "Foreground color:"
-#~ msgstr "前景颜色:"
-
-#~ msgid "Choose a new foreground color"
-#~ msgstr "选择新前景颜色"
-
-#~ msgid ""
-#~ "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/"
-#~ "css\">\n"
-#~ "p, li { white-space: pre-wrap; }\n"
-#~ "</style></head><body style=\" font-family:'DejaVu Serif'; font-size:9pt; "
-#~ "font-weight:400; font-style:normal;\">\n"
-#~ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-"
-#~ "right:0px; -qt-block-indent:0; text-indent:0px;\">Change the <span style="
-#~ "\" font-weight:600;\">foreground</span> color by clicking here and choose "
-#~ "the new <span style=\" color:#ff0000;\">color</span> in the <span style="
-#~ "\" font-style:italic;\">color dialog</span>.</p></body></html>"
-#~ msgstr ""
-#~ "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/"
-#~ "css\">\n"
-#~ "p, li { white-space: pre-wrap; }\n"
-#~ "</style></head><body style=\" font-family:'DejaVu Serif'; font-size:9pt; "
-#~ "font-weight:400; font-style:normal;\">\n"
-#~ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-"
-#~ "right:0px; -qt-block-indent:0; text-indent:0px;\">点击这里可以更改<span "
-#~ "style=\" font-weight:600;\">前景</span>颜色,也可以在<span style=\" font-"
-#~ "style:italic;\">颜色对话框</span>中选择新<span style=\" color:#ff0000;\">"
-#~ "颜色</span>。</p></body></html>"
-
-#~ msgid "Set the project age (in days)"
-#~ msgstr "设定工程时间(按天计)"
-
-#~ msgid "Change the project age (in days) by choosing a new number of days."
-#~ msgstr "以天为单位更改工程时间。"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bomber-17.04.3/src/org.kde.bomber.appdata.xml new/bomber-17.08.0/src/org.kde.bomber.appdata.xml
--- old/bomber-17.04.3/src/org.kde.bomber.appdata.xml 2017-05-30 04:52:23.000000000 +0200
+++ new/bomber-17.08.0/src/org.kde.bomber.appdata.xml 2017-07-26 09:30:25.000000000 +0200
@@ -61,6 +61,7 @@
<summary xml:lang="tr">Bombalama Macera Oyunu</summary>
<summary xml:lang="uk">Аркадна гра у бомбометання</summary>
<summary xml:lang="x-test">xxArcade Bombing Gamexx</summary>
+ <summary xml:lang="zh-CN">街机上的投弹游戏</summary>
<summary xml:lang="zh-TW">大型遊戲機的戰鬥機遊戲</summary>
<description>
<p>
1
0
Hello community,
here is the log from the commit of package jovie for openSUSE:Factory checked in at 2017-08-28 15:10:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/jovie (Old)
and /work/SRC/openSUSE:Factory/.jovie.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jovie"
Mon Aug 28 15:10:07 2017 rev:75 rq:516519 version:17.08.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/jovie/jovie.changes 2017-07-29 08:55:38.569695094 +0200
+++ /work/SRC/openSUSE:Factory/.jovie.new/jovie.changes 2017-08-28 15:10:14.239166468 +0200
@@ -1,0 +2,17 @@
+Fri Aug 11 22:45:00 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.08.0
+ * New feature release
+ * https://www.kde.org/announcements/announce-applications-17.08.0.php
+- Changes since 17.04.3 :
+ * None
+
+-------------------------------------------------------------------
+Sat Aug 5 18:16:50 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.07.90
+ * KDE Applications 17.07.90
+ * https://www.kde.org/announcements/announce-applications-17.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
jovie-17.04.3.tar.xz
New:
----
jovie-17.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ jovie.spec ++++++
--- /var/tmp/diff_new_pack.BkZFf6/_old 2017-08-28 15:10:15.363008373 +0200
+++ /var/tmp/diff_new_pack.BkZFf6/_new 2017-08-28 15:10:15.375006685 +0200
@@ -1,7 +1,7 @@
#
# spec file for package jovie
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,10 +17,10 @@
Name: jovie
-Version: 17.04.3
+Version: 17.08.0
Release: 0
%define kf5_version 5.26.0
-# Latest stable Applications (e.g. 16.08 in KA, but 16.11.80 in KUA)
+# Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)
%{!?_kapp_version: %global _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
Summary: Text-to-Speech
License: GPL-2.0+
@@ -65,16 +65,16 @@
%files
%defattr(-,root,root)
-%{_kde4_htmldir}/en/jovie/
-%{_kde4_libdir}/libkttsd.so*
+%dir %{_datadir}/metainfo
+%{_datadir}/metainfo/org.kde.jovie.appdata.xml
+%{_kde4_applicationsdir}/org.kde.jovie.desktop
%{_kde4_appsdir}/jovie/
-%{_kde4_servicetypesdir}/*.desktop
-%{_kde4_servicesdir}/*.desktop
%{_kde4_bindir}/jovie
-%{_kde4_modulesdir}/*.so
+%{_kde4_htmldir}/en/jovie/
%{_kde4_iconsdir}/hicolor/*/*/*.png
-%{_kde4_applicationsdir}/org.kde.jovie.desktop
-%dir %{_datadir}/metainfo
-%{_datadir}/metainfo/org.kde.jovie.appdata.xml
+%{_kde4_libdir}/libkttsd.so*
+%{_kde4_modulesdir}/*.so
+%{_kde4_servicesdir}/*.desktop
+%{_kde4_servicetypesdir}/*.desktop
%changelog
++++++ jovie-17.04.3.tar.xz -> jovie-17.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jovie-17.04.3/jovie/org.kde.jovie.appdata.xml new/jovie-17.08.0/jovie/org.kde.jovie.appdata.xml
--- old/jovie-17.04.3/jovie/org.kde.jovie.appdata.xml 2017-02-03 01:18:51.000000000 +0100
+++ new/jovie-17.08.0/jovie/org.kde.jovie.appdata.xml 2017-04-24 01:13:59.000000000 +0200
@@ -11,6 +11,7 @@
<name xml:lang="ca-valencia">Jovie</name>
<name xml:lang="cs">Jovie</name>
<name xml:lang="de">Jovie</name>
+ <name xml:lang="el">Jovie</name>
<name xml:lang="en-GB">Jovie</name>
<name xml:lang="es">Jovie</name>
<name xml:lang="et">Jovie</name>
@@ -42,6 +43,7 @@
<summary xml:lang="ca">El dimoni de text-a-veu del KDE</summary>
<summary xml:lang="ca-valencia">El dimoni de text-a-veu del KDE</summary>
<summary xml:lang="de">Der KDE-Dämon für Sprachausgabe</summary>
+ <summary xml:lang="el">Δαίμονας KDE για κείμενο σε ομιλία</summary>
<summary xml:lang="en-GB">KDE Text To Speech Daemon</summary>
<summary xml:lang="es">Demonio de conversión de texto a voz de KDE</summary>
<summary xml:lang="et">KDE teksti ettelugemise deemon</summary>
@@ -77,6 +79,7 @@
<p xml:lang="ca">El text-a-veu Jovie del KDE és un subsistema dins l'escriptori KDE per a la conversió de text a una pronunciació audible. El Jovie està actualment en desenvolupament i pretén esdevenir el subsistema estàndard per a totes les aplicacions del KDE per subministrar una sortida de veu.</p>
<p xml:lang="ca-valencia">El text-a-veu Jovie del KDE és un subsistema dins l'escriptori KDE per a la conversió de text a una pronunciació audible. El Jovie està actualment en desenvolupament i pretén esdevenir el subsistema estàndard per a totes les aplicacions del KDE per subministrar una eixida de veu.</p>
<p xml:lang="de">Das KDE-Sprachausgabesystem Jovie ist ein Dienst für die KDE-Arbeitsumgebung zur Umwandlung von Text in hörbare Sprache. Jovie wird zurzeit noch entwickelt, um das Standardsystem für alle KDE-Anwendungen zur Sprachausgabe zu werden.</p>
+ <p xml:lang="el">Το Jovie KDE Text-to-Speech είναι ένα υποσύστημα στην επιφάνεια εργασίας του KDE για μετατροπή κειμένου σε προφορικό λόγο. το Jovie είναι τώρα σε φάση ανάπτυξης και στοχεύει να γίνει το πρότυπο υποσύστημα για όλες τις εφαρμογές του KDE που παρέχουν προφορικό λόγο.</p>
<p xml:lang="en-GB">Jovie KDE Text-to-Speech is a subsystem within the KDE desktop for conversion of text to audible speech. Jovie is currently under development and aims to become the standard subsystem for all KDE applications to provide speech output.</p>
<p xml:lang="es">Jovie es un subsistema del escritorio KDE para la conversión de texto a voz. Jovie está actualmente en desarrollo y su objetivo es convertirse en el subsistema estándar para que todas las aplicaciones de KDE puedan proporcionar salida de voz.</p>
<p xml:lang="et">Jovie KDE teksti ettelugemise deemon on KDE töölaua allsüsteem teksti muutmiseks kõneks. Praegu jõudsalt arendatava Jovie eesmärk on saada kõigi KDE rakenduste standardseks allsüsteemiks, mis tagab neile kõneväljundi võimaluse.</p>
@@ -107,6 +110,7 @@
<p xml:lang="ca">Característiques per als usuaris:</p>
<p xml:lang="ca-valencia">Característiques per als usuaris:</p>
<p xml:lang="de">Eigenschaften für Benutzer:</p>
+ <p xml:lang="el">Χαρακτηριστικά χρήστη:</p>
<p xml:lang="en-GB">User Features:</p>
<p xml:lang="es">Funcionalidades para los usuarios:</p>
<p xml:lang="et">Kasutajate võimalused:</p>
@@ -141,6 +145,7 @@
<li xml:lang="ca">Pronuncia qualsevol text des del porta-retalls del KDE.</li>
<li xml:lang="ca-valencia">Pronuncia qualsevol text des del porta-retalls del KDE.</li>
<li xml:lang="de">Liest beliebigen Text aus der KDE-Zwischenablage vor.</li>
+ <li xml:lang="el">Μετατρέψτε σε ομιλία οποιοδήποτε κείμενο από το πρόχειρο του KDE.</li>
<li xml:lang="en-GB">Speak any text from the KDE clipboard.</li>
<li xml:lang="es">Conversión de texto a voz de cualquier texto del portapapeles.</li>
<li xml:lang="et">Lasta kõnelda suvalist teksti KDE lõikepuhvrist</li>
@@ -173,6 +178,7 @@
<li xml:lang="ca">Pronuncia qualsevol fitxer de text net.</li>
<li xml:lang="ca-valencia">Pronuncia qualsevol fitxer de text net.</li>
<li xml:lang="de">Liest beliebige Textdateien ohne Formatierung vor.</li>
+ <li xml:lang="el">Μετατρέψτε σε ομιλία οποιοδήποτε αρχείο απλού κειμένου.</li>
<li xml:lang="en-GB">Speak any plain text file.</li>
<li xml:lang="es">Convertir a voz cualquier archivo de texto sin formato.</li>
<li xml:lang="et">Lasta kõnelda suvalist lihttekstifaili</li>
@@ -206,6 +212,7 @@
<li xml:lang="ca">Pronuncia tot o qualsevol porció d'un fitxer de text des del Kate, incloent-hi les instàncies en les quals el Kate estigui incrustat en una altra aplicació del KDE.</li>
<li xml:lang="ca-valencia">Pronuncia tot o qualsevol porció d'un fitxer de text des del Kate, incloent-hi les instàncies en les quals el Kate estiga incrustat en una altra aplicació del KDE.</li>
<li xml:lang="de">Vorlesen von Texten (oder Teilen davon) im Texteditor Kate, auch wenn Kate in andere KDE-Anwendungen eingebettet ist.</li>
+ <li xml:lang="el">Μετατρέψτε σε ομιλία ολόκληρο ή οποιοδήποτε τμήμα αρχείου κειμένου από το Kate, συμπεριλαμβανομένων περιπτώσεων όπου το Kate είναι ενσωματωμένο σε άλλη εφαρμογή του KDE.</li>
<li xml:lang="en-GB">Speak all or any portion of a text file from Kate, including instances where Kate is embedded in another KDE application.</li>
<li xml:lang="es">Convertir a voz todo un archivo de texto de Kate o cualquier parte de él, incluidas las instancias de Kate que estén integradas en otra aplicación de KDE.</li>
<li xml:lang="et">Lasta kõnelda täielikult või osaliselt Kates avatud tekstifaili, sealhulgas juhul, kui Kate on lõimitud mõnda muusse KDE rakendusse</li>
@@ -238,6 +245,7 @@
<li xml:lang="ca">Pronuncia tot o qualsevol porció d'una pàgina HTML des del Konqueror.</li>
<li xml:lang="ca-valencia">Pronuncia tot o qualsevol porció d'una pàgina HTML des del Konqueror.</li>
<li xml:lang="de">Liest eine HTML-Seite in Konqueror ganz oder teilweise vor.</li>
+ <li xml:lang="el">Μετατρέψτε σε ομιλία ολόκληρη ή οποιοδήποτε τμήμα σελίδας HTML από τον Konqueror.</li>
<li xml:lang="en-GB">Speak all or any portion of an HTML page from Konqueror.</li>
<li xml:lang="es">Convertir a texto cualquier página HTML o parte de ella en Konqueror.</li>
<li xml:lang="et">Lasta kõnelda täielikult või osaliselt Konqueroris avatud HTML-lehekülge</li>
@@ -270,6 +278,7 @@
<li xml:lang="ca">Ús com a dorsal de veu pel KMouth i el KSayIt.</li>
<li xml:lang="ca-valencia">Ús com a dorsal de veu pel KMouth i el KSayIt.</li>
<li xml:lang="de">Kann als Sprachmodul für KMouth und KSayIt benutzt werden.</li>
+ <li xml:lang="el">Να χρησιμοποιείται ως σύστημα υποστήριξης λόγου για τα KMouth και KSayIt.</li>
<li xml:lang="en-GB">Use as the speech backend for KMouth and KSayIt.</li>
<li xml:lang="es">Utilizarlo como motor de conversión de texto a voz para KMouth y KSaylt.</li>
<li xml:lang="et">Toimida KMouthi ja KSayIti kõne-taustaprogrammina</li>
@@ -302,6 +311,7 @@
<li xml:lang="ca">Pronuncia les notificacions del KDE (KNotify).</li>
<li xml:lang="ca-valencia">Pronuncia les notificacions del KDE (KNotify).</li>
<li xml:lang="de">Liest KDE-Benachrichtigungen vor (KNotify).</li>
+ <li xml:lang="el">Μετατρέψτε σε ομιλία ειδοποιήσεις του KDE (KNotify).</li>
<li xml:lang="en-GB">Speak KDE notifications (KNotify).</li>
<li xml:lang="es">Convertir a voz las notificaciones de KDE (Knotify).</li>
<li xml:lang="et">Lasta kõnelda KDE märguandeid (KNotify)</li>
@@ -334,6 +344,7 @@
<li xml:lang="ca">Filtres configurables per l'usuari per a substituir les paraules que no es poden llegir, escollint els sintetitzadors de veu i transformant els documents XHTML/XML.</li>
<li xml:lang="ca-valencia">Filtres configurables per l'usuari per a substituir les paraules que no es poden llegir, escollint els sintetitzadors de veu i transformant els documents XHTML/XML.</li>
<li xml:lang="de">Einstellbare Filter, um falsch ausgesprochene Worte zu ersetzen, Sprachsynthesizer auszuwählen und XML-Dokumente umzuwandeln.</li>
+ <li xml:lang="el">Διαμορφώσιμα από τον χρήστη φίλτρα για αντικατάσταση λέξεων με πρόβλημα προφοράς, επιλέγοντας συνθέτες ομίλίας και μετατρέποντας XHMTL/XML έγγραφα.</li>
<li xml:lang="en-GB">User-configurable filters for substituting misspoken words, choosing speech synthesisers, and transforming XHMTL/XML documents.</li>
<li xml:lang="es">Filtros configurables por el usuario para sustituir palabras pronunciadas incorrectamente, eligiendo sintetizadores de voz y transformando documentos XHTML/XML.</li>
<li xml:lang="et">Seadistatavad filtrid valesti kõneldud sõnade asendamiseks, kõnesüntesaatori valimiseks ja XHMTL/XML-dokumentide transformeerimiseks.</li>
@@ -365,6 +376,7 @@
<p xml:lang="ca">Característiques per als programadors:</p>
<p xml:lang="ca-valencia">Característiques per als programadors:</p>
<p xml:lang="de">Eigenschaften für Programmierer:</p>
+ <p xml:lang="el">Χαρακτηριστικά προγραμματιστή:</p>
<p xml:lang="en-GB">Programmer Features:</p>
<p xml:lang="es">Funcionalidades para los programadores:</p>
<p xml:lang="et">Programmeerija võimalused:</p>
@@ -397,6 +409,7 @@
<li xml:lang="ca">Sistema de prioritats per a la lectura de sortides per pantalla, avisos i missatges, mentre s'estan reproduint texts normals.</li>
<li xml:lang="ca-valencia">Sistema de prioritats per a la lectura d'eixides per pantalla, avisos i missatges, mentre s'estan reproduint texts normals.</li>
<li xml:lang="de">Prioritätssystem für die Ausgabe von Screen-Readern, Warnungen und Nachrichten, während andere Texte vorgelesen werden.</li>
+ <li xml:lang="el">Σύστημα προτεραιότητας για προβολές προγραμμάτων ανάγνωσης σε οθόνη, προειδοποιήσεις και μηνύματα, ενώ παίζονται κανονικά κείμενα.</li>
<li xml:lang="en-GB">Priority system for screen reader outputs, warnings and messages, while still playing regular texts.</li>
<li xml:lang="es">Sistema de prioridades para la salida del lector de pantalla, advertencias y mensajes mientras aún se están reproduciendo archivos normales.</li>
<li xml:lang="et">Suurepärane süsteem ekraanilugeja väljundi, hoiatuste ja teadete jaoks, mis suudab esitada ka tavalist teksti.</li>
@@ -428,6 +441,7 @@
<li xml:lang="ca">Permet la generació de veu des de la línia d'ordres (o a través de scripts de l'intèrpret d'ordres) usant la utilitat qdbus.</li>
<li xml:lang="ca-valencia">Permet la generació de veu des de la línia d'ordes (o a través de scripts de l'intèrpret d'ordes) usant la utilitat qdbus.</li>
<li xml:lang="de">Ermöglicht die Erzeugung von Sprachausgaben auf der Befehlszeile (oder mit Shell-Skripten) über das qdbus-Hilfsprogramm.</li>
+ <li xml:lang="el">Να επιτρέπεται η παραγωγή λόγου από τη γραμμή εντολών (ή μέσω σεναρίων κελύφους) με χρήση του εργαλείου qdbus.</li>
<li xml:lang="en-GB">Permit generation of speech from the command line (or via shell scripts) using the qdbus utility.</li>
<li xml:lang="es">Permitir la generación de voz a partir de la línea de órdenes (o a través de scripts del intérprete de órdenes) mediante la utilidad qdbus.</li>
<li xml:lang="et">Kõne tekitamise võimalus käsurealt (või shelliskriptiga) qdbusi tööriista vahendusel.</li>
@@ -459,6 +473,7 @@
<li xml:lang="ca">Proveeix una interfície lleugera i fàcil d'usar perquè les aplicacions generin sortides de veu.</li>
<li xml:lang="ca-valencia">Proveeix una interfície lleugera i fàcil d'usar perquè les aplicacions generin eixides de veu.</li>
<li xml:lang="de">Stellt für Anwendungen eine einfach zu benutzende Schnittstelle für die Sprachausgabe bereit.</li>
+ <li xml:lang="el">Παρέχει ένα λιτό και ευκολόχρηστο περιβάλλον για εφαρμογές παραγωγής ομιλίας.</li>
<li xml:lang="en-GB">Provide a lightweight and easily usable interface for applications to generate speech output.</li>
<li xml:lang="es">Proporcionar una interfaz ligera y sencilla de utilizar para que las aplicaciones generen salida de voz.</li>
<li xml:lang="et">Lihtne ja väike liides rakendustele kõneväljundi tekitamiseks.</li>
@@ -490,6 +505,7 @@
<li xml:lang="ca">Les aplicacions no necessiten saber com funciona el dispositiu de veu.</li>
<li xml:lang="ca-valencia">Les aplicacions no necessiten saber com funciona el dispositiu de veu.</li>
<li xml:lang="de">Anwendungen müssen keine Einzelheiten über das Sprachausgabegerät wissen.</li>
+ <li xml:lang="el">Οι εφαρμογές δεν χρειάζεται να ασχολούνται με προβλήματα της συσκευής ομιλίας.</li>
<li xml:lang="en-GB">Applications need not be concerned about contention over the speech device.</li>
<li xml:lang="es">Las aplicaciones no tienen que preocuparse sobre disputas sobre el dispositivo de voz.</li>
<li xml:lang="et">Rakendused ei pruugi muret tunda kõneseadme pärast.</li>
@@ -522,6 +538,7 @@
<li xml:lang="ca">Asincronisme per a prevenir blocats del sistema.</li>
<li xml:lang="ca-valencia">Asincronisme per a prevenir blocats del sistema.</li>
<li xml:lang="de">Asynchron zur Vermeidung von Systemblockaden.</li>
+ <li xml:lang="el">Ασύγχρονο για την πρόληψη κλειδωμάτων στο σύστημα.</li>
<li xml:lang="en-GB">Asynchronous to prevent system blocking.</li>
<li xml:lang="es">Asíncrono para evitar que se bloquee el sistema.</li>
<li xml:lang="et">Asünkroonsus süsteemi blokeerimise vältimiseks.</li>
1
0
Hello community,
here is the log from the commit of package kajongg for openSUSE:Factory checked in at 2017-08-28 15:10:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kajongg (Old)
and /work/SRC/openSUSE:Factory/.kajongg.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kajongg"
Mon Aug 28 15:10:05 2017 rev:64 rq:516517 version:17.08.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kajongg/kajongg.changes 2017-07-29 08:55:42.681114220 +0200
+++ /work/SRC/openSUSE:Factory/.kajongg.new/kajongg.changes 2017-08-28 15:10:09.947770152 +0200
@@ -1,0 +2,17 @@
+Fri Aug 11 22:45:03 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.08.0
+ * New feature release
+ * https://www.kde.org/announcements/announce-applications-17.08.0.php
+- Changes since 17.04.3 :
+ * None
+
+-------------------------------------------------------------------
+Sat Aug 5 18:16:58 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.07.90
+ * KDE Applications 17.07.90
+ * https://www.kde.org/announcements/announce-applications-17.07.90.php
+- Drop fix-i18n.patch (no longer needed)
+
+-------------------------------------------------------------------
Old:
----
fix-i18n.patch
kajongg-17.04.3.tar.xz
New:
----
kajongg-17.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kajongg.spec ++++++
--- /var/tmp/diff_new_pack.0LHQt3/_old 2017-08-28 15:10:11.459557485 +0200
+++ /var/tmp/diff_new_pack.0LHQt3/_new 2017-08-28 15:10:11.471555797 +0200
@@ -1,7 +1,7 @@
#
# spec file for package kajongg
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,38 +15,39 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
%bcond_without lang
Name: kajongg
-Version: 17.04.3
+Version: 17.08.0
Release: 0
%define kf5_version 5.26.0
-# Latest stable Applications (e.g. 16.08 in KA, but 16.11.80 in KUA)
+# Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)
%{!?_kapp_version: %global _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
Summary: 4 Player Mahjongg game
License: GPL-2.0+
Group: Amusements/Games/Board/Puzzle
Url: http://www.kde.org
Source0: kajongg-%{version}.tar.xz
-# PATCH-FIX-UPSTREAM (I hope)
-Patch1: fix-i18n.patch
BuildRequires: extra-cmake-modules
-BuildRequires: cmake(Qt5Core)
-BuildRequires: cmake(Qt5Gui)
-BuildRequires: cmake(Qt5Svg)
-BuildRequires: cmake(Qt5Widgets)
+BuildRequires: python3-Twisted >= 16.6.0
+BuildRequires: python3-base >= 3.5.0
+BuildRequires: python3-qt5-devel
+BuildRequires: update-desktop-files
+BuildRequires: xz
BuildRequires: cmake(KF5Config)
+BuildRequires: cmake(KF5ConfigWidgets)
BuildRequires: cmake(KF5DocTools)
BuildRequires: cmake(KF5I18n)
BuildRequires: cmake(KF5KMahjongglib)
-BuildRequires: cmake(KF5ConfigWidgets)
-BuildRequires: python3-base >= 3.5.0
-BuildRequires: python3-qt5-devel
-BuildRequires: python3-Twisted >= 16.6.0
-BuildRequires: xz
-BuildRequires: update-desktop-files
+BuildRequires: cmake(Qt5Core)
+BuildRequires: cmake(Qt5Gui)
+BuildRequires: cmake(Qt5Svg)
+BuildRequires: cmake(Qt5Widgets)
Requires: python3-Twisted
+%if %{with lang}
Recommends: %{name}-lang
+%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
@@ -59,7 +60,6 @@
%prep
%setup -q -n kajongg-%{version}
-%patch1 -p1
%build
# Workaround for kde#376303
@@ -81,17 +81,17 @@
%files
%defattr(-,root,root)
-%doc COPYING COPYING.DOC README
-%{_bindir}/kajongg
-%{_bindir}/kajonggserver
+%doc COPYING* README
+%doc %lang(en) %{_kf5_htmldir}/en/kajongg/
%{_kf5_applicationsdir}/org.kde.kajongg.desktop
-%{_kf5_htmldir}/en/kajongg/
-%{_kf5_iconsdir}/hicolor/*/apps/kajongg.*
-%{_kf5_iconsdir}/hicolor/*/actions/games-kajongg-law.*
%{_kf5_appsdir}/kajongg/
-%{_datadir}/metainfo/
-
+%{_kf5_appstreamdir}/
+%{_kf5_bindir}/kajongg
+%{_kf5_bindir}/kajonggserver
+%{_kf5_iconsdir}/hicolor/*/actions/games-kajongg-law.*
+%{_kf5_iconsdir}/hicolor/*/apps/kajongg.*
%if %{with lang}
+
%files lang -f %{name}.lang
%doc COPYING*
%endif
++++++ kajongg-17.04.3.tar.xz -> kajongg-17.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kajongg-17.04.3/org.kde.kajongg.appdata.xml new/kajongg-17.08.0/org.kde.kajongg.appdata.xml
--- old/kajongg-17.04.3/org.kde.kajongg.appdata.xml 2017-05-24 09:25:08.000000000 +0200
+++ new/kajongg-17.08.0/org.kde.kajongg.appdata.xml 2017-07-15 16:12:18.000000000 +0200
@@ -31,6 +31,7 @@
<name xml:lang="sr-ijekavian">Каџонг</name>
<name xml:lang="sr-ijekavianlatin">Kadžong</name>
<name xml:lang="sv">Kajongg</name>
+ <name xml:lang="tr">Kajongg</name>
<name xml:lang="uk">Kajongg</name>
<name xml:lang="x-test">xxKajonggxx</name>
<name xml:lang="zh-CN">Kajongg</name>
@@ -61,6 +62,7 @@
<summary xml:lang="sr-ijekavian">Маџонг</summary>
<summary xml:lang="sr-ijekavianlatin">Madžong</summary>
<summary xml:lang="sv">Mah Jong</summary>
+ <summary xml:lang="tr">Mah Jongg</summary>
<summary xml:lang="uk">Гра у маджонґ</summary>
<summary xml:lang="x-test">xxMah Jonggxx</summary>
<summary xml:lang="zh-CN">麻将</summary>
@@ -81,7 +83,7 @@
<p xml:lang="et">Kajongg on muistne Hiina lauamäng neljale mängijale. Kajonggi võib kasutada kahel viisil: mängu tulemuste määramine käsitsi, millisel juhul mäng käib nagu ikka, ilma arvuti abita, ning Kajonggi kasutatakse tulemuste arvutamiseks ja arvepidamiseks. Teine võimalus Kajonggi kasutada on mängida mis tahes inim- ja arvutimängijate kombinatsiooni vastu.</p>
<p xml:lang="fi">Kajongg on vanha kiinalainen lautapeli neljälle pelaajalle. Kajonggia voi pelata kahdella tapaa: voit joko pelata tavalliseen tapaan ja käyttää Kajonggia vain laskemaan pisteet ja pitämään kirjaa, tai voit pelata mitä tahansa muiden ihmispelaajien ja tietokonepelaajien yhdistelmää vastaan.</p>
<p xml:lang="fr">Kajongg est un ancien jeu de société chinois pour 4 joueurs. Kajongg peut être utilisé de deux manières : pour calculer les scores et tenir les comptes lors d'une partie manuelle durant laquelle vous jouez comme d'habitude ou bien pour jouer contre d'autres joueurs humains ou contre l'ordinateur par l'intermédiaire de Kajongg.</p>
- <p xml:lang="gl">Kajongg é un antigo xogo de taboleiro chinés para 4 xogadores. Kajongg pódese empregar de dúas maneiras distintas. Podes xogar unha partida manual na que ti xogas como sempre e empregas o Kajongg para que leve a puntuación e as anotacións. Ou podes empregar o Kajongg para xogar contra calquera combinación de xogadores humanos ou informáticos.</p>
+ <p xml:lang="gl">Kajongg é un antigo xogo de taboleiro chinés para 4 xogadores. Kajongg pódese empregar de dúas maneiras distintas. Podes xogar unha partida manual na que ti xogas como sempre e empregas Kajongg para que leve a puntuación e as anotacións. Ou podes empregar Kajongg para xogar contra calquera combinación de xogadores humanos ou informáticos.</p>
<p xml:lang="it">Kajongg è l'antico gioco cinese da tavolo per quattro giocatori. Kajongg può essere usato in due modi differenti: conteggio dei punti di una partita manuale, in cui giochi come al solito ma utilizzi Kajongg per contare e registrare i punti. Oppure puoi usarlo per giocare contro una qualsiasi combinazione di persone e computer.</p>
<p xml:lang="ko">Kajongg은 4인용 고대 중국식 보드 게임입니다. 현실 세계의 게임의 점수를 관리하거나, 사람이나 컴퓨터 플레이어로 게임을 즐길 수 있습니다.</p>
<p xml:lang="nl">Kajongg is het oude Chinese bordspel voor 4 spelers. Kajongg kan op twee verschillende manieren worden gebruikt: de score bijhouden van een handmatig spel waar u speelt zoals u gewend bent en u gebruikt Kajongg voor het berekenen van de scores en voor bijhouden van de boeken. Of u kunt Kajongg gebruiken om tegen elke combinatie van andere menselijke spelers of computerspelers te spelen.</p>
@@ -96,6 +98,7 @@
<p xml:lang="sr-ijekavian">Каџонг је древна кинеска игра на табли за четири играча. Каџонг се може користити на два начина. Један је оцењивање ручне игре, где играте као и обично док вам Каџонг служи за израчунавање резултата и праћење. Или можете у Каџонгу заиграти против комбинације других људских и рачунарских играча.</p>
<p xml:lang="sr-ijekavianlatin">Kadžong je drevna kineska igra na tabli za četiri igrača. Kadžong se može koristiti na dva načina. Jedan je ocenjivanje ručne igre, gde igrate kao i obično dok vam Kadžong služi za izračunavanje rezultata i praćenje. Ili možete u Kadžongu zaigrati protiv kombinacije drugih ljudskih i računarskih igrača.</p>
<p xml:lang="sv">Kajongg är det uråldriga kinesiska brädspelet för fyra spelare. Kajongg kan användas på två olika sätt: Poängsätta ett manuellt spel där du spelar som vanligt utan hjälp av en dator och använder Kajongg för att beräkna poäng och bokföring. Eller kan du använda Kajongg för att spela mot vilken kombination som helst av mänskliga eller datorspelare.</p>
+ <p xml:lang="tr">Kajongg, 4 oyuncuyla oynanan eski bir Çin masa oyunudır. Kajongg iki farklı şekilde kullanılabilir: Her zamanki gibi elle oynadığınız oyunu puanlayın ve puanların hesaplanması, defter tutma için Kajongg kullanın. Ya da Kajongg'u diğer canlı oyuncuların veya bilgisayar oyuncularının herhangi bir kombinasyonuna karşı oynamak için kullanabilirsiniz.</p>
<p xml:lang="uk">Kajongg — давня китайська гра на дошці для 4 гравців. Kajongg можна користуватися у два різних способи. Можна зіграти у гру у звичний спосіб, а потім скористатися Kajongg для обчислення рахунків та ведення записів щодо гри. Крім того, ви можете скористатися Kajongg для гри з довільною кількістю інших гравців-людей або комп’ютерних гравців.</p>
<p xml:lang="x-test">xxKajongg is the ancient Chinese board game for 4 players. Kajongg can be used in two different ways: Scoring a manual game where you play as always and use Kajongg for the computation of scores and for bookkeeping. Or you can use Kajongg to play against any combination of other human players or computer players.xx</p>
<p xml:lang="zh-TW">Kajongg 是傳統的四人玩的中國式麻將遊戲。Kajongg 有兩種模式進行遊戲:手動記分或是讓 Kajongg 記分。您也可以用 Kajongg 來對抗其他人類或電腦玩家。</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kajongg-17.04.3/org.kde.kajongg.desktop new/kajongg-17.08.0/org.kde.kajongg.desktop
--- old/kajongg-17.04.3/org.kde.kajongg.desktop 2017-05-24 09:25:08.000000000 +0200
+++ new/kajongg-17.08.0/org.kde.kajongg.desktop 2017-07-15 16:12:18.000000000 +0200
@@ -1,6 +1,7 @@
[Desktop Entry]
Type=Application
Name=Kajongg
+Name[ast]=Kajongg
Name[bs]=Kajongg
Name[ca]=Kajongg
Name[ca@valencia]=Kajongg
@@ -48,6 +49,7 @@
Name[zh_CN]=Kajongg
Name[zh_TW]=Kajongg
Comment=The ancient Chinese board game for 4 players
+Comment[ast]=El xuegu de mesa chinu vieyu pa 4 xugadores
Comment[bs]=Drevna kineska igra na ploči za 4 igrača
Comment[ca]=L'antic joc de taula xinés per a quatre jugadors
Comment[ca@valencia]=L'antic joc de taula xinés per a quatre jugadors
@@ -91,6 +93,7 @@
Comment[zh_CN]=中国传统的四人桌上游戏
Comment[zh_TW]=古老的中國四人遊戲
GenericName=Mah Jongg
+GenericName[ast]=Mah Jongg
GenericName[bs]=Mahjongg
GenericName[ca]=Mah Jongg
GenericName[ca@valencia]=Mah Jongg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kajongg-17.04.3/po/bg/kajongg.po new/kajongg-17.08.0/po/bg/kajongg.po
--- old/kajongg-17.04.3/po/bg/kajongg.po 2017-07-11 02:21:17.000000000 +0200
+++ new/kajongg-17.08.0/po/bg/kajongg.po 2017-08-11 02:38:35.000000000 +0200
@@ -1,4 +1,3 @@
-# translation of kajongg.po to Bulgarian
# Copyright (C) YEAR This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kajongg-17.04.3/po/de/docs/kajongg/index.docbook new/kajongg-17.08.0/po/de/docs/kajongg/index.docbook
--- old/kajongg-17.04.3/po/de/docs/kajongg/index.docbook 2017-07-11 02:21:18.000000000 +0200
+++ new/kajongg-17.08.0/po/de/docs/kajongg/index.docbook 2017-08-11 02:38:35.000000000 +0200
@@ -868,7 +868,7 @@
>Hilfe</guimenu
>, weitere Informationen dazu finden Sie in den Abschnitten über die Menüs <ulink url="help:/fundamentals/ui.html#menus-settings"
>Einstellungen</ulink
-> und <ulink url="help:/fundamentals/uihtml#menus-help"
+> und <ulink url="help:/fundamentals/ui.html#menus-help"
>Hilfe</ulink
> der &kde;-Grundlagen. </para>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kajongg-17.04.3/po/gl/kajongg.po new/kajongg-17.08.0/po/gl/kajongg.po
--- old/kajongg-17.04.3/po/gl/kajongg.po 2017-07-11 02:21:17.000000000 +0200
+++ new/kajongg-17.08.0/po/gl/kajongg.po 2017-08-11 02:38:35.000000000 +0200
@@ -516,7 +516,7 @@
msgid "started the local kajongg server: pid=<numid>%1</numid> %2"
msgstr ""
"Iniciouse o servidor local de Kajongg. O identificador do proceso é o "
-"«<numid>%1</numid>». O servidor iniciouse coa orde «%2»."
+"«<numid>%1</numid>». O servidor iniciouse coa orde %2."
#: src/login.py:254
#, fuzzy
@@ -1849,8 +1849,7 @@
msgstr ""
"As penalizacións aplícaas manualmente o usuario. Só se empregan para os "
"xogos con puntuación.\n"
-"Cando se xoga contra o computador ou pola Internet, o Kajongg non permite "
-"que\n"
+"Cando se xoga contra o computador ou pola Internet, Kajongg non permite que\n"
"quedes nunha situación na que teñas que pagar unha penalización "
#: src/rule.py:555
@@ -2147,7 +2146,7 @@
#: src/sound.py:70
msgid "No voices will be heard because the program %1 is missing"
-msgstr "Non se escoitarán as voces porque falta o programa «%1»."
+msgstr "Non se escoitarán as voces porque falta o programa %1."
#: src/sound.py:369
msgid "cannot write <filename>%1</filename>: %2"
@@ -2374,7 +2373,7 @@
msgid "Your client has version %1 but you need %2 for this server"
msgstr ""
"O cliente ten a versión %1 á pero para este servidor é preciso a %2A "
-"versión do seu cliente é a «%1», pero para este servidor necesita a «%2»."
+"versión do seu cliente é a %1, pero para este servidor necesita a %2."
#~ msgid "(C) 2008-2016 Wolfgang Rohdewald"
#~ msgstr "© 2008-2016 Wolfgang Rohdewald"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kajongg-17.04.3/po/pl/kajongg.po new/kajongg-17.08.0/po/pl/kajongg.po
--- old/kajongg-17.04.3/po/pl/kajongg.po 2017-07-11 02:21:17.000000000 +0200
+++ new/kajongg-17.08.0/po/pl/kajongg.po 2017-08-11 02:38:35.000000000 +0200
@@ -9,7 +9,7 @@
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: wolfgang(a)rohdewald.de\n"
"POT-Creation-Date: 2017-01-23 03:49+0100\n"
-"PO-Revision-Date: 2017-02-19 09:12+0100\n"
+"PO-Revision-Date: 2017-07-13 11:03+0100\n"
"Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com>\n"
"Language-Team: Polish <kde-i18n-doc(a)kde.org>\n"
"Language: pl\n"
@@ -2108,7 +2108,7 @@
#: src/sound.py:372
msgid "The voice files have changed, their checksum has changed."
msgstr ""
-"Pliki głosu zostały zmienione; ich suma sprawdzająca nie jest taka sama."
+"Pliki głosu zostały zmienione; ich suma sprawdzenia nie jest taka sama."
#: src/sound.py:373
msgid "Please reinstall kajongg or do, with sufficient permissions:"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kajongg-17.04.3/po/tr/kajongg.po new/kajongg-17.08.0/po/tr/kajongg.po
--- old/kajongg-17.04.3/po/tr/kajongg.po 2017-07-11 02:21:18.000000000 +0200
+++ new/kajongg-17.08.0/po/tr/kajongg.po 2017-08-11 02:38:35.000000000 +0200
@@ -14,8 +14,8 @@
"POT-Creation-Date: 2017-01-23 03:49+0100\n"
"PO-Revision-Date: 2017-05-17 12:48+0000\n"
"Last-Translator: Mete <metebilgin48(a)gmail.com>\n"
-"Language-Team: Turkish "
-"(http://www.transifex.com/projects/p/kdegames-k-tr/language/tr/)\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/kdegames-k-tr/"
+"language/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -454,8 +454,8 @@
"Please use <a href=\"http://bugs.kde.org\">http://bugs.kde.org</a> to report "
"bugs."
msgstr ""
-"Hata raporlamak için lütfen <a href=\"http://bugs.kde.org\""
-">http://bugs.kde.org</a> adresini kullanın."
+"Hata raporlamak için lütfen <a href=\"http://bugs.kde.org\">http://bugs.kde."
+"org</a> adresini kullanın."
#: src/kdestub.py:1178
msgid "Authors:"
@@ -1041,8 +1041,8 @@
"alter the hand in any way (except bonus tiles)"
msgstr ""
"İlk çıkarmadan önce, oyuncu bir Asıl Çağrı ilan edebilir, bunun anlamı eli "
-"bitirmesine tek taşın kaldığıdır ve eli hiçbir şekilde değiştirmeyecektir ("
-"bonus taşlar hariç)"
+"bitirmesine tek taşın kaldığıdır ve eli hiçbir şekilde değiştirmeyecektir "
+"(bonus taşlar hariç)"
#: src/predefined.py:72
msgid "Dangerous Game"
@@ -1536,8 +1536,8 @@
"All tiles concealed of same color: Values 1112345678999 with one pair from 2 "
"to 8 (last tile from wall or discarded)"
msgstr ""
-"Tüm taşlar aynı renkte kapalı: Değerler 1112345678999 bir çift 2'den 8'e ("
-"duvardaki son taş veya çıkarılır)"
+"Tüm taşlar aynı renkte kapalı: Değerler 1112345678999 bir çift 2'den 8'e "
+"(duvardaki son taş veya çıkarılır)"
#: src/predefined.py:397
msgid "Wriggling Snake"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kajongg-17.04.3/po/zh_CN/kajongg.po new/kajongg-17.08.0/po/zh_CN/kajongg.po
--- old/kajongg-17.04.3/po/zh_CN/kajongg.po 2017-07-11 02:21:18.000000000 +0200
+++ new/kajongg-17.08.0/po/zh_CN/kajongg.po 2017-08-11 02:38:35.000000000 +0200
@@ -1,22 +1,20 @@
-# Copyright (C) YEAR This_file_is_part_of_KDE
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Ni Hui <shuizhuyuanluo(a)126.com>, 2010.
-# FengChao <rainofchaos(a)gmail.com>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: wolfgang(a)rohdewald.de\n"
"POT-Creation-Date: 2017-01-23 03:49+0100\n"
-"PO-Revision-Date: 2011-11-26 19:12+0800\n"
-"Last-Translator: FengChao <rainofchaos(a)gmail.com>\n"
-"Language-Team: Chinese Simplified <kde-china(a)kde.org>\n"
+"PO-Revision-Date: 2017-08-05 09:35-0400\n"
+"Last-Translator: guoyunhebrave <guoyunhebrave(a)gmail.com>\n"
+"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Lokalize 1.2\n"
+"X-Generator: crowdin.com\n"
+"X-Crowdin-Project: kdeorg\n"
+"X-Crowdin-Language: zh-CN\n"
+"X-Crowdin-File: /kf5-stable/messages/kdegames/kajongg.pot\n"
msgid "Preview"
msgstr "预览"
@@ -125,7 +123,7 @@
#: src/configdialog.py:68
msgid "Animation speed:"
-msgstr ""
+msgstr "动画速度:"
#: src/configdialog.py:72
msgid "Use sounds if available"
@@ -153,10 +151,6 @@
msgstr "游戏服务器已丢失和玩家 %1 的连接"
#: src/deferredutil.py:281
-#, fuzzy
-#| msgid ""
-#| "Unknown error for player %1: %2\n"
-#| "%3"
msgid ""
"Error for player %1: %2\n"
"%3"
@@ -329,122 +323,103 @@
#: src/kdestub.py:382
msgid "&Cancel"
-msgstr ""
+msgstr "取消(&C)"
#: src/kdestub.py:384 src/kdestub.py:578
msgid "&Help"
-msgstr ""
+msgstr "帮助(&H)"
#: src/kdestub.py:387
msgid "&Defaults"
msgstr ""
#: src/kdestub.py:463
-#, fuzzy
-#| msgid "Toolbar"
msgctxt "@action:inmenu"
msgid "Show St&atusbar"
-msgstr "工具栏"
+msgstr "显示状态栏(&A)"
#: src/kdestub.py:470
-#, fuzzy
-#| msgid "Toolbar"
msgctxt "@action:inmenu"
msgid "Show &Toolbar"
-msgstr "工具栏"
+msgstr "显示工具栏(&T)"
#: src/kdestub.py:476
-#, fuzzy
-#| msgid "Kajongg"
msgid "Configure Tool&bars..."
-msgstr "Kajongg"
+msgstr "配置工具栏(&B)..."
#: src/kdestub.py:478
msgid "Configure toolbars"
msgstr ""
#: src/kdestub.py:485
-#, fuzzy
-#| msgid "Kajongg"
msgid "Configure &Kajongg"
-msgstr "Kajongg"
+msgstr ""
#: src/kdestub.py:487 src/kdestub.py:1253
msgid "Configure"
-msgstr ""
+msgstr "配置"
#: src/kdestub.py:574
-#, fuzzy
-#| msgctxt "kajongg"
-#| msgid "Game"
msgid "&Game"
-msgstr "游戏"
+msgstr "游戏(&G)"
#: src/kdestub.py:575
-#, fuzzy
-#| msgid "View"
msgid "&View"
-msgstr "视图"
+msgstr "查看(&V)"
#: src/kdestub.py:576
msgid "&Settings"
-msgstr ""
+msgstr "设置(&S)"
#: src/kdestub.py:584
msgctxt "@action:inmenu"
msgid "&Help"
-msgstr ""
+msgstr "帮助(&H)"
#: src/kdestub.py:587 src/kdestub.py:939
msgid "Switch Application Language"
-msgstr ""
+msgstr "切换应用程序语言"
#: src/kdestub.py:591
-#, fuzzy
-#| msgid "Kajongg"
msgctxt "@action:inmenu"
msgid "About &Kajongg"
-msgstr "Kajongg"
+msgstr ""
#: src/kdestub.py:944
msgid "Please choose the language which should be used for this application:"
-msgstr ""
+msgstr "请选择本应用程序要使用的语言:"
#: src/kdestub.py:963
msgid "Add Fallback Language"
-msgstr ""
+msgstr "添加备用语言"
#: src/kdestub.py:975
msgid "Primary language:"
-msgstr ""
+msgstr "主要语言:"
#: src/kdestub.py:975
msgid "Fallback language:"
-msgstr ""
+msgstr "备用语言:"
#: src/kdestub.py:981
-#, fuzzy
-#| msgid "R&emove"
msgid "Remove"
-msgstr "删除(&E)"
+msgstr "移除"
#: src/kdestub.py:985
msgid ""
"This is the main application language which will be used first, before any "
"other languages."
-msgstr ""
+msgstr "这是应用程序首选语言,将在应用其它翻译之前被优先使用。"
#: src/kdestub.py:987
msgid ""
"This is the language which will be used if any previous languages do not "
"contain a proper translation."
-msgstr ""
+msgstr "这是在先前所选的所有语言都没有合适的翻译时将会使用的语言。"
#: src/kdestub.py:1111
-#, fuzzy
-#| msgid "Kajongg"
msgid "About Kajongg"
-msgstr "Kajongg"
+msgstr ""
#: src/kdestub.py:1118
msgid "Protocol version %1"
@@ -470,10 +445,8 @@
msgstr ""
#: src/kdestub.py:1178
-#, fuzzy
-#| msgid "Author:"
msgid "Authors:"
-msgstr "作者:"
+msgstr ""
#: src/kdestub.py:1213
msgid "License Agreement"
@@ -481,21 +454,19 @@
#: src/kdestub.py:1454
msgid "Configure Toolbars"
-msgstr ""
+msgstr "配置工具栏"
#: src/kdestub.py:1456
msgid "A&vailable actions:"
-msgstr ""
+msgstr "可用的动作(&V):"
#: src/kdestub.py:1467
msgid "Curr&ent actions:"
-msgstr ""
+msgstr "当前动作(&E):"
#: src/login.py:181
-#, fuzzy
-#| msgid "start a local game server"
msgid "trying to start local server %1"
-msgstr "启动本地游戏服务器"
+msgstr ""
#: src/login.py:192 src/login.py:641
msgid "removed stale socket <filename>%1</filename>"
@@ -506,8 +477,6 @@
msgstr "已启动本地 kajongg 服务器:进程号=<numid>%1</numid> %2"
#: src/login.py:254
-#, fuzzy
-#| msgid "Login"
msgctxt "kajongg"
msgid "Login"
msgstr "登录"
@@ -571,49 +540,34 @@
msgstr "请重试"
#: src/mainwindow.py:522
-#, fuzzy
-#| msgctxt "kajongg"
-#| msgid "&Score Table"
msgctxt "@action:inmenu"
msgid "&Score Manual Game"
-msgstr "计分板(&S)"
+msgstr ""
#: src/mainwindow.py:524
-#, fuzzy
-#| msgctxt "kajongg name for local game server"
-#| msgid "Local Game"
msgctxt "@action:intoolbar"
msgid "Manual Game"
-msgstr "本地游戏"
+msgstr ""
#: src/mainwindow.py:527
-#, fuzzy
-#| msgctxt "kajongg"
-#| msgid "&Score Table"
msgctxt "kajongg @info:tooltip"
msgid "&Score a manual game."
-msgstr "计分板(&S)"
+msgstr ""
#: src/mainwindow.py:529
-#, fuzzy
-#| msgid "&Play"
msgctxt "@action:intoolbar"
msgid "&Play"
-msgstr "游戏(&P)"
+msgstr "播放(&P)"
#: src/mainwindow.py:532
-#, fuzzy
-#| msgid "Start a new game"
msgctxt "kajongg @info:tooltip"
msgid "Start a new game."
-msgstr "开始新游戏"
+msgstr ""
#: src/mainwindow.py:534
-#, fuzzy
-#| msgid "&Abort"
msgctxt "@action:inmenu"
msgid "&Abort Game"
-msgstr "中止(&A)"
+msgstr ""
#: src/mainwindow.py:538
msgctxt "kajongg @info:tooltip"
@@ -621,18 +575,14 @@
msgstr ""
#: src/mainwindow.py:540
-#, fuzzy
-#| msgid "Kajongg"
msgctxt "@action:inmenu"
msgid "&Quit Kajongg"
-msgstr "Kajongg"
+msgstr ""
#: src/mainwindow.py:543
-#, fuzzy
-#| msgid "&Players"
msgctxt "@action:intoolbar"
msgid "&Players"
-msgstr "玩家(&P)"
+msgstr ""
#: src/mainwindow.py:546
msgctxt "kajongg @info:tooltip"
@@ -640,11 +590,9 @@
msgstr ""
#: src/mainwindow.py:548
-#, fuzzy
-#| msgid "Ruleset"
msgctxt "@action:intoolbar"
msgid "&Rulesets"
-msgstr "规则集"
+msgstr ""
#: src/mainwindow.py:551
msgctxt "kajongg @info:tooltip"
@@ -652,11 +600,9 @@
msgstr ""
#: src/mainwindow.py:555
-#, fuzzy
-#| msgid "&Change Visual Angle"
msgctxt "@action:inmenu"
msgid "&Change Visual Angle"
-msgstr "更改视角(&C)"
+msgstr ""
#: src/mainwindow.py:556
msgctxt "@action:intoolbar"
@@ -671,23 +617,17 @@
#: src/mainwindow.py:563
msgctxt "@action:inmenu"
msgid "F&ull Screen Mode"
-msgstr ""
+msgstr "全屏模式(&U)"
#: src/mainwindow.py:566
-#, fuzzy
-#| msgctxt "kajongg"
-#| msgid "&Score Table"
msgctxt "kajongg @action:inmenu"
msgid "&Score Table"
-msgstr "计分板(&S)"
+msgstr ""
#: src/mainwindow.py:568
-#, fuzzy
-#| msgctxt "kajongg"
-#| msgid "Scores"
msgctxt "kajongg @action:intoolbar"
msgid "&Scores"
-msgstr "计分"
+msgstr ""
#: src/mainwindow.py:570
msgctxt "kajongg @info:tooltip"
@@ -695,12 +635,9 @@
msgstr ""
#: src/mainwindow.py:572
-#, fuzzy
-#| msgctxt "kajongg"
-#| msgid "Scores"
msgctxt "@action:inmenu"
msgid "&Explain Scores"
-msgstr "计分"
+msgstr ""
#: src/mainwindow.py:573
msgctxt "@action:intoolbar"
@@ -727,11 +664,9 @@
msgstr ""
#: src/mainwindow.py:585
-#, fuzzy
-#| msgid "Chat with others on this table"
msgctxt "kajongg @info:tooltip"
msgid "Chat with the other players."
-msgstr "和牌桌上其他玩家聊天"
+msgstr ""
#: src/meld.py:331
msgctxt "kajongg meld type"
@@ -861,19 +796,14 @@
msgstr ""
#: src/message.py:361
-#, fuzzy
-#| msgid "Original author"
msgctxt "kajongg"
msgid "Original Call"
-msgstr "原作者"
+msgstr ""
#: src/message.py:362
-#, fuzzy
-#| msgctxt "kajongg game dialog:Key for OK"
-#| msgid "O"
msgctxt "kajongg game dialog:Key for Original Call"
msgid "O"
-msgstr "O"
+msgstr ""
#: src/message.py:375
msgid "discarding %1 and declaring Original Call makes this hand unwinnable"
@@ -908,29 +838,22 @@
msgstr ""
#: src/message.py:499
-#, fuzzy
-#| msgid "Do you really want to abort this game?"
msgid "%1 is not ready to start the game"
-msgstr "您真的想要中止这局游戏吗?"
+msgstr ""
#: src/message.py:534
msgid "Kajongg <numid>%1</numid>"
msgstr ""
#: src/message.py:612
-#, fuzzy
-#| msgid "Original author"
msgctxt "kajongg"
msgid "Violates Original Call"
-msgstr "原作者"
+msgstr ""
#: src/message.py:741
-#, fuzzy
-#| msgctxt "kajongg name for local game server"
-#| msgid "Local Game"
msgctxt "kajongg"
msgid "Dangerous Game"
-msgstr "本地游戏"
+msgstr ""
#: src/message.py:755
msgctxt "kajongg"
@@ -938,12 +861,9 @@
msgstr ""
#: src/message.py:815
-#, fuzzy
-#| msgctxt "kajongg game dialog:Key for Kong"
-#| msgid "K"
msgctxt "kajongg"
msgid "OK"
-msgstr "K"
+msgstr "确定"
#: src/message.py:816
msgctxt "kajongg game dialog:Key for OK"
@@ -969,19 +889,13 @@
msgstr ""
#: src/mjresource.py:90
-#, fuzzy
-#| msgid ""
-#| "cannot find any tileset in the following directories, is libkmahjongg "
-#| "installed?"
msgid ""
"cannot find any %1 in the following directories, is libkmahjongg installed?"
-msgstr "在以下目录找不到牌垛,libkmahjongg 正确安装了吗?"
+msgstr "在以下目录找不到 %1,libkmahjongg 正确安装了吗?"
#: src/mjresource.py:114
-#, fuzzy
-#| msgid "cannot find tileset %1, using default"
msgid "cannot find %1, using default"
-msgstr "找不到牌垛 %1,已使用默认牌垛"
+msgstr ""
#: src/mjresource.py:124
msgid "unknown name"
@@ -1029,27 +943,17 @@
msgstr ""
#: src/playerlist.py:53
-#, fuzzy
-#| msgid "&New"
msgctxt "define a new player"
msgid "&New"
msgstr "新建(&N)"
#: src/playerlist.py:114
-#, fuzzy
-#| msgid "User %1 already exists"
msgid "Player %1 already exists"
-msgstr "用户 %1 已存在"
+msgstr ""
#: src/playerlist.py:123
-#, fuzzy
-#| msgid ""
-#| "Unknown error for player %1: %2\n"
-#| "%3"
msgid "Error while adding player %1: %2"
-msgstr ""
-"玩家 %1 的未知错误:%2\n"
-"%3"
+msgstr "添加玩家 %1 遇到错误:%2"
#: src/playerlist.py:149
msgid "This player cannot be deleted. There are games associated with %1."
@@ -1348,11 +1252,8 @@
msgstr ""
#: src/predefined.py:207
-#, fuzzy
-#| msgctxt "kajongg"
-#| msgid "Kong"
msgid "4 Kongs"
-msgstr "杠"
+msgstr ""
#: src/predefined.py:209 src/predefined.py:427
msgid "Three Great Scholars"
@@ -1372,7 +1273,7 @@
#: src/predefined.py:214
msgid "Imperial Jade"
-msgstr ""
+msgstr "皇家翡翠"
#: src/predefined.py:215
msgid "Only green tiles: Green dragon and Bamboo 2,3,4,6,8"
@@ -1499,9 +1400,6 @@
msgstr ""
#: src/predefined.py:298
-#, fuzzy
-#| msgctxt "kajongg"
-#| msgid "flower"
msgid "Flower"
msgstr "花"
@@ -1584,10 +1482,8 @@
msgstr ""
#: src/predefined.py:389
-#, fuzzy
-#| msgid "Original author"
msgid "Original Call"
-msgstr "原作者"
+msgstr ""
#: src/predefined.py:393
msgid "Gates of Heaven"
@@ -1635,11 +1531,8 @@
msgstr ""
#: src/predefined.py:409
-#, fuzzy
-#| msgctxt "kajongg"
-#| msgid "flower"
msgid "Own Flower"
-msgstr "花"
+msgstr ""
#: src/predefined.py:410
msgid "Own Season"
@@ -1859,21 +1752,17 @@
msgstr ""
#: src/rulesetselector.py:572
-#, fuzzy
-#| msgid "Compare"
msgctxt "Kajongg ruleset comparer"
msgid "Co&mpare"
-msgstr "比较"
+msgstr ""
#: src/rulesetselector.py:573
-#, fuzzy
-#| msgid "R&emove"
msgid "&Remove"
-msgstr "删除(&E)"
+msgstr "删除(&R)"
#: src/rulesetselector.py:574
msgid "&Close"
-msgstr ""
+msgstr "关闭(&C)"
#: src/scene.py:379 src/scene.py:515
msgid "Do you really want to abort this game?"
@@ -1921,11 +1810,9 @@
msgstr "计分"
#: src/scoringdialog.py:282
-#, fuzzy
-#| msgid "Players"
msgctxt "kajongg"
msgid "Payments"
-msgstr "玩家"
+msgstr ""
#: src/scoringdialog.py:283
msgctxt "kajongg"
@@ -1935,7 +1822,7 @@
#: src/scoringdialog.py:283
msgctxt "kajongg"
msgid "Chart"
-msgstr ""
+msgstr "图表"
#: src/scoringdialog.py:429
msgctxt "kajongg"
@@ -1965,7 +1852,7 @@
#: src/scoringdialog.py:594
msgid "%1"
-msgstr ""
+msgstr "%1"
#: src/scoringdialog.py:608
msgid "Manual score for %1: %2 points"
@@ -2013,7 +1900,7 @@
#: src/scoringdialog.py:826
msgid "Winner"
-msgstr ""
+msgstr "赢家"
#: src/scoringdialog.py:832
msgctxt "kajongg"
@@ -2105,10 +1992,8 @@
msgstr ""
#: src/servertable.py:660
-#, fuzzy
-#| msgid "table with id <numid>%1</numid> not found"
msgid "Game <numid>%1</numid> is over!"
-msgstr "找不到编号为 <numid>%1</numid> 的牌桌"
+msgstr ""
#: src/servertable.py:689
msgid "%1 wrongly said %2 for meld %3"
@@ -2241,7 +2126,7 @@
#: src/tile.py:205
msgctxt "kajongg"
msgid "hidden"
-msgstr ""
+msgstr "hidden"
#: src/tile.py:206
msgctxt "kajongg"
@@ -2301,12 +2186,9 @@
#: src/tile.py:222
msgctxt "kajongg"
msgid "East"
-msgstr ""
+msgstr "东"
#: src/tile.py:223
-#, fuzzy
-#| msgctxt "kajongg"
-#| msgid "south"
msgctxt "kajongg"
msgid "South"
msgstr "南"
@@ -2314,12 +2196,9 @@
#: src/tile.py:224
msgctxt "kajongg"
msgid "West"
-msgstr ""
+msgstr "西"
#: src/tile.py:225
-#, fuzzy
-#| msgctxt "kajongg"
-#| msgid "north"
msgctxt "kajongg"
msgid "North"
msgstr "北"
@@ -2354,99 +2233,3 @@
#: src/user.py:105
msgid "Your client has version %1 but you need %2 for this server"
msgstr "您的客户端版本是 %1,但此服务器需要的是 %2"
-
-#, fuzzy
-#~| msgid "(C) 2008,2009,2010,2011,2012 Wolfgang Rohdewald"
-#~ msgid "(C) 2008-2016 Wolfgang Rohdewald"
-#~ msgstr "(C) 2008-2012 Wolfgang Rohdewald"
-
-#~ msgid "Wolfgang Rohdewald"
-#~ msgstr "Wolfgang Rohdewald"
-
-#~ msgid ""
-#~ "cannot find any background in the following directories, is libkmahjongg "
-#~ "installed?"
-#~ msgstr "在以下目录找不到任何背景文件,libkmahjongg 正常安装了吗?"
-
-#~ msgid "cannot find background %1, using default"
-#~ msgstr "找不到背景 %1,已使用默认背景"
-
-#, fuzzy
-#~| msgid "&Copy"
-#~ msgid "Copy"
-#~ msgstr "复制(&C)"
-
-#, fuzzy
-#~| msgid "Compare"
-#~ msgctxt "Kajongg ruleset comparer"
-#~ msgid "Compare"
-#~ msgstr "比较"
-
-#~ msgctxt "Player"
-#~ msgid "Name"
-#~ msgstr "姓名"
-
-#, fuzzy
-#~| msgid "&Scoring"
-#~ msgctxt "@action:intoolbar"
-#~ msgid "&Scoring"
-#~ msgstr "计分(&S)"
-
-#~ msgctxt "kajongg"
-#~ msgid "east"
-#~ msgstr "东"
-
-#~ msgctxt "kajongg"
-#~ msgid "west"
-#~ msgstr "西"
-
-#~ msgid ""
-#~ "The game can begin. Are you ready to play now?\n"
-#~ "If you answer with NO, you will be removed from table %1."
-#~ msgstr ""
-#~ "游戏已准备就绪,您准备好现在开始吗?\n"
-#~ "如果您回答否,将会离开牌桌 %1。"
-
-#~ msgid "Aborted creating a user account"
-#~ msgstr "用户账号创建中止"
-
-#~ msgid "The game is over!"
-#~ msgstr "游戏结束!"
-
-#~ msgctxt "Kajongg ruleset comparer"
-#~ msgid "C&ompare"
-#~ msgstr "比较(&O)"
-
-#~ msgid "ruleset \"%1\" not found"
-#~ msgstr "未找到规则“%1”"
-
-#~ msgid "&Quit"
-#~ msgstr "退出(&Q)"
-
-#~ msgctxt "Rulesetselector"
-#~ msgid "Score"
-#~ msgstr "计分"
-
-#~ msgctxt "Rulesetselector"
-#~ msgid "Unit"
-#~ msgstr "单位"
-
-#~ msgctxt "Rulesetselector"
-#~ msgid "Definition"
-#~ msgstr "定义"
-
-#~ msgid "show traffic with game server"
-#~ msgstr "显示游戏服务器流量"
-
-#, fuzzy
-#~| msgctxt "kajongg name for local game server"
-#~| msgid "Local Game"
-#~ msgid "Local Games"
-#~ msgstr "本地游戏"
-
-#~ msgctxt "kajongg"
-#~ msgid "Server"
-#~ msgstr "服务器"
-
-#~ msgid "Password"
-#~ msgstr "密码"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kajongg-17.04.3/po/zh_TW/kajongg.po new/kajongg-17.08.0/po/zh_TW/kajongg.po
--- old/kajongg-17.04.3/po/zh_TW/kajongg.po 2017-07-11 02:21:18.000000000 +0200
+++ new/kajongg-17.08.0/po/zh_TW/kajongg.po 2017-08-11 02:38:35.000000000 +0200
@@ -10,7 +10,7 @@
"Project-Id-Version: kmj\n"
"Report-Msgid-Bugs-To: wolfgang(a)rohdewald.de\n"
"POT-Creation-Date: 2017-01-23 03:49+0100\n"
-"PO-Revision-Date: 2017-03-25 21:40+0800\n"
+"PO-Revision-Date: 2017-07-03 20:35+0800\n"
"Last-Translator: Jeff Huang <s8321414(a)gmail.com>\n"
"Language-Team: Chinese <kde-i18n-doc(a)kde.org>\n"
"Language: zh_TW\n"
@@ -395,7 +395,7 @@
#: src/kdestub.py:963
msgid "Add Fallback Language"
-msgstr "新增備用語言"
+msgstr "新增預設語言"
#: src/kdestub.py:975
msgid "Primary language:"
@@ -403,7 +403,7 @@
#: src/kdestub.py:975
msgid "Fallback language:"
-msgstr "備用語言:"
+msgstr "預設語言:"
#: src/kdestub.py:981
msgid "Remove"
@@ -431,12 +431,12 @@
#: src/kdestub.py:1125
msgid "KDE Frameworks (not installed or not usable)"
-msgstr "KDE Frameworks(未安裝或不可用)"
+msgstr "KDE 框架(未安裝或不可用)"
#: src/kdestub.py:1135
msgctxt "kajongg"
msgid "Using versions %1"
-msgstr "正在使用版本 %1"
+msgstr "使用中版本 %1"
#: src/kdestub.py:1138
msgid "Not using Python KDE bindings"
@@ -471,7 +471,7 @@
#: src/login.py:181
msgid "trying to start local server %1"
-msgstr "啟動本地端遊戲伺服器 %1"
+msgstr "嘗試啟動本機伺服器 %1"
#: src/login.py:192 src/login.py:641
msgid "removed stale socket <filename>%1</filename>"
@@ -904,7 +904,7 @@
#: src/mjresource.py:124
msgid "unknown name"
-msgstr "未知的名稱"
+msgstr "未知名稱"
#: src/mjresource.py:125
msgid "unknown author"
1
0
Hello community,
here is the log from the commit of package kalarm for openSUSE:Factory checked in at 2017-08-28 15:10:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kalarm (Old)
and /work/SRC/openSUSE:Factory/.kalarm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kalarm"
Mon Aug 28 15:10:03 2017 rev:9 rq:516516 version:17.08.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kalarm/kalarm.changes 2017-07-29 08:55:49.324175669 +0200
+++ /work/SRC/openSUSE:Factory/.kalarm.new/kalarm.changes 2017-08-28 15:10:06.220294509 +0200
@@ -1,0 +2,24 @@
+Fri Aug 11 22:45:04 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.08.0
+ * New feature release
+ * https://www.kde.org/announcements/announce-applications-17.08.0.php
+- Changes since 17.04.3 :
+ * Update changelog
+ * akonadimodel.cpp - replace non-existent "mail-message-unread" icon with "mail-unread" icon that does exist in oxygen and breeze
+ * Fix icon problem on wayland
+ * Updated radio button text
+ * Activate by default QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
+ * don't use kpartgui
+ * desktop file was renamed
+ * remove obsolete option 'Use address from System Settings', no default email setting in systemsettings anymore
+
+-------------------------------------------------------------------
+Sat Aug 5 18:16:59 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.07.90
+ * KDE Applications 17.07.90
+ * https://www.kde.org/announcements/announce-applications-17.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kalarm-17.04.3.tar.xz
New:
----
kalarm-17.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kalarm.spec ++++++
--- /var/tmp/diff_new_pack.MeB9pd/_old 2017-08-28 15:10:07.480117285 +0200
+++ /var/tmp/diff_new_pack.MeB9pd/_new 2017-08-28 15:10:07.504113910 +0200
@@ -19,10 +19,10 @@
%bcond_without lang
Name: kalarm
-Version: 17.04.3
+Version: 17.08.0
Release: 0
%define kf5_version 5.26.0
-# Latest stable Applications (e.g. 16.08 in KA, but 16.11.80 in KUA)
+# Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)
%{!?_kapp_version: %global _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
Summary: Personal Alarm Scheduler
License: GPL-2.0
@@ -82,7 +82,9 @@
%endif
Provides: kalarm5 = %{version}
Obsoletes: kalarm5 < %{version}
+%if %{with lang}
Recommends: %{name}-lang
+%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# It can only build on the same platforms as Qt Webengine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mips mips64
@@ -112,25 +114,25 @@
%files
%defattr(-,root,root)
%doc COPYING COPYING.LIB COPYING.DOC README
-%dir %{_kf5_appstreamdir}
+%config %{_kf5_configdir}/kalarm.categories
+%config %{_kf5_configdir}/kalarm.renamecategories
%config %{_sysconfdir}/dbus-1/system.d/org.kde.kalarmrtcwake.conf
-%{_kf5_configdir}/autostart/kalarm.autostart.desktop
-%{_kf5_sharedir}/kalarm/
-%{_kf5_bindir}/kalarm*
+%dir %{_kf5_appstreamdir}
%dir %{_libdir}/libexec/kauth/
-%{_libdir}/libexec/kauth/kalarm_helper
-%{_kf5_appstreamdir}/org.kde.kalarm.appdata.xml
%{_kf5_applicationsdir}/org.kde.kalarm.desktop
+%{_kf5_appstreamdir}/org.kde.kalarm.appdata.xml
+%{_kf5_bindir}/kalarm*
+%config %{_kf5_configdir}/autostart/kalarm.autostart.desktop
%{_kf5_configkcfgdir}/kalarmconfig.kcfg
%{_kf5_dbusinterfacesdir}/org.kde.kalarm.kalarm.xml
-%{_kf5_sharedir}/dbus-1/system-services/org.kde.kalarmrtcwake.service
-%{_kf5_htmldir}/en/kalarm/
-%{_kf5_sharedir}/polkit-1/actions/org.kde.kalarmrtcwake.policy
-%{_datadir}/kconf_update/
-%config %{_kf5_configdir}/kalarm.categories
-%config %{_kf5_configdir}/kalarm.renamecategories
+%doc %lang(en) %{_kf5_htmldir}/en/kalarm/
%{_kf5_iconsdir}/hicolor/*/apps/kalarm.png
+%{_kf5_libdir}/libexec/kauth/kalarm_helper
%{_kf5_kxmlguidir}/kalarm/
+%{_kf5_sharedir}/dbus-1/system-services/org.kde.kalarmrtcwake.service
+%{_kf5_sharedir}/kalarm/
+%{_kf5_sharedir}/kconf_update/
+%{_kf5_sharedir}/polkit-1/actions/org.kde.kalarmrtcwake.policy
%if %{with lang}
%files lang -f %{name}.lang
++++++ kalarm-17.04.3.tar.xz -> kalarm-17.08.0.tar.xz ++++++
++++ 15657 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package kteatime for openSUSE:Factory checked in at 2017-08-28 15:09:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kteatime (Old)
and /work/SRC/openSUSE:Factory/.kteatime.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kteatime"
Mon Aug 28 15:09:57 2017 rev:54 rq:516511 version:17.08.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kteatime/kteatime.changes 2017-07-29 08:59:21.130251255 +0200
+++ /work/SRC/openSUSE:Factory/.kteatime.new/kteatime.changes 2017-08-28 15:10:03.500677085 +0200
@@ -1,0 +2,17 @@
+Fri Aug 11 22:46:04 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.08.0
+ * New feature release
+ * https://www.kde.org/announcements/announce-applications-17.08.0.php
+- Changes since 17.04.3 :
+ * None
+
+-------------------------------------------------------------------
+Sat Aug 5 18:18:52 UTC 2017 - christophe(a)krop.fr
+
+- Update to KDE Applications 17.07.90
+ * KDE Applications 17.07.90
+ * https://www.kde.org/announcements/announce-applications-17.07.90.php
+
+
+-------------------------------------------------------------------
Old:
----
kteatime-17.04.3.tar.xz
New:
----
kteatime-17.08.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kteatime.spec ++++++
--- /var/tmp/diff_new_pack.BaK7T6/_old 2017-08-28 15:10:04.848487485 +0200
+++ /var/tmp/diff_new_pack.BaK7T6/_new 2017-08-28 15:10:04.884482421 +0200
@@ -1,7 +1,7 @@
#
# spec file for package kteatime
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,13 +15,14 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
%bcond_without lang
Name: kteatime
-Version: 17.04.3
+Version: 17.08.0
Release: 0
%define kf5_version 5.26.0
-# Latest stable Applications (e.g. 16.08 in KA, but 16.11.80 in KUA)
+# Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)
%{!?_kapp_version: %global _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
Summary: Tea Cooker
License: GPL-2.0+
@@ -47,7 +48,9 @@
BuildRequires: pkgconfig(Qt5Widgets)
Obsoletes: %{name}5 < %{version}
Provides: %{name}5 = %{version}
+%if %{with lang}
Recommends: %{name}-lang
+%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -75,12 +78,12 @@
%files
%defattr(-,root,root)
%doc COPYING COPYING.DOC
-%{_kf5_bindir}/kteatime
-%{_kf5_htmldir}/en/kteatime/
+%doc %lang(en) %{_kf5_htmldir}/en/kteatime/
%{_kf5_applicationsdir}/org.kde.kteatime.desktop
-%{_kf5_iconsdir}/hicolor/*/apps/kteatime.*
%{_kf5_appstreamdir}/
-%{_datadir}/knotifications5/kteatime.notifyrc
+%{_kf5_bindir}/kteatime
+%{_kf5_iconsdir}/hicolor/*/apps/kteatime.*
+%{_kf5_sharedir}/knotifications5/kteatime.notifyrc
%if %{with lang}
%files lang -f %{name}.lang
++++++ kteatime-17.04.3.tar.xz -> kteatime-17.08.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kteatime-17.04.3/org.kde.kteatime.appdata.xml new/kteatime-17.08.0/org.kde.kteatime.appdata.xml
--- old/kteatime-17.04.3/org.kde.kteatime.appdata.xml 2017-02-26 11:28:03.000000000 +0100
+++ new/kteatime-17.08.0/org.kde.kteatime.appdata.xml 2017-07-18 05:18:55.000000000 +0200
@@ -17,6 +17,7 @@
<name xml:lang="en-GB">KTeaTime</name>
<name xml:lang="es">KTeaTime</name>
<name xml:lang="et">KTeaTime</name>
+ <name xml:lang="eu">KTeaTime</name>
<name xml:lang="fi">KTeaTime</name>
<name xml:lang="fr">KTeaTime</name>
<name xml:lang="gl">KTeaTime</name>
@@ -56,6 +57,7 @@
<summary xml:lang="en-GB">Tea Cooker</summary>
<summary xml:lang="es">Calentador de té</summary>
<summary xml:lang="et">Teekann</summary>
+ <summary xml:lang="eu">Te </summary>
<summary xml:lang="fi">Teenkeitin</summary>
<summary xml:lang="fr">Tea Cooker</summary>
<summary xml:lang="gl">Quece-tés</summary>
@@ -93,6 +95,7 @@
<p xml:lang="en-GB">KTeaTime is a handy timer for steeping tea. No longer will you have to guess at how long it takes for your tea to be ready. Simply select the type of tea you have, and it will alert you when the tea is ready to drink.</p>
<p xml:lang="es">KTeaTime es un útil temporizador para tomar té. Usted nunca más tendrá que adivinar cuanto tiempo tarda en estar listo el té. Sencillamente, seleccione el tipo de té del que disponga y le avisará cuando esté listo para beber.</p>
<p xml:lang="et">KTeaTime on taimer tee tõmbamise aja mõõtmiseks. Enam ei pea sa arvama, kui kaua võtab aega tee valmimine. Vali lihtsalt tee tüüp ning taimer annab sulle märku, kui tee on joomiseks valmis.</p>
+ <p xml:lang="eu">KTeaTime tea prestatzeko denboragailu erabilgarri bat da. Aurrerantzean ez duzu igarri beharko zure teak prest egoteko zenbat denbora behar duen. Zure te mota aukeratu eta jakinaraziko dizu tea edateko prest dagoenean.</p>
<p xml:lang="fi">KTeaTime on kätevä kello teen hautumisajan mittaamiseksi. Enää ei tarvitse arvata milloin tee on valmis. Valitse vain teelaji ja KTeaTime hälyttää, kun tee on valmista juotavaksi.</p>
<p xml:lang="fr">KTeaTime est un chronomètre pratique pour mesurer le temps d'infusion de votre thé. Vous n'aurez plus besoin d'estimer la durée nécessaire à la préparation de votre thé à vue de nez. Sélectionnez simplement le type de thé que vous souhaitez préparer et vous serez alerté lorsque votre boisson sera prête.</p>
<p xml:lang="gl">KTeaTime é un temporizador útil para deixar té en infusión. Xa non terás que adiviñar o tempo que lle falta ao teu té para estar listo. Só tes que seleccionar o tipo de té, e KTeaTime informarate cando o té estea listo para tomar.</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kteatime-17.04.3/po/bg/kteatime.po new/kteatime-17.08.0/po/bg/kteatime.po
--- old/kteatime-17.04.3/po/bg/kteatime.po 2017-07-11 02:24:22.000000000 +0200
+++ new/kteatime-17.08.0/po/bg/kteatime.po 2017-08-11 02:45:53.000000000 +0200
@@ -1,8 +1,5 @@
-# translation of kteatime.po to Bulgarian
-# Bulgarian translation of KDE.
-# This file is licensed under the GPL.
-#
-# $Id: kteatime.po 1483585 2017-02-27 04:34:19Z scripty $
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
#
# Zlatko Popov <zlatkopopov(a)fsa-bg.org>, 2007.
# Yasen Pramatarov <yasen(a)lindeas.com>, 2009, 2010, 2015.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kteatime-17.04.3/po/he/kteatime.po new/kteatime-17.08.0/po/he/kteatime.po
--- old/kteatime-17.04.3/po/he/kteatime.po 2017-07-11 02:24:22.000000000 +0200
+++ new/kteatime-17.08.0/po/he/kteatime.po 2017-08-11 02:45:53.000000000 +0200
@@ -409,14 +409,3 @@
msgctxt "%1 is the time, %2 is the name of the tea"
msgid "%1 left for %2."
msgstr "נותרו עוד %1 ל%2"
-
-#, fuzzy
-#~ msgid "Configure &Notifications..."
-#~ msgstr "הגדרת &התראות..."
-
-#, fuzzy
-#~ msgid "Configure notifications"
-#~ msgstr "הגדרת &התראות..."
-
-#~ msgid "Notification"
-#~ msgstr "התראה"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kteatime-17.04.3/po/pt/docs/kteatime/index.docbook new/kteatime-17.08.0/po/pt/docs/kteatime/index.docbook
--- old/kteatime-17.04.3/po/pt/docs/kteatime/index.docbook 1970-01-01 01:00:00.000000000 +0100
+++ new/kteatime-17.08.0/po/pt/docs/kteatime/index.docbook 2017-08-11 02:45:54.000000000 +0200
@@ -0,0 +1,222 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
+ <!ENTITY % addindex "IGNORE">
+ <!ENTITY % Portuguese "INCLUDE">
+]>
+
+<book id="kteatime" lang="&language;">
+<bookinfo>
+<title
+>O Manual do &kteatime;</title>
+<authorgroup>
+<author
+>&Michael.Korman; &Michael.Korman.mail; </author>
+
+<othercredit role="developer"
+>&Matthias.Hoelzer-Kluepfel; &Matthias.Hoelzer-Kluepfel.mail; </othercredit>
+
+<othercredit role="reviewer"
+>&Lauri.Watts; &Lauri.Watts.mail; </othercredit>
+<othercredit role="translator"
+><firstname
+>José</firstname
+><surname
+>Pires</surname
+><affiliation
+><address
+><email
+>zepires(a)gmail.com</email
+></address
+></affiliation
+><contrib
+>Tradução</contrib
+></othercredit
+>
+</authorgroup>
+
+<copyright>
+<year
+>2000</year>
+<holder
+>&Michael.Korman;</holder>
+</copyright>
+
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<date
+>2016-07-06</date>
+<releaseinfo
+>1.3.0 (Aplicações 16.04)</releaseinfo>
+
+<abstract>
+<para
+>Este manual descreve o &kteatime;, o Cozinheiro de Chás do &kde;.</para>
+</abstract>
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>kdetoys</keyword>
+<keyword
+>kteatime</keyword>
+<keyword
+>chá</keyword>
+<keyword
+>cozinheiro</keyword>
+<keyword
+>temporizador</keyword>
+</keywordset>
+</bookinfo>
+
+<chapter id="introduction">
+<title
+>Introdução</title>
+
+<sect1 id="whats-kteatime">
+<title
+>O que é o &kteatime;?</title>
+
+<para
+>O &kteatime; é um temporizador prático para preparar um chá. Já não terá mais que adivinhar quanto tempo precisa para que o seu chá fique pronto. Basta escolher o tipo de chá que quer, e ele alertar-o quando o chá estiver pronto para beber.</para>
+</sect1>
+
+</chapter>
+
+<chapter id="how-to-use">
+<title
+>Como Usar o &kteatime;</title>
+
+<para
+>Quando iniciar o &kteatime; ele acoplar-se-á automaticamente no seu painel. Para aceder ao menu, carregue com o botão direito do rato no ícone acoplado. Este fará aparecer uma lista de opções que serão cobertas com mais detalhe no próximo capítulo.</para>
+
+<sect1 id="timing-your-tea">
+<title
+>Temporizar o seu Chá</title>
+
+<para
+>Depois de iniciar, o ícone do painel será o de uma caneca de chá vazia. Se carregar nela com o &RMB; e seleccionar o seu chá, o ícone irá mudar para um relógio animado que representa o tempo restante. Depois de o período indicado passar, o chá estará pronto e aparecerá uma mensagem. Nessa altura, poderá fechar a janela, carregando nele e ser reinicializado o temporizador, carregando no ícone de novo. O relógio na caneca irá então desaparecer de novo.</para>
+
+<note
+><para
+>o temporizador só deve ser reinicializado por aqueles que gostam mesmo de chá.</para
+></note>
+
+</sect1>
+</chapter>
+
+<chapter id="menu-options">
+<title
+>Opções do Menu</title>
+
+<para
+>A secção seguinte descreve as opções do menu que estão disponíveis no &kteatime;.</para>
+
+<sect1 id="select-your-tea">
+<title
+>Seleccionar o seu Chá</title>
+
+<para
+>Se carregar no ícone com o &RMB;, irá aparecer um menu. No topo do menu, estão três opções. Aqui pode seleccionar qual o tipo de chá que está a preparar. As opções são: <guimenuitem
+>Chá Preto</guimenuitem
+>, <guimenuitem
+>Chá Cinzento</guimenuitem
+>, <guimenuitem
+>Chá de Frutos</guimenuitem
+> e <guimenuitem
+>Chá Verde</guimenuitem
+>. Esses chás têm um tempo predefinido; muitas pessoas se queixaram que os tempos não estão correctos. Lembre-se que a quantidade de tempo que leva a preparar uma chávena de chá é baseado nas preferências da pessoa. Os tempos escolhidos são aproximações. Se continuar a ler, irá aprender a definir o seu próprio tempo. Uma forma simples e rápida de definir um tempo personalizado é escolher a opção <guimenuitem
+>Anónimo...</guimenuitem
+> do menu.</para>
+
+<para
+>Se carregar em <guimenuitem
+>Configurar as Notificações...</guimenuitem
+>, fará aparecer a Configuração das Notificações do &kde; para o &kteatime;.</para>
+
+</sect1>
+
+<sect1 id="start">
+<title
+>Iniciar o Temporizador do Chá</title>
+
+<para
+>Para iniciar o temporizador do chá, seleccione um chá no menu de contexto. Como confirmação de que realmente iniciou o temporizador, irá aparecer uma relógio que mostra o tempo restante no ícone do painel.</para
+></sect1>
+
+<sect1 id="configure">
+<title
+>Configurar</title>
+
+<para
+>Este item do menu abre a janela de configuração. É mostrada uma imagem a seguir:</para>
+
+<screenshot>
+<screeninfo
+>A janela de configuração do &kteatime;.</screeninfo>
+<mediaobject>
+<imageobject
+><imagedata fileref="config.png" format="PNG"/></imageobject>
+<textobject
+><phrase
+>A janela de configuração do &kteatime;.</phrase
+></textobject>
+</mediaobject>
+</screenshot>
+
+<para
+>Como é mostrado na figura, pode adicionar itens novos para outros chás ou modificar os nomes, tempos e a ordem dos itens existentes. Isto é útil se está a preparar um chá que não esteja na lista, ou que não esteja de acordo com os tempos predefinidos. Para editar um item, marque-o na <guilabel
+>Lista de Chás</guilabel
+> à esquerda e mude os valores nas <guilabel
+>Propriedades do Chá</guilabel
+> à direita.</para>
+
+<para
+>O campo abaixo é a <guilabel
+>Acção</guilabel
+>. Aqui poderá definir uma acção que será executada quando terminar o tempo. Se o botão <guibutton
+>Mensagem</guibutton
+> estiver seleccionado, irá aparecer uma mensagem a alertá-lo do facto de o seu chá estar pronto. </para>
+
+<para
+>Se activar a opção chamada <guilabel
+>Visualizar o progresso na bandeja do sistema</guilabel
+>, o progresso será apresentado como um pequeno relógio animado dentro do ícone.</para>
+
+</sect1>
+</chapter>
+
+<chapter id="credits">
+<title
+>Créditos</title>
+
+<para
+>&kteatime; Copyright © 1998-1999 por &Matthias.Hoelzer-Kluepfel; &Matthias.Hoelzer-Kluepfel.mail; </para>
+
+<para
+>Documentação de &Michael.Korman; &Michael.Korman.mail;</para>
+
+<para
+>Tradução de José Nuno Pires <email
+>zepires(a)gmail.com</email
+></para
+>
+&underFDL; &underGPL; </chapter>
+
+&documentation.index;
+
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+// vim:ts=2:sw=2:tw=78:noet
+-->
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kteatime-17.04.3/po/tr/kteatime.po new/kteatime-17.08.0/po/tr/kteatime.po
--- old/kteatime-17.04.3/po/tr/kteatime.po 2017-07-11 02:24:23.000000000 +0200
+++ new/kteatime-17.08.0/po/tr/kteatime.po 2017-08-11 02:45:53.000000000 +0200
@@ -1,14 +1,13 @@
-# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Ahmet AYGÜN <ahmet(a)zion.gen.tr>, 2005
-# Görkem Çetin <gorkem(a)kde.org>, 2003
-# Ömer Fadıl USTA <omer_fad(a)hotmail.com>, 2002
-# Ozan Çağlayan <ozan(a)pardus.org.tr>, 2010
-# obsoleteman <tulliana(a)gmail.com>, 2008-2009,2011
-# Volkan Gezer <volkangezer(a)gmail.com>, 2013
+# Ahmet AYGÜN <ahmet(a)zion.gen.tr>, 2005.
+# Görkem Çetin <gorkem(a)kde.org>, 2003.
+# Ömer Fadıl USTA <omer_fad(a)hotmail.com>, 2002.
+# Ozan Çağlayan <ozan(a)pardus.org.tr>, 2010.
+# obsoleteman <tulliana(a)gmail.com>, 2008-2009,2011.
+# Volkan Gezer <volkangezer(a)gmail.com>, 2013, 2017.
msgid ""
msgstr ""
"Project-Id-Version: kdetoys-kde4\n"
@@ -16,13 +15,14 @@
"POT-Creation-Date: 2017-02-27 04:02+0100\n"
"PO-Revision-Date: 2014-12-24 17:30+0000\n"
"Last-Translator: Necdet <necdetyucel(a)gmail.com>\n"
-"Language-Team: Turkish "
-"(http://www.transifex.com/projects/p/kdetoys-k-tr/language/tr/)\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/kdetoys-k-tr/"
+"language/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 2.0\n"
#: src/main.cpp:39
#, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kteatime-17.04.3/po/zh_CN/kteatime.po new/kteatime-17.08.0/po/zh_CN/kteatime.po
--- old/kteatime-17.04.3/po/zh_CN/kteatime.po 2017-07-11 02:24:23.000000000 +0200
+++ new/kteatime-17.08.0/po/zh_CN/kteatime.po 2017-08-11 02:45:53.000000000 +0200
@@ -1,27 +1,20 @@
-# translation of kteatime.po to 简体中文
-# Copyright (C) 2002, 2008, 2009 Free Software Foundation, Inc.
-#
-# Dai Zhuan <surestar(a)x263.net>, 2002.
-# Xiong Jiang <jxiong(a)offtopic.org>, 2002.
-# Funda Wang <fundawang(a)en2china.com>, 2002.
-# Sarah Smith <sarahs(a)redhat.com>, 2004.
-# Lie_Ex <lilith.ex(a)gmail.com>, 2007.
-# Ni Hui <shuizhuyuanluo(a)126.com>, 2008, 2009, 2010.
-# Weng Xuetian <wengxt(a)gmail.com>, 2015.
msgid ""
msgstr ""
-"Project-Id-Version: kteatime\n"
+"Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2017-02-27 04:02+0100\n"
-"PO-Revision-Date: 2015-01-10 16:30-0800\n"
-"Last-Translator: Weng Xuetian <wengxt(a)gmail.com>\n"
-"Language-Team: Chinese Simplified <kde-china(a)kde.org>\n"
+"PO-Revision-Date: 2017-08-05 09:36-0400\n"
+"Last-Translator: guoyunhebrave <guoyunhebrave(a)gmail.com>\n"
+"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.5\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: crowdin.com\n"
+"X-Crowdin-Project: kdeorg\n"
+"X-Crowdin-Language: zh-CN\n"
+"X-Crowdin-File: /kf5-stable/messages/kdeutils/kteatime.pot\n"
#: src/main.cpp:39
#, kde-format
@@ -387,12 +380,3 @@
msgctxt "%1 is the time, %2 is the name of the tea"
msgid "%1 left for %2."
msgstr "%2 还要等 %1。"
-
-#~ msgid "Configure &Notifications..."
-#~ msgstr "配置通知(&N)..."
-
-#~ msgid "Configure notifications"
-#~ msgstr "配置通知"
-
-#~ msgid "Notification"
-#~ msgstr "通知"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kteatime-17.04.3/src/kteatime.notifyrc new/kteatime-17.08.0/src/kteatime.notifyrc
--- old/kteatime-17.04.3/src/kteatime.notifyrc 2017-02-26 11:28:03.000000000 +0100
+++ new/kteatime-17.08.0/src/kteatime.notifyrc 2017-07-18 05:18:55.000000000 +0200
@@ -81,6 +81,7 @@
Name[hne]=चाय बन गे हे
Name[hr]=Čaj je spreman
Name[hu]=Kész a tea!
+Name[ia]=The es preste
Name[is]=Teið er tilbúið
Name[it]=Il tè è pronto
Name[ja]=お茶の用意ができました
@@ -148,6 +149,7 @@
Comment[hne]=चाय बन गे हे
Comment[hr]=Čaj je spreman
Comment[hu]=Kész a tea!
+Comment[ia]=The es preste
Comment[is]=Teið er tilbúið
Comment[it]=Il tè è pronto
Comment[ja]=お茶の用意ができました
1
0