From 6cbcf00a2cd0b222e78f87d129f21a94433eae48 Mon Sep 17 00:00:00 2001 From: Leonid Pliushch Date: Tue, 26 Oct 2021 21:32:39 +0000 Subject: [PATCH] enable package: qt5-qtwebkit --- ..._object-declarations-to-fix-build-wi.patch | 30 +++++ x11-packages/qt5-qtwebkit/build.sh | 12 ++ x11-packages/qt5-qtwebkit/icu-68.patch | 124 +++++++++++++++++ .../qt5-qtwebkit/no_execinfo_header.patch | 20 +++ ...testbrowser_launcherwindow_no_opengl.patch | 127 ++++++++++++++++++ .../qt5-qtwebkit/webkit-bwo141288.patch | 71 ++++++++++ 6 files changed, 384 insertions(+) create mode 100644 x11-packages/qt5-qtwebkit/0001-Remove-invalid-g_object-declarations-to-fix-build-wi.patch create mode 100644 x11-packages/qt5-qtwebkit/build.sh create mode 100644 x11-packages/qt5-qtwebkit/icu-68.patch create mode 100644 x11-packages/qt5-qtwebkit/no_execinfo_header.patch create mode 100644 x11-packages/qt5-qtwebkit/tools_qttestbrowser_launcherwindow_no_opengl.patch create mode 100644 x11-packages/qt5-qtwebkit/webkit-bwo141288.patch diff --git a/x11-packages/qt5-qtwebkit/0001-Remove-invalid-g_object-declarations-to-fix-build-wi.patch b/x11-packages/qt5-qtwebkit/0001-Remove-invalid-g_object-declarations-to-fix-build-wi.patch new file mode 100644 index 000000000..8e55ee040 --- /dev/null +++ b/x11-packages/qt5-qtwebkit/0001-Remove-invalid-g_object-declarations-to-fix-build-wi.patch @@ -0,0 +1,30 @@ +From 5b698ba3faffd4e198a45be9fe74f53307395e4b Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +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. + +(Backported to 5.212. The glib include was added later, so the description +didn't match yet.) +--- + Source/WTF/wtf/glib/GRefPtr.h | 3 --- + 1 file changed, 3 deletions(-) + +Index: qtwebkit-5.212.0-alpha4/Source/WTF/wtf/glib/GRefPtr.h +=================================================================== +--- qtwebkit-5.212.0-alpha4.orig/Source/WTF/wtf/glib/GRefPtr.h ++++ qtwebkit-5.212.0-alpha4/Source/WTF/wtf/glib/GRefPtr.h +@@ -28,9 +28,7 @@ + #include + #include + #include +- +-extern "C" void g_object_unref(gpointer); +-extern "C" gpointer g_object_ref_sink(gpointer); ++#include + + namespace WTF { + diff --git a/x11-packages/qt5-qtwebkit/build.sh b/x11-packages/qt5-qtwebkit/build.sh new file mode 100644 index 000000000..f37cd5d94 --- /dev/null +++ b/x11-packages/qt5-qtwebkit/build.sh @@ -0,0 +1,12 @@ +TERMUX_PKG_HOMEPAGE=https://github.com/qtwebkit/qtwebkit +TERMUX_PKG_DESCRIPTION="Qt 5 WebKit Library" +TERMUX_PKG_LICENSE="LGPL-2.1" +TERMUX_PKG_MAINTAINER="Simeon Huang " +TERMUX_PKG_VERSION="5.212.0-alpha4" +TERMUX_PKG_REVISION=6 +TERMUX_PKG_SRCURL="https://github.com/qtwebkit/qtwebkit/releases/download/qtwebkit-${TERMUX_PKG_VERSION}/qtwebkit-${TERMUX_PKG_VERSION}.tar.xz" +TERMUX_PKG_SHA256=9ca126da9273664dd23a3ccd0c9bebceb7bb534bddd743db31caf6a5a6d4a9e6 +TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtdeclarative, qt5-qtlocation, qt5-qtmultimedia, qt5-qtsensors, zlib, libxslt, libxcomposite, libhyphen, libwebp" +TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DPORT=Qt -DUSE_LD_GOLD=OFF -DUSE_GSTREAMER=OFF -DUSE_QT_MULTIMEDIA=ON -DENABLE_OPENGL=OFF -DENABLE_SAMPLING_PROFILER=OFF -DENABLE_WEBKIT2=OFF" +# TODO SAMPLING_PROFILER requires glibc. We might be able to patch the source to make it work with bionic diff --git a/x11-packages/qt5-qtwebkit/icu-68.patch b/x11-packages/qt5-qtwebkit/icu-68.patch new file mode 100644 index 000000000..37114ddd3 --- /dev/null +++ b/x11-packages/qt5-qtwebkit/icu-68.patch @@ -0,0 +1,124 @@ +commit 335f29d266c5b169ff1e781f9851a3a203f3198c +Author: Andreas Sturmlechner +AuthorDate: 2020-11-06 08:22:15 +0000 +Subject: dev-qt/qtwebkit: Fix build with ICU-68 +--- a/Source/WebCore/platform/text/icu/UTextProvider.h ++++ b/Source/WebCore/platform/text/icu/UTextProvider.h +@@ -80,12 +80,12 @@ + // Ensure chunk offset is well formed if computed offset exceeds int32_t range. + ASSERT(offset < std::numeric_limits::max()); + text->chunkOffset = offset < std::numeric_limits::max() ? static_cast(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 @@ + // Ensure chunk offset is well formed if computed offset exceeds int32_t range. + ASSERT(offset < std::numeric_limits::max()); + text->chunkOffset = offset < std::numeric_limits::max() ? static_cast(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 ++++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp +@@ -100,23 +100,23 @@ + if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) { + // Already inside the buffer. Set the new offset. + uText->chunkOffset = static_cast(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(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(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 @@ + + 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 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 @@ + 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 ++++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp +@@ -125,7 +125,7 @@ + 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 @@ + 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) +--- a/Source/WebCore/platform/text/TextCodecICU.cpp ++++ b/Source/WebCore/platform/text/TextCodecICU.cpp +@@ -308,7 +308,7 @@ + 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) diff --git a/x11-packages/qt5-qtwebkit/no_execinfo_header.patch b/x11-packages/qt5-qtwebkit/no_execinfo_header.patch new file mode 100644 index 000000000..d1791a77e --- /dev/null +++ b/x11-packages/qt5-qtwebkit/no_execinfo_header.patch @@ -0,0 +1,20 @@ +--- src/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp 2021-05-14 19:39:34.587524906 +0000 ++++ src.mod/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp 2021-05-14 19:38:52.431421074 +0000 +@@ -49,7 +49,7 @@ + #include + + #include +-#if OS(DARWIN) || (OS(LINUX) && !PLATFORM(GTK)) ++#if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__)) + #include + #include + #endif +@@ -187,7 +187,7 @@ + + void JSGlobalObjectInspectorController::appendAPIBacktrace(ScriptCallStack* callStack) + { +-#if OS(DARWIN) || (OS(LINUX) && !PLATFORM(GTK)) ++#if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__)) + static const int framesToShow = 31; + static const int framesToSkip = 3; // WTFGetBacktrace, appendAPIBacktrace, reportAPIException. + diff --git a/x11-packages/qt5-qtwebkit/tools_qttestbrowser_launcherwindow_no_opengl.patch b/x11-packages/qt5-qtwebkit/tools_qttestbrowser_launcherwindow_no_opengl.patch new file mode 100644 index 000000000..bd111de8f --- /dev/null +++ b/x11-packages/qt5-qtwebkit/tools_qttestbrowser_launcherwindow_no_opengl.patch @@ -0,0 +1,127 @@ +--- src/Tools/QtTestBrowser/launcherwindow.h 2021-05-15 10:11:33.614702181 +0000 ++++ src.mod/Tools/QtTestBrowser/launcherwindow.h 2021-05-15 10:07:13.279616364 +0000 +@@ -35,13 +35,6 @@ + + #include + +-#ifndef QT_NO_OPENGL +-#include +-#endif +-#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) +-#include +-#endif +- + #include + + #include +@@ -161,10 +154,6 @@ + void showFindBar(); + void find(int mode); + #endif +-#ifndef QT_NO_OPENGL +- void toggleQGLWidgetViewport(bool enable); +- void toggleQOpenGLWidgetViewport(bool enable); +-#endif + void toggleForcedAntialiasing(bool enable); + + void changeViewportUpdateMode(int mode); +--- src/Tools/QtTestBrowser/launcherwindow.cpp 2021-05-15 10:11:33.618702166 +0000 ++++ src.mod/Tools/QtTestBrowser/launcherwindow.cpp 2021-05-15 10:14:30.829994642 +0000 +@@ -170,12 +170,7 @@ + } else { + WebViewGraphicsBased* view = new WebViewGraphicsBased(splitter); + m_view = view; +- if (!m_windowOptions.useQOpenGLWidgetViewport) +- toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport); +-#ifdef QT_OPENGL_LIB +- if (!m_windowOptions.useQGLWidgetViewport) +- toggleQOpenGLWidgetViewport(m_windowOptions.useQOpenGLWidgetViewport); +-#endif ++ + view->setPage(page()); + + connect(view, SIGNAL(currentFPSUpdated(int)), this, SLOT(updateFPS(int))); +@@ -219,10 +214,6 @@ + void LauncherWindow::applyPrefs() + { + QWebSettings* settings = page()->settings(); +-#ifndef QT_NO_OPENGL +- settings->setAttribute(QWebSettings::AcceleratedCompositingEnabled, m_windowOptions.useCompositing +- && (m_windowOptions.useQGLWidgetViewport || m_windowOptions.useQOpenGLWidgetViewport)); +-#endif + settings->setAttribute(QWebSettings::TiledBackingStoreEnabled, m_windowOptions.useTiledBackingStore); + settings->setAttribute(QWebSettings::FrameFlatteningEnabled, m_windowOptions.useFrameFlattening); + settings->setAttribute(QWebSettings::WebGLEnabled, m_windowOptions.useWebGL); +@@ -437,21 +428,6 @@ + toggleTiledBackingStore->setEnabled(isGraphicsBased()); + toggleTiledBackingStore->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); + +-#ifndef QT_NO_OPENGL +- QAction* toggleQGLWidgetViewport = graphicsViewMenu->addAction("Toggle use of QGLWidget Viewport", this, SLOT(toggleQGLWidgetViewport(bool))); +- toggleQGLWidgetViewport->setCheckable(true); +- toggleQGLWidgetViewport->setChecked(m_windowOptions.useQGLWidgetViewport); +- toggleQGLWidgetViewport->setEnabled(isGraphicsBased()); +- toggleQGLWidgetViewport->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); +-#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) +- QAction* toggleQOpenGLWidgetViewport = graphicsViewMenu->addAction("Toggle use of QOpenGLWidget Viewport", this, SLOT(toggleQOpenGLWidgetViewport(bool))); +- toggleQOpenGLWidgetViewport->setCheckable(true); +- toggleQOpenGLWidgetViewport->setChecked(m_windowOptions.useQOpenGLWidgetViewport); +- toggleQOpenGLWidgetViewport->setEnabled(isGraphicsBased()); +- toggleQOpenGLWidgetViewport->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); +-#endif +-#endif +- + QMenu* viewportUpdateMenu = graphicsViewMenu->addMenu("Change Viewport Update Mode"); + viewportUpdateMenu->setEnabled(isGraphicsBased()); + viewportUpdateMenu->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); +@@ -848,13 +824,6 @@ + label->setWindowTitle(QString("Screenshot - Saved at %1").arg(fileName)); + } + #endif +- +-#ifndef QT_NO_OPENGL +- if (!m_windowOptions.useQOpenGLWidgetViewport) +- toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport); +- if (!m_windowOptions.useQGLWidgetViewport) +- toggleQOpenGLWidgetViewport(m_windowOptions.useQOpenGLWidgetViewport); +-#endif + } + + void LauncherWindow::setEditable(bool on) +@@ -1062,36 +1031,6 @@ + page()->settings()->setAttribute(QWebSettings::PluginsEnabled, !enable); + } + +-#ifndef QT_NO_OPENGL +-void LauncherWindow::toggleQGLWidgetViewport(bool enable) +-{ +- if (!isGraphicsBased()) +- return; +- +- if (enable) +- m_windowOptions.useQOpenGLWidgetViewport = false; +- m_windowOptions.useQGLWidgetViewport = enable; +- +- WebViewGraphicsBased* view = static_cast(m_view); +- view->setViewport(enable ? new QGLWidget() : 0); +-} +- +-void LauncherWindow::toggleQOpenGLWidgetViewport(bool enable) +-{ +- if (!isGraphicsBased()) +- return; +- +-#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) +- if (enable) +- m_windowOptions.useQGLWidgetViewport = false; +- m_windowOptions.useQOpenGLWidgetViewport = enable; +- +- WebViewGraphicsBased* view = static_cast(m_view); +- view->setViewport(enable ? new QOpenGLWidget() : 0); +-#endif +-} +-#endif +- + void LauncherWindow::toggleForcedAntialiasing(bool enable) + { + m_windowOptions.useForcedAntialiasing = enable; diff --git a/x11-packages/qt5-qtwebkit/webkit-bwo141288.patch b/x11-packages/qt5-qtwebkit/webkit-bwo141288.patch new file mode 100644 index 000000000..613ad9bcb --- /dev/null +++ b/x11-packages/qt5-qtwebkit/webkit-bwo141288.patch @@ -0,0 +1,71 @@ +From 7cc86ebe881f36bfef18d8eeee666d2a55eae892 Mon Sep 17 00:00:00 2001 +From: Guilherme Iscaro +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 a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm b/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 a/Source/JavaScriptCore/offlineasm/arm.rb b/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 a/Source/JavaScriptCore/offlineasm/instructions.rb b/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