<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/eb8d9a670797a8f6b569675576844aaba007356f">https://github.com/macports/macports-ports/commit/eb8d9a670797a8f6b569675576844aaba007356f</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 eb8d9a67079 nodejs14->22: fixes for older macOS releases (#26031)
</span>eb8d9a67079 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit eb8d9a670797a8f6b569675576844aaba007356f
</span>Author: gagan sidhu <gagan@hotmail.com>
AuthorDate: Tue Dec 3 12:56:01 2024 -0700

<span style='display:block; white-space:pre;color:#404040;'>    nodejs14->22: fixes for older macOS releases (#26031)
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * fix nodejs21 portfile, which requires the package libuv on older macs
</span><span style='display:block; white-space:pre;color:#404040;'>    * fix nodejs20, which also cannot use the system libuv
</span><span style='display:block; white-space:pre;color:#404040;'>    * better comments for nodejs20/21 portfile
</span><span style='display:block; white-space:pre;color:#404040;'>    * fix nodejs portfiles for newer macs
</span><span style='display:block; white-space:pre;color:#404040;'>    * fixup nodejs21 patch and macro to ensure pthread qos api is used for brosemite (10.10) and newer
</span><span style='display:block; white-space:pre;color:#404040;'>    * fix conditional. yosemite should use the pthread qos api
</span><span style='display:block; white-space:pre;color:#404040;'>    * disable unknown warnings-as-errors for macs that have an older compiler that still works
</span><span style='display:block; white-space:pre;color:#404040;'>    * remove libcxx library dependency, or tests will fail to build
</span><span style='display:block; white-space:pre;color:#404040;'>    * adding DARWIN_C_SOURCE to common.gypi to 'plumb down' to tests
</span>---
 devel/nodejs14/Portfile                            | 19 +++++++---
 devel/nodejs15/Portfile                            | 33 ++++++++++-------
 devel/nodejs16/Portfile                            | 30 ++++++++++------
 devel/nodejs17/Portfile                            | 30 ++++++++++------
 devel/nodejs18/Portfile                            | 28 +++++++++------
 devel/nodejs19/Portfile                            | 28 +++++++++------
 devel/nodejs20/Portfile                            | 32 +++++++++++------
 devel/nodejs21/Portfile                            | 41 ++++++++++++++++------
 ...atch-add-pthread-qos-guard-for-older-macs.patch | 36 +++++++++++++++++++
 devel/nodejs22/Portfile                            | 41 ++++++++++++++++------
 ...atch-add-pthread-qos-guard-for-older-macs.patch | 36 +++++++++++++++++++
 devel/nodejs22/files/patch-common.gypi.diff        | 22 ++++++++----
 12 files changed, 279 insertions(+), 97 deletions(-)

<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 7a5a29b4a08..da8afab14f8 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;'>@@ -14,9 +14,6 @@ deprecated.eol_version  yes
</span> openssl.branch          1.1
 openssl.configure       pkgconfig build_flags
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# on macOS nodejs only builds against libc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# this force is OK as node does not link against any other c++ libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append      port:libcxx
</span> configure.cxx_stdlib    libc++
 compiler.cxx_standard   2014
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -85,9 +82,23 @@ post-patch {
</span> }
 
 # use the system libuv instead of the bundled version, as it is fixed for older systems
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.platform} eq "darwin" && ${os.major} < 11 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && ${os.major} < 15 } {
</span>     depends_lib-append    path:lib/libuv.dylib:libuv
     configure.args-append --shared-libuv
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append        port:macports-libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wl,-L${prefix}/lib/libcxx
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# suppress a warning-as-error that shows up with newer clang compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=enum-constexpr-conversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #the ventura buildbot will fail because it doesn't recognise this flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #so we disable unknown warnings as errors for older compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=unknown-warning-option
</span> }
 
 pre-configure {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs15/Portfile b/devel/nodejs15/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index ea76d58c97d..f2b7b89a8bf 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs15/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs15/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,9 +9,6 @@ PortGroup               deprecated 1.0
</span> # https://github.com/nodejs/Release
 deprecated.eol_version  yes
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# on macOS nodejs only builds against libc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# this force is OK as node does not link against any other c++ libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append      port:libcxx
</span> configure.cxx_stdlib    libc++
 compiler.cxx_standard   2014
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,16 +48,6 @@ depends_lib-append      path:lib/pkgconfig/icu-uc.pc:icu \
</span> 
 use_xcode               yes
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# error: 'atomic_load<v8::internal::OwnedVector<const unsigned char> >' is unavailable: introduced in macOS 10.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set min_darwin 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.major} < ${min_darwin} } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_error "${name} requires OSX 10.[expr ${min_darwin} - 4] or newer."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return -code error "Unsupported OSX version"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> proc rec_glob {basedir pattern} {
     set files [glob -directory $basedir -nocomplain -type f $pattern]
     foreach dir [glob -directory $basedir -nocomplain -type d *] {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -69,6 +56,26 @@ proc rec_glob {basedir pattern} {
</span>     return $files
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# use the system libuv instead of the bundled version, as it is fixed for older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && ${os.major} < 15 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append    path:lib/libuv.dylib:libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append --shared-libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append        port:macports-libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wl,-L${prefix}/lib/libcxx
</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;'>+# suppress a warning-as-error that shows up with newer clang compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=enum-constexpr-conversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #the ventura buildbot will fail because it doesn't recognise this flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #so we disable unknown warnings as errors for older compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=unknown-warning-option
</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;'>+
</span> configure.python ${prefix}/bin/python3.9
 
 patchfiles              patch-common.gypi.diff \
<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 5c3880a7e1c..cec9124a406 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;'>@@ -10,9 +10,6 @@ PortGroup               deprecated 1.0
</span> # https://github.com/nodejs/Release
 deprecated.eol_version  yes
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# on macOS nodejs only builds against libc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# this force is OK as node does not link against any other c++ libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append      port:libcxx
</span> configure.cxx_stdlib    libc++
 compiler.cxx_standard   2014
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -56,16 +53,27 @@ if {![variant_isset openssl3]} {
</span>     openssl.branch          1.1
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# error: 'atomic_load<v8::internal::OwnedVector<const unsigned char> >' is unavailable: introduced in macOS 10.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set min_darwin 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.major} < ${min_darwin} } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_error "${name} requires OSX 10.[expr ${min_darwin} - 4] or newer."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return -code error "Unsupported OSX version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# use the system libuv instead of the bundled version, as it is fixed for older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && ${os.major} < 15 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append    path:lib/libuv.dylib:libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append --shared-libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append        port:macports-libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wl,-L${prefix}/lib/libcxx
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# suppress a warning-as-error that shows up with newer clang compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=enum-constexpr-conversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #the ventura buildbot will fail because it doesn't recognise this flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #so we disable unknown warnings as errors for older compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=unknown-warning-option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> proc rec_glob {basedir pattern} {
     set files [glob -directory $basedir -nocomplain -type f $pattern]
     foreach dir [glob -directory $basedir -nocomplain -type d *] {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -145,7 +153,7 @@ switch $build_arch {
</span> compiler.blacklist-append {clang < 900}
 
 # error: integer value is outside the valid range of values for this enumeration type
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.cxxflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cxx-append \
</span>                     -Wno-enum-constexpr-conversion \
                     -Wno-unknown-warning-option
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs17/Portfile b/devel/nodejs17/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 52ca9873511..2a3c059207d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs17/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs17/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,9 +9,6 @@ PortGroup               deprecated 1.0
</span> # https://github.com/nodejs/Release
 deprecated.eol_version  yes
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# on macOS nodejs only builds against libc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# this force is OK as node does not link against any other c++ libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append      port:libcxx
</span> configure.cxx_stdlib    libc++
 compiler.cxx_standard   2014
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,16 +48,27 @@ depends_build-append    port:pkgconfig \
</span> depends_lib-append      path:lib/pkgconfig/icu-uc.pc:icu \
                         port:zlib
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# error: 'atomic_load<v8::internal::OwnedVector<const unsigned char> >' is unavailable: introduced in macOS 10.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set min_darwin 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.major} < ${min_darwin} } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_error "${name} requires OSX 10.[expr ${min_darwin} - 4] or newer."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return -code error "Unsupported OSX version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# use the system libuv instead of the bundled version, as it is fixed for older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && ${os.major} < 15 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append    path:lib/libuv.dylib:libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append --shared-libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append        port:macports-libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wl,-L${prefix}/lib/libcxx
</span>     }
 }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# suppress a warning-as-error that shows up with newer clang compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=enum-constexpr-conversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #the ventura buildbot will fail because it doesn't recognise this flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #so we disable unknown warnings as errors for older compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=unknown-warning-option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span> proc rec_glob {basedir pattern} {
     set files [glob -directory $basedir -nocomplain -type f $pattern]
     foreach dir [glob -directory $basedir -nocomplain -type d *] {
<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 87dac4f626e..e2e64885a55 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;'>@@ -4,9 +4,6 @@ PortSystem              1.0
</span> PortGroup               compiler_blacklist_versions 1.0
 PortGroup               legacysupport 1.1
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# on macOS nodejs only builds against libc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# this force is OK as node does not link against any other c++ libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append      port:libcxx
</span> configure.cxx_stdlib    libc++
 compiler.cxx_standard   2014
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -46,16 +43,27 @@ depends_build-append    port:pkgconfig \
</span> depends_lib-append      path:lib/pkgconfig/icu-uc.pc:icu \
                         port:zlib
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# error: 'atomic_load<v8::internal::OwnedVector<const unsigned char> >' is unavailable: introduced in macOS 10.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set min_darwin 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.major} < ${min_darwin} } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_error "${name} requires OSX 10.[expr ${min_darwin} - 4] or newer."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return -code error "Unsupported OSX version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# use the system libuv instead of the bundled version, as it is fixed for older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && ${os.major} < 15 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append    path:lib/libuv.dylib:libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append --shared-libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append        port:macports-libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wl,-L${prefix}/lib/libcxx
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# suppress a warning-as-error that shows up with newer clang compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=enum-constexpr-conversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #the ventura buildbot will fail because it doesn't recognise this flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #so we disable unknown warnings as errors for older compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=unknown-warning-option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> proc rec_glob {basedir pattern} {
     set files [glob -directory $basedir -nocomplain -type f $pattern]
     foreach dir [glob -directory $basedir -nocomplain -type d *] {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs19/Portfile b/devel/nodejs19/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 4335b29b861..89680bbfdc7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs19/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs19/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,9 +9,6 @@ PortGroup               deprecated 1.0
</span> # https://github.com/nodejs/Release
 deprecated.eol_version  yes
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# on macOS nodejs only builds against libc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# this force is OK as node does not link against any other c++ libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append      port:libcxx
</span> configure.cxx_stdlib    libc++
 compiler.cxx_standard   2014
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,15 +48,26 @@ depends_build-append    port:pkgconfig \
</span> depends_lib-append      path:lib/pkgconfig/icu-uc.pc:icu \
                         port:zlib
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# error: 'atomic_load<v8::internal::OwnedVector<const unsigned char> >' is unavailable: introduced in macOS 10.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set min_darwin 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.major} < ${min_darwin} } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_error "${name} requires OSX 10.[expr ${min_darwin} - 4] or newer."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return -code error "Unsupported OSX version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# use the system libuv instead of the bundled version, as it is fixed for older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && ${os.major} < 15 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append    path:lib/libuv.dylib:libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append --shared-libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append        port:macports-libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wl,-L${prefix}/lib/libcxx
</span>     }
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# suppress a warning-as-error that shows up with newer clang compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=enum-constexpr-conversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #the ventura buildbot will fail because it doesn't recognise this flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #so we disable unknown warnings as errors for older compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=unknown-warning-option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 proc rec_glob {basedir pattern} {
     set files [glob -directory $basedir -nocomplain -type f $pattern]
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs20/Portfile b/devel/nodejs20/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b48714f64b2..90f64046b7c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs20/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs20/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,9 +4,6 @@ PortSystem              1.0
</span> PortGroup               compiler_blacklist_versions 1.0
 PortGroup               legacysupport 1.1
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# on macOS nodejs only builds against libc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# this force is OK as node does not link against any other c++ libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append      port:libcxx
</span> configure.cxx_stdlib    libc++
 compiler.cxx_standard   2014
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -46,16 +43,31 @@ depends_build-append    port:pkgconfig \
</span> depends_lib-append      path:lib/pkgconfig/icu-uc.pc:icu \
                         port:zlib
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# error: 'atomic_load<v8::internal::OwnedVector<const unsigned char> >' is unavailable: introduced in macOS 10.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set min_darwin 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.major} < ${min_darwin} } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_error "${name} requires OSX 10.[expr ${min_darwin} - 4] or newer."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return -code error "Unsupported OSX version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# use the system libuv instead of the bundled version, as it is fixed for older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && ${os.major} < 15 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # for older macs it seems nodejs20+ requires the packaged libuv,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # unlike earlier versions. the flag below ensures the libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # packaged with nodejs20+ can be used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wno-error=incompatible-function-pointer-types
</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;'>+    if {${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append        port:macports-libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wl,-L${prefix}/lib/libcxx
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# suppress a warning-as-error that shows up with newer clang compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=enum-constexpr-conversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #the ventura buildbot will fail because it doesn't recognise this flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #so we disable unknown warnings as errors for older compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=unknown-warning-option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> proc rec_glob {basedir pattern} {
     set files [glob -directory $basedir -nocomplain -type f $pattern]
     foreach dir [glob -directory $basedir -nocomplain -type d *] {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs21/Portfile b/devel/nodejs21/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b6a8cae0512..c469dadb6e1 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs21/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs21/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,9 +4,6 @@ PortSystem              1.0
</span> PortGroup               compiler_blacklist_versions 1.0
 PortGroup               legacysupport 1.1
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# on macOS nodejs only builds against libc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# this force is OK as node does not link against any other c++ libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append      port:libcxx
</span> configure.cxx_stdlib    libc++
 compiler.cxx_standard   2014
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -46,16 +43,37 @@ depends_build-append    port:pkgconfig \
</span> depends_lib-append      path:lib/pkgconfig/icu-uc.pc:icu \
                         port:zlib
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# error: 'atomic_load<v8::internal::OwnedVector<const unsigned char> >' is unavailable: introduced in macOS 10.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set min_darwin 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.major} < ${min_darwin} } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_error "${name} requires OSX 10.[expr ${min_darwin} - 4] or newer."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return -code error "Unsupported OSX version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# use the system libuv instead of the bundled version, as it is fixed for older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && ${os.major} < 15 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # for older macs it seems nodejs20+ requires the packaged libuv,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # unlike earlier versions. the flag below ensures the libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # packaged with nodejs20+ can be used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wno-error=incompatible-function-pointer-types
</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;'>+    if {${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append        port:macports-libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wl,-L${prefix}/lib/libcxx
</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;'>+    #we guard against using the pthread qos API for Yosemite (10.10) and lower,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #since it is not available.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${os.major} < 14 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cppflags-append -DNOT_ON_BROSEMITE_OR_LATER=1
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# suppress a warning-as-error that shows up with newer clang compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=enum-constexpr-conversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #the ventura buildbot will fail because it doesn't recognise this flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #so we disable unknown warnings as errors for older compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=unknown-warning-option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> proc rec_glob {basedir pattern} {
     set files [glob -directory $basedir -nocomplain -type f $pattern]
     foreach dir [glob -directory $basedir -nocomplain -type d *] {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -66,7 +84,8 @@ proc rec_glob {basedir pattern} {
</span> 
 configure.python        ${prefix}/bin/python${py_ver}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles              patch-common.gypi.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles              patch-common.gypi.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-add-pthread-qos-guard-for-older-macs.patch
</span> 
 post-patch {
     foreach f [concat ${worksrcpath}/configure \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs21/files/patch-add-pthread-qos-guard-for-older-macs.patch b/devel/nodejs21/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/nodejs21/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/nodejs22/Portfile b/devel/nodejs22/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index f846c941c98..36003a1ebb9 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;'>@@ -4,9 +4,6 @@ PortSystem              1.0
</span> PortGroup               compiler_blacklist_versions 1.0
 PortGroup               legacysupport 1.1
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# on macOS nodejs only builds against libc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# this force is OK as node does not link against any other c++ libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append      port:libcxx
</span> configure.cxx_stdlib    libc++
 compiler.cxx_standard   2014
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -46,16 +43,37 @@ depends_build-append    port:pkgconfig \
</span> depends_lib-append      path:lib/pkgconfig/icu-uc.pc:icu \
                         port:zlib
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# error: 'atomic_load<v8::internal::OwnedVector<const unsigned char> >' is unavailable: introduced in macOS 10.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set min_darwin 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.major} < ${min_darwin} } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_error "${name} requires OSX 10.[expr ${min_darwin} - 4] or newer."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return -code error "Unsupported OSX version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# use the system libuv instead of the bundled version, as it is fixed for older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && ${os.major} < 15 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # for older macs it seems nodejs20+ requires the packaged libuv,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # unlike earlier versions. the flag below ensures the libuv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # packaged with nodejs20+ can be used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wno-error=incompatible-function-pointer-types
</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;'>+    if {${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append        port:macports-libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxx-append      -Wl,-L${prefix}/lib/libcxx
</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;'>+    #we guard against using the pthread qos API for Yosemite (10.10) and lower,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #since it is not available.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${os.major} < 14 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cppflags-append -DNOT_ON_BROSEMITE_OR_LATER=1 
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# suppress a warning-as-error that shows up with newer clang compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=enum-constexpr-conversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #the ventura buildbot will fail because it doesn't recognise this flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #so we disable unknown warnings as errors for older compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx-append      -Wno-error=unknown-warning-option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> proc rec_glob {basedir pattern} {
     set files [glob -directory $basedir -nocomplain -type f $pattern]
     foreach dir [glob -directory $basedir -nocomplain -type d *] {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -66,7 +84,8 @@ proc rec_glob {basedir pattern} {
</span> 
 configure.python        ${prefix}/bin/python${py_ver}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles              patch-common.gypi.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles              patch-common.gypi.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-add-pthread-qos-guard-for-older-macs.patch
</span> 
 post-patch {
     foreach f [concat ${worksrcpath}/configure \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs22/files/patch-add-pthread-qos-guard-for-older-macs.patch b/devel/nodejs22/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/nodejs22/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/nodejs22/files/patch-common.gypi.diff b/devel/nodejs22/files/patch-common.gypi.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 80cea059ea2..d22e0121240 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs22/files/patch-common.gypi.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs22/files/patch-common.gypi.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,10 +1,20 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- common.gypi.orig       2023-10-16 22:31:01.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ common.gypi    2023-10-17 10:00:29.282416651 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -528,7 +528,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           'GCC_ENABLE_CPP_RTTI': 'NO',              # -fno-rtti
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- common.gypi.orig       2024-11-29 13:18:05.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ common.gypi            2024-11-29 14:44:03.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -616,7 +616,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;'>+@@ -627,7 +628,6 @@
</span>            'GCC_ENABLE_PASCAL_STRINGS': 'NO',        # No -mpascal-strings
<span style='display:block; white-space:pre;background:#e0ffe0;'>+           'GCC_STRICT_ALIASING': 'NO',              # -fno-strict-aliasing
</span>            'PREBINDING': 'NO',                       # No -Wl,-prebind
 -          'MACOSX_DEPLOYMENT_TARGET': '11.0',       # -mmacosx-version-min=11.0
            'USE_HEADERMAP': 'NO',
<span style='display:block; white-space:pre;background:#ffe0e0;'>-           'OTHER_CFLAGS': [
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             '-fno-strict-aliasing',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           'WARNING_CFLAGS': [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             '-Wall',
</span></pre><pre style='margin:0'>

</pre>