[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#859615: unblock: ki18n/5.28.0-2



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

Reply to: