<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/902d2ca035ffaf734a3a272f0e7551e712673c03">https://github.com/macports/macports-ports/commit/902d2ca035ffaf734a3a272f0e7551e712673c03</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 902d2ca035f nodejs12: fix build with ICU 76
</span>902d2ca035f is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 902d2ca035ffaf734a3a272f0e7551e712673c03
</span>Author: Mohamed Akram <makr@macports.org>
AuthorDate: Tue Dec 17 20:38:30 2024 +0400
<span style='display:block; white-space:pre;color:#404040;'> nodejs12: fix build with ICU 76
</span>---
devel/nodejs12/Portfile | 18 +++++++++++++++---
devel/nodejs12/files/patch-configure.diff | 27 +++++++++++++++++++++++++++
2 files changed, 42 insertions(+), 3 deletions(-)
<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 d99208f7f09..755b033a022 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;'>@@ -18,11 +18,13 @@ openssl.configure pkgconfig build_flags
</span> # this force is OK as node does not link against any other c++ libs
depends_lib-append port:libcxx
configure.cxx_stdlib libc++
<span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.cxx_standard 2014
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# C++17 required for ICU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cxxflags-append -std=c++17
</span>
name nodejs12
version 12.22.12
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 5
</span>
categories devel net
license {MIT BSD}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -68,7 +70,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-configure.diff
</span>
post-patch {
foreach f [concat ${worksrcpath}/configure \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -84,6 +87,15 @@ post-patch {
</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> # use the system libuv instead of the bundled version, as it is fixed for older systems
if { ${os.platform} eq "darwin" && ${os.major} < 11 } {
depends_lib-append path:lib/libuv.dylib:libuv
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs12/files/patch-configure.diff b/devel/nodejs12/files/patch-configure.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..a1ce88019b7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs12/files/patch-configure.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 54299ac3a3d4e4520b8604dce43c2584092ccde2 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Michael Cho <michael@michaelcho.dev>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 27 Oct 2024 10:08:07 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] build: fix building with system icu 76
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ICU 76 decided to reduce overlinking[^1] thus `icu-i18n` will no longer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+add `icu-uc` when linking to shared libraries. This results in undefined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+symbols/references when trying to build with system ICU 76.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[^1]: unicode-org/icu@199bc82
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.py | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/configure.py b/configure.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a5f47af1748903..a4e210261e2e76 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1471,7 +1471,7 @@ def icu_download(path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elif with_intl == 'system-icu':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # ICU from pkg-config.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ o['variables']['v8_enable_i18n_support'] = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- pkgicu = pkg_config('icu-i18n')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pkgicu = pkg_config(['icu-i18n', 'icu-uc'])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not pkgicu[0]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error('''Could not load pkg-config data for "icu-i18n".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ See above errors or the README.md.''')
</span></pre><pre style='margin:0'>
</pre>