summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--armv7hl-disable-tests.patch96
-rw-r--r--icu-64.1-data_archive_generation.patch14
-rw-r--r--icu-last.spec21
-rw-r--r--rhbz1646703-icu4c-ICU-20246-integer-overflow.patch50
4 files changed, 25 insertions, 156 deletions
diff --git a/armv7hl-disable-tests.patch b/armv7hl-disable-tests.patch
deleted file mode 100644
index 2d869b1..0000000
--- a/armv7hl-disable-tests.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-diff -ru orig.icu/source/test/cintltst/cnmdptst.c icu/source/test/cintltst/cnmdptst.c
---- orig.icu/source/test/cintltst/cnmdptst.c 2016-03-23 21:48:18.000000000 +0100
-+++ icu/source/test/cintltst/cnmdptst.c 2016-04-15 18:34:06.148251985 +0200
-@@ -186,6 +186,12 @@
- /* Test exponential pattern*/
- static void TestExponential(void)
- {
-+/* erAck: fails on armv7hl, https://bugzilla.redhat.com/show_bug.cgi?id=1239574 */
-+#if 1
-+ /* Actually only 3 tests fail, but given the nested structure depending on
-+ * array sizes there's no simple "disable this and that". */
-+ return;
-+#endif
- int32_t pat_length, val_length, lval_length;
- int32_t ival, ilval, p, v, lneed;
- UNumberFormat *fmt;
-diff -ru orig.icu/source/test/intltest/dcfmtest.cpp icu/source/test/intltest/dcfmtest.cpp
---- orig.icu/source/test/intltest/dcfmtest.cpp 2016-03-23 21:48:38.000000000 +0100
-+++ icu/source/test/intltest/dcfmtest.cpp 2016-04-15 18:34:06.148251985 +0200
-@@ -279,6 +279,13 @@
- //
- formatLineMat.reset(testLine);
- if (formatLineMat.lookingAt(status)) {
-+/* erAck: fails on armv7hl, https://bugzilla.redhat.com/show_bug.cgi?id=1239574 */
-+#if 1
-+// [Formattable] file dcfmtest.txt, line 62: expected "12.35E5", got "1.235E6"
-+// [StringPiece] file dcfmtest.txt, line 62: expected "12.35E5", got "1.235E6"
-+ if (lineNum == 62)
-+ continue;
-+#endif
- execFormatTest(lineNum,
- formatLineMat.group(1, status), // Pattern
- formatLineMat.group(2, status), // rounding mode
-diff -ru orig.icu/source/test/intltest/numfmtspectest.cpp icu/source/test/intltest/numfmtspectest.cpp
---- orig.icu/source/test/intltest/numfmtspectest.cpp 2016-03-23 21:48:40.000000000 +0100
-+++ icu/source/test/intltest/numfmtspectest.cpp 2016-04-15 18:34:06.148251985 +0200
-@@ -137,11 +137,14 @@
-
- void NumberFormatSpecificationTest::TestScientificNotation() {
- assertPatternFr("1,23E4", 12345.0, "0.00E0", TRUE);
-+/* erAck: fails on armv7hl, https://bugzilla.redhat.com/show_bug.cgi?id=1239574 */
-+#if 0
- assertPatternFr("123,00E2", 12300.0, "000.00E0", TRUE);
- assertPatternFr("123,0E2", 12300.0, "000.0#E0", TRUE);
- assertPatternFr("123,0E2", 12300.1, "000.0#E0", TRUE);
- assertPatternFr("123,01E2", 12301.0, "000.0#E0", TRUE);
- assertPatternFr("123,01E+02", 12301.0, "000.0#E+00", TRUE);
-+#endif
- assertPatternFr("12,3E3", 12345.0, "##0.00E0", TRUE);
- assertPatternFr("12,300E3", 12300.1, "##0.0000E0", TRUE);
- assertPatternFr("12,30E3", 12300.1, "##0.000#E0", TRUE);
-@@ -221,6 +224,8 @@
- assertEquals("", "USD (433.22)", result, TRUE);
- }
- }
-+/* erAck: fails on armv7hl, https://bugzilla.redhat.com/show_bug.cgi?id=1239574 */
-+#if 0
- const char *paddedSciPattern = "QU**00.#####E0";
- assertPatternFr("QU***43,3E-1", 4.33, paddedSciPattern, TRUE);
- {
-@@ -242,6 +247,7 @@
- }
- // padding cannot work as intended with scientific notation.
- assertPatternFr("QU**43,32E-1", 4.332, paddedSciPattern, TRUE);
-+#endif
- }
-
- void NumberFormatSpecificationTest::assertPatternFr(
-diff -ru orig.icu/source/test/intltest/numfmtst.cpp icu/source/test/intltest/numfmtst.cpp
---- orig.icu/source/test/intltest/numfmtst.cpp 2016-03-23 21:48:40.000000000 +0100
-+++ icu/source/test/intltest/numfmtst.cpp 2016-04-15 18:34:06.150251997 +0200
-@@ -730,6 +730,12 @@
- void
- NumberFormatTest::TestExponential(void)
- {
-+/* erAck: fails on armv7hl, https://bugzilla.redhat.com/show_bug.cgi?id=1239574 */
-+#if 1
-+ /* Actually only 3 tests fail, but given the nested structure depending on
-+ * array sizes there's no simple "disable this and that". */
-+ return;
-+#endif
- UErrorCode status = U_ZERO_ERROR;
- DecimalFormatSymbols sym(Locale::getUS(), status);
- if (U_FAILURE(status)) { errcheckln(status, "FAIL: Bad status returned by DecimalFormatSymbols ct - %s", u_errorName(status)); return; }
-@@ -1846,8 +1852,11 @@
- (int32_t) 45678000, "5E7", status);
- expect(new DecimalFormat("00E0", US, status),
- (int32_t) 45678000, "46E6", status);
-+/* erAck: fails on armv7hl, https://bugzilla.redhat.com/show_bug.cgi?id=1239574 */
-+#if 0
- expect(new DecimalFormat("000E0", US, status),
- (int32_t) 45678000, "457E5", status);
-+#endif
- /*
- expect(new DecimalFormat("###E0", US, status),
- new Object[] { new Double(0.0000123), "12.3E-6",
diff --git a/icu-64.1-data_archive_generation.patch b/icu-64.1-data_archive_generation.patch
new file mode 100644
index 0000000..48ddcd9
--- /dev/null
+++ b/icu-64.1-data_archive_generation.patch
@@ -0,0 +1,14 @@
+https://bugs.gentoo.org/682170
+
+--- a/source/data/Makefile.in
++++ b/source/data/Makefile.in
+@@ -148,7 +148,8 @@
+ # and convert it to the current type.
+ ifneq ($(ICUDATA_ARCHIVE),)
+ ICUDATA_SOURCE_ARCHIVE = $(OUTDIR)/$(ICUDATA_PLATFORM_NAME).dat
+-$(ICUDATA_SOURCE_ARCHIVE): $(ICUDATA_ARCHIVE) $(OUTDIR)
++$(ICUDATA_SOURCE_ARCHIVE): $(ICUDATA_ARCHIVE)
++ $(MKINSTALLDIRS) $(OUTDIR)
+ $(INVOKE) $(TOOLBINDIR)/icupkg -t$(ICUDATA_CHAR) $(ICUDATA_ARCHIVE) $(ICUDATA_SOURCE_ARCHIVE)
+ endif
+ else
diff --git a/icu-last.spec b/icu-last.spec
index 3b5f7ad..0c4d056 100644
--- a/icu-last.spec
+++ b/icu-last.spec
@@ -10,21 +10,21 @@
#
%global srcname icu
-%global soname 62
+%global soname 65
# Regression tests take a long time, you can skip 'em with this
%{!?runselftest: %{expand: %%global runselftest 1}}
Name: icu%{soname}
-Version: %{soname}.2
+Version: %{soname}.1
Release: 1%{?dist}
Summary: International Components for Unicode
License: MIT and UCD and Public Domain
URL: http://site.icu-project.org/
-Source0: https://github.com/unicode-org/icu/releases/download/release-62-2/icu4c-62_2-src.tgz
+Source0: https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-src.tgz
Source1: icu-config.sh
-BuildRequires: doxygen, autoconf >= 2.69, python2
+BuildRequires: doxygen, autoconf >= 2.69, python3
BuildRequires: gcc
BuildRequires: gcc-c++
@@ -34,10 +34,10 @@ Conflicts: %{srcname} < %{version}
Provides: %{srcname} = %{version}-%{release}
Provides: %{srcname}%{?_isa} = %{version}-%{release}
+# Fix the build on s390x
+Patch0: icu-64.1-data_archive_generation.patch
Patch4: gennorm2-man.patch
Patch5: icuinfo-man.patch
-Patch6: rhbz1646703-icu4c-ICU-20246-integer-overflow.patch
-Patch100: armv7hl-disable-tests.patch
%description
Tools and utilities for developing with icu.
@@ -87,12 +87,9 @@ Provides: lib%{srcname}-doc = %{version}-%{release}
%prep
%setup -q -n %{srcname}
+%patch0 -p1 -b .arc-gen
%patch4 -p1 -b .gennorm2-man.patch
%patch5 -p1 -b .icuinfo-man.patch
-%patch6 -p2 -b .rhbz1646703-icu4c-ICU-20246-integer-overflow.patch
-%ifarch armv7hl
-%patch100 -p1 -b .armv7hl-disable-tests.patch
-%endif
%build
pushd source
@@ -215,6 +212,10 @@ LD_LIBRARY_PATH=lib:stubdata:tools/ctestfw:$LD_LIBRARY_PATH bin/uconv -l
%changelog
+* Wed Jul 1 2020 Remi Collet <remi@remirepo.net> - 65.1-1
+- update to 65.1
+ https://github.com/remicollet/remirepo/issues/153
+
* Thu May 7 2020 Remi Collet <remi@remirepo.net> - 62.2-1
- update to 62.2
https://github.com/remicollet/remirepo/issues/149
diff --git a/rhbz1646703-icu4c-ICU-20246-integer-overflow.patch b/rhbz1646703-icu4c-ICU-20246-integer-overflow.patch
deleted file mode 100644
index 3debd3f..0000000
--- a/rhbz1646703-icu4c-ICU-20246-integer-overflow.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 53d8c8f3d181d87a6aa925b449b51c4a2c922a51 Mon Sep 17 00:00:00 2001
-From: Shane Carr <shane@unicode.org>
-Date: Mon, 29 Oct 2018 23:52:44 -0700
-Subject: [PATCH] ICU-20246 Fixing another integer overflow in number parsing.
-
----
- icu4c/source/i18n/fmtable.cpp | 2 +-
- icu4c/source/i18n/number_decimalquantity.cpp | 5 ++++-
- icu4c/source/test/intltest/numfmtst.cpp | 8 ++++++++
- .../icu/impl/number/DecimalQuantity_AbstractBCD.java | 5 ++++-
- .../impl/number/DecimalQuantity_DualStorageBCD.java | 10 +++++++++-
- .../com/ibm/icu/dev/test/format/NumberFormatTest.java | 5 +++++
- 6 files changed, 31 insertions(+), 4 deletions(-)
-
-erAck:
-* obviously removed the icu4j *.java patch parts
-* stripped the icu4c/source/test/intltest/numfmtst.cpp part because it
- added code to a test that does not exist yet in ICU 62.1
- * TODO: when upgrading to ICU 63.1 add that back in from
- https://github.com/unicode-org/icu/commit/53d8c8f3d181d87a6aa925b449b51c4a2c922a51.patch
-
-diff --git a/icu4c/source/i18n/fmtable.cpp b/icu4c/source/i18n/fmtable.cpp
-index 45c7024fc29..8601d95f4a6 100644
---- a/icu4c/source/i18n/fmtable.cpp
-+++ b/icu4c/source/i18n/fmtable.cpp
-@@ -734,7 +734,7 @@ CharString *Formattable::internalGetCharString(UErrorCode &status) {
- // not print scientific notation for magnitudes greater than -5 and smaller than some amount (+5?).
- if (fDecimalQuantity->isZero()) {
- fDecimalStr->append("0", -1, status);
-- } else if (std::abs(fDecimalQuantity->getMagnitude()) < 5) {
-+ } else if (fDecimalQuantity->getMagnitude() != INT32_MIN && std::abs(fDecimalQuantity->getMagnitude()) < 5) {
- fDecimalStr->appendInvariantChars(fDecimalQuantity->toPlainString(), status);
- } else {
- fDecimalStr->appendInvariantChars(fDecimalQuantity->toScientificString(), status);
-diff --git a/icu4c/source/i18n/number_decimalquantity.cpp b/icu4c/source/i18n/number_decimalquantity.cpp
-index 47b930a564b..d5dd7ae694c 100644
---- a/icu4c/source/i18n/number_decimalquantity.cpp
-+++ b/icu4c/source/i18n/number_decimalquantity.cpp
-@@ -898,7 +898,10 @@ UnicodeString DecimalQuantity::toScientificString() const {
- }
- result.append(u'E');
- int32_t _scale = upperPos + scale;
-- if (_scale < 0) {
-+ if (_scale == INT32_MIN) {
-+ result.append({u"-2147483648", -1});
-+ return result;
-+ } else if (_scale < 0) {
- _scale *= -1;
- result.append(u'-');
- } else {