--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Dear release team,
I've backported an upstream fix for ki18n for stretch that I consider
important enough:
Check properly pointer inequality from dngettext (a7d5f88)
KDE#372681 (Message with plural forms is not translated if only translation
of plural form differs from msgid)
Also I've added gettext to the build dependencies (#852755).
With these changes I've prepared and uploaded 5.28.0-2 to unstable, and it has
successfully in all the release architectures.
I'm attaching the corresponding debdiff.
Happy hacking,
Please unblock package ki18n
unblock ki18n/5.28.0-2
- -- System Information:
Debian Release: 9.0
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'testing'), (500, 'stable'), (50, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf
Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)
-----BEGIN PGP SIGNATURE-----
iQJEBAEBCgAuFiEE+JIdOnQEyG4RNSIVxxl2mbKbIyoFAljku2wQHG1heHlAZGVi
aWFuLm9yZwAKCRDHGXaZspsjKqjjD/4pYtfCzxEqnuuzwxjdrcuBM5UqEiECKED5
Z+VKws8VD1TlXlK6Xk7xX/JYsD9k51jcGtCPluok7PMWqHJKRrCvpN5Yhv2wluu2
4xSKr/Da8uEU9+I9O35fOvA5ZZkYxDEQTO+vHsYwUvLVBmtBC/KlzTTRj+Izqxsk
rZIt4GuYSAxFwmXc0y+NfV4ug+Ag2hderez7P+2tmVfofa9tezMuPcdjaCCh6SjR
FwYJu0dwKa+el2jKQ+TGyqN/DbbIV5+ZQKp/1Rl0zRGvWINlRps4+KQSXVVBdFd2
fcTqsZsdQxHqq45YeAuNYo4P31F1UpdKQDeSTqyldqGnRmEZ/+FNwgiBXyh7YgCK
PoAbnyCVoqdV9h06yJ9+WQKAH7BFA9vnCk4YTFsS2JSRf0q6tCuX1fIrioFH4yUD
BSMKxnV6HCrpmcB5rNYzvYPib3BWsSkgHbX4AIR7ayHCs0sOJz6kr0G7Uv0B2jcA
xEVcF1PBPQTlwRx/kwQBNvQFo77qh8Zc/4TqISiB+8gz4Lg8t5dFi7I6J6cJea9b
c5J1qllkA+HfNWnexOUECXReSMwe2p8y4Jht9uS5hVE6NsM87NzXjXSQktZTDeMm
A8hayAXOkJZbz+UO+8pNfwKpi1N5w0WAfFiGWy+g1NOCeeE6jb2Er1ghlo56aGB0
J2Js0hn+IQ==
=x1ym
-----END PGP SIGNATURE-----
diff -Nru ki18n-5.28.0/debian/changelog ki18n-5.28.0/debian/changelog
--- ki18n-5.28.0/debian/changelog 2016-11-18 16:01:32.000000000 +0100
+++ ki18n-5.28.0/debian/changelog 2017-04-03 12:04:43.000000000 +0200
@@ -1,3 +1,12 @@
+ki18n (5.28.0-2) unstable; urgency=medium
+
+ * Update build-deps and deps with the info from cmake.
+ Thanks to Frédéric Brière for reporting (Closes: 852755)
+ * Add new upstream patch:
+ Check-properly-pointer-inequality-from-dngettext.patch
+
+ -- Maximiliano Curia <maxy@debian.org> Mon, 03 Apr 2017 12:04:43 +0200
+
ki18n (5.28.0-1) unstable; urgency=medium
[ Automatic packaging ]
diff -Nru ki18n-5.28.0/debian/control ki18n-5.28.0/debian/control
--- ki18n-5.28.0/debian/control 2016-11-18 16:01:32.000000000 +0100
+++ ki18n-5.28.0/debian/control 2017-04-03 12:04:43.000000000 +0200
@@ -6,6 +6,7 @@
Build-Depends: cmake (>= 2.8.12),
debhelper (>= 9),
extra-cmake-modules (>= 5.28.0~),
+ gettext,
pkg-kde-tools (>= 0.15.15ubuntu1~),
python,
qtbase5-dev (>= 5.5.0~),
diff -Nru ki18n-5.28.0/debian/patches/Check-properly-pointer-inequality-from-dngettext.patch ki18n-5.28.0/debian/patches/Check-properly-pointer-inequality-from-dngettext.patch
--- ki18n-5.28.0/debian/patches/Check-properly-pointer-inequality-from-dngettext.patch 1970-01-01 01:00:00.000000000 +0100
+++ ki18n-5.28.0/debian/patches/Check-properly-pointer-inequality-from-dngettext.patch 2017-04-03 12:04:43.000000000 +0200
@@ -0,0 +1,43 @@
+From: =?utf-8?q?=22Chusslove_Illich_=28=D0=A7=D0=B0=D1=81=D0=BB=D0=B0?=
+ =?utf-8?q?=D0=B2_=D0=98=D0=BB=D0=B8=D1=9B=29=22?= <caslav.ilic@gmx.net>
+Date: Sun, 20 Nov 2016 23:31:30 +0100
+Subject: Check properly pointer inequality from dngettext
+
+If original and translation are same, dngettext will return
+the original pointer, which is generally fine, except in
+the corner cases where e.g. msgstr[1] is same as msgid.
+Therefore check for pointer difference only with msgid or
+only with msgid_plural, and not with both.
+
+BUG: 372681
+---
+ src/kcatalog.cpp | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/src/kcatalog.cpp b/src/kcatalog.cpp
+index 6682d62..85d64ab 100644
+--- a/src/kcatalog.cpp
++++ b/src/kcatalog.cpp
+@@ -226,7 +226,12 @@ QString KCatalog::translate(const QByteArray &msgid,
+ d->setupGettextEnv();
+ const char *msgstr = dngettext(d->domain.constData(), msgid.constData(), msgid_plural.constData(), n);
+ d->resetSystemLanguage();
+- return msgstr != msgid && msgstr != msgid_plural
++ // If original and translation are same, dngettext will return
++ // the original pointer, which is generally fine, except in
++ // the corner cases where e.g. msgstr[1] is same as msgid.
++ // Therefore check for pointer difference only with msgid or
++ // only with msgid_plural, and not with both.
++ return (n == 1 && msgstr != msgid) || (n != 1 && msgstr != msgid_plural)
+ ? QString::fromUtf8(msgstr)
+ : QString();
+ } else {
+@@ -244,7 +249,7 @@ QString KCatalog::translate(const QByteArray &msgctxt,
+ d->setupGettextEnv();
+ const char *msgstr = dnpgettext_expr(d->domain.constData(), msgctxt.constData(), msgid.constData(), msgid_plural.constData(), n);
+ d->resetSystemLanguage();
+- return msgstr != msgid && msgstr != msgid_plural
++ return (n == 1 && msgstr != msgid) || (n != 1 && msgstr != msgid_plural)
+ ? QString::fromUtf8(msgstr)
+ : QString();
+ } else {
diff -Nru ki18n-5.28.0/debian/patches/series ki18n-5.28.0/debian/patches/series
--- ki18n-5.28.0/debian/patches/series 1970-01-01 01:00:00.000000000 +0100
+++ ki18n-5.28.0/debian/patches/series 2017-04-03 12:04:43.000000000 +0200
@@ -0,0 +1 @@
+Check-properly-pointer-inequality-from-dngettext.patch
--- End Message ---