Gentoo Archives: gentoo-commits

From: Andreas Sturmlechner <asturm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/qt:master commit in: dev-qt/qtwebengine/files/, dev-qt/qtwebengine/
Date: Thu, 30 Apr 2020 09:27:02
Message-Id: 1588238801.b078110093de1ca03bf41d781d4e720eeaf56fd6.asturm@gentoo
1 commit: b078110093de1ca03bf41d781d4e720eeaf56fd6
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Wed Apr 29 20:38:38 2020 +0000
4 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
5 CommitDate: Thu Apr 30 09:26:41 2020 +0000
6 URL: https://gitweb.gentoo.org/proj/qt.git/commit/?id=b0781100
7
8 dev-qt/qtwebengine: Fixed build with icu-67
9
10 Closes: https://bugs.gentoo.org/720054
11 Package-Manager: Portage-2.3.99, Repoman-2.3.22
12 Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
13 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
14
15 .../files/qtwebengine-5.14.2-icu67.patch | 169 +++++++++++++++++++++
16 dev-qt/qtwebengine/qtwebengine-5.15.0_beta4.ebuild | 5 +-
17 dev-qt/qtwebengine/qtwebengine-5.15.9999.ebuild | 5 +-
18 3 files changed, 177 insertions(+), 2 deletions(-)
19
20 diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.14.2-icu67.patch b/dev-qt/qtwebengine/files/qtwebengine-5.14.2-icu67.patch
21 new file mode 100644
22 index 00000000..42ee5e87
23 --- /dev/null
24 +++ b/dev-qt/qtwebengine/files/qtwebengine-5.14.2-icu67.patch
25 @@ -0,0 +1,169 @@
26 +From 2b107e7670ffb43719a66ee4a55ab408a5dcf2a5 Mon Sep 17 00:00:00 2001
27 +From: Ujjwal Sharma <ryzokuken@×××××××.org>
28 +Date: Wed, 22 Apr 2020 12:20:17 +0530
29 +Subject: [PATCH] deps: V8: backport 3f8dc4b2e5ba
30 +
31 +Original commit message:
32 +
33 + [intl] Remove soon-to-be removed getAllFieldPositions
34 +
35 + Needed to land ICU67.1 soon.
36 +
37 + Bug: v8:10393
38 + Change-Id: I3c7737ca600d6ccfdc46ffaddfb318ce60bc7618
39 + Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136489
40 + Reviewed-by: Jakob Kummerow <jkummerow@××××××××.org>
41 + Commit-Queue: Frank Tang <ftang@××××××××.org>
42 + Cr-Commit-Position: refs/heads/master@{#67027}
43 +
44 +Refs: https://github.com/v8/v8/commit/3f8dc4b2e5baf77b463334c769af85b79d8c1463
45 +---
46 + common.gypi | 2 +-
47 + src/3rdparty/chromium/v8/src/objects/js-number-format.cc | 72 +++++++++++++------------
48 + 2 files changed, 38 insertions(+), 36 deletions(-)
49 +
50 +diff --git a/deps/v8/src/objects/js-number-format.cc b/deps/v8/src/objects/js-number-format.cc
51 +index 92d3e2fb82e..ced408aa173 100644
52 +--- a/src/3rdparty/chromium/v8/src/objects/js-number-format.cc
53 ++++ b/src/3rdparty/chromium/v8/src/objects/js-number-format.cc
54 +@@ -1197,42 +1197,31 @@ MaybeHandle<JSNumberFormat> JSNumberFormat::New(Isolate* isolate,
55 + }
56 +
57 + namespace {
58 +-Maybe<icu::UnicodeString> IcuFormatNumber(
59 ++Maybe<bool> IcuFormatNumber(
60 + Isolate* isolate,
61 + const icu::number::LocalizedNumberFormatter& number_format,
62 +- Handle<Object> numeric_obj, icu::FieldPositionIterator* fp_iter) {
63 ++ Handle<Object> numeric_obj, icu::number::FormattedNumber* formatted) {
64 + // If it is BigInt, handle it differently.
65 + UErrorCode status = U_ZERO_ERROR;
66 +- icu::number::FormattedNumber formatted;
67 + if (numeric_obj->IsBigInt()) {
68 + Handle<BigInt> big_int = Handle<BigInt>::cast(numeric_obj);
69 + Handle<String> big_int_string;
70 + ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, big_int_string,
71 + BigInt::ToString(isolate, big_int),
72 +- Nothing<icu::UnicodeString>());
73 +- formatted = number_format.formatDecimal(
74 ++ Nothing<bool>());
75 ++ *formatted = number_format.formatDecimal(
76 + {big_int_string->ToCString().get(), big_int_string->length()}, status);
77 + } else {
78 + double number = numeric_obj->Number();
79 +- formatted = number_format.formatDouble(number, status);
80 ++ *formatted = number_format.formatDouble(number, status);
81 + }
82 + if (U_FAILURE(status)) {
83 + // This happen because of icu data trimming trim out "unit".
84 + // See https://bugs.chromium.org/p/v8/issues/detail?id=8641
85 +- THROW_NEW_ERROR_RETURN_VALUE(isolate,
86 +- NewTypeError(MessageTemplate::kIcuError),
87 +- Nothing<icu::UnicodeString>());
88 +- }
89 +- if (fp_iter) {
90 +- formatted.getAllFieldPositions(*fp_iter, status);
91 ++ THROW_NEW_ERROR_RETURN_VALUE(
92 ++ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<bool>());
93 + }
94 +- icu::UnicodeString result = formatted.toString(status);
95 +- if (U_FAILURE(status)) {
96 +- THROW_NEW_ERROR_RETURN_VALUE(isolate,
97 +- NewTypeError(MessageTemplate::kIcuError),
98 +- Nothing<icu::UnicodeString>());
99 +- }
100 +- return Just(result);
101 ++ return Just(true);
102 + }
103 +
104 + } // namespace
105 +@@ -1243,10 +1232,16 @@ MaybeHandle<String> JSNumberFormat::FormatNumeric(
106 + Handle<Object> numeric_obj) {
107 + DCHECK(numeric_obj->IsNumeric());
108 +
109 +- Maybe<icu::UnicodeString> maybe_format =
110 +- IcuFormatNumber(isolate, number_format, numeric_obj, nullptr);
111 ++ icu::number::FormattedNumber formatted;
112 ++ Maybe<bool> maybe_format =
113 ++ IcuFormatNumber(isolate, number_format, numeric_obj, &formatted);
114 + MAYBE_RETURN(maybe_format, Handle<String>());
115 +- return Intl::ToString(isolate, maybe_format.FromJust());
116 ++ UErrorCode status = U_ZERO_ERROR;
117 ++ icu::UnicodeString result = formatted.toString(status);
118 ++ if (U_FAILURE(status)) {
119 ++ THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kIcuError), String);
120 ++ }
121 ++ return Intl::ToString(isolate, result);
122 + }
123 +
124 + namespace {
125 +@@ -1359,12 +1354,18 @@ std::vector<NumberFormatSpan> FlattenRegionsToParts(
126 + }
127 +
128 + namespace {
129 +-Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
130 +- icu::FieldPositionIterator* fp_iter,
131 ++Maybe<int> ConstructParts(Isolate* isolate,
132 ++ icu::number::FormattedNumber* formatted,
133 + Handle<JSArray> result, int start_index,
134 + Handle<Object> numeric_obj, bool style_is_unit) {
135 ++ UErrorCode status = U_ZERO_ERROR;
136 ++ icu::UnicodeString formatted_text = formatted->toString(status);
137 ++ if (U_FAILURE(status)) {
138 ++ THROW_NEW_ERROR_RETURN_VALUE(
139 ++ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<int>());
140 ++ }
141 + DCHECK(numeric_obj->IsNumeric());
142 +- int32_t length = formatted.length();
143 ++ int32_t length = formatted_text.length();
144 + int index = start_index;
145 + if (length == 0) return Just(index);
146 +
147 +@@ -1373,13 +1374,14 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
148 + // other region covers some part of the formatted string. It's possible
149 + // there's another field with exactly the same begin and end as this backdrop,
150 + // in which case the backdrop's field_id of -1 will give it lower priority.
151 +- regions.push_back(NumberFormatSpan(-1, 0, formatted.length()));
152 ++ regions.push_back(NumberFormatSpan(-1, 0, formatted_text.length()));
153 +
154 + {
155 +- icu::FieldPosition fp;
156 +- while (fp_iter->next(fp)) {
157 +- regions.push_back(NumberFormatSpan(fp.getField(), fp.getBeginIndex(),
158 +- fp.getEndIndex()));
159 ++ icu::ConstrainedFieldPosition cfp;
160 ++ cfp.constrainCategory(UFIELD_CATEGORY_NUMBER);
161 ++ while (formatted->nextPosition(cfp, status)) {
162 ++ regions.push_back(
163 ++ NumberFormatSpan(cfp.getField(), cfp.getStart(), cfp.getLimit()));
164 + }
165 + }
166 +
167 +@@ -1401,7 +1403,7 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
168 + Handle<String> substring;
169 + ASSIGN_RETURN_ON_EXCEPTION_VALUE(
170 + isolate, substring,
171 +- Intl::ToString(isolate, formatted, part.begin_pos, part.end_pos),
172 ++ Intl::ToString(isolate, formatted_text, part.begin_pos, part.end_pos),
173 + Nothing<int>());
174 + Intl::AddElement(isolate, result, index, field_type_string, substring);
175 + ++index;
176 +@@ -1421,14 +1423,14 @@ MaybeHandle<JSArray> JSNumberFormat::FormatToParts(
177 + number_format->icu_number_formatter().raw();
178 + CHECK_NOT_NULL(fmt);
179 +
180 +- icu::FieldPositionIterator fp_iter;
181 +- Maybe<icu::UnicodeString> maybe_format =
182 +- IcuFormatNumber(isolate, *fmt, numeric_obj, &fp_iter);
183 ++ icu::number::FormattedNumber formatted;
184 ++ Maybe<bool> maybe_format =
185 ++ IcuFormatNumber(isolate, *fmt, numeric_obj, &formatted);
186 + MAYBE_RETURN(maybe_format, Handle<JSArray>());
187 +
188 + Handle<JSArray> result = factory->NewJSArray(0);
189 + Maybe<int> maybe_format_to_parts = ConstructParts(
190 +- isolate, maybe_format.FromJust(), &fp_iter, result, 0, numeric_obj,
191 ++ isolate, &formatted, result, 0, numeric_obj,
192 + number_format->style() == JSNumberFormat::Style::UNIT);
193 + MAYBE_RETURN(maybe_format_to_parts, Handle<JSArray>());
194 +
195
196 diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.0_beta4.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.0_beta4.ebuild
197 index 84a5805b..d96fd9de 100644
198 --- a/dev-qt/qtwebengine/qtwebengine-5.15.0_beta4.ebuild
199 +++ b/dev-qt/qtwebengine/qtwebengine-5.15.0_beta4.ebuild
200 @@ -78,7 +78,10 @@ DEPEND="${RDEPEND}
201 sys-devel/bison
202 "
203
204 -PATCHES=( "${FILESDIR}/${PN}-5.15.0-disable-fatal-warnings.patch" ) # bug 695446
205 +PATCHES=(
206 + "${FILESDIR}/${PN}-5.15.0-disable-fatal-warnings.patch" # bug 695446
207 + "${FILESDIR}/${PN}-5.14.2-icu67.patch" # bug 720054
208 +)
209
210 src_prepare() {
211 if ! use jumbo-build; then
212
213 diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.9999.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.9999.ebuild
214 index 84a5805b..7c6d8e1d 100644
215 --- a/dev-qt/qtwebengine/qtwebengine-5.15.9999.ebuild
216 +++ b/dev-qt/qtwebengine/qtwebengine-5.15.9999.ebuild
217 @@ -78,7 +78,10 @@ DEPEND="${RDEPEND}
218 sys-devel/bison
219 "
220
221 -PATCHES=( "${FILESDIR}/${PN}-5.15.0-disable-fatal-warnings.patch" ) # bug 695446
222 +PATCHES=(
223 + "${FILESDIR}/${PN}-5.15.0-disable-fatal-warnings.patch" # bug 695446
224 + "${FILESDIR}/${PN}-5.14.2-icu67.patch" # bug 720054
225 +)
226
227 src_prepare() {
228 if ! use jumbo-build; then