Sat Dec 3 17:07:13 2022 UTC ()
nodejs: updated to 19.2.0

Version 19.2.0 (Current)

Notable changes

Time zone update

Time zone data has been updated to 2022f. This includes changes to Daylight Savings Time (DST) for Fiji and Mexico. For more information, see https://mm.icann.org/pipermail/tz-announce/2022-October/000075.html.

Version 19.1.0 (Current)

Notable changes

Support function mocking on Node.js test runner
fs.watch recursive support on Linux

Version 19.0.1 (Current)

This is a security release.

Notable changes

The following CVEs are fixed in this release:

CVE-2022-3602: X.509 Email Address 4-byte Buffer Overflow (High)
CVE-2022-3786: X.509 Email Address Variable Length Buffer Overflow (High)
CVE-2022-43548: DNS rebinding in --inspect via invalid octal IP address (Medium)

Version 19.0.0 (Current)

Node.js 19 is here! Highlights include the update of the V8 JavaScript engine to 10.7, HTTP(s)/1.1 KeepAlive enabled by default, and ESM Resolution adjusts.

Node.js 19 will replace Node.js 18 as our 窶呂urrent窶� release line when Node.js 18 enters long-term support (LTS) later this month. As per the release schedule, Node.js 19 will be 窶呂urrent' release for the next 6 months, until April 2023.


(adam)
diff -r1.247 -r1.248 pkgsrc/lang/nodejs/Makefile
diff -r1.47 -r1.48 pkgsrc/lang/nodejs/Makefile.common
diff -r1.68 -r1.69 pkgsrc/lang/nodejs/PLIST
diff -r1.226 -r1.227 pkgsrc/lang/nodejs/distinfo
diff -r1.12 -r1.13 pkgsrc/lang/nodejs/nodeversion.mk
diff -r1.14 -r1.15 pkgsrc/lang/nodejs/options.mk
diff -r0 -r1.1 pkgsrc/lang/nodejs/patches/patch-deps_v8_src_base_platform_memory.h
diff -r0 -r1.1 pkgsrc/lang/nodejs/patches/patch-deps_v8_tools_profiling_run-llprof.sh
diff -r1.10 -r1.11 pkgsrc/lang/nodejs/patches/patch-deps_v8_src_base_platform_platform-posix.cc
diff -r1.1 -r0 pkgsrc/lang/nodejs/patches/patch-deps_v8_tools_run-llprof.sh
diff -r1.3 -r1.4 pkgsrc/lang/nodejs/patches/patch-tools_v8_gypfiles_v8.gyp

cvs diff -r1.247 -r1.248 pkgsrc/lang/nodejs/Makefile (expand / switch to unified diff)

--- pkgsrc/lang/nodejs/Makefile 2022/11/23 12:09:44 1.247
+++ pkgsrc/lang/nodejs/Makefile 2022/12/03 17:07:13 1.248
@@ -1,33 +1,36 @@ @@ -1,33 +1,36 @@
1# $NetBSD: Makefile,v 1.247 2022/11/23 12:09:44 adam Exp $ 1# $NetBSD: Makefile,v 1.248 2022/12/03 17:07:13 adam Exp $
2 2
3DISTNAME= node-v18.12.1 3DISTNAME= node-v19.2.0
4EXTRACT_SUFX= .tar.xz 4EXTRACT_SUFX= .tar.xz
5 5
6USE_LANGUAGES= c gnu++17 6USE_LANGUAGES= c gnu++17
7 7
8BUILD_DEPENDS+= ${PYPKGPREFIX}-expat>=0:../../textproc/py-expat 8BUILD_DEPENDS+= ${PYPKGPREFIX}-expat>=0:../../textproc/py-expat
9 9
10.include "../../mk/bsd.prefs.mk" 10.include "../../mk/bsd.prefs.mk"
11 11
12# XXX: figure out a way to add rpaths to torque 12# XXX: figure out a way to add rpaths to torque
13MAKE_ENV+= LD_LIBRARY_PATH=${PREFIX}/lib 13MAKE_ENV+= LD_LIBRARY_PATH=${PREFIX}/lib
14 14
15CONFIGURE_ARGS+= --shared-brotli 15CONFIGURE_ARGS+= --shared-brotli
16CONFIGURE_ARGS+= --shared-nghttp2 16CONFIGURE_ARGS+= --shared-nghttp2
 17CONFIGURE_ARGS+= --shared-nghttp3
 18CONFIGURE_ARGS+= --shared-ngtcp2
17CONFIGURE_ARGS+= --with-intl=system-icu 19CONFIGURE_ARGS+= --with-intl=system-icu
18 20
19PYTHON_VERSIONS_INCOMPATIBLE= 27 311 21PYTHON_VERSIONS_INCOMPATIBLE= 27
20 22
 23CHECK_PORTABILITY_SKIP+= deps/uv/autogen.sh
