With this qtwebkit builds and packages on sparc64.
The patch is to fix another strange type_traits errors that
-fdelete-null-pointer-checks is not enough for:

/usr/local/include/c++/15.2.0/type_traits:1297:52: error: 'constexpr
std::true_type std::__is_complete_or_unbounded(__type_identity<_Tp>) [with
_Tp = WTF::Vector<unsigned char>; long unsigned int <anonymous> = 16;
true_type = true_type]' used before its definition

-- 
:wq Claudio

Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/qt5/qtwebkit/Makefile,v
diff -u -p -r1.51 Makefile
--- Makefile    28 Jun 2025 00:36:32 -0000      1.51
+++ Makefile    28 Jan 2026 13:03:26 -0000
@@ -14,7 +14,7 @@ PKGNAME =             qtwebkit-${VERSION}
 PKGSPEC =              qtwebkit->=${VERSION}v0
 
 EPOCH =                        0
-REVISION =             16
+REVISION =             17
 
 SHARED_LIBS +=  Qt5WebKit               3.1 # 5.9
 SHARED_LIBS +=  Qt5WebKitWidgets        3.1 # 5.9
@@ -39,6 +39,12 @@ WANTLIB += gstvideo-1.0 hyphen icui18n i
 WANTLIB += webp xml2 xslt z
 
 SITES =                
https://github.com/annulen/webkit/releases/download/${DISTNAME}/
+
+# needs python and c++
+COMPILER =             base-clang ports-gcc
+COMPILER_LANGS =       c c++
+
+CXXFLAGS_ports-gcc =   -fdelete-null-pointer-checks
 
 MODULES =              devel/cmake \
                        lang/python \
Index: patches/patch-Source_WebCore_page_csp_ContentSecurityPolicy_cpp
===================================================================
RCS file: patches/patch-Source_WebCore_page_csp_ContentSecurityPolicy_cpp
diff -N patches/patch-Source_WebCore_page_csp_ContentSecurityPolicy_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-Source_WebCore_page_csp_ContentSecurityPolicy_cpp     28 Jan 
2026 10:02:36 -0000
@@ -0,0 +1,16 @@
+https://src.fedoraproject.org/rpms/qt5-qtwebkit/raw/rawhide/f/qtwebkit-fix-build-gcc14.patch
+
+Index: Source/WebCore/page/csp/ContentSecurityPolicy.cpp
+--- Source/WebCore/page/csp/ContentSecurityPolicy.cpp.orig
++++ Source/WebCore/page/csp/ContentSecurityPolicy.cpp
+@@ -231,8 +231,9 @@ bool isAllowedByAllWithHashFromContent(const CSPDirect
+         auto cryptoDigest = 
CryptoDigest::create(toCryptoDigestAlgorithm(algorithm));
+         cryptoDigest->addBytes(contentCString.data(), 
contentCString.length());
+         Vector<uint8_t> digest = cryptoDigest->computeHash();
++      ContentSecurityPolicyHash hash = std::make_pair(algorithm, digest);
+         for (auto& policy : policies) {
+-            if ((policy.get()->*allowed)(std::make_pair(algorithm, digest)))
++            if ((policy.get()->*allowed)(hash))
+                 return true;
+         }
+     }

Reply via email to