--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
I've cherry-picked upstream commits to fix an upstream bug:
https://github.com/google/double-conversion/issues/89
That's all changes from 3.1.0-2 (testing) to 3.1.0-3.
The -3 revision will land on unstable shortly.
debdiff attached.
Detail:
* 8751aafe993c4ec429ba172916596403a336d502.diff
fixes upstream issue #89
* 860b43156c1ba436aba9792407429bf46b9780a0.diff
fixes typo in unit tests introduced by the above patch
unblock double-conversion/3.1.0-3
-- System Information:
Debian Release: buster/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.19.0-3-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff -Nru double-conversion-3.1.0/debian/changelog double-conversion-3.1.0/debian/changelog
--- double-conversion-3.1.0/debian/changelog 2018-09-20 05:41:28.000000000 +0000
+++ double-conversion-3.1.0/debian/changelog 2019-03-07 14:15:09.000000000 +0000
@@ -1,3 +1,9 @@
+double-conversion (3.1.0-3) unstable; urgency=medium
+
+ * Cherry-pick upstream commits to fix incorrect downcasting of separator_.
+
+ -- Mo Zhou <cdluminate@gmail.com> Thu, 07 Mar 2019 14:15:09 +0000
+
double-conversion (3.1.0-2) unstable; urgency=medium
* autopkgtest: Add one more test script unittest.sh .
diff -Nru double-conversion-3.1.0/debian/patches/860b43156c1ba436aba9792407429bf46b9780a0.diff double-conversion-3.1.0/debian/patches/860b43156c1ba436aba9792407429bf46b9780a0.diff
--- double-conversion-3.1.0/debian/patches/860b43156c1ba436aba9792407429bf46b9780a0.diff 1970-01-01 00:00:00.000000000 +0000
+++ double-conversion-3.1.0/debian/patches/860b43156c1ba436aba9792407429bf46b9780a0.diff 2019-03-07 14:06:42.000000000 +0000
@@ -0,0 +1,15 @@
+Modified from https://github.com/google/double-conversion/commit/860b43156c1ba436aba9792407429bf46b9780a0
+
+Index: double-conversion/test/cctest/test-conversions.cc
+===================================================================
+--- double-conversion.orig/test/cctest/test-conversions.cc
++++ double-conversion/test/cctest/test-conversions.cc
+@@ -3603,7 +3603,7 @@ TEST(StringToDoubleSeparator) {
+ CHECK(all_used);
+
+ CHECK_EQ(3.0,
+- StrToD16("0x0@23.p0", flags, 0.0, &processed, &all_used,
++ StrToD16("0x0@3.p0", flags, 0.0, &processed, &all_used,
+ char_separator, separator));
+ CHECK(all_used);
+ }
diff -Nru double-conversion-3.1.0/debian/patches/8751aafe993c4ec429ba172916596403a336d502.diff double-conversion-3.1.0/debian/patches/8751aafe993c4ec429ba172916596403a336d502.diff
--- double-conversion-3.1.0/debian/patches/8751aafe993c4ec429ba172916596403a336d502.diff 1970-01-01 00:00:00.000000000 +0000
+++ double-conversion-3.1.0/debian/patches/8751aafe993c4ec429ba172916596403a336d502.diff 2019-03-07 14:06:42.000000000 +0000
@@ -0,0 +1,153 @@
+Fixes upstream bug: https://github.com/google/double-conversion/issues/89
+Cherry-picked from: https://github.com/google/double-conversion/commit/8751aafe993c4ec429ba172916596403a336d502
+
+Index: double-conversion/double-conversion/double-conversion.cc
+===================================================================
+--- double-conversion.orig/double-conversion/double-conversion.cc
++++ double-conversion/double-conversion/double-conversion.cc
+@@ -553,7 +553,7 @@ static bool IsCharacterDigitForRadix(int
+
+ // Returns true, when the iterator is equal to end.
+ template<class Iterator>
+-static bool Advance (Iterator* it, char separator, int base, Iterator& end) {
++static bool Advance (Iterator* it, uc16 separator, int base, Iterator& end) {
+ if (separator == StringToDoubleConverter::kNoSeparator) {
+ ++(*it);
+ return *it == end;
+@@ -581,7 +581,7 @@ static bool Advance (Iterator* it, char
+ template<class Iterator>
+ static bool IsHexFloatString(Iterator start,
+ Iterator end,
+- char separator,
++ uc16 separator,
+ bool allow_trailing_junk) {
+ ASSERT(start != end);
+
+@@ -622,7 +622,7 @@ template <int radix_log_2, class Iterato
+ static double RadixStringToIeee(Iterator* current,
+ Iterator end,
+ bool sign,
+- char separator,
++ uc16 separator,
+ bool parse_as_hex_float,
+ bool allow_trailing_junk,
+ double junk_string_value,
+Index: double-conversion/test/cctest/test-conversions.cc
+===================================================================
+--- double-conversion.orig/test/cctest/test-conversions.cc
++++ double-conversion/test/cctest/test-conversions.cc
+@@ -1731,6 +1731,33 @@ static double StrToD16(const uc16* str16
+ }
+
+
++static double StrToD16(const char* str, int flags,
++ double empty_string_value,
++ int* processed_characters_count, bool* processed_all,
++ char char_separator, uc16 separator) {
++ uc16 str16[256];
++ int length = -1;
++ for (int i = 0;; i++) {
++ if (str[i] == char_separator) {
++ str16[i] = separator;
++ } else {
++ str16[i] = str[i];
++ }
++ if (str[i] == '\0') {
++ length = i;
++ break;
++ }
++ }
++ ASSERT(length < 256);
++ StringToDoubleConverter converter(flags, empty_string_value, Double::NaN(),
++ NULL, NULL, separator);
++ double result =
++ converter.StringToDouble(str16, length, processed_characters_count);
++ *processed_all = (length == *processed_characters_count);
++ return result;
++}
++
++
+ static double StrToD(const char* str, int flags, double empty_string_value,
+ int* processed_characters_count, bool* processed_all,
+ uc16 separator = StringToDoubleConverter::kNoSeparator) {
+@@ -3203,7 +3230,7 @@ TEST(StringToDoubleSeparator) {
+ int flags;
+ int processed;
+ bool all_used;
+- char separator;
++ uc16 separator;
+
+ separator = '\'';
+ flags = StringToDoubleConverter::NO_FLAGS;
+@@ -3514,6 +3541,71 @@ TEST(StringToDoubleSeparator) {
+ CHECK_EQ(Double::NaN(),
+ StrToD("0x0 3.p -0", flags, 0.0, &processed, &all_used));
+ CHECK_EQ(0, processed);
++
++ separator = 0x202F;
++ char char_separator = '@';
++ flags = StringToDoubleConverter::ALLOW_HEX |
++ StringToDoubleConverter::ALLOW_HEX_FLOATS |
++ StringToDoubleConverter::ALLOW_LEADING_SPACES |
++ StringToDoubleConverter::ALLOW_TRAILING_SPACES;
++
++ CHECK_EQ(18.0,
++ StrToD16("0x1@2", flags, 0.0, &processed, &all_used,
++ char_separator, separator));
++ CHECK(all_used);
++
++ CHECK_EQ(0.0, StrToD16("0x0@0", flags, 1.0, &processed, &all_used,
++ char_separator, separator));
++ CHECK(all_used);
++
++ CHECK_EQ(static_cast<double>(0x123456789),
++ StrToD16("0x1@2@3@4@5@6@7@8@9", flags, Double::NaN(),
++ &processed, &all_used, char_separator, separator));
++ CHECK(all_used);
++
++ CHECK_EQ(18.0, StrToD16(" 0x1@2 ", flags, 0.0,
++ &processed, &all_used, char_separator, separator));
++ CHECK(all_used);
++
++ CHECK_EQ(static_cast<double>(0xabcdef),
++ StrToD16("0xa@b@c@d@e@f", flags, 0.0,
++ &processed, &all_used, char_separator, separator));
++ CHECK(all_used);
++
++ CHECK_EQ(Double::NaN(),
++ StrToD16("0x@1@2", flags, 0.0,
++ &processed, &all_used, char_separator, separator));
++ CHECK_EQ(0, processed);
++
++ CHECK_EQ(Double::NaN(),
++ StrToD16("0@x0", flags, 1.0,
++ &processed, &all_used, char_separator, separator));
++ CHECK_EQ(0, processed);
++
++ CHECK_EQ(Double::NaN(),
++ StrToD16("0x1@2@@3@4@5@6@7@8@9", flags, Double::NaN(),
++ &processed, &all_used, char_separator, separator));
++ CHECK_EQ(0, processed);
++
++ CHECK_EQ(3.0,
++ StrToD16("0x0@3p0", flags, 0.0, &processed, &all_used,
++ char_separator, separator));
++ CHECK(all_used);
++
++ CHECK_EQ(0.0,
++ StrToD16("0x.0@0p0", flags, 0.0, &processed, &all_used,
++ char_separator, separator));
++ CHECK(all_used);
++
++ CHECK_EQ(3.0,
++ StrToD16("0x3.0@0p0", flags, 0.0, &processed, &all_used,
++ char_separator, separator));
++ CHECK(all_used);
++
++ CHECK_EQ(3.0,
++ StrToD16("0x0@23.p0", flags, 0.0, &processed, &all_used,
++ char_separator, separator));
++ CHECK(all_used);
+ }
+
+ TEST(StringToDoubleSpecialValues) {
diff -Nru double-conversion-3.1.0/debian/patches/series double-conversion-3.1.0/debian/patches/series
--- double-conversion-3.1.0/debian/patches/series 2018-09-20 05:41:28.000000000 +0000
+++ double-conversion-3.1.0/debian/patches/series 2019-03-07 14:06:29.000000000 +0000
@@ -1 +1,3 @@
fix_m68k.patch
+8751aafe993c4ec429ba172916596403a336d502.diff
+860b43156c1ba436aba9792407429bf46b9780a0.diff
--- End Message ---