21CHECK_PORTABILITY_SKIP+= deps/v8/tools/cppgc/export_to_github.sh 24CHECK_PORTABILITY_SKIP+= deps/v8/tools/cppgc/export_to_github.sh
22CHECK_PORTABILITY_SKIP+= deps/v8/tools/cppgc/test_cmake.sh 25CHECK_PORTABILITY_SKIP+= deps/v8/tools/cppgc/test_cmake.sh
23CHECK_PORTABILITY_SKIP+= tools/macos-installer/pkgbuild/npm/scripts/preinstall 26CHECK_PORTABILITY_SKIP+= tools/macos-installer/pkgbuild/npm/scripts/preinstall
24 27
25REPLACE_NODEJS+= deps/corepack/dist/*.js 28REPLACE_NODEJS+= deps/corepack/dist/*.js
26.include "../../lang/nodejs/application.mk" 29.include "../../lang/nodejs/application.mk"
27CHECK_INTERPRETER_SKIP+= lib/node_modules/corepack/shims/*.ps1 30CHECK_INTERPRETER_SKIP+= lib/node_modules/corepack/shims/*.ps1
28 31
29.if ${MACHINE_ARCH} == "i386" 32.if ${MACHINE_ARCH} == "i386"
30# required for SSE2 code under i386. 33# required for SSE2 code under i386.
31CXXFLAGS+= -mstackrealign 34CXXFLAGS+= -mstackrealign
32.endif 35.endif
33 36
@@ -37,19 +40,21 @@ minusx: @@ -37,19 +40,21 @@ minusx:
37 ${CHMOD} -x ${DESTDIR}${PREFIX}/lib/node_modules/corepack/shims/*.cmd 40 ${CHMOD} -x ${DESTDIR}${PREFIX}/lib/node_modules/corepack/shims/*.cmd
38 41
39.include "options.mk" 42.include "options.mk"
40 43
41# Node turns on -latomic for arm, mips and ppc. 44# Node turns on -latomic for arm, mips and ppc.
42.if ${MACHINE_ARCH:M*arm*} || \ 45.if ${MACHINE_ARCH:M*arm*} || \
43 ${MACHINE_ARCH:M*powerpc*} || \ 46 ${MACHINE_ARCH:M*powerpc*} || \
44 ${MACHINE_ARCH:M*mips*} 47 ${MACHINE_ARCH:M*mips*}
45.include "../../devel/libatomic/buildlink3.mk" 48.include "../../devel/libatomic/buildlink3.mk"
46.endif 49.endif
47 50
48.include "../../lang/nodejs/Makefile.common" 51.include "../../lang/nodejs/Makefile.common"
49.include "../../archivers/brotli/buildlink3.mk" 52.include "../../archivers/brotli/buildlink3.mk"
 53.include "../../net/ngtcp2/buildlink3.mk"
50.include "../../textproc/icu/buildlink3.mk" 54.include "../../textproc/icu/buildlink3.mk"
51# Requires nghttp2_option_set_max_settings 55# Requires nghttp2_option_set_max_settings
52BUILDLINK_API_DEPENDS.nghttp2+= nghttp2>=1.41.0 56BUILDLINK_API_DEPENDS.nghttp2+= nghttp2>=1.41.0
53.include "../../www/nghttp2/buildlink3.mk" 57.include "../../www/nghttp2/buildlink3.mk"
 58.include "../../www/nghttp3/buildlink3.mk"
54.include "../../mk/atomic64.mk" 59.include "../../mk/atomic64.mk"
55.include "../../mk/bsd.pkg.mk" 60.include "../../mk/bsd.pkg.mk"

cvs diff -r1.47 -r1.48 pkgsrc/lang/nodejs/Makefile.common (expand / switch to unified diff)

--- pkgsrc/lang/nodejs/Makefile.common 2022/11/01 17:58:22 1.47
+++ pkgsrc/lang/nodejs/Makefile.common 2022/12/03 17:07:13 1.48
@@ -1,18 +1,18 @@ @@ -1,18 +1,18 @@
1# $NetBSD: Makefile.common,v 1.47 2022/11/01 17:58:22 schmonz Exp $ 1# $NetBSD: Makefile.common,v 1.48 2022/12/03 17:07:13 adam Exp $
2# used by lang/nodejs/Makefile 2# used by lang/nodejs/Makefile
3# used by lang/nodejs12/Makefile 
4# used by lang/nodejs14/Makefile 3# used by lang/nodejs14/Makefile
5# used by lang/nodejs16/Makefile 4# used by lang/nodejs16/Makefile
 5# used by lang/nodejs18/Makefile
6 6
7CATEGORIES= lang 7CATEGORIES= lang
8MASTER_SITES= https://nodejs.org/dist/${DISTNAME:S/node-//}/ 8MASTER_SITES= https://nodejs.org/dist/${DISTNAME:S/node-//}/
9PKGNAME= ${DISTNAME:S/-v/js-/} 9PKGNAME= ${DISTNAME:S/-v/js-/}
10 10
11MAINTAINER= pkgsrc-users@NetBSD.org 11MAINTAINER= pkgsrc-users@NetBSD.org
12HOMEPAGE= https://nodejs.org/ 12HOMEPAGE= https://nodejs.org/
13COMMENT= V8 JavaScript for clients and servers 13COMMENT= V8 JavaScript for clients and servers
14LICENSE= mit 14LICENSE= mit
15 15
16HAS_CONFIGURE= yes 16HAS_CONFIGURE= yes
17USE_TOOLS+= bash gmake pkg-config 17USE_TOOLS+= bash gmake pkg-config
18 18

cvs diff -r1.68 -r1.69 pkgsrc/lang/nodejs/PLIST (expand / switch to unified diff)

--- pkgsrc/lang/nodejs/PLIST 2022/11/01 17:58:22 1.68
+++ pkgsrc/lang/nodejs/PLIST 2022/12/03 17:07:13 1.69
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.68 2022/11/01 17:58:22 schmonz Exp $ 1@comment $NetBSD: PLIST,v 1.69 2022/12/03 17:07:13 adam Exp $
2bin/corepack 2bin/corepack
3bin/node 3bin/node
4include/node/common.gypi 4include/node/common.gypi
5include/node/config.gypi 5include/node/config.gypi
6include/node/cppgc/common.h 6include/node/cppgc/common.h
7include/node/js_native_api.h 7include/node/js_native_api.h
8include/node/js_native_api_types.h 8include/node/js_native_api_types.h
9include/node/libplatform/libplatform-export.h 9include/node/libplatform/libplatform-export.h
10include/node/libplatform/libplatform.h 10include/node/libplatform/libplatform.h
11include/node/libplatform/v8-tracing.h 11include/node/libplatform/v8-tracing.h
12include/node/node.h 12include/node/node.h
13include/node/node_api.h 13include/node/node_api.h
14include/node/node_api_types.h 14include/node/node_api_types.h
@@ -54,27 +54,26 @@ include/node/v8-script.h @@ -54,27 +54,26 @@ include/node/v8-script.h
54include/node/v8-snapshot.h 54include/node/v8-snapshot.h
55include/node/v8-statistics.h 55include/node/v8-statistics.h
56include/node/v8-template.h 56include/node/v8-template.h
57include/node/v8-traced-handle.h 57include/node/v8-traced-handle.h
58include/node/v8-typed-array.h 58include/node/v8-typed-array.h
59include/node/v8-unwinder.h 59include/node/v8-unwinder.h
60include/node/v8-value-serializer.h 60include/node/v8-value-serializer.h
61include/node/v8-value.h 61include/node/v8-value.h
62include/node/v8-version.h 62include/node/v8-version.h
63include/node/v8-wasm.h 63include/node/v8-wasm.h
64include/node/v8-weak-callback-info.h 64include/node/v8-weak-callback-info.h
65include/node/v8.h 65include/node/v8.h
66include/node/v8config.h 66include/node/v8config.h
67${PLIST.dtrace}lib/dtrace/node.d 
68lib/node_modules/corepack/CHANGELOG.md 67lib/node_modules/corepack/CHANGELOG.md
69lib/node_modules/corepack/LICENSE.md 68lib/node_modules/corepack/LICENSE.md
70lib/node_modules/corepack/README.md 69lib/node_modules/corepack/README.md
71lib/node_modules/corepack/dist/corepack.js 70lib/node_modules/corepack/dist/corepack.js
72lib/node_modules/corepack/dist/npm.js 71lib/node_modules/corepack/dist/npm.js
73lib/node_modules/corepack/dist/npx.js 72lib/node_modules/corepack/dist/npx.js
74lib/node_modules/corepack/dist/pnpm.js 73lib/node_modules/corepack/dist/pnpm.js
75lib/node_modules/corepack/dist/pnpx.js 74lib/node_modules/corepack/dist/pnpx.js
76lib/node_modules/corepack/dist/vcc.js 75lib/node_modules/corepack/dist/vcc.js
77lib/node_modules/corepack/dist/vendors-_yarn_berry_cache_proxy-agent-npm-5_0_0-41772f4b01-9_zip_node_modules_proxy-agent_index_js.js 76lib/node_modules/corepack/dist/vendors-_yarn_berry_cache_proxy-agent-npm-5_0_0-41772f4b01-9_zip_node_modules_proxy-agent_index_js.js
78lib/node_modules/corepack/dist/yarn.js 77lib/node_modules/corepack/dist/yarn.js
79lib/node_modules/corepack/dist/yarnpkg.js 78lib/node_modules/corepack/dist/yarnpkg.js
80lib/node_modules/corepack/package.json 79lib/node_modules/corepack/package.json
@@ -113,14 +112,13 @@ lib/node_modules/corepack/shims/pnpm.cmd @@ -113,14 +112,13 @@ lib/node_modules/corepack/shims/pnpm.cmd
113lib/node_modules/corepack/shims/pnpm.ps1 112lib/node_modules/corepack/shims/pnpm.ps1
114lib/node_modules/corepack/shims/pnpx 113lib/node_modules/corepack/shims/pnpx
115lib/node_modules/corepack/shims/pnpx.cmd 114lib/node_modules/corepack/shims/pnpx.cmd
116lib/node_modules/corepack/shims/pnpx.ps1 115lib/node_modules/corepack/shims/pnpx.ps1
117lib/node_modules/corepack/shims/yarn 116lib/node_modules/corepack/shims/yarn
118lib/node_modules/corepack/shims/yarn.cmd 117lib/node_modules/corepack/shims/yarn.cmd
119lib/node_modules/corepack/shims/yarn.ps1 118lib/node_modules/corepack/shims/yarn.ps1
120lib/node_modules/corepack/shims/yarnpkg 119lib/node_modules/corepack/shims/yarnpkg
121lib/node_modules/corepack/shims/yarnpkg.cmd 120lib/node_modules/corepack/shims/yarnpkg.cmd
122lib/node_modules/corepack/shims/yarnpkg.ps1 121lib/node_modules/corepack/shims/yarnpkg.ps1
123man/man1/node.1 122man/man1/node.1
124share/doc/node/gdbinit 123share/doc/node/gdbinit
125share/doc/node/lldb_commands.py 124share/doc/node/lldb_commands.py
126share/systemtap/tapset/node.stp 

cvs diff -r1.226 -r1.227 pkgsrc/lang/nodejs/distinfo (expand / switch to unified diff)

--- pkgsrc/lang/nodejs/distinfo 2022/11/23 12:09:44 1.226
+++ pkgsrc/lang/nodejs/distinfo 2022/12/03 17:07:13 1.227
@@ -1,27 +1,28 @@ @@ -1,27 +1,28 @@
1$NetBSD: distinfo,v 1.226 2022/11/23 12:09:44 adam Exp $ 1$NetBSD: distinfo,v 1.227 2022/12/03 17:07:13 adam Exp $
2 2
3BLAKE2s (node-v18.12.1.tar.xz) = 04149195afca2ed0d9582e7ad1bcd1c2618fed8d2b04eed9beb27da18b1663d0 3BLAKE2s (node-v19.2.0.tar.xz) = 61e9c32e553d3bc39e403f67737c30389d2d07936ab3a1e7c1ff6cdae363486b
4SHA512 (node-v18.12.1.tar.xz) = 1eb4978a1de19c026561a8484df87bdeb6f7f2ec8ae1eb38b6241d0b0ff6158a4a7d19f42df7e295a63b8047eaf862a7470494143b2e27bb36b65e4663966588 4SHA512 (node-v19.2.0.tar.xz) = 2d60d3a5dff578e37ccfe5bcfa727401d39201652d447c01faa84f7b34deb0fca3cec4b7ef7c442fcd7399d39cd7ee8612f0e12b611998253efa7333fc2435e4
5Size (node-v18.12.1.tar.xz) = 38454588 bytes 5Size (node-v19.2.0.tar.xz) = 39544708 bytes
6SHA1 (patch-common.gypi) = 80f3645498853b9939167d152365b4fa49528b70 6SHA1 (patch-common.gypi) = 80f3645498853b9939167d152365b4fa49528b70
7SHA1 (patch-deps_cares_cares.gyp) = 22b44f2ac59963f694dfe4f4585e08960b3dec32 7SHA1 (patch-deps_cares_cares.gyp) = 22b44f2ac59963f694dfe4f4585e08960b3dec32
8SHA1 (patch-deps_uv_common.gypi) = d38a9c8d9e3522f15812aec2f5b1e1e636d4bab3 8SHA1 (patch-deps_uv_common.gypi) = d38a9c8d9e3522f15812aec2f5b1e1e636d4bab3
9SHA1 (patch-deps_uvwasi_include_wasi__serdes.h) = 32b85ef5824b96b35aba9280bbe7aa7899d9e5cf 9SHA1 (patch-deps_uvwasi_include_wasi__serdes.h) = 32b85ef5824b96b35aba9280bbe7aa7899d9e5cf
 10SHA1 (patch-deps_v8_src_base_platform_memory.h) = 0921b5eeecfe03b774f85a15628c559901e7fea8
10SHA1 (patch-deps_v8_src_base_platform_platform-freebsd.cc) = b47025f33d2991275bbcd15dbabb28900afab0e1 11SHA1 (patch-deps_v8_src_base_platform_platform-freebsd.cc) = b47025f33d2991275bbcd15dbabb28900afab0e1
11SHA1 (patch-deps_v8_src_base_platform_platform-openbsd.cc) = 5e593879dbab095f99e82593272a0de91043f9a8 12SHA1 (patch-deps_v8_src_base_platform_platform-openbsd.cc) = 5e593879dbab095f99e82593272a0de91043f9a8
12SHA1 (patch-deps_v8_src_base_platform_platform-posix.cc) = 0fdbc003d63429e9e097531d7848d16011f273a8 13SHA1 (patch-deps_v8_src_base_platform_platform-posix.cc) = d37e796302edeae98520d040e100d0b73c6bcb19
13SHA1 (patch-deps_v8_src_base_platform_semaphore.cc) = 802a95f1b1d131e0d85c1f99c659cc68b31ba2f6 14SHA1 (patch-deps_v8_src_base_platform_semaphore.cc) = 802a95f1b1d131e0d85c1f99c659cc68b31ba2f6
14SHA1 (patch-deps_v8_src_base_strings.h) = 4d2b37491f2f74f1a573f8c1942790204e23a8bb 15SHA1 (patch-deps_v8_src_base_strings.h) = 4d2b37491f2f74f1a573f8c1942790204e23a8bb
15SHA1 (patch-deps_v8_src_codegen_arm_cpu-arm.cc) = 84c75d61bc99c2ff9adeac3152f5b11ebb0e582b 16SHA1 (patch-deps_v8_src_codegen_arm_cpu-arm.cc) = 84c75d61bc99c2ff9adeac3152f5b11ebb0e582b
16SHA1 (patch-deps_v8_src_common_globals.h) = 86637724864389f2b24251904de41669a2f00fbc 17SHA1 (patch-deps_v8_src_common_globals.h) = 86637724864389f2b24251904de41669a2f00fbc
17SHA1 (patch-deps_v8_src_compiler_types.h) = 2a212282ab9d71e98ae56827fdb1d9778a6047a5 18SHA1 (patch-deps_v8_src_compiler_types.h) = 2a212282ab9d71e98ae56827fdb1d9778a6047a5
18SHA1 (patch-deps_v8_src_heap_code-range.cc) = b281f76f4e3d8e562f596235049a6be7c5ff4de2 19SHA1 (patch-deps_v8_src_heap_code-range.cc) = b281f76f4e3d8e562f596235049a6be7c5ff4de2
19SHA1 (patch-deps_v8_tools_run-llprof.sh) = 39aa3faf77492ef8dd35b411b7b0e4605b469af3 20SHA1 (patch-deps_v8_tools_profiling_run-llprof.sh) = b19994d3195cc97424a3cc2ffd3ae02eacc6ffa8
20SHA1 (patch-node.gypi) = 4a104dba6c22702211009bc60a6be6f87554e2fa 21SHA1 (patch-node.gypi) = 4a104dba6c22702211009bc60a6be6f87554e2fa
21SHA1 (patch-src_crypto_crypto__rsa.cc) = 9ffd8de2fac76014696c8dfac7ba200eab56f6f6 22SHA1 (patch-src_crypto_crypto__rsa.cc) = 9ffd8de2fac76014696c8dfac7ba200eab56f6f6
22SHA1 (patch-src_inspector__agent.cc) = 3fd3d71f9d6013a6eb2a79e0442b31d2e2408a2f 23SHA1 (patch-src_inspector__agent.cc) = 3fd3d71f9d6013a6eb2a79e0442b31d2e2408a2f
23SHA1 (patch-src_node__postmortem__metadata.cc) = 9938482d724ad6636af5dc3fa719ec26ed8539ff 24SHA1 (patch-src_node__postmortem__metadata.cc) = 9938482d724ad6636af5dc3fa719ec26ed8539ff
24SHA1 (patch-tools_gyp_pylib_gyp_generator_make.py) = 570fe9889767c555468a225cd7f0b398ea6a193c 25SHA1 (patch-tools_gyp_pylib_gyp_generator_make.py) = 570fe9889767c555468a225cd7f0b398ea6a193c
25SHA1 (patch-tools_gyp_pylib_gyp_xcode__emulation.py) = 4ee24115f5e97ffbd23aaa6dc62f408d381d4e22 26SHA1 (patch-tools_gyp_pylib_gyp_xcode__emulation.py) = 4ee24115f5e97ffbd23aaa6dc62f408d381d4e22
26SHA1 (patch-tools_install.py) = c01515e3001bebd50f12bcada548f1cc0c25a49f 27SHA1 (patch-tools_install.py) = c01515e3001bebd50f12bcada548f1cc0c25a49f
27SHA1 (patch-tools_v8_gypfiles_v8.gyp) = 997748c6663e7931ead02ee47654933ec051e688 28SHA1 (patch-tools_v8_gypfiles_v8.gyp) = 8b1b0e2216f9e8025f8e623d5aa8af3f8d670804

cvs diff -r1.12 -r1.13 pkgsrc/lang/nodejs/nodeversion.mk (expand / switch to unified diff)

--- pkgsrc/lang/nodejs/nodeversion.mk 2022/05/05 13:31:16 1.12
+++ pkgsrc/lang/nodejs/nodeversion.mk 2022/12/03 17:07:13 1.13
@@ -1,74 +1,74 @@ @@ -1,74 +1,74 @@
1# $NetBSD: nodeversion.mk,v 1.12 2022/05/05 13:31:16 gutteridge Exp $ 1# $NetBSD: nodeversion.mk,v 1.13 2022/12/03 17:07:13 adam Exp $
2 2
3# This file determines which nodejs version is used as a dependency for 3# This file determines which nodejs version is used as a dependency for
4# a package. 4# a package.
5# 5#
6# === User-settable variables === 6# === User-settable variables ===
7# 7#
8# NODE_VERSION_DEFAULT 8# NODE_VERSION_DEFAULT
9# The preferred node version to use. 9# The preferred node version to use.
10# 10#
11# Possible values: 12 14 16 18 11# Possible values: 14 16 18 19
12# Default: 16 12# Default: 16
13# 13#
14# === Infrastructure variables === 14# === Infrastructure variables ===
15# 15#
16# NODE_VERSION_REQD 16# NODE_VERSION_REQD
17# node version to use. This variable should not be set by 17# node version to use. This variable should not be set by
18# packages. Normally it is used by bulk build tools. 18# packages. Normally it is used by bulk build tools.
19# 19#
20# Possible values: ${NODE_VERSIONS_ACCEPTED} 20# Possible values: ${NODE_VERSIONS_ACCEPTED}
21# Default: ${NODE_VERSION_DEFAULT} 21# Default: ${NODE_VERSION_DEFAULT}
22# 22#
23# === Package-settable variables === 23# === Package-settable variables ===
24# 24#
25# NODE_VERSIONS_ACCEPTED 25# NODE_VERSIONS_ACCEPTED
26# The node versions that the package can build against. Order 26# The node versions that the package can build against. Order
27# is significant; those listed earlier are preferred over those 27# is significant; those listed earlier are preferred over those
28# listed later. 28# listed later.
29# 29#
30# Possible values: 12 14 16 18 30# Possible values: 14 16 18 19
31# Default: 12 14 16 18 31# Default: 14 16 18 19
32# 32#
33# NODE_VERSIONS_INCOMPATIBLE 33# NODE_VERSIONS_INCOMPATIBLE
34# The node versions that the package *cannot* build against. 34# The node versions that the package *cannot* build against.
35# 35#
36# Possible values: 12 14 16 18 36# Possible values: 14 16 18 19
37# Default: <empty> 37# Default: <empty>
38# 38#
39# Keywords: node 39# Keywords: node
40# 40#
41 41
42.if !defined (NODEJS_NODEVERSION_MK) 42.if !defined (NODEJS_NODEVERSION_MK)
43NODEJS_NODEVERSION_MK= # defined 43NODEJS_NODEVERSION_MK= # defined
44 44
45# derive a node version from the package name if possible 45# derive a node version from the package name if possible
46# optionally handled quoted package names 46# optionally handled quoted package names
47.if defined(PKGNAME_REQD) && !empty(PKGNAME_REQD:Mnode[0-9]-*) || \ 47.if defined(PKGNAME_REQD) && !empty(PKGNAME_REQD:Mnode[0-9]-*) || \
48 defined(PKGNAME_REQD) && !empty(PKGNAME_REQD:M*-node[0-9]-*) 48 defined(PKGNAME_REQD) && !empty(PKGNAME_REQD:M*-node[0-9]-*)
49NODE_VERSION_REQD?= ${PKGNAME_REQD:C/(^.*-|^)node([0-9])-.*/\2/} 49NODE_VERSION_REQD?= ${PKGNAME_REQD:C/(^.*-|^)node([0-9])-.*/\2/}
50.elif defined(PKGNAME_OLD) && !empty(PKGNAME_OLD:Mnode[0-9]-*) || \ 50.elif defined(PKGNAME_OLD) && !empty(PKGNAME_OLD:Mnode[0-9]-*) || \
51 defined(PKGNAME_OLD) && !empty(PKGNAME_OLD:M*-node[0-9]-*) 51 defined(PKGNAME_OLD) && !empty(PKGNAME_OLD:M*-node[0-9]-*)
52NODE_VERSION_REQD?= ${PKGNAME_OLD:C/(^.*-|^)node([0-9])-.*/\2/} 52NODE_VERSION_REQD?= ${PKGNAME_OLD:C/(^.*-|^)node([0-9])-.*/\2/}
53.endif 53.endif
54 54
55.include "../../mk/bsd.prefs.mk" 55.include "../../mk/bsd.prefs.mk"
56 56
57BUILD_DEFS+= NODE_VERSION_DEFAULT 57BUILD_DEFS+= NODE_VERSION_DEFAULT
58BUILD_DEFS_EFFECTS+= NODE_PACKAGE 58BUILD_DEFS_EFFECTS+= NODE_PACKAGE
59 59
60NODE_VERSION_DEFAULT?= 16 60NODE_VERSION_DEFAULT?= 16
61NODE_VERSIONS_ACCEPTED?= 12 14 16 18 61NODE_VERSIONS_ACCEPTED?= 14 16 18 19
62NODE_VERSIONS_INCOMPATIBLE?= # empty 62NODE_VERSIONS_INCOMPATIBLE?= # empty
63 63
64# Resolve NODE_VERSIONS_INCOMPATIBLE and generate the _OK vars. 64# Resolve NODE_VERSIONS_INCOMPATIBLE and generate the _OK vars.
65.for v in ${NODE_VERSIONS_ACCEPTED} 65.for v in ${NODE_VERSIONS_ACCEPTED}
66. if empty(NODE_VERSIONS_INCOMPATIBLE:M${v}) 66. if empty(NODE_VERSIONS_INCOMPATIBLE:M${v})
67_NODE_VERSION_${v}_OK= yes 67_NODE_VERSION_${v}_OK= yes
68_NODE_VERSIONS_ACCEPTED+= ${v} 68_NODE_VERSIONS_ACCEPTED+= ${v}
69. endif 69. endif
70.endfor 70.endfor
71 71
72# Pick a version 72# Pick a version
73.if defined(NODE_VERSION_REQD) 73.if defined(NODE_VERSION_REQD)
74. if defined(_NODE_VERSION_${NODE_VERSION_REQD}_OK) 74. if defined(_NODE_VERSION_${NODE_VERSION_REQD}_OK)
@@ -78,29 +78,29 @@ _NODE_VERSION= ${NODE_VERSION_REQD} @@ -78,29 +78,29 @@ _NODE_VERSION= ${NODE_VERSION_REQD}
78. if defined(_NODE_VERSION_${NODE_VERSION_DEFAULT}_OK) 78. if defined(_NODE_VERSION_${NODE_VERSION_DEFAULT}_OK)
79_NODE_VERSION?= ${NODE_VERSION_DEFAULT} 79_NODE_VERSION?= ${NODE_VERSION_DEFAULT}
80. endif 80. endif
81. for v in ${_NODE_VERSIONS_ACCEPTED} 81. for v in ${_NODE_VERSIONS_ACCEPTED}
82. if defined(_NODE_VERSION_${v}_OK) 82. if defined(_NODE_VERSION_${v}_OK)
83_NODE_VERSION?= ${v} 83_NODE_VERSION?= ${v}
84. endif 84. endif
85. endfor 85. endfor
86.endif 86.endif
87 87
88# In case nothing matched 88# In case nothing matched
89_NODE_VERSION?= none 89_NODE_VERSION?= none
90 90
91.if ${_NODE_VERSION} == "12" 91.if ${_NODE_VERSION} == "14"
92.include "../../lang/nodejs12/buildlink3.mk" 
93.elif ${_NODE_VERSION} == "14" 
94.include "../../lang/nodejs14/buildlink3.mk" 92.include "../../lang/nodejs14/buildlink3.mk"
95.elif ${_NODE_VERSION} == "16" 93.elif ${_NODE_VERSION} == "16"
96.include "../../lang/nodejs16/buildlink3.mk" 94.include "../../lang/nodejs16/buildlink3.mk"
97.elif ${_NODE_VERSION} == "18" 95.elif ${_NODE_VERSION} == "18"
 96.include "../../lang/nodejs18/buildlink3.mk"
 97.elif ${_NODE_VERSION} == "19"
