Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 781287 - net-libs/nodejs[system-icu] fails to build with =dev-libs/icu-69.1
Summary: net-libs/nodejs[system-icu] fails to build with =dev-libs/icu-69.1
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: William Hubbs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: icu-69.1
  Show dependency tree
 
Reported: 2021-04-08 20:01 UTC by Lars Wendler (Polynomial-C) (RETIRED)
Modified: 2021-04-20 17:48 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,562.95 KB, text/plain)
2021-04-08 20:01 UTC, Lars Wendler (Polynomial-C) (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2021-04-08 20:01:51 UTC
Created attachment 698685 [details]
build.log

x86_64-pc-linux-gnu-g++ -o /var/tmp/portage/net-libs/nodejs-15.11.0/work/node-v15.11.0/out/Release/obj.target/v8_base_without_compiler/deps/v8/src/objects/js-list-format.o ../deps/v8/src/objects/js-list-format.cc '-DNODE_OPENSSL_CERT_STORE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D__STDC_FORMAT_MACROS' '-DV8_TARGET_ARCH_X64' '-DV8_EMBEDDER_STRING="-node.27"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DENABLE_MINOR_MC' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_CONCURRENT_MARKING' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_SNAPSHOT_COMPRESSION' '-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC' -I../deps/v8 -I../deps/v8/include -I/var/tmp/portage/net-libs/nodejs-15.11.0/work/node-v15.11.0/out/Release/obj/gen/inspector-generated-output-root -I../deps/v8/third_party/inspector_protocol -I/var/tmp/portage/net-libs/nodejs-15.11.0/work/node-v15.11.0/out/Release/obj/gen/torque-output-root -I/var/tmp/portage/net-libs/nodejs-15.11.0/work/node-v15.11.0/out/Release/obj/gen/generate-bytecode-output-root -I../deps/v8/third_party/zlib -I../deps/v8/third_party/zlib/google  -pthread -Wno-unused-parameter -m64 -Wno-return-type -fno-strict-aliasing -m64 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++1y   -march=native -mtune=native -O2 -pipe -c
../deps/v8/src/objects/js-list-format.cc: In static member function ‘static v8::internal::MaybeHandle<v8::internal::JSListFormat> v8::internal::JSListFormat::New(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>)’:
../deps/v8/src/objects/js-list-format.cc:146:67: error: ‘static icu::ListFormatter* icu::ListFormatter::createInstance(const icu::Locale&, const char*, UErrorCode&)’ is private within this context
  146 |       icu_locale, GetIcuStyleString(style_enum, type_enum), status);
      |                                                                   ^
In file included from ../deps/v8/src/objects/js-list-format.cc:25:
/usr/include/unicode/listformatter.h:267:27: note: declared private here
  267 |     static ListFormatter* createInstance(const Locale& locale, const char* style, UErrorCode& errorCode);
      |                           ^~~~~~~~~~~~~~
make: *** [tools/v8_gypfiles/v8_base_without_compiler.target.mk:709: /var/tmp/portage/net-libs/nodejs-15.11.0/work/node-v15.11.0/out/Release/obj.target/v8_base_without_compiler/deps/v8/src/objects/js-list-format.o] Error 1
rm 05f8594c41a8681962f62209a187149c43006593.intermediate 5d75a7287fc4f2c6b19ba11507a636496a81f891.intermediate
make: Leaving directory '/var/tmp/portage/net-libs/nodejs-15.11.0/work/node-v15.11.0/out'



sultan found a working fix at:

  https://chromium-review.googlesource.com/c/v8/v8/+/2477751
Comment 1 Larry the Git Cow gentoo-dev 2021-04-20 17:48:53 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75c8059bb0bc595deff3cadcc1195e1ffdf0f385

commit 75c8059bb0bc595deff3cadcc1195e1ffdf0f385
Author:     Marek Szuba <marecki@gentoo.org>
AuthorDate: 2021-04-20 17:17:14 +0000
Commit:     Marek Szuba <marecki@gentoo.org>
CommitDate: 2021-04-20 17:48:40 +0000

    net-libs/nodejs: support dev-libs/icu-69.1
    
    The version of V8 bundled with all versions of NodeJS currently in the
    tree calls ListFormatter::createInstance() in a way that is both marked
    as internal in icu-68 and absent from icu-69. Apply a fix originally
    developed from Chromium which switches to a style marked as stable since
    icu-67, meaning it works with both versions of dev-libs/icu currently in
    the tree (confirmed by building 12.22.1 against both, with USE=icu of
    course).
    
    Closes: https://bugs.gentoo.org/781287
    Signed-off-by: Marek Szuba <marecki@gentoo.org>

 .../nodejs/files/nodejs-12.22.1-v8_icu69.patch     | 85 ++++++++++++++++++++++
 .../nodejs/files/nodejs-14.16.1-v8_icu69.patch     | 84 +++++++++++++++++++++
 net-libs/nodejs/nodejs-12.22.1.ebuild              |  1 +
 net-libs/nodejs/nodejs-14.16.1.ebuild              |  1 +
 net-libs/nodejs/nodejs-15.14.0.ebuild              |  1 +
 5 files changed, 172 insertions(+)