diff -Nru chromium-81.0.4044.92/debian/changelog chromium-81.0.4044.92/debian/changelog --- chromium-81.0.4044.92/debian/changelog 2020-04-07 23:05:20.000000000 +0000 +++ chromium-81.0.4044.92/debian/changelog 2020-06-07 16:02:02.000000000 +0000 @@ -1,3 +1,17 @@ +chromium (81.0.4044.92-1+rpi2) bullseye-staging; urgency=medium + + * Apply upstream patch to fix build with ICU 67 (Closes: 960236) + * Disable ICU 63 patch, it conflicts with the ICU 67 fix. + * Version libicu-dev build-dependency as >= 65 + + -- Peter Michael Green Sun, 07 Jun 2020 16:02:02 +0000 + +chromium (81.0.4044.92-1+rpi1) bullseye-staging; urgency=medium + + * Apply upstream patch to fix build with re2 20200501 (Closes: 960361) + + -- Peter Michael Green Sat, 30 May 2020 12:50:26 +0000 + chromium (81.0.4044.92-1) unstable; urgency=medium * New upstream stable release. diff -Nru chromium-81.0.4044.92/debian/control chromium-81.0.4044.92/debian/control --- chromium-81.0.4044.92/debian/control 2020-04-07 23:04:41.000000000 +0000 +++ chromium-81.0.4044.92/debian/control 2020-06-07 16:02:02.000000000 +0000 @@ -48,7 +48,7 @@ libpci-dev, libcap-dev, libdrm-dev, - libicu-dev, + libicu-dev (>= 65), libffi-dev, libkrb5-dev, libexif-dev, diff -Nru chromium-81.0.4044.92/debian/patches/icu67-01-3f8dc4b2e5baf77b463334c769af85b79d8c1463.patch chromium-81.0.4044.92/debian/patches/icu67-01-3f8dc4b2e5baf77b463334c769af85b79d8c1463.patch --- chromium-81.0.4044.92/debian/patches/icu67-01-3f8dc4b2e5baf77b463334c769af85b79d8c1463.patch 1970-01-01 00:00:00.000000000 +0000 +++ chromium-81.0.4044.92/debian/patches/icu67-01-3f8dc4b2e5baf77b463334c769af85b79d8c1463.patch 2020-06-07 16:02:02.000000000 +0000 @@ -0,0 +1,163 @@ +Adjusted by Peter Michael Green to apply to Debian chromium package. + +commit 3f8dc4b2e5baf77b463334c769af85b79d8c1463 +Author: Frank Tang +Date: Fri Apr 3 23:13:54 2020 -0700 + + [intl] Remove soon-to-be removed getAllFieldPositions + + Needed to land ICU67.1 soon. + + Bug: v8:10393 + Change-Id: I3c7737ca600d6ccfdc46ffaddfb318ce60bc7618 + Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136489 + Reviewed-by: Jakob Kummerow + Commit-Queue: Frank Tang + Cr-Commit-Position: refs/heads/master@{#67027} + +Index: chromium-81.0.4044.92/v8/src/objects/js-number-format.cc +=================================================================== +--- chromium-81.0.4044.92.orig/v8/src/objects/js-number-format.cc ++++ chromium-81.0.4044.92/v8/src/objects/js-number-format.cc +@@ -1197,42 +1197,31 @@ MaybeHandle JSNumberForm + } + + namespace { +-Maybe IcuFormatNumber( ++Maybe IcuFormatNumber( + Isolate* isolate, + const icu::number::LocalizedNumberFormatter& number_format, +- Handle numeric_obj, icu::FieldPositionIterator* fp_iter) { ++ Handle numeric_obj, icu::number::FormattedNumber* formatted) { + // If it is BigInt, handle it differently. + UErrorCode status = U_ZERO_ERROR; +- icu::number::FormattedNumber formatted; + if (numeric_obj->IsBigInt()) { + Handle big_int = Handle::cast(numeric_obj); + Handle big_int_string; + ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, big_int_string, + BigInt::ToString(isolate, big_int), +- Nothing()); +- formatted = number_format.formatDecimal( ++ Nothing()); ++ *formatted = number_format.formatDecimal( + {big_int_string->ToCString().get(), big_int_string->length()}, status); + } else { + double number = numeric_obj->Number(); +- formatted = number_format.formatDouble(number, status); ++ *formatted = number_format.formatDouble(number, status); + } + if (U_FAILURE(status)) { + // This happen because of icu data trimming trim out "unit". + // See https://bugs.chromium.org/p/v8/issues/detail?id=8641 +- THROW_NEW_ERROR_RETURN_VALUE(isolate, +- NewTypeError(MessageTemplate::kIcuError), +- Nothing()); +- } +- if (fp_iter) { +- formatted.getAllFieldPositions(*fp_iter, status); ++ THROW_NEW_ERROR_RETURN_VALUE( ++ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing()); + } +- icu::UnicodeString result = formatted.toString(status); +- if (U_FAILURE(status)) { +- THROW_NEW_ERROR_RETURN_VALUE(isolate, +- NewTypeError(MessageTemplate::kIcuError), +- Nothing()); +- } +- return Just(result); ++ return Just(true); + } + + } // namespace +@@ -1243,10 +1232,16 @@ MaybeHandle JSNumberFormat::Form + Handle numeric_obj) { + DCHECK(numeric_obj->IsNumeric()); + +- Maybe maybe_format = +- IcuFormatNumber(isolate, number_format, numeric_obj, nullptr); ++ icu::number::FormattedNumber formatted; ++ Maybe maybe_format = ++ IcuFormatNumber(isolate, number_format, numeric_obj, &formatted); + MAYBE_RETURN(maybe_format, Handle()); +- return Intl::ToString(isolate, maybe_format.FromJust()); ++ UErrorCode status = U_ZERO_ERROR; ++ icu::UnicodeString result = formatted.toString(status); ++ if (U_FAILURE(status)) { ++ THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kIcuError), String); ++ } ++ return Intl::ToString(isolate, result); + } + + namespace { +@@ -1359,12 +1354,18 @@ std::vector FlattenReg + } + + namespace { +-Maybe ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted, +- icu::FieldPositionIterator* fp_iter, ++Maybe ConstructParts(Isolate* isolate, ++ icu::number::FormattedNumber* formatted, + Handle result, int start_index, + Handle numeric_obj, bool style_is_unit) { ++ UErrorCode status = U_ZERO_ERROR; ++ icu::UnicodeString formatted_text = formatted->toString(status); ++ if (U_FAILURE(status)) { ++ THROW_NEW_ERROR_RETURN_VALUE( ++ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing()); ++ } + DCHECK(numeric_obj->IsNumeric()); +- int32_t length = formatted.length(); ++ int32_t length = formatted_text.length(); + int index = start_index; + if (length == 0) return Just(index); + +@@ -1373,13 +1374,14 @@ Maybe ConstructParts(Isolate* isola + // other region covers some part of the formatted string. It's possible + // there's another field with exactly the same begin and end as this backdrop, + // in which case the backdrop's field_id of -1 will give it lower priority. +- regions.push_back(NumberFormatSpan(-1, 0, formatted.length())); ++ regions.push_back(NumberFormatSpan(-1, 0, formatted_text.length())); + + { +- icu::FieldPosition fp; +- while (fp_iter->next(fp)) { +- regions.push_back(NumberFormatSpan(fp.getField(), fp.getBeginIndex(), +- fp.getEndIndex())); ++ icu::ConstrainedFieldPosition cfp; ++ cfp.constrainCategory(UFIELD_CATEGORY_NUMBER); ++ while (formatted->nextPosition(cfp, status)) { ++ regions.push_back( ++ NumberFormatSpan(cfp.getField(), cfp.getStart(), cfp.getLimit())); + } + } + +@@ -1401,7 +1403,7 @@ Maybe ConstructParts(Isolate* isola + Handle substring; + ASSIGN_RETURN_ON_EXCEPTION_VALUE( + isolate, substring, +- Intl::ToString(isolate, formatted, part.begin_pos, part.end_pos), ++ Intl::ToString(isolate, formatted_text, part.begin_pos, part.end_pos), + Nothing()); + Intl::AddElement(isolate, result, index, field_type_string, substring); + ++index; +@@ -1421,15 +1423,14 @@ MaybeHandle JSNumberFormat::For + number_format->icu_number_formatter().raw(); + CHECK_NOT_NULL(fmt); + +- icu::FieldPositionIterator fp_iter; +- Maybe maybe_format = +- IcuFormatNumber(isolate, *fmt, numeric_obj, &fp_iter); ++ icu::number::FormattedNumber formatted; ++ Maybe maybe_format = ++ IcuFormatNumber(isolate, *fmt, numeric_obj, &formatted); + MAYBE_RETURN(maybe_format, Handle()); + + Handle result = factory->NewJSArray(0); + Maybe maybe_format_to_parts = ConstructParts( +- isolate, maybe_format.FromJust(), &fp_iter, result, 0, numeric_obj, +- number_format->style() == JSNumberFormat::Style::UNIT); ++ isolate, &formatted, result, 0, numeric_obj, number_format->style() == JSNumberFormat::Style::UNIT); + MAYBE_RETURN(maybe_format_to_parts, Handle()); + + return result; diff -Nru chromium-81.0.4044.92/debian/patches/re2-20200501.patch chromium-81.0.4044.92/debian/patches/re2-20200501.patch --- chromium-81.0.4044.92/debian/patches/re2-20200501.patch 1970-01-01 00:00:00.000000000 +0000 +++ chromium-81.0.4044.92/debian/patches/re2-20200501.patch 2020-05-30 13:58:13.000000000 +0000 @@ -0,0 +1,32 @@ +commit ede390a0b18e4565abf8ac1e1ff717e1d43fc320 +Author: Paul Wankadia +Date: Tue Apr 14 16:54:51 2020 +0000 + + Clean up a call to set_utf8(). + + This is part of an effort to rewrite calls to utf8() and set_utf8() + (in RE2::Options) as calls to encoding() and set_encoding(), + respectively. utf8() and set_utf8() have been marked as the "legacy" + interface since 2008, so it is long past time that we get rid of them. + + R=parastoog@google.com + + Change-Id: I62c48cd575a55b519d5264ed857f927c163068b2 + Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2145261 + Reviewed-by: Parastoo Geranmayeh + Commit-Queue: Paul Wankadia + Cr-Commit-Position: refs/heads/master@{#758886} + +diff --git a/components/autofill/core/browser/address_rewriter.cc b/components/autofill/core/browser/address_rewriter.cc +index 1b85a50974cf..030a5aba146d 100644 +--- a/components/autofill/core/browser/address_rewriter.cc ++++ b/components/autofill/core/browser/address_rewriter.cc +@@ -57,7 +57,7 @@ void CompileRulesFromData(const std::string& data_string, + CompiledRuleVector* compiled_rules) { + base::StringPiece data = data_string; + re2::RE2::Options options; +- options.set_utf8(true); ++ options.set_encoding(RE2::Options::EncodingUTF8); + options.set_word_boundary(true); + + size_t token_end = 0; diff -Nru chromium-81.0.4044.92/debian/patches/series chromium-81.0.4044.92/debian/patches/series --- chromium-81.0.4044.92/debian/patches/series 2020-04-07 23:05:20.000000000 +0000 +++ chromium-81.0.4044.92/debian/patches/series 2020-06-07 16:02:02.000000000 +0000 @@ -73,7 +73,10 @@ system/convertutf.patch buster/re2.patch -buster/icu63.patch +#buster/icu63.patch buster/vpx17.patch buster/opus13.patch buster/clang7.patch + +re2-20200501.patch +icu67-01-3f8dc4b2e5baf77b463334c769af85b79d8c1463.patch