98.include "../../lang/nodejs/buildlink3.mk" 98.include "../../lang/nodejs/buildlink3.mk"
99.else 99.else
100PKG_FAIL_REASON+= "No valid node version found" 100PKG_FAIL_REASON+= "No valid node version found"
101.endif 101.endif
102 102
103# Variable assignment for multi-node packages 103# Variable assignment for multi-node packages
104MULTI+= NODE_VERSION_REQD=${_NODE_VERSION} 104MULTI+= NODE_VERSION_REQD=${_NODE_VERSION}
105 105
106.endif # NODEJS_NODEVERSION_MK 106.endif # NODEJS_NODEVERSION_MK

cvs diff -r1.14 -r1.15 pkgsrc/lang/nodejs/options.mk (expand / switch to unified diff)

--- pkgsrc/lang/nodejs/options.mk 2022/03/30 06:52:33 1.14
+++ pkgsrc/lang/nodejs/options.mk 2022/12/03 17:07:13 1.15
@@ -1,35 +1,16 @@ @@ -1,35 +1,16 @@
1# $NetBSD: options.mk,v 1.14 2022/03/30 06:52:33 adam Exp $ 1# $NetBSD: options.mk,v 1.15 2022/12/03 17:07:13 adam Exp $
2 2
3PKG_OPTIONS_VAR= PKG_OPTIONS.nodejs 3PKG_OPTIONS_VAR= PKG_OPTIONS.nodejs
4PKG_SUPPORTED_OPTIONS= openssl dtrace 4PKG_SUPPORTED_OPTIONS= openssl
5PKG_SUGGESTED_OPTIONS= openssl 5PKG_SUGGESTED_OPTIONS= openssl
6 6
7.include "../../mk/bsd.prefs.mk" 
8 
9.if (${OPSYS} == "SunOS" || ${OPSYS} == "Darwin") \ 
10 && exists(/usr/sbin/dtrace) 
11PKG_SUGGESTED_OPTIONS+= dtrace 
12.endif 
13 
14.include "../../mk/bsd.options.mk" 7.include "../../mk/bsd.options.mk"
15 8
16PLIST_VARS+= dtrace 
17 
18.if !empty(PKG_OPTIONS:Mdtrace) 
19CONFIGURE_ARGS+= --with-dtrace 
20PLIST.dtrace= yes 
21.else 
22CONFIGURE_ARGS+= --without-dtrace 
23.endif 
24 
25# print-PLIST helper 
26PRINT_PLIST_AWK+= {if ($$0 ~ /lib\/dtrace/) {$$0 = "$${PLIST.dtrace}" $$0;}} 
27 
28.if !empty(PKG_OPTIONS:Mopenssl) 9.if !empty(PKG_OPTIONS:Mopenssl)
29.include "../../security/openssl/buildlink3.mk" 10.include "../../security/openssl/buildlink3.mk"
30CONFIGURE_ARGS+= --shared-openssl 11CONFIGURE_ARGS+= --shared-openssl
31_WRAP_EXTRA_ARGS.CXX+= ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.openssl}/lib 12_WRAP_EXTRA_ARGS.CXX+= ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.openssl}/lib
32CWRAPPERS_APPEND.cxx+= ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.openssl}/lib 13CWRAPPERS_APPEND.cxx+= ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.openssl}/lib
33.else 14.else
34CONFIGURE_ARGS+= --without-ssl 15CONFIGURE_ARGS+= --without-ssl
35.endif 16.endif

