From c9e21166095e9b7d17c68aeb30b6077f47945e21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Fri, 17 Feb 2023 11:43:09 +0700 Subject: [PATCH 01/27] qt6-base: update to 6.4.2. --- srcpkgs/qt6-base/patches/complex-text.patch | 0 srcpkgs/qt6-base/patches/feenableexcept.patch | 6 +-- srcpkgs/qt6-base/patches/markdown-musl.patch | 25 ++-------- srcpkgs/qt6-base/patches/musl-limits.patch | 12 ++--- .../qt6-base/patches/musl-test-image.patch | 19 ++++++++ .../qt6-base/patches/musl-usr-path-hack.patch | 10 ++-- ...urce-root-dir-last-modified-is-valid.patch | 6 +-- .../qt6-base/patches/x86-qround-passed.patch | 8 ++-- srcpkgs/qt6-base/patches/zfs-storage.patch | 6 +-- srcpkgs/qt6-base/template | 48 +++++++++---------- 10 files changed, 70 insertions(+), 70 deletions(-) delete mode 100644 srcpkgs/qt6-base/patches/complex-text.patch create mode 100644 srcpkgs/qt6-base/patches/musl-test-image.patch diff --git a/srcpkgs/qt6-base/patches/complex-text.patch b/srcpkgs/qt6-base/patches/complex-text.patch deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/srcpkgs/qt6-base/patches/feenableexcept.patch b/srcpkgs/qt6-base/patches/feenableexcept.patch index 1b561731b634..9b268bc95d3e 100644 --- a/srcpkgs/qt6-base/patches/feenableexcept.patch +++ b/srcpkgs/qt6-base/patches/feenableexcept.patch @@ -1,6 +1,6 @@ ---- a/tests/auto/corelib/text/qlocale/tst_qlocale.cpp -+++ b/tests/auto/corelib/text/qlocale/tst_qlocale.cpp -@@ -1453,8 +1453,10 @@ void tst_QLocale::fpExceptions() +--- qt6-base-6.4.2.orig/tests/auto/corelib/text/qlocale/tst_qlocale.cpp ++++ qt6-base-6.4.2/tests/auto/corelib/text/qlocale/tst_qlocale.cpp +@@ -1502,8 +1502,10 @@ void tst_QLocale::fpExceptions() fenv_t envp; fegetenv(&envp); feclearexcept(FE_ALL_EXCEPT); diff --git a/srcpkgs/qt6-base/patches/markdown-musl.patch b/srcpkgs/qt6-base/patches/markdown-musl.patch index d29977b7d33a..5c16b3fbb3ea 100644 --- a/srcpkgs/qt6-base/patches/markdown-musl.patch +++ b/srcpkgs/qt6-base/patches/markdown-musl.patch @@ -1,10 +1,10 @@ ---- a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp -+++ b/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp -@@ -229,9 +229,11 @@ void tst_QTextMarkdownImporter::lists_da +--- qt6-base-6.4.2.orig/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp ++++ qt6-base-6.4.2/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp +@@ -204,9 +204,11 @@ void tst_QTextMarkdownImporter::lists_da QTest::newRow("numeric lists nested in empty lists") << "- \n 1. a\n 2. b\n- c\n 1.\n + d\n" << 4 << false << "- \n 1. a\n 2. b\n- c 1. + d\n"; -+#if 0 ++#ifdef __GLIC__ QTest::newRow("styled spans in list items") << "1. normal text\n2. **bold** text\n3. `code` in the item\n4. *italic* text\n5. _underlined_ text\n" << 5 << false << "1. normal text\n2. **bold** text\n3. `code` in the item\n4. *italic* text\n5. _underlined_ text\n"; @@ -12,20 +12,3 @@ } void tst_QTextMarkdownImporter::lists() ---- a/tests/auto/widgets/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp -+++ b/tests/auto/widgets/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp -@@ -1776,11 +1776,14 @@ void tst_QGraphicsWidget::updateFocusCha - const QPoint center(view.viewport()->width() / 2, view.viewport()->height() / 2); - QTest::mouseMove(view.viewport(), center); - QTest::mouseClick(view.viewport(), Qt::LeftButton, {}, center); -+#if 0 -+ // Same sympton with QTBUG-23699 - #ifdef Q_OS_MAC - QEXPECT_FAIL("", "QTBUG-23699", Continue); - #endif - QTRY_COMPARE(qApp->activeWindow(), static_cast(&view)); - QTRY_COMPARE(scene.focusItem(), static_cast(w)); -+#endif - } - - void tst_QGraphicsWidget::sizeHint_data() diff --git a/srcpkgs/qt6-base/patches/musl-limits.patch b/srcpkgs/qt6-base/patches/musl-limits.patch index 5a75f4fe38a5..da6d272d99de 100644 --- a/srcpkgs/qt6-base/patches/musl-limits.patch +++ b/srcpkgs/qt6-base/patches/musl-limits.patch @@ -1,6 +1,6 @@ ---- a/qmake/library/ioutils.cpp 2020-09-24 17:55:53.000000000 +0200 -+++ b/qmake/library/ioutils.cpp 2020-09-24 17:55:53.000000000 +0200 -@@ -40,6 +40,7 @@ +--- qt6-base-6.4.2.orig/qmake/library/ioutils.cpp ++++ qt6-base-6.4.2/qmake/library/ioutils.cpp +@@ -15,6 +15,7 @@ # include # include # include @@ -8,9 +8,9 @@ # include #endif ---- a/src/corelib/io/qstorageinfo_unix.cpp 2020-09-24 17:55:53.000000000 +0200 -+++ b/src/corelib/io/qstorageinfo_unix.cpp 2020-09-24 17:55:53.000000000 +0200 -@@ -58,6 +58,7 @@ +--- qt6-base-6.4.2.orig/src/corelib/io/qstorageinfo_unix.cpp ++++ qt6-base-6.4.2/src/corelib/io/qstorageinfo_unix.cpp +@@ -23,6 +23,7 @@ # include # include #elif defined(Q_OS_LINUX) || defined(Q_OS_HURD) diff --git a/srcpkgs/qt6-base/patches/musl-test-image.patch b/srcpkgs/qt6-base/patches/musl-test-image.patch new file mode 100644 index 000000000000..b966a22c12a7 --- /dev/null +++ b/srcpkgs/qt6-base/patches/musl-test-image.patch @@ -0,0 +1,19 @@ +--- qt6-base-6.4.2.orig/tests/auto/gui/image/qimage/tst_qimage.cpp ++++ qt6-base-6.4.2/tests/auto/gui/image/qimage/tst_qimage.cpp +@@ -1806,6 +1806,8 @@ void tst_QImage::smoothScale2() + QRgb expected = opaque ? qRgb(63, 127, 255) : qRgba(31, 63, 127, 127); + img.fill(expected); + ++#ifdef __GLIBC__ ++ // broken on musl, unknown reason + // scale x down, y down + QImage scaled = img.scaled(QSize(1, 1), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + QRgb pixel = scaled.pixel(0, 0); +@@ -1869,6 +1871,7 @@ void tst_QImage::smoothScale2() + QCOMPARE(qBlue(pixel), qBlue(expected)); + } + } ++#endif + } + + static inline int rand8() diff --git a/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch b/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch index a2ec7550e7bb..92eae8431aea 100644 --- a/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch +++ b/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch @@ -6,11 +6,9 @@ This breaks qt6-webengine's search path for translations. Using realpath instead would probably be a more correct solution. --- -diff --git qtbasesrc/corelib/global/qlibraryinfo.cpp qtbasesrc/corelib/global/qlibraryinfo.cpp -index 8bcf67e73d..28d7355310 100644 ---- a/src/corelib/global/qlibraryinfo.cpp -+++ b/src/corelib/global/qlibraryinfo.cpp -@@ -558,6 +558,12 @@ static QString getRelocatablePrefix() +--- qt6-base-6.4.2.orig/src/corelib/global/qlibraryinfo.cpp ++++ qt6-base-6.4.2/src/corelib/global/qlibraryinfo.cpp +@@ -358,6 +358,12 @@ static QString getRelocatablePrefix(QLib int result = dladdr(reinterpret_cast(&QLibraryInfo::isDebugBuild), &info); if (result > 0 && info.dli_fname) prefixPath = prefixFromQtCoreLibraryHelper(QString::fromLocal8Bit(info.dli_fname)); @@ -21,5 +19,5 @@ index 8bcf67e73d..28d7355310 100644 + } +#endif #elif defined(Q_OS_WIN) + Q_UNUSED(usageMode); HMODULE hModule = getWindowsModuleHandle(); - const int kBufferSize = 4096; diff --git a/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch b/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch index f1436df42d8e..282b583330ce 100644 --- a/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch +++ b/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch @@ -1,6 +1,6 @@ ---- a/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp -+++ b/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp -@@ -607,7 +607,10 @@ void tst_QResourceEngine::lastModified() +--- qt6-base-6.4.2.orig/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp ++++ qt6-base-6.4.2/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp +@@ -592,7 +592,10 @@ void tst_QResourceEngine::lastModified() { QFileInfo fi(":/"); QVERIFY(fi.exists()); diff --git a/srcpkgs/qt6-base/patches/x86-qround-passed.patch b/srcpkgs/qt6-base/patches/x86-qround-passed.patch index 9ff90d103eb3..f658ed833e4f 100644 --- a/srcpkgs/qt6-base/patches/x86-qround-passed.patch +++ b/srcpkgs/qt6-base/patches/x86-qround-passed.patch @@ -1,6 +1,6 @@ ---- a/tests/auto/corelib/global/qglobal/tst_qglobal.cpp -+++ b/tests/auto/corelib/global/qglobal/tst_qglobal.cpp -@@ -624,18 +624,14 @@ void tst_QGlobal::qRoundFloats() { +--- qt6-base-6.4.2.orig/tests/auto/corelib/global/qglobal/tst_qglobal.cpp ++++ qt6-base-6.4.2/tests/auto/corelib/global/qglobal/tst_qglobal.cpp +@@ -599,18 +599,14 @@ void tst_QGlobal::qRoundFloats() { QFETCH(float, expected); #if !(defined(Q_PROCESSOR_ARM_64) && (__has_builtin(__builtin_round) || defined(Q_CC_GNU)) && !defined(Q_CC_CLANG)) @@ -23,7 +23,7 @@ } void tst_QGlobal::qRoundDoubles_data() { -@@ -653,18 +649,14 @@ void tst_QGlobal::qRoundDoubles() { +@@ -628,18 +624,14 @@ void tst_QGlobal::qRoundDoubles() { QFETCH(double, expected); #if !(defined(Q_PROCESSOR_ARM_64) && (__has_builtin(__builtin_round) || defined(Q_CC_GNU)) && !defined(Q_CC_CLANG)) diff --git a/srcpkgs/qt6-base/patches/zfs-storage.patch b/srcpkgs/qt6-base/patches/zfs-storage.patch index 3e772549451b..0473836ba7d6 100644 --- a/srcpkgs/qt6-base/patches/zfs-storage.patch +++ b/srcpkgs/qt6-base/patches/zfs-storage.patch @@ -1,6 +1,6 @@ ---- a/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp 2022-11-03 00:05:49.281737775 +0100 -+++ - 2022-11-03 00:07:52.538145369 +0100 -@@ -165,6 +165,8 @@ +--- qt6-base-6.4.2.orig/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp ++++ qt6-base-6.4.2/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp +@@ -165,6 +165,8 @@ void tst_QStorageInfo::tempFile() #ifdef Q_OS_LINUX if (storage1.fileSystemType() == "btrfs") QSKIP("This test doesn't work on btrfs, probably due to a btrfs bug"); diff --git a/srcpkgs/qt6-base/template b/srcpkgs/qt6-base/template index c2d6443dddad..09e844acdc2c 100644 --- a/srcpkgs/qt6-base/template +++ b/srcpkgs/qt6-base/template @@ -1,6 +1,6 @@ # Template file for 'qt6-base' pkgname=qt6-base -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake configure_args="-DINSTALL_DATADIR=share/qt6 @@ -30,7 +30,7 @@ maintainer="John " license="GPL-3.0-only WITH Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later" homepage="https://www.qt.io" distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtbase-everywhere-src-${version}.tar.xz" -checksum=cb6475a0bd8567c49f7ffbb072a05516ee6671171bed55db75b22b94ead9b37d +checksum=a88bc6cedbb34878a49a622baa79cace78cfbad4f95fdbd3656ddb21c705525d python_version=3 if [ "$CROSS_BUILD" ]; then @@ -47,47 +47,47 @@ fi do_check() { cd build export QT_QPA_PLATFORM=offscreen + export QMAKESPEC=$wrksrc/mkspecs/linux-g++ local failing_tests="tst_selftests tst_qmake tst_moc tst_rcc tst_qfile tst_qstandardpaths tst_qtemporarydir tst_qtemporaryfile tst_qdir tst_qpluginloader tst_qlibrary tst_qtextstream - tst_qdate tst_qdatetime tst_qtimezone - test_umbrella_config test_wrap_cpp_and_resources - test_dependent_modules test_needsquoting_dirname - test_add_resource_options test_wrap_cpp_options - test_platform_defs_include test_qtmainwin_library - test_dbus_module test_multiple_find_package - test_add_resources_delayed_file test_QTBUG-63422 - test_add_binary_resources_delayed_file - test_private_includes test_private_targets - test_testlib_definitions test_json_plugin_includes - test_testlib_no_link_gui test_testlib_no_link_widgets - module_includes test_concurrent_module test_opengl_lib + test_build_simple_widget_app_qmake test_interface test_interface_link_libraries - test_moc_macro_target test_add_big_resource - test_versionless_targets test_add_resources_binary_generated - test_plugin_flavor_static test_plugin_flavor_shared - test_plugin_flavor_derived_from_qt_type - tst_qaddpreroutine tst_qfont tst_qfontdatabase + tst_qfont tst_qfontdatabase tst_qfontmetrics tst_qglyphrun tst_qrawfont tst_qtextdocumentlayout tst_qopenglconfig - tst_qopengl tst_qdnslookup tst_qfiledialog + tst_qopengl tst_qfiledialog tst_qgraphicsview tst_qapplication tst_qfontcombobox tst_qlineedit tst_qmenubar tst_qopenglwidget tst_qx11info tst_qcomplextext - test_QFINDTESTDATA run_test_QFINDTESTDATA" + tst_qaddpreroutine tst_qtextcursor" # Unknown platform linux-g++ :/ failing_tests+=" mockplugins test_import_plugins - test_static_resources test_generating_cpp_exports" + test_static_resources test_generating_cpp_exports" failing_tests+=" tst_qstorageinfo" - # broken with -O, passed with -O0, probably broken floating point code. - failing_tests+=" tst_qvectornd" + if [ "$XBPS_TARGET_LIBC" = musl ]; then + # Some glibc specific DNS Lookup + failing_tests+=" tst_qdnslookup" + fi + if [ "$XBPS_TARGET_WORDSIZE" = 32 ]; then + # failing on i686, not checked on arm + failing_tests+=" tst_qvectorrnd" + fi local ctest_exclude="(" for failure in $failing_tests; do ctest_exclude+="$failure|" done ctest_exclude="${ctest_exclude%|})" + if [ ! -e "$wrksrc/build/include/qt6" ]; then + ln -s .. "$wrksrc/build/include/qt6" + fi ctest -E "$ctest_exclude" + rm "$wrksrc/build/include/qt6" +} + +post_install() { + rm -rf ${DESTDIR}/usr/tests } qt6-gui_package() { From 65b9b2ceb2e03aabcf62c40d9519d10360f7b3be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Fri, 17 Feb 2023 11:44:09 +0700 Subject: [PATCH 02/27] qt6-declarative: update to 6.4.2. --- .../patches/bin-qml-location.patch | 205 ++++++++++-------- .../patches/qml-broken-test.patch | 6 +- srcpkgs/qt6-declarative/template | 38 ++-- 3 files changed, 135 insertions(+), 114 deletions(-) diff --git a/srcpkgs/qt6-declarative/patches/bin-qml-location.patch b/srcpkgs/qt6-declarative/patches/bin-qml-location.patch index f92e34632502..9323aec00b64 100644 --- a/srcpkgs/qt6-declarative/patches/bin-qml-location.patch +++ b/srcpkgs/qt6-declarative/patches/bin-qml-location.patch @@ -1,193 +1,206 @@ ---- a/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp -+++ b/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp -@@ -94,7 +94,11 @@ private: - { +--- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp +@@ -71,6 +71,9 @@ private: m_currentOutputLine = 0; -+#ifdef QT_DECLARATIVE_BIN_PATH -+ auto executable = QT_DECLARATIVE_BIN_PATH "/qml"; -+#else auto executable = QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml"; -+#endif ++ char *build_bin_path = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin_path && *build_bin_path) ++ executable = QString(build_bin_path) + "/qml"; auto services = QQmlDebugTranslationServiceImpl::s_key; auto extraArgs = testFile(QMLFILE); auto block = true; ---- a/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp -+++ b/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp -@@ -72,7 +72,12 @@ tst_QQmlInspector::tst_QQmlInspector() +--- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp +@@ -47,7 +47,11 @@ tst_QQmlInspector::tst_QQmlInspector() QQmlDebugTest::ConnectResult tst_QQmlInspector::startQmlProcess(const QString &qmlFile, bool restrictServices) { - return QQmlDebugTest::connectTo(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml", -+#ifdef QT_DECLARATIVE_BIN_PATH -+ auto executable = QT_DECLARATIVE_BIN_PATH "/qml"; -+#else + auto executable = QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml"; -+#endif ++ char *build_bin_path = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin_path && *build_bin_path) ++ executable = QString(build_bin_path) + "/qml"; + return QQmlDebugTest::connectTo(executable, restrictServices ? QStringLiteral("QmlInspector") : QString(), testFile(qmlFile), true); } ---- a/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp -+++ b/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp -@@ -204,10 +204,16 @@ private: +--- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp +@@ -179,10 +179,18 @@ private: CheckType = CheckMessageType | CheckDetailType | CheckLine | CheckColumn | CheckFileEndsWith }; -+#ifdef QT_DECLARATIVE_BIN_PATH -+#define QMLSCENE_PATH QT_DECLARATIVE_BIN_PATH "/qml" -+#else -+#define QMLSCENE_PATH QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene" -+#endif ++ static QString QmlScenePath() ++ { ++ char *build_bin_path = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin_path && *build_bin_path) ++ return QString(build_bin_path) + "/qmlscene"; ++ return QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene"; ++ } + ConnectResult connectTo(bool block, const QString &file, bool recordFromStart = true, uint flushInterval = 0, bool restrictServices = true, const QString &executable - = QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene"); -+ = QMLSCENE_PATH); ++ = QmlScenePath()); void checkProcessTerminated(); void checkTraceReceived(); void checkJsHeap(); ---- a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp -+++ b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp -@@ -110,8 +110,13 @@ void tst_QQmlDebuggingEnabler::qmlscene( +--- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp +@@ -85,8 +85,12 @@ void tst_QQmlDebuggingEnabler::qmlscene( QFETCH(bool, blockMode); QFETCH(QStringList, services); - m_process = new QQmlDebugProcess( - QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene", this); -+#ifdef QT_DECLARATIVE_BIN_PATH -+ auto executable = QT_DECLARATIVE_BIN_PATH "/qmlscene"; -+#else + auto executable = QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene"; -+#endif ++ char *build_bin_path = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin_path && *build_bin_path) ++ executable = QString(build_bin_path) + "/qmlscene"; + + m_process = new QQmlDebugProcess(executable, this); m_process->setMaximumBindErrors(1); m_process->start(QStringList() << QString::fromLatin1("-qmljsdebugger=connector:%1%2%3%4") ---- a/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp -+++ b/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp -@@ -91,7 +91,12 @@ tst_QQmlEngineControl::tst_QQmlEngineCon +--- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp +@@ -66,7 +66,11 @@ tst_QQmlEngineControl::tst_QQmlEngineCon QQmlDebugTest::ConnectResult tst_QQmlEngineControl::connectTo(const QString &file, bool restrictServices) { - return QQmlDebugTest::connectTo(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene", -+#ifdef QT_DECLARATIVE_BIN_PATH -+ auto executable = QT_DECLARATIVE_BIN_PATH "/qmlscene"; -+#else + auto executable = QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene"; -+#endif ++ char *build_bin_path = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin_path && *build_bin_path) ++ executable = QString(build_bin_path) + "/qmlscene"; + return QQmlDebugTest::connectTo(executable, restrictServices ? QStringLiteral("EngineControl") : QString(), testFile(file), true); } ---- a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp -+++ b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp -@@ -96,7 +96,11 @@ tst_QQmlEngineDebugInspectorIntegration: +--- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp +@@ -70,8 +70,11 @@ tst_QQmlEngineDebugInspectorIntegration: + QQmlDebugTest::ConnectResult tst_QQmlEngineDebugInspectorIntegration::init(bool restrictServices) { - return QQmlDebugTest::connectTo( -+#ifdef QT_DECLARATIVE_BIN_PATH -+ QT_DECLARATIVE_BIN_PATH "/qml", -+#else - QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml", -+#endif +- return QQmlDebugTest::connectTo( +- QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml", ++ auto executable = QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml"; ++ char *build_bin_path = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin_path && *build_bin_path) ++ executable = QString(build_bin_path) + "/qml"; ++ return QQmlDebugTest::connectTo(executable, restrictServices ? QStringLiteral("QmlDebugger,QmlInspector") : QString(), testFile("qtquick2.qml"), true); } ---- a/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp -+++ b/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp -@@ -81,7 +81,12 @@ tst_QQmlPreview::tst_QQmlPreview() +--- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp +@@ -56,7 +56,11 @@ tst_QQmlPreview::tst_QQmlPreview() QQmlDebugTest::ConnectResult tst_QQmlPreview::startQmlProcess(const QString &qmlFile) { - return QQmlDebugTest::connectTo(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml", -+#ifdef QT_DECLARATIVE_BIN_PATH -+ auto executable = QT_DECLARATIVE_BIN_PATH "/qml"; -+#else + auto executable = QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml"; -+#endif ++ char *build_bin_path = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin_path && *build_bin_path) ++ executable = QString(build_bin_path) + "/qml"; + return QQmlDebugTest::connectTo(executable, QStringLiteral("QmlPreview"), testFile(qmlFile), true); } ---- a/tests/auto/qml/qmlformat/tst_qmlformat.cpp -+++ b/tests/auto/qml/qmlformat/tst_qmlformat.cpp -@@ -88,7 +88,11 @@ TestQmlformat::TestQmlformat() - void TestQmlformat::initTestCase() +--- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlformat/tst_qmlformat.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/qmlformat/tst_qmlformat.cpp +@@ -65,6 +65,9 @@ void TestQmlformat::initTestCase() { QQmlDataTest::initTestCase(); -+#ifdef QT_DECLARATIVE_BIN_PATH -+ m_qmlformatPath = QLatin1String(QT_DECLARATIVE_BIN_PATH "/qmlformat"); -+#else m_qmlformatPath = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QLatin1String("/qmlformat"); -+#endif ++ char *build_bin_path = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin_path && *build_bin_path) ++ m_qmlformatPath = QLatin1String(build_bin_path) + "/qmlformat"; #ifdef Q_OS_WIN m_qmlformatPath += QLatin1String(".exe"); #endif ---- a/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp -+++ b/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp -@@ -63,8 +63,12 @@ TestQmlimportscanner::TestQmlimportscann - void TestQmlimportscanner::initTestCase() - { +--- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp +@@ -42,6 +42,9 @@ void TestQmlimportscanner::initTestCase( QQmlDataTest::initTestCase(); -+#ifdef QT_DECLARATIVE_LIBEXEC_PATH -+ m_qmlimportscannerPath = QLatin1String(QT_DECLARATIVE_LIBEXEC_PATH "/qmlimportscanner"); -+#else m_qmlimportscannerPath = QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath) + QLatin1String("/qmlimportscanner"); -+#endif ++ char *build_libexec = getenv("QT_BUILD_LIBEXEC_PATH"); ++ if (build_libexec && *build_libexec) ++ m_qmlimportscannerPath = QLatin1String(build_libexec) + "/qmlimportscanner"; #ifdef Q_OS_WIN m_qmlimportscannerPath += QLatin1String(".exe"); #endif ---- a/tests/auto/qml/qmllint/tst_qmllint.cpp -+++ b/tests/auto/qml/qmllint/tst_qmllint.cpp -@@ -136,11 +136,17 @@ TestQmllint::TestQmllint() - void TestQmllint::initTestCase() +--- qt6-declarative-6.4.2.orig/tests/auto/qml/qmllint/tst_qmllint.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/qmllint/tst_qmllint.cpp +@@ -159,10 +159,18 @@ void TestQmllint::initTestCase() { QQmlDataTest::initTestCase(); -+#ifdef QT_DECLARATIVE_BIN_PATH -+ m_qmllintPath = QLatin1String(QT_DECLARATIVE_BIN_PATH "/qmllint"); -+ m_qmljsrootgenPath = QLatin1String(QT_DECLARATIVE_BIN_PATH "/qmljsrootgen"); -+ m_qmltyperegistrarPath = QLatin1String(QT_DECLARATIVE_BIN_PATH "/qmltyperegistrar"); -+#else m_qmllintPath = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QLatin1String("/qmllint"); ++ char *build_bin = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin && *build_bin) ++ m_qmllintPath = QLatin1String(build_bin) + "/qmllint"; m_qmljsrootgenPath = QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath) + QLatin1String("/qmljsrootgen"); m_qmltyperegistrarPath = QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath) + QLatin1String("/qmltyperegistrar"); -+#endif ++ char *build_libexec = getenv("QT_BUILD_LIBEXEC_PATH"); ++ if (build_libexec && *build_libexec) { ++ m_qmljsrootgenPath = QLatin1String(build_libexec) + "/qmljsrootgen"; ++ m_qmltyperegistrarPath = QLatin1String(build_libexec) + "/qmltypesregistrar"; ++ } #ifdef Q_OS_WIN m_qmllintPath += QLatin1String(".exe"); m_qmljsrootgenPath += QLatin1String(".exe"); ---- a/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp -+++ b/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp -@@ -143,7 +143,12 @@ tst_QDebugMessageService::tst_QDebugMess +--- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp +@@ -118,7 +118,11 @@ tst_QDebugMessageService::tst_QDebugMess void tst_QDebugMessageService::retrieveDebugOutput() { - QCOMPARE(QQmlDebugTest::connectTo(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml", -+#ifdef QT_DECLARATIVE_BIN_PATH -+ auto executable = QT_DECLARATIVE_BIN_PATH "/qml"; -+#else + auto executable = QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml"; -+#endif ++ char *build_bin_path = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin_path && *build_bin_path) ++ executable = QString(build_bin_path) + "/qml"; + QCOMPARE(QQmlDebugTest::connectTo(executable, QString(), testFile(QMLFILE), true), ConnectSuccess); QTRY_VERIFY(m_client->logBuffer.size() >= 2); ---- a/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp -+++ b/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp -@@ -62,7 +62,11 @@ tst_qmlplugindump::tst_qmlplugindump() - void tst_qmlplugindump::initTestCase() +--- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp +@@ -38,6 +38,9 @@ void tst_qmlplugindump::initTestCase() { QQmlDataTest::initTestCase(); -+#ifdef QT_DECLARATIVE_BIN_PATH -+ qmlplugindumpPath = QT_DECLARATIVE_BIN_PATH; -+#else qmlplugindumpPath = QLibraryInfo::path(QLibraryInfo::BinariesPath); -+#endif ++ char *build_bin_path = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin_path && *build_bin_path) ++ qmlplugindumpPath = build_bin_path; #if defined(Q_OS_WIN) qmlplugindumpPath += QLatin1String("/qmlplugindump.exe"); +--- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp ++++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp +@@ -163,11 +163,18 @@ void tst_QQmlDebugJS::initTestCase() + QQmlDebugTest::initTestCase(); + } + #include ++static QString qmlScenePath() ++{ ++ char *build_bin_path = getenv("QT_BUILD_BIN_PATH"); ++ if (build_bin_path && *build_bin_path) ++ return QString(build_bin_path) + "/qmlscene"; ++ return QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene"; ++} + QQmlDebugTest::ConnectResult tst_QQmlDebugJS::init(bool qmlscene, const QString &qmlFile, + bool blockMode, bool restrictServices) + { + const QString executable = qmlscene +- ? QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene" ++ ? qmlScenePath() + : debugJsServerPath("qqmldebugjs"); + return QQmlDebugTest::connectTo( + executable, restrictServices ? QStringLiteral("V8Debugger") : QString(), diff --git a/srcpkgs/qt6-declarative/patches/qml-broken-test.patch b/srcpkgs/qt6-declarative/patches/qml-broken-test.patch index 4d44e90b678c..b16412fcd5e5 100644 --- a/srcpkgs/qt6-declarative/patches/qml-broken-test.patch +++ b/srcpkgs/qt6-declarative/patches/qml-broken-test.patch @@ -1,6 +1,6 @@ ---- a/tests/auto/quickcontrols2/controls/data/tst_rangeslider.qml -+++ b/tests/auto/quickcontrols2/controls/data/tst_rangeslider.qml -@@ -649,61 +649,6 @@ TestCase { +--- qt6-declarative-6.4.2.orig/tests/auto/quickcontrols2/controls/data/tst_rangeslider.qml ++++ qt6-declarative-6.4.2/tests/auto/quickcontrols2/controls/data/tst_rangeslider.qml +@@ -602,61 +602,6 @@ TestCase { } function test_overlappingHandles() { diff --git a/srcpkgs/qt6-declarative/template b/srcpkgs/qt6-declarative/template index c69159f3b6e1..c08c32f01963 100644 --- a/srcpkgs/qt6-declarative/template +++ b/srcpkgs/qt6-declarative/template @@ -1,6 +1,6 @@ # Template file for 'qt6-declarative' pkgname=qt6-declarative -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="qt6-base-devel perl pkg-config wayland-devel @@ -11,7 +11,7 @@ maintainer="John " license="GPL-3.0-only with Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later" homepage="https://www.qt.io" distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtdeclarative-everywhere-src-${version}.tar.xz" -checksum=3434e72fccfa0c929c326790723d05c155f5067746b1ab05cfd7a9ba632c4383 +checksum=a4bdd983de4e9cbca0f85b767dbdd8598711554e370a06da8f509ded4430f5bd replaces="qt6-quickcontrols2>=0" if [ "$CROSS_BUILD" ]; then @@ -27,44 +27,47 @@ if [ "$XBPS_TARGET_ENDIAN" = "be" ]; then broken="shader compilation fails" fi -pre_configure() { - CXXFLAGS+=" '-DQT_DECLARATIVE_BIN_PATH=\"${wrksrc}/build/lib/qt6/bin\"'" - CXXFLAGS+=" '-DQT_DECLARATIVE_LIBEXEC_PATH=\"${wrksrc}/build/lib/qt6/libexec\"'" -} - -pre_check() { - export QML2_IMPORT_PATH="$wrksrc/build/lib/qt6/qml" -} - do_check() { cd build + export QML2_IMPORT_PATH="$wrksrc/build/lib/qt6/qml" + export QT_BUILD_BIN_PATH=${wrksrc}/build/lib/qt6/bin + export QT_BUILD_LIBEXEC_PATH=${wrksrc}/build/lib/qt6/libexec local broken="tst_qqmllocale|text|tst_qquickwidget" # requires qt6-declarative installed broken+="|module_includes|cmake_tooling_imports|empty_qmldir" broken+="|qtquickcompiler|qmlquery" - # Could work if Qt6Quick.so.6 could be found by qml - broken+="|tst_qqmldebugjs|tst_qqmlinspector" - broken+="|tst_qqmlprofilerservice|tst_qqmljsscope" - broken+="|tst_qqmlpreview|tst_qmllint|tst_qmlformat" + # Need to investigate + broken+="|tst_qqmldebugjs|tst_qqmljsscope" + broken+="|tst_qqmlpreview|tst_qmllint" # can't find the source broken+="|tst_qmltc_qprocess" broken+="|tst_qquickfiledialogimpl" broken+="|tst_qquickfolderdialogimpl" broken+="|tst_qmlimportscanner|tst_qqmlextensionplugin" + # unknown + broken+="|tst_qmldomitem|tst_dom_all" ctest -E "($broken)" } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-declarative-tools_package() { depends="${sourcepkg}>=${version}_${revision}" short_desc+=" - tools" pkg_install() { vmove usr/lib/qt6/plugins/qmltooling + vmove usr/lib/qt6/plugins/qmllint for bin in qmlcachegen qmlimportscanner qmltyperegistrar; do vmove usr/lib/qt6/libexec/$bin done for bin in qmlformat qmllint qmlpreview qmlprofiler; do vmove usr/lib/qt6/bin/$bin done + if [ ! "$CROSS_BUILD" ]; then + vmove "usr/lib/qt6/bin/qqmldebug*" + fi } } @@ -81,9 +84,14 @@ qt6-declarative-devel_package() { vmove usr/lib/qt6/mkspecs vmove "usr/lib/libQt6QuickTest.so.*" vmove usr/lib/qt6/qml/QtTest + vmove usr/lib/qt6/qml/Qt/test vmove usr/lib/qt6/bin/qmltestrunner vmove "usr/lib/*.so" + vmove "usr/lib/*.a" vmove "usr/lib/*.prl" vmove usr/share/qt6/modules + if [ ! "$CROSS_BUILD" ]; then + vmove usr/lib/qt6/bin/testapp + fi } } From 8ee1f9000cd3eaf760eb620e11f0612f76490901 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Fri, 17 Feb 2023 22:46:48 +0700 Subject: [PATCH 03/27] qt6-location: update to 6.4.2. --- srcpkgs/qt6-location/patches/no-cmake-test.patch | 10 ++++++++++ srcpkgs/qt6-location/template | 8 ++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/qt6-location/patches/no-cmake-test.patch diff --git a/srcpkgs/qt6-location/patches/no-cmake-test.patch b/srcpkgs/qt6-location/patches/no-cmake-test.patch new file mode 100644 index 000000000000..85d519cef88c --- /dev/null +++ b/srcpkgs/qt6-location/patches/no-cmake-test.patch @@ -0,0 +1,10 @@ +--- qt6-location-6.4.2.orig/tests/auto/CMakeLists.txt ++++ qt6-location-6.4.2/tests/auto/CMakeLists.txt +@@ -14,7 +14,6 @@ add_subdirectory(qgeopositioninfo) + add_subdirectory(qgeosatelliteinfo) + add_subdirectory(qgeosatelliteinfosource) + add_subdirectory(qnmeasatelliteinfosource) +-add_subdirectory(cmake) + if (QT6_IS_SHARED_LIBS_BUILD) + add_subdirectory(positionplugin) + add_subdirectory(positionplugintest) diff --git a/srcpkgs/qt6-location/template b/srcpkgs/qt6-location/template index 2cdeec383846..1dd429b22c45 100644 --- a/srcpkgs/qt6-location/template +++ b/srcpkgs/qt6-location/template @@ -1,6 +1,6 @@ # Template file for 'qt6-location' pkgname=qt6-location -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-base-devel qt6-declarative-devel" @@ -10,12 +10,16 @@ maintainer="John " license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtpositioning-everywhere-src-${version}.tar.xz" -checksum=2d1b5c5f6dab0108396fea37ca28ebfad21a48fa11d8c5d17622d6f6e5fba834 +checksum=7f01baf5ba877af5b211c9d32e6075019f00d9d7a2ba81bb0f10ca759e9aef82 pre_check() { export QML2_IMPORT_PATH="$wrksrc/build/lib/qt6/qml" } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-location-devel_package() { depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1" short_desc+=" - development files" From 5ce5b0029dd9f6ef36e64cce1cc593cfbe3782a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Fri, 17 Feb 2023 22:46:56 +0700 Subject: [PATCH 04/27] qt6-multimedia: update to 6.4.2. --- srcpkgs/qt6-multimedia/template | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/srcpkgs/qt6-multimedia/template b/srcpkgs/qt6-multimedia/template index f6d37be9ca5f..8b5fb9a398d0 100644 --- a/srcpkgs/qt6-multimedia/template +++ b/srcpkgs/qt6-multimedia/template @@ -1,19 +1,19 @@ # Template file for 'qt6-multimedia' pkgname=qt6-multimedia -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake configure_args="-DQT_FEATURE_gstreamer=ON" hostmakedepends="perl qt6-declarative-devel pkg-config qt6-shadertools-devel" -makedepends="qt6-declarative-devel +makedepends="qt6-declarative-devel pulseaudio-devel ffmpeg-devel libva-devel qt6-shadertools-devel libglib-devel gst-plugins-base1-devel" short_desc="Cross-platform application and UI framework - multimedia" maintainer="John " license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtmultimedia-everywhere-src-${version}.tar.xz" -checksum=e82e8e847cae2a951a11db05b6d10a22b21e3a1d72e06a7781cce4bd197e796f +checksum=7f2b70deeada911c8e660e2801286657f297a5d1d543d1f6bfa856f28972c776 if [ "$XBPS_MACHINE" = "i686" ]; then CXXFLAGS="-DPFFFT_SIMD_DISABLE=1" @@ -30,6 +30,10 @@ do_check() { ctest -E "($broken)" } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-multimedia-devel_package() { depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1" short_desc+=" - development files" @@ -42,6 +46,7 @@ qt6-multimedia-devel_package() { vmove usr/lib/qt6/qml/QtMultimedia/plugins.qmltypes vmove usr/lib/qt6/qml/QtMultimedia/qmldir vmove "usr/lib/*.so" + vmove "usr/lib/*.a" vmove "usr/lib/*.prl" } } From fcf3683da983460f77de49b661bc6d80157ce0c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Fri, 17 Feb 2023 22:47:07 +0700 Subject: [PATCH 05/27] qt6-lottie: update to 6.4.2. --- srcpkgs/qt6-lottie/template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-lottie/template b/srcpkgs/qt6-lottie/template index a5056833afe9..e3b33ac8d8ab 100644 --- a/srcpkgs/qt6-lottie/template +++ b/srcpkgs/qt6-lottie/template @@ -1,6 +1,6 @@ # Template file for 'qt6-lottie' pkgname=qt6-lottie -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-base-devel" @@ -10,7 +10,7 @@ maintainer="John " license="GPL-3.0-only" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtlottie-everywhere-src-${version}.tar.xz" -checksum=1cfcbfca9e5c68e1317edf20caa0ead4e9c8f1f4f1de19a95a8c235f4576c6b4 +checksum=accc8869c72095ce5b373a30c362d21235145a79f9e270480712f861d1de1c56 if [ "$XBPS_CHECK_PKGS" ]; then configure_args="-DQT_BUILD_TESTS=ON" @@ -20,6 +20,10 @@ pre_check() { export QML2_IMPORT_PATH="$wrksrc/build/lib/qt6/qml" } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-lottie-devel_package() { depends="${sourcepkg}>=${version}_${revision}" short_desc+=" - development files" From fee523d2ba592033158f01c19cfca13e6c7ceeb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Fri, 17 Feb 2023 22:58:57 +0700 Subject: [PATCH 06/27] qt6-qt5compat: update to 6.4.2. --- srcpkgs/qt6-qt5compat/template | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-qt5compat/template b/srcpkgs/qt6-qt5compat/template index 82c735a9893e..cc0241fc565f 100644 --- a/srcpkgs/qt6-qt5compat/template +++ b/srcpkgs/qt6-qt5compat/template @@ -1,8 +1,10 @@ # Template file for 'qt6-qt5compat' pkgname=qt6-qt5compat -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake +configure_args="-DQT_FEATURE_textcodec=ON -DQT_FEATURE_codecs=ON + -DQT_FEATURE_iconv=ON -DQT_FEATURE_big_codecs=ON" hostmakedepends="qt6-base-devel qt6-declarative-devel perl pkg-config" makedepends="qt6-base-devel qt6-declarative-devel qt6-shadertools-devel" short_desc="Cross-platform application and UI framework - Qt5 Compatibilty Component" @@ -10,12 +12,16 @@ maintainer="John " license="GPL-3.0-only with Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qt5compat-everywhere-src-${version}.tar.xz" -checksum=73475d0837f78246d509199f211a35c71fc36cccf64b3de258ebc6387194a4c0 +checksum=f51f505c8e985b51b7d733e27d782c6fce181beef53364acb0368cc892c4b792 if [ "$XBPS_CHECK_PKGS" ]; then configure_args="-DQT_BUILD_TESTS=ON" fi +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-qt5compat-devel_package() { depends="${sourcepkg}>=${version}_${revision} qt6-base-devel" short_desc+=" - development files" From 047b7a1f41a7697e36e76ae06373b2116cf4fc19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 00:00:20 +0700 Subject: [PATCH 07/27] qt6-tools: update to 6.4.2. --- srcpkgs/qt6-tools/patches/no-litehtml-test.patch | 11 +++++++++++ srcpkgs/qt6-tools/patches/qdoc-location.patch | 14 ++++++++++++++ srcpkgs/qt6-tools/template | 15 +++++++++------ 3 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 srcpkgs/qt6-tools/patches/no-litehtml-test.patch create mode 100644 srcpkgs/qt6-tools/patches/qdoc-location.patch diff --git a/srcpkgs/qt6-tools/patches/no-litehtml-test.patch b/srcpkgs/qt6-tools/patches/no-litehtml-test.patch new file mode 100644 index 000000000000..2cbfac5de82d --- /dev/null +++ b/srcpkgs/qt6-tools/patches/no-litehtml-test.patch @@ -0,0 +1,11 @@ +--- qt6-tools-6.4.2.orig/src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt ++++ qt6-tools-6.4.2/src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt +@@ -191,7 +191,7 @@ set_source_files_properties(${CMAKE_CURR + + # Tests + +-if (BUILD_TESTING) ++if (FALSE) + include(FetchContent) + FetchContent_Declare( + googletest diff --git a/srcpkgs/qt6-tools/patches/qdoc-location.patch b/srcpkgs/qt6-tools/patches/qdoc-location.patch new file mode 100644 index 000000000000..6d7c0ea34537 --- /dev/null +++ b/srcpkgs/qt6-tools/patches/qdoc-location.patch @@ -0,0 +1,14 @@ +--- qt6-tools-6.4.2.orig/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp ++++ qt6-tools-6.4.2/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp +@@ -74,7 +74,10 @@ private: + void tst_generatedOutput::initTestCase() + { + // Build the path to the QDoc binary the same way moc tests do for moc. +- const auto binpath = QLibraryInfo::path(QLibraryInfo::BinariesPath); ++ auto binpath = QLibraryInfo::path(QLibraryInfo::BinariesPath); ++ char *build_binpath = getenv("QT_BUILD_BIN_PATH"); ++ if (build_binpath && *build_binpath) ++ binpath = build_binpath; + const auto extension = QSysInfo::productType() == "windows" ? ".exe" : ""; + m_qdoc = binpath + QLatin1String("/qdoc") + extension; + m_expectedDir.setPath(QFINDTESTDATA("expected_output")); diff --git a/srcpkgs/qt6-tools/template b/srcpkgs/qt6-tools/template index 755d2e96ea64..304799250c3c 100644 --- a/srcpkgs/qt6-tools/template +++ b/srcpkgs/qt6-tools/template @@ -1,19 +1,21 @@ # Template file for 'qt6-tools' pkgname=qt6-tools -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake configure_args="-DEXTERNAL_GUMBO=ON -DLITEHTML_UTF8=ON -DUSE_ICU=ON - -DQT_BUILD_SHARED_LIBS=ON -DQT_FEATURE_assistant=ON" -hostmakedepends="qt6-base-devel perl qt6-plugin-sqlite" -makedepends="qt6-base-devel libatomic-devel qt6-plugin-sqlite - gumbo-parser-devel icu-devel" + -DQT_BUILD_SHARED_LIBS=ON -DQT_FEATURE_assistant=ON + -DQT_FEATURE_pixeltool=ON + -DQT_FEATURE_distancefieldgenerator=ON" +hostmakedepends="qt6-base-devel perl qt6-plugin-sqlite clang llvm clang-tools-extra" +makedepends="qt6-base-devel libatomic-devel qt6-plugin-sqlite qt6-declarative-devel + gumbo-parser-devel icu-devel llvm clang-tools-extra" short_desc="Cross-platform application and UI framework (QT6) - qt6-tools component" maintainer="John " license="GPL-3.0-only with Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qttools-everywhere-src-${version}.tar.xz" -checksum=97f3d5f88c458be7a8f7b7b08efc06c4ebad39ca51669476b18bf9e4c11afba2 +checksum=a31387916184e4a5ef522d3ea841e8e931cc0f88be0824a7a354a572d5826c68 if [ "$CROSS_BUILD" ]; then configure_args+=" -DQT_FORCE_BUILD_TOOLS=TRUE" @@ -31,6 +33,7 @@ post_build() { do_check() { cd build + export QT_BUILD_BIN_PATH=$wrksrc/build/lib/qt6/bin # Some of these tests expect that qt6-tools is already # installed in /usr/lib/qt6 ctest -E 'tst_(lrelease|lconvert|lupdate|qtattributionsscanner|qhelpcontentmodel|qhelpenginecore|qhelpgenerator|qhelpindexmode)' From 65c06aa25a13581377902824cb9751312a864159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:37:59 +0700 Subject: [PATCH 08/27] qt6-3d: update to 6.4.2. --- srcpkgs/qt6-3d/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-3d/template b/srcpkgs/qt6-3d/template index fe6c6216f40e..ab98967b7ed5 100644 --- a/srcpkgs/qt6-3d/template +++ b/srcpkgs/qt6-3d/template @@ -1,6 +1,6 @@ # Template file for 'qt6-3d' pkgname=qt6-3d -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-declarative-devel" @@ -11,7 +11,7 @@ maintainer="John " license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qt3d-everywhere-src-${version}.tar.xz" -checksum=6abdb5b421f4c90fec7492e51572caab6b497233608a7ee438c547f58ceabdeb +checksum=456c24c3d3840273e720b79fe8fed452fa889b54cbae6b45db1d1ded4da37341 qt6-3d-devel_package() { depends="${sourcepkg}>=${version}_${revision}" From 2c23d072c88434463fd21bb5cd512eb3f24fec10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:38:17 +0700 Subject: [PATCH 09/27] qt6-webchannel: update to 6.4.2. --- srcpkgs/qt6-webchannel/template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-webchannel/template b/srcpkgs/qt6-webchannel/template index add93ba4826c..774a96a05cd7 100644 --- a/srcpkgs/qt6-webchannel/template +++ b/srcpkgs/qt6-webchannel/template @@ -1,6 +1,6 @@ # Template file for 'qt6-webchannel' pkgname=qt6-webchannel -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-base-devel qt6-declarative-devel" @@ -10,12 +10,16 @@ maintainer="John " license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebchannel-everywhere-src-${version}.tar.xz" -checksum=528f6d837cc58854deaddafbb76eb237f4dbd688a4407b438ab9c0db1613695a +checksum=06657b2b2509f26c733b7c40da0dbb8571a215b97f99685a6fc3bc51dcbebd87 pre_check() { export QML2_IMPORT_PATH="$wrksrc/build/lib/qt6/qml" } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-webchannel-devel_package() { depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1 qt6-websockets-devel>=${version}_1" From 59dd96c3c76d8561bae3d90c3c9af23139eab270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:38:22 +0700 Subject: [PATCH 10/27] qt6-websockets: update to 6.4.2. --- srcpkgs/qt6-websockets/template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-websockets/template b/srcpkgs/qt6-websockets/template index f350b39d14b1..1b00ed4b0aa9 100644 --- a/srcpkgs/qt6-websockets/template +++ b/srcpkgs/qt6-websockets/template @@ -1,6 +1,6 @@ # Template file for 'qt6-websockets' pkgname=qt6-websockets -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-base-devel qt6-declarative-devel" @@ -12,12 +12,16 @@ maintainer="John " license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebsockets-everywhere-src-${version}.tar.xz" -checksum=ff3c6629cd6537266123c441709acdd67f231ff2a07216fc848448255bec9bca +checksum=71cf857582db20c20103a56f67d51c33c4ab0b72448209c963d3b449a527c626 pre_check() { export QML2_IMPORT_PATH="$wrksrc/build/lib/qt6/qml" } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-websockets-devel_package() { depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1" short_desc+=" - development files" From 1549330d0349fee77c530dfe1501fce00e8e0951 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:38:31 +0700 Subject: [PATCH 11/27] qt6-networkauth: update to 6.4.2. --- srcpkgs/qt6-networkauth/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-networkauth/template b/srcpkgs/qt6-networkauth/template index 52cdbff96cee..ecd8e891b747 100644 --- a/srcpkgs/qt6-networkauth/template +++ b/srcpkgs/qt6-networkauth/template @@ -1,6 +1,6 @@ # Template file for 'qt6-networkauth' pkgname=qt6-networkauth -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-base-devel" @@ -10,7 +10,7 @@ maintainer="John " license="GPL-3.0-only" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtnetworkauth-everywhere-src-${version}.tar.xz" -checksum=609b77f8fd77f1cc1f0fafa7acdb0ca6bb8a8aea6fef42cbb76f8636ce0f17b3 +checksum=deab17bd957d0a493bd7757bc71270918147596fb9661a886b3f1d305047c2ee if [ "$XBPS_CHECK_PKGS" ]; then configure_args="-DQT_BUILD_TESTS=ON" From 5a7faeddadcf241386223bdeee5f1471b6e78227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:38:43 +0700 Subject: [PATCH 12/27] qt6-svg: update to 6.4.2. --- srcpkgs/qt6-svg/template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-svg/template b/srcpkgs/qt6-svg/template index 1e81a5f20948..898917a9742e 100644 --- a/srcpkgs/qt6-svg/template +++ b/srcpkgs/qt6-svg/template @@ -1,6 +1,6 @@ # Template file for 'qt6-svg' pkgname=qt6-svg -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="qt6-base-devel perl" @@ -10,7 +10,7 @@ maintainer="John " license="GPL-3.0-only with Qt-GPL-exception-1.0, GPL-2.0-or-later, LGPL-3.0-only" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtsvg-everywhere-src-${version}.tar.xz" -checksum=03fdae9437d074dcfa387dc1f2c6e7e14fea0f989bf7e1aa265fd35ffc2c5b25 +checksum=b746af3cb1793621d8ed7eae38d9ad5a15541dc2742031069f2ae3fe87590314 if [ "$XBPS_CHECK_PKGS" ]; then configure_args="-DQT_BUILD_TESTS=ON" @@ -21,6 +21,10 @@ do_check() { ctest -E 'tst_qicon_svg' } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-svg-devel_package() { depends="${sourcepkg}>=${version}_${revision} qt6-base-devel" short_desc+=" - development files" From e3fae15369c191d7bc6556d08a83b6c98fa0ae8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:38:48 +0700 Subject: [PATCH 13/27] qt6-wayland: update to 6.4.2. --- srcpkgs/qt6-wayland/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-wayland/template b/srcpkgs/qt6-wayland/template index 5c0449472484..d8980d208a0f 100644 --- a/srcpkgs/qt6-wayland/template +++ b/srcpkgs/qt6-wayland/template @@ -1,6 +1,6 @@ # Template file for 'qt6-wayland' pkgname=qt6-wayland -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="qt6-base-devel perl pkg-config wayland-devel @@ -15,7 +15,7 @@ maintainer="John " license="GPL-3.0-only with Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later" homepage="https://www.qt.io" distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwayland-everywhere-src-${version}.tar.xz" -checksum=f08ba8e14fbec34d57332ad897c5a9150453ed07a611abb18c89c6cc5e5b62fc +checksum=24cf1a0af751ab1637b4815d5c5f3704483d5fa7bedbd3519e6fc020d8be135f if [ "$CROSS_BUILD" ]; then configure_args="-DQT_FORCE_BUILD_TOOLS=true" From cc039a0daab48e6f2f135c5e4f20c9e82cb2154e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:38:56 +0700 Subject: [PATCH 14/27] qt6-virtualkeyboard: update to 6.4.2. --- srcpkgs/qt6-virtualkeyboard/template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-virtualkeyboard/template b/srcpkgs/qt6-virtualkeyboard/template index 695b96a14c1d..b2c27914ec29 100644 --- a/srcpkgs/qt6-virtualkeyboard/template +++ b/srcpkgs/qt6-virtualkeyboard/template @@ -1,6 +1,6 @@ # Template file for 'qt6-virtualkeyboard' pkgname=qt6-virtualkeyboard -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl pkg-config qt6-declarative-devel" @@ -10,7 +10,7 @@ maintainer="John " license="GPL-3.0-only" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtvirtualkeyboard-everywhere-src-${version}.tar.xz" -checksum=25ab09aba2afb001cbedd7ff16f874d0ef8c3e031d0b620baa754d490fa3fd20 +checksum=9c3c830f6e17896efaca5fdc7c191088eedd70b07490b38835856579346a4f28 if [ "$XBPS_CHECK_PKGS" ]; then configure_args="-DQT_BUILD_TESTS=ON" @@ -24,6 +24,10 @@ do_check() { # inputpanel hangs } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-virtualkeyboard-devel_package() { depends="${sourcepkg}>=${version}_${revision} $makedepends" short_desc+=" - development files" From 6d3ede3c4b5addfb6226d64e5921352865e85c72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:39:12 +0700 Subject: [PATCH 15/27] qt6-connectivity: update to 6.4.2. --- srcpkgs/qt6-connectivity/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-connectivity/template b/srcpkgs/qt6-connectivity/template index de851f3d77bc..7da19f426612 100644 --- a/srcpkgs/qt6-connectivity/template +++ b/srcpkgs/qt6-connectivity/template @@ -1,6 +1,6 @@ # Template file for 'qt6-connectivity' pkgname=qt6-connectivity -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-declarative-devel" @@ -10,7 +10,7 @@ maintainer="Đoàn Trần Công Danh " license="GPL-3.0-only" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtconnectivity-everywhere-src-${version}.tar.xz" -checksum=5adc177db5ea634cc7076afd82a63bc5d12ed3b55f9a1e0400eadcb56217c54e +checksum=8c9b44b239e42b4c4d6fca5f427904e688890b2a1bfb6bcbe5e6e2afcdc5d7af qt6-connectivity-devel_package() { depends="${sourcepkg}>=${version}_${revision} From 2989fb3a5a985122e4d80710788292a16314805f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:39:28 +0700 Subject: [PATCH 16/27] qt6-shadertools: update to 6.4.2. --- srcpkgs/qt6-shadertools/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-shadertools/template b/srcpkgs/qt6-shadertools/template index f27848f6de2b..78544b97a1fd 100644 --- a/srcpkgs/qt6-shadertools/template +++ b/srcpkgs/qt6-shadertools/template @@ -1,6 +1,6 @@ # Template file for 'qt6-shadertools' pkgname=qt6-shadertools -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-base-devel" @@ -10,7 +10,7 @@ maintainer="John " license="GPL-3.0-or-later" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtshadertools-everywhere-src-${version}.tar.xz" -checksum=dbd6a5f00e8178cd2fea7e84c4eef3818de5287d34e20a68383929c754ae3b90 +checksum=fa65bff84d4e9c2cb4cbf6fb098207e0e23d863dbe675eb277034a29c226a217 if [ "$CROSS_BUILD" ]; then configure_args="-DQT_FORCE_BUILD_TOOLS=true" From 75d3aa88fe530e9514c65d97299fecdd6c8269f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:39:32 +0700 Subject: [PATCH 17/27] qt6-serialport: update to 6.4.2. --- srcpkgs/qt6-serialport/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-serialport/template b/srcpkgs/qt6-serialport/template index c3ee41ad3b0b..dc942bf29b84 100644 --- a/srcpkgs/qt6-serialport/template +++ b/srcpkgs/qt6-serialport/template @@ -1,6 +1,6 @@ # Template file for 'qt6-serialport' pkgname=qt6-serialport -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-base-devel pkg-config" @@ -10,7 +10,7 @@ maintainer="John " license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtserialport-everywhere-src-${version}.tar.xz" -checksum=f148cc9e87ce2228e82bff7a64d9521339ece66c4c66aa43b91bac614f4a4483 +checksum=336d95919037800184b3c3de8ccb6f62954b20f3756c05adce8d5010504340fa qt6-serialport-devel_package() { depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1" From 3a90488b781eb160492867278718528efe8f7bd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:39:44 +0700 Subject: [PATCH 18/27] qt6-imageformats: update to 6.4.2. --- srcpkgs/qt6-imageformats/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-imageformats/template b/srcpkgs/qt6-imageformats/template index d101faacfc4f..22f4d4e84fe9 100644 --- a/srcpkgs/qt6-imageformats/template +++ b/srcpkgs/qt6-imageformats/template @@ -1,6 +1,6 @@ # Template file for 'qt6-imageformats' pkgname=qt6-imageformats -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-base-devel" @@ -10,4 +10,4 @@ maintainer="John " license="LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtimageformats-everywhere-src-${version}.tar.xz" -checksum=1419a7b75d03c1f098a85ff772a6baad38d36be1fd75633905f043af6e945f3c +checksum=fc5f999ae0779a67d5507956d4dd315386eb81cf6ccba632de039bb9eee11707 From d5e88ade1885cc2952f3118ca1962f9118494a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:39:56 +0700 Subject: [PATCH 19/27] qt6-translations: update to 6.4.2. --- srcpkgs/qt6-translations/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-translations/template b/srcpkgs/qt6-translations/template index ca8488702858..f92c27bc2cfb 100644 --- a/srcpkgs/qt6-translations/template +++ b/srcpkgs/qt6-translations/template @@ -1,6 +1,6 @@ # Template file for 'qt6-translations' pkgname=qt6-translations -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="qt6-base-devel qt6-tools-devel perl" @@ -10,4 +10,4 @@ maintainer="John " license="GPL-3.0-only with Qt-GPL-exception-1.0" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qttranslations-everywhere-src-${version}.tar.xz" -checksum=7ab93a930b693eeb53ab97b038b4e6e057d06374e6f49a3814d99145a276925f +checksum=bbe0291502c2604b72fef730e1935bd22f8b921d8c473250f298a723b2a9c496 From ff7aaaec9890747800fc7a1fdb2a9d92158b0eab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:40:06 +0700 Subject: [PATCH 20/27] qt6-quick3d: update to 6.4.2. --- srcpkgs/qt6-quick3d/template | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-quick3d/template b/srcpkgs/qt6-quick3d/template index 608fabb75569..8bc3b0d2bfc3 100644 --- a/srcpkgs/qt6-quick3d/template +++ b/srcpkgs/qt6-quick3d/template @@ -1,6 +1,6 @@ # Template file for 'qt6-quick3d' pkgname=qt6-quick3d -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-base-devel qt6-declarative-devel qt6-shadertools-devel" @@ -11,7 +11,7 @@ maintainer="John " license="GPL-3.0-or-later" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtquick3d-everywhere-src-${version}.tar.xz" -checksum=f10a1660d4d4103f0749f258eddce4d4878fa7bbbc5e610a900bef28adf017ec +checksum=953d3b6ca6dc00563ceea33d51f25e22b1788ab5aa861941100f6a1b652926a7 if [ "$CROSS_BUILD" ]; then hostmakedepends+=" qt6-quick3d-devel" @@ -23,6 +23,17 @@ if [ "$XBPS_TARGET_ENDIAN" = "be" ]; then broken="Shader baking failed: Cannot resolve expression type." fi +do_check() { + cd build + ctest -E tst_qquick3drotationdata +} + +post_install() { + rm -rf ${DESTDIR}/usr/tests + # Maybe new package for embree? + rm -rf ${DESTDIR}/usr/lib/libQt6BundledEmbree.a +} + qt6-quick3d-devel_package() { depends="${sourcepkg}>=${version}_${revision} qt6-base-devel" short_desc+=" - development files" From fa94adbb09c090ac50b6eb5d3d5af62721c0dc26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:40:10 +0700 Subject: [PATCH 21/27] qt6-quicktimeline: update to 6.4.2. --- srcpkgs/qt6-quicktimeline/template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-quicktimeline/template b/srcpkgs/qt6-quicktimeline/template index 5d796c01bd5f..de267f4e37c3 100644 --- a/srcpkgs/qt6-quicktimeline/template +++ b/srcpkgs/qt6-quicktimeline/template @@ -1,6 +1,6 @@ # Template file for 'qt6-quicktimeline' pkgname=qt6-quicktimeline -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-base-devel qt6-declarative-devel" @@ -10,7 +10,7 @@ maintainer="John " license="GPL-3.0-or-later" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version/rc/-rc}/submodules/qtquicktimeline-everywhere-src-${version/rc/-rc}.tar.xz" -checksum=70e8a28b5310c42a8d50d949b55c1d7238cf52ea778f9bb2e254835a0e054f57 +checksum=3088abb7f478362a354ea1509d1c3c3403e3f5adfb84f3e5cf30a1f2eff09a5e if [ "$XBPS_CHECK_PKGS" ]; then configure_args="-DQT_BUILD_TESTS=ON" @@ -20,6 +20,10 @@ pre_check() { export QML2_IMPORT_PATH="$wrksrc/build/lib/qt6/qml" } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + do_check() { : # ignores QML2_IMPORT_PATH somewhere, misses test data in cwd } From e0233cb45f1c298baac966d344993f63e976e2cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:40:14 +0700 Subject: [PATCH 22/27] qt6-remoteobjects: update to 6.4.2. --- srcpkgs/qt6-remoteobjects/template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-remoteobjects/template b/srcpkgs/qt6-remoteobjects/template index 8afad8982005..c6add33cec9e 100644 --- a/srcpkgs/qt6-remoteobjects/template +++ b/srcpkgs/qt6-remoteobjects/template @@ -1,6 +1,6 @@ # Template file for 'qt6-remoteobjects' pkgname=qt6-remoteobjects -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-declarative-devel pkg-config" @@ -13,7 +13,7 @@ maintainer="Đoàn Trần Công Danh " license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtremoteobjects-everywhere-src-${version}.tar.xz" -checksum=f51a7debee6fef86fbc444dece08e064f925f4d976947fc66f4100188956e1ce +checksum=583c53640020d5d068eef7ae180d750120bb49e30249c2febdd173c5a7428812 if [ "$CROSS_BUILD" ]; then hostmakedepends+=" qt6-remoteobjects" @@ -24,6 +24,10 @@ pre_check() { export QML2_IMPORT_PATH="$wrksrc/build/lib/qt6/qml" } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-remoteobjects-devel_package() { depends="${sourcepkg}>=${version}_${revision} qt6-declarative-devel>=${version}_1" From 60fafa04d59f6f2fff0316fd9daa5d070b8ff6df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:40:18 +0700 Subject: [PATCH 23/27] qt6-scxml: update to 6.4.2. --- srcpkgs/qt6-scxml/template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-scxml/template b/srcpkgs/qt6-scxml/template index 89eee1b06d0c..8991e5be19bf 100644 --- a/srcpkgs/qt6-scxml/template +++ b/srcpkgs/qt6-scxml/template @@ -1,6 +1,6 @@ # Template file for 'qt6-scxml' pkgname=qt6-scxml -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-declarative-devel" @@ -10,7 +10,7 @@ maintainer="John " license="LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtscxml-everywhere-src-${version}.tar.xz" -checksum=d40773a5e6594829aca99ccc73aba3559f93301ea081ffb78668a9b616d97664 +checksum=13b0d43459394bed2481967a1feff02b63228a82c1136a62941c0eb83ef54e7f if [ "$CROSS_BUILD" ]; then configure_args="-DQT_FORCE_BUILD_TOOLS=true" @@ -21,6 +21,10 @@ pre_check() { export QML2_IMPORT_PATH="$wrksrc/build/lib/qt6/qml" } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-scxml-devel_package() { depends="${sourcepkg}>=${version}_${revision}" short_desc+=" - development files" From 7a69e817b621dbc958736f4e3faa16f052b4b38c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:40:22 +0700 Subject: [PATCH 24/27] qt6-sensors: update to 6.4.2. --- srcpkgs/qt6-sensors/template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-sensors/template b/srcpkgs/qt6-sensors/template index 6b0befd4b36c..d7d4a2937e9c 100644 --- a/srcpkgs/qt6-sensors/template +++ b/srcpkgs/qt6-sensors/template @@ -1,6 +1,6 @@ # Template file for 'qt6-sensors' pkgname=qt6-sensors -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-declarative-devel qt6-svg-devel pkg-config" @@ -10,7 +10,11 @@ maintainer="Đoàn Trần Công Danh " license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtsensors-everywhere-src-${version}.tar.xz" -checksum=f38c072f5b9f62631985f385de70cdc54c13f0b888d9496943342e3be1ca50da +checksum=455619ff28a39f4caba49c9e1952fbcfafc8ffc893b437d653d5465a077ee656 + +post_install() { + rm -rf ${DESTDIR}/usr/tests +} qt6-sensors-devel_package() { depends="${sourcepkg}>=${version}_${revision} From 00ebd0dc8b33b00ac13d8f8526b53732d222db19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 18 Feb 2023 09:40:51 +0700 Subject: [PATCH 25/27] qt6-charts: update to 6.4.2. --- srcpkgs/qt6-charts/template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qt6-charts/template b/srcpkgs/qt6-charts/template index e60068039c61..cb36f3fcdcc7 100644 --- a/srcpkgs/qt6-charts/template +++ b/srcpkgs/qt6-charts/template @@ -1,6 +1,6 @@ # Template file for 'qt6-charts' pkgname=qt6-charts -version=6.4.0 +version=6.4.2 revision=1 build_style=cmake hostmakedepends="perl qt6-declarative-devel" @@ -10,12 +10,16 @@ maintainer="John " license="GPL-3.0-only" homepage="https://qt.io/" distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtcharts-everywhere-src-${version}.tar.xz" -checksum=28c3cace24515bdafe762174272281aebc97c136cb722eded964cd0ddb3940d3 +checksum=a1a7c0e08c8870cf97d1c3a2eb3f37681aaed00a63b5b2f70bdf2da878d0a9aa pre_check() { export QML2_IMPORT_PATH="$wrksrc/build/lib/qt6/qml" } +post_install() { + rm -rf ${DESTDIR}/usr/tests +} + qt6-charts-devel_package() { depends="${sourcepkg}>=${version}_${revision}" short_desc+=" - development files" From ed02c5894af50fbf03ba79fe327be9bca1cdf14f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sun, 11 Dec 2022 21:49:53 +0700 Subject: [PATCH 26/27] klibc: update to 2.0.12. --- srcpkgs/klibc/files/initramfs-tools-hooks | 34 +++++++++++++++++++++++ srcpkgs/klibc/template | 6 ++-- 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100755 srcpkgs/klibc/files/initramfs-tools-hooks diff --git a/srcpkgs/klibc/files/initramfs-tools-hooks b/srcpkgs/klibc/files/initramfs-tools-hooks new file mode 100755 index 000000000000..b20a0968a2d6 --- /dev/null +++ b/srcpkgs/klibc/files/initramfs-tools-hooks @@ -0,0 +1,34 @@ +#!/bin/sh + +prereqs() +{ + if [ "${BUSYBOX}" = "n" ] || [ ! -f "${BUSYBOX_EXECUTABLE}" ]; then + echo '' + else + # Ensure busybox installs all its commands before + # checking what we should provide + echo zz-busybox + fi +} + +case $1 in +prereqs) + prereqs + exit 0 + ;; +esac + +for src in /usr/lib/klibc/bin/*; do + command="${src##*/}" + case "$src" in + gzip | kinit | zcat) + ;; + *) + # Don't install commands that already exist in /bin or /sbin + if ! [ -e "${DESTDIR}/sbin/$command" ]; then + cp -pnL "$src" "${DESTDIR}/bin" + fi + ;; + esac +done +cp -pL /lib/klibc-*.so "${DESTDIR}/lib" diff --git a/srcpkgs/klibc/template b/srcpkgs/klibc/template index b5b757d2745b..50c73deb454e 100644 --- a/srcpkgs/klibc/template +++ b/srcpkgs/klibc/template @@ -1,6 +1,6 @@ # Template file for 'klibc' pkgname=klibc -version=2.0.11 +version=2.0.12 revision=1 hostmakedepends="perl" makedepends="kernel-libc-headers" @@ -9,7 +9,7 @@ maintainer="Đoàn Trần Công Danh " license="GPL-2.0-only" homepage="https://git.kernel.org/pub/scm/libs/klibc/klibc.git/" distfiles="https://git.kernel.org/pub/scm/libs/klibc/klibc.git/snapshot/klibc-${version}.tar.gz" -checksum=bb9c40fb9b20335fbdc44904d7c579d43e39cb0b59252e1a56ce67194fb38541 +checksum=01cc9dc32453b664c998d811fb67be96f842740a3fedfaf746bac2bd394021cd _make() { local _arch _mkflags= @@ -105,6 +105,8 @@ do_install() { else vbin klcc/${XBPS_TRIPLET/unknown-/}-klcc fi + vinstall ${FILESDIR}/initramfs-tools-hooks 755 \ + usr/share/initramfs-tools/hooks klibc } klibc-devel_package() { From 43129bb45e7e084eb2e2f384b9a6ab4d207772a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Mon, 8 Aug 2022 17:13:11 +0700 Subject: [PATCH 27/27] New package: qt6-webengine-6.3.1. --- common/shlibs | 7 + srcpkgs/qt6-webengine-devel | 1 + srcpkgs/qt6-webengine-examples | 1 + .../patches/0001-None-no-debug.patch | 11 + .../patches/0003-cross-hack.patch | 10 + .../patches/0050-no-glibc-cmake-check.patch | 14 + .../0100-chromium-revert-9d080c0.patch | 154 ++++ ...omium-102-fenced_frame_utils-include.patch | 20 + ...102-chromium-102-regex_pattern-array.patch | 14 + ...0103-chromium-i686-vaapi-fpermissive.patch | 23 + .../0104-chromium-libxml-unbundle.patch | 10 + ...-chromium-revert-drop-of-system-java.patch | 15 + .../patches/0106-chromium-system-nodejs.patch | 29 + .../patches/0107-chromium-cross-build.patch | 65 ++ .../0108-chromium-cursed^Uscoped_file.patch | 18 + ...chromium-aarch64-musl-memory-tagging.patch | 29 + ...fix-missing-TEMP_FAILURE_RETRY-macro.patch | 21 + .../patches/0111-chromium-cstdint.patch | 10 + .../patches/0112-chromium-unistd.h.patch | 10 + .../0113-chromium-pthread-stacksize.patch | 16 + .../patches/0114-do-not-narrow-int.patch | 53 ++ ...5-chromium-no-canonicalize-file-name.patch | 12 + .../0116-chromium-musl-get-thread-name.patch | 22 + .../patches/0117-chromium-musl-resolver.patch | 64 ++ .../0119-chromium-musl-stack-utils.patch | 20 + .../patches/0120-chromium-libc-malloc.patch | 34 + .../patches/0121-chromium-musl-stat.patch | 12 + .../patches/0122-chromium-condition_var.patch | 22 + .../0123-chromium-musl-no-execinfo.patch | 75 ++ .../0123-chromium-musl-no-getcontext.patch | 27 + .../patches/0124-chromium-enable-i686.patch | 17 + .../0125-chromium-remove-strip_binary.patch | 32 + .../patches/0126-chromium-no-cdefs.patch | 39 + .../0128-chromium-sandbox-membarrier.patch | 10 + .../0129-chromium-sandbox-shed_getparam.patch | 20 + ...undle-ffmpeg-av_stream_get_first_dts.patch | 10 + ...1-chromium-unbundled-cross-toolchain.patch | 13 + .../patches/0152-chromium-webrtc-size_t.patch | 10 + .../patches/0153-chromium-webrtc-size_t.patch | 16 + .../patches/0154-chromium-uit_t.patch | 11 + .../patches/0200-chromium-sndio.patch | 849 ++++++++++++++++++ .../patches/0300-chromium-musl-hacks.patch | 52 ++ .../patches/0301-chromium-musl-sandbox.patch | 86 ++ .../patches/0302-chromium-no-mallinfo.patch | 67 ++ .../patches/0700-armv7l-neon.patch | 10 + ...-chromium-musl-cross-no-asm_ptrace_h.patch | 30 + .../0751-chromium-musl-arm-user_vfp.patch | 20 + .../0752-chromium-musl-arm-elf_auxv_t.patch | 18 + .../patches/0900-cross-build-examples.patch | 16 + srcpkgs/qt6-webengine/template | 183 ++++ srcpkgs/qt6-webengine/update | 1 + 51 files changed, 2329 insertions(+) create mode 120000 srcpkgs/qt6-webengine-devel create mode 120000 srcpkgs/qt6-webengine-examples create mode 100644 srcpkgs/qt6-webengine/patches/0001-None-no-debug.patch create mode 100644 srcpkgs/qt6-webengine/patches/0003-cross-hack.patch create mode 100644 srcpkgs/qt6-webengine/patches/0050-no-glibc-cmake-check.patch create mode 100644 srcpkgs/qt6-webengine/patches/0100-chromium-revert-9d080c0.patch create mode 100644 srcpkgs/qt6-webengine/patches/0101-chromium-102-fenced_frame_utils-include.patch create mode 100644 srcpkgs/qt6-webengine/patches/0102-chromium-102-regex_pattern-array.patch create mode 100644 srcpkgs/qt6-webengine/patches/0103-chromium-i686-vaapi-fpermissive.patch create mode 100644 srcpkgs/qt6-webengine/patches/0104-chromium-libxml-unbundle.patch create mode 100644 srcpkgs/qt6-webengine/patches/0105-chromium-revert-drop-of-system-java.patch create mode 100644 srcpkgs/qt6-webengine/patches/0106-chromium-system-nodejs.patch create mode 100644 srcpkgs/qt6-webengine/patches/0107-chromium-cross-build.patch create mode 100644 srcpkgs/qt6-webengine/patches/0108-chromium-cursed^Uscoped_file.patch create mode 100644 srcpkgs/qt6-webengine/patches/0109-chromium-aarch64-musl-memory-tagging.patch create mode 100644 srcpkgs/qt6-webengine/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch create mode 100644 srcpkgs/qt6-webengine/patches/0111-chromium-cstdint.patch create mode 100644 srcpkgs/qt6-webengine/patches/0112-chromium-unistd.h.patch create mode 100644 srcpkgs/qt6-webengine/patches/0113-chromium-pthread-stacksize.patch create mode 100644 srcpkgs/qt6-webengine/patches/0114-do-not-narrow-int.patch create mode 100644 srcpkgs/qt6-webengine/patches/0115-chromium-no-canonicalize-file-name.patch create mode 100644 srcpkgs/qt6-webengine/patches/0116-chromium-musl-get-thread-name.patch create mode 100644 srcpkgs/qt6-webengine/patches/0117-chromium-musl-resolver.patch create mode 100644 srcpkgs/qt6-webengine/patches/0119-chromium-musl-stack-utils.patch create mode 100644 srcpkgs/qt6-webengine/patches/0120-chromium-libc-malloc.patch create mode 100644 srcpkgs/qt6-webengine/patches/0121-chromium-musl-stat.patch create mode 100644 srcpkgs/qt6-webengine/patches/0122-chromium-condition_var.patch create mode 100644 srcpkgs/qt6-webengine/patches/0123-chromium-musl-no-execinfo.patch create mode 100644 srcpkgs/qt6-webengine/patches/0123-chromium-musl-no-getcontext.patch create mode 100644 srcpkgs/qt6-webengine/patches/0124-chromium-enable-i686.patch create mode 100644 srcpkgs/qt6-webengine/patches/0125-chromium-remove-strip_binary.patch create mode 100644 srcpkgs/qt6-webengine/patches/0126-chromium-no-cdefs.patch create mode 100644 srcpkgs/qt6-webengine/patches/0128-chromium-sandbox-membarrier.patch create mode 100644 srcpkgs/qt6-webengine/patches/0129-chromium-sandbox-shed_getparam.patch create mode 100644 srcpkgs/qt6-webengine/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch create mode 100644 srcpkgs/qt6-webengine/patches/0151-chromium-unbundled-cross-toolchain.patch create mode 100644 srcpkgs/qt6-webengine/patches/0152-chromium-webrtc-size_t.patch create mode 100644 srcpkgs/qt6-webengine/patches/0153-chromium-webrtc-size_t.patch create mode 100644 srcpkgs/qt6-webengine/patches/0154-chromium-uit_t.patch create mode 100644 srcpkgs/qt6-webengine/patches/0200-chromium-sndio.patch create mode 100644 srcpkgs/qt6-webengine/patches/0300-chromium-musl-hacks.patch create mode 100644 srcpkgs/qt6-webengine/patches/0301-chromium-musl-sandbox.patch create mode 100644 srcpkgs/qt6-webengine/patches/0302-chromium-no-mallinfo.patch create mode 100644 srcpkgs/qt6-webengine/patches/0700-armv7l-neon.patch create mode 100644 srcpkgs/qt6-webengine/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch create mode 100644 srcpkgs/qt6-webengine/patches/0751-chromium-musl-arm-user_vfp.patch create mode 100644 srcpkgs/qt6-webengine/patches/0752-chromium-musl-arm-elf_auxv_t.patch create mode 100644 srcpkgs/qt6-webengine/patches/0900-cross-build-examples.patch create mode 100644 srcpkgs/qt6-webengine/template create mode 100644 srcpkgs/qt6-webengine/update diff --git a/common/shlibs b/common/shlibs index 0c1d545fbe27..e697fef57af2 100644 --- a/common/shlibs +++ b/common/shlibs @@ -2093,6 +2093,13 @@ libQt6Positioning.so.6 qt6-location-6.2.0alpha_1 libQt6MultimediaWidgets.so.6 qt6-multimedia-6.3.1_1 libQt6MultimediaQuick.so.6 qt6-multimedia-6.3.1_1 libQt6Multimedia.so.6 qt6-multimedia-6.3.1_1 +libQt6WebEngineQuick.so.6 qt6-webengine-6.3.1_1 +libQt6PdfWidgets.so.6 qt6-webengine-6.3.1_1 +libQt6PdfQuick.so.6 qt6-webengine-6.3.1_1 +libQt6WebEngineCore.so.6 qt6-webengine-6.3.1_1 +libQt6Pdf.so.6 qt6-webengine-6.3.1_1 +libQt6WebEngineQuickDelegatesQml.so.6 qt6-webengine-6.3.1_1 +libQt6WebEngineWidgets.so.6 qt6-webengine-6.3.1_1 libnpth.so.0 npth-1.1_1 libnpupnp.so.9 libnpupnp-5.0.0_1 libglfw.so.3 glfw-3.0.4_1 diff --git a/srcpkgs/qt6-webengine-devel b/srcpkgs/qt6-webengine-devel new file mode 120000 index 000000000000..8e4d1b99c587 --- /dev/null +++ b/srcpkgs/qt6-webengine-devel @@ -0,0 +1 @@ +qt6-webengine \ No newline at end of file diff --git a/srcpkgs/qt6-webengine-examples b/srcpkgs/qt6-webengine-examples new file mode 120000 index 000000000000..8e4d1b99c587 --- /dev/null +++ b/srcpkgs/qt6-webengine-examples @@ -0,0 +1 @@ +qt6-webengine \ No newline at end of file diff --git a/srcpkgs/qt6-webengine/patches/0001-None-no-debug.patch b/srcpkgs/qt6-webengine/patches/0001-None-no-debug.patch new file mode 100644 index 000000000000..b221fdcd392f --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0001-None-no-debug.patch @@ -0,0 +1,11 @@ +--- qt6-webengine-6.4.2.orig/cmake/Functions.cmake ++++ qt6-webengine-6.4.2/cmake/Functions.cmake +@@ -820,6 +820,8 @@ macro(append_build_type_setup) + endif() + elseif(${config} STREQUAL "MinSizeRel") + list(APPEND gnArgArg is_debug=false symbol_level=0 optimize_for_size=true) ++ elseif(${config} STREQUAL "None") ++ list(APPEND gnArgArg is_debug=false symbol_level=0) + endif() + if(FEATURE_developer_build OR (${config} STREQUAL "Debug") OR QT_FEATURE_webengine_sanitizer) + list(APPEND gnArgArg diff --git a/srcpkgs/qt6-webengine/patches/0003-cross-hack.patch b/srcpkgs/qt6-webengine/patches/0003-cross-hack.patch new file mode 100644 index 000000000000..a3f0a5791406 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0003-cross-hack.patch @@ -0,0 +1,10 @@ +--- qt6-webengine-6.4.2.orig/src/core/api/CMakeLists.txt ++++ qt6-webengine-6.4.2/src/core/api/CMakeLists.txt +@@ -51,6 +51,7 @@ qt_internal_add_module(WebEngineCore + Qt::Gui + Qt::Network + Qt::Quick ++ X11 + ) + + set_target_properties(WebEngineCore PROPERTIES QTWEBENGINEPROCESS_NAME ${qtWebEngineProcessName}) diff --git a/srcpkgs/qt6-webengine/patches/0050-no-glibc-cmake-check.patch b/srcpkgs/qt6-webengine/patches/0050-no-glibc-cmake-check.patch new file mode 100644 index 000000000000..d9116dc5857e --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0050-no-glibc-cmake-check.patch @@ -0,0 +1,14 @@ +--- qt6-webengine-6.4.2.orig/configure.cmake ++++ qt6-webengine-6.4.2/configure.cmake +@@ -499,11 +499,6 @@ add_check_for_support( + ) + add_check_for_support( + MODULES QtWebEngine QtPdf +- CONDITION NOT LINUX OR TEST_glibc +- MESSAGE "A suitable version >= 2.17 of glibc is required." +-) +-add_check_for_support( +- MODULES QtWebEngine QtPdf + CONDITION NOT LINUX OR TEST_khr + MESSAGE "Build requires Khronos development headers for build - see mesa/libegl1-mesa-dev" + ) diff --git a/srcpkgs/qt6-webengine/patches/0100-chromium-revert-9d080c0.patch b/srcpkgs/qt6-webengine/patches/0100-chromium-revert-9d080c0.patch new file mode 100644 index 000000000000..adca364a4060 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0100-chromium-revert-9d080c0.patch @@ -0,0 +1,154 @@ +Revert 9d080c0934b848ee4a05013c78641e612fcc1e03 + +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/config/sanitizers/BUILD.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/config/sanitizers/BUILD.gn +@@ -271,11 +271,11 @@ config("asan_flags") { + if (is_asan) { + cflags += [ "-fsanitize=address" ] + if (is_win) { +- if (!defined(asan_win_blocklist_path)) { +- asan_win_blocklist_path = ++ if (!defined(asan_win_blacklist_path)) { ++ asan_win_blacklist_path = + rebase_path("//tools/memory/asan/blocklist_win.txt", root_build_dir) + } +- cflags += [ "-fsanitize-ignorelist=$asan_win_blocklist_path" ] ++ cflags += [ "-fsanitize-blacklist=$asan_win_blacklist_path" ] + } + } + } +@@ -305,13 +305,13 @@ config("link_shared_library") { + config("cfi_flags") { + cflags = [] + if (is_cfi && current_toolchain == default_toolchain) { +- if (!defined(cfi_ignorelist_path)) { +- cfi_ignorelist_path = ++ if (!defined(cfi_blacklist_path)) { ++ cfi_blacklist_path = + rebase_path("//tools/cfi/ignores.txt", root_build_dir) + } + cflags += [ + "-fsanitize=cfi-vcall", +- "-fsanitize-ignorelist=$cfi_ignorelist_path", ++ "-fsanitize-blacklist=$cfi_blacklist_path", + ] + + if (use_cfi_cast) { +@@ -408,14 +408,14 @@ config("msan_flags") { + if (is_msan) { + assert(is_linux || is_chromeos, + "msan only supported on linux x86_64/ChromeOS") +- if (!defined(msan_ignorelist_path)) { +- msan_ignorelist_path = +- rebase_path("//tools/msan/ignorelist.txt", root_build_dir) ++ if (!defined(msan_blacklist_path)) { ++ msan_blacklist_path = ++ rebase_path("//tools/msan/blacklist.txt", root_build_dir) + } + cflags = [ + "-fsanitize=memory", + "-fsanitize-memory-track-origins=$msan_track_origins", +- "-fsanitize-ignorelist=$msan_ignorelist_path", ++ "-fsanitize-blacklist=$msan_blacklist_path", + ] + } + } +@@ -423,13 +423,13 @@ config("msan_flags") { + config("tsan_flags") { + if (is_tsan) { + assert(is_linux || is_chromeos, "tsan only supported on linux x86_64") +- if (!defined(tsan_ignorelist_path)) { +- tsan_ignorelist_path = ++ if (!defined(tsan_blacklist_path)) { ++ tsan_blacklist_path = + rebase_path("//tools/memory/tsan_v2/ignores.txt", root_build_dir) + } + cflags = [ + "-fsanitize=thread", +- "-fsanitize-ignorelist=$tsan_ignorelist_path", ++ "-fsanitize-blacklist=$tsan_blacklist_path", + ] + } + } +@@ -437,8 +437,8 @@ config("tsan_flags") { + config("ubsan_flags") { + cflags = [] + if (is_ubsan) { +- if (!defined(ubsan_ignorelist_path)) { +- ubsan_ignorelist_path = ++ if (!defined(ubsan_blacklist_path)) { ++ ubsan_blacklist_path = + rebase_path("//tools/ubsan/ignorelist.txt", root_build_dir) + } + cflags += [ +@@ -455,7 +455,7 @@ config("ubsan_flags") { + "-fsanitize=signed-integer-overflow", + "-fsanitize=unreachable", + "-fsanitize=vla-bound", +- "-fsanitize-ignorelist=$ubsan_ignorelist_path", ++ "-fsanitize-blacklist=$ubsan_blacklist_path", + ] + if (!is_clang) { + # These exposes too much illegal C++14 code to compile on anything stricter than clang: +@@ -496,8 +496,8 @@ config("ubsan_no_recover") { + + config("ubsan_security_flags") { + if (is_ubsan_security) { +- if (!defined(ubsan_security_ignorelist_path)) { +- ubsan_security_ignorelist_path = ++ if (!defined(ubsan_security_blacklist_path)) { ++ ubsan_security_blacklist_path = + rebase_path("//tools/ubsan/security_ignorelist.txt", root_build_dir) + } + cflags = [ +@@ -505,7 +505,7 @@ config("ubsan_security_flags") { + "-fsanitize=shift", + "-fsanitize=signed-integer-overflow", + "-fsanitize=vla-bound", +- "-fsanitize-ignorelist=$ubsan_security_ignorelist_path", ++ "-fsanitize-blacklist=$ubsan_security_blacklist_path", + ] + } + } +@@ -518,13 +518,13 @@ config("ubsan_null_flags") { + + config("ubsan_vptr_flags") { + if (is_ubsan_vptr) { +- if (!defined(ubsan_vptr_ignorelist_path)) { +- ubsan_vptr_ignorelist_path = ++ if (!defined(ubsan_vptr_blacklist_path)) { ++ ubsan_vptr_blacklist_path = + rebase_path("//tools/ubsan/vptr_ignorelist.txt", root_build_dir) + } + cflags = [ + "-fsanitize=vptr", +- "-fsanitize-ignorelist=$ubsan_vptr_ignorelist_path", ++ "-fsanitize-blacklist=$ubsan_vptr_blacklist_path", + ] + if (!is_clang) { + # Clang specific flag: +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build_overrides/build.gni ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/build_overrides/build.gni +@@ -43,15 +43,15 @@ declare_args() { + # Allows different projects to specify their own suppression/ignore lists for + # sanitizer tools. + # asan_suppressions_file = "path/to/asan_suppressions.cc" +-# asan_win_ignorelist_path = "path/to/asan/blocklist_win.txt" ++# asan_win_blacklist_path = "path/to/asan/blocklist_win.txt" + # lsan_suppressions_file = "path/to/lsan_suppressions.cc" + # tsan_suppressions_file = "path/to/tsan_suppressions.cc" +-# tsan_ignorelist_path = "path/to/tsan/ignores.txt" +-# msan_ignorelist_path = "path/to/msan/ignorelist.txt" +-# ubsan_ignorelist_path = "path/to/ubsan/ignorelist.txt" +-# ubsan_vptr_ignorelist_path = "path/to/ubsan/vptr_ignorelist.txt" +-# ubsan_security_ignorelist_path = "path/to/ubsan/security_ignorelist.txt" +-# cfi_ignorelist_path = "path/to/cfi/ignores.txt" ++# tsan_blacklist_path = "path/to/tsan/ignores.txt" ++# msan_blacklist_path = "path/to/msan/blacklist.txt" ++# ubsan_blacklist_path = "path/to/ubsan/blacklist.txt" ++# ubsan_vptr_blacklist_path = "path/to/ubsan/vptr_blacklist.txt" ++# ubsan_security_blacklist_path = "path/to/ubsan/security_blacklist.txt" ++# cfi_blacklist_path = "path/to/cfi/ignores.txt" + + if (host_os == "mac" || is_apple) { + # Needed for is_apple when targeting macOS or iOS, independent of host. diff --git a/srcpkgs/qt6-webengine/patches/0101-chromium-102-fenced_frame_utils-include.patch b/srcpkgs/qt6-webengine/patches/0101-chromium-102-fenced_frame_utils-include.patch new file mode 100644 index 000000000000..f41c7984840d --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0101-chromium-102-fenced_frame_utils-include.patch @@ -0,0 +1,20 @@ +From 7c135a291184b59a59643ed6a8c40b4405ac0175 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Wed, 27 Apr 2022 16:01:01 +0000 +Subject: [PATCH] IWYU: add cstring for std::strlen in fenced_frame_utils + +--- + third_party/blink/common/fenced_frame/fenced_frame_utils.cc | 2 ++ + 1 file changed, 2 insertions(+) + +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/blink/common/fenced_frame/fenced_frame_utils.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/blink/common/fenced_frame/fenced_frame_utils.cc +@@ -6,6 +6,8 @@ + + #include + ++#include ++ + #include "base/guid.h" + #include "base/strings/string_util.h" + diff --git a/srcpkgs/qt6-webengine/patches/0102-chromium-102-regex_pattern-array.patch b/srcpkgs/qt6-webengine/patches/0102-chromium-102-regex_pattern-array.patch new file mode 100644 index 000000000000..420ef941a386 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0102-chromium-102-regex_pattern-array.patch @@ -0,0 +1,14 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/components/autofill/core/browser/BUILD.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/components/autofill/core/browser/BUILD.gn +@@ -34,6 +34,11 @@ action("regex_patterns_inl_h") { + } + + jumbo_static_library("browser") { ++ if (is_clang) { ++ cflags = [ ++ "-fbracket-depth=1000", ++ ] ++ } + sources = [ + "address_normalization_manager.cc", + "address_normalization_manager.h", diff --git a/srcpkgs/qt6-webengine/patches/0103-chromium-i686-vaapi-fpermissive.patch b/srcpkgs/qt6-webengine/patches/0103-chromium-i686-vaapi-fpermissive.patch new file mode 100644 index 000000000000..708d567a04dc --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0103-chromium-i686-vaapi-fpermissive.patch @@ -0,0 +1,23 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/media/gpu/vaapi/BUILD.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/media/gpu/vaapi/BUILD.gn +@@ -14,6 +14,12 @@ import("//ui/gl/features.gni") + assert(is_linux || is_chromeos) + assert(use_vaapi) + ++config("vaapi_permissive") { ++ if (target_cpu == "x86") { ++ cflags = [ "-fpermissive" ] ++ } ++} ++ + generate_stubs("libva_stubs") { + extra_header = "va_stub_header.fragment" + sigs = [ "va.sigs" ] +@@ -89,6 +95,7 @@ source_set("vaapi") { + configs += [ + "//build/config/linux/libva", + "//third_party/libvpx:libvpx_config", ++ ":vaapi_permissive", + ] + + deps = [ diff --git a/srcpkgs/qt6-webengine/patches/0104-chromium-libxml-unbundle.patch b/srcpkgs/qt6-webengine/patches/0104-chromium-libxml-unbundle.patch new file mode 100644 index 000000000000..baca484abc4a --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0104-chromium-libxml-unbundle.patch @@ -0,0 +1,10 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/linux/unbundle/libxml.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/linux/unbundle/libxml.gn +@@ -19,6 +19,7 @@ static_library("libxml_utils") { + ":xml_reader", + ":xml_writer", + "//base/test:test_support", ++ "//services/data_decoder:lib", + "//services/data_decoder:xml_parser_fuzzer_deps", + ] + sources = [ diff --git a/srcpkgs/qt6-webengine/patches/0105-chromium-revert-drop-of-system-java.patch b/srcpkgs/qt6-webengine/patches/0105-chromium-revert-drop-of-system-java.patch new file mode 100644 index 000000000000..d6abf7adcabc --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0105-chromium-revert-drop-of-system-java.patch @@ -0,0 +1,15 @@ +This was dropped for some reason in 6951c37cecd05979b232a39e5c10e6346a0f74ef +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/closure_compiler/compiler.py ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/closure_compiler/compiler.py +@@ -13,8 +13,9 @@ import subprocess + + + _CURRENT_DIR = os.path.join(os.path.dirname(__file__)) +-_JAVA_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java") +-assert os.path.isfile(_JAVA_PATH), "java only allowed in android builds" ++_JAVA_BIN = "java" ++_JDK_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java") ++_JAVA_PATH = _JDK_PATH if os.path.isfile(_JDK_PATH) else _JAVA_BIN + + class Compiler(object): + """Runs the Closure compiler on given source files to typecheck them diff --git a/srcpkgs/qt6-webengine/patches/0106-chromium-system-nodejs.patch b/srcpkgs/qt6-webengine/patches/0106-chromium-system-nodejs.patch new file mode 100644 index 000000000000..1648f764ea19 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0106-chromium-system-nodejs.patch @@ -0,0 +1,29 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/node/node.py ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/node/node.py +@@ -18,25 +18,7 @@ def which(cmd): + return None + + def GetBinaryPath(): +- if sys.platform == 'win32': +- nodejs = which('node.exe') +- if nodejs: +- return nodejs +- else: +- nodejs = which('nodejs') +- if nodejs: +- return nodejs +- nodejs = which('node') +- if nodejs: +- return nodejs +- +- darwin_name = ('node-darwin-arm64' if platform.machine() == 'arm64' else +- 'node-darwin-x64') +- return os_path.join(os_path.dirname(__file__), *{ +- 'Darwin': ('mac', darwin_name, 'bin', 'node'), +- 'Linux': ('linux', 'node-linux-x64', 'bin', 'node'), +- 'Windows': ('win', 'node.exe'), +- }[platform.system()]) ++ return "/usr/bin/node" + + + def RunNode(cmd_parts, stdout=None): diff --git a/srcpkgs/qt6-webengine/patches/0107-chromium-cross-build.patch b/srcpkgs/qt6-webengine/patches/0107-chromium-cross-build.patch new file mode 100644 index 000000000000..44954dfbb1e5 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0107-chromium-cross-build.patch @@ -0,0 +1,65 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/config/compiler/BUILD.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/config/compiler/BUILD.gn +@@ -58,6 +58,10 @@ if (!is_clang) { + } + + declare_args() { ++ is_musl = false ++} ++ ++declare_args() { + # Normally, Android builds are lightly optimized, even for debug builds, to + # keep binary size down. Setting this flag to true disables such optimization + android_full_debug = false +@@ -970,8 +974,13 @@ config("compiler_cpu_abi") { + } + } else if (current_cpu == "arm64") { + if (is_clang && !is_android && !is_nacl && !is_fuchsia) { +- cflags += [ "--target=aarch64-linux-gnu" ] +- ldflags += [ "--target=aarch64-linux-gnu" ] ++ if (is_musl) { ++ cflags += [ "--target=aarch64-linux-musl" ] ++ ldflags += [ "--target=aarch64-linux-musl" ] ++ } else { ++ cflags += [ "--target=aarch64-linux-gnu" ] ++ ldflags += [ "--target=aarch64-linux-gnu" ] ++ } + } + if (is_android) { + # Outline atomics crash on Exynos 9810. http://crbug.com/1272795 +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn +@@ -39,3 +39,22 @@ gcc_toolchain("host") { + current_os = current_os + } + } ++ ++gcc_toolchain("v8_snapshot_cross") { ++ cc = getenv("BUILD_CC") ++ cxx = getenv("BUILD_CXX") ++ ar = getenv("BUILD_AR") ++ nm = getenv("BUILD_NM") ++ ld = cxx ++ ++ extra_cflags = getenv("BUILD_CFLAGS") ++ extra_cppflags = getenv("BUILD_CPPFLAGS") ++ extra_cxxflags = getenv("BUILD_CXXFLAGS") ++ extra_ldflags = getenv("BUILD_LDFLAGS") ++ ++ toolchain_args = { ++ current_cpu = host_cpu ++ current_os = host_os ++ v8_current_cpu = target_cpu ++ } ++} +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/config/linux/pkg_config.gni ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/config/linux/pkg_config.gni +@@ -92,7 +92,7 @@ template("pkg_config") { + assert(defined(invoker.packages), + "Variable |packages| must be defined to be a list in pkg_config.") + config(target_name) { +- if (host_toolchain == current_toolchain) { ++ if (current_cpu != target_cpu) { + args = common_pkg_config_args + host_pkg_config_args + invoker.packages + } else { + args = common_pkg_config_args + pkg_config_args + invoker.packages diff --git a/srcpkgs/qt6-webengine/patches/0108-chromium-cursed^Uscoped_file.patch b/srcpkgs/qt6-webengine/patches/0108-chromium-cursed^Uscoped_file.patch new file mode 100644 index 000000000000..dd31da9790ad --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0108-chromium-cursed^Uscoped_file.patch @@ -0,0 +1,18 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/files/scoped_file_linux.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/files/scoped_file_linux.cc +@@ -77,15 +77,3 @@ bool IsFDOwned(int fd) { + } + + } // namespace base +- +-extern "C" { +- +-int __close(int); +- +-__attribute__((visibility("default"), noinline)) int close(int fd) { +- if (base::IsFDOwned(fd) && g_is_ownership_enforced) +- CrashOnFdOwnershipViolation(); +- return __close(fd); +-} +- +-} // extern "C" diff --git a/srcpkgs/qt6-webengine/patches/0109-chromium-aarch64-musl-memory-tagging.patch b/srcpkgs/qt6-webengine/patches/0109-chromium-aarch64-musl-memory-tagging.patch new file mode 100644 index 000000000000..0ff2a2a51aaa --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0109-chromium-aarch64-musl-memory-tagging.patch @@ -0,0 +1,29 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc +@@ -28,13 +28,25 @@ + #endif + #endif + +-#ifndef HAS_PR_MTE_MACROS ++#ifndef PR_MTE_TCF_SHIFT + #define PR_MTE_TCF_SHIFT 1 ++#endif ++#ifndef PR_MTE_TCF_NONE + #define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT) ++#endif ++#ifndef PR_MTE_TCF_SYNC + #define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT) ++#endif ++#ifndef PR_MTE_TCF_ASYNC + #define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT) ++#endif ++#ifndef PR_MTE_TCF_MASK + #define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT) ++#endif ++#ifndef PR_MTE_TAG_SHIFT + #define PR_MTE_TAG_SHIFT 3 ++#endif ++#ifndef PR_MTE_TAG_MASK + #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT) + #endif + #endif diff --git a/srcpkgs/qt6-webengine/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch b/srcpkgs/qt6-webengine/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch new file mode 100644 index 000000000000..5558c54cf802 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch @@ -0,0 +1,21 @@ +This macro is defined in glibc, but not musl. + +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/suid/process_util.h ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/suid/process_util.h +@@ -12,6 +12,16 @@ + #include + #include + ++// Some additional functions ++#if !defined(TEMP_FAILURE_RETRY) ++# define TEMP_FAILURE_RETRY(expression) \ ++ (__extension__ \ ++ ({ long int __result; \ ++ do __result = (long int) (expression); \ ++ while (__result == -1L && errno == EINTR); \ ++ __result; })) ++#endif ++ + // This adjusts /proc/process/oom_score_adj so the Linux OOM killer + // will prefer certain process types over others. The range for the + // adjustment is [-1000, 1000], with [0, 1000] being user accessible. diff --git a/srcpkgs/qt6-webengine/patches/0111-chromium-cstdint.patch b/srcpkgs/qt6-webengine/patches/0111-chromium-cstdint.patch new file mode 100644 index 000000000000..f5787621b579 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0111-chromium-cstdint.patch @@ -0,0 +1,10 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h +@@ -3,6 +3,7 @@ + + #include + ++#include + #include + + #include "quiche/common/platform/api/quiche_export.h" diff --git a/srcpkgs/qt6-webengine/patches/0112-chromium-unistd.h.patch b/srcpkgs/qt6-webengine/patches/0112-chromium-unistd.h.patch new file mode 100644 index 000000000000..bb242a808ace --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0112-chromium-unistd.h.patch @@ -0,0 +1,10 @@ +--- a/src/3rdparty/chromium/sandbox/linux/services/credentials.h ++++ b/src/3rdparty/chromium/sandbox/linux/services/credentials.h +@@ -13,6 +13,7 @@ + + #include + #include ++#include + + #include "sandbox/linux/system_headers/capability.h" + #include "sandbox/sandbox_export.h" diff --git a/srcpkgs/qt6-webengine/patches/0113-chromium-pthread-stacksize.patch b/srcpkgs/qt6-webengine/patches/0113-chromium-pthread-stacksize.patch new file mode 100644 index 000000000000..384fd0af186d --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0113-chromium-pthread-stacksize.patch @@ -0,0 +1,16 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/threading/platform_thread_linux.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/threading/platform_thread_linux.cc +@@ -437,8 +437,13 @@ void TerminateOnThread() {} + + size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) { + #if !defined(THREAD_SANITIZER) ++#if defined(__GLIBC__) + return 0; + #else ++ // musl libcs default is too small, use 8mb like glibc ++ return (1 << 23); ++#endif ++#else + // ThreadSanitizer bloats the stack heavily. Evidence has been that the + // default stack size isn't enough for some browser tests. + return 2 * (1 << 23); // 2 times 8192K (the default stack size on Linux). diff --git a/srcpkgs/qt6-webengine/patches/0114-do-not-narrow-int.patch b/srcpkgs/qt6-webengine/patches/0114-do-not-narrow-int.patch new file mode 100644 index 000000000000..2cd6a07382ac --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0114-do-not-narrow-int.patch @@ -0,0 +1,53 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/files/file_util_linux.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/files/file_util_linux.cc +@@ -23,14 +23,14 @@ bool GetFileSystemType(const FilePath& p + + // Not all possible |statfs_buf.f_type| values are in linux/magic.h. + // Missing values are copied from the statfs man page. +- switch (statfs_buf.f_type) { ++ switch (static_cast(statfs_buf.f_type)) { + case 0: + *type = FILE_SYSTEM_0; + break; + case EXT2_SUPER_MAGIC: // Also ext3 and ext4 + case MSDOS_SUPER_MAGIC: + case REISERFS_SUPER_MAGIC: +- case static_cast(BTRFS_SUPER_MAGIC): ++ case BTRFS_SUPER_MAGIC: + case 0x5346544E: // NTFS + case 0x58465342: // XFS + case 0x3153464A: // JFS +@@ -40,14 +40,14 @@ bool GetFileSystemType(const FilePath& p + *type = FILE_SYSTEM_NFS; + break; + case SMB_SUPER_MAGIC: +- case static_cast(0xFF534D42): // CIFS ++ case 0xFF534D42: // CIFS + *type = FILE_SYSTEM_SMB; + break; + case CODA_SUPER_MAGIC: + *type = FILE_SYSTEM_CODA; + break; +- case static_cast(HUGETLBFS_MAGIC): +- case static_cast(RAMFS_MAGIC): ++ case HUGETLBFS_MAGIC: ++ case RAMFS_MAGIC: + case TMPFS_MAGIC: + *type = FILE_SYSTEM_MEMORY; + break; +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/system/sys_info_posix.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/system/sys_info_posix.cc +@@ -100,10 +100,10 @@ bool IsStatsZeroIfUnlimited(const base:: + if (HANDLE_EINTR(statfs(path.value().c_str(), &stats)) != 0) + return false; + +- switch (stats.f_type) { ++ switch (static_cast(stats.f_type)) { + case TMPFS_MAGIC: +- case static_cast(HUGETLBFS_MAGIC): +- case static_cast(RAMFS_MAGIC): ++ case HUGETLBFS_MAGIC: ++ case RAMFS_MAGIC: + return true; + } + return false; diff --git a/srcpkgs/qt6-webengine/patches/0115-chromium-no-canonicalize-file-name.patch b/srcpkgs/qt6-webengine/patches/0115-chromium-no-canonicalize-file-name.patch new file mode 100644 index 000000000000..556784b013de --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0115-chromium-no-canonicalize-file-name.patch @@ -0,0 +1,12 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/nasm/config/config-linux.h ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/nasm/config/config-linux.h +@@ -139,7 +139,9 @@ + #define HAVE_ACCESS 1 + + /* Define to 1 if you have the `canonicalize_file_name' function. */ ++#ifdef __GLIBC__ + #define HAVE_CANONICALIZE_FILE_NAME 1 ++#endif + + /* Define to 1 if you have the `cpu_to_le16' intrinsic function. */ + /* #undef HAVE_CPU_TO_LE16 */ diff --git a/srcpkgs/qt6-webengine/patches/0116-chromium-musl-get-thread-name.patch b/srcpkgs/qt6-webengine/patches/0116-chromium-musl-get-thread-name.patch new file mode 100644 index 000000000000..d485385cbb62 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0116-chromium-musl-get-thread-name.patch @@ -0,0 +1,22 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h +@@ -30,7 +30,8 @@ + #include + #endif + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) ++#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \ ++ (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !defined(__GLIBC__)) + #include + #endif + +@@ -58,7 +59,8 @@ inline bool MaybeSetThreadName(const std + + inline bool GetThreadName(std::string& out_result) { + char buf[16] = {}; +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) ++#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \ ++ (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !defined(__GLIBC__)) + if (prctl(PR_GET_NAME, buf) != 0) + return false; + #else diff --git a/srcpkgs/qt6-webengine/patches/0117-chromium-musl-resolver.patch b/srcpkgs/qt6-webengine/patches/0117-chromium-musl-resolver.patch new file mode 100644 index 000000000000..176524adc083 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0117-chromium-musl-resolver.patch @@ -0,0 +1,64 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc +@@ -13,7 +13,7 @@ + namespace net { + + ScopedResState::ScopedResState() { +-#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__)) + // Note: res_ninit in glibc always returns 0 and sets RES_INIT. + // res_init behaves the same way. + memset(&_res, 0, sizeof(_res)); +@@ -25,7 +25,7 @@ ScopedResState::ScopedResState() { + } + + ScopedResState::~ScopedResState() { +-#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA) ++#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA) && !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__)) + + // Prefer res_ndestroy where available. + #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD) +@@ -34,7 +34,7 @@ ScopedResState::~ScopedResState() { + res_nclose(&res_); + #endif // BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD) + +-#endif // !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA) ++#endif // !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA) && !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__)) + } + + bool ScopedResState::IsValid() const { +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/net/dns/host_resolver_manager.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/net/dns/host_resolver_manager.cc +@@ -3158,7 +3158,7 @@ HostResolverManager::HostResolverManager + if (system_dns_config_notifier_) + system_dns_config_notifier_->AddObserver(this); + #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_OPENBSD) && \ +- !BUILDFLAG(IS_ANDROID) ++ !BUILDFLAG(IS_ANDROID) && !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__)) + EnsureDnsReloaderInit(); + #endif + +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/net/dns/dns_reloader.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/net/dns/dns_reloader.cc +@@ -7,7 +7,8 @@ + #include "build/build_config.h" + + #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_OPENBSD) && \ +- !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) ++ !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) && \ ++ !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__)) + + #include + +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/net/dns/host_resolver_proc.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/net/dns/host_resolver_proc.cc +@@ -192,7 +192,8 @@ int SystemHostResolverCall(const std::st + base::BlockingType::WILL_BLOCK); + + #if BUILDFLAG(IS_POSIX) && \ +- !(BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_ANDROID)) ++ !(BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_ANDROID) || \ ++ (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))) + DnsReloaderMaybeReload(); + #endif + auto [ai, err, os_error] = AddressInfo::Get(host, hints, nullptr, network); diff --git a/srcpkgs/qt6-webengine/patches/0119-chromium-musl-stack-utils.patch b/srcpkgs/qt6-webengine/patches/0119-chromium-musl-stack-utils.patch new file mode 100644 index 000000000000..548a1dec76b4 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0119-chromium-musl-stack-utils.patch @@ -0,0 +1,20 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc +@@ -29,7 +29,7 @@ size_t GetUnderestimatedStackSize() { + // FIXME: On Mac OSX and Linux, this method cannot estimate stack size + // correctly for the main thread. + +-#elif defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \ ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \ + BUILDFLAG(IS_FUCHSIA) + // pthread_getattr_np() can fail if the thread is not invoked by + // pthread_create() (e.g., the main thread of blink_unittests). +@@ -97,7 +97,7 @@ size_t GetUnderestimatedStackSize() { + } + + void* GetStackStart() { +-#if defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \ ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \ + BUILDFLAG(IS_FUCHSIA) + pthread_attr_t attr; + int error; diff --git a/srcpkgs/qt6-webengine/patches/0120-chromium-libc-malloc.patch b/srcpkgs/qt6-webengine/patches/0120-chromium-libc-malloc.patch new file mode 100644 index 000000000000..fa32830760cd --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0120-chromium-libc-malloc.patch @@ -0,0 +1,34 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/process/memory_linux.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/process/memory_linux.cc +@@ -18,6 +18,13 @@ + #include "base/threading/thread_restrictions.h" + #include "build/build_config.h" + ++#if defined(LIBC_GLIBC) ++extern "C" { ++extern void *__libc_malloc(size_t size); ++extern void *__libc_free(void *ptr); ++} ++#endif ++ + namespace base { + + namespace { +@@ -112,7 +119,7 @@ bool UncheckedMalloc(size_t size, void** + defined(TOOLKIT_QT) || !defined(LIBC_GLIBC) + *result = malloc(size); + #elif defined(LIBC_GLIBC) +- *result = __libc_malloc(size); ++ *result = ::__libc_malloc(size); + #endif + return *result != nullptr; + } +@@ -123,7 +130,7 @@ void UncheckedFree(void* ptr) { + #elif defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || !defined(LIBC_GLIBC) || defined(TOOLKIT_QT) + free(ptr); + #elif defined(LIBC_GLIBC) +- __libc_free(ptr); ++ ::__libc_free(ptr); + #endif + } + diff --git a/srcpkgs/qt6-webengine/patches/0121-chromium-musl-stat.patch b/srcpkgs/qt6-webengine/patches/0121-chromium-musl-stat.patch new file mode 100644 index 000000000000..8c8c4b863b64 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0121-chromium-musl-stat.patch @@ -0,0 +1,12 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/files/file.h ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/files/file.h +@@ -19,7 +19,8 @@ + #include "build/build_config.h" + + #if BUILDFLAG(IS_BSD) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_NACL) || \ +- BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_ANDROID) && __ANDROID_API__ < 21) ++ BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_ANDROID) && __ANDROID_API__ < 21) || \ ++ (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__)) + struct stat; + namespace base { + typedef struct stat stat_wrapper_t; diff --git a/srcpkgs/qt6-webengine/patches/0122-chromium-condition_var.patch b/srcpkgs/qt6-webengine/patches/0122-chromium-condition_var.patch new file mode 100644 index 000000000000..6c41312e516b --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0122-chromium-condition_var.patch @@ -0,0 +1,22 @@ +Use monotonic clock for pthread_cond_timedwait with musl too. + +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc +@@ -20,7 +20,7 @@ namespace base { + + ConditionVariable::ConditionVariable() { + #if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \ +- (V8_OS_LINUX && V8_LIBC_GLIBC)) ++ V8_OS_LINUX) + // On Free/Net/OpenBSD and Linux with glibc we can change the time + // source for pthread_cond_timedwait() to use the monotonic clock. + pthread_condattr_t attr; +@@ -96,7 +96,7 @@ bool ConditionVariable::WaitFor(Mutex* m + &native_handle_, &mutex->native_handle(), &ts); + #else + #if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \ +- (V8_OS_LINUX && V8_LIBC_GLIBC)) ++ V8_OS_LINUX) + // On Free/Net/OpenBSD and Linux with glibc we can change the time + // source for pthread_cond_timedwait() to use the monotonic clock. + result = clock_gettime(CLOCK_MONOTONIC, &ts); diff --git a/srcpkgs/qt6-webengine/patches/0123-chromium-musl-no-execinfo.patch b/srcpkgs/qt6-webengine/patches/0123-chromium-musl-no-execinfo.patch new file mode 100644 index 000000000000..25fae7bde112 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0123-chromium-musl-no-execinfo.patch @@ -0,0 +1,75 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/debug/stack_trace_posix.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/debug/stack_trace_posix.cc +@@ -30,7 +30,7 @@ + #if !defined(USE_SYMBOLIZE) + #include + #endif +-#if !defined(__UCLIBC__) && !defined(_AIX) ++#if defined(__GLIBC__) && !defined(_AIX) + #include + #endif + +@@ -97,7 +97,7 @@ void DemangleSymbols(std::string* text) + // Note: code in this function is NOT async-signal safe (std::string uses + // malloc internally). + +-#if !defined(__UCLIBC__) && !defined(_AIX) ++#if defined(__GLIBC__) && !defined(_AIX) + std::string::size_type search_from = 0; + while (search_from < text->size()) { + // Look for the start of a mangled symbol, from search_from. +@@ -144,7 +144,7 @@ class BacktraceOutputHandler { + virtual ~BacktraceOutputHandler() = default; + }; + +-#if !defined(__UCLIBC__) && !defined(_AIX) ++#if defined(__GLIBC__) && !defined(_AIX) + void OutputPointer(void* pointer, BacktraceOutputHandler* handler) { + // This should be more than enough to store a 64-bit number in hex: + // 16 hex digits + 1 for null-terminator. +@@ -868,7 +868,7 @@ size_t CollectStackTrace(void** trace, s + // If we do not have unwind tables, then try tracing using frame pointers. + return base::debug::TraceStackFramePointers(const_cast(trace), + count, 0); +-#elif !defined(__UCLIBC__) && !defined(_AIX) ++#elif defined(__GLIBC__) && !defined(_AIX) + // Though the backtrace API man page does not list any possible negative + // return values, we take no chance. + return base::saturated_cast(backtrace(trace, count)); +@@ -881,13 +881,13 @@ void StackTrace::PrintWithPrefix(const c + // NOTE: This code MUST be async-signal safe (it's used by in-process + // stack dumping signal handler). NO malloc or stdio is allowed here. + +-#if !defined(__UCLIBC__) && !defined(_AIX) ++#if defined(__GLIBC__) && !defined(_AIX) + PrintBacktraceOutputHandler handler; + ProcessBacktrace(trace_, count_, prefix_string, &handler); + #endif + } + +-#if !defined(__UCLIBC__) && !defined(_AIX) ++#if defined(__GLIBC__) && !defined(_AIX) + void StackTrace::OutputToStreamWithPrefix(std::ostream* os, + const char* prefix_string) const { + StreamBacktraceOutputHandler handler(os); +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/v8/src/codegen/external-reference-table.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/v8/src/codegen/external-reference-table.cc +@@ -12,7 +12,9 @@ + + #if defined(DEBUG) && defined(V8_OS_LINUX) && !defined(V8_OS_ANDROID) + #define SYMBOLIZE_FUNCTION ++#if defined(__GLIBC__) + #include ++#endif + + #include + +@@ -103,7 +105,7 @@ void ExternalReferenceTable::Init(Isolat + } + + const char* ExternalReferenceTable::ResolveSymbol(void* address) { +-#ifdef SYMBOLIZE_FUNCTION ++#if defined(SYMBOLIZE_FUNCTION) && defined(__GLIBC__) + char** names = backtrace_symbols(&address, 1); + const char* name = names[0]; + // The array of names is malloc'ed. However, each name string is static diff --git a/srcpkgs/qt6-webengine/patches/0123-chromium-musl-no-getcontext.patch b/srcpkgs/qt6-webengine/patches/0123-chromium-musl-no-getcontext.patch new file mode 100644 index 000000000000..46522ee0a066 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0123-chromium-musl-no-getcontext.patch @@ -0,0 +1,27 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc +@@ -490,7 +490,9 @@ bool ExceptionHandler::SimulateSignalDel + siginfo.si_code = SI_USER; + siginfo.si_pid = getpid(); + ucontext_t context; ++#if defined(__GLIBC__) + getcontext(&context); ++#endif + return HandleSignal(sig, &siginfo, &context); + } + +@@ -675,9 +677,14 @@ bool ExceptionHandler::WriteMinidump() { + sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0); + + CrashContext context; ++ ++#if defined(__GLIBC__) + int getcontext_result = getcontext(&context.context); + if (getcontext_result) + return false; ++#else ++ return false; ++#endif + + #if defined(__i386__) + // In CPUFillFromUContext in minidumpwriter.cc the stack pointer is retrieved diff --git a/srcpkgs/qt6-webengine/patches/0124-chromium-enable-i686.patch b/srcpkgs/qt6-webengine/patches/0124-chromium-enable-i686.patch new file mode 100644 index 000000000000..11d8de7c23f8 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0124-chromium-enable-i686.patch @@ -0,0 +1,17 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/BUILD.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/BUILD.gn +@@ -1537,14 +1537,6 @@ if (!is_ios && !use_qt) { + } + } + +-# TODO(cassew): Add more OS's that don't support x86. +-is_valid_x86_target = +- target_os != "ios" && target_os != "mac" && +- (target_os != "linux" || use_libfuzzer || !build_with_chromium) +-assert( +- is_valid_x86_target || target_cpu != "x86", +- "'target_cpu=x86' is not supported for 'target_os=$target_os'. Consider omitting 'target_cpu' (default) or using 'target_cpu=x64' instead.") +- + group("chromium_builder_perf") { + testonly = true + diff --git a/srcpkgs/qt6-webengine/patches/0125-chromium-remove-strip_binary.patch b/srcpkgs/qt6-webengine/patches/0125-chromium-remove-strip_binary.patch new file mode 100644 index 000000000000..115e4492a2be --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0125-chromium-remove-strip_binary.patch @@ -0,0 +1,32 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn +@@ -335,11 +335,7 @@ source_set("lib") { + } + } + +-if (is_linux) { +- chromedriver_output = "chromedriver.unstripped" +-} else { +- chromedriver_output = "chromedriver" +-} ++chromedriver_output = "chromedriver" + + executable("$chromedriver_output") { + testonly = true +@@ -361,16 +357,6 @@ executable("$chromedriver_output") { + } + } + +-if (is_linux) { +- strip_binary("chromedriver") { +- testonly = true +- binary_input = "$root_out_dir/$chromedriver_output" +- symbol_output = "$root_out_dir/chromedriver.debug" +- stripped_binary_output = "$root_out_dir/chromedriver" +- deps = [ ":$chromedriver_output" ] +- } +-} +- + python_library("chromedriver_py_tests") { + testonly = true + deps = [ diff --git a/srcpkgs/qt6-webengine/patches/0126-chromium-no-cdefs.patch b/srcpkgs/qt6-webengine/patches/0126-chromium-no-cdefs.patch new file mode 100644 index 000000000000..90faa3d664d0 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0126-chromium-no-cdefs.patch @@ -0,0 +1,39 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h +@@ -17,8 +17,6 @@ + + #include_next + +-#include +- + // https://sourceware.org/bugzilla/show_bug.cgi?id=22433 + #if !defined(PTRACE_GET_THREAD_AREA) && !defined(PT_GET_THREAD_AREA) && \ + defined(__GLIBC__) +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h +@@ -19,12 +19,13 @@ + #ifndef __SYS_CORE_SYNC_H + #define __SYS_CORE_SYNC_H + +-#include + #include + + #include + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + struct sync_legacy_merge_data { + int32_t fd2; +@@ -158,6 +159,8 @@ struct sync_pt_info *sync_pt_info(struct + struct sync_pt_info *itr); + void sync_fence_info_free(struct sync_fence_info_data *info); + +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /* __SYS_CORE_SYNC_H */ diff --git a/srcpkgs/qt6-webengine/patches/0128-chromium-sandbox-membarrier.patch b/srcpkgs/qt6-webengine/patches/0128-chromium-sandbox-membarrier.patch new file mode 100644 index 000000000000..2e1492c3f622 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0128-chromium-sandbox-membarrier.patch @@ -0,0 +1,10 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc +@@ -418,6 +418,7 @@ bool SyscallSets::IsAllowedProcessStartO + switch (sysno) { + case __NR_exit: + case __NR_exit_group: ++ case __NR_membarrier: + case __NR_wait4: + case __NR_waitid: + #if defined(__i386__) diff --git a/srcpkgs/qt6-webengine/patches/0129-chromium-sandbox-shed_getparam.patch b/srcpkgs/qt6-webengine/patches/0129-chromium-sandbox-shed_getparam.patch new file mode 100644 index 000000000000..80d91c77e8ba --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0129-chromium-sandbox-shed_getparam.patch @@ -0,0 +1,20 @@ +Allow SYS_sched_getparam and SYS_sched_getscheduler +musl uses them for pthread_getschedparam() + +source: https://git.alpinelinux.org/aports/commit/community/chromium?id=54af9f8ac24f52d382c5758e2445bf0206eff40e + +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc +@@ -97,10 +97,10 @@ ResultExpr RendererProcessPolicy::Evalua + case __NR_sysinfo: + case __NR_times: + case __NR_uname: +- return Allow(); +- case __NR_sched_getaffinity: + case __NR_sched_getparam: + case __NR_sched_getscheduler: ++ return Allow(); ++ case __NR_sched_getaffinity: + case __NR_sched_setscheduler: + return RestrictSchedTarget(GetPolicyPid(), sysno); + case __NR_prlimit64: diff --git a/srcpkgs/qt6-webengine/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch b/srcpkgs/qt6-webengine/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch new file mode 100644 index 000000000000..e7f6048fbc1c --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch @@ -0,0 +1,10 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn +@@ -12,6 +12,7 @@ pkg_config("system_ffmpeg") { + "libavformat", + "libavutil", + ] ++ defines = [ "av_stream_get_first_dts(stream)=stream->first_dts" ] + } + + buildflag_header("ffmpeg_features") { diff --git a/srcpkgs/qt6-webengine/patches/0151-chromium-unbundled-cross-toolchain.patch b/srcpkgs/qt6-webengine/patches/0151-chromium-unbundled-cross-toolchain.patch new file mode 100644 index 000000000000..746d2dfb9a7e --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0151-chromium-unbundled-cross-toolchain.patch @@ -0,0 +1,13 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn +@@ -35,8 +35,8 @@ gcc_toolchain("host") { + extra_ldflags = getenv("BUILD_LDFLAGS") + + toolchain_args = { +- current_cpu = current_cpu +- current_os = current_os ++ current_cpu = host_cpu ++ current_os = host_os + } + } + diff --git a/srcpkgs/qt6-webengine/patches/0152-chromium-webrtc-size_t.patch b/srcpkgs/qt6-webengine/patches/0152-chromium-webrtc-size_t.patch new file mode 100644 index 000000000000..8f60204ff584 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0152-chromium-webrtc-size_t.patch @@ -0,0 +1,10 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h +@@ -14,6 +14,7 @@ + #include + + #include ++#include + + namespace webrtc { + diff --git a/srcpkgs/qt6-webengine/patches/0153-chromium-webrtc-size_t.patch b/srcpkgs/qt6-webengine/patches/0153-chromium-webrtc-size_t.patch new file mode 100644 index 000000000000..3b5b7a3d53b9 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0153-chromium-webrtc-size_t.patch @@ -0,0 +1,16 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/angle/include/platform/PlatformMethods.h ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/angle/include/platform/PlatformMethods.h +@@ -222,11 +222,11 @@ inline void DefaultHistogramBoolean(Plat + using ProgramKeyType = std::array; + using CacheProgramFunc = void (*)(PlatformMethods *platform, + const ProgramKeyType &key, +- size_t programSize, ++ std::size_t programSize, + const uint8_t *programBytes); + inline void DefaultCacheProgram(PlatformMethods *platform, + const ProgramKeyType &key, +- size_t programSize, ++ std::size_t programSize, + const uint8_t *programBytes) + {} + diff --git a/srcpkgs/qt6-webengine/patches/0154-chromium-uit_t.patch b/srcpkgs/qt6-webengine/patches/0154-chromium-uit_t.patch new file mode 100644 index 000000000000..d13a31fee402 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0154-chromium-uit_t.patch @@ -0,0 +1,11 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/services/credentials.h ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/services/credentials.h +@@ -14,6 +14,8 @@ + #include + #include + ++#include ++ + #include "sandbox/linux/system_headers/capability.h" + #include "sandbox/sandbox_export.h" + diff --git a/srcpkgs/qt6-webengine/patches/0200-chromium-sndio.patch b/srcpkgs/qt6-webengine/patches/0200-chromium-sndio.patch new file mode 100644 index 000000000000..d769b531497b --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0200-chromium-sndio.patch @@ -0,0 +1,849 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/media/BUILD.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/media/BUILD.gn +@@ -78,6 +78,9 @@ config("media_config") { + defines += [ "DLOPEN_PULSEAUDIO" ] + } + } ++ if (use_sndio) { ++ defines += [ "USE_SNDIO" ] ++ } + if (use_cras) { + defines += [ "USE_CRAS" ] + } +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/media/audio/BUILD.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/media/audio/BUILD.gn +@@ -245,6 +245,17 @@ source_set("audio") { + sources += [ "linux/audio_manager_linux.cc" ] + } + ++ if (use_sndio) { ++ libs += [ "sndio" ] ++ sources += [ ++ "sndio/audio_manager_sndio.cc", ++ "sndio/sndio_input.cc", ++ "sndio/sndio_input.h", ++ "sndio/sndio_output.cc", ++ "sndio/sndio_output.h" ++ ] ++ } ++ + if (use_alsa) { + libs += [ "asound" ] + sources += [ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/media/audio/linux/audio_manager_linux.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/media/audio/linux/audio_manager_linux.cc +@@ -25,6 +25,11 @@ + #include "media/audio/pulse/audio_manager_pulse.h" + #include "media/audio/pulse/pulse_util.h" + #endif ++#if defined(USE_SNDIO) ++#include "media/audio/sndio/audio_manager_sndio.h" ++#include "media/audio/sndio/sndio_input.h" ++#include "media/audio/sndio/sndio_output.h" ++#endif + + namespace media { + +--- /dev/null ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/media/audio/sndio/audio_manager_sndio.cc +@@ -0,0 +1,148 @@ ++// Copyright (c) 2012 The Chromium Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#include "media/audio/sndio/audio_manager_sndio.h" ++ ++#include "base/metrics/histogram_macros.h" ++#include "base/memory/ptr_util.h" ++#include "media/audio/audio_device_description.h" ++#include "media/audio/audio_output_dispatcher.h" ++#include "media/audio/sndio/sndio_input.h" ++#include "media/audio/sndio/sndio_output.h" ++#include "media/base/limits.h" ++#include "media/base/media_switches.h" ++ ++namespace media { ++ ++ ++// Maximum number of output streams that can be open simultaneously. ++static const int kMaxOutputStreams = 4; ++ ++// Default sample rate for input and output streams. ++static const int kDefaultSampleRate = 48000; ++ ++void AddDefaultDevice(AudioDeviceNames* device_names) { ++ DCHECK(device_names->empty()); ++ device_names->push_front(AudioDeviceName::CreateDefault()); ++} ++ ++bool AudioManagerSndio::HasAudioOutputDevices() { ++ return true; ++} ++ ++bool AudioManagerSndio::HasAudioInputDevices() { ++ return true; ++} ++ ++void AudioManagerSndio::GetAudioInputDeviceNames( ++ AudioDeviceNames* device_names) { ++ DCHECK(device_names->empty()); ++ AddDefaultDevice(device_names); ++} ++ ++void AudioManagerSndio::GetAudioOutputDeviceNames( ++ AudioDeviceNames* device_names) { ++ AddDefaultDevice(device_names); ++} ++ ++const char* AudioManagerSndio::GetName() { ++ return "SNDIO"; ++} ++ ++AudioParameters AudioManagerSndio::GetInputStreamParameters( ++ const std::string& device_id) { ++ static const int kDefaultInputBufferSize = 1024; ++ ++ int user_buffer_size = GetUserBufferSize(); ++ int buffer_size = user_buffer_size ? ++ user_buffer_size : kDefaultInputBufferSize; ++ ++ return AudioParameters( ++ AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, ++ kDefaultSampleRate, buffer_size); ++} ++ ++AudioManagerSndio::AudioManagerSndio(std::unique_ptr audio_thread, ++ AudioLogFactory* audio_log_factory) ++ : AudioManagerBase(std::move(audio_thread), ++ audio_log_factory) { ++ DLOG(WARNING) << "AudioManagerSndio"; ++ SetMaxOutputStreamsAllowed(kMaxOutputStreams); ++} ++ ++AudioManagerSndio::~AudioManagerSndio() { ++ Shutdown(); ++} ++ ++AudioOutputStream* AudioManagerSndio::MakeLinearOutputStream( ++ const AudioParameters& params, ++ const LogCallback& log_callback) { ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); ++ return MakeOutputStream(params); ++} ++ ++AudioOutputStream* AudioManagerSndio::MakeLowLatencyOutputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) { ++ DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!"; ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); ++ return MakeOutputStream(params); ++} ++ ++AudioInputStream* AudioManagerSndio::MakeLinearInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) { ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); ++ return MakeInputStream(params); ++} ++ ++AudioInputStream* AudioManagerSndio::MakeLowLatencyInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) { ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); ++ return MakeInputStream(params); ++} ++ ++AudioParameters AudioManagerSndio::GetPreferredOutputStreamParameters( ++ const std::string& output_device_id, ++ const AudioParameters& input_params) { ++ // TODO(tommi): Support |output_device_id|. ++ DLOG_IF(ERROR, !output_device_id.empty()) << "Not implemented!"; ++ static const int kDefaultOutputBufferSize = 2048; ++ ++ ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO; ++ int sample_rate = kDefaultSampleRate; ++ int buffer_size = kDefaultOutputBufferSize; ++ if (input_params.IsValid()) { ++ sample_rate = input_params.sample_rate(); ++ channel_layout = input_params.channel_layout(); ++ buffer_size = std::min(buffer_size, input_params.frames_per_buffer()); ++ } ++ ++ int user_buffer_size = GetUserBufferSize(); ++ if (user_buffer_size) ++ buffer_size = user_buffer_size; ++ ++ return AudioParameters( ++ AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, ++ sample_rate, buffer_size); ++} ++ ++AudioInputStream* AudioManagerSndio::MakeInputStream( ++ const AudioParameters& params) { ++ DLOG(WARNING) << "MakeInputStream"; ++ return new SndioAudioInputStream(this, ++ AudioDeviceDescription::kDefaultDeviceId, params); ++} ++ ++AudioOutputStream* AudioManagerSndio::MakeOutputStream( ++ const AudioParameters& params) { ++ DLOG(WARNING) << "MakeOutputStream"; ++ return new SndioAudioOutputStream(params, this); ++} ++ ++} // namespace media +--- /dev/null ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/media/audio/sndio/audio_manager_sndio.h +@@ -0,0 +1,65 @@ ++// Copyright (c) 2012 The Chromium Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#ifndef MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_ ++#define MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_ ++ ++#include ++ ++#include "base/compiler_specific.h" ++#include "base/macros.h" ++#include "base/memory/ref_counted.h" ++#include "base/threading/thread.h" ++#include "media/audio/audio_manager_base.h" ++ ++namespace media { ++ ++class MEDIA_EXPORT AudioManagerSndio : public AudioManagerBase { ++ public: ++ AudioManagerSndio(std::unique_ptr audio_thread, ++ AudioLogFactory* audio_log_factory); ++ ~AudioManagerSndio() override; ++ ++ // Implementation of AudioManager. ++ bool HasAudioOutputDevices() override; ++ bool HasAudioInputDevices() override; ++ void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override; ++ void GetAudioOutputDeviceNames(AudioDeviceNames* device_names) override; ++ AudioParameters GetInputStreamParameters( ++ const std::string& device_id) override; ++ const char* GetName() override; ++ ++ // Implementation of AudioManagerBase. ++ AudioOutputStream* MakeLinearOutputStream( ++ const AudioParameters& params, ++ const LogCallback& log_callback) override; ++ AudioOutputStream* MakeLowLatencyOutputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) override; ++ AudioInputStream* MakeLinearInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) override; ++ AudioInputStream* MakeLowLatencyInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) override; ++ ++ protected: ++ AudioParameters GetPreferredOutputStreamParameters( ++ const std::string& output_device_id, ++ const AudioParameters& input_params) override; ++ ++ private: ++ // Called by MakeLinearOutputStream and MakeLowLatencyOutputStream. ++ AudioOutputStream* MakeOutputStream(const AudioParameters& params); ++ AudioInputStream* MakeInputStream(const AudioParameters& params); ++ ++ DISALLOW_COPY_AND_ASSIGN(AudioManagerSndio); ++}; ++ ++} // namespace media ++ ++#endif // MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_ +--- /dev/null ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/media/audio/sndio/sndio_input.cc +@@ -0,0 +1,200 @@ ++// Copyright 2013 The Chromium Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#include "base/bind.h" ++#include "base/logging.h" ++#include "base/macros.h" ++#include "media/base/audio_timestamp_helper.h" ++#include "media/audio/sndio/audio_manager_sndio.h" ++#include "media/audio/audio_manager.h" ++#include "media/audio/sndio/sndio_input.h" ++ ++namespace media { ++ ++static const SampleFormat kSampleFormat = kSampleFormatS16; ++ ++void SndioAudioInputStream::OnMoveCallback(void *arg, int delta) ++{ ++ SndioAudioInputStream* self = static_cast(arg); ++ ++ self->hw_delay += delta; ++} ++ ++void *SndioAudioInputStream::ThreadEntry(void *arg) { ++ SndioAudioInputStream* self = static_cast(arg); ++ ++ self->ThreadLoop(); ++ return NULL; ++} ++ ++SndioAudioInputStream::SndioAudioInputStream(AudioManagerBase* manager, ++ const std::string& device_name, ++ const AudioParameters& params) ++ : manager(manager), ++ params(params), ++ audio_bus(AudioBus::Create(params)), ++ state(kClosed) { ++} ++ ++SndioAudioInputStream::~SndioAudioInputStream() { ++ if (state != kClosed) ++ Close(); ++} ++ ++bool SndioAudioInputStream::Open() { ++ struct sio_par par; ++ int sig; ++ ++ if (state != kClosed) ++ return false; ++ ++ if (params.format() != AudioParameters::AUDIO_PCM_LINEAR && ++ params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) { ++ LOG(WARNING) << "Unsupported audio format."; ++ return false; ++ } ++ ++ sio_initpar(&par); ++ par.rate = params.sample_rate(); ++ par.rchan = params.channels(); ++ par.bits = SampleFormatToBitsPerChannel(kSampleFormat); ++ par.bps = par.bits / 8; ++ par.sig = sig = par.bits != 8 ? 1 : 0; ++ par.le = SIO_LE_NATIVE; ++ par.appbufsz = params.frames_per_buffer(); ++ ++ hdl = sio_open(SIO_DEVANY, SIO_REC, 0); ++ ++ if (hdl == NULL) { ++ LOG(ERROR) << "Couldn't open audio device."; ++ return false; ++ } ++ ++ if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) { ++ LOG(ERROR) << "Couldn't set audio parameters."; ++ goto bad_close; ++ } ++ ++ if (par.rate != (unsigned int)params.sample_rate() || ++ par.rchan != (unsigned int)params.channels() || ++ par.bits != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) || ++ par.sig != (unsigned int)sig || ++ (par.bps > 1 && par.le != SIO_LE_NATIVE) || ++ (par.bits != par.bps * 8)) { ++ LOG(ERROR) << "Unsupported audio parameters."; ++ goto bad_close; ++ } ++ state = kStopped; ++ buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)]; ++ sio_onmove(hdl, &OnMoveCallback, this); ++ return true; ++bad_close: ++ sio_close(hdl); ++ return false; ++} ++ ++void SndioAudioInputStream::Start(AudioInputCallback* cb) { ++ ++ StartAgc(); ++ ++ state = kRunning; ++ hw_delay = 0; ++ callback = cb; ++ sio_start(hdl); ++ if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) { ++ LOG(ERROR) << "Failed to create real-time thread for recording."; ++ sio_stop(hdl); ++ state = kStopped; ++ } ++} ++ ++void SndioAudioInputStream::Stop() { ++ ++ if (state == kStopped) ++ return; ++ ++ state = kStopWait; ++ pthread_join(thread, NULL); ++ sio_stop(hdl); ++ state = kStopped; ++ ++ StopAgc(); ++} ++ ++void SndioAudioInputStream::Close() { ++ ++ if (state == kClosed) ++ return; ++ ++ if (state == kRunning) ++ Stop(); ++ ++ state = kClosed; ++ delete [] buffer; ++ sio_close(hdl); ++ ++ manager->ReleaseInputStream(this); ++} ++ ++double SndioAudioInputStream::GetMaxVolume() { ++ // Not supported ++ return 0.0; ++} ++ ++void SndioAudioInputStream::SetVolume(double volume) { ++ // Not supported. Do nothing. ++} ++ ++double SndioAudioInputStream::GetVolume() { ++ // Not supported. ++ return 0.0; ++} ++ ++bool SndioAudioInputStream::IsMuted() { ++ // Not supported. ++ return false; ++} ++ ++void SndioAudioInputStream::SetOutputDeviceForAec( ++ const std::string& output_device_id) { ++ // Not supported. ++} ++ ++void SndioAudioInputStream::ThreadLoop(void) { ++ size_t todo, n; ++ char *data; ++ unsigned int nframes; ++ double normalized_volume = 0.0; ++ ++ nframes = audio_bus->frames(); ++ ++ while (state == kRunning && !sio_eof(hdl)) { ++ ++ GetAgcVolume(&normalized_volume); ++ ++ // read one block ++ todo = nframes * params.GetBytesPerFrame(kSampleFormat); ++ data = buffer; ++ while (todo > 0) { ++ n = sio_read(hdl, data, todo); ++ if (n == 0) ++ return; // unrecoverable I/O error ++ todo -= n; ++ data += n; ++ } ++ hw_delay -= nframes; ++ ++ // convert frames count to TimeDelta ++ const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay, ++ params.sample_rate()); ++ ++ // push into bus ++ audio_bus->FromInterleaved(reinterpret_cast(buffer), nframes); ++ ++ // invoke callback ++ callback->OnData(audio_bus.get(), base::TimeTicks::Now() - delay, 1.); ++ } ++} ++ ++} // namespace media +--- /dev/null ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/media/audio/sndio/sndio_input.h +@@ -0,0 +1,91 @@ ++// Copyright 2013 The Chromium Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_ ++#define MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_ ++ ++#include ++#include ++#include ++ ++#include "base/compiler_specific.h" ++#include "base/macros.h" ++#include "base/memory/weak_ptr.h" ++#include "base/time/time.h" ++#include "media/audio/agc_audio_stream.h" ++#include "media/audio/audio_io.h" ++#include "media/audio/audio_device_description.h" ++#include "media/base/audio_parameters.h" ++ ++namespace media { ++ ++class AudioManagerBase; ++ ++// Implementation of AudioOutputStream using sndio(7) ++class SndioAudioInputStream : public AgcAudioStream { ++ public: ++ // Pass this to the constructor if you want to attempt auto-selection ++ // of the audio recording device. ++ static const char kAutoSelectDevice[]; ++ ++ // Create a PCM Output stream for the SNDIO device identified by ++ // |device_name|. If unsure of what to use for |device_name|, use ++ // |kAutoSelectDevice|. ++ SndioAudioInputStream(AudioManagerBase* audio_manager, ++ const std::string& device_name, ++ const AudioParameters& params); ++ ++ ~SndioAudioInputStream() override; ++ ++ // Implementation of AudioInputStream. ++ bool Open() override; ++ void Start(AudioInputCallback* callback) override; ++ void Stop() override; ++ void Close() override; ++ double GetMaxVolume() override; ++ void SetVolume(double volume) override; ++ double GetVolume() override; ++ bool IsMuted() override; ++ void SetOutputDeviceForAec(const std::string& output_device_id) override; ++ ++ private: ++ ++ enum StreamState { ++ kClosed, // Not opened yet ++ kStopped, // Device opened, but not started yet ++ kRunning, // Started, device playing ++ kStopWait // Stopping, waiting for the real-time thread to exit ++ }; ++ ++ // C-style call-backs ++ static void OnMoveCallback(void *arg, int delta); ++ static void* ThreadEntry(void *arg); ++ ++ // Continuously moves data from the device to the consumer ++ void ThreadLoop(); ++ // Our creator, the audio manager needs to be notified when we close. ++ AudioManagerBase* manager; ++ // Parameters of the source ++ AudioParameters params; ++ // We store data here for consumer ++ std::unique_ptr audio_bus; ++ // Call-back that consumes recorded data ++ AudioInputCallback* callback; // Valid during a recording session. ++ // Handle of the audio device ++ struct sio_hdl* hdl; ++ // Current state of the stream ++ enum StreamState state; ++ // High priority thread running ThreadLoop() ++ pthread_t thread; ++ // Number of frames buffered in the hardware ++ int hw_delay; ++ // Temporary buffer where data is stored sndio-compatible format ++ char* buffer; ++ ++ DISALLOW_COPY_AND_ASSIGN(SndioAudioInputStream); ++}; ++ ++} // namespace media ++ ++#endif // MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_ +--- /dev/null ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/media/audio/sndio/sndio_output.cc +@@ -0,0 +1,183 @@ ++// Copyright (c) 2012 The Chromium Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#include "base/logging.h" ++#include "base/time/time.h" ++#include "base/time/default_tick_clock.h" ++#include "media/audio/audio_manager_base.h" ++#include "media/base/audio_timestamp_helper.h" ++#include "media/audio/sndio/sndio_output.h" ++ ++namespace media { ++ ++static const SampleFormat kSampleFormat = kSampleFormatS16; ++ ++void SndioAudioOutputStream::OnMoveCallback(void *arg, int delta) { ++ SndioAudioOutputStream* self = static_cast(arg); ++ ++ self->hw_delay -= delta; ++} ++ ++void SndioAudioOutputStream::OnVolCallback(void *arg, unsigned int vol) { ++ SndioAudioOutputStream* self = static_cast(arg); ++ ++ self->vol = vol; ++} ++ ++void *SndioAudioOutputStream::ThreadEntry(void *arg) { ++ SndioAudioOutputStream* self = static_cast(arg); ++ ++ self->ThreadLoop(); ++ return NULL; ++} ++ ++SndioAudioOutputStream::SndioAudioOutputStream(const AudioParameters& params, ++ AudioManagerBase* manager) ++ : manager(manager), ++ params(params), ++ audio_bus(AudioBus::Create(params)), ++ state(kClosed), ++ mutex(PTHREAD_MUTEX_INITIALIZER) { ++} ++ ++SndioAudioOutputStream::~SndioAudioOutputStream() { ++ if (state != kClosed) ++ Close(); ++} ++ ++bool SndioAudioOutputStream::Open() { ++ struct sio_par par; ++ int sig; ++ ++ if (params.format() != AudioParameters::AUDIO_PCM_LINEAR && ++ params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) { ++ LOG(WARNING) << "Unsupported audio format."; ++ return false; ++ } ++ sio_initpar(&par); ++ par.rate = params.sample_rate(); ++ par.pchan = params.channels(); ++ par.bits = SampleFormatToBitsPerChannel(kSampleFormat); ++ par.bps = par.bits / 8; ++ par.sig = sig = par.bits != 8 ? 1 : 0; ++ par.le = SIO_LE_NATIVE; ++ par.appbufsz = params.frames_per_buffer(); ++ ++ hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0); ++ if (hdl == NULL) { ++ LOG(ERROR) << "Couldn't open audio device."; ++ return false; ++ } ++ if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) { ++ LOG(ERROR) << "Couldn't set audio parameters."; ++ goto bad_close; ++ } ++ if (par.rate != (unsigned int)params.sample_rate() || ++ par.pchan != (unsigned int)params.channels() || ++ par.bits != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) || ++ par.sig != (unsigned int)sig || ++ (par.bps > 1 && par.le != SIO_LE_NATIVE) || ++ (par.bits != par.bps * 8)) { ++ LOG(ERROR) << "Unsupported audio parameters."; ++ goto bad_close; ++ } ++ state = kStopped; ++ volpending = 0; ++ vol = 0; ++ buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)]; ++ sio_onmove(hdl, &OnMoveCallback, this); ++ sio_onvol(hdl, &OnVolCallback, this); ++ return true; ++ bad_close: ++ sio_close(hdl); ++ return false; ++} ++ ++void SndioAudioOutputStream::Close() { ++ if (state == kClosed) ++ return; ++ if (state == kRunning) ++ Stop(); ++ state = kClosed; ++ delete [] buffer; ++ sio_close(hdl); ++ manager->ReleaseOutputStream(this); // Calls the destructor ++} ++ ++void SndioAudioOutputStream::Start(AudioSourceCallback* callback) { ++ state = kRunning; ++ hw_delay = 0; ++ source = callback; ++ sio_start(hdl); ++ if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) { ++ LOG(ERROR) << "Failed to create real-time thread."; ++ sio_stop(hdl); ++ state = kStopped; ++ } ++} ++ ++void SndioAudioOutputStream::Stop() { ++ if (state == kStopped) ++ return; ++ state = kStopWait; ++ pthread_join(thread, NULL); ++ sio_stop(hdl); ++ state = kStopped; ++} ++ ++void SndioAudioOutputStream::SetVolume(double v) { ++ pthread_mutex_lock(&mutex); ++ vol = v * SIO_MAXVOL; ++ volpending = 1; ++ pthread_mutex_unlock(&mutex); ++} ++ ++void SndioAudioOutputStream::GetVolume(double* v) { ++ pthread_mutex_lock(&mutex); ++ *v = vol * (1. / SIO_MAXVOL); ++ pthread_mutex_unlock(&mutex); ++} ++ ++// This stream is always used with sub second buffer sizes, where it's ++// sufficient to simply always flush upon Start(). ++void SndioAudioOutputStream::Flush() {} ++ ++void SndioAudioOutputStream::ThreadLoop(void) { ++ int avail, count, result; ++ ++ while (state == kRunning) { ++ // Update volume if needed ++ pthread_mutex_lock(&mutex); ++ if (volpending) { ++ volpending = 0; ++ sio_setvol(hdl, vol); ++ } ++ pthread_mutex_unlock(&mutex); ++ ++ // Get data to play ++ const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay, ++ params.sample_rate()); ++ count = source->OnMoreData(delay, base::TimeTicks::Now(), 0, audio_bus.get()); ++ audio_bus->ToInterleaved(count, reinterpret_cast(buffer)); ++ if (count == 0) { ++ // We have to submit something to the device ++ count = audio_bus->frames(); ++ memset(buffer, 0, count * params.GetBytesPerFrame(kSampleFormat)); ++ LOG(WARNING) << "No data to play, running empty cycle."; ++ } ++ ++ // Submit data to the device ++ avail = count * params.GetBytesPerFrame(kSampleFormat); ++ result = sio_write(hdl, buffer, avail); ++ if (result == 0) { ++ LOG(WARNING) << "Audio device disconnected."; ++ break; ++ } ++ ++ // Update hardware pointer ++ hw_delay += count; ++ } ++} ++ ++} // namespace media +--- /dev/null ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/media/audio/sndio/sndio_output.h +@@ -0,0 +1,86 @@ ++// Copyright (c) 2012 The Chromium Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_ ++#define MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_ ++ ++#include ++#include ++ ++#include "base/time/tick_clock.h" ++#include "base/time/time.h" ++#include "media/audio/audio_io.h" ++ ++namespace media { ++ ++class AudioManagerBase; ++ ++// Implementation of AudioOutputStream using sndio(7) ++class SndioAudioOutputStream : public AudioOutputStream { ++ public: ++ // The manager is creating this object ++ SndioAudioOutputStream(const AudioParameters& params, ++ AudioManagerBase* manager); ++ virtual ~SndioAudioOutputStream(); ++ ++ // Implementation of AudioOutputStream. ++ bool Open() override; ++ void Close() override; ++ void Start(AudioSourceCallback* callback) override; ++ void Stop() override; ++ void SetVolume(double volume) override; ++ void GetVolume(double* volume) override; ++ void Flush() override; ++ ++ friend void sndio_onmove(void *arg, int delta); ++ friend void sndio_onvol(void *arg, unsigned int vol); ++ friend void *sndio_threadstart(void *arg); ++ ++ private: ++ enum StreamState { ++ kClosed, // Not opened yet ++ kStopped, // Device opened, but not started yet ++ kRunning, // Started, device playing ++ kStopWait // Stopping, waiting for the real-time thread to exit ++ }; ++ ++ // C-style call-backs ++ static void OnMoveCallback(void *arg, int delta); ++ static void OnVolCallback(void *arg, unsigned int vol); ++ static void* ThreadEntry(void *arg); ++ ++ // Continuously moves data from the producer to the device ++ void ThreadLoop(void); ++ ++ // Our creator, the audio manager needs to be notified when we close. ++ AudioManagerBase* manager; ++ // Parameters of the source ++ AudioParameters params; ++ // Source stores data here ++ std::unique_ptr audio_bus; ++ // Call-back that produces data to play ++ AudioSourceCallback* source; ++ // Handle of the audio device ++ struct sio_hdl* hdl; ++ // Current state of the stream ++ enum StreamState state; ++ // High priority thread running ThreadLoop() ++ pthread_t thread; ++ // Protects vol, volpending and hw_delay ++ pthread_mutex_t mutex; ++ // Current volume in the 0..SIO_MAXVOL range ++ int vol; ++ // Set to 1 if volumes must be refreshed in the realtime thread ++ int volpending; ++ // Number of frames buffered in the hardware ++ int hw_delay; ++ // Temporary buffer where data is stored sndio-compatible format ++ char* buffer; ++ ++ DISALLOW_COPY_AND_ASSIGN(SndioAudioOutputStream); ++}; ++ ++} // namespace media ++ ++#endif // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/media/media_options.gni ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/media/media_options.gni +@@ -133,6 +133,9 @@ declare_args() { + # Enables runtime selection of ALSA library for audio. + use_alsa = false + ++ # Enable runtime selection of sndio(7) ++ use_sndio = false ++ + # Alsa should be used on non-Android, non-Mac POSIX systems. + # Alsa should be used on desktop Chromecast and audio-only Chromecast builds. + if (is_posix && !is_android && !is_mac && diff --git a/srcpkgs/qt6-webengine/patches/0300-chromium-musl-hacks.patch b/srcpkgs/qt6-webengine/patches/0300-chromium-musl-hacks.patch new file mode 100644 index 000000000000..525aeb8a63d2 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0300-chromium-musl-hacks.patch @@ -0,0 +1,52 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/debug/stack_trace.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/debug/stack_trace.cc +@@ -234,7 +234,7 @@ bool StackTrace::WillSymbolizeToStreamFo + // Symbols are not expected to be reliable when gn args specifies + // symbol_level=0. + return false; +-#elif defined(__UCLIBC__) || defined(_AIX) ++#elif defined(__GLIBC__) || defined(_AIX) + // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX. + // See https://crbug.com/706728 + return false; +@@ -273,7 +273,9 @@ void StackTrace::Print() const { + } + + void StackTrace::OutputToStream(std::ostream* os) const { ++#if defined(__GLIBC__) + OutputToStreamWithPrefix(os, nullptr); ++#endif + } + + std::string StackTrace::ToString() const { +@@ -281,14 +283,14 @@ std::string StackTrace::ToString() const + } + std::string StackTrace::ToStringWithPrefix(const char* prefix_string) const { + std::stringstream stream; +-#if !defined(__UCLIBC__) && !defined(_AIX) ++#if defined(__GLIBC__) && !defined(_AIX) + OutputToStreamWithPrefix(&stream, prefix_string); + #endif + return stream.str(); + } + + std::ostream& operator<<(std::ostream& os, const StackTrace& s) { +-#if !defined(__UCLIBC__) && !defined(_AIX) ++#if defined(__GLIBC__) && !defined(_AIX) + s.OutputToStream(&os); + #else + os << "StackTrace::OutputToStream not implemented."; +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/net/socket/udp_socket_posix.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/net/socket/udp_socket_posix.cc +@@ -1157,7 +1157,11 @@ SendResult UDPSocketPosixSender::Interna + msg_iov->push_back({const_cast(buffer->data()), buffer->length()}); + msgvec->reserve(buffers.size()); + for (size_t j = 0; j < buffers.size(); j++) ++#ifdef __GLIBC__ + msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, nullptr, 0, 0}, 0}); ++#else ++ msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, 0, 0, 0}, 0}); ++#endif + int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0)); + SendResult send_result(0, 0, std::move(buffers)); + if (result < 0) { diff --git a/srcpkgs/qt6-webengine/patches/0301-chromium-musl-sandbox.patch b/srcpkgs/qt6-webengine/patches/0301-chromium-musl-sandbox.patch new file mode 100644 index 000000000000..4afbec5b98ef --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0301-chromium-musl-sandbox.patch @@ -0,0 +1,86 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc +@@ -134,6 +134,7 @@ namespace sandbox { + ResultExpr RestrictCloneToThreadsAndEPERMFork() { + const Arg flags(0); + ++#ifdef __GLIBC__ + // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2. + const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES | + CLONE_SIGHAND | CLONE_THREAD | +@@ -160,6 +161,16 @@ ResultExpr RestrictCloneToThreadsAndEPER + return If(IsAndroid() ? android_test : glibc_test, Allow()) + .ElseIf(is_fork_or_clone_vfork, Error(EPERM)) + .Else(CrashSIGSYSClone()); ++#else ++ const int required = CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | ++ CLONE_THREAD | CLONE_SYSVSEM; ++ const int safe = CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID | ++ CLONE_DETACHED; ++ const BoolExpr thread_clone_ok = (flags&~safe)==required; ++ return If(thread_clone_ok, Allow()) ++ .ElseIf((flags & (CLONE_VM | CLONE_THREAD)) == 0, Error(EPERM)) ++ .Else(CrashSIGSYSClone()); ++#endif + } + + #ifndef PR_PAC_RESET_KEYS +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc +@@ -424,6 +424,9 @@ bool SyscallSets::IsAllowedProcessStartO + #if defined(__i386__) + case __NR_waitpid: + #endif ++#if !defined(__GLIBC__) ++ case __NR_set_tid_address: ++#endif + return true; + case __NR_clone: // Should be parameter-restricted. + case __NR_setns: // Privileged. +@@ -436,7 +439,9 @@ bool SyscallSets::IsAllowedProcessStartO + #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) + case __NR_set_thread_area: + #endif ++#if defined(__GLIBC__) + case __NR_set_tid_address: ++#endif + case __NR_unshare: + #if !defined(__mips__) && !defined(__aarch64__) + case __NR_vfork: +@@ -550,6 +555,9 @@ bool SyscallSets::IsAllowedAddressSpaceA + case __NR_mlock: + case __NR_munlock: + case __NR_munmap: ++#ifndef __GLIBC__ ++ case __NR_mremap: ++#endif + return true; + case __NR_madvise: + case __NR_mincore: +@@ -567,7 +575,9 @@ bool SyscallSets::IsAllowedAddressSpaceA + case __NR_modify_ldt: + #endif + case __NR_mprotect: ++#ifdef __GLIBC__ + case __NR_mremap: ++#endif + case __NR_msync: + case __NR_munlockall: + case __NR_readahead: +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc +@@ -99,9 +99,14 @@ ResultExpr RendererProcessPolicy::Evalua + case __NR_uname: + case __NR_sched_getparam: + case __NR_sched_getscheduler: ++#ifndef __GLIBC__ ++ case __NR_sched_setscheduler: ++#endif + return Allow(); + case __NR_sched_getaffinity: ++#ifdef __GLIBC__ + case __NR_sched_setscheduler: ++#endif + return RestrictSchedTarget(GetPolicyPid(), sysno); + case __NR_prlimit64: + // See crbug.com/662450 and setrlimit comment above. diff --git a/srcpkgs/qt6-webengine/patches/0302-chromium-no-mallinfo.patch b/srcpkgs/qt6-webengine/patches/0302-chromium-no-mallinfo.patch new file mode 100644 index 000000000000..519930e7bef0 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0302-chromium-no-mallinfo.patch @@ -0,0 +1,67 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/process/process_metrics_posix.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/process/process_metrics_posix.cc +@@ -105,7 +105,8 @@ void IncreaseFdLimitTo(unsigned int max_ + + #endif // !BUILDFLAG(IS_FUCHSIA) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || \ ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + namespace { + + size_t GetMallocUsageMallinfo() { +@@ -123,17 +124,18 @@ size_t GetMallocUsageMallinfo() { + } + + } // namespace +-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || +- // BUILDFLAG(IS_ANDROID) ++#endif // (BUILDFLAG(IS_LINUX) && defined(__GLIBC__) || ++ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + + size_t ProcessMetrics::GetMallocUsage() { + #if BUILDFLAG(IS_APPLE) + malloc_statistics_t stats = {0}; + malloc_zone_statistics(nullptr, &stats); + return stats.size_in_use; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#elif (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || \ ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + return GetMallocUsageMallinfo(); +-#elif BUILDFLAG(IS_FUCHSIA) ++#elif BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__)) + // TODO(fuchsia): Not currently exposed. https://crbug.com/735087. + return 0; + #endif +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc +@@ -174,7 +174,8 @@ void ReportAppleAllocStats(size_t* total + + #if (BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(IS_ANDROID)) || \ + (!BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && !BUILDFLAG(IS_WIN) && \ +- !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_FUCHSIA)) ++ !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_FUCHSIA) && \ ++ !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))) + void ReportMallinfoStats(ProcessMemoryDump* pmd, + size_t* total_virtual_size, + size_t* resident_size, +@@ -339,7 +340,7 @@ bool MallocDumpProvider::OnMemoryDump(co + &allocated_objects_count); + #elif BUILDFLAG(IS_FUCHSIA) + // TODO(fuchsia): Port, see https://crbug.com/706592. +-#else ++#elif defined(__GLIBC__) + ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size, + &allocated_objects_size, &allocated_objects_count); + #endif +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc +@@ -35,7 +35,7 @@ bool MemoryUsage::IsSupported() { + + MemoryUsage GetMemoryUsage() { + MemoryUsage result; +-#ifdef __linux__ ++#if defined(__linux__) && defined(__GLIBC__) + rusage res; + if (getrusage(RUSAGE_SELF, &res) == 0) { + result.max_rss_kb = res.ru_maxrss; diff --git a/srcpkgs/qt6-webengine/patches/0700-armv7l-neon.patch b/srcpkgs/qt6-webengine/patches/0700-armv7l-neon.patch new file mode 100644 index 000000000000..5ca1953d2cb3 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0700-armv7l-neon.patch @@ -0,0 +1,10 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/skia/BUILD.gn ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/skia/BUILD.gn +@@ -786,7 +786,6 @@ skia_source_set("skia_opts") { + # Root build config sets -mfpu=$arm_fpu, which we expect to be neon + # when running this. + if (!arm_use_neon) { +- configs -= [ "//build/config/compiler:compiler_arm_fpu" ] + cflags += [ "-mfpu=neon" ] + } + } diff --git a/srcpkgs/qt6-webengine/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch b/srcpkgs/qt6-webengine/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch new file mode 100644 index 000000000000..ca7b0150962c --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch @@ -0,0 +1,30 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc +@@ -38,7 +38,12 @@ + + #include "client/linux/minidump_writer/linux_ptrace_dumper.h" + ++#if defined(__GLIBC__) + #include ++#else ++/* For arm*-musl this definition is missing */ ++#define ARM_sp uregs[13] ++#endif + #include + #include + #include +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc +@@ -32,7 +32,12 @@ + + #include "client/linux/minidump_writer/linux_core_dumper.h" + ++#if defined(__GLIBC__) + #include ++#else ++/* For arm*-musl this definition is missing */ ++#define ARM_sp uregs[13] ++#endif + #include + #include + #include diff --git a/srcpkgs/qt6-webengine/patches/0751-chromium-musl-arm-user_vfp.patch b/srcpkgs/qt6-webengine/patches/0751-chromium-musl-arm-user_vfp.patch new file mode 100644 index 000000000000..d7c18036d503 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0751-chromium-musl-arm-user_vfp.patch @@ -0,0 +1,20 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h +@@ -17,6 +17,17 @@ + + #include + #include ++#if !defined(__GLIBC__) ++struct user_vfp { ++ unsigned long long fpregs[32]; ++ unsigned long fpscr; ++}; ++struct user_vfp_exc { ++ unsigned long fpexc; ++ unsigned long fpinst; ++ unsigned long fpinst2; ++}; ++#endif /* !defined(__GLIBC__) */ + + #include + diff --git a/srcpkgs/qt6-webengine/patches/0752-chromium-musl-arm-elf_auxv_t.patch b/srcpkgs/qt6-webengine/patches/0752-chromium-musl-arm-elf_auxv_t.patch new file mode 100644 index 000000000000..52f5f47be831 --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0752-chromium-musl-arm-elf_auxv_t.patch @@ -0,0 +1,18 @@ +--- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/v8/src/base/cpu.cc ++++ qt6-webengine-6.4.2/src/3rdparty/chromium/v8/src/base/cpu.cc +@@ -165,6 +165,15 @@ static V8_INLINE void __cpuid(int cpu_in + + #if V8_HOST_ARCH_ARM || V8_HOST_ARCH_ARM64 + ++#ifndef __GLIBC__ ++#include ++#ifdef __LP64__ ++typedef Elf64_auxv_t elf_auxv_t; ++#else ++typedef Elf32_auxv_t elf_auxv_t; ++#endif ++#endif ++ + static uint32_t ReadELFHWCaps() { + uint32_t result = 0; + #if V8_GLIBC_PREREQ(2, 16) diff --git a/srcpkgs/qt6-webengine/patches/0900-cross-build-examples.patch b/srcpkgs/qt6-webengine/patches/0900-cross-build-examples.patch new file mode 100644 index 000000000000..9a6acc6af6de --- /dev/null +++ b/srcpkgs/qt6-webengine/patches/0900-cross-build-examples.patch @@ -0,0 +1,16 @@ +--- qt6-webengine-6.4.2.orig/examples/CMakeLists.txt ++++ qt6-webengine-6.4.2/examples/CMakeLists.txt +@@ -1,7 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + + qt_examples_build_begin(EXTERNAL_BUILD) +-if(NOT CMAKE_CROSSCOMPILING) #QTBUG-86533 + if(TARGET Qt::WebEngineCore) + add_subdirectory(webenginequick) + endif() +@@ -14,5 +13,4 @@ if(NOT CMAKE_CROSSCOMPILING) #QTBUG-8653 + if(TARGET Qt::PdfWidgets) + add_subdirectory(pdfwidgets) + endif() +-endif() + qt_examples_build_end() diff --git a/srcpkgs/qt6-webengine/template b/srcpkgs/qt6-webengine/template new file mode 100644 index 000000000000..83080b11aebc --- /dev/null +++ b/srcpkgs/qt6-webengine/template @@ -0,0 +1,183 @@ +# Template file for 'qt6-webengine' +pkgname=qt6-webengine +version=6.4.2 +revision=1 +wrksrc="qtwebengine-everywhere-src-${version}" +build_style=cmake +configure_args=" + -DQT_FEATURE_webengine_system_ffmpeg=ON + -DQT_FEATURE_webengine_system_libevent=ON + -DQT_FEATURE_webengine_system_gn=ON + -DQT_FEATURE_webengine_system_icu=ON + -DQT_FEATURE_webengine_webrtc_pipewire=ON + -DNinja_EXECUTABLE=$XBPS_WRAPPERDIR/ninja + -DQT_BUILD_EXAMPLES=ON + -DPKG_CONFIG_HOST_EXECUTABLE=${PKG_CONFIG_FOR_BUILD}" +hostmakedepends="qt6-base-devel perl pkg-config nodejs python3-html5lib + qt6-declarative-devel protobuf gperf flex nss-devel libwebp-devel + icu-devel libevent-devel" +makedepends="qt6-base-devel qt6-declarative-devel pulseaudio-devel + qt6-tools-devel qt6-websockets-devel libflac-devel qt6-svg-devel + alsa-lib-devel libvpx-devel pciutils-devel opus-devel libxslt-devel + libxml2-devel freetype-devel lcms2-devel libwebp-devel icu-devel + re2-devel zlib-devel libpng-devel minizip-devel harfbuzz-devel + nss-devel libXcursor-devel libXcomposite-devel libXScrnSaver-devel + protobuf-devel ffmpeg-devel snappy-devel libevent-devel pipewire-devel + libxkbfile-devel qt6-location-devel qt6-webchannel-devel libxshmfence-devel" +# Not working properly with HTTPS without those packages +# Not strict dependencies, though +depends="qt6-plugin-tls-openssl qt6-plugin-tls-qcertonly" +short_desc="Cross-platform application and UI framework - Webengine" +maintainer="John " +license="GPL-3.0-only, GPL-2.0-only, LGPL-3.0-only, BSD-3-Clause" +homepage="https://www.qt.io" +distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebengine-everywhere-src-${version}.tar.xz" +checksum=ffa945518d1cc8d9ee73523e8d9c2090844f5a2d9c7eac05c4ad079472a119c9 + +nocross="until later, I need calibre first" + +if [ "$CROSS_BUILD" ];then + configure_args+=" -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=TRUE" + configure_args+=" -DCMAKE_TOOLCHAIN_FILE=/usr/lib/cmake/Qt6/qt.toolchain.cmake" +fi + +if [ "$XBPS_LIBC" = "musl" ]; then + hostmakedepends+=" musl-legacy-compat" +fi + +if [ "$XBPS_TARGET_LIBC" = "musl" ]; then + makedepends+=" musl-legacy-compat" +fi + +if [ ! "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then + broken="webengine can be built only if word size matches" +fi + +if [ "$XBPS_WORDSIZE" = 32 ]; then + CFLAGS=-g1 + CXXFLAGS=-g1 + LDFLAGS="-Wl,--no-keep-memory" + broken="nodejs compress js files failure" +fi + +case "$XBPS_TARGET_MACHINE" in + ppc*) broken="not ported" ;; +esac + +#build_options="examples" +#build_options_default="examples" +#desc_option_examples="Build examples" + +subpackages="qt6-webengine-devel" + +#if [ "$build_option_examples" ]; then + subpackages+=" qt6-webengine-examples" +#fi + +_bootstrap_gn() { + # Bootstrap gn (generate ninja) + echo "Bootstrapping 'gn'" + cd ${wrksrc}/src/3rdparty/gn + CFLAGS="$CFLAGS_host" CXXFLAGS="$CXXFLAGS_host" LDFLAGS="$LDFLAGS_host" \ + PKGCONFIG=/usr/bin/pkgconfig PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig" \ + python3 build/gen.py --no-last-commit-position --out-path \ + ${wrksrc}/src/3rdparty/gn/out/Release --cc "${CC_host:-$CC}" \ + --cxx "${CXX_host:-$CXX}" --ld "${CXX_host:-$CXX}" --ar "${AR_host:-$AR}" \ + --qt-version "${version}.qtwebengine.qt.io" + ninja -C out/Release gn + cd ${wrksrc} +} + +_unbundle_libs() { + cd ${wrksrc}/src/3rdparty/chromium + echo Dropping bundled libs from chromium + # Use system-provided libraries. + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_libsrtp. + # TODO: use_system_libusb (http://crbug.com/266149). + # TODO: use_system_ssl (http://crbug.com/58087). + # TODO: use_system_sqlite (http://crbug.com/22208). + # TODO: use_system_icu (segfaults) + # use_system_protobuf + # use_system_v8=1 + # use_system_zlib=1 + # bzip2 jsoncpp minizip xdg_utils speex + system=" + ffmpeg + flac + fontconfig + freetype + harfbuzz-ng + icu + libdrm + libevent + libjpeg + libpng + libwebp + libxml + libxslt + opus + re2 + snappy + " + build/linux/unbundle/replace_gn_files.py --system-libraries ${system} +} + +# Provide a wrapper to run ./xbps-src -j 1 build later +_wrap_ninja() { + cat <<-'_EOF' >"$XBPS_WRAPPERDIR"/ninja + #!/bin/sh + + exec /usr/bin/ninja $NINJAFLAGS "$@" + _EOF + chmod +x "$XBPS_WRAPPERDIR"/ninja +} + +pre_configure() { + _bootstrap_gn + # _unbundle_libs + _wrap_ninja + export PATH="$PATH:${wrksrc}/src/3rdparty/gn/out/Release" +} + +pre_build() { + export PATH="$PATH:${wrksrc}/src/3rdparty/gn/out/Release" + export NINJAFLAGS="$makejobs" + +} + +pre_install() { + export PATH="$PATH:${wrksrc}/src/3rdparty/gn/out/Release" +} + +post_install() { + local _file + find "${DESTDIR}"/usr/lib/qt6/examples \ + -path '*/lib/qt6/**/lib/qt6/*' -type f | + while read _file; do + mv "$_file" "${_file%/lib/qt6/*}" + done +} + +qt6-webengine-devel_package() { + depends="${sourcepkg}>=${version}_${revision} qt6-webchannel-devel>=${version}_1 + qt6-declarative-devel>=${version}_1 qt6-location-devel>=${version}_1" + short_desc+=" - development files" + pkg_install() { + vmove usr/include + vmove usr/lib/cmake + vmove usr/lib/pkgconfig + vmove usr/lib/qt6/mkspecs + vmove "usr/lib/*.so" + vmove "usr/lib/*.prl" + vmove usr/share/qt6/modules + } +} + +qt6-webengine-examples_package() { + short_desc+=" - sample browsers" + depends="qt6-svg" + pkg_install() { + vmove usr/lib/qt6/examples + } +} diff --git a/srcpkgs/qt6-webengine/update b/srcpkgs/qt6-webengine/update new file mode 100644 index 000000000000..844552465222 --- /dev/null +++ b/srcpkgs/qt6-webengine/update @@ -0,0 +1 @@ +pkgname="${pkgname/6-/}-everywhere-src"