From 4a2d36eeefb4c7832b61f565218b6ca3facdc464 Mon Sep 17 00:00:00 2001 From: maxice8 Date: Tue, 28 Aug 2018 07:17:05 -0300 Subject: [PATCH] nodejs-lts: rebuild against icu-62.1 --- .../add-icu-prefix-before-ICU-symbols.patch | 111 ++++++++++++++++++ srcpkgs/nodejs-lts/template | 2 +- 2 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/nodejs-lts/patches/add-icu-prefix-before-ICU-symbols.patch diff --git a/srcpkgs/nodejs-lts/patches/add-icu-prefix-before-ICU-symbols.patch b/srcpkgs/nodejs-lts/patches/add-icu-prefix-before-ICU-symbols.patch new file mode 100644 index 00000000000..6f46e87520a --- /dev/null +++ b/srcpkgs/nodejs-lts/patches/add-icu-prefix-before-ICU-symbols.patch @@ -0,0 +1,111 @@ +From b8f47b27571f8d763f811f017be3fb37d466c4fc Mon Sep 17 00:00:00 2001 +From: "Steven R. Loomis" +Date: Wed, 7 Feb 2018 16:42:21 -0800 +Subject: [PATCH] src: add "icu::" prefix before ICU symbols + +In ICU 61.x, icu4c will no longer put its declarations in the global namespace. +Everything will be in the "icu::" namespace (or icu_60:: in the linker). +Prepare for this. +https://ssl.icu-project.org/trac/ticket/13460 +--- + src/inspector_io.cc | 9 +++++---- + src/node_i18n.cc | 2 +- + tools/icu/iculslocs.cc | 14 +++++++------- + 3 files changed, 13 insertions(+), 12 deletions(-) + +--- src/inspector_io.cc ++++ src/inspector_io.cc +@@ -74,11 +74,11 @@ std::string StringViewToUtf8(const StringView& view) { + + size_t result_length = view.length() * sizeof(*source); + std::string result(result_length, '\0'); +- UnicodeString utf16(unicodeSource, view.length()); ++ icu::UnicodeString utf16(unicodeSource, view.length()); + // ICU components for std::string compatibility are not enabled in build... + bool done = false; + while (!done) { +- CheckedArrayByteSink sink(&result[0], result_length); ++ icu::CheckedArrayByteSink sink(&result[0], result_length); + utf16.toUTF8(sink); + result_length = sink.NumberOfBytesAppended(); + result.resize(result_length); +@@ -111,8 +111,9 @@ void ReleasePairOnAsyncClose(uv_handle_t* async) { + } // namespace + + std::unique_ptr Utf8ToStringView(const std::string& message) { +- UnicodeString utf16 = +- UnicodeString::fromUTF8(StringPiece(message.data(), message.length())); ++ icu::UnicodeString utf16 = ++ icu::UnicodeString::fromUTF8(icu::StringPiece(message.data(), ++ message.length())); + StringView view(reinterpret_cast(utf16.getBuffer()), + utf16.length()); + return StringBuffer::create(view); +--- src/node_i18n.cc ++++ src/node_i18n.cc +@@ -523,7 +523,7 @@ const char* GetVersion(const char* type, + } else if (!strcmp(type, TYPE_UNICODE)) { + return U_UNICODE_VERSION; + } else if (!strcmp(type, TYPE_TZ)) { +- return TimeZone::getTZDataVersion(*status); ++ return icu::TimeZone::getTZDataVersion(*status); + } else if (!strcmp(type, TYPE_CLDR)) { + UVersionInfo versionArray; + ulocdata_getCLDRVersion(versionArray, status); +--- tools/icu/iculslocs.cc ++++ tools/icu/iculslocs.cc +@@ -64,7 +64,7 @@ int VERBOSE = 0; + #define RES_INDEX "res_index" + #define INSTALLEDLOCALES "InstalledLocales" + +-CharString packageName; ++icu::CharString packageName; + const char* locale = RES_INDEX; // locale referring to our index + + void usage() { +@@ -147,7 +147,7 @@ int localeExists(const char* loc, UBool* exists) { + if (VERBOSE > 1) { + printf("Trying to open %s:%s\n", packageName.data(), loc); + } +- LocalUResourceBundlePointer aResource( ++ icu::LocalUResourceBundlePointer aResource( + ures_openDirect(packageName.data(), loc, &status)); + *exists = FALSE; + if (U_SUCCESS(status)) { +@@ -189,11 +189,11 @@ void printIndent(FILE* bf, int indent) { + * @return 0 for OK, 1 for err + */ + int dumpAllButInstalledLocales(int lev, +- LocalUResourceBundlePointer* bund, ++ icu::LocalUResourceBundlePointer* bund, + FILE* bf, + UErrorCode* status) { + ures_resetIterator(bund->getAlias()); +- LocalUResourceBundlePointer t; ++ icu::LocalUResourceBundlePointer t; + while (U_SUCCESS(*status) && ures_hasNext(bund->getAlias())) { + t.adoptInstead(ures_getNextResource(bund->getAlias(), t.orphan(), status)); + ASSERT_SUCCESS(status, "while processing table"); +@@ -254,10 +254,10 @@ int list(const char* toBundle) { + printf("\"locale\": %s\n", locale); + } + +- LocalUResourceBundlePointer bund( ++ icu::LocalUResourceBundlePointer bund( + ures_openDirect(packageName.data(), locale, &status)); + ASSERT_SUCCESS(&status, "while opening the bundle"); +- LocalUResourceBundlePointer installedLocales( ++ icu::LocalUResourceBundlePointer installedLocales( + // NOLINTNEXTLINE (readability/null_usage) + ures_getByKey(bund.getAlias(), INSTALLEDLOCALES, NULL, &status)); + ASSERT_SUCCESS(&status, "while fetching installed locales"); +@@ -295,7 +295,7 @@ int list(const char* toBundle) { + } + + // OK, now list them. +- LocalUResourceBundlePointer subkey; ++ icu::LocalUResourceBundlePointer subkey; + + int validCount = 0; + for (int32_t i = 0; i < count; i++) { + diff --git a/srcpkgs/nodejs-lts/template b/srcpkgs/nodejs-lts/template index 141625f904c..2b152345f6c 100644 --- a/srcpkgs/nodejs-lts/template +++ b/srcpkgs/nodejs-lts/template @@ -1,7 +1,7 @@ # Template file for 'nodejs-lts' pkgname=nodejs-lts version=8.11.3 -revision=3 +revision=4 wrksrc=node-v${version} hostmakedepends="pkg-config python $(vopt_if icu icu)" makedepends="zlib-devel python-devel $(vopt_if icu icu-devel)