File Added: pkgsrc/lang/nodejs/patches/patch-deps_v8_src_base_platform_memory.h
$NetBSD: patch-deps_v8_src_base_platform_memory.h,v 1.1 2022/12/03 17:07:13 adam Exp $

Fix build on NetBSD.

--- deps/v8/src/base/platform/memory.h.orig	2022-11-14 11:44:23.528838940 +0000
+++ deps/v8/src/base/platform/memory.h
@@ -23,7 +23,7 @@
 #include <malloc.h>
 #endif  // !V8_OS_DARWIN
 
-#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN
+#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_NETBSD && !V8_OS_SOLARIS) || V8_OS_WIN
 #define V8_HAS_MALLOC_USABLE_SIZE 1
 #endif  // (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN
 

File Added: pkgsrc/lang/nodejs/patches/patch-deps_v8_tools_profiling_run-llprof.sh
$NetBSD: patch-deps_v8_tools_profiling_run-llprof.sh,v 1.1 2022/12/03 17:07:13 adam Exp $

POSIX shell portability.

--- deps/v8/tools/profiling/run-llprof.sh.orig	2015-03-31 22:13:01.000000000 +0000
+++ deps/v8/tools/profiling/run-llprof.sh
@@ -46,7 +46,7 @@ framework, then calls the low level tick
 EOF
 }
 
