summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/icu/APKBUILD24
-rw-r--r--system/icu/checkimpl.patch37
-rw-r--r--system/icu/icu-58.1-iterator-reset.patch124
-rw-r--r--system/icu/icu-63.1-test-failure.patch69
4 files changed, 7 insertions, 247 deletions
diff --git a/system/icu/APKBUILD b/system/icu/APKBUILD
index 6c3b36a27..20b06ce28 100644
--- a/system/icu/APKBUILD
+++ b/system/icu/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: Sergey Lukin <sergej.lukin@gmail.com>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=icu
-pkgver=63.1
+pkgver=65.1
# convert x.y.z to x_y_z
_ver=$(printf '%s' "$pkgver" | tr . _)
-pkgrel=1
+pkgrel=0
pkgdesc="International Components for Unicode"
url="http://site.icu-project.org/"
arch="all"
@@ -15,10 +15,8 @@ depends=""
checkdepends="diffutils"
makedepends=""
subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs"
-source="https://ssl.icu-project.org/files/icu4c/${pkgver}/${pkgname}4c-$_ver-src.tgz
+source="https://github.com/unicode-org/icu/releases/download/release-$(printf '%s' "$pkgver" | tr . -)/${pkgname}4c-$_ver-src.tgz
icu-60.2-always-use-utf8.patch
- checkimpl.patch
- icu-63.1-test-failure.patch
"
# secfixes:
@@ -35,14 +33,6 @@ prepare() {
default_prepare
update_config_sub
- # strtod_l() is not supported by musl; also xlocale.h is missing
- # It is not possible to disable its use via configure switches or env vars
- # so monkey patching is needed. Idea was stollen from openembedded
- # https://github.com/openembedded/openembedded-core/blob/master/meta/recipes-support/icu/icu.inc#L30
- sed -i -e 's,DU_HAVE_STRTOD_L=1,DU_HAVE_STRTOD_L=0,' configure.ac
- sed -i -e 's,DU_HAVE_STRTOD_L=1,DU_HAVE_STRTOD_L=0,' configure
-
- local x
# https://bugs.icu-project.org/trac/ticket/6102
for x in ARFLAGS CFLAGS CPPFLAGS CXXFLAGS FFLAGS LDFLAGS; do
sed -i -e "/^${x} =.*/s:@${x}@::" "config/Makefile.inc.in"
@@ -60,6 +50,8 @@ build() {
--with-data-packaging=library \
--disable-samples \
--mandir=/usr/share/man
+ # Weird build system glitch.
+ mkdir data/out
make
}
@@ -80,7 +72,5 @@ static() {
mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
}
-sha512sums="9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c icu4c-63_1-src.tgz
-f86c62422f38f6485c58d4766e629bab69e4b0e00fa910854e40e7db1ace299152eaefa99ae2fbab7465e65d3156cbea7124612defa60680db58ab5c34d6262f icu-60.2-always-use-utf8.patch
-af27a474af041a6ac522901a635c3f328dee5f2b8e42d1229970908c740cd2b97fc06e5432541773d7c80339382f75d795911540f844b6d89ec0ee99d4fa6ff9 checkimpl.patch
-24a64f05e10b59d2f7fdd063e032195d446c668497934a0f5012a7b6088b61d260f7ddb8ecbe60bdc49e16ab810fda169bc1d330f30acdf45a1ad8f844fc464d icu-63.1-test-failure.patch"
+sha512sums="8f1ef33e1f4abc9a8ee870331c59f01b473d6da1251a19ce403f822f3e3871096f0791855d39c8f20c612fc49cda2c62c06864aa32ddab2dbd186d2b21ce9139 icu4c-65_1-src.tgz
+f86c62422f38f6485c58d4766e629bab69e4b0e00fa910854e40e7db1ace299152eaefa99ae2fbab7465e65d3156cbea7124612defa60680db58ab5c34d6262f icu-60.2-always-use-utf8.patch"
diff --git a/system/icu/checkimpl.patch b/system/icu/checkimpl.patch
deleted file mode 100644
index 53cfa724f..000000000
--- a/system/icu/checkimpl.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 8baff8f03e07d8e02304d0c888d0bb21ad2eeb01 Mon Sep 17 00:00:00 2001
-From: Jeff Genovy <29107334+jefgen@users.noreply.github.com>
-Date: Wed, 17 Oct 2018 19:47:35 -0700
-Subject: [PATCH] ICU-20208 uspoof.cpp function checkImpl should be static,
- regenerate urename.h
-
-(cherry picked from commit 9ec2c332c1c9156323944ea2b15c2b91952efae4)
----
- common/unicode/urename.h | 1 -
- i18n/uspoof.cpp | 2 +-
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/common/unicode/urename.h b/common/unicode/urename.h
-index 5812173e39c..0512be3b6e5 100644
---- a/common/unicode/urename.h
-+++ b/common/unicode/urename.h
-@@ -110,7 +110,6 @@
- #define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
- #define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
- #define allowedHourFormatsCleanup U_ICU_ENTRY_POINT_RENAME(allowedHourFormatsCleanup)
--#define checkImpl U_ICU_ENTRY_POINT_RENAME(checkImpl)
- #define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
- #define dayPeriodRulesCleanup U_ICU_ENTRY_POINT_RENAME(dayPeriodRulesCleanup)
- #define deleteAllowedHourFormats U_ICU_ENTRY_POINT_RENAME(deleteAllowedHourFormats)
-diff --git a/i18n/uspoof.cpp b/i18n/uspoof.cpp
-index 8e3d69ede2b..66f228f037a 100644
---- a/i18n/uspoof.cpp
-+++ b/i18n/uspoof.cpp
-@@ -547,7 +547,7 @@ uspoof_checkUnicodeString(const USpoofChecker *sc,
- return uspoof_check2UnicodeString(sc, id, NULL, status);
- }
-
--int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* checkResult, UErrorCode* status) {
-+static int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* checkResult, UErrorCode* status) {
- U_ASSERT(This != NULL);
- U_ASSERT(checkResult != NULL);
- checkResult->clear();
diff --git a/system/icu/icu-58.1-iterator-reset.patch b/system/icu/icu-58.1-iterator-reset.patch
deleted file mode 100644
index 24c7fa96d..000000000
--- a/system/icu/icu-58.1-iterator-reset.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-Index: /icu/trunk/source/common/ulist.c
-===================================================================
---- source/common/ulist.c (revision 39483)
-+++ source/common/ulist.c (revision 39484)
-@@ -30,5 +30,4 @@
-
- int32_t size;
-- int32_t currentIndex;
- };
-
-@@ -52,5 +51,4 @@
- newList->tail = NULL;
- newList->size = 0;
-- newList->currentIndex = -1;
-
- return newList;
-@@ -81,6 +79,7 @@
- p->next->previous = p->previous;
- }
-- list->curr = NULL;
-- list->currentIndex = 0;
-+ if (p == list->curr) {
-+ list->curr = p->next;
-+ }
- --list->size;
- if (p->forceDelete) {
-@@ -151,5 +150,4 @@
- list->head->previous = newItem;
- list->head = newItem;
-- list->currentIndex++;
- }
-
-@@ -194,5 +192,4 @@
- curr = list->curr;
- list->curr = curr->next;
-- list->currentIndex++;
-
- return curr->data;
-@@ -210,5 +207,4 @@
- if (list != NULL) {
- list->curr = list->head;
-- list->currentIndex = 0;
- }
- }
-@@ -273,3 +269,2 @@
- return (UList *)(en->context);
- }
--
-Index: /icu/trunk/source/i18n/ucol_res.cpp
-===================================================================
---- source/i18n/ucol_res.cpp (revision 39483)
-+++ source/i18n/ucol_res.cpp (revision 39484)
-@@ -681,4 +681,5 @@
- }
- memcpy(en, &defaultKeywordValues, sizeof(UEnumeration));
-+ ulist_resetList(sink.values); // Initialize the iterator.
- en->context = sink.values;
- sink.values = NULL; // Avoid deletion in the sink destructor.
-Index: /icu/trunk/source/test/intltest/apicoll.cpp
-===================================================================
---- source/test/intltest/apicoll.cpp (revision 39483)
-+++ source/test/intltest/apicoll.cpp (revision 39484)
-@@ -82,14 +82,7 @@
- col = Collator::createInstance(Locale::getEnglish(), success);
- if (U_FAILURE(success)){
-- errcheckln(success, "Default Collator creation failed. - %s", u_errorName(success));
-- return;
-- }
--
-- StringEnumeration* kwEnum = col->getKeywordValuesForLocale("", Locale::getEnglish(),true,success);
-- if (U_FAILURE(success)){
-- errcheckln(success, "Get Keyword Values for Locale failed. - %s", u_errorName(success));
-- return;
-- }
-- delete kwEnum;
-+ errcheckln(success, "English Collator creation failed. - %s", u_errorName(success));
-+ return;
-+ }
-
- col->getVersion(versionArray);
-@@ -230,4 +223,27 @@
- delete aFrCol;
- delete junk;
-+}
-+
-+void CollationAPITest::TestKeywordValues() {
-+ IcuTestErrorCode errorCode(*this, "TestKeywordValues");
-+ LocalPointer<Collator> col(Collator::createInstance(Locale::getEnglish(), errorCode));
-+ if (errorCode.logIfFailureAndReset("English Collator creation failed")) {
-+ return;
-+ }
-+
-+ LocalPointer<StringEnumeration> kwEnum(
-+ col->getKeywordValuesForLocale("collation", Locale::getEnglish(), TRUE, errorCode));
-+ if (errorCode.logIfFailureAndReset("Get Keyword Values for English Collator failed")) {
-+ return;
-+ }
-+ assertTrue("expect at least one collation tailoring for English", kwEnum->count(errorCode) > 0);
-+ const char *kw;
-+ UBool hasStandard = FALSE;
-+ while ((kw = kwEnum->next(NULL, errorCode)) != NULL) {
-+ if (strcmp(kw, "standard") == 0) {
-+ hasStandard = TRUE;
-+ }
-+ }
-+ assertTrue("expect at least the 'standard' collation tailoring for English", hasStandard);
- }
-
-@@ -2467,4 +2483,5 @@
- TESTCASE_AUTO_BEGIN;
- TESTCASE_AUTO(TestProperty);
-+ TESTCASE_AUTO(TestKeywordValues);
- TESTCASE_AUTO(TestOperators);
- TESTCASE_AUTO(TestDuplicate);
-Index: /icu/trunk/source/test/intltest/apicoll.h
-===================================================================
---- source/test/intltest/apicoll.h (revision 39483)
-+++ source/test/intltest/apicoll.h (revision 39484)
-@@ -36,4 +36,5 @@
- */
- void TestProperty(/* char* par */);
-+ void TestKeywordValues();
-
- /**
diff --git a/system/icu/icu-63.1-test-failure.patch b/system/icu/icu-63.1-test-failure.patch
deleted file mode 100644
index f6be126ec..000000000
--- a/system/icu/icu-63.1-test-failure.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 0da942bd52ffdd3621689fbc4bf3017e75b001e3 Mon Sep 17 00:00:00 2001
-From: Fredrik Roubert <roubert@google.com>
-Date: Fri, 12 Oct 2018 14:33:03 +0200
-Subject: [PATCH] ICU-20080 Avoid strange compiler behaviour in ASSERT_EQUAL()
- macro.
-
-Using temporary variables for the two values to be compared here makes
-GCC compile the code just like we expect it to. (What it really is that
-it otherwise does on some architechtures remains a mystery.)
-
-This will make the tests pass as expected also on IA-32 with GCC.
-
-It'll also make it possible to revert the old workaround for SPARC
-introduced by commit 5b0592af79c7601d08cafcbbc7b71077faeb7e4f.
-
-Tested:
-
-Linux gcc45 3.16.0-5-686-pae #1 SMP Debian 3.16.51-3+deb8u1 (2018-01-08) i686 GNU/Linux
-
-Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
-g++ (Debian 4.9.2-10+deb8u1) 4.9.2
-
-Linux gcc202 4.16.0-1-sparc64-smp #1 SMP Debian 4.16.5-1 (2018-04-29) sparc64 GNU/Linux
-
-clang version 4.0.1-10+sparc64 (tags/RELEASE_401/final)
-g++ (Debian 8.2.0-7) 8.2.0
----
- icu4c/source/test/intltest/dcfmapts.cpp | 21 +++++++++------------
- 1 file changed, 9 insertions(+), 12 deletions(-)
-
-diff --git a/icu4c/source/test/intltest/dcfmapts.cpp b/icu4c/source/test/intltest/dcfmapts.cpp
-index 6a79bab8509..9fa0e3deee4 100644
---- source/test/intltest/dcfmapts.cpp
-+++ source/test/intltest/dcfmapts.cpp
-@@ -636,8 +636,14 @@ void IntlTestDecimalFormatAPI::TestScale()
- }
-
-
--#define ASSERT_EQUAL(expect, actual) { char tmp[200]; sprintf(tmp, "(%g==%g)", (double)(expect), (double)(actual)); \
-- assertTrue(tmp, ((expect)==(actual)), FALSE, TRUE, __FILE__, __LINE__); }
-+#define ASSERT_EQUAL(expect, actual) { \
-+ /* ICU-20080: Use temporary variables to avoid strange compiler behaviour \
-+ (with the nice side-effect of avoiding repeated function calls too). */ \
-+ auto lhs = (expect); \
-+ auto rhs = (actual); \
-+ char tmp[200]; \
-+ sprintf(tmp, "(%g==%g)", (double)lhs, (double)rhs); \
-+ assertTrue(tmp, (lhs==rhs), FALSE, TRUE, __FILE__, __LINE__); }
-
- void IntlTestDecimalFormatAPI::TestFixedDecimal() {
- UErrorCode status = U_ZERO_ERROR;
-@@ -946,16 +952,7 @@ void IntlTestDecimalFormatAPI::TestFixedDecimal() {
- ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_T));
- // note: going through DigitList path to FixedDecimal, which is trimming
- // int64_t fields to 18 digits. See ticket Ticket #10374
-- // ASSERT_EQUAL(223372036854775807LL, fd.getPluralOperand(PLURAL_OPERAND_I);
-- if (!(
-- fd.getPluralOperand(PLURAL_OPERAND_I) == 223372036854775807LL ||
-- fd.getPluralOperand(PLURAL_OPERAND_I) == 9223372036854775807LL)) {
-- dataerrln(
-- "File %s, Line %d, fd.getPluralOperand(PLURAL_OPERAND_I = %lld",
-- __FILE__,
-- __LINE__,
-- fd.getPluralOperand(PLURAL_OPERAND_I));
-- }
-+ ASSERT_EQUAL(223372036854775807LL, fd.getPluralOperand(PLURAL_OPERAND_I));
- ASSERT_EQUAL(TRUE, fd.hasIntegerValue());
- ASSERT_EQUAL(FALSE, fd.isNegative());
-