<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/01fde2aeafd9ed95c3f11d8e2d6ea8a9064dc474">https://github.com/macports/macports-ports/commit/01fde2aeafd9ed95c3f11d8e2d6ea8a9064dc474</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 01fde2aeafd9ed95c3f11d8e2d6ea8a9064dc474
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Mon Sep 5 15:10:59 2022 +0200

<span style='display:block; white-space:pre;color:#404040;'>    nodejs13: fix build with ICU 68
</span>---
 devel/nodejs13/Portfile                |  3 +-
 devel/nodejs13/files/patch-icu-68.diff | 64 ++++++++++++++++++++++++++++++++++
 2 files changed, 66 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs13/Portfile b/devel/nodejs13/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index ef4bb9c982b..61cf2ed8d6c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/nodejs13/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs13/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -68,7 +68,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-icu-68.diff
</span> 
 post-patch {
     foreach f [concat ${worksrcpath}/configure \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/nodejs13/files/patch-icu-68.diff b/devel/nodejs13/files/patch-icu-68.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0da0c9dcea0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/nodejs13/files/patch-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,64 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Based on https://github.com/nodejs/node/pull/39068
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git deps/v8/src/objects/js-list-format.cc deps/v8/src/objects/js-list-format.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 90b93e308a..f2448860fd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- deps/v8/src/objects/js-list-format.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ deps/v8/src/objects/js-list-format.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,11 +24,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/fpositer.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/listformatter.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/ulistformatter.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "unicode/uvernum.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace v8 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace internal {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 67
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* kStandard = "standard";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* kOr = "or";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* kUnit = "unit";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -72,6 +74,31 @@ const char* GetIcuStyleString(JSListFormat::Style style,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNREACHABLE();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++UListFormatterWidth GetIcuWidth(JSListFormat::Style style) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  switch (style) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case JSListFormat::Style::LONG:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return ULISTFMT_WIDTH_WIDE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case JSListFormat::Style::SHORT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return ULISTFMT_WIDTH_SHORT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case JSListFormat::Style::NARROW:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return ULISTFMT_WIDTH_NARROW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNREACHABLE();
</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;'>++UListFormatterType GetIcuType(JSListFormat::Type type) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  switch (type) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case JSListFormat::Type::CONJUNCTION:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return ULISTFMT_TYPE_AND;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case JSListFormat::Type::DISJUNCTION:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return ULISTFMT_TYPE_OR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case JSListFormat::Type::UNIT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return ULISTFMT_TYPE_UNITS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNREACHABLE();
</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;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }  // namespace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -170,7 +197,11 @@ MaybeHandle<JSListFormat> JSListFormat::New(Isolate* isolate, Handle<Map> map,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   icu::Locale icu_locale = r.icu_locale;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UErrorCode status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   icu::ListFormatter* formatter = icu::ListFormatter::createInstance(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 67
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       icu_locale, GetIcuStyleString(style_enum, type_enum), status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      icu_locale, GetIcuType(type_enum), GetIcuWidth(style_enum), status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(status)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     delete formatter;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FATAL("Failed to create ICU list formatter, are ICU data files missing?");
</span></pre><pre style='margin:0'>

</pre>