-if [ $# -eq 0 ] || [ "$1" == "-h" ]  || [ "$1" == "--help" ] ; then
+if [ $# -eq 0 ] || [ "$1" = "-h" ]  || [ "$1" = "--help" ] ; then
   usage
   exit 1
 fi

cvs diff -r1.10 -r1.11 pkgsrc/lang/nodejs/patches/patch-deps_v8_src_base_platform_platform-posix.cc (expand / switch to unified diff)

--- pkgsrc/lang/nodejs/patches/patch-deps_v8_src_base_platform_platform-posix.cc 2022/08/17 21:15:27 1.10
+++ pkgsrc/lang/nodejs/patches/patch-deps_v8_src_base_platform_platform-posix.cc 2022/12/03 17:07:13 1.11
@@ -1,82 +1,82 @@ @@ -1,82 +1,82 @@
1$NetBSD: patch-deps_v8_src_base_platform_platform-posix.cc,v 1.10 2022/08/17 21:15:27 tnn Exp $ 1$NetBSD: patch-deps_v8_src_base_platform_platform-posix.cc,v 1.11 2022/12/03 17:07:13 adam Exp $
2 2
3Use sysconf(_SC_THREAD_STACK_MIN) instead of PTHREAD_STACK_MIN. 3Use sysconf(_SC_THREAD_STACK_MIN) instead of PTHREAD_STACK_MIN.
4Cast explicitly. 4Cast explicitly.
5Remove legacy madvise(2) prototypes, prefer posix_madvise(2) if available. 5Remove legacy madvise(2) prototypes, prefer posix_madvise(2) if available.
6 6
7Avoid using a random hint, some low numbers cause spurious ENOMEM on netbsd 7Avoid using a random hint, some low numbers cause spurious ENOMEM on netbsd
8(PR port-arm/55533) 8(PR port-arm/55533)
9 9
10--- deps/v8/src/base/platform/platform-posix.cc.orig 2022-07-26 14:30:08.000000000 +0000 10--- deps/v8/src/base/platform/platform-posix.cc.orig 2022-11-04 14:54:25.000000000 +0000
11+++ deps/v8/src/base/platform/platform-posix.cc 11+++ deps/v8/src/base/platform/platform-posix.cc
12@@ -72,14 +72,6 @@ 12@@ -75,14 +75,6 @@
13 #define MAP_ANONYMOUS MAP_ANON 13 #define MAP_ANONYMOUS MAP_ANON
14 #endif 14 #endif
15  15
16-#if defined(V8_OS_SOLARIS) 16-#if defined(V8_OS_SOLARIS)
17-#if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__) 17-#if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)
18-extern "C" int madvise(caddr_t, size_t, int); 18-extern "C" int madvise(caddr_t, size_t, int);
19-#else 19-#else
20-extern int madvise(caddr_t, size_t, int); 20-extern int madvise(caddr_t, size_t, int);
21-#endif 21-#endif
22-#endif 22-#endif
23- 23-
24 #ifndef MADV_FREE 24 #ifndef MADV_FREE
25 #define MADV_FREE MADV_DONTNEED 25 #define MADV_FREE MADV_DONTNEED
26 #endif 26 #endif
27@@ -384,6 +376,10 @@ void* OS::GetRandomMmapAddr() { 27@@ -391,6 +383,10 @@ void* OS::GetRandomMmapAddr() {
28 #endif 28 #endif
29 #endif 29 #endif
30 #endif 30 #endif
31+ 31+
32+#if V8_OS_NETBSD 32+#if V8_OS_NETBSD
33+ raw_addr = 0; 33+ raw_addr = 0;
34+#endif 34+#endif
35 return reinterpret_cast<void*>(raw_addr); 35 return reinterpret_cast<void*>(raw_addr);
36 } 36 }
37  37
38@@ -515,12 +511,10 @@ bool OS::DiscardSystemPages(void* addres 38@@ -552,12 +548,10 @@ bool OS::DiscardSystemPages(void* addres
39 // MADV_FREE_REUSABLE sometimes fails, so fall back to MADV_DONTNEED. 39 // MADV_FREE_REUSABLE sometimes fails, so fall back to MADV_DONTNEED.
40 ret = madvise(address, size, MADV_DONTNEED); 40 ret = madvise(address, size, MADV_DONTNEED);
41 } 41 }
42-#elif defined(_AIX) || defined(V8_OS_SOLARIS) 42-#elif defined(_AIX) || defined(V8_OS_SOLARIS)
43- int ret = madvise(reinterpret_cast<caddr_t>(address), size, MADV_FREE); 43- int ret = madvise(reinterpret_cast<caddr_t>(address), size, MADV_FREE);
44+#elif defined(POSIX_MADV_DONTNEED) 44+#elif defined(POSIX_MADV_DONTNEED)
45+ int ret = posix_madvise(address, size, POSIX_MADV_DONTNEED); 45+ int ret = posix_madvise(address, size, POSIX_MADV_DONTNEED);
46 if (ret != 0 && errno == ENOSYS) 46 if (ret != 0 && errno == ENOSYS)
47 return true; // madvise is not available on all systems. 47 return true; // madvise is not available on all systems.
48- if (ret != 0 && errno == EINVAL) 48- if (ret != 0 && errno == EINVAL)
49- ret = madvise(reinterpret_cast<caddr_t>(address), size, MADV_DONTNEED); 49- ret = madvise(reinterpret_cast<caddr_t>(address), size, MADV_DONTNEED);
50 #else 50 #else
51 int ret = madvise(address, size, MADV_DONTNEED); 51 int ret = madvise(address, size, MADV_DONTNEED);
52 #endif 52 #endif
53@@ -733,6 +727,8 @@ int OS::GetCurrentThreadId() { 53@@ -772,6 +766,8 @@ int OS::GetCurrentThreadId() {
54 return static_cast<int>(syscall(__NR_gettid)); 54 return static_cast<int>(syscall(__NR_gettid));
55 #elif V8_OS_ANDROID 55 #elif V8_OS_ANDROID
56 return static_cast<int>(gettid()); 56 return static_cast<int>(gettid());
57+#elif V8_OS_NETBSD || V8_OS_FREEBSD 57+#elif V8_OS_NETBSD || V8_OS_FREEBSD
58+ return static_cast<int>(reinterpret_cast<intptr_t>(pthread_self())); 58+ return static_cast<int>(reinterpret_cast<intptr_t>(pthread_self()));
59 #elif V8_OS_AIX 59 #elif V8_OS_AIX
60 return static_cast<int>(thread_self()); 60 return static_cast<int>(thread_self());
61 #elif V8_OS_FUCHSIA 61 #elif V8_OS_FUCHSIA
62@@ -1000,7 +996,11 @@ Thread::Thread(const Options& options) 62@@ -1045,7 +1041,11 @@ Thread::Thread(const Options& options)
63 : data_(new PlatformData), 63 : data_(new PlatformData),
64 stack_size_(options.stack_size()), 64 stack_size_(options.stack_size()),
65 start_semaphore_(nullptr) { 65 start_semaphore_(nullptr) {
66+#if V8_OS_NETBSD 66+#if V8_OS_NETBSD
67+ const int min_stack_size = sysconf(_SC_THREAD_STACK_MIN); 67+ const int min_stack_size = sysconf(_SC_THREAD_STACK_MIN);
68+#else 68+#else
69 const int min_stack_size = static_cast<int>(PTHREAD_STACK_MIN); 69 const int min_stack_size = static_cast<int>(PTHREAD_STACK_MIN);
70+#endif 70+#endif
71 if (stack_size_ > 0) stack_size_ = std::max(stack_size_, min_stack_size); 71 if (stack_size_ > 0) stack_size_ = std::max(stack_size_, min_stack_size);
72 set_name(options.name()); 72 set_name(options.name());
73 } 73 }
74@@ -1016,7 +1016,7 @@ static void SetThreadName(const char* na 74@@ -1061,7 +1061,7 @@ static void SetThreadName(const char* na
75 pthread_set_name_np(pthread_self(), name); 75 pthread_set_name_np(pthread_self(), name);
76 #elif V8_OS_NETBSD 76 #elif V8_OS_NETBSD
77 STATIC_ASSERT(Thread::kMaxThreadNameLength <= PTHREAD_MAX_NAMELEN_NP); 77 static_assert(Thread::kMaxThreadNameLength <= PTHREAD_MAX_NAMELEN_NP);
78- pthread_setname_np(pthread_self(), "%s", name); 78- pthread_setname_np(pthread_self(), "%s", name);
79+ pthread_setname_np(pthread_self(), "%s", (void *)name); 79+ pthread_setname_np(pthread_self(), "%s", (void *)name);
80 #elif V8_OS_DARWIN 80 #elif V8_OS_DARWIN
81 // pthread_setname_np is only available in 10.6 or later, so test 81 // pthread_setname_np is only available in 10.6 or later, so test
82 // for it at runtime. 82 // for it at runtime.

File Deleted: pkgsrc/lang/nodejs/patches/Attic/patch-deps_v8_tools_run-llprof.sh

cvs diff -r1.3 -r1.4 pkgsrc/lang/nodejs/patches/patch-tools_v8_gypfiles_v8.gyp (expand / switch to unified diff)

--- pkgsrc/lang/nodejs/patches/patch-tools_v8_gypfiles_v8.gyp 2022/05/05 07:08:06 1.3
+++ pkgsrc/lang/nodejs/patches/patch-tools_v8_gypfiles_v8.gyp 2022/12/03 17:07:13 1.4
@@ -1,19 +1,19 @@ @@ -1,19 +1,19 @@
1$NetBSD: patch-tools_v8_gypfiles_v8.gyp,v 1.3 2022/05/05 07:08:06 adam Exp $ 1$NetBSD: patch-tools_v8_gypfiles_v8.gyp,v 1.4 2022/12/03 17:07:13 adam Exp $
2 2
3Add -larm on netbsd arm platforms. 3Add -larm on NetBSD ARM platforms.
4 4
5--- tools/v8_gypfiles/v8.gyp.orig 2022-05-03 08:18:12.000000000 +0000 5--- tools/v8_gypfiles/v8.gyp.orig 2022-11-04 14:54:27.000000000 +0000
6+++ tools/v8_gypfiles/v8.gyp 6+++ tools/v8_gypfiles/v8.gyp
7@@ -977,6 +977,12 @@ 7@@ -975,6 +975,12 @@
8 }], 8 }],
9 # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library 9 # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library
10 # to implement atomic memory access 10 # to implement atomic memory access
11+ # NetBSD/arm also needs -larm. 11+ # NetBSD/arm also needs -larm.
12+ ['OS == "netbsd" and v8_current_cpu in ["arm"]', { 12+ ['OS == "netbsd" and v8_current_cpu in ["arm"]', {
13+ 'link_settings': { 13+ 'link_settings': {
14+ 'libraries': ['-larm', ], 14+ 'libraries': ['-larm', ],
15+ }, 15+ },
16+ }], 16+ }],
17 ['v8_current_cpu in ["mips", "mipsel", "mips64", "mips64el", "ppc", "arm", "riscv64", "loong64"]', { 17 ['v8_current_cpu in ["mips64", "mips64el", "ppc", "arm", "riscv64", "loong64"]', {
18 'link_settings': { 18 'link_settings': {
19 'libraries': ['-latomic', ], 19 'libraries': ['-latomic', ],