Package: release.debian.org Severity: normal User: release.debian....@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 <m...@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.i...@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