diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec index 8e7d5a2..a029376 100644 --- a/qt5-qtwebengine.spec +++ b/qt5-qtwebengine.spec @@ -56,7 +56,7 @@ Summary: Qt5 - QtWebEngine components Name: qt5-qtwebengine Version: 5.9.3 -Release: 2%{?dist} +Release: 3%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details # See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html @@ -115,6 +115,12 @@ Patch12: qtwebengine-opensource-src-5.9.0-webrtc-neon-detect.patch Patch21: qtwebengine-opensource-src-5.9.0-gn-bootstrap-verbose.patch # Fix FTBFS with Qt 5.7 Patch22: qtwebengine-opensource-src-5.9.2-qt57.patch +# drop support for obsolete Unicode "aspirational scripts" (dropped in UTS 31), +# fixes #error with ICU >= 60 (which was a reminder to double-check the list) +# see: http://www.unicode.org/reports/tr31/#Aspirational_Use_Scripts +# backport of: https://chromium-review.googlesource.com/c/chromium/src/+/731871 +# For 5.10, refetch the patch instead of forward-porting the backport. +Patch100: qtwebengine-opensource-src-5.9.3-no-aspirational-scripts.patch %if 0%{?fedora} && 0%{?fedora} < 25 # work around missing qt5_qtwebengine_arches macro on F24 @@ -361,6 +367,7 @@ BuildArch: noarch %patch12 -p1 -b .webrtc-neon-detect %patch21 -p1 -b .gn-bootstrap-verbose %patch22 -p1 -b .qt57 +%patch100 -p1 -b .no-aspirational-scripts # fix // in #include in content/renderer/gpu to avoid debugedit failure sed -i -e 's!gpu//!gpu/!g' \ src/3rdparty/chromium/content/renderer/gpu/compositor_forwarding_message_filter.cc @@ -567,6 +574,9 @@ done %changelog +* Sat Dec 02 2017 Kevin Kofler - 5.9.3-3 +- Drop support for Unicode "aspirational scripts", fixes #error with ICU >= 60 + * Thu Nov 30 2017 Pete Walter - 5.9.3-2 - Rebuild for ICU 60.1 diff --git a/qtwebengine-opensource-src-5.9.3-no-aspirational-scripts.patch b/qtwebengine-opensource-src-5.9.3-no-aspirational-scripts.patch new file mode 100644 index 0000000..695b25f --- /dev/null +++ b/qtwebengine-opensource-src-5.9.3-no-aspirational-scripts.patch @@ -0,0 +1,77 @@ +diff -ur qtwebengine-opensource-src-5.9.3/src/3rdparty/chromium/components/url_formatter/url_formatter.cc qtwebengine-opensource-src-5.9.3-no-aspirational-scripts/src/3rdparty/chromium/components/url_formatter/url_formatter.cc +--- qtwebengine-opensource-src-5.9.3/src/3rdparty/chromium/components/url_formatter/url_formatter.cc 2017-11-08 20:13:31.000000000 +0100 ++++ qtwebengine-opensource-src-5.9.3-no-aspirational-scripts/src/3rdparty/chromium/components/url_formatter/url_formatter.cc 2017-12-02 03:07:07.447476275 +0100 +@@ -478,39 +478,6 @@ + const icu::UnicodeSet* inclusion_set = uspoof_getInclusionUnicodeSet(status); + allowed_set.addAll(*inclusion_set); + +- // Five aspirational scripts are taken from UTR 31 Table 6 at +- // http://www.unicode.org/reports/tr31/#Aspirational_Use_Scripts . +- // Not all the characters of aspirational scripts are suitable for +- // identifiers. Therefore, only characters belonging to +- // [:Identifier_Type=Aspirational:] (listed in 'Status/Type=Aspirational' +- // section at +- // http://www.unicode.org/Public/security/latest/xidmodifications.txt) are +- // are added to the allowed set. The list has to be updated when a new +- // version of Unicode is released. The current version is 9.0.0 and ICU 60 +- // will have Unicode 10.0 data. +-#if U_ICU_VERSION_MAJOR_NUM < 60 +- const icu::UnicodeSet aspirational_scripts( +- icu::UnicodeString( +- // Unified Canadian Syllabics +- "[\\u1401-\\u166C\\u166F-\\u167F" +- // Mongolian +- "\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA" +- // Unified Canadian Syllabics +- "\\u18B0-\\u18F5" +- // Tifinagh +- "\\u2D30-\\u2D67\\u2D7F" +- // Yi +- "\\uA000-\\uA48C" +- // Miao +- "\\U00016F00-\\U00016F44\\U00016F50-\\U00016F7E" +- "\\U00016F8F-\\U00016F9F]", +- -1, US_INV), +- *status); +- allowed_set.addAll(aspirational_scripts); +-#else +-#error "Update aspirational_scripts per Unicode 10.0" +-#endif +- + // U+0338 is included in the recommended set, while U+05F4 and U+2027 are in + // the inclusion set. However, they are blacklisted as a part of Mozilla's + // IDN blacklist (http://kb.mozillazine.org/Network.IDN.blacklist_chars). +diff -ur qtwebengine-opensource-src-5.9.3/src/3rdparty/chromium/components/url_formatter/url_formatter_unittest.cc qtwebengine-opensource-src-5.9.3-no-aspirational-scripts/src/3rdparty/chromium/components/url_formatter/url_formatter_unittest.cc +--- qtwebengine-opensource-src-5.9.3/src/3rdparty/chromium/components/url_formatter/url_formatter_unittest.cc 2017-11-08 20:13:31.000000000 +0100 ++++ qtwebengine-opensource-src-5.9.3-no-aspirational-scripts/src/3rdparty/chromium/components/url_formatter/url_formatter_unittest.cc 2017-12-02 03:08:51.073912562 +0100 +@@ -102,22 +102,24 @@ + {"xn---123-kbjl2j0bl2k.in", + L"\x0939\x093f\x0928\x094d\x0926\x0940-123.in", true}, + +- // 5 Aspirational scripts ++ // What used to be 5 Aspirational scripts in the earlier versions of UAX 31. ++ // UAX 31 does not define aspirational scripts any more. ++ // See http://www.unicode.org/reports/tr31/#Aspirational_Use_Scripts . + // Unifieid Canadian Syllabary +- {"xn--dfe0tte.ca", L"\x1456\x14c2\x14ef.ca", true}, ++ {"xn--dfe0tte.ca", L"\x1456\x14c2\x14ef.ca", false}, + // Tifinagh + {"xn--4ljxa2bb4a6bxb.ma", +- L"\x2d5c\x2d49\x2d3c\x2d49\x2d4f\x2d30\x2d56.ma", true}, ++ L"\x2d5c\x2d49\x2d3c\x2d49\x2d4f\x2d30\x2d56.ma", false}, + // Tifinagh with a disallowed character(U+2D6F) + {"xn--hmjzaby5d5f.ma", L"\x2d5c\x2d49\x2d3c\x2d6f\x2d49\x2d4f.ma", false}, + // Yi +- {"xn--4o7a6e1x64c.cn", L"\xa188\xa320\xa071\xa0b7.cn", true}, ++ {"xn--4o7a6e1x64c.cn", L"\xa188\xa320\xa071\xa0b7.cn", false}, + // Mongolian - 'ordu' (place, camp) +- {"xn--56ec8bp.cn", L"\x1823\x1837\x1833\x1824.cn", true}, ++ {"xn--56ec8bp.cn", L"\x1823\x1837\x1833\x1824.cn", false}, + // Mongolian with a disallowed character + {"xn--95e5de3ds.cn", L"\x1823\x1837\x1804\x1833\x1824.cn", false}, + // Miao/Pollad +- {"xn--2u0fpf0a.cn", L"\U00016f04\U00016f62\U00016f59.cn", true}, ++ {"xn--2u0fpf0a.cn", L"\U00016f04\U00016f62\U00016f59.cn", false}, + + // Script mixing tests + // The following script combinations are allowed.