diff options
-rw-r--r-- | system/icu/APKBUILD | 24 | ||||
-rw-r--r-- | system/icu/checkimpl.patch | 37 | ||||
-rw-r--r-- | system/icu/icu-58.1-iterator-reset.patch | 124 | ||||
-rw-r--r-- | system/icu/icu-63.1-test-failure.patch | 69 |
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()); - |