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 |