diff options
Diffstat (limited to 'user/qt5-qtwebkit')
-rw-r--r-- | user/qt5-qtwebkit/0001-Add-ARM-64-support.patch | 13 | ||||
-rw-r--r-- | user/qt5-qtwebkit/APKBUILD | 141 | ||||
-rw-r--r-- | user/qt5-qtwebkit/armv6.patch | 72 | ||||
-rw-r--r-- | user/qt5-qtwebkit/fix-execinfo.patch | 20 | ||||
-rw-r--r-- | user/qt5-qtwebkit/fix-rpath.patch | 11 | ||||
-rw-r--r-- | user/qt5-qtwebkit/glib-compat.patch | 37 | ||||
-rw-r--r-- | user/qt5-qtwebkit/icu-68.patch | 124 | ||||
-rw-r--r-- | user/qt5-qtwebkit/icu-75.patch | 55 | ||||
-rw-r--r-- | user/qt5-qtwebkit/jsc-musl.patch | 32 | ||||
-rw-r--r-- | user/qt5-qtwebkit/missing-header.patch | 11 | ||||
-rw-r--r-- | user/qt5-qtwebkit/pic.patch | 11 | ||||
-rw-r--r-- | user/qt5-qtwebkit/ppc-llint.patch | 32 | ||||
-rw-r--r-- | user/qt5-qtwebkit/ppc-ucontext.patch | 15 | ||||
-rw-r--r-- | user/qt5-qtwebkit/ppc64-llint.patch | 28 | ||||
-rw-r--r-- | user/qt5-qtwebkit/webkit-offlineasm-warnings-ruby27.patch | 46 |
15 files changed, 538 insertions, 110 deletions
diff --git a/user/qt5-qtwebkit/0001-Add-ARM-64-support.patch b/user/qt5-qtwebkit/0001-Add-ARM-64-support.patch deleted file mode 100644 index 73f5c97f8..000000000 --- a/user/qt5-qtwebkit/0001-Add-ARM-64-support.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h -index 4594ec8..639f28f 100644 ---- a/Source/WTF/wtf/Platform.h -+++ b/Source/WTF/wtf/Platform.h -@@ -342,7 +342,7 @@ - #endif - #endif - --#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(SPARC) || CPU(MIPS64) -+#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(SPARC) || CPU(MIPS64) || CPU(AARCH64) - #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 - #endif - diff --git a/user/qt5-qtwebkit/APKBUILD b/user/qt5-qtwebkit/APKBUILD index 36b624e8a..71f3238aa 100644 --- a/user/qt5-qtwebkit/APKBUILD +++ b/user/qt5-qtwebkit/APKBUILD @@ -1,72 +1,103 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=qt5-qtwebkit -_pkgname=qtwebkit-opensource-src -pkgver=5.9.1 +_realname=qtwebkit +pkgver=5.212.0_git20200924 +_ts=1600955993 pkgrel=4 -pkgdesc="Qt 5 - WebKit components" -url="https://www.qt.io/" +pkgdesc="Open source Web browser engine" +url="https://github.com/qtwebkit/qtwebkit/wiki" arch="all" -options="!check" -license="LGPL-2.0 with exceptions OR GPL-3.0 with exceptions" -depends="" -depends_dev="qt5-qtdeclarative-dev gstreamer-dev gst-plugins-base-dev - libxslt-dev mesa-dev icu-dev libxext-dev glib-dev libxcomposite-dev - libxrender-dev - " -makedepends="$depends_dev bison flex fontconfig-dev gperf libjpeg-turbo-dev - libpng-dev libwebp-dev pcre-dev qt5-qtbase-dev ruby sqlite-dev zlib-dev" +options="!check" # Tests fail (surprise), require X11. +license="LGPL-2.1+ AND BSD-3-Clause AND Others" +depends="gst-plugins-base" +depends_dev="qt5-qtbase-dev" +makedepends="$depends_dev ninja sqlite-dev icu-dev ruby perl bison flex gperf + libxml2-dev libxslt-dev libjpeg-turbo-dev libpng-dev zlib-dev glib-dev + gstreamer-dev fontconfig-dev qt5-qtsensors-dev qt5-qtpositioning-dev + qt5-qtdeclarative-dev qt5-qtwebchannel-dev libxcomposite-dev cmake + libxrender-dev gst-plugins-base-dev hyphen-dev libexecinfo-dev + ruby-dev glib-dev libgcrypt-dev libtasn1-dev" subpackages="$pkgname-dev" -source="https://download.qt.io/official_releases/qt/${pkgver%.*}/$pkgver/submodules/$_pkgname-$pkgver.tar.xz - pic.patch - fix-rpath.patch - fix-execinfo.patch - 0001-Add-ARM-64-support.patch +#source="https://github.com/qtwebkit/qtwebkit/releases/download/$_realname-$_realver/$_realname-$_realver.tar.xz +source="https://download.qt.io/snapshots/ci/qtwebkit/${pkgver%.*}/$_ts/src/submodules/$_realname-opensource-src-${pkgver%.*}.tar.xz + armv6.patch + glib-compat.patch + icu-68.patch + icu-75.patch + jsc-musl.patch + missing-header.patch + ppc-llint.patch + ppc-ucontext.patch + ppc64-llint.patch + webkit-offlineasm-warnings-ruby27.patch " -builddir="$srcdir"/$_pkgname-$pkgver - -prepare() { - default_prepare - # remove some bundled - mkdir Source/ThirdParty/orig - mv Source/ThirdParty/gtest/ \ - Source/ThirdParty/qunit/ \ - Source/ThirdParty/orig/ - syncqt.pl -version $pkgver Source/sync.profile -} +builddir="$srcdir"/$_realname-opensource-src-${pkgver%.*} build() { - local _maybe_smaller="" - cd "$builddir" + if [ "$CBUILD" != "$CHOST" ]; then + CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" + fi + export CXXFLAGS="$CXXFLAGS -Wno-deprecated-copy -Wno-deprecated-declarations" - # On 32-bit x86, ld.bfd will run out of memory if debugging information - # is built. See https://sourceware.org/bugzilla/show_bug.cgi?id=23470 - # for more information. - case "$CARCH" in - pmmx) _maybe_smaller="QMAKE_CXXFLAGS_DEBUG+=-g0" + case "${CARCH}" in + armv7|pmmx|ppc) + # 32-bit memory ceiling (#922) + BUILD_TYPE="MinSizeRel"; + LDFLAGS="${LDFLAGS} -Wl,--strip-debug"; + ;; + *) + BUILD_TYPE="RelWithDebugInfo"; + ;; esac - qmake $_maybe_smaller - - # /usr/include/fortify/stdlib.h:20:25: fatal error: stdlib.h: No such file or directory - # see: http://stackoverflow.com/questions/37218953/isystem-on-a-system-include-directory-causes-errors - # see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71090 - # see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129 - qmake Source/JavaScriptCore/LLIntOffsetsExtractor.pro -o \ - Source/JavaScriptCore/Makefile.LLIntOffsetsExtractor - sed -i 's:-isystem /usr/include ::' \ - Source/JavaScriptCore/Makefile.LLIntOffsetsExtractor - + # We can enable the JIT when it is stable on all Tier 1 platforms: + # pmmx (ensure no SSE) + # ppc + # ppc64 + # + # DONE: + # aarch64 + # armv7 + # x86_64 + cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_SHARED_LIBS=True \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + -DENABLE_JIT=OFF \ + -DENABLE_PRINT_SUPPORT=ON \ + -DENABLE_QT_WEBCHANNEL=ON \ + -DENABLE_SAMPLING_PROFILER=OFF \ + -DPORT=Qt \ + -DUSE_SYSTEM_MALLOC=ON \ + -DUSE_WOFF2=OFF \ + -DENABLE_MEDIA_SOURCE=ON \ + -DENABLE_VIDEO=ON \ + -DENABLE_WEB_AUDIO=ON \ + -DUSE_GSTREAMER=ON \ + ${CMAKE_CROSSOPTS} . make } +check() { + CTEST_OUTPUT_ON_FAILURE=TRUE ctest +} + package() { - cd "$builddir" - make install INSTALL_ROOT="$pkgdir" - sed -i -e 's:-L/home[^ ]\+::g' "$pkgdir"/usr/lib/pkgconfig/*.pc + make DESTDIR="$pkgdir" install } -sha512sums="79316ab746a230fdb290e28629d7cec5fca75119ba8868060742c682ab86490de9ffd8e517569aa7412f35fd709568dbb5f7d2d467bdb4461e192f8b05d6f1e5 qtwebkit-opensource-src-5.9.1.tar.xz -9a62a5e7af91c44311b517608262f88b5bc607e75dc5878dd08b0a0872ec03fb7a566df0a41413f7e60beb1b9880e24f084b90c38ed50d4219ec2ad6af9bd62f pic.patch -00d59c0cdb58ae8e7cf6bc3d03f133697e74c267ccebe12238bcdc274d4c90210b82c2d8bdf0e949cd43da13a4fd8a4c35fb54a00ed5102a4ac4d23aa002d0fe fix-rpath.patch -f17c2f4b90090c8f12e4ba1f2cbd7a9f496c8de024ba6e0d55b98e5b89ab89298aff84f39e81905e0491fe6bd11544633a8b191403a866e16ed654d44cf8dc6f fix-execinfo.patch -af5097d44f73de156ca31a5423136301dfc12ae693e20c4702bf3f1c6e16395f3912e9268582480ba3177021f37d4cae3b84d4b23eeb063fdc40f2444d3b34c8 0001-Add-ARM-64-support.patch" +sha512sums="e2983ac291654ac75a8cdaaa1ca16810ae047e8d78c8910c415ab76e6efa532b75b119be8f053f00214ee5526099a75930becfbd23e8f7a4c08be32e5f41a1d7 qtwebkit-opensource-src-5.212.tar.xz +ca77802de1b945c05b6a88d5cc0cbb093a751ef16626d221c8b2ca5cf841f5d42fffe62087df1ce0964f8ce72148c0109ff85e5cef3390125c133b310031028e armv6.patch +9f42f3d64657fb9487d9299ad5931381f9aa91a746a5986dc361def5e9a6e02933054a66132fa99057460ad6de0c19e9b51e07594451cc4f38b19012a69d205c glib-compat.patch +5f0ca182c68c55a6f221e96bf2221784c7126006ea8db3e9eee2b66dbdda18d7d0f9830e8345ac2b0bc6f557af5d2a54a321b06be4a2c845dd1003282b053443 icu-68.patch +240ec1d145eee861c45da753b5f4b01a7aadeee4de604a701de9d326ab02a3565bd63398c98d820d7eae498d28cf8eb0b53615f634c3791915cae35bbd3e263a icu-75.patch +9e3638d4d5c6e56510525931b278c8d6e28134917c300837b4eccf1b9298af1e274668318af82091137e99b83da0f78904084b7ee9dd8422b347a0f35e765c31 jsc-musl.patch +ee3d06d3c350980a2a042961b6943d42706599b39270addce3904535811b18a2af8f74842f2d21267ce71250b97c05de600ec416e042f4d1cdbc2701711b5f4a missing-header.patch +4a3a15f8b1e63cade07c589be45afd794b45b34ee98e4d2d3fc2f52662c26c518d400b44c9314e41113cad847b9efd544d2a4c02425c9892ca9729e218ae9306 ppc-llint.patch +48f81c6a2c0f4e9b215dada4c0bebdafc66feb75178a7b1ca661f2bbcddd6b573e7db4dd179f6e4b6345c7ebcf17ce1c6647cc6ce39dbac8ba68f8863a98bdc0 ppc-ucontext.patch +db98d710815eb68f1fb025098b04c34b33518750c193e702383ca879e145c52ba4786fa4721f384f01f90231c32be9478d507c1000eb761621751edcd071b966 ppc64-llint.patch +1431c6329fb9ef86dbe929a4002881f6a511aa8a2be684a7c96ea7ea48af53b4f0d96bd8e8367289080bed674ba35cab002747cf3820a6831e60f7ab7a53d3cc webkit-offlineasm-warnings-ruby27.patch" diff --git a/user/qt5-qtwebkit/armv6.patch b/user/qt5-qtwebkit/armv6.patch new file mode 100644 index 000000000..d2911d6d7 --- /dev/null +++ b/user/qt5-qtwebkit/armv6.patch @@ -0,0 +1,72 @@ +From 7cc86ebe881f36bfef18d8eeee666d2a55eae892 Mon Sep 17 00:00:00 2001 +From: Guilherme Iscaro <iscaro@profusion.mobi> +Date: Fri, 31 Mar 2017 10:31:49 -0300 +Subject: [PATCH] Fix build on ARMv6. + +The ARMv6 and older architures does not support the movw and movl +instructions, thus causing a build break. +This patch fix the problem by creating a new offlineasm instruction, +which will use the ldr instruction to load a immediate into a register. + +https://bugs.webkit.org/show_bug.cgi?id=141288 + +Reviewed by NOBODY (OOPS!). + +* llint/LowLevelInterpreter.asm: +* offlineasm/arm.rb: +* offlineasm/instructions.rb: +--- + Source/JavaScriptCore/llint/LowLevelInterpreter.asm | 8 +++++++- + Source/JavaScriptCore/offlineasm/arm.rb | 2 ++ + Source/JavaScriptCore/offlineasm/instructions.rb | 3 ++- + 3 files changed, 11 insertions(+), 2 deletions(-) + +diff --git Source/JavaScriptCore/llint/LowLevelInterpreter.asm Source/JavaScriptCore/llint/LowLevelInterpreter.asm +index ab3c0c8e771..6c32eef8852 100644 +--- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm ++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +@@ -1167,7 +1167,13 @@ macro setEntryAddress(index, label) + move index, t4 + storep t1, [a0, t4, 8] + elsif ARM or ARMv7 or ARMv7_TRADITIONAL +- mvlbl (label - _relativePCBase), t4 ++ if ARM ++ ldrlbl t4, label ++ ldrlbl t3, _relativePCBase ++ subp t4, t3, t4 ++ else ++ mvlbl (label - _relativePCBase), t4 ++ end + addp t4, t1, t4 + move index, t3 + storep t4, [a0, t3, 4] +diff --git Source/JavaScriptCore/offlineasm/arm.rb Source/JavaScriptCore/offlineasm/arm.rb +index c8064a59196..a9c40c8995c 100644 +--- a/Source/JavaScriptCore/offlineasm/arm.rb ++++ b/Source/JavaScriptCore/offlineasm/arm.rb +@@ -504,6 +504,8 @@ class Instruction + when "mvlbl" + $asm.puts "movw #{operands[1].armOperand}, \#:lower16:#{operands[0].value}" + $asm.puts "movt #{operands[1].armOperand}, \#:upper16:#{operands[0].value}" ++ when "ldrlbl" ++ $asm.puts "ldr #{operands[0].armOperand}, =#{operands[1].value}" + when "nop" + $asm.puts "nop" + when "bieq", "bpeq", "bbeq" +diff --git Source/JavaScriptCore/offlineasm/instructions.rb Source/JavaScriptCore/offlineasm/instructions.rb +index bbfce7193b3..8cc1cb961ce 100644 +--- a/Source/JavaScriptCore/offlineasm/instructions.rb ++++ b/Source/JavaScriptCore/offlineasm/instructions.rb +@@ -261,7 +261,8 @@ X86_INSTRUCTIONS = + ARM_INSTRUCTIONS = + [ + "clrbp", +- "mvlbl" ++ "mvlbl", ++ "ldrlbl" + ] + + ARM64_INSTRUCTIONS = +-- +2.12.1 + diff --git a/user/qt5-qtwebkit/fix-execinfo.patch b/user/qt5-qtwebkit/fix-execinfo.patch deleted file mode 100644 index 6fbf4ed8f..000000000 --- a/user/qt5-qtwebkit/fix-execinfo.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- webkitgtk-2.2.0.orig/Source/WTF/wtf/Assertions.cpp -+++ webkitgtk-2.2.0/Source/WTF/wtf/Assertions.cpp -@@ -64,7 +64,7 @@ - #include <windows.h> - #endif - --#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID) -+#if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__)) && !OS(ANDROID) - #include <cxxabi.h> - #include <dlfcn.h> - #include <execinfo.h> -@@ -242,7 +242,7 @@ - - void WTFGetBacktrace(void** stack, int* size) - { --#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID) -+#if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__)) && !OS(ANDROID) - *size = backtrace(stack, *size); - #elif OS(WINDOWS) && !OS(WINCE) - // The CaptureStackBackTrace function is available in XP, but it is not defined diff --git a/user/qt5-qtwebkit/fix-rpath.patch b/user/qt5-qtwebkit/fix-rpath.patch deleted file mode 100644 index 6b08fd1a3..000000000 --- a/user/qt5-qtwebkit/fix-rpath.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./Tools/qmake/mkspecs/features/unix/default_post.prf.orig -+++ ./Tools/qmake/mkspecs/features/unix/default_post.prf -@@ -59,8 +59,6 @@ - } - } - --contains(TEMPLATE, app): CONFIG += rpath -- - CONFIG(debug, debug|release)|force_debug_info { - # Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase. - !force_static_libs_as_shared:config_gnuld: QMAKE_LFLAGS += -Wl,--no-keep-memory diff --git a/user/qt5-qtwebkit/glib-compat.patch b/user/qt5-qtwebkit/glib-compat.patch new file mode 100644 index 000000000..0873e8d4f --- /dev/null +++ b/user/qt5-qtwebkit/glib-compat.patch @@ -0,0 +1,37 @@ +From 5b698ba3faffd4e198a45be9fe74f53307395e4b Mon Sep 17 00:00:00 2001 +From: Fabian Vogt <fvogt@suse.de> +Date: Wed, 7 Apr 2021 13:38:09 +0200 +Subject: [PATCH] Remove invalid g_object declarations to fix build with glib + >= 2.68 + +g_object_ref_sink is defined as a macro meanwhile and so the build fails. +Just remove the declarations, glib.h is included anyway. +--- + Source/WTF/wtf/glib/GRefPtr.h | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/Source/WTF/wtf/glib/GRefPtr.h b/Source/WTF/wtf/glib/GRefPtr.h +index 06133d82cb35..d9a1d2f145f5 100644 +--- a/Source/WTF/wtf/glib/GRefPtr.h ++++ b/Source/WTF/wtf/glib/GRefPtr.h +@@ -29,9 +29,6 @@ + #include <algorithm> + #include <glib.h> + +-extern "C" void g_object_unref(gpointer); +-extern "C" gpointer g_object_ref_sink(gpointer); +- + namespace WTF { + + enum GRefPtrAdoptType { GRefPtrAdopt }; +--- qtwebkit-opensource-src-5.212/Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp.old 2020-09-22 06:30:04.000000000 -0500 ++++ qtwebkit-opensource-src-5.212/Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp 2022-06-12 02:35:30.360000000 -0500 +@@ -230,7 +230,7 @@ + [](GstAppSink* sink, gpointer userData) -> GstFlowReturn { + return static_cast<AudioFileReader*>(userData)->handleSample(sink); + }, +- { nullptr } ++ nullptr + }; + gst_app_sink_set_callbacks(GST_APP_SINK(sink), &callbacks, this, 0); + diff --git a/user/qt5-qtwebkit/icu-68.patch b/user/qt5-qtwebkit/icu-68.patch new file mode 100644 index 000000000..70ee2a06d --- /dev/null +++ b/user/qt5-qtwebkit/icu-68.patch @@ -0,0 +1,124 @@ +ICU uses uncapital bools now. + +Commit: https://github.com/unicode-org/icu/commit/c3fe7e09d844 + +--- a/Source/WebCore/platform/text/TextCodecICU.cpp.orig 2020-03-04 17:16:37 UTC ++++ b/Source/WebCore/platform/text/TextCodecICU.cpp +@@ -308,7 +308,7 @@ void TextCodecICU::createICUConverter() const + m_converterICU = ucnv_open(m_canonicalConverterName, &err); + ASSERT(U_SUCCESS(err)); + if (m_converterICU) +- ucnv_setFallback(m_converterICU, TRUE); ++ ucnv_setFallback(m_converterICU, true); + } + + int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err) +--- a/Source/WebCore/platform/text/icu/UTextProvider.h.orig 2020-03-04 17:16:37 UTC ++++ b/Source/WebCore/platform/text/icu/UTextProvider.h +@@ -80,12 +80,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text + // Ensure chunk offset is well formed if computed offset exceeds int32_t range. + ASSERT(offset < std::numeric_limits<int32_t>::max()); + text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0; +- isAccessible = TRUE; ++ isAccessible = true; + return true; + } + if (nativeIndex >= nativeLength && text->chunkNativeLimit == nativeLength) { + text->chunkOffset = text->chunkLength; +- isAccessible = FALSE; ++ isAccessible = false; + return true; + } + } else { +@@ -94,12 +94,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text + // Ensure chunk offset is well formed if computed offset exceeds int32_t range. + ASSERT(offset < std::numeric_limits<int32_t>::max()); + text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0; +- isAccessible = TRUE; ++ isAccessible = true; + return true; + } + if (nativeIndex <= 0 && !text->chunkNativeStart) { + text->chunkOffset = 0; +- isAccessible = FALSE; ++ isAccessible = false; + return true; + } + } +--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp.orig 2020-03-04 17:16:37 UTC ++++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp +@@ -100,23 +100,23 @@ static UBool uTextLatin1Access(UText* uText, int64_t i + if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) { + // Already inside the buffer. Set the new offset. + uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart); +- return TRUE; ++ return true; + } + if (index >= length && uText->chunkNativeLimit == length) { + // Off the end of the buffer, but we can't get it. + uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart); +- return FALSE; ++ return false; + } + } else { + if (index <= uText->chunkNativeLimit && index > uText->chunkNativeStart) { + // Already inside the buffer. Set the new offset. + uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart); +- return TRUE; ++ return true; + } + if (!index && !uText->chunkNativeStart) { + // Already at the beginning; can't go any farther. + uText->chunkOffset = 0; +- return FALSE; ++ return false; + } + } + +@@ -144,7 +144,7 @@ static UBool uTextLatin1Access(UText* uText, int64_t i + + uText->nativeIndexingLimit = uText->chunkLength; + +- return TRUE; ++ return true; + } + + static int32_t uTextLatin1Extract(UText* uText, int64_t start, int64_t limit, UChar* dest, int32_t destCapacity, UErrorCode* status) +@@ -336,7 +336,7 @@ static int64_t uTextLatin1ContextAwareNativeLength(UTe + static UBool uTextLatin1ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward) + { + if (!text->context) +- return FALSE; ++ return false; + int64_t nativeLength = uTextLatin1ContextAwareNativeLength(text); + UBool isAccessible; + if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible)) +@@ -356,7 +356,7 @@ static UBool uTextLatin1ContextAwareAccess(UText* text + ASSERT(newContext == UTextProviderContext::PriorContext); + textLatin1ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward); + } +- return TRUE; ++ return true; + } + + static int32_t uTextLatin1ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode) +--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp.orig 2020-03-04 17:16:37 UTC ++++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp +@@ -125,7 +125,7 @@ static inline int64_t uTextUTF16ContextAwareNativeLeng + static UBool uTextUTF16ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward) + { + if (!text->context) +- return FALSE; ++ return false; + int64_t nativeLength = uTextUTF16ContextAwareNativeLength(text); + UBool isAccessible; + if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible)) +@@ -145,7 +145,7 @@ static UBool uTextUTF16ContextAwareAccess(UText* text, + ASSERT(newContext == UTextProviderContext::PriorContext); + textUTF16ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward); + } +- return TRUE; ++ return true; + } + + static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode) diff --git a/user/qt5-qtwebkit/icu-75.patch b/user/qt5-qtwebkit/icu-75.patch new file mode 100644 index 000000000..aaba87abd --- /dev/null +++ b/user/qt5-qtwebkit/icu-75.patch @@ -0,0 +1,55 @@ +Required for compatibility with ICU 75. + +--- qtwebkit-opensource-src-5.212/Source/cmake/OptionsCommon.cmake.old 2020-09-22 06:30:04.000000000 -0500 ++++ qtwebkit-opensource-src-5.212/Source/cmake/OptionsCommon.cmake 2024-08-12 23:20:50.344794822 -0500 +@@ -31,7 +31,7 @@ + if (COMPILER_IS_GCC_OR_CLANG) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-exceptions -fno-strict-aliasing") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-strict-aliasing -fno-rtti") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") + endif () + + if (COMPILER_IS_CLANG AND CMAKE_GENERATOR STREQUAL "Ninja") +--- qtwebkit-opensource-src-5.212/Source/WTF/wtf/StdLibExtras.h.old 2020-09-22 06:30:04.000000000 -0500 ++++ qtwebkit-opensource-src-5.212/Source/WTF/wtf/StdLibExtras.h 2024-08-12 23:38:15.214914980 -0500 +@@ -292,7 +292,7 @@ + // This adds various C++14 features for versions of the STL that may not yet have them. + namespace std { + // MSVC 2013 supports std::make_unique already. +-#if !defined(_MSC_VER) || _MSC_VER < 1800 ++#if 0 + template<class T> struct _Unique_if { + typedef unique_ptr<T> _Single_object; + }; +@@ -323,7 +323,7 @@ + #endif + + // MSVC 2015 supports these functions. +-#if !COMPILER(MSVC) || _MSC_VER < 1900 ++#if 0 + // Compile-time integer sequences + // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3658.html + // (Note that we only implement index_sequence, and not the more generic integer_sequence). +--- qtwebkit-opensource-src-5.212/Source/WebCore/xml/XSLTProcessor.h.old 2020-09-22 06:30:04.000000000 -0500 ++++ qtwebkit-opensource-src-5.212/Source/WebCore/xml/XSLTProcessor.h 2024-08-13 00:27:21.354699921 -0500 +@@ -64,7 +64,7 @@ + + void reset(); + +- static void parseErrorFunc(void* userData, xmlError*); ++ static void parseErrorFunc(void* userData, const xmlError*); + static void genericErrorFunc(void* userData, const char* msg, ...); + + // Only for libXSLT callbacks +--- qtwebkit-opensource-src-5.212/Source/WebCore/xml/XSLTProcessorLibxslt.cpp.old 2020-09-22 06:30:04.000000000 -0500 ++++ qtwebkit-opensource-src-5.212/Source/WebCore/xml/XSLTProcessorLibxslt.cpp 2024-08-13 00:28:32.207221034 -0500 +@@ -78,7 +78,7 @@ + // It would be nice to do something with this error message. + } + +-void XSLTProcessor::parseErrorFunc(void* userData, xmlError* error) ++void XSLTProcessor::parseErrorFunc(void* userData, const xmlError* error) + { + PageConsoleClient* console = static_cast<PageConsoleClient*>(userData); + if (!console) diff --git a/user/qt5-qtwebkit/jsc-musl.patch b/user/qt5-qtwebkit/jsc-musl.patch new file mode 100644 index 000000000..0165f21dc --- /dev/null +++ b/user/qt5-qtwebkit/jsc-musl.patch @@ -0,0 +1,32 @@ +--- a/Source/JavaScriptCore/runtime/Options.h 2020-04-14 00:51:51.000000000 +0200 ++++ b/Source/JavaScriptCore/runtime/Options.h 2020-04-14 00:51:51.000000000 +0200 +@@ -40,6 +40,16 @@ + + namespace JSC { + ++#if defined(__GLIBC__) ++constexpr unsigned jscMaxPerThreadStack = 4 * MB; ++constexpr unsigned jscSoftReservedZoneSize = 128 * KB; ++constexpr unsigned jscReservedZoneSize = 64 * KB; ++#else ++constexpr unsigned jscMaxPerThreadStack = 80 * KB; ++constexpr unsigned jscSoftReservedZoneSize = 32 * KB; ++constexpr unsigned jscReservedZoneSize = 16 * KB; ++#endif ++ + // How do JSC VM options work? + // =========================== + // The JSC_OPTIONS() macro below defines a list of all JSC options in use, +@@ -112,9 +122,9 @@ + \ + v(bool, reportMustSucceedExecutableAllocations, false, nullptr) \ + \ +- v(unsigned, maxPerThreadStackUsage, 4 * MB, nullptr) \ +- v(unsigned, reservedZoneSize, 128 * KB, nullptr) \ +- v(unsigned, errorModeReservedZoneSize, 64 * KB, nullptr) \ ++ v(unsigned, maxPerThreadStackUsage, jscMaxPerThreadStack, nullptr) \ ++ v(unsigned, reservedZoneSize, jscSoftReservedZoneSize, nullptr) \ ++ v(unsigned, errorModeReservedZoneSize, jscReservedZoneSize, nullptr) \ + \ + v(bool, crashIfCantAllocateJITMemory, false, nullptr) \ + v(unsigned, jitMemoryReservationSize, 0, "Set this number to change the executable allocation size in ExecutableAllocatorFixedVMPool. (In bytes.)") \ diff --git a/user/qt5-qtwebkit/missing-header.patch b/user/qt5-qtwebkit/missing-header.patch new file mode 100644 index 000000000..da0eed43c --- /dev/null +++ b/user/qt5-qtwebkit/missing-header.patch @@ -0,0 +1,11 @@ +The GCC 13 C++ stdlib doesn't include <stdint.h> any more, which is used for uint32_t. +--- qtwebkit-opensource-src-5.212/Source/ThirdParty/ANGLE/src/common/mathutil.h.old 2020-09-22 06:30:04.000000000 -0500 ++++ qtwebkit-opensource-src-5.212/Source/ThirdParty/ANGLE/src/common/mathutil.h 2024-05-27 14:43:22.625301664 -0500 +@@ -14,6 +14,7 @@ + + #include <limits> + #include <algorithm> ++#include <stdint.h> + #include <string.h> + #include <stdlib.h> + diff --git a/user/qt5-qtwebkit/pic.patch b/user/qt5-qtwebkit/pic.patch deleted file mode 100644 index ef8993ee3..000000000 --- a/user/qt5-qtwebkit/pic.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./Source/WTF/wtf/InlineASM.h.orig 2013-10-07 11:36:58.995128674 +0000 -+++ ./Source/WTF/wtf/InlineASM.h 2013-10-07 11:37:28.058792290 +0000 -@@ -42,7 +42,7 @@ - #define THUMB_FUNC_PARAM(name) - #endif - --#if (OS(LINUX) || OS(FREEBSD)) && CPU(X86_64) -+#if (OS(LINUX) || OS(FREEBSD)) && (CPU(X86_64) || defined(__PIC__)) - #define GLOBAL_REFERENCE(name) #name "@plt" - #elif CPU(X86) && COMPILER(MINGW) - #define GLOBAL_REFERENCE(name) "@" #name "@4" diff --git a/user/qt5-qtwebkit/ppc-llint.patch b/user/qt5-qtwebkit/ppc-llint.patch new file mode 100644 index 000000000..7f9be4e56 --- /dev/null +++ b/user/qt5-qtwebkit/ppc-llint.patch @@ -0,0 +1,32 @@ +This fixes JavaScriptCore on big endian systems (mainly ppc). + +Without the patch, attempting to run any JS results in +a crash as the generated code was endian specific. + +--- qtwebkit/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm ++++ qtwebkit/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm +@@ -1500,13 +1500,13 @@ _llint_op_put_by_id: + loadp StructureChain::m_vector[t3], t3 + assert(macro (ok) btpnz t3, ok end) + +- loadp Structure::m_prototype[t2], t2 ++ loadp Structure::m_prototype + PayloadOffset[t2], t2 + btpz t2, .opPutByIdTransitionChainDone + .opPutByIdTransitionChainLoop: + loadp [t3], t1 + bpneq t1, JSCell::m_structureID[t2], .opPutByIdSlow + addp 4, t3 +- loadp Structure::m_prototype[t1], t2 ++ loadp Structure::m_prototype + PayloadOffset[t1], t2 + btpnz t2, .opPutByIdTransitionChainLoop + + .opPutByIdTransitionChainDone: +@@ -1984,7 +1984,7 @@ _llint_throw_from_slow_path_trampoline: + # When throwing from the interpreter (i.e. throwing from LLIntSlowPaths), so + # the throw target is not necessarily interpreted code, we come to here. + # This essentially emulates the JIT's throwing protocol. +- loadp Callee[cfr], t1 ++ loadp Callee + PayloadOffset[cfr], t1 + andp MarkedBlockMask, t1 + loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t1], t1 + copyCalleeSavesToVMCalleeSavesBuffer(t1, t2) diff --git a/user/qt5-qtwebkit/ppc-ucontext.patch b/user/qt5-qtwebkit/ppc-ucontext.patch new file mode 100644 index 000000000..e1b9bdfda --- /dev/null +++ b/user/qt5-qtwebkit/ppc-ucontext.patch @@ -0,0 +1,15 @@ +diff -ur a/Source/JavaScriptCore/heap/MachineStackMarker.cpp b/Source/JavaScriptCore/heap/MachineStackMarker.cpp +--- a/Source/JavaScriptCore/heap/MachineStackMarker.cpp 2022-12-13 14:54:53.144583311 -0600 ++++ b/Source/JavaScriptCore/heap/MachineStackMarker.cpp 2022-12-13 14:55:16.829078581 -0600 +@@ -86,11 +86,7 @@ + } + + ucontext_t* userContext = static_cast<ucontext_t*>(ucontext); +-#if CPU(PPC) +- thread->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; +-#else + thread->suspendedMachineContext = userContext->uc_mcontext; +-#endif + + // Allow suspend caller to see that this thread is suspended. + // sem_post is async-signal-safe function. It means that we can call this from a signal handler. diff --git a/user/qt5-qtwebkit/ppc64-llint.patch b/user/qt5-qtwebkit/ppc64-llint.patch new file mode 100644 index 000000000..802c00ae6 --- /dev/null +++ b/user/qt5-qtwebkit/ppc64-llint.patch @@ -0,0 +1,28 @@ +Description: fix JSCore segmentation fault on 64-bit big endian systems + In CodeBlock.cpp the code preparing the operands of op_get_from_scope writes + the property offset as pointer size (hence 64 bit) value: + . + 2141: instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand); + . + while the same slot is accessed later by the jitted code as 32 bit integer: + . + macro getProperty(slow) + loadisFromInstruction(6, t1) + . + This fails on big endian targets since the integer access takes the higher + part of the 64 bit value. +Origin: backport, https://github.com/webkit/webkit/commit/3fdde71c7d95d758 +Reviewed-by: Frank Heimes <frank.heimes@canonical.com> +Last-Update: 2021-11-24 + +--- a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm ++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +@@ -2020,7 +2020,7 @@ macro loadWithStructureCheck(operand, sl + end + + macro getProperty(slow) +- loadisFromInstruction(6, t1) ++ loadpFromInstruction(6, t1) + loadPropertyAtVariableOffset(t1, t0, t2, slow) + valueProfile(t2, 7, t0) + loadisFromInstruction(1, t0) diff --git a/user/qt5-qtwebkit/webkit-offlineasm-warnings-ruby27.patch b/user/qt5-qtwebkit/webkit-offlineasm-warnings-ruby27.patch new file mode 100644 index 000000000..d25c3b1d6 --- /dev/null +++ b/user/qt5-qtwebkit/webkit-offlineasm-warnings-ruby27.patch @@ -0,0 +1,46 @@ +From c7d19a492d97f9282a546831beb918e03315f6ef Mon Sep 17 00:00:00 2001 +From: Adrian Perez de Castro <aperez@igalia.com> +Date: Wed, 15 Jan 2020 22:15:38 +0000 +Subject: [PATCH] Offlineasm warnings with newer Ruby versions + https://bugs.webkit.org/show_bug.cgi?id=206233 + +Reviewed by Yusuke Suzuki. + +Avoid a warning about using Object#=~ on Annotation instances, which +has been deprecated in Ruby 2.7. + +* offlineasm/parser.rb: Swap checks to prevent applying the =~ operator +to Annotation instances, which do not define it. + + +Canonical link: https://commits.webkit.org/219400@main +git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254637 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/JavaScriptCore/ChangeLog | 13 +++++++++++++ + Source/JavaScriptCore/offlineasm/parser.rb | 6 +++--- + 2 files changed, 16 insertions(+), 3 deletions(-) + +diff --git a/Source/JavaScriptCore/offlineasm/parser.rb b/Source/JavaScriptCore/offlineasm/parser.rb +index 791c81a9868d..f14c873e2dbd 100644 +--- a/Source/JavaScriptCore/offlineasm/parser.rb ++++ b/Source/JavaScriptCore/offlineasm/parser.rb +@@ -628,9 +628,7 @@ def parseSequence(final, comment) + firstCodeOrigin = @tokens[@idx].codeOrigin + list = [] + loop { +- if (@idx == @tokens.length and not final) or (final and @tokens[@idx] =~ final) +- break +- elsif @tokens[@idx].is_a? Annotation ++ if @tokens[@idx].is_a? Annotation + # This is the only place where we can encounter a global + # annotation, and hence need to be able to distinguish between + # them. +@@ -644,6 +642,8 @@ def parseSequence(final, comment) + list << Instruction.new(codeOrigin, annotationOpcode, [], @tokens[@idx].string) + @annotation = nil + @idx += 2 # Consume the newline as well. ++ elsif (@idx == @tokens.length and not final) or (final and @tokens[@idx] =~ final) ++ break + elsif @tokens[@idx] == "\n" + # ignore + @idx += 1 |