<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/28d28519cf3ec8ee3a9b41c24cb581894375883e">https://github.com/macports/macports-ports/commit/28d28519cf3ec8ee3a9b41c24cb581894375883e</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 28d28519cf3 webkit-gtk: fix build with ICU 76
</span>28d28519cf3 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 28d28519cf3ec8ee3a9b41c24cb581894375883e
</span>Author: Mohamed Akram <makr@macports.org>
AuthorDate: Mon Dec 16 16:31:42 2024 +0400

<span style='display:block; white-space:pre;color:#404040;'>    webkit-gtk: fix build with ICU 76
</span>---
 www/webkit-gtk/Portfile                 | 19 +++++---
 www/webkit-gtk/files/patch-cxx17.diff   | 81 +++++++++++++++++++++++++++++++++
 www/webkit-gtk/files/patch-fix-xml.diff | 26 +++++++++++
 3 files changed, 119 insertions(+), 7 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/webkit-gtk/Portfile b/www/webkit-gtk/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 4bc76f27dc8..47bec05e6ea 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/www/webkit-gtk/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/webkit-gtk/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11,7 +11,7 @@ PortGroup           muniversal 1.0
</span> name                webkit-gtk
 epoch               2
 version             2.4.11
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            10
</span> description         Apple's WebKit HTML rendering library for GTK+
 long_description    ${description}
 maintainers         nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -83,11 +83,16 @@ patchfiles          clang-assertions.patch \
</span>                     glibc-2.68.patch \
                     patch-fix_page_shift.diff \
                     patch-support-arm64.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-icu-68-true-false.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-icu-68-true-false.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-cxx17.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-fix-xml.diff
</span> 
 conflicts_build     google-test
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.cxx_standard   2011
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 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;'>+# GNU mode required for __unix__ macro used in ANGLE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cxxflags-append   -std=gnu++17 -Wno-error=register
</span> 
 # https://trac.macports.org/ticket/36329
 configure.perl      /usr/bin/perl
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -190,6 +195,10 @@ post-patch {
</span>     reinplace "s:-stdlib=libstdc\+\+::" \
         ${worksrcpath}/Source/autotools/SetupCompilerFlags.m4
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # C++17 is required by ICU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s:-std=c++11:-std=c++17:" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${worksrcpath}/Source/autotools/SetupCompilerFlags.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     # https://bugs.webkit.org/show_bug.cgi?id=126329
     # In file included from Source/JavaScriptCore/runtime/JSGlobalObject.cpp:83:
     # ./Source/JavaScriptCore/API/ObjCCallbackFunction.h:32:9: fatal error: 'JavaScriptCore/JSCallbackFunction.h' file not found
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -246,10 +255,6 @@ variant video description {Enable HTML5 video support using gstreamer} {
</span> 
 default_variants    +video
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {[string match *clang* ${configure.cxx}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.cxxflags-append -Wno-c++11-extensions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> livecheck.type      regex
 livecheck.url       http://webkitgtk.org/releases/
 livecheck.regex     "webkitgtk-(2\\.4(?:\\.\\d+)*)"
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/webkit-gtk/files/patch-cxx17.diff b/www/webkit-gtk/files/patch-cxx17.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..15c1909ceda
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/webkit-gtk/files/patch-cxx17.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,81 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Source/WTF/wtf/StdLibExtras.h.orig     2016-04-10 10:48:36
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Source/WTF/wtf/StdLibExtras.h  2024-12-16 13:51:17
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -320,78 +320,7 @@
</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;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// This adds various C++14 features for versions of the STL that may not yet have them.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-namespace std {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// MSVC 2013 supports std::make_unique already.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if !defined(_MSC_VER) || _MSC_VER < 1800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-template<class T> struct _Unique_if {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    typedef unique_ptr<T> _Single_object;
</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;'>+-template<class T> struct _Unique_if<T[]> {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    typedef unique_ptr<T[]> _Unknown_bound;
</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;'>+-template<class T, size_t N> struct _Unique_if<T[N]> {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    typedef void _Known_bound;
</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;'>+-template<class T, class... Args> inline typename _Unique_if<T>::_Single_object
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-make_unique(Args&&... args)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return unique_ptr<T>(new T(std::forward<Args>(args)...));
</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;'>+-template<class T> inline typename _Unique_if<T>::_Unknown_bound
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-make_unique(size_t n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    typedef typename remove_extent<T>::type U;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return unique_ptr<T>(new U[n]());
</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;'>+-template<class T, class... Args> typename _Unique_if<T>::_Known_bound
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-make_unique(Args&&...) = delete;
</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;'>+-// Compile-time integer sequences
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3658.html
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// (Note that we only implement index_sequence, and not the more generic integer_sequence).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-template<size_t... indexes> struct index_sequence {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    static size_t size() { return sizeof...(indexes); }
</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;'>+-template<size_t currentIndex, size_t...indexes> struct make_index_sequence_helper;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-template<size_t...indexes> struct make_index_sequence_helper<0, indexes...> {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    typedef std::index_sequence<indexes...> type;
</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;'>+-template<size_t currentIndex, size_t...indexes> struct make_index_sequence_helper {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    typedef typename make_index_sequence_helper<currentIndex - 1, currentIndex - 1, indexes...>::type type;
</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;'>+-template<size_t length> struct make_index_sequence : public make_index_sequence_helper<length>::type { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if COMPILER_SUPPORTS(CXX_USER_LITERALS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// These literals are available in C++14, so once we require C++14 compilers we can get rid of them here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// (User-literals need to have a leading underscore so we add it here - the "real" literals don't have underscores).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-namespace literals {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-namespace chrono_literals {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    CONSTEXPR inline chrono::seconds operator"" _s(unsigned long long s)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return chrono::seconds(static_cast<chrono::seconds::rep>(s));
</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;'>+-    CONSTEXPR chrono::milliseconds operator"" _ms(unsigned long long ms)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return chrono::milliseconds(static_cast<chrono::milliseconds::rep>(ms));
</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;'>+-#endif
</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;'>+ using WTF::KB;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using WTF::MB;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using WTF::insertIntoBoundedVector;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/webkit-gtk/files/patch-fix-xml.diff b/www/webkit-gtk/files/patch-fix-xml.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d1e87d557b5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/webkit-gtk/files/patch-fix-xml.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/Source/WebCore/xml/XSLTProcessor.h b/Source/WebCore/xml/XSLTProcessor.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 518e1e2..6ffee02 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Source/WebCore/xml/XSLTProcessor.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Source/WebCore/xml/XSLTProcessor.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -64,7 +64,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void reset();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    static void parseErrorFunc(void* userData, xmlError*);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    static void parseErrorFunc(void* userData, const xmlError*);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static void genericErrorFunc(void* userData, const char* msg, ...);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Only for libXSLT callbacks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/Source/WebCore/xml/XSLTProcessorLibxslt.cpp b/Source/WebCore/xml/XSLTProcessorLibxslt.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8093118..cd68332 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Source/WebCore/xml/XSLTProcessorLibxslt.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Source/WebCore/xml/XSLTProcessorLibxslt.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -77,7 +77,7 @@ void XSLTProcessor::genericErrorFunc(void*, const char*, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // It would be nice to do something with this error message.
</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;'>+-void XSLTProcessor::parseErrorFunc(void* userData, xmlError* error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void XSLTProcessor::parseErrorFunc(void* userData, const xmlError* error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PageConsole* console = static_cast<PageConsole*>(userData);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (!console)
</span></pre><pre style='margin:0'>

</pre>