summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools/nodejs
Commit message (Collapse)AuthorAgeFilesLines
* Revert "nodejs: inherit qemu class conditionally"Alexander Kanavin2025-07-011-8/+6
| | | | | | | | | | | | | | | | Plenty of other recipes inherit qemu unconditionally, including some pretty foundational ones like python3, and they do not need this fix. I think something else is going on here, and that issue needs to be properly investigated. There's a request to provide steps to observe the issue, but the original patch author so far hasn't been able to reproduce it on demand: https://lists.openembedded.org/g/openembedded-devel/topic/113861973 This reverts commit b2a950a75b15c93f625bfe6514bc248c9310813f. Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: inherit qemu class conditionallyGyorgy Sarvari2025-06-281-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | The recipe unconditionally inherits the qemu class, because it executes some target binaries when it is cross-compiled and the bit-width of the build host and the target host are different. Since it is unconditional, it also means that it is inherited for native and nativesdk builds also. The qemu class uses some qemu options that are always derived from the target machine's configuration, even when the recipe is built for class-native. This means that some of the variables used by the recipe changes (e.g. QEMU_OPTIONS), and the shared state cache is invalidated when the target machine changes, even when nodejs-native is being built - and it triggers a full rebuild of nodejs-native unnecessarily. To avoid this, inherit the qemu class conditionally, only in case it is used (when the target and build arch's bit-widths are different). Also, inherit qemu-native based on the same condition, and move around the qemu-dependent code a bit, so it will be only executed when the qemu class is inherited. Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* meta-openembedded/all: adapt to UNPACKDIR changesAlexander Kanavin2025-06-252-3/+2
| | | | | | | | | | | | | Please see https://git.yoctoproject.org/poky/commit/?id=4dd321f8b83afecd962393101b2a6861275b5265 for what changes are needed, and sed commands that can be used to make them en masse. I've verified that bitbake -c patch world works with these, but did not run a world build; the majority of recipes shouldn't need further fixups, but if there are some that still fall out, they can be fixed in followups. Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: Disable for powerpc64leHongxu Jia2025-06-251-0/+1
| | | | | | | | | | | | | | | | | | | | Fixes: 1. Compile failure with host gcc 11.4.0 (on ubuntu 22.04) $ echo 'MACHINE = "qemuppc64"' >> conf/local.conf $ bitbake nodejs ''' ../deps/v8/src/execution/ppc/simulator-ppc.cc:5126:33: error: ‘ceilf’ is not a member of ‘std’; did you mean ‘ceil’? 5126 | VECTOR_FP_ROUNDING(float, ceilf) | ^~~~~ ''' 2. Segment fault on qemuppc64 $ runqemu qemuppc64 slirp nographic ext4 snapshot qemuparams="-m 8192" root@qemuppc64:~# node --help Segmentation fault (core dumped) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Revert "recipes: adapt to qemu.bbclass refactoring"Chen Qi2025-05-291-3/+3
| | | | | | | | | | | | | | This reverts commit 24ff52ba3b73757cc0255a5b19822e2e4d3d4e0a. The original patch was my bad. The patches for oe-core were re-worked, but I forgot the recall this patch. In fact, inheriting qemu is needed because it sets a clear barriar for people to use qemu user mode. And the QEMU_OPTIONS settings are also in qemu.bbclass. Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 22.15.1 -> 22.16.0Jason Schonberg2025-05-224-66/+1
| | | | | | | | | | Drop the backported zlib-fix-pointer-alignment patch. It is included in this release. https://github.com/nodejs/node/commit/f2159f2a44 Changelog: https://github.com/nodejs/node/releases/tag/v22.16.0 Signed-off-by: Jason Schonberg <schonm@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 22.15.0 -> 22.15.1Jason Schonberg2025-05-151-1/+1
| | | | | | | | | | | | | | This is a security update. (CVE-2025-23166) fix error handling on async crypto operation (CVE-2025-23165) add missing call to uv_fs_req_cleanup https://nodejs.org/en/blog/vulnerability/may-2025-security-releases Changelog: https://github.com/nodejs/node/releases/tag/v22.15.1 Signed-off-by: Jason Schonberg <schonm@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* recipes: adapt to qemu.bbclass refactoringChen Qi2025-05-031-3/+3
| | | | | | | | | | | Avoid inheriting qemu.bbclass and use oe.qemu.xxx instead. Also, the 'qemu-native' dep is replaced by 'qemuwrapper-cross' for PACKAGE_WRITE_DEPS. qemuwrapper-cross is the one that is actually used by postints and it has 'qemu-native' in DEPENDS. Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: backport a patch to prevent brotli crashing nodejsJeroen Hofstee2025-04-282-0/+65
| | | | | | | | | | | Brotli can crash nodejs (on ARM), because the memory allocated for brotli wasn't properly aligned. https://github.com/google/brotli/issues/1159 https://github.com/nodejs/node/commit/dc035bbc9b310ff8067bc0dad22230978489c061 Signed-off-by: Jeroen Hofstee <jhofstee@victronenergy.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 22.14.0 -> 22.15.0Jason Schonberg2025-04-243-2/+2
| | | | | | | | | | License-Update: Whitespace changes. Update copyright years. Add zstd under BSD license. https://github.com/nodejs/node/pull/57840/files#diff-c693279643b8cd5d248172d9c22cb7cf4ed163a3c98c8a3f69c2717edd3eacb7 Changelog: https://github.com/nodejs/node/releases/tag/v22.15.0 Signed-off-by: Jason Schonberg <schonm@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 22.13.0 -> 22.14.0Jason Schonberg2025-03-183-2/+2
| | | | | | | | | | License-Update: Change the location of the inspector_protocol https://github.com/nodejs/node/commit/a48430d4d34eb9f598522410dd7723f069c574d0 Changelog: https://github.com/nodejs/node/releases/tag/v22.14.0 Signed-off-by: Jason Schonberg <schonm@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 22.12.0 -> 22.13.1Jason Schonberg2025-01-245-50/+81
| | | | | | | | | | | | | | | | | | | Changelog for 22.13.0 : https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V22.md#22.13.0 Changelog for 22.13.1 : https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V22.md#22.13.1 The 22.13.1 release is a security fix addressing four CVEs. CVE-2025-23083 - src,loader,permission: throw on InternalWorker use when permission model is enabled (High) CVE-2025-23085 - src: fix HTTP2 mem leak on premature close and ERR_PROTO (Medium) CVE-2025-23084 - path: fix path traversal in normalize() on Windows (Medium) CVE-2025-22150 - Use of Insufficiently Random Values in undici fetch() (Medium) I introduce a new patch with this recipe 0001-Do-not-use-glob-in-deps.patch to revert https://github.com/nodejs/node/commit/77e2869ca6 I restored 0001-deps-disable-io_uring-support-in-libuv.patch as suggested here : https://lore.kernel.org/all/20241207140642.181134-1-martin.jansa@gmail.com/ Signed-off-by: Jason Schonberg <schonm@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 22.11.0 -> 22.12.0Jason Schonberg2024-12-034-32/+2
| | | | | | | | | | | | | License-Update: Add JSON parsing library under MIT license. https://github.com/nodejs/node/pull/56040/commits/27bcd103e775e00eb8d03ac37052bbd4ccb6d239 Drop backported patch fix-build-with-icu-76.patch. It is already integrated in this version https://github.com/nodejs/node/pull/56040/commits/c3ca978d9c73d1a96f4d5c7bfa3c10ce786b8fe9 Changelog: https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V22.md#22.12.0 Signed-off-by: Jason Schonberg <schonm@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: backport a patch to fix build with icu-76Martin Jansa2024-11-232-0/+30
| | | | | | | | | | | | | | | | | | | | | * icu was upgraded in oe-core in: https://git.openembedded.org/openembedded-core/commit/?id=ef2bd18dd1db7e5f01db76889933bfdbb5415aaf nodejs is now failing to link: TOPDIR/BUILD/hosttools/ld: nodejs/22.11.0/node-v22.11.0/out/Release/obj.host/gen-regexp-special-case/deps/v8/src/regexp/gen-regexp-special-case.o: in function `v8::internal::PrintSet(std::basic_ofstream<char, std::char_traits<char> >&, char const*, icu_76::UnicodeSet const&)': gen-regexp-special-case.cc:(.text._ZN2v88internal8PrintSetERSt14basic_ofstreamIcSt11char_traitsIcEEPKcRKN6icu_7610UnicodeSetE+0x8b): undefined reference to `icu_76::UnicodeSet::getRangeStart(int) const' TOPDIR/BUILD/hosttools/ld: gen-regexp-special-case.cc:(.text._ZN2v88internal8PrintSetERSt14basic_ofstreamIcSt11char_traitsIcEEPKcRKN6icu_7610UnicodeSetE+0xb6): undefined reference to `icu_76::UnicodeSet::getRangeEnd(int) const' TOPDIR/BUILD/hosttools/ld: gen-regexp-special-case.cc:(.text._ZN2v88internal8PrintSetERSt14basic_ofstreamIcSt11char_traitsIcEEPKcRKN6icu_7610UnicodeSetE+0xdf): undefined reference to `icu_76::UnicodeSet::getRangeCount() const' TOPDIR/BUILD/hosttools/ld: gen-regexp-special-case.cc:(.text._ZN2v88internal8PrintSetERSt14basic_ofstreamIcSt11char_traitsIcEEPKcRKN6icu_7610UnicodeSetE+0xed): undefined reference to `icu_76::UnicodeSet::getRangeStart(int) const' TOPDIR/BUILD/hosttools/ld: gen-regexp-special-case.cc:(.text._ZN2v88internal8PrintSetERSt14basic_ofstreamIcSt11char_traitsIcEEPKcRKN6icu_7610UnicodeSetE+0xfa): undefined reference to `icu_76::UnicodeSet::getRangeEnd(int) const' TOPDIR/BUILD/hosttools/ld: gen-regexp-special-case.cc:(.text._ZN2v88internal8PrintSetERSt14basic_ofstreamIcSt11char_traitsIcEEPKcRKN6icu_7610UnicodeSetE+0x121): undefined reference to `icu_76::UnicodeSet::getRangeStart(int) const' TOPDIR/BUILD/hosttools/ld: nodejs/22.11.0/node-v22.11.0/out/Release/obj.host/gen-regexp-special-case/deps/v8/src/regexp/gen-regexp-special-case.o: in function `v8::internal::PrintSpecial(std::basic_ofstream<char, std::char_traits<char> >&)': gen-regexp-special-case.cc:(.text._ZN2v88internal12PrintSpecialERSt14basic_ofstreamIcSt11char_traitsIcEE+0x43): undefined reference to `icu_76::UnicodeSet::UnicodeSet()' TOPDIR/BUILD/hosttools/ld: gen-regexp-special-case.cc:(.text._ZN2v88internal12PrintSpecialERSt14basic_ofstreamIcSt11char_traitsIcEE+0x59): undefined reference to `icu_76::UnicodeSet::UnicodeSet()' ... Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 20.18.0 -> 22.11.0J. S.2024-11-0111-223/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves us from the previous Long Term Support version codenamed 'Iron' to the newly released Long Term Support version 22.11.0 Codename 'Jod' Changelog: https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V22.md#22.11.0 License-Update: Add amaro dependency under MIT License. Add swc dependency under Aapche License Version 2.0. Add simdjson dependency under Apache License Version 2.0. Add on-exit-leak-free under MIT License. Remove ESLint. Remove base64 dependency. Removed patchs: 182d9c05e78.patch - This was a backport to 20.x it is now integrated in 22.x Added patches: Two small patches here to use Bourne Shell instad of BASH. 0001-custom-env.patch 0001-positional-args.patch This patch from https://github.com/nodejs/node/commit/686da19abb that addressed CVE-2024-22017 0001-deps-disable-io_uring-support-in-libuv.patch Other patches were refreshed. Signed-off-by: Jason Schonberg <schonm@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: cleanupJ. S.2024-10-162-118/+0
| | | | | | | | | | Drop two patches which haven't been referenced by the nodejs recipe since the 20.11.0 version checkin. 0001-build-fix-build-with-Python-3.12.patch 0001-gyp-resolve-python-3.12-issues.patch Signed-off-by: Jason Schonberg <schonm@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 20.17.0 -> 20.18.0J. S.2024-10-034-3/+3
| | | | | | | | | | | | | | License checksum change due to whitespace changes. https://github.com/nodejs/node/commit/1dfd238781 libatomic.patch change due to changes in node.gyp https://github.com/nodejs/node/commit/25c788009f1fa7a392af51cb97d0a55f0f4a6983 Changelog : https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.18.0 Signed-off-by: Jason Schonberg <schonm@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: Fix build with libc++ 19Khem Raj2024-09-052-0/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | As noted in the libc++ 19 release notes [1], std::char_traits<> is now only provided for char, char8_t, char16_t, char32_t and wchar_t, and any instantiation for other types will fail. This causes nodejs-20 to fail to compile with clang 19 and libc++ 19, resulting in errors similar to: /usr/include/c++/v1/string:820:42: error: implicit instantiation of undefined template 'std::char_traits<unsigned short>' 820 | static_assert(is_same<_CharT, typename traits_type::char_type>::value, | ^ ../deps/v8/src/inspector/string-16.h:114:28: note: in instantiation of template class 'std::basic_string<unsigned short>' requested here 114 | std::basic_string<UChar> m_impl; | ^ /usr/include/c++/v1/__fwd/string.h:23:29: note: template is declared here 23 | struct _LIBCPP_TEMPLATE_VIS char_traits; | ^ Upstream v8 has fixed this in commit 182d9c05e78 [2], so add it as a backported patch, until the next version of node is released. [1] https://libcxx.llvm.org/ReleaseNotes/19.html#deprecations-and-removals [2] https://chromium.googlesource.com/v8/v8.git/+/182d9c05e78 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 20.16.0 -> 20.17.0J. S.2024-09-013-2/+2
| | | | | | | | | | | | | | | | commit c1ddc60fd25456da07d8402c89157c4354fde5ac Author: Jason Schonberg <schonm@gmail.com> Date: Wed Aug 21 17:40:03 2024 -0400 License change - remove highlight.js https://github.com/nodejs/node/commit/1c5fe040a0a73b483cc3e3fef76efe2d1712205b Changelog : https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.17.0 nodejs: upgrade 20.16.0 -> 20.17.0 Signed-off-by: Jason Schonberg <schonm@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: support cross compile without qemu user conditionallyHongxu Jia2024-08-222-45/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to the scope of supported BSPs by qemu-user is limited, such as a segment fault on armv9 after qemu apply commit [target/arm: Convert LDAPR/STLR (imm) to decodetree][1] ``` |tmp-glibc/work/neoversen2-crypto-wrs-linux/nodejs/20.5.1/node-v20.5.1/out/ Release/v8-qemu-wrapper.sh: line 7: 3179613 Segmentation fault (core dumped) PSEUDO_UNLOAD=1 qemu-aarch64 -r 5.15 -L tmp-glibc/work/neoversen2-crypto-wrs-linux/ nodejs/20.5.1/recipe-sysroot -E LD_LIBRARY_PATH=tmp-glibc/work/neoversen2-crypto-wrs-linux/ nodejs/20.5.1/recipe-sysroot/usr/lib64:tmp-glibc/work/neoversen2-crypto-wrs-linux/ nodejs/20.5.1/recipe-sysroot/usr/lib64 "$@" ``` Upstream nodejs have cross compile support, but it needs host and target have same bit width (e.g. a x86_64 host targeting arrch64 to produce a 64-bit binary). So: 1. If host and target have different bit width, build with QEMU user as usual; 2. If host and target have same bit width, enable notejs cross compile support: - The build tools of nodejs is GYP[2], set CC_host, CFLAGS_host, CXX_host, CXXFLAGS_host, LDFLAGS_host, AR_host for host build which is separated with target build [3] - Satisfy layer compatibility, set GYP variables in prefuncs of do_configure, do_compile and do_install other than in recipe parsing - Add missing native packages to fix library missing on host build - Rework libatomic.patch, explicitly link to libatomic for clang conditionally [1] https://github.com/qemu/qemu/commit/2521b6073b7b4b505533a941d4f9600f7585dc78 [2] https://github.com/nodejs/node-gyp [3] https://github.com/nodejs/node-gyp/blob/main/gyp/docs/UserDocumentation.md#cross-compiling Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 20.13.0 -> 20.16.0Jason Schonberg2024-08-093-1/+1
| | | | | Signed-off-by: Jason Schonberg <schonm@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* recipes: ignore various issues fatal with gcc-14Martin Jansa2024-07-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | work arounds for: meta-oe/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:do_compile meta-oe/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb:do_compile meta-oe/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb:do_compile meta-oe/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb:do_compile meta-oe/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.4.bb:do_compile meta-oe/meta-python/recipes-devtools/python/python3-gevent_24.2.1.bb:do_compile meta-oe/meta-oe/recipes-support/avro/avro-c++_1.11.3.bb:do_compile meta-oe/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb:do_compile meta-oe/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb:do_compile meta-oe/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb:do_compile meta-oe/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb:do_configure meta-oe/meta-oe/recipes-support/avro/avro-c_1.11.3.bb:do_compile meta-oe/meta-oe/recipes-core/usleep/usleep_1.2.bb:do_compile meta-oe/meta-networking/recipes-protocols/openflow/openflow_git.bb:do_compile meta-oe/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb:do_compile meta-oe/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb:do_compile meta-oe/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.19.bb:do_compile meta-oe/meta-networking/recipes-support/ssmping/ssmping_0.9.1.bb:do_compile meta-oe/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_10.10.1.bb:do_compile meta-oe/meta-oe/recipes-extended/zsync/zsync-curl_git.bb:do_compile meta-oe/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb:do_compile meta-oe/meta-oe/recipes-support/openct/openct_0.6.20.bb:do_compile meta-oe/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb:do_compile meta-oe/meta-networking/recipes-daemons/ncftp/ncftp_3.2.7.bb:do_compile meta-oe/meta-oe/recipes-support/daemontools/daemontools_0.76.bb:do_compile meta-oe/meta-oe/recipes-devtools/libgee/libgee_0.20.6.bb:do_compile meta-oe/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb:do_compile meta-oe/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb:do_compile meta-oe/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb:do_compile meta-oe/meta-oe/recipes-devtools/glade/glade_3.22.2.bb:do_compile http://errors.yoctoproject.org/Errors/Build/183124/ Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs-oe-cache-native: use UNPACKDIRMartin Jansa2024-05-231-1/+4
| | | | | | | | | | | | | * oe-npm-cache is now in UNPACKDIR not WORKDIR * fixes: http://errors.yoctoproject.org/Errors/Details/771012/ /OE/build/oe-core/tmp-glibc/work/x86_64-linux/nodejs-oe-cache-native/20.13/temp/run.do_configure.1268826: line 142: /OE/build/oe-core/tmp-glibc/work/x86_64-linux/nodejs-oe-cache-native/20.13/oe-npm-cache: No such file or directory * set S and UNPACKDIR to avoid this as well: WARNING: nodejs-oe-cache-native-20.13-r0 do_unpack: nodejs-oe-cache-native: the directory ${WORKDIR}/${BP} (/OE/build/oe-core/tmp-glibc/work/x86_64-linux/nodejs-oe-cache-native/20.13/nodejs-oe-cache-20.13) pointed to by the S variable doesn't exist - please set S within the recipe to point to where the source has been unpacked to Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: Upgrade to 20.13.0 releaseKhem Raj2024-05-093-2/+2
| | | | | | | | | | | nodejs release notes [1] License-Update: Copyright year changed for Unicode License [2] [1] https://nodejs.org/en/blog/release/v20.13.0 [2] https://github.com/nodejs/node/commit/d5a316f5ea3fade3140c2ae35c144b500fb5d758 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs-oe-cache: fix offline install of dependenciesMartin Hundebøll2024-05-031-1/+1
| | | | | | | | | | | | | | | | | | | Apparently, npm has changed its request accept header, so that cache lookup misses. This causes an ENOTCACHED error when doing the offline install in do_compile() from npm.bbclass. Fix it by updating the fake cache entry to match the newest behaviour from npm. Note that npm doesn't agree with itself, as it still uses the previous header value when doing `npm cache add <pkg>`, but the new value when doing `npm install <pkg>`. Bug submitted upstream: https://github.com/npm/cli/issues/7465 Signed-off-by: Martin Hundebøll <martin@geanix.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 20.11.1 -> 20.12.2Archana Polampalli2024-04-293-2/+2
| | | | | | | | | | | | | | | | | | License-Update: Copyright year updated zlib version updated GN files License update https://github.com/nodejs/node/commit/b5bc597871ca701bab750c46d31ed626decd7f89 https://github.com/nodejs/node/commit/c8233912e9fd7464898b549d6762130722bf0bf4 Changelog: https://github.com/nodejs/node/releases/tag/v20.12.2 https://github.com/nodejs/node/releases/tag/v20.12.1 https://github.com/nodejs/node/releases/tag/v20.12.0 Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: don't always disable io_uringChangqing Li2024-04-112-36/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | The original idea was always disable io_uring to avoid follwing failure even when UV_USE_IO_URING is set to true, refer [1][2]: 0608: try: *** 0609: update_hash(" %10s" % pwd.getpwuid(s.st_uid).pw_name) 0610: update_hash(" %10s" % grp.getgrgid(s.st_gid).gr_name) 0611: except KeyError as e: 0612: msg = ("KeyError: %s\nPath %s is owned by uid %d, gid %d, which doesn't match " 0613: "any user/group on target. This may be due to host contamination." % Exception: Exception: KeyError: 'getpwuid(): uid not found: 20561' But since 20.11.1, for fix CVE-2024-22017, io_uring is disabled by default, refer [3]. So maybe patch 0001-deps-disable-io_uring-support-in-libuv.patch is not needed. For case UV_USE_IO_URING is set to true, user can fix above failure by "chown root:root -R ${D}" in do_install. [1] https://lists.openembedded.org/g/openembedded-devel/message/105583 [2] https://bugzilla.yoctoproject.org/show_bug.cgi?id=15244 [3] https://github.com/nodejs/node/commit/686da19abbb83b7e01d48be19f832ab081b87084 [4] https://nvd.nist.gov/vuln/detail/CVE-2024-22017 Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 20.11.0 -> 20.11.1Changqing Li2024-03-044-5220/+37
| | | | | | | | | | | | | Drop patches for revert io_uring support in libuv: 0001-Revert-io_uring-changes-from-libuv-1.46.0.patch 0002-Revert-io_uring-changes-from-libuv-1.45.0.patch Change to just always disable io_uring in libuv, in this way, we don't have to pick out io_uring related changes and revert them when internal libuv upgraded. Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: update to latest v20 version 20.11.0Archana Polampalli2024-02-143-4/+2
| | | | | | | | | | | | | | | | | | | | | License-Update: update c-ares to 1.20.0 [1] Copyright update [2] Removed below patches as these are availbe in 20.11.0 0001-build-fix-build-with-Python-3.12.patch [3] 0001-gyp-resolve-python-3.12-issues.patch [4] Changelog: https://github.com/nodejs/node/releases/tag/v20.11.0 [1] https://github.com/nodejs/node/commit/b705e19a95b5fc5a2edc9fc11a7649d6eb32d70b [2] https://github.com/nodejs/node/commit/347e1dd06a5f927d9fd64ce72d776c56d5101910 [3] https://github.com/nodejs/node/commit/0a5e9c12cf961a56bd63005974b953bbc0bc62a7 [4] https://github.com/nodejs/node/commit/68ec1e5eeb4ff984868c625f0ce808210169360d Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: Set CVE_PRODUCT to "node.js"virendra thakur2024-02-091-0/+2
| | | | | | | Set CVE_PRODUCT to 'node.js' for nodjs recipe Signed-off-by: virendra thakur <virendrak@kpit.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: backport (partially) python 3.12 supportAlexander Kanavin2023-12-213-1/+121
| | | | | Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Revert "nodejs: backport (partially) python 3.12 support"Khem Raj2023-12-203-121/+1
| | | | This reverts commit f4bf27dbdb751aa146c9c23fc436358a2cc01d9b.
* nodejs: backport (partially) python 3.12 supportAlexander Kanavin2023-12-183-1/+121
| | | | | Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: Revert io_uring support from bundled libuv-1.46.0Martin Jansa2023-10-193-0/+5219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Pseudo fails to intercept some of the syscalls used by the new version as documented in: https://github.com/shr-project/com.webos.app.minimal/tree/recipes Now we have 3 options: 1) every use of nodejs-native where io_uring might be used (like in webpack) needs to export UV_USE_IO_URING=0 before using node, but be aware that the PR says it's only temporary and this variable might be removed in future. Unfortunately many people are lucky enough not to know what pseudo even is, so they might not realize that host-user-contamination QA issues or "KeyError: 'getpwuid(): uid not found" might be related to this (and they probably won't find this e-mail as well: https://lists.openembedded.org/g/openembedded-devel/message/105583 2) revert the io_uring changes from bundled libuv, to make sure it stays disabled. The changes are massive and it will be PIA to update them for every nodejs release I've already separated them for nodejs-20.3.0 where I've initialy tested this on top of libuv-1.45.0 and for 20.4.0 this need another patch for changes from libuv-1.46.0. Patch for keeping UV_USE_IO_URING support after it's removed from upstream libuv will be much smaller, but PIA to use UV_USE_IO_URING whenever using nodejs-native during build. 3) fix pseudo to correctly work with io_uring calls, definitely best long-term solution as more and more tools will now switch to io_uring, but without active maintainer of pseudo it might be _very_ difficult to implement this and there aren't many people willing to touch this beast. Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: update to latest v20 version 20.8.1Martin Jansa2023-10-181-2/+2
| | | | | | | | | | | | | | | | * updates to latest v20 version * LIC_FILES_CHKSUM changed due to small Copyright update from: https://github.com/nodejs/node/commit/660da785e687ab0517397616a9e55b5782582ff5 * this still doesn't resolve the issue with pseudo reported in: https://lists.openembedded.org/g/openembedded-devel/message/105308 and further debugged in: https://github.com/shr-project/com.webos.app.minimal/tree/recipes which shows that it's easily reproducible with plain webpack "Hello world". Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: Fix ptest result reportingKhem Raj2023-10-021-0/+5
| | | | | | | | | This fixes AssertionError:- ptests which had no test results: ['nodejs'] Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 18.17.1 -> 20.5.1Archana Polampalli2023-09-288-125/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update to latest release of latest LTS 20 release * node v20 introduces several new features and fixes many bugs and CVEs as shown in [1] * Refresh 0001-liftoff-Correct-function-signatures.patch against 20.5.1 * License-Update: - Change zlib version 1.2.13, October 13th, 2022 to version 1.2.13.1, October xxth, 2022 [2] - Change Copyright 2023 from Ada authors to Yagiz Nizipli and Daniel Lemire [4] * Remove big-endian.patch as it is merged in v20.x [5] [6] * Remove below list of patches since mips32 is deleted from v8 as part of update V8 to 10.7.193.13 [7] [8] - mips-less-memory.patch - 0001-mips-Use-32bit-cast-for-operand-on-mips32.patch * Update Using-native-binaries.patch for node_js2c, it resolved below do_compile error [9] Error: /bin/sh: line 1: build/tmp/work/core2-64-poky-linux/nodejs/20.5.1/node-v20.5.1/out/Release/node_js2c: No such file or directory * Remove obsolete dtrace & etw configure options (we had: --without-<feature>) from the recipe [10] https://github.com/nodejs/node/releases/tag/v20.5.1 [1] https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md [2] https://github.com/nodejs/node/commit/f1007325753e62b13083f6e9e499fdc33f753d7d [3] https://github.com/nodejs/node/commit/900ae1bda76caaa7213431a5268560b578ed2d55 [4] https://github.com/nodejs/node/commit/d2465369243bc4313d9840b62c2393c4f179ffbb [5] https://github.com/v8/v8/commit/3cea5d5425c3a0d7d1768b3758269ac98875de77 [6] https://github.com/nodejs/node/commit/f226350fcbebd4449fb0034fdaffa147e4de28ea [7] https://github.com/v8/v8/commit/a26ca5ed147dde47f02d70c5b38d8befc1c93cb3 [8] https://github.com/nodejs/node/commit/6bd756d7c6dfb7dc25daee329ad70df68c14223e [9] https://github.com/nodejs/node/commit/4da7bc915c714989eba7eab753db9eb9ebd8451a [10] https://github.com/nodejs/node/commit/aa3a572e6bee116cde69508dc29478b40f40551a Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: upgrade 18.17.0 -> 18.17.1Archana Polampalli2023-08-281-1/+1
| | | | | | | | | | | | | This is a security release. The following CVEs are fixed in this release: CVE-2023-32002 CVE-2023-32006 CVE-2023-32559 https://github.com/nodejs/node/releases/tag/v18.17.1 Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: Upgrade to 18.17.0Khem Raj2023-08-053-2/+2
| | | | | | | | | | | | Update to latest release of latest LTS 18 release License-Update: [1] [2] [3] [1] https://github.com/nodejs/node/commit/0cfdb3affa518bf55cfd8120f0286099fabfb22a [2] https://github.com/nodejs/node/commit/2ea6e030038d86376dea748f702ed14018f99aba [3] https://github.com/nodejs/node/commit/261e1d23d11053b373ea51745f6c1187440c2b08 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: use PIE for host binariesMartin Jansa2023-06-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * mksnapshot is built as host binary, but then gets executed under qemu-arm, because for 32bit target we need to run 32bit mksnapshot even when building on x86-64 host * unfortunately since upgrade to qemu-8 in: https://git.openembedded.org/openembedded-core/commit/?id=fe8125565af07b73f9b29db2188ecb6e884bcc70 the mksnapshot fails to execute with: LD_LIBRARY_PATH=/OE/build/oe-core/tmp-glibc/work/cortexa8t2hf-neon-oe-linux-gnueabi/nodejs/18.16.0-r0/node-v18.16.0/out/Release/lib.host:/OE/build/oe-core/tmp-glibc/work/cortexa8t2hf-neon-oe-linux-gnueabi/nodejs/18.16.0-r0/node-v18.16.0/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../tools/v8_gypfiles; mkdir -p /OE/build/oe-core/tmp-glibc/work/cortexa8t2hf-neon-oe-linux-gnueabi/nodejs/18.16.0-r0/node-v18.16.0/out/Release/obj.target/v8_snapshot/geni; "/OE/build/oe-core/tmp-glibc/work/cortexa8t2hf-neon-oe-linux-gnueabi/nodejs/18.16.0-r0/node-v18.16.0/out/Release/v8-qemu-wrapper.sh" "/OE/build/oe-core/tmp-glibc/work/cortexa8t2hf-neon-oe-linux-gnueabi/nodejs/18.16.0-r0/node-v18.16.0/out/Release/mksnapshot" --turbo_instruction_scheduling "--target_os=linux" "--target_arch=arm" --startup_src "/OE/build/oe-core/tmp-glibc/work/cortexa8t2hf-neon-oe-linux-gnueabi/nodejs/18.16.0-r0/node-v18.16.0/out/Release/obj.target/v8_snapshot/geni/snapshot.cc" --embedded_variant Default --embedded_src "/OE/build/oe-core/tmp-glibc/work/cortexa8t2hf-neon-oe-linux-gnueabi/nodejs/18.16.0-r0/node-v18.16.0/out/Release/obj.target/v8_snapshot/geni/embedded.S" --no-native-code-counters # # Fatal process OOM in Failed to reserve virtual memory for CodeRange # /OE/build/oe-core/tmp-glibc/work/cortexa8t2hf-neon-oe-linux-gnueabi/nodejs/18.16.0-r0/node-v18.16.0/out/Release/v8-qemu-wrapper.sh: line 7: 669880 Trace/breakpoint trap (core dumped) PSEUDO_UNLOAD=1 qemu-arm -r 5.15 -L /OE/build/oe-core/tmp-glibc/work/cortexa8t2hf-neon-oe-linux-gnueabi/nodejs/18.16.0-r0/recipe-sysroot -E LD_LIBRARY_PATH=/OE/build/oe-core/tmp-glibc/work/cortexa8t2hf-neon-oe-linux-gnueabi/nodejs/18.16.0-r0/recipe-sysroot/usr/lib:/OE/build/oe-core/tmp-glibc/work/cortexa8t2hf-neon-oe-linux-gnueabi/nodejs/18.16.0-r0/recipe-sysroot/lib "$@" It was failing only in some of my builds first, in the end I was able to narrow the difference between the build where it fails and where it doesn't fail to require conf/distro/include/security_flags.inc then GCCPIE = "--enable-default-pie" and lastly this PIE enabled just for nodejs to work around this issue without downgrading qemu-native. * using -strace with qemu doesn't help much, just confirms that the OOM error message is really caused by failed mmap2: --- SIGPROF {si_signo=SIGPROF, si_code=SI_TKILL, si_pid=2908258, si_uid=1026} --- clock_gettime64(CLOCK_MONOTONIC,0x407ef640) = 0 ({tv_sec=20187,tv_nsec=678404286}) rt_sigreturn(0x407efb70) = -1 errno=513 (Successful exit from sigreturn) write(3,0x141e538,28) = 28 write(3,0x141e538,28) = 28 write(3,0x141e538,32) = 32 mmap2(0x0097a000,33554432,PROT_NONE,MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE,-1,0) = -1 errno=12 (Cannot allocate memory) mmap2(0x0097a000,33554432,PROT_NONE,MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE,-1,0) = -1 errno=12 (Cannot allocate memory) * diffoscope on this 1.7G binary didn't really help as it got killed by OOMK after a while Out of memory: Killed process 1136999 (diffoscope) total-vm:404300108kB, anon-rss:122594688kB, file-rss:512kB, shmem-rss:0kB, UID:1026 pgtables:764240kB oom_score_adj:0 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* *.patch: add Upstream-Status to all patchesMartin Jansa2023-06-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is new patch-status QA check in oe-core: https://git.openembedded.org/openembedded-core/commit/?id=76a685bfcf927593eac67157762a53259089ea8a This is temporary work around just to hide _many_ warnings from optional patch-status (if you add it to WARN_QA). This just added Upstream-Status: Pending everywhere without actually investigating what's the proper status. This is just to hide current QA warnings and to catch new .patch files being added without Upstream-Status, but the number of Pending patches is now terrible: 5 (26%) meta-xfce 6 (50%) meta-perl 15 (42%) meta-webserver 21 (36%) meta-gnome 25 (57%) meta-filesystems 26 (43%) meta-initramfs 45 (45%) meta-python 47 (55%) meta-multimedia 312 (63%) meta-networking 756 (61%) meta-oe Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: Upgrade to 18.16.0Khem Raj2023-05-104-3/+3
| | | | | | | | | | | License-Update: Add missing licenses for Ada [1] BSD, Simduf [2] BSD, posteject [3] MIT [1] https://github.com/nodejs/node/commit/0bc4c17e5705ea042cda392343d7301bb91873ed [2] https://github.com/nodejs/node/commit/c9845fc3341fcdce298ad7f1630e329d71a6e746 [3] https://github.com/nodejs/node/commit/4aaec0726694ad0d3cb05d7f2593a90363c32f32 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Nodejs: add missing run_ptest scriptArchana Polampalli2023-03-252-0/+4
| | | | | | | ptest-runner is not available for Nodejs on target hence added run-ptest script Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: package-split between nodejs and nodejs-npmJan Feemers2023-03-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | The nodejs package contains a symbolic link `/usr/bin/corepack` to a file from the nodejs-npm package. ```shell build/tmp/work/core2-64-poky-linux/nodejs/18.14.2-r0/packages-split/nodejs/usr/bin$ ls -l total 31932 lrwxrwxrwx 1 jan jan 45 Feb 21 05:08 corepack -> ../lib/node_modules/corepack/dist/corepack.js -rwxr-xr-x 2 jan jan 32694304 Feb 21 05:08 node build/tmp/work/core2-64-poky-linux/nodejs/18.14.2-r0/packages-split/nodejs-npm/usr/lib/node_modules/corepack/dist$ ls -l total 2428 -rwxr-xr-x 2 jan jan 614216 Feb 21 05:08 corepack.js ``` Due to the link, the build system detects a dependency from package `nodejs` to package `nodejs-npm`. Since the `nodejs-npm` package depends on plenty more packages the link should be moved to the `nodejs-npm` package. Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: Depend on file-nativeKhem Raj2023-03-141-1/+3
| | | | | | | | | | | | | | | | | | | | | | | Some older distribution e.g. alma8 has a version of file utility which is version 5.33 but more importantly missing this patch [1] from version 5.40 which causes package failures in wasm files e.g. ERROR: nodejs-18.14.2-r0 do_package: Fatal errors occurred in subprocesses: Command '['file', '-b', '/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/nodejs/18.14.2-r0/package/usr/lib/nodejs/ptest/test/wasi/wasm/write_file.wasm']' returned non-zero exit status 1. Subprocess output:ERROR: Bad magic format `version %#x (MVP)' (bad format char: #) Command '['file', '-b', '/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/nodejs/18.14.2-r0/package/usr/lib/nodejs/ptest/test/wasi/wasm/symlink_loop.wasm']' returned non-zero exit status 1. Subprocess output:ERROR: Bad magic format `version %#x (MVP)' (bad format char: #) Command '['file', '-b', '/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/nodejs/18.14.2-r0/package/usr/lib/nodejs/ptest/test/wasi/wasm/notdir.wasm']' returned non-zero exit status 1. Subprocess output:ERROR: Bad magic format `version %#x (MVP)' (bad format char: #) Command '['file', '-b', '/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/nodejs/18.14.2-r0/package/usr/lib/nodejs/ptest/test/wasi/wasm/preopen_populates.wasm']' returned non-zero exit status 1. Subprocess output:ERROR: Bad magic format `version %#x (MVP)' (bad format char: #) Command '['file', '-b', '/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/nodejs/18.14.2-r0/package/usr/lib/nodejs/ptest/test/wasi/wasm/clock_getres.wasm']' returned non-zero exit status 1. Subprocess output:ERROR: Bad magic format `version %#x (MVP)' (bad format char: #) Command '['file', '-b', '/home/pokybuild/yocto-worker/meta-oe/build/build/tmp/work/core2-64-poky-linux/nodejs/18.14.2-r0/package/usr/lib/nodejs/ptest/test/wasi/wasm/main_args.wasm']' returned non-zero exit status 1. [1] https://github.com/file/file/commit/85b7ab83257b3191a1a7ca044589a092bcef2bb3 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: Upgrade to 18.14.2Khem Raj2023-03-045-78/+5
| | | | | | | | | License-Update: Add base64 license information [1] and postject [2] [1] https://github.com/nodejs/node/commit/2ec8092e2cf70267e765dfe4baf13d72838a58ed [2] https://github.com/nodejs/node/commit/4aaec0726694ad0d3cb05d7f2593a90363c32f32 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: remove redundant commentRoss Burton2023-02-241-2/+0
| | | | | | | This commented-out assignment should have been removed in 3ff0235. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: no need to stage binaries for targetRoss Burton2023-02-221-13/+0
| | | | | | | | Target nodejs doesn't depend on nodejs-native to build anymore, so there is no need to stage these binaries. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: remove LD assignmentRoss Burton2023-02-221-2/+2
| | | | | | | | | | | The purpose of this appears to have been lost, and the build succeeds without it. If it is needed, then it should be added to EXTRA_OEMAKE alongside the CC and CXX assignments. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nodejs: don't force cross-compilation in native buildsRoss Burton2023-02-221-1/+5
| | | | | | | | | | By not forcing the cross-compile build logic in native builds the build is a _lot_ faster. Walltime in buildstats-diff on my machine: nodejs-native do_compile -475.6s -41.2% 1153.4s -> 677.7s Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>