Package: release.debian.org Severity: normal User: [email protected] 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 <[email protected]> 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("[email protected]", flags, 0.0, &processed, &all_used, ++ StrToD16("[email protected]", 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("[email protected]", 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

