From f8295738ab2b146a5744e0500de66e0ed362a587 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Wed, 30 Nov 2022 18:12:19 -0500 Subject: qt5-webkit: initial inclusion --- linhes/qt5-webkit/PKGBUILD | 51 ++++++++++++ linhes/qt5-webkit/glib-2.68.patch | 26 ++++++ linhes/qt5-webkit/icu68.patch | 170 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 247 insertions(+) create mode 100644 linhes/qt5-webkit/PKGBUILD create mode 100644 linhes/qt5-webkit/glib-2.68.patch create mode 100644 linhes/qt5-webkit/icu68.patch diff --git a/linhes/qt5-webkit/PKGBUILD b/linhes/qt5-webkit/PKGBUILD new file mode 100644 index 0000000..e706560 --- /dev/null +++ b/linhes/qt5-webkit/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: Felix Yan +# Maintainer: Antonio Rojas +# Contributor: Andrea Scarpino + +pkgname=qt5-webkit +_pkgver=5.212.0-alpha4 +_basever=5.15.3 +pkgver=${_pkgver/-/} +pkgrel=18 +arch=(x86_64) +url='https://github.com/qtwebkit/qtwebkit' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='Classes for a WebKit2 based implementation and a new QML API' +source=("https://github.com/qtwebkit/qtwebkit/releases/download/qtwebkit-$_pkgver/qtwebkit-$_pkgver.tar.xz" + icu68.patch + glib-2.68.patch + qt5-webkit-python-3.9.patch::"https://github.com/qtwebkit/qtwebkit/commit/78360c01.patch" + qt5-webkit-bison-3.7.patch::"https://github.com/qtwebkit/qtwebkit/commit/d92b11fe.patch") +depends=(qt5-location qt5-sensors qt5-webchannel libwebp libxslt libxcomposite gst-plugins-base hyphen woff2) +makedepends=(cmake ruby gperf python qt5-doc qt5-tools) +optdepends=('gst-plugins-good: Webm codec support') +sha256sums=('9ca126da9273664dd23a3ccd0c9bebceb7bb534bddd743db31caf6a5a6d4a9e6' + '0b40ed924f03ff6081af610bb0ee01560b7bd1fb68f8af02053304a01d4ccdf0' + '4969dd03e482155e2490b50307dada81dda7bbc9e5398e3a53c20bc474f7c04e' + '6e0cee08e4fa57b04752e80817f33562f48aa42608a3a620930b6040259b4932' + '34f37b53ee0bc31c63ce85ebd1ae95543a8ba28483e387b20efd50574bd813be') +options=(!lto) + +prepare() { + cd qtwebkit-$_pkgver + patch -p0 -i ../icu68.patch # Fix build with ICU 68.x + patch -p1 -i ../glib-2.68.patch # https://github.com/qtwebkit/qtwebkit/issues/1057 + patch -p1 -i ../qt5-webkit-python-3.9.patch # Fix build with python 3.9 + patch -p1 -i ../qt5-webkit-bison-3.7.patch # Fix build with bison 3.7 +} + +build() { + cmake -B build -S qtwebkit-$_pkgver \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" \ + -DPORT=Qt \ + -DENABLE_TOOLS=OFF + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build + + install -d "$pkgdir"/usr/share/licenses + ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname} +} diff --git a/linhes/qt5-webkit/glib-2.68.patch b/linhes/qt5-webkit/glib-2.68.patch new file mode 100644 index 0000000..3df6078 --- /dev/null +++ b/linhes/qt5-webkit/glib-2.68.patch @@ -0,0 +1,26 @@ +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. +--- + 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 + #include + +-extern "C" void g_object_unref(gpointer); +-extern "C" gpointer g_object_ref_sink(gpointer); +- + namespace WTF { + + enum GRefPtrAdoptType { GRefPtrAdopt }; diff --git a/linhes/qt5-webkit/icu68.patch b/linhes/qt5-webkit/icu68.patch new file mode 100644 index 0000000..25f094d --- /dev/null +++ b/linhes/qt5-webkit/icu68.patch @@ -0,0 +1,170 @@ +Regressed by https://github.com/unicode-org/icu/commit/c3fe7e09d844 + +In file included from Source/WebCore/platform/text/TextAllInOne.cpp:31: +Source/WebCore/platform/text/TextCodecICU.cpp:311:42: error: use of undeclared identifier 'TRUE' + ucnv_setFallback(m_converterICU, TRUE); + ^ +In file included from Source/WebCore/platform/text/TextAllInOne.cpp:40: +In file included from Source/WebCore/platform/text/icu/UTextProvider.cpp:27: +Source/WebCore/platform/text/icu/UTextProvider.h:83:28: error: use of undeclared identifier 'TRUE' + isAccessible = TRUE; + ^ +Source/WebCore/platform/text/icu/UTextProvider.h:88:28: error: use of undeclared identifier 'FALSE' + isAccessible = FALSE; + ^ +Source/WebCore/platform/text/icu/UTextProvider.h:97:28: error: use of undeclared identifier 'TRUE' + isAccessible = TRUE; + ^ +Source/WebCore/platform/text/icu/UTextProvider.h:102:28: error: use of undeclared identifier 'FALSE' + isAccessible = FALSE; + ^ +In file included from Source/WebCore/platform/text/TextAllInOne.cpp:41: +Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:103:20: error: use of undeclared identifier 'TRUE' + return TRUE; + ^ +Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:108:20: error: use of undeclared identifier 'FALSE' + return FALSE; + ^ +Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:114:20: error: use of undeclared identifier 'TRUE' + return TRUE; + ^ +Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:119:20: error: use of undeclared identifier 'FALSE' + return FALSE; + ^ +Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:147:12: error: use of undeclared identifier 'TRUE' + return TRUE; + ^ +Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:339:16: error: use of undeclared identifier 'FALSE' + return FALSE; + ^ +Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:359:12: error: use of undeclared identifier 'TRUE' + return TRUE; + ^ +In file included from Source/WebCore/platform/text/TextAllInOne.cpp:42: +Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:128:16: error: use of undeclared identifier 'FALSE' + return FALSE; + ^ +Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:148:12: error: use of undeclared identifier 'TRUE' + return TRUE; + ^ + +--- Source/WebCore/platform/text/TextCodecICU.cpp.orig 2020-03-04 17:16:37 UTC ++++ 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) +--- Source/WebCore/platform/text/icu/UTextProvider.h.orig 2020-03-04 17:16:37 UTC ++++ 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::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 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text + // 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; + } + } +--- Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp.orig 2020-03-04 17:16:37 UTC ++++ 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(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 @@ 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) +--- Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp.orig 2020-03-04 17:16:37 UTC ++++ 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) -- cgit v0.12