<pre style='margin:0'>
Mohamed Akram (mohd-akram) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/805554f7f465e22a0c97ffe42af759fa6f7e3d91">https://github.com/macports/macports-ports/commit/805554f7f465e22a0c97ffe42af759fa6f7e3d91</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 805554f7f46 nodejs24: new port
</span>805554f7f46 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 805554f7f465e22a0c97ffe42af759fa6f7e3d91
</span>Author: Mohamed Akram <makr@macports.org>
AuthorDate: Sun May 11 12:57:13 2025 +0400
<span style='display:block; white-space:pre;color:#404040;'> nodejs24: new port
</span>---
devel/nodejs10/Portfile | 2 +-
devel/nodejs12/Portfile | 2 +-
devel/nodejs14/Portfile | 2 +-
devel/nodejs16/Portfile | 2 +-
devel/nodejs18/Portfile | 2 +-
devel/nodejs22/Portfile | 2 +-
devel/{nodejs22 => nodejs24}/Portfile | 20 ++++++------
...atch-add-pthread-qos-guard-for-older-macs.patch | 36 ++++++++++++++++++++++
devel/nodejs24/files/patch-common.gypi.diff | 20 ++++++++++++
devel/nodejs8/Portfile | 6 ++--
10 files changed, 75 insertions(+), 19 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs10/Portfile b/devel/nodejs10/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 456616c1408..9b7d7575acb 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs10/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs10/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,7 +34,7 @@ long_description Node's goal is to provide an easy way to build scalable
</span> Machine or Python's Twisted. Node takes the event model a bit further-it \
presents the event loop as a language construct instead of as a library.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-conflicts nodejs8 nodejs12 nodejs14 nodejs16 nodejs18 nodejs20 nodejs22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts nodejs8 nodejs12 nodejs14 nodejs16 nodejs18 nodejs20 nodejs22 nodejs24
</span>
homepage https://nodejs.org/
master_sites ${homepage}dist/v${version}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs12/Portfile b/devel/nodejs12/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 6aa9c72f6e1..e4f31b6ed69 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs12/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs12/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,7 +41,7 @@ long_description Node's goal is to provide an easy way to build scalable
</span> Machine or Python's Twisted. Node takes the event model a bit further-it \
presents the event loop as a language construct instead of as a library.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-conflicts nodejs8 nodejs10 nodejs14 nodejs16 nodejs18 nodejs20 nodejs22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts nodejs8 nodejs10 nodejs14 nodejs16 nodejs18 nodejs20 nodejs22 nodejs24
</span>
homepage https://nodejs.org/
master_sites ${homepage}dist/v${version}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs14/Portfile b/devel/nodejs14/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 060ec7192ac..6eeb7f4b7c3 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs14/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs14/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -38,7 +38,7 @@ long_description Node's goal is to provide an easy way to build scalable
</span> Machine or Python's Twisted. Node takes the event model a bit further-it \
presents the event loop as a language construct instead of as a library.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-conflicts nodejs8 nodejs10 nodejs12 nodejs16 nodejs18 nodejs20 nodejs22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts nodejs8 nodejs10 nodejs12 nodejs16 nodejs18 nodejs20 nodejs22 nodejs24
</span>
homepage https://nodejs.org/
master_sites ${homepage}dist/v${version}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs16/Portfile b/devel/nodejs16/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index abe27fada76..bc652d9a75b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs16/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs16/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,7 +34,7 @@ long_description Node's goal is to provide an easy way to build scalable
</span> Machine or Python's Twisted. Node takes the event model a bit further-it \
presents the event loop as a language construct instead of as a library.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-conflicts nodejs8 nodejs10 nodejs12 nodejs14 nodejs18 nodejs20 nodejs22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts nodejs8 nodejs10 nodejs12 nodejs14 nodejs18 nodejs20 nodejs22 nodejs24
</span>
homepage https://nodejs.org/
master_sites ${homepage}dist/v${version}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs18/Portfile b/devel/nodejs18/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 9d9f8f1a1c5..a94b93c934d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs18/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs18/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -26,7 +26,7 @@ long_description Node's goal is to provide an easy way to build scalable
</span> Machine or Python's Twisted. Node takes the event model a bit further-it \
presents the event loop as a language construct instead of as a library.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-conflicts nodejs8 nodejs10 nodejs12 nodejs14 nodejs16 nodejs20 nodejs22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts nodejs8 nodejs10 nodejs12 nodejs14 nodejs16 nodejs20 nodejs22 nodejs24
</span>
homepage https://nodejs.org/
master_sites ${homepage}dist/v${version}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs22/Portfile b/devel/nodejs22/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 6e214ad8c82..920cd69fc13 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs22/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs22/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -26,7 +26,7 @@ long_description Node's goal is to provide an easy way to build scalable
</span> Machine or Python's Twisted. Node takes the event model a bit further-it \
presents the event loop as a language construct instead of as a library.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-conflicts nodejs8 nodejs10 nodejs12 nodejs14 nodejs16 nodejs18 nodejs20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts nodejs8 nodejs10 nodejs12 nodejs14 nodejs16 nodejs18 nodejs20 nodejs24
</span>
homepage https://nodejs.org/
master_sites ${homepage}dist/v${version}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs22/Portfile b/devel/nodejs24/Portfile
</span>similarity index 94%
copy from devel/nodejs22/Portfile
copy to devel/nodejs24/Portfile
<span style='display:block; white-space:pre;color:#808080;'>index 6e214ad8c82..00f6b327add 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs22/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs24/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,10 +5,10 @@ PortGroup compiler_blacklist_versions 1.0
</span> PortGroup legacysupport 1.1
configure.cxx_stdlib libc++
<span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.cxx_standard 2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2020
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-name nodejs22
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version 22.14.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name nodejs24
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 24.0.1
</span> revision 0
categories devel net
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -26,19 +26,19 @@ long_description Node's goal is to provide an easy way to build scalable
</span> Machine or Python's Twisted. Node takes the event model a bit further-it \
presents the event loop as a language construct instead of as a library.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-conflicts nodejs8 nodejs10 nodejs12 nodejs14 nodejs16 nodejs18 nodejs20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts nodejs8 nodejs10 nodejs12 nodejs14 nodejs16 nodejs18 nodejs20 nodejs22
</span>
homepage https://nodejs.org/
master_sites ${homepage}dist/v${version}
use_xz yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 6c0804fe9c8fa17120616d6dc320ec5066f396de \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 c609946bf793b55c7954c26582760808d54c16185d79cb2fb88065e52de21914 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 47753700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 2ab96c5588929fa1e6f2b1fd94034771a987d182 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 70271026971808409a7ed6444360d5fe3ef4146c1ca53f2ca290c60d214be84e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 49915808
</span>
distname node-v${version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set py_ver 3.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set py_ver 3.13
</span> set py_ver_nodot [string map {. {}} ${py_ver}]
depends_build-append port:pkgconfig \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -162,7 +162,7 @@ switch $build_arch {
</span> # and accordingly the compile fails on macOS 11.7 Big Sur with Xcode's
# clang. However, bumping the requirement for clang 1400 or greater
# gets it to successfully compile.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# [1] https://github.com/nodejs/node/blob/v22.x/BUILDING.md#supported-toolchains
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# [1] https://github.com/nodejs/node/blob/v24.x/BUILDING.md#supported-toolchains
</span> compiler.blacklist-append {clang < 1400}
build.args-append CC=${configure.cc} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -222,4 +222,4 @@ destroot {
</span>
livecheck.url ${homepage}dist/
livecheck.type regex
<span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex {v(22\.\d+\.\d+)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.regex {v(24\.\d+\.\d+)}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs24/files/patch-add-pthread-qos-guard-for-older-macs.patch b/devel/nodejs24/files/patch-add-pthread-qos-guard-for-older-macs.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d1d6582a05c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs24/files/patch-add-pthread-qos-guard-for-older-macs.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,36 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- deps/v8/src/base/platform/platform-posix.cc 2024-04-10 05:46:12.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ deps/v8/src/base/platform/platform-posix.cc 2024-09-30 19:49:47.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1135,6 +1135,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SetThreadName(thread->name());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if V8_OS_DARWIN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch (thread->priority()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef NOT_ON_BROSEMITE_OR_LATER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case Thread::Priority::kBestEffort:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pthread_set_qos_class_self_np(QOS_CLASS_BACKGROUND, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1144,6 +1145,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case Thread::Priority::kUserBlocking:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pthread_set_qos_class_self_np(QOS_CLASS_USER_INITIATED, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case Thread::Priority::kDefault:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- deps/v8/src/d8/d8.cc 2024-04-10 05:46:13.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ deps/v8/src/d8/d8.cc 2024-09-30 19:51:11.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5696,6 +5696,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ v8::V8::InitializeICUDefaultLocation(argv[0], options.icu_data_file);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef NOT_ON_BROSEMITE_OR_LATER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef V8_OS_DARWIN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (options.apply_priority) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct task_category_policy category = {.role =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5705,6 +5706,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pthread_set_qos_class_self_np(QOS_CLASS_USER_INTERACTIVE, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef V8_INTL_SUPPORT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (options.icu_locale != nullptr) {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs24/files/patch-common.gypi.diff b/devel/nodejs24/files/patch-common.gypi.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..ac2e429bf09
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs24/files/patch-common.gypi.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- common.gypi.orig 2025-05-08 12:26:16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ common.gypi 2025-05-11 12:34:36
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -621,7 +621,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ['OS=="mac"', {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 'defines': ['_DARWIN_USE_64_BIT_INODE=1'],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'defines': ['_DARWIN_USE_64_BIT_INODE=1',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ '_DARWIN_C_SOURCE=1'],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'xcode_settings': {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'ALWAYS_SEARCH_USER_PATHS': 'NO',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -632,7 +633,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'GCC_STRICT_ALIASING': 'NO', # -fno-strict-aliasing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'PREBINDING': 'NO', # No -Wl,-prebind
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 'MACOSX_DEPLOYMENT_TARGET': '13.5', # -mmacosx-version-min=13.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'USE_HEADERMAP': 'NO',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'WARNING_CFLAGS': [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ '-Wall',
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs8/Portfile b/devel/nodejs8/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index dced78b3784..f5465ae96ff 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,7 +28,7 @@ long_description Node's goal is to provide an easy way to build scalable
</span> Machine or Python's Twisted. Node takes the event model a bit further-it \
presents the event loop as a language construct instead of as a library.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-conflicts nodejs10 nodejs12 nodejs14 nodejs16 nodejs18 nodejs20 nodejs22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts nodejs10 nodejs12 nodejs14 nodejs16 nodejs18 nodejs20 nodejs22 nodejs24
</span>
homepage https://nodejs.org/
master_sites ${homepage}dist/v${version}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -148,13 +148,13 @@ destroot {
</span> xinstall -m 755 -W ${worksrcpath} \
out/Release/node \
${bindir}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # install headers
xinstall -m 644 {*}[glob ${worksrcpath}/src/*.h] ${incdir}
xinstall -m 644 {*}[glob ${worksrcpath}/deps/v8/include/*.h] ${incdir}
xinstall -m 644 {*}[glob ${worksrcpath}/deps/uv/include/*.h] ${incdir}
xinstall -m 644 {*}[glob ${worksrcpath}/deps/cares/include/*.h] ${incdir}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # install dtrace script
xinstall -m 644 -W ${worksrcpath} \
src/node.d \
</pre><pre style='margin:0'>
</pre>