From 05f2bfed144888c3aed7cb03975a50c92c9c9158 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Tue, 14 Apr 2026 20:15:00 +0200 Subject: [PATCH] Bump --- dev-qt/assistant/Manifest | 4 + dev-qt/assistant/assistant-5.15.18.ebuild | 60 + dev-qt/assistant/metadata.xml | 17 + dev-qt/designer/Manifest | 4 + dev-qt/designer/designer-5.15.18-r1.ebuild | 59 + dev-qt/designer/metadata.xml | 20 + dev-qt/linguist-tools/Manifest | 4 + .../linguist-tools-5.15.18.ebuild | 37 + dev-qt/linguist-tools/metadata.xml | 20 + dev-qt/linguist/Manifest | 4 + dev-qt/linguist/linguist-5.15.18.ebuild | 54 + dev-qt/linguist/metadata.xml | 17 + dev-qt/pixeltool/Manifest | 4 + dev-qt/pixeltool/metadata.xml | 17 + dev-qt/pixeltool/pixeltool-5.15.18.ebuild | 35 + dev-qt/qdbus/Manifest | 4 + dev-qt/qdbus/metadata.xml | 17 + dev-qt/qdbus/qdbus-5.15.18.ebuild | 35 + dev-qt/qdbusviewer/Manifest | 4 + dev-qt/qdbusviewer/metadata.xml | 17 + dev-qt/qdbusviewer/qdbusviewer-5.15.18.ebuild | 51 + dev-qt/qdoc/Manifest | 4 + dev-qt/qdoc/metadata.xml | 20 + dev-qt/qdoc/qdoc-5.15.18.ebuild | 40 + dev-qt/qt3d/Manifest | 3 + dev-qt/qt3d/metadata.xml | 22 + dev-qt/qt3d/qt3d-5.15.18.ebuild | 44 + dev-qt/qtbluetooth/Manifest | 2 +- dev-qt/qtbluetooth/qtbluetooth-5.15.18.ebuild | 4 +- dev-qt/qtcore/Manifest | 5 + dev-qt/qtcore/metadata.xml | 20 + dev-qt/qtcore/qtcore-5.15.18.ebuild | 162 ++ dev-qt/qtdatavis3d/Manifest | 3 + dev-qt/qtdatavis3d/metadata.xml | 20 + dev-qt/qtdatavis3d/qtdatavis3d-5.15.18.ebuild | 32 + dev-qt/qtdbus/Manifest | 5 + dev-qt/qtdbus/metadata.xml | 17 + dev-qt/qtdbus/qtdbus-5.15.18.ebuild | 45 + dev-qt/qtdeclarative/Manifest | 7 + ...14.2-QQuickItemView-fix-maxXY-extent.patch | 42 + ...qtdeclarative-5.15.18-CVE-2025-12385.patch | 91 + dev-qt/qtdeclarative/metadata.xml | 22 + .../qtdeclarative-5.15.18-r1.ebuild | 69 + .../qtdeclarative-5.15.18.ebuild | 67 + dev-qt/qtdiag/Manifest | 4 + dev-qt/qtdiag/metadata.xml | 21 + dev-qt/qtdiag/qtdiag-5.15.18.ebuild | 43 + dev-qt/qtgraphicaleffects/Manifest | 3 + dev-qt/qtgraphicaleffects/metadata.xml | 17 + .../qtgraphicaleffects-5.15.18.ebuild | 22 + dev-qt/qtgui/Manifest | 6 + dev-qt/qtgui/metadata.xml | 28 + dev-qt/qtgui/qtgui-5.15.18-r1.ebuild | 181 ++ dev-qt/qtgui/qtgui-5.15.18.ebuild | 180 ++ dev-qt/qthelp/Manifest | 4 + dev-qt/qthelp/metadata.xml | 17 + dev-qt/qthelp/qthelp-5.15.18.ebuild | 30 + dev-qt/qtimageformats/Manifest | 4 + dev-qt/qtimageformats/metadata.xml | 18 + .../qtimageformats-5.15.18.ebuild | 32 + dev-qt/qtlockedfile/Manifest | 4 + dev-qt/qtlockedfile/files/qtlockedfile.prf | 6 + dev-qt/qtlockedfile/metadata.xml | 8 + .../qtlockedfile-2.4.1_p20171024.ebuild | 50 + dev-qt/qtmultimedia/Manifest | 4 + dev-qt/qtmultimedia/metadata.xml | 23 + .../qtmultimedia/qtmultimedia-5.15.18.ebuild | 70 + dev-qt/qtnetwork/Manifest | 5 + dev-qt/qtnetwork/metadata.xml | 22 + dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild | 62 + dev-qt/qtnetworkauth/Manifest | 3 + dev-qt/qtnetworkauth/metadata.xml | 18 + .../qtnetworkauth-5.15.18.ebuild | 21 + dev-qt/qtopengl/Manifest | 5 + dev-qt/qtopengl/metadata.xml | 17 + dev-qt/qtopengl/qtopengl-5.15.18.ebuild | 35 + dev-qt/qtpaths/Manifest | 4 + dev-qt/qtpaths/metadata.xml | 17 + dev-qt/qtpaths/qtpaths-5.15.18.ebuild | 28 + dev-qt/qtplugininfo/Manifest | 4 + dev-qt/qtplugininfo/metadata.xml | 17 + .../qtplugininfo/qtplugininfo-5.15.18.ebuild | 23 + dev-qt/qtpositioning/Manifest | 3 + dev-qt/qtpositioning/metadata.xml | 22 + .../qtpositioning-5.15.18.ebuild | 41 + dev-qt/qtprintsupport/Manifest | 5 + dev-qt/qtprintsupport/metadata.xml | 17 + .../qtprintsupport-5.15.18.ebuild | 44 + dev-qt/qtquickcontrols/Manifest | 3 + dev-qt/qtquickcontrols/metadata.xml | 20 + .../qtquickcontrols-5.15.18.ebuild | 33 + dev-qt/qtquickcontrols2/Manifest | 4 + dev-qt/qtquickcontrols2/metadata.xml | 20 + .../qtquickcontrols2-5.15.18.ebuild | 32 + dev-qt/qtquicktimeline/Manifest | 3 + dev-qt/qtquicktimeline/metadata.xml | 13 + .../qtquicktimeline-5.15.18.ebuild | 18 + dev-qt/qtscript/Manifest | 3 + dev-qt/qtscript/metadata.xml | 20 + dev-qt/qtscript/qtscript-5.15.18.ebuild | 37 + dev-qt/qtscxml/Manifest | 3 + dev-qt/qtscxml/metadata.xml | 18 + dev-qt/qtscxml/qtscxml-5.15.18.ebuild | 20 + dev-qt/qtserialbus/Manifest | 3 + dev-qt/qtserialbus/metadata.xml | 17 + dev-qt/qtserialbus/qtserialbus-5.15.18.ebuild | 21 + dev-qt/qtserialport/Manifest | 3 + dev-qt/qtserialport/metadata.xml | 18 + .../qtserialport/qtserialport-5.15.18.ebuild | 28 + dev-qt/qtsingleapplication/Manifest | 7 + .../files/2.6.1_p20130904-no-gui.patch | 67 + ....6.1_p20130904-unbundle-qtlockedfile.patch | 81 + .../files/qtsingleapplication.prf | 9 + .../files/qtsinglecoreapplication.prf | 8 + dev-qt/qtsingleapplication/metadata.xml | 8 + ...qtsingleapplication-2.6.1_p20171024.ebuild | 68 + dev-qt/qtsql/Manifest | 5 + dev-qt/qtsql/metadata.xml | 17 + dev-qt/qtsql/qtsql-5.15.18.ebuild | 56 + dev-qt/qtsvg/Manifest | 4 + dev-qt/qtsvg/metadata.xml | 18 + dev-qt/qtsvg/qtsvg-5.15.18.ebuild | 25 + dev-qt/qttest/Manifest | 5 + dev-qt/qttest/metadata.xml | 17 + dev-qt/qttest/qttest-5.15.18.ebuild | 33 + dev-qt/qttranslations/Manifest | 3 + dev-qt/qttranslations/metadata.xml | 19 + .../qttranslations-5.15.18.ebuild | 17 + dev-qt/qtvirtualkeyboard/Manifest | 1 + dev-qt/qtvirtualkeyboard/metadata.xml | 21 + dev-qt/qtwayland/Manifest | 4 + dev-qt/qtwayland/metadata.xml | 22 + dev-qt/qtwayland/qtwayland-5.15.18.ebuild | 52 + dev-qt/qtwebchannel/Manifest | 6 + ...ls-in-the-registered-object-s-thread.patch | 181 ++ ...dle-per-transport-client-idle-status.patch | 335 ++++ ...sher-Never-send-stale-queued-message.patch | 60 + dev-qt/qtwebchannel/metadata.xml | 21 + .../qtwebchannel/qtwebchannel-5.15.18.ebuild | 33 + dev-qt/qtwebengine/Manifest | 16 + .../001-disable-fatal-warnings.patch | 12 + .../002-extra-gn.patch | 10 + .../003-chromium-87-v8-icu68.patch | 192 ++ .../004-disable-git.patch | 15 + .../005-pdfium-system-lcms2.patch | 79 + .../006-clang14.patch | 42 + .../007-gcc12-includes.patch | 32 + .../008-jumbo-build.patch | 213 ++ .../009-port-to-pipewire-0.3.patch | 1766 +++++++++++++++++ .../010-widevine.patch | 82 + .../011-clang16.patch | 15 + .../012-python3.12-dubious-imp.patch | 26 + .../013-python3.12-fix-six.patch | 58 + .../patchseries | 13 + .../qtwebengine-5.15.17-spellcheck.patch | 38 + dev-qt/qtwebengine/metadata.xml | 25 + dev-qt/qtwebkit/Manifest | 6 + .../qtwebkit-5.212.0_pre20240528-gcc14.patch | 15 + .../qtwebkit-5.212.0_pre20240528-icu76.patch | 11 + .../qtwebkit-5.212.0_pre20240528-ruby.patch | 46 + dev-qt/qtwebkit/metadata.xml | 26 + .../qtwebkit-5.212.0_pre20240528-r1.ebuild | 150 ++ dev-qt/qtwebview/Manifest | 3 + dev-qt/qtwebview/metadata.xml | 18 + dev-qt/qtwebview/qtwebview-5.15.18.ebuild | 22 + dev-qt/qtwidgets/Manifest | 5 + dev-qt/qtwidgets/metadata.xml | 20 + dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild | 63 + dev-qt/qtx11extras/Manifest | 3 + dev-qt/qtx11extras/metadata.xml | 17 + dev-qt/qtx11extras/qtx11extras-5.15.18.ebuild | 22 + dev-qt/qtxml/Manifest | 5 + dev-qt/qtxml/metadata.xml | 17 + dev-qt/qtxml/qtxml-5.15.18.ebuild | 29 + dev-qt/qtxmlpatterns/Manifest | 3 + dev-qt/qtxmlpatterns/metadata.xml | 20 + .../qtxmlpatterns-5.15.18.ebuild | 39 + 177 files changed, 7129 insertions(+), 3 deletions(-) create mode 100644 dev-qt/assistant/Manifest create mode 100644 dev-qt/assistant/assistant-5.15.18.ebuild create mode 100644 dev-qt/assistant/metadata.xml create mode 100644 dev-qt/designer/Manifest create mode 100644 dev-qt/designer/designer-5.15.18-r1.ebuild create mode 100644 dev-qt/designer/metadata.xml create mode 100644 dev-qt/linguist-tools/Manifest create mode 100644 dev-qt/linguist-tools/linguist-tools-5.15.18.ebuild create mode 100644 dev-qt/linguist-tools/metadata.xml create mode 100644 dev-qt/linguist/Manifest create mode 100644 dev-qt/linguist/linguist-5.15.18.ebuild create mode 100644 dev-qt/linguist/metadata.xml create mode 100644 dev-qt/pixeltool/Manifest create mode 100644 dev-qt/pixeltool/metadata.xml create mode 100644 dev-qt/pixeltool/pixeltool-5.15.18.ebuild create mode 100644 dev-qt/qdbus/Manifest create mode 100644 dev-qt/qdbus/metadata.xml create mode 100644 dev-qt/qdbus/qdbus-5.15.18.ebuild create mode 100644 dev-qt/qdbusviewer/Manifest create mode 100644 dev-qt/qdbusviewer/metadata.xml create mode 100644 dev-qt/qdbusviewer/qdbusviewer-5.15.18.ebuild create mode 100644 dev-qt/qdoc/Manifest create mode 100644 dev-qt/qdoc/metadata.xml create mode 100644 dev-qt/qdoc/qdoc-5.15.18.ebuild create mode 100644 dev-qt/qt3d/Manifest create mode 100644 dev-qt/qt3d/metadata.xml create mode 100644 dev-qt/qt3d/qt3d-5.15.18.ebuild create mode 100644 dev-qt/qtcore/Manifest create mode 100644 dev-qt/qtcore/metadata.xml create mode 100644 dev-qt/qtcore/qtcore-5.15.18.ebuild create mode 100644 dev-qt/qtdatavis3d/Manifest create mode 100644 dev-qt/qtdatavis3d/metadata.xml create mode 100644 dev-qt/qtdatavis3d/qtdatavis3d-5.15.18.ebuild create mode 100644 dev-qt/qtdbus/Manifest create mode 100644 dev-qt/qtdbus/metadata.xml create mode 100644 dev-qt/qtdbus/qtdbus-5.15.18.ebuild create mode 100644 dev-qt/qtdeclarative/Manifest create mode 100644 dev-qt/qtdeclarative/files/qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch create mode 100644 dev-qt/qtdeclarative/files/qtdeclarative-5.15.18-CVE-2025-12385.patch create mode 100644 dev-qt/qtdeclarative/metadata.xml create mode 100644 dev-qt/qtdeclarative/qtdeclarative-5.15.18-r1.ebuild create mode 100644 dev-qt/qtdeclarative/qtdeclarative-5.15.18.ebuild create mode 100644 dev-qt/qtdiag/Manifest create mode 100644 dev-qt/qtdiag/metadata.xml create mode 100644 dev-qt/qtdiag/qtdiag-5.15.18.ebuild create mode 100644 dev-qt/qtgraphicaleffects/Manifest create mode 100644 dev-qt/qtgraphicaleffects/metadata.xml create mode 100644 dev-qt/qtgraphicaleffects/qtgraphicaleffects-5.15.18.ebuild create mode 100644 dev-qt/qtgui/Manifest create mode 100644 dev-qt/qtgui/metadata.xml create mode 100644 dev-qt/qtgui/qtgui-5.15.18-r1.ebuild create mode 100644 dev-qt/qtgui/qtgui-5.15.18.ebuild create mode 100644 dev-qt/qthelp/Manifest create mode 100644 dev-qt/qthelp/metadata.xml create mode 100644 dev-qt/qthelp/qthelp-5.15.18.ebuild create mode 100644 dev-qt/qtimageformats/Manifest create mode 100644 dev-qt/qtimageformats/metadata.xml create mode 100644 dev-qt/qtimageformats/qtimageformats-5.15.18.ebuild create mode 100644 dev-qt/qtlockedfile/Manifest create mode 100644 dev-qt/qtlockedfile/files/qtlockedfile.prf create mode 100644 dev-qt/qtlockedfile/metadata.xml create mode 100644 dev-qt/qtlockedfile/qtlockedfile-2.4.1_p20171024.ebuild create mode 100644 dev-qt/qtmultimedia/Manifest create mode 100644 dev-qt/qtmultimedia/metadata.xml create mode 100644 dev-qt/qtmultimedia/qtmultimedia-5.15.18.ebuild create mode 100644 dev-qt/qtnetwork/Manifest create mode 100644 dev-qt/qtnetwork/metadata.xml create mode 100644 dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild create mode 100644 dev-qt/qtnetworkauth/Manifest create mode 100644 dev-qt/qtnetworkauth/metadata.xml create mode 100644 dev-qt/qtnetworkauth/qtnetworkauth-5.15.18.ebuild create mode 100644 dev-qt/qtopengl/Manifest create mode 100644 dev-qt/qtopengl/metadata.xml create mode 100644 dev-qt/qtopengl/qtopengl-5.15.18.ebuild create mode 100644 dev-qt/qtpaths/Manifest create mode 100644 dev-qt/qtpaths/metadata.xml create mode 100644 dev-qt/qtpaths/qtpaths-5.15.18.ebuild create mode 100644 dev-qt/qtplugininfo/Manifest create mode 100644 dev-qt/qtplugininfo/metadata.xml create mode 100644 dev-qt/qtplugininfo/qtplugininfo-5.15.18.ebuild create mode 100644 dev-qt/qtpositioning/Manifest create mode 100644 dev-qt/qtpositioning/metadata.xml create mode 100644 dev-qt/qtpositioning/qtpositioning-5.15.18.ebuild create mode 100644 dev-qt/qtprintsupport/Manifest create mode 100644 dev-qt/qtprintsupport/metadata.xml create mode 100644 dev-qt/qtprintsupport/qtprintsupport-5.15.18.ebuild create mode 100644 dev-qt/qtquickcontrols/Manifest create mode 100644 dev-qt/qtquickcontrols/metadata.xml create mode 100644 dev-qt/qtquickcontrols/qtquickcontrols-5.15.18.ebuild create mode 100644 dev-qt/qtquickcontrols2/Manifest create mode 100644 dev-qt/qtquickcontrols2/metadata.xml create mode 100644 dev-qt/qtquickcontrols2/qtquickcontrols2-5.15.18.ebuild create mode 100644 dev-qt/qtquicktimeline/Manifest create mode 100644 dev-qt/qtquicktimeline/metadata.xml create mode 100644 dev-qt/qtquicktimeline/qtquicktimeline-5.15.18.ebuild create mode 100644 dev-qt/qtscript/Manifest create mode 100644 dev-qt/qtscript/metadata.xml create mode 100644 dev-qt/qtscript/qtscript-5.15.18.ebuild create mode 100644 dev-qt/qtscxml/Manifest create mode 100644 dev-qt/qtscxml/metadata.xml create mode 100644 dev-qt/qtscxml/qtscxml-5.15.18.ebuild create mode 100644 dev-qt/qtserialbus/Manifest create mode 100644 dev-qt/qtserialbus/metadata.xml create mode 100644 dev-qt/qtserialbus/qtserialbus-5.15.18.ebuild create mode 100644 dev-qt/qtserialport/Manifest create mode 100644 dev-qt/qtserialport/metadata.xml create mode 100644 dev-qt/qtserialport/qtserialport-5.15.18.ebuild create mode 100644 dev-qt/qtsingleapplication/Manifest create mode 100644 dev-qt/qtsingleapplication/files/2.6.1_p20130904-no-gui.patch create mode 100644 dev-qt/qtsingleapplication/files/2.6.1_p20130904-unbundle-qtlockedfile.patch create mode 100644 dev-qt/qtsingleapplication/files/qtsingleapplication.prf create mode 100644 dev-qt/qtsingleapplication/files/qtsinglecoreapplication.prf create mode 100644 dev-qt/qtsingleapplication/metadata.xml create mode 100644 dev-qt/qtsingleapplication/qtsingleapplication-2.6.1_p20171024.ebuild create mode 100644 dev-qt/qtsql/Manifest create mode 100644 dev-qt/qtsql/metadata.xml create mode 100644 dev-qt/qtsql/qtsql-5.15.18.ebuild create mode 100644 dev-qt/qtsvg/Manifest create mode 100644 dev-qt/qtsvg/metadata.xml create mode 100644 dev-qt/qtsvg/qtsvg-5.15.18.ebuild create mode 100644 dev-qt/qttest/Manifest create mode 100644 dev-qt/qttest/metadata.xml create mode 100644 dev-qt/qttest/qttest-5.15.18.ebuild create mode 100644 dev-qt/qttranslations/Manifest create mode 100644 dev-qt/qttranslations/metadata.xml create mode 100644 dev-qt/qttranslations/qttranslations-5.15.18.ebuild create mode 100644 dev-qt/qtvirtualkeyboard/metadata.xml create mode 100644 dev-qt/qtwayland/Manifest create mode 100644 dev-qt/qtwayland/metadata.xml create mode 100644 dev-qt/qtwayland/qtwayland-5.15.18.ebuild create mode 100644 dev-qt/qtwebchannel/Manifest create mode 100644 dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0001-Handle-signals-in-the-registered-object-s-thread.patch create mode 100644 dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0002-Handle-per-transport-client-idle-status.patch create mode 100644 dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0003-QMetaObjectPublisher-Never-send-stale-queued-message.patch create mode 100644 dev-qt/qtwebchannel/metadata.xml create mode 100644 dev-qt/qtwebchannel/qtwebchannel-5.15.18.ebuild create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/001-disable-fatal-warnings.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/002-extra-gn.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/003-chromium-87-v8-icu68.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/004-disable-git.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/005-pdfium-system-lcms2.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/006-clang14.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/007-gcc12-includes.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/008-jumbo-build.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/009-port-to-pipewire-0.3.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/010-widevine.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/011-clang16.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/012-python3.12-dubious-imp.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/013-python3.12-fix-six.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/patchseries create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.17-spellcheck.patch create mode 100644 dev-qt/qtwebengine/metadata.xml create mode 100644 dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-gcc14.patch create mode 100644 dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-icu76.patch create mode 100644 dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-ruby.patch create mode 100644 dev-qt/qtwebkit/metadata.xml create mode 100644 dev-qt/qtwebkit/qtwebkit-5.212.0_pre20240528-r1.ebuild create mode 100644 dev-qt/qtwebview/Manifest create mode 100644 dev-qt/qtwebview/metadata.xml create mode 100644 dev-qt/qtwebview/qtwebview-5.15.18.ebuild create mode 100644 dev-qt/qtwidgets/Manifest create mode 100644 dev-qt/qtwidgets/metadata.xml create mode 100644 dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild create mode 100644 dev-qt/qtx11extras/Manifest create mode 100644 dev-qt/qtx11extras/metadata.xml create mode 100644 dev-qt/qtx11extras/qtx11extras-5.15.18.ebuild create mode 100644 dev-qt/qtxml/Manifest create mode 100644 dev-qt/qtxml/metadata.xml create mode 100644 dev-qt/qtxml/qtxml-5.15.18.ebuild create mode 100644 dev-qt/qtxmlpatterns/Manifest create mode 100644 dev-qt/qtxmlpatterns/metadata.xml create mode 100644 dev-qt/qtxmlpatterns/qtxmlpatterns-5.15.18.ebuild diff --git a/dev-qt/assistant/Manifest b/dev-qt/assistant/Manifest new file mode 100644 index 00000000..1106dfe8 --- /dev/null +++ b/dev-qt/assistant/Manifest @@ -0,0 +1,4 @@ +DIST qttools-5.15.18-gentoo-kde-1.tar.xz 2336 BLAKE2B 0ddc602b0b0edddbd7ff5cb435a6ab63ea4c9a159513c3b42e553ad68fb297239893b1d55e1ed1ff143d7af624e4d47cd07e5e2e564f4fe022b987b589f8d05d SHA512 e96f2d01a3526b1ebc3fb9afd04a38b42336d159961f53e348798cd0c4548abdae96569b670521b077daaf2fd64a29eedf9dd3b0cb7a131d5ec77deaec37cb5e +DIST qttools-everywhere-opensource-src-5.15.18.tar.xz 8876416 BLAKE2B f546692ac9faccd617838432c001f7d574c7137ff44326d6d1e207a3eea913592c7857a15c91cbbadf0451512c256f4a99d43694b35f84fc758aa2a55118be75 SHA512 30a278df553ff3bb64927a4a5be0370b070131ec2970410095b4618e6a0f6e7c45374abf37c458b69dd9e4f7cecb98289b8e777cf5bc85b09f0b5cd278a40a70 +EBUILD assistant-5.15.18.ebuild 1298 BLAKE2B 1148f3da6509be813e47a5579ab627d6dac7e20ac2ea6cfd72ffa8554fde762904b96ddc2fe085dc8901ffe80a3b56cff644fe86d60424a06d5694a1cfaf575b SHA512 3c561e4b23d4231282d096869a69745b60af929a0ef074989adaaee8a088a41a1d0c71a8bc289dd9a8055e12fa3d5ace70e53c6124ef187218bd2418c400157c +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/assistant/assistant-5.15.18.ebuild b/dev-qt/assistant/assistant-5.15.18.ebuild new file mode 100644 index 00000000..3d2c26ef --- /dev/null +++ b/dev-qt/assistant/assistant-5.15.18.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 ~arm arm64 ~hppa ppc64 x86" +fi + +QT5_MODULE="qttools" +inherit desktop qt5-build xdg-utils + +DESCRIPTION="Tool for viewing on-line documentation in Qt help file format" + +IUSE=" " + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*[png] + =dev-qt/qthelp-${QT5_PV}* + =dev-qt/qtnetwork-${QT5_PV}* + =dev-qt/qtprintsupport-${QT5_PV}* + =dev-qt/qtsql-${QT5_PV}*[sqlite] + =dev-qt/qtwidgets-${QT5_PV}* +" +RDEPEND="${DEPEND} + !dev-qt/${PN}:5 + ! + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/designer/Manifest b/dev-qt/designer/Manifest new file mode 100644 index 00000000..20c43aa3 --- /dev/null +++ b/dev-qt/designer/Manifest @@ -0,0 +1,4 @@ +DIST qttools-5.15.18-gentoo-kde-1.tar.xz 2336 BLAKE2B 0ddc602b0b0edddbd7ff5cb435a6ab63ea4c9a159513c3b42e553ad68fb297239893b1d55e1ed1ff143d7af624e4d47cd07e5e2e564f4fe022b987b589f8d05d SHA512 e96f2d01a3526b1ebc3fb9afd04a38b42336d159961f53e348798cd0c4548abdae96569b670521b077daaf2fd64a29eedf9dd3b0cb7a131d5ec77deaec37cb5e +DIST qttools-everywhere-opensource-src-5.15.18.tar.xz 8876416 BLAKE2B f546692ac9faccd617838432c001f7d574c7137ff44326d6d1e207a3eea913592c7857a15c91cbbadf0451512c256f4a99d43694b35f84fc758aa2a55118be75 SHA512 30a278df553ff3bb64927a4a5be0370b070131ec2970410095b4618e6a0f6e7c45374abf37c458b69dd9e4f7cecb98289b8e777cf5bc85b09f0b5cd278a40a70 +EBUILD designer-5.15.18-r1.ebuild 1344 BLAKE2B 334f50c5b3d2228c33a980ebf351d7284610cff5e4552529eb87eca4ceab04096d3fe7e548e32f988eb209e4932a8e9bfae078fc6a2fba29d90b7d2d12a6e9a5 SHA512 59b4a77850e506b0ec395ed9bf03a835133f919435050f4dd5efbdeb335b92195ac366f7aeee6bc5c20f2b0766d0768d633a759b557fab10f499488009b35b2a +MISC metadata.xml 565 BLAKE2B ff18f784bf09ba4add0fe5a9966a07ba2694dd84046bc528b22bcfd643a7e57be99235bd98eca4e58f68636f9fe6c8e274aabf82ed2055c6a4c70d10c60864ed SHA512 357d80b857e508aeceefcb45ab3757ce24d6ec3e1fd67642f2cbedf496748f89ab5a9726eb974bea8d5b1693601a965571913f79b1325aeaf9020183882ba16d diff --git a/dev-qt/designer/designer-5.15.18-r1.ebuild b/dev-qt/designer/designer-5.15.18-r1.ebuild new file mode 100644 index 00000000..8587eb50 --- /dev/null +++ b/dev-qt/designer/designer-5.15.18-r1.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qttools" +inherit desktop qt5-build xdg-utils + +DESCRIPTION="WYSIWYG tool for designing and building graphical user interfaces with QtWidgets" + +IUSE="declarative" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*:5=[png] + =dev-qt/qtnetwork-${QT5_PV}* + =dev-qt/qtprintsupport-${QT5_PV}* + =dev-qt/qtwidgets-${QT5_PV}* + =dev-qt/qtxml-${QT5_PV}* + declarative? ( =dev-qt/qtdeclarative-${QT5_PV}*[widgets] ) +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/designer +) + +src_prepare() { + qt_use_disable_mod declarative quickwidgets \ + src/designer/src/plugins/plugins.pro + + sed -e "s/qtHaveModule(webkitwidgets)/false/g" \ + -i src/designer/src/plugins/plugins.pro || die + + qt5-build_src_prepare +} + +src_install() { + qt5-build_src_install + qt5_symlink_binary_to_path designer 5 + + newicon -s 128 src/designer/src/designer/images/designer.png designer-qt5.png + make_desktop_entry "${QT5_BINDIR}"/designer 'Qt 5 Designer' designer-qt5 'Qt;Development;GUIDesigner' +} + +pkg_postinst() { + qt5-build_pkg_postinst + xdg_icon_cache_update +} + +pkg_postrm() { + qt5-build_pkg_postrm + xdg_icon_cache_update +} diff --git a/dev-qt/designer/metadata.xml b/dev-qt/designer/metadata.xml new file mode 100644 index 00000000..70c977d5 --- /dev/null +++ b/dev-qt/designer/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build the qdeclarativeview plugin + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/linguist-tools/Manifest b/dev-qt/linguist-tools/Manifest new file mode 100644 index 00000000..19f41765 --- /dev/null +++ b/dev-qt/linguist-tools/Manifest @@ -0,0 +1,4 @@ +DIST qttools-5.15.18-gentoo-kde-1.tar.xz 2336 BLAKE2B 0ddc602b0b0edddbd7ff5cb435a6ab63ea4c9a159513c3b42e553ad68fb297239893b1d55e1ed1ff143d7af624e4d47cd07e5e2e564f4fe022b987b589f8d05d SHA512 e96f2d01a3526b1ebc3fb9afd04a38b42336d159961f53e348798cd0c4548abdae96569b670521b077daaf2fd64a29eedf9dd3b0cb7a131d5ec77deaec37cb5e +DIST qttools-everywhere-opensource-src-5.15.18.tar.xz 8876416 BLAKE2B f546692ac9faccd617838432c001f7d574c7137ff44326d6d1e207a3eea913592c7857a15c91cbbadf0451512c256f4a99d43694b35f84fc758aa2a55118be75 SHA512 30a278df553ff3bb64927a4a5be0370b070131ec2970410095b4618e6a0f6e7c45374abf37c458b69dd9e4f7cecb98289b8e777cf5bc85b09f0b5cd278a40a70 +EBUILD linguist-tools-5.15.18.ebuild 715 BLAKE2B 004212c30e16088095e8d2303df0643bb61053b54ad4ca7bcd6c894beef3dc5b1e2752354e936d358c65ec9d0bf9441fd107f1260448a0f4aad0303ac191c362 SHA512 b383720be3afd8ab13c0856c49ce7275c29a9c9c9b383ce024a3fc45b114f54264c6f687ce2c4ebc8da0e39ffa58c6b4b2ca811e8c435595486c32f9d6e18ee1 +MISC metadata.xml 553 BLAKE2B 0306175072e5a0abff04f61eca76aa56daba272d1308419efd9ab80c4693eb795012b4e45a4cc102f6a9ec842105a805d9c5e75f84ae8007508a4d7d807d444b SHA512 d1edc09cbb7d757cd72b9b3dce980e0fede2cf69a83b78a072d81aea97692cb235227213cf02aa8207f33bc4a510a63baee359d5e8669ea7e0e5268dcd522e79 diff --git a/dev-qt/linguist-tools/linguist-tools-5.15.18.ebuild b/dev-qt/linguist-tools/linguist-tools-5.15.18.ebuild new file mode 100644 index 00000000..8b2b15e6 --- /dev/null +++ b/dev-qt/linguist-tools/linguist-tools-5.15.18.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qttools" +inherit qt5-build + +DESCRIPTION="Tools for working with Qt translation data files" + +IUSE="qml" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtxml-${QT5_PV}* + qml? ( =dev-qt/qtdeclarative-${QT5_PV}* ) +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/linguist +) + +src_prepare() { + sed -i -e '/SUBDIRS += linguist/d' \ + src/linguist/linguist.pro || die + + qt_use_disable_mod qml qmldevtools-private \ + src/linguist/lupdate/lupdate.pro + + qt5-build_src_prepare +} diff --git a/dev-qt/linguist-tools/metadata.xml b/dev-qt/linguist-tools/metadata.xml new file mode 100644 index 00000000..46e39147 --- /dev/null +++ b/dev-qt/linguist-tools/metadata.xml @@ -0,0 +1,20 @@ + + + + + Enable QML support in lupdate + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/linguist/Manifest b/dev-qt/linguist/Manifest new file mode 100644 index 00000000..6e40423a --- /dev/null +++ b/dev-qt/linguist/Manifest @@ -0,0 +1,4 @@ +DIST qttools-5.15.18-gentoo-kde-1.tar.xz 2336 BLAKE2B 0ddc602b0b0edddbd7ff5cb435a6ab63ea4c9a159513c3b42e553ad68fb297239893b1d55e1ed1ff143d7af624e4d47cd07e5e2e564f4fe022b987b589f8d05d SHA512 e96f2d01a3526b1ebc3fb9afd04a38b42336d159961f53e348798cd0c4548abdae96569b670521b077daaf2fd64a29eedf9dd3b0cb7a131d5ec77deaec37cb5e +DIST qttools-everywhere-opensource-src-5.15.18.tar.xz 8876416 BLAKE2B f546692ac9faccd617838432c001f7d574c7137ff44326d6d1e207a3eea913592c7857a15c91cbbadf0451512c256f4a99d43694b35f84fc758aa2a55118be75 SHA512 30a278df553ff3bb64927a4a5be0370b070131ec2970410095b4618e6a0f6e7c45374abf37c458b69dd9e4f7cecb98289b8e777cf5bc85b09f0b5cd278a40a70 +EBUILD linguist-5.15.18.ebuild 1105 BLAKE2B 10c7910c63db79cfb9c7c62b63a8c36609faca27c43eba82698f3933ab8d9026611a8f360ce928cdfb8179b5103a6501ed8d41f35a866649adcaa998b7805a03 SHA512 6ff22c67fe40e53798f79e8c5dc2eb8aa5869282a4c04b40335a0e604fe12a3199fec77a7e7053a3e320ee48f436ee3657e71a557296d91fda510b690c885034 +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/linguist/linguist-5.15.18.ebuild b/dev-qt/linguist/linguist-5.15.18.ebuild new file mode 100644 index 00000000..0640f13b --- /dev/null +++ b/dev-qt/linguist/linguist-5.15.18.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 ~arm arm64 ~hppa ppc64 x86" +fi + +QT5_MODULE="qttools" +inherit desktop qt5-build xdg-utils + +DESCRIPTION="Graphical tool for translating Qt applications" + +IUSE=" " + +DEPEND=" + =dev-qt/designer-${QT5_PV}* + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*:5=[png] + =dev-qt/qtprintsupport-${QT5_PV}* + =dev-qt/qtwidgets-${QT5_PV}* + =dev-qt/qtxml-${QT5_PV}* +" +RDEPEND="${DEPEND} + !dev-qt/${PN}:5 + ! + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/pixeltool/Manifest b/dev-qt/pixeltool/Manifest new file mode 100644 index 00000000..71ad8473 --- /dev/null +++ b/dev-qt/pixeltool/Manifest @@ -0,0 +1,4 @@ +DIST qttools-5.15.18-gentoo-kde-1.tar.xz 2336 BLAKE2B 0ddc602b0b0edddbd7ff5cb435a6ab63ea4c9a159513c3b42e553ad68fb297239893b1d55e1ed1ff143d7af624e4d47cd07e5e2e564f4fe022b987b589f8d05d SHA512 e96f2d01a3526b1ebc3fb9afd04a38b42336d159961f53e348798cd0c4548abdae96569b670521b077daaf2fd64a29eedf9dd3b0cb7a131d5ec77deaec37cb5e +DIST qttools-everywhere-opensource-src-5.15.18.tar.xz 8876416 BLAKE2B f546692ac9faccd617838432c001f7d574c7137ff44326d6d1e207a3eea913592c7857a15c91cbbadf0451512c256f4a99d43694b35f84fc758aa2a55118be75 SHA512 30a278df553ff3bb64927a4a5be0370b070131ec2970410095b4618e6a0f6e7c45374abf37c458b69dd9e4f7cecb98289b8e777cf5bc85b09f0b5cd278a40a70 +EBUILD pixeltool-5.15.18.ebuild 589 BLAKE2B d9e75a7bf4043bd1c6c264184a1c5d529606a2e93143051f38f39262e989f93cd8b6d98d4ef9f436b6987ef5c384b033aa17ef7c96d4aa1d0b997d1f8d05a8b5 SHA512 713408fe22dcdea624f9cb8840daff2159b1d5c101817e860cc690e28e18644f314fe9b41134bfeb455fa07063416e9e6f46d651592e9566cec3ed3676f95f24 +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/pixeltool/metadata.xml b/dev-qt/pixeltool/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/pixeltool/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/pixeltool/pixeltool-5.15.18.ebuild b/dev-qt/pixeltool/pixeltool-5.15.18.ebuild new file mode 100644 index 00000000..6ee3bde1 --- /dev/null +++ b/dev-qt/pixeltool/pixeltool-5.15.18.ebuild @@ -0,0 +1,35 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 ~arm arm64 ~hppa ppc64 x86" +fi + +QT5_MODULE="qttools" +inherit qt5-build + +DESCRIPTION="Qt screen magnifier" + +IUSE=" " + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*:5=[png] + =dev-qt/qtwidgets-${QT5_PV}* +" +RDEPEND="${DEPEND} + !dev-qt/${PN}:5 + ! + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qdbus/qdbus-5.15.18.ebuild b/dev-qt/qdbus/qdbus-5.15.18.ebuild new file mode 100644 index 00000000..7485ef1c --- /dev/null +++ b/dev-qt/qdbus/qdbus-5.15.18.ebuild @@ -0,0 +1,35 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qttools" +inherit qt5-build + +DESCRIPTION="Interface to Qt applications communicating over D-Bus" + +IUSE=" " + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtdbus-${QT5_PV}* + =dev-qt/qtxml-${QT5_PV}* +" +RDEPEND="${DEPEND} + !dev-qt/${PN}:5 + ! + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qdbusviewer/qdbusviewer-5.15.18.ebuild b/dev-qt/qdbusviewer/qdbusviewer-5.15.18.ebuild new file mode 100644 index 00000000..01dc7ed7 --- /dev/null +++ b/dev-qt/qdbusviewer/qdbusviewer-5.15.18.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 ~arm arm64 ~hppa ppc64 x86" +fi + +QT5_MODULE="qttools" +inherit desktop qt5-build xdg-utils + +DESCRIPTION="Graphical tool that lets you introspect D-Bus objects and messages" + +IUSE=" " + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtdbus-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}* + =dev-qt/qtwidgets-${QT5_PV}* + =dev-qt/qtxml-${QT5_PV}* +" +RDEPEND="${DEPEND} + !dev-qt/${PN}:5 + ! + + + + qt@gentoo.org + Gentoo Qt Project + + + Enable QML/JS parsing support + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qdoc/qdoc-5.15.18.ebuild b/dev-qt/qdoc/qdoc-5.15.18.ebuild new file mode 100644 index 00000000..d6c6ffb0 --- /dev/null +++ b/dev-qt/qdoc/qdoc-5.15.18.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86" +fi + +QT5_MODULE="qttools" +inherit qt5-build + +DESCRIPTION="Qt documentation generator" + +IUSE="qml" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + llvm-core/clang:= + qml? ( =dev-qt/qtdeclarative-${QT5_PV}* ) +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/qdoc +) + +src_prepare() { + qt_use_disable_mod qml qmldevtools-private \ + src/qdoc/qdoc.pro + + qt5-build_src_prepare +} + +src_configure() { + # qt5_tools_configure() not enough here, needs another fix, bug 676948 + qt5_configure_oos_quirk qtqdoc-config.pri src/qdoc + qt5-build_src_configure +} diff --git a/dev-qt/qt3d/Manifest b/dev-qt/qt3d/Manifest new file mode 100644 index 00000000..b72a2641 --- /dev/null +++ b/dev-qt/qt3d/Manifest @@ -0,0 +1,3 @@ +DIST qt3d-everywhere-opensource-src-5.15.18.tar.xz 118255028 BLAKE2B 825c915161adbacb13fe49dd9fc67d819feb43b4ea7e4fe72be31ff3f66b8618019542cf05fe051e9e2f597f28550175b0827af3be9345772f262b56a53b2e74 SHA512 53825ff0bad5adc73bafbdf426e7209a770860f8e0ac97f89fdf61b07ac2431d54ce8ad2fbcb69ca3c2a5b953d76a3bcc0d236c32c6b45d219ee6fcb582c5974 +EBUILD qt3d-5.15.18.ebuild 948 BLAKE2B 398c6ec0d38bca086daab3d2cae7a7afe107f977bd980cac0dee1c5919d28024ebce2fdf492c3d14c798e229a13d375d22188613da0d067ebbbe526799364e3a SHA512 e9503b5e06159e4a13e1ed08abb181d4cc7162f15398f1d4907c30a85d798c87793cca1e8fbb1a7c0a5759f6f246f60d7fffd3aecf23a2896a6db9090a4c189a +MISC metadata.xml 692 BLAKE2B 807ac52bd34ad8ea6471eb7b03703f20951c941a2b5841fa173796b4d9b3bdee1afc79fb83057a5bd6329db5cf656c0c5afdc6ece087684c14e0a581c91eed69 SHA512 5894daabb0fbee32e8fbcdc35f720f2f3225bd78ac632491d4603650db49c79c41fbe84d1cfde15870ed7a17c39c98cb5572ca5ed1da7fe5311faa7b2b750aec diff --git a/dev-qt/qt3d/metadata.xml b/dev-qt/qt3d/metadata.xml new file mode 100644 index 00000000..12e16d11 --- /dev/null +++ b/dev-qt/qt3d/metadata.xml @@ -0,0 +1,22 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Add support for gamepad hardware via dev-qt/qtgamepad + Build QML/QtQuick bindings + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qt3d + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qt3d/qt3d-5.15.18.ebuild b/dev-qt/qt3d/qt3d-5.15.18.ebuild new file mode 100644 index 00000000..268e0530 --- /dev/null +++ b/dev-qt/qt3d/qt3d-5.15.18.ebuild @@ -0,0 +1,44 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + KEYWORDS="amd64 ~arm arm64 ~riscv x86" +fi +inherit qt5-build + +DESCRIPTION="3D rendering module for the Qt5 framework" + +# TODO: tools +IUSE="gamepad gles2-only qml vulkan" + +RDEPEND=" + =dev-qt/qtconcurrent-${QT5_PV}* + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}*:5=[vulkan=] + =dev-qt/qtnetwork-${QT5_PV}* + >=media-libs/assimp-4.0.0:= + gamepad? ( =dev-qt/qtgamepad-${QT5_PV}* ) + qml? ( =dev-qt/qtdeclarative-${QT5_PV}*[gles2-only=] ) +" +DEPEND="${RDEPEND} + vulkan? ( dev-util/vulkan-headers ) +" + +src_prepare() { + rm -r src/3rdparty/assimp/src/{code,contrib,include} || die + + qt_use_disable_mod gamepad gamepad src/input/frontend/frontend.pri + qt_use_disable_mod qml quick src/src.pro + + qt5-build_src_prepare +} + +src_configure() { + local myqmakeargs=( + -- + -system-assimp + ) + qt5-build_src_configure +} diff --git a/dev-qt/qtbluetooth/Manifest b/dev-qt/qtbluetooth/Manifest index 8d4280f3..050e243f 100644 --- a/dev-qt/qtbluetooth/Manifest +++ b/dev-qt/qtbluetooth/Manifest @@ -1,4 +1,4 @@ DIST qtconnectivity-5.15.18-gentoo-kde-1.tar.xz 3008 BLAKE2B 9582d0515cfe57bb6444f37c19475c04cf2c384d384b7d8732d0b36da726c66310ad3fea72feebd2b9af4542696cb494261233b6c8078e746862177cef890632 SHA512 cec75e3f3195b1b2eae02b2e9fbcd024afbef0a34d7f1d1edc3cc9c372e8d595c7289186abd273c43fc389675d35822cb6fbc515f97d22c6fc3036661012ab5a DIST qtconnectivity-everywhere-opensource-src-5.15.18.tar.xz 2807316 BLAKE2B 6e321ad64af9c33b1ddcbcd2cc23edaf2f871d47f1fab7d2685a83938c56fba2155b6d7a1b794d6e0be7655e16f7084786de71965ad4462ce970122bfd650704 SHA512 26f194965090dc44547b46a7ee73d3dc30d3817f213b809f2e2fb9596b2184e5fa276e600d706675ad0f19b0b421c0fc8e52afbc0b6a16eeff00c4c459027dca -EBUILD qtbluetooth-5.15.18.ebuild 692 BLAKE2B 86b2c4c3bd8873f259b7bdac7b30cc1c255604f6127d4a7bfc6f3847fd3064d409cb867e2951187edf15c48716a851747da3a4a5e48628a2dbb27d7aafd673a0 SHA512 c9a1a869996141743c017daae0cb2f2fd095b6f16ac1f9436ece7e22fe2f5720b3bef02bdaa6fd62a3b1c4818db9366c0874586bafe085391840a11d45a583f8 +EBUILD qtbluetooth-5.15.18.ebuild 709 BLAKE2B 81b2fda709be23ddceff16eed2b3eeb088a2b0451ab28bfdb07b104aff8e6be9b6b4a1cbc672a7ba354b37500b65862596babb2466352881e9529674a64ec673 SHA512 31beabf3bec7e6f1024b8a87e7a03282584673b92ba09062b4824d8fffa86b8ed986504b8df13811daa99d9549e52a319c11e74a8a67db6dbdb1cc08b0404ff6 MISC metadata.xml 562 BLAKE2B 89a71be78fc40c86d01afd963f8a8519410086f36b572707e8029ea58e900d7e9563eb1b94fec26c2e078395bfa9ef20149fd8c0b2a5d6c3699198890215ebe7 SHA512 85467596f68320b2cd8440f9587f88992d36915b906a5b9139b29e07a9db9ca31853ae7c379bf90e9178e407ab3e526187ed761cd8cfa155658491ef68bbcf30 diff --git a/dev-qt/qtbluetooth/qtbluetooth-5.15.18.ebuild b/dev-qt/qtbluetooth/qtbluetooth-5.15.18.ebuild index 199dd5ba..242a53d5 100644 --- a/dev-qt/qtbluetooth/qtbluetooth-5.15.18.ebuild +++ b/dev-qt/qtbluetooth/qtbluetooth-5.15.18.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,8 +12,8 @@ QT5_MODULE="qtconnectivity" inherit qt5-build DESCRIPTION="Bluetooth support library for the Qt5 framework" - IUSE="qml" +RESTRICT="mirror" DEPEND=" =dev-qt/qtconcurrent-${QT5_PV}* diff --git a/dev-qt/qtcore/Manifest b/dev-qt/qtcore/Manifest new file mode 100644 index 00000000..029d421f --- /dev/null +++ b/dev-qt/qtcore/Manifest @@ -0,0 +1,5 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 +EBUILD qtcore-5.15.18.ebuild 4345 BLAKE2B 636568d6098cebf854352ce25c53bb2feb35f9972773da9ff2dca9271699c699ba38249b2e187a96d080a216b516c26e25f65edf5116475b239737da1a68c17b SHA512 64bb812ae95c208ee1521bbace0eb102814998aee192e7b4ca6401d142abec678ab732dd0e1cdf62da6f9d553221e89ee1e1f3560bdbd035f8f08ed140619da8 +MISC metadata.xml 594 BLAKE2B 0cefc88e620290c30db5f52e6804c43541617009ba05cc517a5c8b1c4039be9af9991e6e5b893577da3df52a83b70bd9f07a8061c518e9b52fdfdeb93a7df17f SHA512 73036ec739b85ea13025828f2526bce9d9fa6a3db3578925e4a4294be92a15dbe0f3af4db206690e3e786237312b3a23cb028a15abdd216e251db849a381a5be diff --git a/dev-qt/qtcore/metadata.xml b/dev-qt/qtcore/metadata.xml new file mode 100644 index 00000000..2bc45aff --- /dev/null +++ b/dev-qt/qtcore/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Disable syscalls not available on Linux kernels older than 4.11 + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtcore/qtcore-5.15.18.ebuild b/dev-qt/qtcore/qtcore-5.15.18.ebuild new file mode 100644 index 00000000..759caf97 --- /dev/null +++ b/dev-qt/qtcore/qtcore-5.15.18.ebuild @@ -0,0 +1,162 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit linux-info flag-o-matic toolchain-funcs qt5-build + +DESCRIPTION="Cross-platform application development framework" +SLOT=5/${QT5_PV} +IUSE="icu old-kernel" +RESTRICT="mirror" # https://bugs.gentoo.org/958499 + +DEPEND=" + dev-libs/double-conversion:= + dev-libs/glib:2 + dev-libs/libpcre2[pcre16,unicode] + sys-libs/zlib:= + icu? ( dev-libs/icu:= ) + !icu? ( virtual/libiconv ) +" +RDEPEND="${DEPEND} + != -O2, so we need + # to unset F_S first, then explicitly set 2, to negate any default + # and anything set by the user if they're choosing 3 (or if they've + # modified GCC to set 3). + # + # Refs: + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105078 + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105709 + # https://bugreports.qt.io/browse/QTBUG-103782 + # bug #847145 + if tc-enables-fortify-source ; then + # We can't unconditionally do this b/c we fortify needs + # some level of optimisation. + filter-flags -D_FORTIFY_SOURCE=3 + # (Qt doesn't seem to respect CPPFLAGS?) + append-flags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 + fi + + qt5-build_src_prepare + + # workaround for a79a370c (...Annotate-QMutex-...patch) adding a header + qt5_syncqt_version +} + +src_configure() { + local myconf=( + $(qt_use icu) + $(qt_use !icu iconv) + ) + use old-kernel && myconf+=( + -no-feature-renameat2 # needs Linux 3.16, bug 669994 + -no-feature-getentropy # needs Linux 3.17, bug 669994 + -no-feature-statx # needs Linux 4.11, bug 672856 + ) + qt5-build_src_configure +} + +src_install() { + qt5-build_src_install + qt5_symlink_binary_to_path qmake 5 + + local flags=( + DBUS FREETYPE IMAGEFORMAT_JPEG IMAGEFORMAT_PNG + OPENGL OPENSSL SSL WIDGETS + ) + + for flag in ${flags[@]}; do + cat >> "${D}"/${QT5_HEADERDIR}/QtCore/qconfig.h <<- _EOF_ || die + + #if defined(QT_NO_${flag}) && defined(QT_${flag}) + # undef QT_NO_${flag} + #elif !defined(QT_NO_${flag}) && !defined(QT_${flag}) + # define QT_NO_${flag} + #endif + _EOF_ + done +} diff --git a/dev-qt/qtdatavis3d/Manifest b/dev-qt/qtdatavis3d/Manifest new file mode 100644 index 00000000..ec7ff23c --- /dev/null +++ b/dev-qt/qtdatavis3d/Manifest @@ -0,0 +1,3 @@ +DIST qtdatavis3d-everywhere-opensource-src-5.15.18.tar.xz 5169520 BLAKE2B 0a808174ce1e7404c9328178b75aa85e86fd9ca18b86f7ee083af1144b5ea393033b14a0b98532b9d6e4be64e3feb8a72c15708e491e19b2f21d1ba625f60d05 SHA512 877b1a15b382d1cfbe32cfbba2d4f7edd8ddc806bc801c23a2f310cc0e892953a63b05fa031f4d1b197013c6da8ea41945ccd2e53f2c1abb33b44414e89eaedf +EBUILD qtdatavis3d-5.15.18.ebuild 662 BLAKE2B a58fa34021d9d1c1108a51b1b21441b00d64929be938af5c4c3089f53ad133d35b9226b341a7ab402a58c83b16761c3a9696c0519b98f3403fdf3f6971da0262 SHA512 e34f02077ecf6b43296824fe4cbe7de9a40693628837e7f9d02047bf0f3451ec0ab15fc0df7144fa8f0032480aa32bb0bf70c92f74268f59fb73c40488d1eb55 +MISC metadata.xml 562 BLAKE2B 89a71be78fc40c86d01afd963f8a8519410086f36b572707e8029ea58e900d7e9563eb1b94fec26c2e078395bfa9ef20149fd8c0b2a5d6c3699198890215ebe7 SHA512 85467596f68320b2cd8440f9587f88992d36915b906a5b9139b29e07a9db9ca31853ae7c379bf90e9178e407ab3e526187ed761cd8cfa155658491ef68bbcf30 diff --git a/dev-qt/qtdatavis3d/metadata.xml b/dev-qt/qtdatavis3d/metadata.xml new file mode 100644 index 00000000..5ca99370 --- /dev/null +++ b/dev-qt/qtdatavis3d/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build QML/QtQuick bindings and imports + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtdatavis3d/qtdatavis3d-5.15.18.ebuild b/dev-qt/qtdatavis3d/qtdatavis3d-5.15.18.ebuild new file mode 100644 index 00000000..3f51132a --- /dev/null +++ b/dev-qt/qtdatavis3d/qtdatavis3d-5.15.18.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt5-build + +DESCRIPTION="3D data visualization library for the Qt5 framework" +LICENSE="GPL-3" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 ~arm arm64 x86" +fi + +IUSE="gles2-only qml" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}*[gles2-only=] + qml? ( =dev-qt/qtdeclarative-${QT5_PV}*[gles2-only=] ) +" +RDEPEND="${DEPEND}" + +src_prepare() { + # eliminate bogus dependency on qtwidgets + sed -i -e '/requires.*widgets/d' qtdatavis3d.pro || die + + qt_use_disable_mod qml quick \ + src/src.pro + + qt5-build_src_prepare +} diff --git a/dev-qt/qtdbus/Manifest b/dev-qt/qtdbus/Manifest new file mode 100644 index 00000000..ce81cd2e --- /dev/null +++ b/dev-qt/qtdbus/Manifest @@ -0,0 +1,5 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 +EBUILD qtdbus-5.15.18.ebuild 699 BLAKE2B 18a249ddb8d488f4c32e6b455490a8e81d8b6976ebe6b7f7ae15a823f285dd57fea54bddc000a88b697e0095864cec41c28485a002e8718c31a03f0cdb01c854 SHA512 b4e36668c53da1194f699b9d0af1ba73a38d47031e8ad1e0e11dc858ef786138574f0a252517fbad26b06236458ec70fc71eca9715810bb68dcce6882a49a8d4 +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qtdbus/metadata.xml b/dev-qt/qtdbus/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qtdbus/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtdbus/qtdbus-5.15.18.ebuild b/dev-qt/qtdbus/qtdbus-5.15.18.ebuild new file mode 100644 index 00000000..34b7ec31 --- /dev/null +++ b/dev-qt/qtdbus/qtdbus-5.15.18.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="Qt5 module for inter-process communication over the D-Bus protocol" + +IUSE=" " + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + sys-apps/dbus +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/dbus + src/tools/qdbusxml2cpp + src/tools/qdbuscpp2xml +) + +QT5_GENTOO_CONFIG=( + :dbus + :dbus-linked: +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :dbus + :dbus-linked +) + +src_configure() { + local myconf=( + -dbus-linked + ) + qt5-build_src_configure +} diff --git a/dev-qt/qtdeclarative/Manifest b/dev-qt/qtdeclarative/Manifest new file mode 100644 index 00000000..6c5e9599 --- /dev/null +++ b/dev-qt/qtdeclarative/Manifest @@ -0,0 +1,7 @@ +AUX qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch 1566 BLAKE2B b6436c9be0a7de092635e1fc3999c3142fc3e916cbcc69f472691bbd559f611b4d5741f3627c47162a5ac86126382507add72a25a121235e856b1de802ee19be SHA512 dd5193f8d8a051238dabf63306cc77e3a5696fc12241c27f35cadfd30763ddfeb2af7d640849dcc7a810b7087173b8e9af17341ea1b68440906f2c2f1f96fee3 +AUX qtdeclarative-5.15.18-CVE-2025-12385.patch 4265 BLAKE2B fbe76a2dae5c8dc01bdd5453bad026d367fc18adc7d3a5c25af238d6562b069eba643eb3f68f8594bd62cd95a8e7cda4e53d006ac8d10812899a12cb0d812b3b SHA512 0bb3df9e215fcf8aa0b3eb016d0118dabb360446e5b080a0204fde55b1c880ab017f2085d934fbb9eae05fe1cd9bf4a4ef85cfa1f8ba75eb9fa52026a16c96cd +DIST qtdeclarative-5.15.18-gentoo-kde-1.tar.xz 19304 BLAKE2B ec246d080eeeeeedb3d358c322faf8392cd106ffb6a0cda2ccbe1fd3776e7fdd2d76c8d8cd56e954b8fa11b466a6b6592e6134a8ba771b1433ba74c9fa0e00cd SHA512 f7636a405a0602b476bc4034382b275c14e3e7d166314042c7ea6bfb79f30aba7c79b540c4ec2352bb2e7fbed51b5bab52ddbf6458a579c9ba4fa2d6aad30a55 +DIST qtdeclarative-everywhere-opensource-src-5.15.18.tar.xz 21588352 BLAKE2B 9daf4a86e39db46d12350cc2e17cba1d23c8777a5c3193a76bd66c68ff252c94d616717a4b13cebe25707a6acd42084a1a02d372862d0b0f7418373b267be94b SHA512 73c45c47b5074b6bc1127abb1b3cf1cd751deeb80c2f9c86a675c7323fecf20bd83363fad95803bc72cf494ae4679c1f38a02387363f266c093c707e700c9ea2 +EBUILD qtdeclarative-5.15.18-r1.ebuild 1670 BLAKE2B 8a0b114fc36908c39acfa4d240df38f3707a56d761a2a546904fd3908e76eeda3e9884ac08f046ab711264f4883da54e1878ff82aa9ff66aab6033ea3151a5b5 SHA512 aca2e703c12551e68cdbe992dde667f8a38e85b66b929e57a614dac3563e2fd59b14f4fe200105d7e0ed4202f601bdc90827a9a526228188dce57bb33cd3aaa2 +EBUILD qtdeclarative-5.15.18.ebuild 1530 BLAKE2B 49893dc1f7386a0c3d76dd1c146d829e4112e59a71cd9669c2bf2f908c212381fcda895a442a0ca58a6a06b1a2e12cf6bd9b5525da3a05d076e02f079bd5c03c SHA512 fe3da6ede3e6bc616be64fd041e7c2633f67603309c9cf992a23fdd4126fcfbd11bbb6d3ef8dc8191d5b320dc25330fcc0b4d533c2ca06754795089cf8e38e8e +MISC metadata.xml 702 BLAKE2B f6d93778db82421bcdd6d4fcbfe62f018922813bcdb193ef56310ed3e119aa49cef1d218b223473eb579c0077730e867bc91628e9b5efd06ffec286dd8123802 SHA512 339e79da3a17b6d9bdebfaab445af15c04a27105c6589dc389bda4f1f2b8b713c917ada52b4812dafd3c319e4c3a607e323da62ba7951780f05a1e2fe38986e3 diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch b/dev-qt/qtdeclarative/files/qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch new file mode 100644 index 00000000..c9ccb211 --- /dev/null +++ b/dev-qt/qtdeclarative/files/qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch @@ -0,0 +1,42 @@ +From cc5387ad22ca503d167fd66e2429107d45b937af Mon Sep 17 00:00:00 2001 +From: David Redondo +Date: Wed, 13 May 2020 11:04:23 +0200 +Subject: [PATCH] QQuickItemView: Fix max(X/Y)Extent() + +QQuickFlickable maxXExtent() and maxYExtent() return the amount of space +that is not shown when inside a ScrollView. QQuickItemView however just +returned width() if vertical and height() if horizontal. In these cases +just defer to the QQuickFlickable base implementation like minXExtent() +and minYExtent() already do. + +Fixes: QTBUG-83890 +Pick-to: 5.15 +Change-Id: I7f4060c2f46ae07611bedceca0d322c5f7f6affb +--- + src/quick/items/qquickitemview.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp +index 7fb392233e4..ab130ac6857 100644 +--- a/src/quick/items/qquickitemview.cpp ++++ b/src/quick/items/qquickitemview.cpp +@@ -1393,7 +1393,7 @@ qreal QQuickItemView::maxYExtent() const + { + Q_D(const QQuickItemView); + if (d->layoutOrientation() == Qt::Horizontal) +- return height(); ++ return QQuickFlickable::maxYExtent(); + + if (d->vData.maxExtentDirty) { + d->maxExtent = d->maxExtentForAxis(d->vData, false); +@@ -1421,7 +1421,7 @@ qreal QQuickItemView::maxXExtent() const + { + Q_D(const QQuickItemView); + if (d->layoutOrientation() == Qt::Vertical) +- return width(); ++ return QQuickFlickable::maxXExtent(); + + if (d->hData.maxExtentDirty) { + d->maxExtent = d->maxExtentForAxis(d->hData, true); +-- +2.16.3 diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-5.15.18-CVE-2025-12385.patch b/dev-qt/qtdeclarative/files/qtdeclarative-5.15.18-CVE-2025-12385.patch new file mode 100644 index 00000000..5d9393b7 --- /dev/null +++ b/dev-qt/qtdeclarative/files/qtdeclarative-5.15.18-CVE-2025-12385.patch @@ -0,0 +1,91 @@ +From f78bc0b2c6884fd730bf34a931870d67936cf01d Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid +Date: Sun, 7 Dec 2025 11:44:35 +0100 +Subject: [PATCH] Increase robustness of tag in Text component + +For Text.StyledText, there was no protection against tags +with very large widths or heights. This could cause an application +to spend a very long time processing a layout and sometimes crash +if the size was too large. + +We reuse the internal coord limit in QPainter as our maximum size +here, similar to what we do in Qt Svg for instance. + +For Text.RichText, there were no issues in release builds, but in +debug builds, you could trigger an overflow assert when rounding +the number if it exceeded INT_MAX. For this, we simply cap the +width and height at INT_MAX. + +Fixes: QTBUG-141515 +Pick-to: 5.15 +Change-Id: I4bcba16158f5f495a0de38963316effc4c46aae1 +Reviewed-by: Eirik Aavitsland +(cherry picked from commit 4aaf9bf21f7cc69d73066785e254b664fcc82025) +Reviewed-by: Qt Cherry-pick Bot +(cherry picked from commit 907c7ceb7b27586039262567273efd5ec79e6202) +(cherry picked from commit c4b74f27058b302a101befc2c1967f8c00b41be7) + +This is actually a manual patch based on +https://download.qt.io/official_releases/qt/6.5/CVE-2025-12385-qtdeclarative-6.5-0002.diff +--- + src/quick/items/qquicktextdocument.cpp | 4 ++-- + src/quick/util/qquickstyledtext.cpp | 19 +++++++++++++++++-- + 2 files changed, 19 insertions(+), 4 deletions(-) + +diff --git a/src/quick/items/qquicktextdocument.cpp b/src/quick/items/qquicktextdocument.cpp +index 021bbca0f6..67ed63d0de 100644 +--- a/src/quick/items/qquicktextdocument.cpp ++++ b/src/quick/items/qquicktextdocument.cpp +@@ -138,9 +138,9 @@ QSizeF QQuickTextDocumentWithImageResources::intrinsicSize( + if (format.isImageFormat()) { + QTextImageFormat imageFormat = format.toImageFormat(); + +- const int width = qRound(imageFormat.width()); ++ int width = qRound(qBound(qreal(INT_MIN), imageFormat.width(), qreal(INT_MAX))); + const bool hasWidth = imageFormat.hasProperty(QTextFormat::ImageWidth) && width > 0; +- const int height = qRound(imageFormat.height()); ++ const int height = qRound(qBound(qreal(INT_MIN), imageFormat.height(), qreal(INT_MAX))); + const bool hasHeight = imageFormat.hasProperty(QTextFormat::ImageHeight) && height > 0; + + QSizeF size(width, height); +diff --git a/src/quick/util/qquickstyledtext.cpp b/src/quick/util/qquickstyledtext.cpp +index a25af90414..120a2593d3 100644 +--- a/src/quick/util/qquickstyledtext.cpp ++++ b/src/quick/util/qquickstyledtext.cpp +@@ -45,6 +45,11 @@ + #include + #include "qquickstyledtext_p.h" + #include ++#include ++ ++#ifndef QQUICKSTYLEDPARSER_COORD_LIMIT ++# define QQUICKSTYLEDPARSER_COORD_LIMIT QT_RASTER_COORD_LIMIT ++#endif + + Q_LOGGING_CATEGORY(lcStyledText, "qt.quick.styledtext") + +@@ -694,9 +699,19 @@ void QQuickStyledTextPrivate::parseImageAttributes(const QChar *&ch, const QStri + if (attr.first == QLatin1String("src")) { + image->url = QUrl(attr.second.toString()); + } else if (attr.first == QLatin1String("width")) { +- image->size.setWidth(attr.second.toString().toInt()); ++ bool ok; ++ int v = attr.second.toString().toInt(&ok); ++ if (ok && v <= QQUICKSTYLEDPARSER_COORD_LIMIT) ++ image->size.setWidth(v); ++ else ++ qCWarning(lcStyledText) << "Invalid width provided for "; + } else if (attr.first == QLatin1String("height")) { +- image->size.setHeight(attr.second.toString().toInt()); ++ bool ok; ++ int v = attr.second.toString().toInt(&ok); ++ if (ok && v <= QQUICKSTYLEDPARSER_COORD_LIMIT) ++ image->size.setHeight(v); ++ else ++ qCWarning(lcStyledText) << "Invalid height provided for "; + } else if (attr.first == QLatin1String("align")) { + if (attr.second.toString() == QLatin1String("top")) { + image->align = QQuickStyledTextImgTag::Top; +-- +2.52.0 + diff --git a/dev-qt/qtdeclarative/metadata.xml b/dev-qt/qtdeclarative/metadata.xml new file mode 100644 index 00000000..6d332b25 --- /dev/null +++ b/dev-qt/qtdeclarative/metadata.xml @@ -0,0 +1,22 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build the LocalStorage import for QtQuick (requires QtSql) + Enable QtWidgets support + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtdeclarative + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtdeclarative/qtdeclarative-5.15.18-r1.ebuild b/dev-qt/qtdeclarative/qtdeclarative-5.15.18-r1.ebuild new file mode 100644 index 00000000..a7e398b9 --- /dev/null +++ b/dev-qt/qtdeclarative/qtdeclarative-5.15.18-r1.ebuild @@ -0,0 +1,69 @@ +# Copyright 2009-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +PYTHON_COMPAT=( python3_{11..14} ) +inherit flag-o-matic python-any-r1 qt5-build + +DESCRIPTION="The QML and Quick modules for the Qt5 framework" + +IUSE="cpu_flags_x86_sse2 gles2-only +jit localstorage vulkan +widgets" +REQUIRED_USE="jit? ( x86? ( cpu_flags_x86_sse2 ) )" + +# qtgui[gles2-only=] is needed because of bug 504322 +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}*:5=[gles2-only=,vulkan=] + =dev-qt/qtnetwork-${QT5_PV}* + =dev-qt/qttest-${QT5_PV}* + media-libs/libglvnd + localstorage? ( =dev-qt/qtsql-${QT5_PV}* ) + widgets? ( =dev-qt/qtwidgets-${QT5_PV}*[gles2-only=] ) +" +RDEPEND="${DEPEND}" +BDEPEND="${PYTHON_DEPS}" + +PATCHES=( + "${FILESDIR}/${PN}-5.14.2-QQuickItemView-fix-maxXY-extent.patch" # QTBUG-83890 + "${FILESDIR}/${P}-CVE-2025-12385.patch" # bug 966269, QTBUG-141515 +) + +src_prepare() { + qt_use_disable_mod localstorage sql \ + src/imports/imports.pro + + qt_use_disable_mod widgets widgets \ + src/src.pro \ + src/qmltest/qmltest.pro \ + tests/auto/auto.pro \ + tools/tools.pro \ + tools/qmlscene/qmlscene.pro \ + tools/qml/qml.pro + + qt5-build_src_prepare +} + +src_configure() { + replace-flags "-Os" "-O2" # bug 840861 + + local myqmakeargs=( + -- + -qml-debug + $(qt_use jit feature-qml-jit) + ) + qt5-build_src_configure +} + +src_install() { + qt5-build_src_install + qt5_symlink_binary_to_path qml 5 + qt5_symlink_binary_to_path qmleasing 5 + qt5_symlink_binary_to_path qmlpreview 5 + qt5_symlink_binary_to_path qmlscene 5 +} diff --git a/dev-qt/qtdeclarative/qtdeclarative-5.15.18.ebuild b/dev-qt/qtdeclarative/qtdeclarative-5.15.18.ebuild new file mode 100644 index 00000000..56171dbd --- /dev/null +++ b/dev-qt/qtdeclarative/qtdeclarative-5.15.18.ebuild @@ -0,0 +1,67 @@ +# Copyright 2009-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +PYTHON_COMPAT=( python3_{8..14} ) +inherit flag-o-matic python-any-r1 qt5-build + +DESCRIPTION="The QML and Quick modules for the Qt5 framework" + +IUSE="gles2-only +jit localstorage vulkan +widgets" + +# qtgui[gles2-only=] is needed because of bug 504322 +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}*:5=[gles2-only=,vulkan=] + =dev-qt/qtnetwork-${QT5_PV}* + =dev-qt/qttest-${QT5_PV}* + media-libs/libglvnd + localstorage? ( =dev-qt/qtsql-${QT5_PV}* ) + widgets? ( =dev-qt/qtwidgets-${QT5_PV}*[gles2-only=] ) +" +RDEPEND="${DEPEND}" +BDEPEND="${PYTHON_DEPS}" + +PATCHES=( + "${FILESDIR}/${PN}-5.14.2-QQuickItemView-fix-maxXY-extent.patch" # QTBUG-83890 +) + +src_prepare() { + qt_use_disable_mod localstorage sql \ + src/imports/imports.pro + + qt_use_disable_mod widgets widgets \ + src/src.pro \ + src/qmltest/qmltest.pro \ + tests/auto/auto.pro \ + tools/tools.pro \ + tools/qmlscene/qmlscene.pro \ + tools/qml/qml.pro + + qt5-build_src_prepare +} + +src_configure() { + replace-flags "-Os" "-O2" # bug 840861 + + local myqmakeargs=( + -- + -qml-debug + $(qt_use jit feature-qml-jit) + ) + qt5-build_src_configure +} + +src_install() { + qt5-build_src_install + qt5_symlink_binary_to_path qml 5 + qt5_symlink_binary_to_path qmleasing 5 + qt5_symlink_binary_to_path qmlpreview 5 + qt5_symlink_binary_to_path qmlscene 5 +} diff --git a/dev-qt/qtdiag/Manifest b/dev-qt/qtdiag/Manifest new file mode 100644 index 00000000..b1519ce8 --- /dev/null +++ b/dev-qt/qtdiag/Manifest @@ -0,0 +1,4 @@ +DIST qttools-5.15.18-gentoo-kde-1.tar.xz 2336 BLAKE2B 0ddc602b0b0edddbd7ff5cb435a6ab63ea4c9a159513c3b42e553ad68fb297239893b1d55e1ed1ff143d7af624e4d47cd07e5e2e564f4fe022b987b589f8d05d SHA512 e96f2d01a3526b1ebc3fb9afd04a38b42336d159961f53e348798cd0c4548abdae96569b670521b077daaf2fd64a29eedf9dd3b0cb7a131d5ec77deaec37cb5e +DIST qttools-everywhere-opensource-src-5.15.18.tar.xz 8876416 BLAKE2B f546692ac9faccd617838432c001f7d574c7137ff44326d6d1e207a3eea913592c7857a15c91cbbadf0451512c256f4a99d43694b35f84fc758aa2a55118be75 SHA512 30a278df553ff3bb64927a4a5be0370b070131ec2970410095b4618e6a0f6e7c45374abf37c458b69dd9e4f7cecb98289b8e777cf5bc85b09f0b5cd278a40a70 +EBUILD qtdiag-5.15.18.ebuild 827 BLAKE2B bb98d3ad6fd6ee611d869159bc7abc1d5958baa36a0927024eb04e8d88d8db42cb4ecf0b14705565dcd581a3e130ad757d21f482e5dfd55447f9366251482696 SHA512 61a9f95de12b2e74756ce0ee7b613441b36f673457e5e4911abada806c8f7ffb900f8fcdba7a8c9e411ecbf193afea2dff0c70714a3b6cae9469581e535ee3dc +MISC metadata.xml 616 BLAKE2B c2e815f14a4c3967140cfeed9d4266b668217994cbdbc58300e3736b428f05449d83ae6ed746bb29debaaa1ab8371a37c054d03395be1f7b66e23c3209449a20 SHA512 8747ad7226372dc06c7e6b44afa0c5cf20a7fb877974c67bf4f599b6ffafff292f3c8a2a80243f6243dcc4c158034dc731451e3af9af8790a302c43ae83907fa diff --git a/dev-qt/qtdiag/metadata.xml b/dev-qt/qtdiag/metadata.xml new file mode 100644 index 00000000..82e09180 --- /dev/null +++ b/dev-qt/qtdiag/metadata.xml @@ -0,0 +1,21 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Report network information + Report widget style information + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtdiag/qtdiag-5.15.18.ebuild b/dev-qt/qtdiag/qtdiag-5.15.18.ebuild new file mode 100644 index 00000000..ccea61fe --- /dev/null +++ b/dev-qt/qtdiag/qtdiag-5.15.18.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 ~arm ~hppa ~ppc64 x86" +fi + +QT5_MODULE="qttools" +inherit qt5-build + +DESCRIPTION="Tool for reporting diagnostic information about Qt and its environment" + +IUSE="+network +widgets" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*:5= + network? ( =dev-qt/qtnetwork-${QT5_PV}*[ssl] ) + widgets? ( =dev-qt/qtwidgets-${QT5_PV}* ) +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/qtdiag +) + +src_prepare() { + qt_use_disable_mod network network \ + src/qtdiag/qtdiag.pro + + qt_use_disable_mod widgets widgets \ + src/qtdiag/qtdiag.pro + + qt5-build_src_prepare +} + +src_install() { + qt5-build_src_install + qt5_symlink_binary_to_path qtdiag 5 +} diff --git a/dev-qt/qtgraphicaleffects/Manifest b/dev-qt/qtgraphicaleffects/Manifest new file mode 100644 index 00000000..9c93ed29 --- /dev/null +++ b/dev-qt/qtgraphicaleffects/Manifest @@ -0,0 +1,3 @@ +DIST qtgraphicaleffects-everywhere-opensource-src-5.15.18.tar.xz 14021560 BLAKE2B 20c197be8ef578bc06bbf229daa0f62061f379728a064acf18d447e51df5f4e51d06d9a61f00ac7c39a582c906a1874576f8f3787595f7fe0cfb90a190e2d12e SHA512 6fff9181d8d0a4f55987e2b219d35adf4db28429206e4ec0572a03664c155aea046a08a1d820fbc5d27f9f3ec4c60768823959c5839766ab2768f64c440273da +EBUILD qtgraphicaleffects-5.15.18.ebuild 474 BLAKE2B 81a2c92f0aa7f13d0b99d5e1aab2194ec0d2f285ea4af914dba8bc2a3fb6a76451c5e897413ccbd09418ad1a32c17ebd52400d40a3ede0ea9943ed3ed8e8417e SHA512 4caed4e492e98afc4782e415082aade20be05b9c461fb3bf9ffb287200966826a6fda7acf607806830030946f106855deaefe8fd666ed2e2e3bebc61487aac9a +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qtgraphicaleffects/metadata.xml b/dev-qt/qtgraphicaleffects/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qtgraphicaleffects/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtgraphicaleffects/qtgraphicaleffects-5.15.18.ebuild b/dev-qt/qtgraphicaleffects/qtgraphicaleffects-5.15.18.ebuild new file mode 100644 index 00000000..04237ac5 --- /dev/null +++ b/dev-qt/qtgraphicaleffects/qtgraphicaleffects-5.15.18.ebuild @@ -0,0 +1,22 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VIRTUALX_REQUIRED="test" +inherit qt5-build + +DESCRIPTION="Set of QML types for adding visual effects to user interfaces" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +IUSE=" " + +RDEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtdeclarative-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}* +" +DEPEND="${RDEPEND}" diff --git a/dev-qt/qtgui/Manifest b/dev-qt/qtgui/Manifest new file mode 100644 index 00000000..9ccfbe43 --- /dev/null +++ b/dev-qt/qtgui/Manifest @@ -0,0 +1,6 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 +EBUILD qtgui-5.15.18-r1.ebuild 3993 BLAKE2B 4f509fe626676ffcda6ef9c0af13814088009247184d62d50a85e53173dba8cfd16e70b4c85cc92a3a06417b554b275b3ea4b85c51a486761260a49046e18136 SHA512 de32968fdddae993a146860f1636ccb43a3dbb7f06abd19610b9de1662f31ae9b7eaf4ab6c7a97e63c74a7fdb2164c7f7e1acef00cbd2aa47861e39046255f64 +EBUILD qtgui-5.15.18.ebuild 3979 BLAKE2B a5f673a9c24a93dc003f7310ef312edf7d4f38c1f26499c84bd08b0d17d237392416bccbc3ce0b3e38d622b7e372c618d6c562afb775e14c4be61e6a12d915c6 SHA512 607e53d9611ae6992e112c185ea3e210d2651fa47736cc2de031378be0b97034cb0bfe1f5d37c6c98fa9e039d1c20caf042d0aed283ba7c6dab21dd2f0b4d4f1 +MISC metadata.xml 1283 BLAKE2B 2d4873f1b7011f5766810866933cd897a68a89d93183b93c19008b9b956aa10e882ebc061f0a86c81d68308bb267d28f324f2cddc52b55d94c4201a7b97ce889 SHA512 551b643e0dec5fcfd934029e36f35d8e14479e7d426dc74d4b48522c6e06d989ae70db7c4cd0a67594551916ec59036f3d1db91afa929e454614a947464ed19c diff --git a/dev-qt/qtgui/metadata.xml b/dev-qt/qtgui/metadata.xml new file mode 100644 index 00000000..55e237a8 --- /dev/null +++ b/dev-qt/qtgui/metadata.xml @@ -0,0 +1,28 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build the EGL Full Screen/Single Surface platform plugin + Enable support for input devices via evdev + Build the IBus input method plugin + Enable support for input devices via dev-libs/libinput + Enable Linux framebuffer support for embedded devices + Enable support for touchscreen devices via x11-libs/tslib + Build plugin to receive touch events over the TUIO protocol + Provide dev-qt/qtwayland to ensure Qt applications can be run as Wayland clients + Build the XCB platform plugin and enable X11 integration + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtgui/qtgui-5.15.18-r1.ebuild b/dev-qt/qtgui/qtgui-5.15.18-r1.ebuild new file mode 100644 index 00000000..5e78429e --- /dev/null +++ b/dev-qt/qtgui/qtgui-5.15.18-r1.ebuild @@ -0,0 +1,181 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="The GUI module and platform plugins for the Qt5 framework" + +SLOT=5/${QT5_PV} # bug 707658 +IUSE="accessibility dbus egl eglfs evdev gles2-only ibus jpeg +libinput + linuxfb +png tslib tuio +udev vnc vulkan wayland +X" +REQUIRED_USE=" + || ( eglfs linuxfb vnc wayland X ) + accessibility? ( dbus X ) + eglfs? ( egl ) + ibus? ( dbus ) + libinput? ( udev ) + X? ( gles2-only? ( egl ) ) +" + +RDEPEND=" + dev-libs/glib:2 + dev-libs/md4c + =dev-qt/qtcore-${QT5_PV}*:5= + dev-util/gtk-update-icon-cache + media-libs/fontconfig + media-libs/freetype:2 + media-libs/harfbuzz:= + virtual/zlib:= + accessibility? ( app-accessibility/at-spi2-core:2 ) + dbus? ( =dev-qt/qtdbus-${QT5_PV}* ) + eglfs? ( + media-libs/mesa[gbm(+)] + x11-libs/libdrm + ) + evdev? ( sys-libs/mtdev ) + jpeg? ( media-libs/libjpeg-turbo:= ) + gles2-only? ( media-libs/libglvnd ) + !gles2-only? ( media-libs/libglvnd[X] ) + libinput? ( + dev-libs/libinput:= + x11-libs/libxkbcommon + ) + png? ( media-libs/libpng:= ) + tslib? ( >=x11-libs/tslib-1.21 ) + tuio? ( =dev-qt/qtnetwork-${QT5_PV}* ) + udev? ( virtual/libudev:= ) + vnc? ( =dev-qt/qtnetwork-${QT5_PV}* ) + vulkan? ( dev-util/vulkan-headers ) + X? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libxcb:= + x11-libs/libxkbcommon[X] + x11-libs/xcb-util-image + x11-libs/xcb-util-keysyms + x11-libs/xcb-util-renderutil + x11-libs/xcb-util-wm + ) +" +DEPEND="${RDEPEND} + evdev? ( sys-kernel/linux-headers ) + linuxfb? ( sys-kernel/linux-headers ) + udev? ( sys-kernel/linux-headers ) + X? ( x11-base/xorg-proto ) +" +PDEPEND=" + ibus? ( app-i18n/ibus ) + wayland? ( =dev-qt/qtwayland-${QT5_PV}* ) +" + +QT5_TARGET_SUBDIRS=( + src/tools/qvkgen + src/gui + src/openglextensions + src/platformheaders + src/platformsupport + src/plugins/generic + src/plugins/imageformats + src/plugins/platforms + src/plugins/platforminputcontexts +) + +QT5_GENTOO_CONFIG=( + accessibility:accessibility-atspi-bridge + egl:egl: + eglfs:eglfs: + eglfs:eglfs_egldevice: + eglfs:eglfs_gbm: + evdev:evdev: + evdev:mtdev: + :fontconfig: + :system-freetype:FREETYPE + !:no-freetype: + gles2-only::OPENGL_ES + gles2-only:opengles2:OPENGL_ES_2 + !:no-gui: + :system-harfbuzz: + !:no-harfbuzz: + jpeg:system-jpeg:IMAGEFORMAT_JPEG + !jpeg:no-jpeg: + libinput + libinput:xkbcommon: + :opengl + png:png: + png:system-png:IMAGEFORMAT_PNG + !png:no-png: + tslib:tslib: + udev:libudev: + vulkan:vulkan: + X:xcb: + X:xcb-glx: + X:xcb-plugin: + X:xcb-render: + X:xcb-sm: + X:xcb-xlib: + X:xcb-xinput: +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :gui +) + +src_prepare() { + # don't add -O3 to CXXFLAGS, bug 549140 + sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/gui/gui.pro || die + + # egl_x11 is activated when both egl and X are enabled + use egl && QT5_GENTOO_CONFIG+=(X:egl_x11:) || QT5_GENTOO_CONFIG+=(egl:egl_x11:) + + qt_use_disable_config dbus dbus \ + src/platformsupport/themes/genericunix/genericunix.pri + + qt_use_disable_config tuio tuiotouch src/plugins/generic/generic.pro + + qt_use_disable_mod ibus dbus \ + src/plugins/platforminputcontexts/platforminputcontexts.pro + + use vnc || sed -i -e '/SUBDIRS += vnc/d' \ + src/plugins/platforms/platforms.pro || die + + qt5-build_src_prepare +} + +src_configure() { + local myconf=( + $(qt_use accessibility feature-accessibility-atspi-bridge) + $(usev dbus -dbus-linked) + $(qt_use egl) + $(qt_use eglfs) + $(usev eglfs '-gbm -kms') + $(qt_use evdev) + $(qt_use evdev mtdev) + -fontconfig + -system-freetype + -gui + -system-harfbuzz + $(qt_use jpeg libjpeg system) + $(qt_use libinput) + $(qt_use linuxfb) + -opengl $(usex gles2-only es2 desktop) + $(qt_use png libpng system) + $(qt_use tslib) + $(qt_use udev libudev) + $(qt_use vulkan) + $(qt_use X xcb) + $(usev X '-xcb-xlib') + ) + if use libinput || use X; then + myconf+=( -xkbcommon ) + fi + qt5-build_src_configure +} diff --git a/dev-qt/qtgui/qtgui-5.15.18.ebuild b/dev-qt/qtgui/qtgui-5.15.18.ebuild new file mode 100644 index 00000000..608289da --- /dev/null +++ b/dev-qt/qtgui/qtgui-5.15.18.ebuild @@ -0,0 +1,180 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="The GUI module and platform plugins for the Qt5 framework" + +SLOT=5/${QT5_PV} # bug 707658 +IUSE="accessibility dbus egl eglfs evdev gles2-only ibus jpeg +libinput + linuxfb +png tslib tuio +udev vnc vulkan wayland +X" +REQUIRED_USE=" + || ( eglfs linuxfb vnc wayland X ) + accessibility? ( dbus X ) + eglfs? ( egl ) + ibus? ( dbus ) + libinput? ( udev ) + X? ( gles2-only? ( egl ) ) +" + +RDEPEND=" + dev-libs/glib:2 + =dev-qt/qtcore-${QT5_PV}*:5= + dev-util/gtk-update-icon-cache + media-libs/fontconfig + media-libs/freetype:2 + media-libs/harfbuzz:= + sys-libs/zlib:= + accessibility? ( app-accessibility/at-spi2-core:2 ) + dbus? ( =dev-qt/qtdbus-${QT5_PV}* ) + eglfs? ( + media-libs/mesa[gbm(+)] + x11-libs/libdrm + ) + evdev? ( sys-libs/mtdev ) + jpeg? ( media-libs/libjpeg-turbo:= ) + gles2-only? ( media-libs/libglvnd ) + !gles2-only? ( media-libs/libglvnd[X] ) + libinput? ( + dev-libs/libinput:= + x11-libs/libxkbcommon + ) + png? ( media-libs/libpng:= ) + tslib? ( >=x11-libs/tslib-1.21 ) + tuio? ( =dev-qt/qtnetwork-${QT5_PV}* ) + udev? ( virtual/libudev:= ) + vnc? ( =dev-qt/qtnetwork-${QT5_PV}* ) + vulkan? ( dev-util/vulkan-headers ) + X? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libxcb:= + x11-libs/libxkbcommon[X] + x11-libs/xcb-util-image + x11-libs/xcb-util-keysyms + x11-libs/xcb-util-renderutil + x11-libs/xcb-util-wm + ) +" +DEPEND="${RDEPEND} + evdev? ( sys-kernel/linux-headers ) + linuxfb? ( sys-kernel/linux-headers ) + udev? ( sys-kernel/linux-headers ) + X? ( x11-base/xorg-proto ) +" +PDEPEND=" + ibus? ( app-i18n/ibus ) + wayland? ( =dev-qt/qtwayland-${QT5_PV}* ) +" + +QT5_TARGET_SUBDIRS=( + src/tools/qvkgen + src/gui + src/openglextensions + src/platformheaders + src/platformsupport + src/plugins/generic + src/plugins/imageformats + src/plugins/platforms + src/plugins/platforminputcontexts +) + +QT5_GENTOO_CONFIG=( + accessibility:accessibility-atspi-bridge + egl:egl: + eglfs:eglfs: + eglfs:eglfs_egldevice: + eglfs:eglfs_gbm: + evdev:evdev: + evdev:mtdev: + :fontconfig: + :system-freetype:FREETYPE + !:no-freetype: + gles2-only::OPENGL_ES + gles2-only:opengles2:OPENGL_ES_2 + !:no-gui: + :system-harfbuzz: + !:no-harfbuzz: + jpeg:system-jpeg:IMAGEFORMAT_JPEG + !jpeg:no-jpeg: + libinput + libinput:xkbcommon: + :opengl + png:png: + png:system-png:IMAGEFORMAT_PNG + !png:no-png: + tslib:tslib: + udev:libudev: + vulkan:vulkan: + X:xcb: + X:xcb-glx: + X:xcb-plugin: + X:xcb-render: + X:xcb-sm: + X:xcb-xlib: + X:xcb-xinput: +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :gui +) + +src_prepare() { + # don't add -O3 to CXXFLAGS, bug 549140 + sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/gui/gui.pro || die + + # egl_x11 is activated when both egl and X are enabled + use egl && QT5_GENTOO_CONFIG+=(X:egl_x11:) || QT5_GENTOO_CONFIG+=(egl:egl_x11:) + + qt_use_disable_config dbus dbus \ + src/platformsupport/themes/genericunix/genericunix.pri + + qt_use_disable_config tuio tuiotouch src/plugins/generic/generic.pro + + qt_use_disable_mod ibus dbus \ + src/plugins/platforminputcontexts/platforminputcontexts.pro + + use vnc || sed -i -e '/SUBDIRS += vnc/d' \ + src/plugins/platforms/platforms.pro || die + + qt5-build_src_prepare +} + +src_configure() { + local myconf=( + $(qt_use accessibility feature-accessibility-atspi-bridge) + $(usev dbus -dbus-linked) + $(qt_use egl) + $(qt_use eglfs) + $(usev eglfs '-gbm -kms') + $(qt_use evdev) + $(qt_use evdev mtdev) + -fontconfig + -system-freetype + -gui + -system-harfbuzz + $(qt_use jpeg libjpeg system) + $(qt_use libinput) + $(qt_use linuxfb) + -opengl $(usex gles2-only es2 desktop) + $(qt_use png libpng system) + $(qt_use tslib) + $(qt_use udev libudev) + $(qt_use vulkan) + $(qt_use X xcb) + $(usev X '-xcb-xlib') + ) + if use libinput || use X; then + myconf+=( -xkbcommon ) + fi + qt5-build_src_configure +} diff --git a/dev-qt/qthelp/Manifest b/dev-qt/qthelp/Manifest new file mode 100644 index 00000000..a0696d27 --- /dev/null +++ b/dev-qt/qthelp/Manifest @@ -0,0 +1,4 @@ +DIST qttools-5.15.18-gentoo-kde-1.tar.xz 2336 BLAKE2B 0ddc602b0b0edddbd7ff5cb435a6ab63ea4c9a159513c3b42e553ad68fb297239893b1d55e1ed1ff143d7af624e4d47cd07e5e2e564f4fe022b987b589f8d05d SHA512 e96f2d01a3526b1ebc3fb9afd04a38b42336d159961f53e348798cd0c4548abdae96569b670521b077daaf2fd64a29eedf9dd3b0cb7a131d5ec77deaec37cb5e +DIST qttools-everywhere-opensource-src-5.15.18.tar.xz 8876416 BLAKE2B f546692ac9faccd617838432c001f7d574c7137ff44326d6d1e207a3eea913592c7857a15c91cbbadf0451512c256f4a99d43694b35f84fc758aa2a55118be75 SHA512 30a278df553ff3bb64927a4a5be0370b070131ec2970410095b4618e6a0f6e7c45374abf37c458b69dd9e4f7cecb98289b8e777cf5bc85b09f0b5cd278a40a70 +EBUILD qthelp-5.15.18.ebuild 625 BLAKE2B b2f4cae942751d0d966f7bfc341fe979f5f48f7302749ffcfe2193aaa48b228441bee135ac0006614e6410ac6325279c713d8795eceebaaafeeeed114cafbb04 SHA512 1f2037a01a3a292722355e2da493b1001993e4fc25de7a12f08a4e89d1e2636fd72def699b02d30f8b125122a6fb9b8ebaa51fe361523c1ddbe4ad01be292ca9 +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qthelp/metadata.xml b/dev-qt/qthelp/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qthelp/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qthelp/qthelp-5.15.18.ebuild b/dev-qt/qthelp/qthelp-5.15.18.ebuild new file mode 100644 index 00000000..0ccde43a --- /dev/null +++ b/dev-qt/qthelp/qthelp-5.15.18.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qttools" +inherit qt5-build + +DESCRIPTION="Qt5 module for integrating online documentation into applications" + +IUSE=" " + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}* + =dev-qt/qtsql-${QT5_PV}*[sqlite] + =dev-qt/qtwidgets-${QT5_PV}* +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/assistant/help + src/assistant/qcollectiongenerator + src/assistant/qhelpgenerator +) diff --git a/dev-qt/qtimageformats/Manifest b/dev-qt/qtimageformats/Manifest new file mode 100644 index 00000000..e6142e9b --- /dev/null +++ b/dev-qt/qtimageformats/Manifest @@ -0,0 +1,4 @@ +DIST qtimageformats-5.15.18-gentoo-kde-1.tar.xz 2436 BLAKE2B 519f9171b4ca033062faba4595cb87b4f68c2d5baf544be3ae6f98e2fd17bfcd4fa5378bfe0c7f6144df35b27f5d7585ccc704b6799c19906221dbfcfd9cacab SHA512 9a99a784a6f049ff42b7b6cc8e7b13f8f0473f1fc92246d0289bfaa691a85dbf422310a2b593114629b9543f0090a696aaa21168ee7149f19fbbe547a479a729 +DIST qtimageformats-everywhere-opensource-src-5.15.18.tar.xz 1903016 BLAKE2B d57e3d8d20bd5835a1aec580f01f69a8659d644d997ed107325ffba6f160d783bf118d539ac02047680e022aab4a3f87ebdb0e26ba6cf763cad8088615b111e8 SHA512 5e8b0895e8b7aa05142ae21eee3f79fb289a8edf6eeed62a59be3ae60d164a2698344740ff283c753e9b61cd6af516d8c7301597762183222ceff0f4c8dddd46 +EBUILD qtimageformats-5.15.18.ebuild 697 BLAKE2B e376a37e5609366909748da4306bb27bb96f239b792d689949226485e76f8ab4b6dc10386854b0bdd705488e8d7997d425774275923ea558123078ed7a6a273a SHA512 06ea4306ac7eb2ca8953d4b0f06784ba7edbba6d86c8c7a29b09e1a8807a405e8b0248d225712832cbe2a66e310c784e7a0fb08a0cc8870f1828b61eed74e17a +MISC metadata.xml 539 BLAKE2B f82d2242ecd287674a2be5eae280a70ddca0e7c913ee5c86c7bf95c9a122c5d0d57006d5bd236afb5ef55b51d1bed6be5110c51e732fbe94ebe5b6e10fee89db SHA512 22e5e3417dc154092e816cdfe391fb7c6595532f506766da0d2ae44f8254453f57a00d0fb1b12f9d2fb10c8cec5561d85f3891991aeb2aedcd3696f2c3b31d4a diff --git a/dev-qt/qtimageformats/metadata.xml b/dev-qt/qtimageformats/metadata.xml new file mode 100644 index 00000000..120e744a --- /dev/null +++ b/dev-qt/qtimageformats/metadata.xml @@ -0,0 +1,18 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtimageformats + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtimageformats/qtimageformats-5.15.18.ebuild b/dev-qt/qtimageformats/qtimageformats-5.15.18.ebuild new file mode 100644 index 00000000..a927aeeb --- /dev/null +++ b/dev-qt/qtimageformats/qtimageformats-5.15.18.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc64 ~riscv x86" +fi + +inherit qt5-build + +DESCRIPTION="Additional format plugins for the Qt image I/O system" + +IUSE="mng" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}* + media-libs/libwebp:= + media-libs/tiff:= + mng? ( media-libs/libmng:= ) +" +RDEPEND="${DEPEND}" + +src_configure() { + sed -e 's/qtConfig(jasper)/false:/' \ + -i src/plugins/imageformats/imageformats.pro || die + qt_use_disable_config mng mng src/plugins/imageformats/imageformats.pro + + qt5-build_src_configure +} diff --git a/dev-qt/qtlockedfile/Manifest b/dev-qt/qtlockedfile/Manifest new file mode 100644 index 00000000..fee5f2c2 --- /dev/null +++ b/dev-qt/qtlockedfile/Manifest @@ -0,0 +1,4 @@ +AUX qtlockedfile.prf 190 BLAKE2B 254ba3ddc3708c72fdefa5f3a0be26f33752c7a00edbefebc46b8e39ae967064348bcf9e0b946428421d2c232a3d612838e7003352eb489f01a2597928ed4404 SHA512 efd51aa88a40ad5615d3ae9122a360997a3d32e3f212e7d9c1c2cf9e42984a1e4b9ccff02c6ddc1e8926104527004536ad848c5ef24bc28a93eb556d99235696 +DIST qt-solutions-20171024.tar.xz 710532 BLAKE2B 365f4c6fc3bee34bf26ac5039984ceac1d90527297b985b0d1b606f3ba67219bab7f7cba40b4adca55446c34e9f4fe218b4449ee255ba6f6409de78f80ccdaec SHA512 4784d88c2f40c88f06abeb728842875fb5e428a630dbf749f71055681b0c631803d2901b60aa8cc95f5f382dcd21da8d739873aa45e3dd3676ee95925f0198da +EBUILD qtlockedfile-2.4.1_p20171024.ebuild 1073 BLAKE2B 6bf126ce27cd7315a2bfb32d1537f3ccc6b281635bb6c29562e653ede6e6d4879d493a29cbcf7eb91df172eb4a85fa4a9236c85ba91202187e933ce6d3db0b6e SHA512 9aa76f3aafeab095d6c82e5d31a20a09bedec34460e4ba91dcd42c27bd7d3630b4939d725bd07bdfc4a383599a83713bc579182d175f2884d1ae18d8f2ce308b +MISC metadata.xml 248 BLAKE2B 51adf67bdc3e6c30f18cb7c177694882c71c1207bf4e6b88aa0eb8d5f6fdbaea0c364777967125219ba8ea4be4a9ad3eb41269a7139cb211ce26f2985ac103ac SHA512 c2976d1256f14d4dcf6ea53ed248a43e9b76530c19eefb0e586d64b1080b75d1f4ac17171c6c27a491ce6623d34e9318fcba5ce3f78039f21ccaabbebf209345 diff --git a/dev-qt/qtlockedfile/files/qtlockedfile.prf b/dev-qt/qtlockedfile/files/qtlockedfile.prf new file mode 100644 index 00000000..93d656e6 --- /dev/null +++ b/dev-qt/qtlockedfile/files/qtlockedfile.prf @@ -0,0 +1,6 @@ +INCLUDEPATH *= $$[QT_INSTALL_HEADERS]/QtSolutions +greaterThan(QT_MAJOR_VERSION, 4) { +LIBS *= -lQt$${QT_MAJOR_VERSION}Solutions_LockedFile-2.4 +} else { +LIBS *= -lQtSolutions_LockedFile-2.4 +} diff --git a/dev-qt/qtlockedfile/metadata.xml b/dev-qt/qtlockedfile/metadata.xml new file mode 100644 index 00000000..610d2d8e --- /dev/null +++ b/dev-qt/qtlockedfile/metadata.xml @@ -0,0 +1,8 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + diff --git a/dev-qt/qtlockedfile/qtlockedfile-2.4.1_p20171024.ebuild b/dev-qt/qtlockedfile/qtlockedfile-2.4.1_p20171024.ebuild new file mode 100644 index 00000000..018cdc5e --- /dev/null +++ b/dev-qt/qtlockedfile/qtlockedfile-2.4.1_p20171024.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P=qt-solutions-${PV#*_p} +inherit qmake-utils + +DESCRIPTION="QFile extension with advisory locking functions" +HOMEPAGE="https://code.qt.io/cgit/qt-solutions/qt-solutions.git/" +SRC_URI="https://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.xz" +S="${WORKDIR}/${MY_P}/${PN}" + +LICENSE="|| ( LGPL-2.1 GPL-3 )" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv x86" +IUSE="doc" + +DEPEND="dev-qt/qtcore:5" +RDEPEND="${DEPEND}" + +src_prepare() { + default + + echo 'SOLUTIONS_LIBRARY = yes' > config.pri + echo 'QT -= gui' >> src/qtlockedfile.pri + + sed -i -e "s/-head/-${PV%.*}/" common.pri || die + sed -i -e '/SUBDIRS+=example/d' ${PN}.pro || die +} + +src_configure() { + eqmake5 +} + +src_install() { + use doc && local HTML_DOCS=( doc/html/. ) + einstalldocs + + # libraries + dolib.so lib/* + + # headers + insinto "$(qt5_get_headerdir)"/QtSolutions + doins src/QtLockedFile src/${PN}.h + + # .prf files + insinto "$(qt5_get_mkspecsdir)"/features + doins "${FILESDIR}"/${PN}.prf +} diff --git a/dev-qt/qtmultimedia/Manifest b/dev-qt/qtmultimedia/Manifest new file mode 100644 index 00000000..d92b0cbc --- /dev/null +++ b/dev-qt/qtmultimedia/Manifest @@ -0,0 +1,4 @@ +DIST qtmultimedia-5.15.18-gentoo-kde-1.tar.xz 1492 BLAKE2B 34ca71385153f3acf3d59797a7071838e6e8f9b0d119cf095e8d12724c485c55c4fc905cdaec4774a1279745af55dee1236ace0e702ed3e61395a21ff40cf6a7 SHA512 86acbce6620ec8242db9b76ba41692afca5a081f994038335a1419788a986e39a93116459ceeeb6835a4076d67b8fe777da54d62efd376623a937e4504431c86 +DIST qtmultimedia-everywhere-opensource-src-5.15.18.tar.xz 3810252 BLAKE2B 4c69ae7d07b9d0edfadbaf5e51585c267466aba3e64a4841f768534bf87360144d987eddfa036baaab40066420aaf82bd081054bc4204244ec0b2ab6d2cb0724 SHA512 edebe73911c82ef5671602f895dd1cddcc39b8afb29267be54921848713344d531e49f4cbcfb9a57b095c4e736a9100c245290391102ddccdb08997057a12bd8 +EBUILD qtmultimedia-5.15.18.ebuild 1504 BLAKE2B 7f3ba094454f1836208d3e33d2faaf6bf9b8eb281e9b6b7a8b596b9bfde2c67f3a0e3dc7da90c7b9c87c0f65540225ab315d98dc8f46a3ac82d0520b711fc1c5 SHA512 64b840b6169c5b77d83f58e41b93567e7ed287a634d5d225a2d41e17a0ada8694a7c86e3465659ba79d6af6501b40c88c6321fc6f836064989586220d8d12c1d +MISC metadata.xml 773 BLAKE2B e4b291f7b0f103011af120ad0cb9766cc03341c44f751127997958d704803cbc278094050693f4cc7ba17fb3c2f311252c2304e5a93cf17363ebbbc4e6c2cce0 SHA512 d5c729736723cf7296234acc39d55cd28924449b4bca425c37b8fa7582dbab9c649b501ac88ffcd3c5a5cc696390d18cf9912a4fb6e2520768ff704533d7f909 diff --git a/dev-qt/qtmultimedia/metadata.xml b/dev-qt/qtmultimedia/metadata.xml new file mode 100644 index 00000000..49778c48 --- /dev/null +++ b/dev-qt/qtmultimedia/metadata.xml @@ -0,0 +1,23 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Enable audio support via media-libs/gstreamer + Build QML/QtQuick bindings and imports + Build the QtMultimediaWidgets module + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtmultimedia + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtmultimedia/qtmultimedia-5.15.18.ebuild b/dev-qt/qtmultimedia/qtmultimedia-5.15.18.ebuild new file mode 100644 index 00000000..b800b2c8 --- /dev/null +++ b/dev-qt/qtmultimedia/qtmultimedia-5.15.18.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +inherit qt5-build + +DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt5 framework" + +IUSE="alsa gles2-only gstreamer openal pulseaudio qml widgets" + +RDEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}*[gles2-only=] + =dev-qt/qtnetwork-${QT5_PV}* + alsa? ( media-libs/alsa-lib ) + gstreamer? ( + dev-libs/glib:2 + media-libs/gstreamer:1.0 + media-libs/gst-plugins-bad:1.0 + media-libs/gst-plugins-base:1.0 + ) + pulseaudio? ( media-libs/libpulse[glib] ) + qml? ( + =dev-qt/qtdeclarative-${QT5_PV}* + gles2-only? ( =dev-qt/qtgui-${QT5_PV}*[egl] ) + openal? ( media-libs/openal ) + ) + widgets? ( + =dev-qt/qtwidgets-${QT5_PV}*[gles2-only=] + media-libs/libglvnd + ) +" +DEPEND="${RDEPEND} + gstreamer? ( x11-base/xorg-proto ) +" + +src_prepare() { + sed -i -e '/CONFIG\s*+=/ s/optimize_full//' \ + src/multimedia/multimedia.pro || die + + qt_use_disable_config openal openal \ + src/imports/imports.pro + + qt_use_disable_mod qml quick \ + src/src.pro \ + src/plugins/plugins.pro + + qt_use_disable_mod widgets widgets \ + src/src.pro \ + src/gsttools/gsttools.pro \ + src/plugins/gstreamer/common.pri + + qt5-build_src_prepare +} + +src_configure() { + local myqmakeargs=( + -- + $(qt_use alsa) + $(qt_use gstreamer) + $(qt_use pulseaudio) + ) + qt5-build_src_configure +} diff --git a/dev-qt/qtnetwork/Manifest b/dev-qt/qtnetwork/Manifest new file mode 100644 index 00000000..636315d1 --- /dev/null +++ b/dev-qt/qtnetwork/Manifest @@ -0,0 +1,5 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 +EBUILD qtnetwork-5.15.18.ebuild 1177 BLAKE2B e51e9a5d973b618b81658f3dc44b9985852a8c229199273ee9e04a2fb1422973a3ece68502f3d626e76fb27df2a0787927535f5da72f84a09a5f24c845d6ea47 SHA512 6f054d695c5913e4a48dcf5e2bc9448a87c07149662feeeef457e4e940172fa8ef41d4842daa7b01767060b8a791ca634de77e1f32c071c67f69b46d94769087 +MISC metadata.xml 690 BLAKE2B 3e1cccd88cb778d868aa5aa650d9114a79eaf7b5961dc6222b2da3e5c7536a43c7481b6d56bb9176b36ed2560ccb0712635146872f370fdc1e319286133a1651 SHA512 e402ad3b586e305a6f7ee99f24edd505b1e76f7a957108fc252a4a1af8978ac113b9b1c56e4fb0bfb696bcf29a1295f52af6614924f0e3ae2d7f71810a3be707 diff --git a/dev-qt/qtnetwork/metadata.xml b/dev-qt/qtnetwork/metadata.xml new file mode 100644 index 00000000..dfe9a543 --- /dev/null +++ b/dev-qt/qtnetwork/metadata.xml @@ -0,0 +1,22 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Enable support for GSSAPI (virtual/krb5) + Use net-libs/libproxy for automatic + HTTP/SOCKS proxy configuration + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild b/dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild new file mode 100644 index 00000000..39cfe1e3 --- /dev/null +++ b/dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="Network abstraction library for the Qt5 framework" + +IUSE="gssapi libproxy sctp +ssl" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + sys-libs/zlib:= + gssapi? ( virtual/krb5 ) + libproxy? ( net-libs/libproxy ) + sctp? ( kernel_linux? ( net-misc/lksctp-tools ) ) + ssl? ( >=dev-libs/openssl-1.1.1:0= ) +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/network + src/plugins/bearer/generic +) + +QT5_GENTOO_CONFIG=( + libproxy:libproxy: + ssl::SSL + ssl::OPENSSL + ssl:openssl-linked:LINKED_OPENSSL +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :network +) + +src_configure() { + local myconf=( + $(qt_use gssapi feature-gssapi) + $(qt_use libproxy) + $(qt_use sctp) + $(usev ssl -openssl-linked) + ) + qt5-build_src_configure +} + +src_install() { + qt5-build_src_install + + # workaround for bug 652650 + if use ssl; then + sed -e "/^#define QT_LINKED_OPENSSL/s/$/ true/" \ + -i "${D}${QT5_HEADERDIR}"/Gentoo/${PN}-qconfig.h || die + fi +} diff --git a/dev-qt/qtnetworkauth/Manifest b/dev-qt/qtnetworkauth/Manifest new file mode 100644 index 00000000..88a2b52a --- /dev/null +++ b/dev-qt/qtnetworkauth/Manifest @@ -0,0 +1,3 @@ +DIST qtnetworkauth-everywhere-opensource-src-5.15.18.tar.xz 121828 BLAKE2B d67dce86dfd7e26d4e729871dc59c6893258b2d9b0774d03f02bb53df506b1799a935c9c08b89793d8029aacc3acbec8fa76685a12978d1543426784854b6214 SHA512 f3f9cce52161b77b1e3ebda32444fefed9cff077b9546e0d1b7942b0710e6a8f8681f9c10b521dc56fa3a0020338c59334b6c870420fa1a34a9ae3bbe30dc2d5 +EBUILD qtnetworkauth-5.15.18.ebuild 390 BLAKE2B ebf8d745f3e00a6af1d50ff4c8109d3a19908e75b4446dabe4dfe1be3efaf90bf01e541c861655a3ff7f3344aeb087e3ae9c9fed5df478e7401b297c9ff11ea1 SHA512 aed949954c98a7d57d71437a739232be74c794aba016ada0ebb8c1ac02c6cfc1baad09980192bd5959c8fbc7a626409c7964fd71c300b9338b0b6aa8513b7a53 +MISC metadata.xml 538 BLAKE2B 0bf6259826c916b9b8f57a05397c87e9d013d69739c93f1ca3eb030c7bb6e7630021b8dfcc7497cff90aa5e5cc570a5e73285001edeb40a50839d10955e230aa SHA512 5c25a747fb6f9054d5c30b4ec08b4e02435676085f5dccc1d05bc68222230f3bbf426667f7cadf1a97d7a423aa8d1d8cb55e00d9212e333646300439c81ee2f8 diff --git a/dev-qt/qtnetworkauth/metadata.xml b/dev-qt/qtnetworkauth/metadata.xml new file mode 100644 index 00000000..f57c41c3 --- /dev/null +++ b/dev-qt/qtnetworkauth/metadata.xml @@ -0,0 +1,18 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtnetworkauth + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtnetworkauth/qtnetworkauth-5.15.18.ebuild b/dev-qt/qtnetworkauth/qtnetworkauth-5.15.18.ebuild new file mode 100644 index 00000000..d75c7081 --- /dev/null +++ b/dev-qt/qtnetworkauth/qtnetworkauth-5.15.18.ebuild @@ -0,0 +1,21 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + KEYWORDS="amd64 arm64 ~ppc64 ~riscv x86" +fi + +inherit qt5-build + +DESCRIPTION="Network authorization library for the Qt5 framework" +LICENSE="GPL-3" + +IUSE=" " + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtnetwork-${QT5_PV}* +" +RDEPEND="${DEPEND}" diff --git a/dev-qt/qtopengl/Manifest b/dev-qt/qtopengl/Manifest new file mode 100644 index 00000000..2eacde32 --- /dev/null +++ b/dev-qt/qtopengl/Manifest @@ -0,0 +1,5 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 +EBUILD qtopengl-5.15.18.ebuild 674 BLAKE2B 7be71b9a597eeb2427683ef1261eab2a6fcd192466fb4666132812e0ed2e6a42f37adaf8ef2394765400f4e7b380c514a1853b01ed35a694be015b7c0cdc9dbf SHA512 c12a112ba4d257d6bb67bc3a9cc7593c1f72ae35ecb89a8b9d124c5f517a0692c855186c8c86bc7a04c690278eac5d4ac3b1bc7ae4474109c00a22e2c304282e +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qtopengl/metadata.xml b/dev-qt/qtopengl/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qtopengl/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtopengl/qtopengl-5.15.18.ebuild b/dev-qt/qtopengl/qtopengl-5.15.18.ebuild new file mode 100644 index 00000000..f9f74961 --- /dev/null +++ b/dev-qt/qtopengl/qtopengl-5.15.18.ebuild @@ -0,0 +1,35 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +VIRTUALX_REQUIRED="test" +inherit qt5-build + +DESCRIPTION="OpenGL support library for the Qt5 framework (deprecated)" + +IUSE="gles2-only" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*[gles2-only=] + =dev-qt/qtwidgets-${QT5_PV}*[gles2-only=] +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/opengl +) + +src_configure() { + local myconf=( + -opengl $(usex gles2-only es2 desktop) + ) + qt5-build_src_configure +} diff --git a/dev-qt/qtpaths/Manifest b/dev-qt/qtpaths/Manifest new file mode 100644 index 00000000..dbf3e931 --- /dev/null +++ b/dev-qt/qtpaths/Manifest @@ -0,0 +1,4 @@ +DIST qttools-5.15.18-gentoo-kde-1.tar.xz 2336 BLAKE2B 0ddc602b0b0edddbd7ff5cb435a6ab63ea4c9a159513c3b42e553ad68fb297239893b1d55e1ed1ff143d7af624e4d47cd07e5e2e564f4fe022b987b589f8d05d SHA512 e96f2d01a3526b1ebc3fb9afd04a38b42336d159961f53e348798cd0c4548abdae96569b670521b077daaf2fd64a29eedf9dd3b0cb7a131d5ec77deaec37cb5e +DIST qttools-everywhere-opensource-src-5.15.18.tar.xz 8876416 BLAKE2B f546692ac9faccd617838432c001f7d574c7137ff44326d6d1e207a3eea913592c7857a15c91cbbadf0451512c256f4a99d43694b35f84fc758aa2a55118be75 SHA512 30a278df553ff3bb64927a4a5be0370b070131ec2970410095b4618e6a0f6e7c45374abf37c458b69dd9e4f7cecb98289b8e777cf5bc85b09f0b5cd278a40a70 +EBUILD qtpaths-5.15.18.ebuild 509 BLAKE2B a01bd155ce2acaeaebb60a73783b110a64338f5a1644e5b9e13b878b99182b5abdb21620af34766834976ebef0b3fbf0149419026601f3599a87865535f1f8f7 SHA512 a05e34e5824293d859a316ad91165f0becac9243773a19e72d1c3d2ed8495232f576668e7c12763bd2861c839006d5685ec75e4d95b3fa8611b7ad735b007f67 +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qtpaths/metadata.xml b/dev-qt/qtpaths/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qtpaths/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtpaths/qtpaths-5.15.18.ebuild b/dev-qt/qtpaths/qtpaths-5.15.18.ebuild new file mode 100644 index 00000000..3cc474ac --- /dev/null +++ b/dev-qt/qtpaths/qtpaths-5.15.18.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qttools" +inherit qt5-build + +DESCRIPTION="Command line client to QStandardPaths" + +IUSE=" " + +DEPEND="=dev-qt/qtcore-${QT5_PV}*" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/qtpaths +) + +src_install() { + qt5-build_src_install + qt5_symlink_binary_to_path qtpaths 5 +} diff --git a/dev-qt/qtplugininfo/Manifest b/dev-qt/qtplugininfo/Manifest new file mode 100644 index 00000000..0f9dde82 --- /dev/null +++ b/dev-qt/qtplugininfo/Manifest @@ -0,0 +1,4 @@ +DIST qttools-5.15.18-gentoo-kde-1.tar.xz 2336 BLAKE2B 0ddc602b0b0edddbd7ff5cb435a6ab63ea4c9a159513c3b42e553ad68fb297239893b1d55e1ed1ff143d7af624e4d47cd07e5e2e564f4fe022b987b589f8d05d SHA512 e96f2d01a3526b1ebc3fb9afd04a38b42336d159961f53e348798cd0c4548abdae96569b670521b077daaf2fd64a29eedf9dd3b0cb7a131d5ec77deaec37cb5e +DIST qttools-everywhere-opensource-src-5.15.18.tar.xz 8876416 BLAKE2B f546692ac9faccd617838432c001f7d574c7137ff44326d6d1e207a3eea913592c7857a15c91cbbadf0451512c256f4a99d43694b35f84fc758aa2a55118be75 SHA512 30a278df553ff3bb64927a4a5be0370b070131ec2970410095b4618e6a0f6e7c45374abf37c458b69dd9e4f7cecb98289b8e777cf5bc85b09f0b5cd278a40a70 +EBUILD qtplugininfo-5.15.18.ebuild 384 BLAKE2B 303aa0a89bb7c7811af7526379b40358458febb49db4b48ffb88bb88461fcd604db34cbf02866db63a4986cad5a388c55d935876edabd033d60cc4d444ac0cf5 SHA512 ac2b759346af8b676ec159cecd22080c85d4a3a34490d2348144d5c2b6a2e21dbf808f60b62180887b0b70ef1611854e45102191bcd4714b7fbe15fe4cb0af5d +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qtplugininfo/metadata.xml b/dev-qt/qtplugininfo/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qtplugininfo/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtplugininfo/qtplugininfo-5.15.18.ebuild b/dev-qt/qtplugininfo/qtplugininfo-5.15.18.ebuild new file mode 100644 index 00000000..86a470cc --- /dev/null +++ b/dev-qt/qtplugininfo/qtplugininfo-5.15.18.ebuild @@ -0,0 +1,23 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="~amd64 ~x86" +fi + +QT5_MODULE="qttools" +inherit qt5-build + +DESCRIPTION="Qt5 plugin metadata dumper" + +IUSE=" " + +DEPEND="=dev-qt/qtcore-${QT5_PV}*" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/qtplugininfo +) diff --git a/dev-qt/qtpositioning/Manifest b/dev-qt/qtpositioning/Manifest new file mode 100644 index 00000000..57e0373d --- /dev/null +++ b/dev-qt/qtpositioning/Manifest @@ -0,0 +1,3 @@ +DIST qtlocation-everywhere-opensource-src-5.15.18.tar.xz 6534556 BLAKE2B 5b8e7cc45c640ab9c753cb54e22574f2246f807802fac2c4376360e343b863c800b640edeea2569ad8af6b2fd56110eafd82792b111258f8997943f080003f13 SHA512 587e1cc8c8f46ab09ea79c4142dbecc52466dafa94c4bfa61264eba4f202fb5e2979d1ae6ba5fb924376d75764f28b58c7bcc03ab29edef2524aa872adb3c936 +EBUILD qtpositioning-5.15.18.ebuild 870 BLAKE2B 7ba60c1098ecde0cbfeddb21ea3fe70c877b2bbc8f52e5ce97f59c1b5657cb377e56ce45c000ab621b859a38b3952e8a8cea9dbb6b90473f0c3d165b944261c4 SHA512 88ea294f1b7a6f85e9f33ca0dc24b875ed02fe18543dd55bb40db68508b94a9b09c56ea1768483375bdad8e3f4120a081886057c4a313131c9e954ee7a0481c6 +MISC metadata.xml 695 BLAKE2B 13fe75d106b1e2067eaf8113a9f613a3fc575c46c0e92288155d9d799a8337557b8c0e59bc2e77d28e1ab1c358d50d14904d135415ee32f1003901ee18b094ab SHA512 f3310f84aa4fa176bbcde51d8e451a2ad34a502ec9a1f0943381bdfd099b8137df68ba18547320ced87bc68b2ef77307b7b5cf2a10bb42f100adfbd4be871474 diff --git a/dev-qt/qtpositioning/metadata.xml b/dev-qt/qtpositioning/metadata.xml new file mode 100644 index 00000000..307f4190 --- /dev/null +++ b/dev-qt/qtpositioning/metadata.xml @@ -0,0 +1,22 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Use enhanced location information from app-misc/geoclue + Build QML bindings + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtpositioning + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtpositioning/qtpositioning-5.15.18.ebuild b/dev-qt/qtpositioning/qtpositioning-5.15.18.ebuild new file mode 100644 index 00000000..62717137 --- /dev/null +++ b/dev-qt/qtpositioning/qtpositioning-5.15.18.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +QT5_MODULE="qtlocation" +inherit qt5-build + +DESCRIPTION="Physical position determination library for the Qt5 framework" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +IUSE="geoclue +qml" + +RDEPEND=" + =dev-qt/qtcore-${QT5_PV}* + geoclue? ( =dev-qt/qtdbus-${QT5_PV}* ) + qml? ( =dev-qt/qtdeclarative-${QT5_PV}* ) +" +DEPEND="${RDEPEND}" +PDEPEND=" + geoclue? ( app-misc/geoclue:2.0 ) +" + +QT5_TARGET_SUBDIRS=( + src/3rdparty/clipper + src/3rdparty/poly2tri + src/3rdparty/clip2tri + src/positioning + src/plugins/position/positionpoll +) + +pkg_setup() { + use geoclue && QT5_TARGET_SUBDIRS+=( src/plugins/position/geoclue2 ) + use qml && QT5_TARGET_SUBDIRS+=( + src/positioningquick + src/imports/positioning + ) +} diff --git a/dev-qt/qtprintsupport/Manifest b/dev-qt/qtprintsupport/Manifest new file mode 100644 index 00000000..b37bc416 --- /dev/null +++ b/dev-qt/qtprintsupport/Manifest @@ -0,0 +1,5 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 +EBUILD qtprintsupport-5.15.18.ebuild 814 BLAKE2B b68f8d57cd7666fed494be13aff27d028f856989c75774d54800875c3cd679590ebd9574b5c578814b90ec3bd7397ff224a715d23a7e7e895b8cc75dc410d620 SHA512 0164afa30e4fb4b2e021135f9b38bf9b267dfdee053204a0b4d6d82349ae0cc025a9177c2202ef0022eb48ee926d3409d0a1dbd2dbe635c9c1aa2696d590845d +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qtprintsupport/metadata.xml b/dev-qt/qtprintsupport/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qtprintsupport/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtprintsupport/qtprintsupport-5.15.18.ebuild b/dev-qt/qtprintsupport/qtprintsupport-5.15.18.ebuild new file mode 100644 index 00000000..88650bec --- /dev/null +++ b/dev-qt/qtprintsupport/qtprintsupport-5.15.18.ebuild @@ -0,0 +1,44 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +VIRTUALX_REQUIRED="test" +inherit qt5-build + +DESCRIPTION="Printing support library for the Qt5 framework" + +IUSE="cups gles2-only" + +RDEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*[gles2-only=] + =dev-qt/qtwidgets-${QT5_PV}*[gles2-only=] + cups? ( net-print/cups ) +" +DEPEND="${RDEPEND} + test? ( =dev-qt/qtnetwork-${QT5_PV}* ) +" + +QT5_TARGET_SUBDIRS=( + src/printsupport + src/plugins/printsupport +) + +QT5_GENTOO_CONFIG=( + cups +) + +src_configure() { + local myconf=( + $(qt_use cups) + -opengl $(usex gles2-only es2 desktop) + ) + qt5-build_src_configure +} diff --git a/dev-qt/qtquickcontrols/Manifest b/dev-qt/qtquickcontrols/Manifest new file mode 100644 index 00000000..79426239 --- /dev/null +++ b/dev-qt/qtquickcontrols/Manifest @@ -0,0 +1,3 @@ +DIST qtquickcontrols-everywhere-opensource-src-5.15.18.tar.xz 5960964 BLAKE2B d380286f20257bacdf86a6aa97b8e935d9b5477bb25f54ddc97bbdf1adf208ab0ade48463dd9905b98eb2c99a05ef81b55fa452d75287235f58adef14cc16e80 SHA512 9bd2bcd119d162f8ef30b2e1f459776a66b504f5043809cc0846b7c4898ca464eb44f65d1c76d3857a12eef7126ec8a84f8ac3566b5c3200b65572a3ff9296f7 +EBUILD qtquickcontrols-5.15.18.ebuild 772 BLAKE2B e5f913d38f65c4a0241f98f41b66392ca5b641892716449a4bb9a34de69b621268c54ac3fb8cbb27506f219bbbe3b7a66ef7c2f38b9116eef2d143cc8b395b45 SHA512 c87bd6f75cbfbf0442da10f154e178446e9965b5a36d263a98b7c4183d2d0116a3f400480b9103d403c73dbdb4cadcc41015342aaa7abb5f76fe837bce376baf +MISC metadata.xml 552 BLAKE2B 8294b8e326a177905eb8b0510295d6b3cc97818c836b6b5d2940b78a5ecccc743c8818436fee3f3a61b2f984560c6fe6346d44e1e6b4fa27a7cf5a9a84f20dd4 SHA512 25f93b07946f9319e9762b9ba6c9adb5ca6348a71ebd5710c0f1690a75ca7f93af8967f323a9e11e7af04fd970a92fedf3ec30d962f85516c7b44f1ea749dbbf diff --git a/dev-qt/qtquickcontrols/metadata.xml b/dev-qt/qtquickcontrols/metadata.xml new file mode 100644 index 00000000..f426874b --- /dev/null +++ b/dev-qt/qtquickcontrols/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Enable QtWidgets support + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtquickcontrols/qtquickcontrols-5.15.18.ebuild b/dev-qt/qtquickcontrols/qtquickcontrols-5.15.18.ebuild new file mode 100644 index 00000000..b0bbd28a --- /dev/null +++ b/dev-qt/qtquickcontrols/qtquickcontrols-5.15.18.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt5-build + +DESCRIPTION="Set of Qt Quick controls to create complete user interfaces (deprecated)" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +IUSE="+widgets" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtdeclarative-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}* + widgets? ( =dev-qt/qtwidgets-${QT5_PV}* ) +" +RDEPEND="${DEPEND}" + +src_prepare() { + qt_use_disable_mod widgets widgets \ + src/src.pro \ + src/controls/Private/private.pri \ + tests/auto/activeFocusOnTab/activeFocusOnTab.pro \ + tests/auto/controls/controls.pro \ + tests/auto/testplugin/testplugin.pro + + qt5-build_src_prepare +} diff --git a/dev-qt/qtquickcontrols2/Manifest b/dev-qt/qtquickcontrols2/Manifest new file mode 100644 index 00000000..62765bf8 --- /dev/null +++ b/dev-qt/qtquickcontrols2/Manifest @@ -0,0 +1,4 @@ +DIST qtquickcontrols2-5.15.18-gentoo-kde-1.tar.xz 6284 BLAKE2B 8a9aec66bb75cd45b4cc96162b6cd55a98f357938903d1544b72c9de120389f4c01314cc7c0e04cfcac5908c798695f9f50942ccf682e09d62dfff5c65a5ed86 SHA512 044d06524317aad9b234136a758cd0db0af514ba022a3cd7777544136579a7fcc52fe156cf1e9e11c5fdab7a980d78f088eb82f7a83ec3d660c760df7a580182 +DIST qtquickcontrols2-everywhere-opensource-src-5.15.18.tar.xz 8272372 BLAKE2B 414255b06745b2ec8f7aaaf18ba0971e31f28d8f8756c744b64a5e2faa03f3b62c22c3f06b794f11e940275204166ec1d3d269c73ef5bd8df6a0649485ba88a6 SHA512 29d0904c949b4970eae576d20f94b5c92f1fcb71056bb085b6ea8421c894aa265ae9a5cdbd6e21ac849f14385833ed2961a18dcc2c66ea6ed8a28feb51bd7375 +EBUILD qtquickcontrols2-5.15.18.ebuild 655 BLAKE2B a5a7bc88928fa84155c85331a146b1494003a0035d95c7cabe074dbdf4a8c8186ee136c9956fff2609a9329303d8dc4a32073d882027aa5c7f42a0323d2783b3 SHA512 6829c7f16725730b1dc6b5ea9ef2b0e29f98d128b4d7a9ce2cabd0d7cf3047127f9d5023d8acd77658b0157dd46f3baf5c6e3f23b9b412592155daa20c2cd24e +MISC metadata.xml 552 BLAKE2B 8294b8e326a177905eb8b0510295d6b3cc97818c836b6b5d2940b78a5ecccc743c8818436fee3f3a61b2f984560c6fe6346d44e1e6b4fa27a7cf5a9a84f20dd4 SHA512 25f93b07946f9319e9762b9ba6c9adb5ca6348a71ebd5710c0f1690a75ca7f93af8967f323a9e11e7af04fd970a92fedf3ec30d962f85516c7b44f1ea749dbbf diff --git a/dev-qt/qtquickcontrols2/metadata.xml b/dev-qt/qtquickcontrols2/metadata.xml new file mode 100644 index 00000000..f426874b --- /dev/null +++ b/dev-qt/qtquickcontrols2/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Enable QtWidgets support + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtquickcontrols2/qtquickcontrols2-5.15.18.ebuild b/dev-qt/qtquickcontrols2/qtquickcontrols2-5.15.18.ebuild new file mode 100644 index 00000000..d23198b2 --- /dev/null +++ b/dev-qt/qtquickcontrols2/qtquickcontrols2-5.15.18.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 ~arm arm64 ~loong ppc64 ~riscv x86" +fi + +inherit qt5-build + +DESCRIPTION="Set of next generation Qt Quick controls for the Qt5 framework" + +IUSE="widgets" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtdeclarative-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}* + widgets? ( =dev-qt/qtwidgets-${QT5_PV}* ) +" +RDEPEND="${DEPEND} + =dev-qt/qtgraphicaleffects-${QT5_PV}* +" + +src_prepare() { + qt_use_disable_mod widgets widgets \ + src/imports/platform/platform.pro + + qt5-build_src_prepare +} diff --git a/dev-qt/qtquicktimeline/Manifest b/dev-qt/qtquicktimeline/Manifest new file mode 100644 index 00000000..84602346 --- /dev/null +++ b/dev-qt/qtquicktimeline/Manifest @@ -0,0 +1,3 @@ +DIST qtquicktimeline-everywhere-opensource-src-5.15.18.tar.xz 82404 BLAKE2B 395cc74372470dd8c2e25be50f8b35eb724ea0b020fd35f06aa5f383e1157a19e6059c56761c18a5a25e85e6110ec1be208d38a87413de28d2c76f42ddfbfe45 SHA512 730a8c5080510175d3e62919a31bda78e5eeb32bbbd0087be46a1576278684f74a522a5615d8d5fe095d2d364a902470c22afd330adba94c7375814a4b29d99a +EBUILD qtquicktimeline-5.15.18.ebuild 367 BLAKE2B 177d100c4cd775817bc42b853190722920cf6453a773c12de253907fcf730af3e1b146b40e519619850162c1fd6a841b32ea99926276bf05f05d0f546b4edd13 SHA512 80c731f2b961d1191f8a3573748fafd23ed73bc93b5645e107d9c4138f07d8139b47484b15d1289b0c9546de46a5e4876e33cdd4e3a899d31d1de2ce65d7bb93 +MISC metadata.xml 441 BLAKE2B 74ac671e09bcf33c214467cee99e50cf1b0563655b52cd65916ac4e382c941f68f68ca13a5881ca4d2e85e3ef60e19ee9dd0f52d6d769dd67f89960adaac1263 SHA512 62ddfd6f5d6868707383f44f26f051308416f836373862e74f3b8af24fd6da166e31a1f0ab67fdc9c9c20e00887162f5b57a5224429e7b37c9deac44c8dca2b1 diff --git a/dev-qt/qtquicktimeline/metadata.xml b/dev-qt/qtquicktimeline/metadata.xml new file mode 100644 index 00000000..e8164d03 --- /dev/null +++ b/dev-qt/qtquicktimeline/metadata.xml @@ -0,0 +1,13 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/qt-5/qtquicktimeline-index.html + qt/qtquicktimeline + + diff --git a/dev-qt/qtquicktimeline/qtquicktimeline-5.15.18.ebuild b/dev-qt/qtquicktimeline/qtquicktimeline-5.15.18.ebuild new file mode 100644 index 00000000..03fdfedf --- /dev/null +++ b/dev-qt/qtquicktimeline/qtquicktimeline-5.15.18.ebuild @@ -0,0 +1,18 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt5-build + +DESCRIPTION="Qt module for keyframe-based timeline construction" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm ~x86" +fi + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtdeclarative-${QT5_PV}* +" +RDEPEND="${DEPEND}" diff --git a/dev-qt/qtscript/Manifest b/dev-qt/qtscript/Manifest new file mode 100644 index 00000000..1eb4ad5d --- /dev/null +++ b/dev-qt/qtscript/Manifest @@ -0,0 +1,3 @@ +DIST qtscript-everywhere-opensource-src-5.15.18.tar.xz 2644892 BLAKE2B ca982ac1e97c49698db1fb01cfab0bfd748c476014b48a6b238a81974f5931692bca80d911b70f2cf1beaddb5bebae62fa9f7d6665c5e3ce2f157dc58ec16e78 SHA512 e4cd79deb2cba1f4216acb6744c50540e41c4a56dd37f4f49631cad7b520642292192ddc8b7cff1f741350e4b8b83aae0626ec3c546366bd4bcaf58c7f849923 +EBUILD qtscript-5.15.18.ebuild 678 BLAKE2B 312a6936c6547b62814d41371154f3bcc58cc0e56e06f83ce14b391306f09d2ee6707748d4332ac34102353cb85a6133a3eb2eb495d1182a65b17d18ae048cd9 SHA512 5de4cc850fc0e9c2247b50d224f97d874db0cd7f3c72ad91b16e8e8c229fc9c1744e22cf660c6e3823c34d0e5ca0438dc5c50a3fdabc660c6420ad7000984dc9 +MISC metadata.xml 583 BLAKE2B 5389c382561f060259c9eb626a98fa6d1861a33cffb3ca62899cfb6f1b020d6841314edd05c4fd0e5f05593f6015af8826f1d087078754a3dd31ae72be7da4aa SHA512 f8d07eb515db1b455670371655c572aac73653a2d1af68d8a226ecfeaf77b62737114a66bc41375cf7f32d575df792a685298487a90c650b6c6dfb4a7c113181 diff --git a/dev-qt/qtscript/metadata.xml b/dev-qt/qtscript/metadata.xml new file mode 100644 index 00000000..a20bf4dd --- /dev/null +++ b/dev-qt/qtscript/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build the QtScriptTools module (requires QtWidgets) + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtscript/qtscript-5.15.18.ebuild b/dev-qt/qtscript/qtscript-5.15.18.ebuild new file mode 100644 index 00000000..c6ece64b --- /dev/null +++ b/dev-qt/qtscript/qtscript-5.15.18.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt5-build + +DESCRIPTION="Application scripting library for the Qt5 framework (deprecated)" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 ~arm arm64 ~hppa ppc ppc64 ~riscv x86" +fi + +IUSE="+jit scripttools" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + scripttools? ( + =dev-qt/qtgui-${QT5_PV}* + =dev-qt/qtwidgets-${QT5_PV}* + ) +" +RDEPEND="${DEPEND}" + +src_prepare() { + qt_use_disable_mod scripttools widgets \ + src/src.pro + + qt5-build_src_prepare +} + +src_configure() { + local myqmakeargs=( + JAVASCRIPTCORE_JIT=$(usex jit) + ) + qt5-build_src_configure +} diff --git a/dev-qt/qtscxml/Manifest b/dev-qt/qtscxml/Manifest new file mode 100644 index 00000000..c9e98ec6 --- /dev/null +++ b/dev-qt/qtscxml/Manifest @@ -0,0 +1,3 @@ +DIST qtscxml-everywhere-opensource-src-5.15.18.tar.xz 415812 BLAKE2B aac237220793850e44e34f7e17138ff145e29faa1b8a8cf5f332e718f3d5480ca43b1db7ca44c7bcddac312b1352aaef11a9c032febcd04558b6ea7db11a845d SHA512 9ad88607e25b6bf43ae460904a3ccfb3514c6a6b739dfce4799958d5897601370a83f818e706a0270ccab1a995976384553d1bfca74f53f08bda3f9d1b58cf4c +EBUILD qtscxml-5.15.18.ebuild 398 BLAKE2B 95002d21f617940b91e334804f17b38d3396d6c969e6b1cb0f7b1da294d61fdead8e841dbcfbb594c2af39c786b743f3db05e0e04a18681d9b82bbc7cc1e416d SHA512 1ec341cfdb75350733d3d11a79f572ec8544f9362a211bcc1d5ad256b33c12a2659eff6b8c4099bc2f45bfff033e360c6b8d40c766cf0a8951947a6632b71cc0 +MISC metadata.xml 532 BLAKE2B b01b5680cf69e0aeb5bfec2c3c9e42728e6246ca515fe9024b1c4aeecaf660d7e4bd085b4065e4e8e40075eca1d63bbe309d7095e6e25441b9f0f13b95614ba5 SHA512 00f10c94d4a40337b094eabed3a9fe7ca05310eb8ceee4efcc0e2a7a636f548a6e74b096e85cfee437b6b5082046ba13cdff6e7b15c3614ca4759cab0f62eac8 diff --git a/dev-qt/qtscxml/metadata.xml b/dev-qt/qtscxml/metadata.xml new file mode 100644 index 00000000..702f3c50 --- /dev/null +++ b/dev-qt/qtscxml/metadata.xml @@ -0,0 +1,18 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtscxml + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtscxml/qtscxml-5.15.18.ebuild b/dev-qt/qtscxml/qtscxml-5.15.18.ebuild new file mode 100644 index 00000000..abf46b75 --- /dev/null +++ b/dev-qt/qtscxml/qtscxml-5.15.18.ebuild @@ -0,0 +1,20 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt5-build + +DESCRIPTION="State Chart XML (SCXML) support library for the Qt5 framework" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi + +IUSE=" " + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtdeclarative-${QT5_PV}* +" +RDEPEND="${DEPEND}" diff --git a/dev-qt/qtserialbus/Manifest b/dev-qt/qtserialbus/Manifest new file mode 100644 index 00000000..c86e9052 --- /dev/null +++ b/dev-qt/qtserialbus/Manifest @@ -0,0 +1,3 @@ +DIST qtserialbus-everywhere-opensource-src-5.15.18.tar.xz 337096 BLAKE2B 49ae80e9bf1f35ff28f928059e273f3c2ba2a44ea08b5b13871f78b4458b5d8a176d865ce040d8716c695f603d871b42e47ff8a634d9ad5b8b88da8fbf04f255 SHA512 eb2e7d987b9e7f05f8952c3e424b23347c30a274f22acc0714f2769a9c891a12f212a2cd977a09e34b2f93079c7554e8c65425fe403f996a27c5f31e87c63697 +EBUILD qtserialbus-5.15.18.ebuild 431 BLAKE2B 8a61379df03639610fa082ac5d8deab18827593aadad70de807b413643971bd6fec2af8c592dbbbe4bd0522f4db334bd6a1967222a99bf68444e5b857dcccbd5 SHA512 a82394cfbf987af0a384b1315fdff212291598fe5b0d5793cc6487a3d7d2f47c5e009d9c19b197b48cc0a6395830e7b1509c526a85a172e776d9652513dfcbc0 +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qtserialbus/metadata.xml b/dev-qt/qtserialbus/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qtserialbus/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtserialbus/qtserialbus-5.15.18.ebuild b/dev-qt/qtserialbus/qtserialbus-5.15.18.ebuild new file mode 100644 index 00000000..f2380212 --- /dev/null +++ b/dev-qt/qtserialbus/qtserialbus-5.15.18.ebuild @@ -0,0 +1,21 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt5-build + +DESCRIPTION="Qt module to access CAN, ModBus, and other industrial serial buses and protocols" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~x86" +fi + +IUSE=" " + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtnetwork-${QT5_PV}* + =dev-qt/qtserialport-${QT5_PV}* +" +RDEPEND="${DEPEND}" diff --git a/dev-qt/qtserialport/Manifest b/dev-qt/qtserialport/Manifest new file mode 100644 index 00000000..61fabb36 --- /dev/null +++ b/dev-qt/qtserialport/Manifest @@ -0,0 +1,3 @@ +DIST qtserialport-everywhere-opensource-src-5.15.18.tar.xz 301032 BLAKE2B a29298a05f5e72444349aa5ced2bada485ad9bef67ddb6db82499031419070a8276334295c23aea35ce52e193034a71e8374a9f31d752abeeb9add933e8e08a0 SHA512 4944c4fc03386c635197c9d0fa4550fd05285c9bd36861409e2c5282aeee153baa5bc285be5314a6309026f54058f8bd605be389471a1dd34b3236f3d05131ec +EBUILD qtserialport-5.15.18.ebuild 559 BLAKE2B 6f9a095b298d8a3d64f11e9310c3fdcbafbe8c0115e45efa1bf453281416a7618600c4ee1f8a87f0911f9323093d7620505f65a7b9cc112dc92f650835973347 SHA512 75cd17b45877110f85fa74fd334469a630fc3ea77ef8e79c2c624e15451b6db47a438d37ed7adce254facc318d49e1665c51443bfcd5700cdb042e1f68d2641d +MISC metadata.xml 537 BLAKE2B 48590dfe4d5912693284b963abe9e2fccfff319c2fcc3106fa8d20ec693f7430453eec3fc9ba16c7a9a2cf59f635c1b627f49c6f4e3a8f83be634a68a00b055c SHA512 60ab0488e4a3585fb036e22212f55b5ba5b512acefc9bc68b08a1b255fa6dd0e34e7652a77e55cd7107e1c1f6b742ed12ce20ae92df29a3a38cd2d9f22618f97 diff --git a/dev-qt/qtserialport/metadata.xml b/dev-qt/qtserialport/metadata.xml new file mode 100644 index 00000000..f6e42eb8 --- /dev/null +++ b/dev-qt/qtserialport/metadata.xml @@ -0,0 +1,18 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtserialport + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtserialport/qtserialport-5.15.18.ebuild b/dev-qt/qtserialport/qtserialport-5.15.18.ebuild new file mode 100644 index 00000000..087e7c67 --- /dev/null +++ b/dev-qt/qtserialport/qtserialport-5.15.18.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt5-build + +DESCRIPTION="Serial port abstraction library for the Qt5 framework" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +IUSE=" " + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + virtual/libudev:= +" +RDEPEND="${DEPEND}" + +src_prepare() { + # make sure we link against libudev + sed -i -e 's/:qtConfig(libudev)//' \ + src/serialport/serialport-lib.pri || die + + qt5-build_src_prepare +} diff --git a/dev-qt/qtsingleapplication/Manifest b/dev-qt/qtsingleapplication/Manifest new file mode 100644 index 00000000..e18e7339 --- /dev/null +++ b/dev-qt/qtsingleapplication/Manifest @@ -0,0 +1,7 @@ +AUX 2.6.1_p20130904-no-gui.patch 2294 BLAKE2B 8a97c2acbdf8c5a66d7d392d9e329bf6e16b75e573822db58c789bc0d16b690a98b452dbda70db003cf91915154f807a9adf4d27c05af38187e206df854e9e11 SHA512 68b6ccf490483df0590af59c447fdfe99f421fd9dbc6211a7666f7ad0557025e13640b1c579fd25477fc0c197f49efa63c017e24a47b91291d99c773a7ad8dc9 +AUX 2.6.1_p20130904-unbundle-qtlockedfile.patch 2547 BLAKE2B e1668e24798405e91a37fed221cec9241964b6aaa820d078f7999a6f186655e51a3f353b5da8c17779bf5a56333bfd5d2df748e4ec8010ffa2d7be49fd75412e SHA512 96a1dd68e8ba841c5466183cfdcb9693e01d2096878f52f0f521bcee14ec38fb005bace877af473b645aa035c3651c136220fd2fc5dfb7a8883b9a75cdc55eba +AUX qtsingleapplication.prf 255 BLAKE2B a810e133b1017901bffb26aa1ede3ba64d28044b57c5b49828f55d6bf0e0f3e7c3bced99b69064985a8d1703b996d8eb678da89fb620fd91c2b28b8e5c8dfdea SHA512 005d9f547279ee7df2a4c0ae17ad371a73c9d21a3257740d5ad63c261c8eed64acff7211d009ef787ff9610075d0fbf31fb404803cd0ed2647dc2036ef89fad5 +AUX qtsinglecoreapplication.prf 241 BLAKE2B b356e55f6ba7fb1028e399b6111463bd5f0a02d4cd3c07240c433f7f0bffca587334752fb89e38673c075d47d3cee69a69420ccae6d2fa69454b1cac496edc6d SHA512 938d2eb0c2a3a8dc8ab1c15a175a6bad78b20ad699936b7afbbc54fec10cff6f7ed9ca69b68d81d36495fad439b8550c0d515e4b4a6856362c475f1d9fa7d974 +DIST qt-solutions-20171024.tar.xz 710532 BLAKE2B 365f4c6fc3bee34bf26ac5039984ceac1d90527297b985b0d1b606f3ba67219bab7f7cba40b4adca55446c34e9f4fe218b4449ee255ba6f6409de78f80ccdaec SHA512 4784d88c2f40c88f06abeb728842875fb5e428a630dbf749f71055681b0c631803d2901b60aa8cc95f5f382dcd21da8d739873aa45e3dd3676ee95925f0198da +EBUILD qtsingleapplication-2.6.1_p20171024.ebuild 1465 BLAKE2B 4fcd98f9d975662ef84f27f5553a2091cf0ec224a22fce6c634e58bc72ce0190663052edd7be647967dfd842438fb91668dccc8219ddc2efe5629234d9dd155b SHA512 16a09b6a77dc9aff99b9c68df4518dbe110599045bb057394e58786fdfe52b438108447bd494655183ad0f912ef7250c129998877036c14e08105cd58ef1fde4 +MISC metadata.xml 248 BLAKE2B 51adf67bdc3e6c30f18cb7c177694882c71c1207bf4e6b88aa0eb8d5f6fdbaea0c364777967125219ba8ea4be4a9ad3eb41269a7139cb211ce26f2985ac103ac SHA512 c2976d1256f14d4dcf6ea53ed248a43e9b76530c19eefb0e586d64b1080b75d1f4ac17171c6c27a491ce6623d34e9318fcba5ce3f78039f21ccaabbebf209345 diff --git a/dev-qt/qtsingleapplication/files/2.6.1_p20130904-no-gui.patch b/dev-qt/qtsingleapplication/files/2.6.1_p20130904-no-gui.patch new file mode 100644 index 00000000..19019e28 --- /dev/null +++ b/dev-qt/qtsingleapplication/files/2.6.1_p20130904-no-gui.patch @@ -0,0 +1,67 @@ +From f66352d6c2918123466bd72aee2118b9167562af Mon Sep 17 00:00:00 2001 +From: Davide Pesavento +Date: Sat, 28 Dec 2013 16:43:18 +0100 +Subject: [PATCH] no gui + +--- + buildlib/buildlib.pro | 4 +++- + src/qtsingleapplication.pri | 11 +++++------ + src/qtsinglecoreapplication.pri | 2 +- + 3 files changed, 9 insertions(+), 8 deletions(-) + +diff --git a/buildlib/buildlib.pro b/buildlib/buildlib.pro +index 37dddcd..f7c6508 100644 +--- a/buildlib/buildlib.pro ++++ b/buildlib/buildlib.pro +@@ -2,7 +2,9 @@ TEMPLATE=lib + CONFIG += qt dll qtsingleapplication-buildlib + mac:CONFIG += absolute_library_soname + win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all +-include(../src/qtsingleapplication.pri) ++include(../common.pri) ++include(../src/qtsinglecoreapplication.pri) ++exists(../config.pri):!infile(../config.pri, QTSA_NO_GUI, yes):include(../src/qtsingleapplication.pri) + TARGET = $$QTSINGLEAPPLICATION_LIBNAME + DESTDIR = $$QTSINGLEAPPLICATION_LIBDIR + win32 { +diff --git a/src/qtsingleapplication.pri b/src/qtsingleapplication.pri +index 02c9e5b..772924d 100644 +--- a/src/qtsingleapplication.pri ++++ b/src/qtsingleapplication.pri +@@ -1,15 +1,14 @@ +-include(../common.pri) +-INCLUDEPATH += $$PWD +-DEPENDPATH += $$PWD +-QT *= network ++INCLUDEPATH *= $$PWD ++DEPENDPATH *= $$PWD ++QT *= gui network + greaterThan(QT_MAJOR_VERSION, 4): QT *= widgets + CONFIG *= qtlockedfile + + qtsingleapplication-uselib:!qtsingleapplication-buildlib { + LIBS += -L$$QTSINGLEAPPLICATION_LIBDIR -l$$QTSINGLEAPPLICATION_LIBNAME + } else { +- SOURCES += $$PWD/qtsingleapplication.cpp $$PWD/qtlocalpeer.cpp +- HEADERS += $$PWD/qtsingleapplication.h $$PWD/qtlocalpeer.h ++ SOURCES += $$PWD/qtsingleapplication.cpp ++ HEADERS += $$PWD/qtsingleapplication.h + } + + win32 { +diff --git a/src/qtsinglecoreapplication.pri b/src/qtsinglecoreapplication.pri +index f5b8414..bf14a3f 100644 +--- a/src/qtsinglecoreapplication.pri ++++ b/src/qtsinglecoreapplication.pri +@@ -3,7 +3,7 @@ DEPENDPATH += $$PWD + HEADERS += $$PWD/qtsinglecoreapplication.h $$PWD/qtlocalpeer.h + SOURCES += $$PWD/qtsinglecoreapplication.cpp $$PWD/qtlocalpeer.cpp + +-QT *= network ++QT = core network + CONFIG *= qtlockedfile + + win32:contains(TEMPLATE, lib):contains(CONFIG, shared) { +-- +1.8.5.2 + diff --git a/dev-qt/qtsingleapplication/files/2.6.1_p20130904-unbundle-qtlockedfile.patch b/dev-qt/qtsingleapplication/files/2.6.1_p20130904-unbundle-qtlockedfile.patch new file mode 100644 index 00000000..93c78fab --- /dev/null +++ b/dev-qt/qtsingleapplication/files/2.6.1_p20130904-unbundle-qtlockedfile.patch @@ -0,0 +1,81 @@ +From 62210d463f87abb0584ce699915e1845cacaa480 Mon Sep 17 00:00:00 2001 +From: Davide Pesavento +Date: Sat, 28 Dec 2013 16:33:15 +0100 +Subject: [PATCH] unbundle qtlockedfile + +--- + src/qtlocalpeer.cpp | 11 +---------- + src/qtlocalpeer.h | 2 +- + src/qtsingleapplication.pri | 1 + + src/qtsinglecoreapplication.pri | 1 + + 4 files changed, 4 insertions(+), 11 deletions(-) + +diff --git a/src/qtlocalpeer.cpp b/src/qtlocalpeer.cpp +index 332b064..f17e662 100644 +--- a/src/qtlocalpeer.cpp ++++ b/src/qtlocalpeer.cpp +@@ -55,15 +55,6 @@ static PProcessIdToSessionId pProcessIdToSessionId = 0; + #include + #endif + +-namespace QtLP_Private { +-#include "qtlockedfile.cpp" +-#if defined(Q_OS_WIN) +-#include "qtlockedfile_win.cpp" +-#else +-#include "qtlockedfile_unix.cpp" +-#endif +-} +- + const char* QtLocalPeer::ack = "ack"; + + QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId) +@@ -114,7 +105,7 @@ bool QtLocalPeer::isClient() + if (lockFile.isLocked()) + return false; + +- if (!lockFile.lock(QtLP_Private::QtLockedFile::WriteLock, false)) ++ if (!lockFile.lock(QtLockedFile::WriteLock, false)) + return true; + + bool res = server->listen(socketName); +diff --git a/src/qtlocalpeer.h b/src/qtlocalpeer.h +index 1b533b1..1127735 100644 +--- a/src/qtlocalpeer.h ++++ b/src/qtlocalpeer.h +@@ -68,7 +68,7 @@ protected: + QString id; + QString socketName; + QLocalServer* server; +- QtLP_Private::QtLockedFile lockFile; ++ QtLockedFile lockFile; + + private: + static const char* ack; +diff --git a/src/qtsingleapplication.pri b/src/qtsingleapplication.pri +index 6f2bced..02c9e5b 100644 +--- a/src/qtsingleapplication.pri ++++ b/src/qtsingleapplication.pri +@@ -3,6 +3,7 @@ INCLUDEPATH += $$PWD + DEPENDPATH += $$PWD + QT *= network + greaterThan(QT_MAJOR_VERSION, 4): QT *= widgets ++CONFIG *= qtlockedfile + + qtsingleapplication-uselib:!qtsingleapplication-buildlib { + LIBS += -L$$QTSINGLEAPPLICATION_LIBDIR -l$$QTSINGLEAPPLICATION_LIBNAME +diff --git a/src/qtsinglecoreapplication.pri b/src/qtsinglecoreapplication.pri +index d2d6cc3..f5b8414 100644 +--- a/src/qtsinglecoreapplication.pri ++++ b/src/qtsinglecoreapplication.pri +@@ -4,6 +4,7 @@ HEADERS += $$PWD/qtsinglecoreapplication.h $$PWD/qtlocalpeer.h + SOURCES += $$PWD/qtsinglecoreapplication.cpp $$PWD/qtlocalpeer.cpp + + QT *= network ++CONFIG *= qtlockedfile + + win32:contains(TEMPLATE, lib):contains(CONFIG, shared) { + DEFINES += QT_QTSINGLECOREAPPLICATION_EXPORT=__declspec(dllexport) +-- +1.8.5.2 + diff --git a/dev-qt/qtsingleapplication/files/qtsingleapplication.prf b/dev-qt/qtsingleapplication/files/qtsingleapplication.prf new file mode 100644 index 00000000..3171424f --- /dev/null +++ b/dev-qt/qtsingleapplication/files/qtsingleapplication.prf @@ -0,0 +1,9 @@ +INCLUDEPATH *= $$[QT_INSTALL_HEADERS]/QtSolutions +greaterThan(QT_MAJOR_VERSION, 4) { +LIBS *= -lQt$${QT_MAJOR_VERSION}Solutions_SingleApplication-2.6 +QT *= widgets +} else { +LIBS *= -lQtSolutions_SingleApplication-2.6 +} +QT *= network +CONFIG *= qtlockedfile diff --git a/dev-qt/qtsingleapplication/files/qtsinglecoreapplication.prf b/dev-qt/qtsingleapplication/files/qtsinglecoreapplication.prf new file mode 100644 index 00000000..87d2a958 --- /dev/null +++ b/dev-qt/qtsingleapplication/files/qtsinglecoreapplication.prf @@ -0,0 +1,8 @@ +INCLUDEPATH *= $$[QT_INSTALL_HEADERS]/QtSolutions +greaterThan(QT_MAJOR_VERSION, 4) { +LIBS *= -lQt$${QT_MAJOR_VERSION}Solutions_SingleApplication-2.6 +} else { +LIBS *= -lQtSolutions_SingleApplication-2.6 +} +QT *= network +CONFIG *= qtlockedfile diff --git a/dev-qt/qtsingleapplication/metadata.xml b/dev-qt/qtsingleapplication/metadata.xml new file mode 100644 index 00000000..610d2d8e --- /dev/null +++ b/dev-qt/qtsingleapplication/metadata.xml @@ -0,0 +1,8 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + diff --git a/dev-qt/qtsingleapplication/qtsingleapplication-2.6.1_p20171024.ebuild b/dev-qt/qtsingleapplication/qtsingleapplication-2.6.1_p20171024.ebuild new file mode 100644 index 00000000..96e458c3 --- /dev/null +++ b/dev-qt/qtsingleapplication/qtsingleapplication-2.6.1_p20171024.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P=qt-solutions-${PV#*_p} +inherit qmake-utils + +DESCRIPTION="Qt library to start applications only once per user" +HOMEPAGE="https://code.qt.io/cgit/qt-solutions/qt-solutions.git/" +SRC_URI="https://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.xz" +S="${WORKDIR}/${MY_P}/${PN}" + +LICENSE="|| ( LGPL-2.1 GPL-3 )" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv x86" +IUSE="doc X" + +DEPEND=" + dev-qt/qtcore:5 + dev-qt/qtlockedfile[qt5(+)] + dev-qt/qtnetwork:5 + X? ( + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + ) +" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}/2.6.1_p20130904-unbundle-qtlockedfile.patch" + "${FILESDIR}/2.6.1_p20130904-no-gui.patch" +) + +src_prepare() { + default + + echo 'SOLUTIONS_LIBRARY = yes' > config.pri + use X || echo 'QTSA_NO_GUI = yes' >> config.pri + + sed -i -e "s/-head/-${PV%.*}/" common.pri || die + sed -i -e '/SUBDIRS+=examples/d' ${PN}.pro || die + + # to ensure unbundling + rm src/qtlockedfile* || die +} + +src_configure() { + eqmake5 +} + +src_install() { + use doc && local HTML_DOCS=( doc/html/. ) + einstalldocs + + # libraries + dolib.so lib/* + + # headers + insinto "$(qt5_get_headerdir)"/QtSolutions + doins src/qtsinglecoreapplication.h + use X && doins src/{QtSingleApplication,${PN}.h} + + # .prf files + insinto "$(qt5_get_mkspecsdir)"/features + doins "${FILESDIR}"/qtsinglecoreapplication.prf + use X && doins "${FILESDIR}"/${PN}.prf +} diff --git a/dev-qt/qtsql/Manifest b/dev-qt/qtsql/Manifest new file mode 100644 index 00000000..c1f0ae4a --- /dev/null +++ b/dev-qt/qtsql/Manifest @@ -0,0 +1,5 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 +EBUILD qtsql-5.15.18.ebuild 1253 BLAKE2B 0a27f6723c2db66bdde29f51b028b0eac25f8c140502b11bcff3c68d108846b442ea04db21b05cafc70ca6956642884442abc23838834ee31c1c99e2bee434e0 SHA512 5a612b46512240ef64ea6e57d2768774a42fcd724ae2009e76fac38351bd54621b81c0aa36c832b569396cf3c41c4e98f402f7f021bb4fc4b38d99d2c6547603 +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qtsql/metadata.xml b/dev-qt/qtsql/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qtsql/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtsql/qtsql-5.15.18.ebuild b/dev-qt/qtsql/qtsql-5.15.18.ebuild new file mode 100644 index 00000000..3d105bff --- /dev/null +++ b/dev-qt/qtsql/qtsql-5.15.18.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="SQL abstraction library for the Qt5 framework" + +SLOT=5/${QT5_PV} # bug 639140 +IUSE="freetds mysql oci8 odbc postgres +sqlite" +REQUIRED_USE=" + || ( freetds mysql oci8 odbc postgres sqlite ) +" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + freetds? ( dev-db/freetds ) + mysql? ( dev-db/mysql-connector-c:= ) + oci8? ( dev-db/oracle-instantclient:=[sdk] ) + odbc? ( dev-db/unixODBC ) + postgres? ( dev-db/postgresql:* ) + sqlite? ( dev-db/sqlite:3 ) +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/sql + src/plugins/sqldrivers +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :sql +) + +src_configure() { + local myconf=( + $(qt_use freetds sql-tds plugin) + $(qt_use mysql sql-mysql plugin) + $(qt_use oci8 sql-oci plugin) + $(qt_use odbc sql-odbc plugin) + $(qt_use postgres sql-psql plugin) + $(qt_use sqlite sql-sqlite plugin) + $(usev sqlite -system-sqlite) + ) + + use oci8 && myconf+=("-I${ORACLE_HOME}/include" "-L${ORACLE_HOME}/$(get_libdir)") + + qt5-build_src_configure +} diff --git a/dev-qt/qtsvg/Manifest b/dev-qt/qtsvg/Manifest new file mode 100644 index 00000000..756e1079 --- /dev/null +++ b/dev-qt/qtsvg/Manifest @@ -0,0 +1,4 @@ +DIST qtsvg-5.15.18-gentoo-kde-1.tar.xz 2872 BLAKE2B 2acf2cda848d8334803b05184ad1fb8d2cd254788d08ba6ea2d181e162ddd6ed8ac6fafc7776f553600aedefd6c3e7f3dc73e3458f74b6c95c1c0ab68edc5b14 SHA512 f64e4e6524faeb38a9ef62220b79a76483b6c62537ca5452b015a83a3e2e2eb81e86ce24449b7696d3ffb532da56c76e2ff4315d30a703764714c6aae71a7456 +DIST qtsvg-everywhere-opensource-src-5.15.18.tar.xz 1867656 BLAKE2B 409336262a3fd8f2f3c7032306453e88c359cced9ca2cb9ebf488e3fe36d0bdffd18ef6336800f72eef7b28b620791f9d7d350eb44a4a9b9e4d1e9e28ef860cd SHA512 2c599bdd0b82eeb969233bac7cb5d53896d3d873ee37b72fead0c3ef38feaef84c8e0a42425ce3ae185ca0f4d8f4590ec95829fc815bda65dd546d1697de8493 +EBUILD qtsvg-5.15.18.ebuild 490 BLAKE2B 06ed79d88f838662f330060aeb55f6d1897c71670ccbfce02598aee349c862556e73a4d58237cea54f293c85436435ef49dbae39522fae3f21129597d62006d5 SHA512 b7485752ca240473135923640e132eb1fd7e59e4fa0905024fcb793ed403985a4773869668cbb0d3664cf6a1d5d2c2d91fb29461c4a4beaabe312b9a3778ef29 +MISC metadata.xml 530 BLAKE2B 4cff37d5824321054b8131fc65a4a86433a2e33882c66411b7af25c0550ad4933a680ceb517d1ba2cd11dab4b3110da69f330f334d25577310d59d7ab4aca439 SHA512 f538df6a65076e6744ab7e498778ff1addd3f45af50708d5af3c0eefb5862fc0b82bf99c18b268bb6ed257b3feed51f64ed18cd4006ba717c03be37ea5258ab3 diff --git a/dev-qt/qtsvg/metadata.xml b/dev-qt/qtsvg/metadata.xml new file mode 100644 index 00000000..7dc6a408 --- /dev/null +++ b/dev-qt/qtsvg/metadata.xml @@ -0,0 +1,18 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtsvg + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtsvg/qtsvg-5.15.18.ebuild b/dev-qt/qtsvg/qtsvg-5.15.18.ebuild new file mode 100644 index 00000000..31932051 --- /dev/null +++ b/dev-qt/qtsvg/qtsvg-5.15.18.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +inherit qt5-build + +DESCRIPTION="SVG rendering library for the Qt5 framework" + +IUSE=" " + +RDEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}* + =dev-qt/qtwidgets-${QT5_PV}* + sys-libs/zlib:= +" +DEPEND="${RDEPEND} + test? ( =dev-qt/qtxml-${QT5_PV}* ) +" diff --git a/dev-qt/qttest/Manifest b/dev-qt/qttest/Manifest new file mode 100644 index 00000000..c8fa49c8 --- /dev/null +++ b/dev-qt/qttest/Manifest @@ -0,0 +1,5 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 +EBUILD qttest-5.15.18.ebuild 569 BLAKE2B 0a41f6eee274f7e29d6dcf0817df09f97b844b77a504c50b9a6163222a3d0d27297ce89fcc0ef972716d253673a7ca34f882c317f7e70114123dcb1506e3b1b8 SHA512 cf0b99dde03e60b2195e384cc6a9d5eae946c134c32532f6a945ad823cfd2f2900b5c3ffb78b2d318d59070b5cfb632ddc9341ac47c5189eea25e04273be96a2 +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qttest/metadata.xml b/dev-qt/qttest/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qttest/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qttest/qttest-5.15.18.ebuild b/dev-qt/qttest/qttest-5.15.18.ebuild new file mode 100644 index 00000000..fa51cd95 --- /dev/null +++ b/dev-qt/qttest/qttest-5.15.18.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +VIRTUALX_REQUIRED="test" +inherit qt5-build + +DESCRIPTION="Unit testing library for the Qt5 framework" + +IUSE=" " + +RDEPEND="=dev-qt/qtcore-${QT5_PV}*:5=" +DEPEND="${RDEPEND} + test? ( + =dev-qt/qtgui-${QT5_PV}* + =dev-qt/qtxml-${QT5_PV}* + ) +" + +QT5_TARGET_SUBDIRS=( + src/testlib +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :testlib +) diff --git a/dev-qt/qttranslations/Manifest b/dev-qt/qttranslations/Manifest new file mode 100644 index 00000000..01d4edc8 --- /dev/null +++ b/dev-qt/qttranslations/Manifest @@ -0,0 +1,3 @@ +DIST qttranslations-everywhere-opensource-src-5.15.18.tar.xz 1612872 BLAKE2B b550aeb57c8496e244dabe2aa86c3fbdb8291c1a24642b4e3005b3b0dcb36f8b425921d611e4171d01eb20fe1387f402de4051bcb2fef40b7ab55f56deacc40c SHA512 52a1ca84c01c4a2728d1b7a3168c8d6ffd12f8e8528d729b422d9339a01dcbcb5a768999a252b28b6f4041eb20f874fe74c0389724c54a09ec9dfe42312b4af9 +EBUILD qttranslations-5.15.18.ebuild 373 BLAKE2B 77a73325f7fa44c8d3172e025990e3e48ade9784debefe7eca630c32849559af7812fbb297d8e5137939e074d0e8d8c93aa727c6f6d3fd8f29fa6b5612d0e166 SHA512 e5a1542ee0d8f769cafd9dd7a6d4f4d456d8fd11fd456a1cd76ba92c06368e609e832e866dcc29484506a955da28adaf14d81359cdf8446e006f0ca5e291bb4b +MISC metadata.xml 563 BLAKE2B 11869c4f597d5fabbf64d850fe11460e1e91c09170dadfb660a5035cc5fbc1589d5c616459f2426ce0c2480762dc40d5822beedb963da9855e580a4aa2e4df0e SHA512 e228dd2161cdf78f156ce10da18aadc938f58c3455c1226fbebda35acd371201ae09779e531847d4707054c837f063f2d213341f17111a2cf2665707db024116 diff --git a/dev-qt/qttranslations/metadata.xml b/dev-qt/qttranslations/metadata.xml new file mode 100644 index 00000000..62cfd452 --- /dev/null +++ b/dev-qt/qttranslations/metadata.xml @@ -0,0 +1,19 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qttranslations + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qttranslations/qttranslations-5.15.18.ebuild b/dev-qt/qttranslations/qttranslations-5.15.18.ebuild new file mode 100644 index 00000000..d8292a86 --- /dev/null +++ b/dev-qt/qttranslations/qttranslations-5.15.18.ebuild @@ -0,0 +1,17 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +inherit qt5-build + +DESCRIPTION="Translation files for the Qt5 framework" + +IUSE=" " + +DEPEND="=dev-qt/qtcore-${QT5_PV}*" +BDEPEND="=dev-qt/linguist-tools-${QT5_PV}*" diff --git a/dev-qt/qtvirtualkeyboard/Manifest b/dev-qt/qtvirtualkeyboard/Manifest index f218d28a..1b9a31a8 100644 --- a/dev-qt/qtvirtualkeyboard/Manifest +++ b/dev-qt/qtvirtualkeyboard/Manifest @@ -1,2 +1,3 @@ DIST qtvirtualkeyboard-everywhere-opensource-src-5.15.18.tar.xz 10938608 BLAKE2B 9bef8ca0e645516290a8c44ed035e4f14acbf800ef33989fd6ece9f45b0077a5dc622cb74723ce1e76fd36d4de18a2d855d19ac5abbdd861c8bd6940cf3742aa SHA512 f7dd1365e45b7ed5f5f942abc6e4a1ea964955d9836bcfabed2c6de9669bcc47693c09370dd917e244bcaefe68cdcb06a985c798dcd612aafb03c1ebfca5b536 EBUILD qtvirtualkeyboard-5.15.18.ebuild 1214 BLAKE2B a2d1b8ccf58d8236afd410c626b28d6ef7cbbbd678620335d0f9f1f0f623d36c5185e5d7cb469d5e48a0759135a045c83afe88c409a764d87c97de88d5513ad3 SHA512 a5ee55fa5a05d94e62e6c5ee5d5abb10f3243985f9d04d9b57df175864ef2c73fb82ba0ece7bf2710e4ad4ad47c8da190a7f085f291e6f5f5786df681c76b08d +MISC metadata.xml 640 BLAKE2B bdfed031e4d0191f510982695bca87366916ce6b7ba3ff7fad718ac55083cbd82d7b00b32048f65b3973944f2058cf8f652e19a7efb3606a2eb7e4b3cc3fd63f SHA512 a5b3338f67993f944258eb2fba56b6d6b927e0e298832c95e2c3b6b7eb148201e2912e1844de03a360c0b123c6322c7d956825913eeec7c866fed861ced34dfc diff --git a/dev-qt/qtvirtualkeyboard/metadata.xml b/dev-qt/qtvirtualkeyboard/metadata.xml new file mode 100644 index 00000000..e84bfa0f --- /dev/null +++ b/dev-qt/qtvirtualkeyboard/metadata.xml @@ -0,0 +1,21 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Adds handwriting recognition integration support + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtvirtualkeyboard + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest new file mode 100644 index 00000000..7583e58b --- /dev/null +++ b/dev-qt/qtwayland/Manifest @@ -0,0 +1,4 @@ +DIST qtwayland-5.15.18-gentoo-kde-1.tar.xz 45732 BLAKE2B e9498684aad8205487a8beb6c6408851009b9eeb7ed8e5ae809f26bbb4e1ce5970bdabd0fc79562747b7af6acf5f77e0faea854a646e0039889c3ae7001afb8f SHA512 65851f53e2a534cb6aab8d547543a1864243a7dd07f8766cf68ba0bbfd2fca6e011f6b9a68beabf0f2b806eacd48adacf876f8ba571c7747dcfce6a5687bee7b +DIST qtwayland-everywhere-opensource-src-5.15.18.tar.xz 547760 BLAKE2B e41148764c0926109a35ef62bdfd59b031c42ed245783400a139da872ee6a83f9e4480e357ebd7561c3eeacb4cac612e94d0817f4bbe5a66131fab3a5a3596d7 SHA512 9e0d07a4a91eb6dd1bde6b211bae2b64f2035a28176c277adb86ab5d3a281c7740930dc304db94990c1d2277ef54d17b934f99326413719626fb161b612c033f +EBUILD qtwayland-5.15.18.ebuild 1213 BLAKE2B b192cc63614a7dee2d6b4f91163706de7d641219987d6d117e89636fce66c1d67ef5ca8a10c60ca644d48a90971618231a8f38d70b42c4fbedf5e91545b8ba4d SHA512 94eeebf76283e5426da3e77d2d1362dae6f85dc603aa58e980fa7e1a795d4d2ac9779454c6f92c5397f2fb16319c9ac151317352ce8eb5df1e0797fbabfb9f2b +MISC metadata.xml 725 BLAKE2B e8171797e908456fe2de87309523615179f79b94fdb44510782f44122c9fee89e6181411a7c95e6a264a1ce9c2fa0681f549820002ca3ecec4c134920adcf72c SHA512 1316e0bc8c73bf79371ce4a9ce59057b982194b51b2c4b5854b250a3300007f3179a8d21a28449b3fee2b73aaa6e9c56d65c93caeebea9f52f7603d105cf5b45 diff --git a/dev-qt/qtwayland/metadata.xml b/dev-qt/qtwayland/metadata.xml new file mode 100644 index 00000000..5b5fc5e0 --- /dev/null +++ b/dev-qt/qtwayland/metadata.xml @@ -0,0 +1,22 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Enable support for the wayland compositor / server APIs + Enable support for Vulkan-based server buffer integration + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtwayland + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtwayland/qtwayland-5.15.18.ebuild b/dev-qt/qtwayland/qtwayland-5.15.18.ebuild new file mode 100644 index 00000000..c0c8aed5 --- /dev/null +++ b/dev-qt/qtwayland/qtwayland-5.15.18.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +inherit qt5-build + +DESCRIPTION="Wayland platform plugin for Qt" + +SLOT=5/${QT5_PV} # bug 815646 +IUSE="compositor vulkan" + +RDEPEND=" + dev-libs/wayland + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*:5=[egl,libinput,vulkan=] + media-libs/libglvnd + x11-libs/libxkbcommon + compositor? ( =dev-qt/qtdeclarative-${QT5_PV}*:5= ) +" +DEPEND="${RDEPEND} + vulkan? ( dev-util/vulkan-headers ) +" +BDEPEND="dev-util/wayland-scanner" + +src_configure() { + local myqmakeargs=( + -- + -no-feature-xcomposite-egl + -no-feature-xcomposite-glx + $(qt_use compositor feature-wayland-server) + $(qt_use compositor feature-wayland-dmabuf-server-buffer) + $(qt_use compositor feature-wayland-drm-egl-server-buffer) + $(qt_use compositor feature-wayland-shm-emulation-server-buffer) + ) + + use compositor && myqmakeargs+=( + $(qt_use vulkan feature-wayland-vulkan-server-buffer) + ) + + qt5-build_src_configure +} + +src_install() { + qt5-build_src_install + rm "${D}${QT5_BINDIR}"/qtwaylandscanner || die +} diff --git a/dev-qt/qtwebchannel/Manifest b/dev-qt/qtwebchannel/Manifest new file mode 100644 index 00000000..15b85c40 --- /dev/null +++ b/dev-qt/qtwebchannel/Manifest @@ -0,0 +1,6 @@ +AUX qtwebchannel-5.15.17-gentoo-kde-1/0001-Handle-signals-in-the-registered-object-s-thread.patch 7311 BLAKE2B 3a1bc6e923fd25b060546164995a2878005c58d2ba8bea9d9c9a2b153fd0e6f9de7a868157287e6034619a282be720715ed4b74de2428c8652ab46ee0ed72627 SHA512 023ad0339df3350c31acbe31b8032e722546029e0420501e767776505dd875b651e24fb843b9d9dabbc27338e03c66a43334ff192e349bc68a873b2fa03163c8 +AUX qtwebchannel-5.15.17-gentoo-kde-1/0002-Handle-per-transport-client-idle-status.patch 12871 BLAKE2B 19abe9c237a671789900eb15f22d09cbba2aa893db73cb071cba266599ffb539d045f50078d98d18f1fdea4e16e07091b9e2b64a63b797665b8ab9088ef9cc63 SHA512 12def99bd3f8bb1b194a12f57e1eff28dfdc01a57743fb52e0d5547a6000f9f96793d2b311eca54342ca52583c3c41e6ee134fe0e313c3c1b0c05ebcf853d49e +AUX qtwebchannel-5.15.17-gentoo-kde-1/0003-QMetaObjectPublisher-Never-send-stale-queued-message.patch 2749 BLAKE2B a50a4cc5a555e672b268132413c9ccf6d2701de9d712abf29a1e56a9e905f4004169819916c4642e70ebaf709a4aaf2e9d31d102a34de3056714fa51348f6ef1 SHA512 c766bb8724207ffa05537f1c8d93be248013d9036fc4f9ab6dfe61ac9f9230cb8f263dbce168dee4ad736079f3ac4c16ebeff121938d3aaee6b695cccb31778f +DIST qtwebchannel-everywhere-opensource-src-5.15.18.tar.xz 189272 BLAKE2B ec455c35b96c5b4027cdba2ef0f735dafba18354a3f68230d8046153d41654c3abf9dc74ac8478156a7e9db0736dd7540133911fce579820c5ee6cb6ee154777 SHA512 fb867510da8b74cac277598e346c5eed7bbaaa6b1be85c39b804a07209922ccdc87e314d9ced4eeb966cc06888127772dff517a8f6fef10c8e87080a59112bfa +EBUILD qtwebchannel-5.15.18.ebuild 681 BLAKE2B 22978c9b19c81db1f455156bb2c60593ca22209f6bef0aa1bcc935b034a5b2804869ad71340d97c026fe1aa3e81ea806fc5c540f7927fee9cf3debdb0e944e16 SHA512 439853874a4b9fdea5e345f7837b70ab6d29d575f6b17fe7f635610635027a4d896ef561a120ac1c64e25a7479f8e863523cab0db7c5acab7920f6b38ddf0dfe +MISC metadata.xml 617 BLAKE2B c9bdd6bc7b0e0aae943acc9060d1ef91d46e5e836f7a034c863032dff51b540edc0643cfd3ea0c4c4e18472a099537aee2b13994ea6fa97249dff25ad5291575 SHA512 ecc344957ebad7d9adc689c343c8315d38fc4d219f0a3bfb6ca848d2d083b0d29d01365a5287d3d5943a95dc75c1147c2e60a2078083a88832296ed0fbee2d4c diff --git a/dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0001-Handle-signals-in-the-registered-object-s-thread.patch b/dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0001-Handle-signals-in-the-registered-object-s-thread.patch new file mode 100644 index 00000000..40cc7c01 --- /dev/null +++ b/dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0001-Handle-signals-in-the-registered-object-s-thread.patch @@ -0,0 +1,181 @@ +From 886d16fc8e93b5d758a23ce78504e1abc2550a1e Mon Sep 17 00:00:00 2001 +From: Milian Wolff +Date: Fri, 13 Dec 2019 18:07:26 +0100 +Subject: [PATCH 1/3] Handle signals in the registered object's thread + +Do not call `sender()` from a different thread. As the API documentation +indicates, that is not supported and can lead to crashes as experienced +on the CI frequently. + +Instead, we now have per-thread SignalHandlers and use those to get +notified about signals and metacall events. + +Moving a registered object into a different thread isn't supported once +it was registered. But the object can be deregistered, moved, and then +re-registered. + +[ChangeLog] Signals from objects living in a different thread than the +QWebChannel are now handled correctly. + +Task-number: QTBUG-51366 +Change-Id: I1edb0694b946a494b6c0d4a8a6dc6b452dcb2c7a +Reviewed-by: Arno Rehn +Reviewed-by: Qt CI Bot +(cherry picked from commit 28455e59c0b940200fe0223472a80104ce1a02dd) +--- + src/webchannel/qmetaobjectpublisher.cpp | 23 +++++++++++++++++------ + src/webchannel/qmetaobjectpublisher_p.h | 5 ++++- + src/webchannel/signalhandler_p.h | 3 +++ + tests/auto/webchannel/tst_webchannel.cpp | 4 +--- + 4 files changed, 25 insertions(+), 10 deletions(-) + +diff --git a/src/webchannel/qmetaobjectpublisher.cpp b/src/webchannel/qmetaobjectpublisher.cpp +index 536eb5c..e997b75 100644 +--- a/src/webchannel/qmetaobjectpublisher.cpp ++++ b/src/webchannel/qmetaobjectpublisher.cpp +@@ -186,7 +186,6 @@ Q_DECLARE_TYPEINFO(OverloadResolutionCandidate, Q_MOVABLE_TYPE); + QMetaObjectPublisher::QMetaObjectPublisher(QWebChannel *webChannel) + : QObject(webChannel) + , webChannel(webChannel) +- , signalHandler(this) + , clientIsIdle(false) + , blockUpdates(false) + , propertyUpdatesInitialized(false) +@@ -333,6 +332,7 @@ QJsonObject QMetaObjectPublisher::initializeClient(QWebChannelAbstractTransport + + void QMetaObjectPublisher::initializePropertyUpdates(const QObject *const object, const QJsonObject &objectInfo) + { ++ auto *signalHandler = signalHandlerFor(object); + foreach (const QJsonValue &propertyInfoVar, objectInfo[KEY_PROPERTIES].toArray()) { + const QJsonArray &propertyInfo = propertyInfoVar.toArray(); + if (propertyInfo.size() < 2) { +@@ -353,14 +353,14 @@ void QMetaObjectPublisher::initializePropertyUpdates(const QObject *const object + + // Only connect for a property update once + if (connectedProperties.isEmpty()) { +- signalHandler.connectTo(object, signalIndex); ++ signalHandler->connectTo(object, signalIndex); + } + + connectedProperties.insert(propertyIndex); + } + + // also always connect to destroyed signal +- signalHandler.connectTo(object, s_destroyedSignalIndex); ++ signalHandler->connectTo(object, s_destroyedSignalIndex); + } + + void QMetaObjectPublisher::sendPendingPropertyUpdates() +@@ -590,7 +590,7 @@ void QMetaObjectPublisher::objectDestroyed(const QObject *object) + // only remove from handler when we initialized the property updates + // cf: https://bugreports.qt.io/browse/QTBUG-60250 + if (propertyUpdatesInitialized) { +- signalHandler.remove(object); ++ signalHandlerFor(object)->remove(object); + signalToPropertyMap.remove(object); + } + pendingPropertyUpdates.remove(object); +@@ -913,9 +913,9 @@ void QMetaObjectPublisher::handleMessage(const QJsonObject &message, QWebChannel + return; + transport->sendMessage(createResponse(message.value(KEY_ID), wrapResult(result, transport))); + } else if (type == TypeConnectToSignal) { +- signalHandler.connectTo(object, message.value(KEY_SIGNAL).toInt(-1)); ++ signalHandlerFor(object)->connectTo(object, message.value(KEY_SIGNAL).toInt(-1)); + } else if (type == TypeDisconnectFromSignal) { +- signalHandler.disconnectFrom(object, message.value(KEY_SIGNAL).toInt(-1)); ++ signalHandlerFor(object)->disconnectFrom(object, message.value(KEY_SIGNAL).toInt(-1)); + } else if (type == TypeSetProperty) { + setProperty(object, message.value(KEY_PROPERTY).toInt(-1), + message.value(KEY_VALUE)); +@@ -948,4 +948,15 @@ void QMetaObjectPublisher::timerEvent(QTimerEvent *event) + } + } + ++SignalHandler *QMetaObjectPublisher::signalHandlerFor(const QObject *object) ++{ ++ auto thread = object->thread(); ++ auto it = signalHandlers.find(thread); ++ if (it == signalHandlers.end()) { ++ it = signalHandlers.emplace(thread, this).first; ++ it->second.moveToThread(thread); ++ } ++ return &it->second; ++} ++ + QT_END_NAMESPACE +diff --git a/src/webchannel/qmetaobjectpublisher_p.h b/src/webchannel/qmetaobjectpublisher_p.h +index bbd9875..ded0d33 100644 +--- a/src/webchannel/qmetaobjectpublisher_p.h ++++ b/src/webchannel/qmetaobjectpublisher_p.h +@@ -60,6 +60,8 @@ + #include + #include + ++#include ++ + #include "qwebchannelglobal.h" + + QT_BEGIN_NAMESPACE +@@ -272,7 +274,8 @@ private: + friend class TestWebChannel; + + QWebChannel *webChannel; +- SignalHandler signalHandler; ++ std::unordered_map> signalHandlers; ++ SignalHandler *signalHandlerFor(const QObject *object); + + // true when the client is idle, false otherwise + bool clientIsIdle; +diff --git a/src/webchannel/signalhandler_p.h b/src/webchannel/signalhandler_p.h +index 66b6147..1b08643 100644 +--- a/src/webchannel/signalhandler_p.h ++++ b/src/webchannel/signalhandler_p.h +@@ -56,6 +56,7 @@ + #include + #include + #include ++#include + + QT_BEGIN_NAMESPACE + +@@ -71,6 +72,7 @@ static const int s_destroyedSignalIndex = QObject::staticMetaObject.indexOfMetho + template + class SignalHandler : public QObject + { ++ Q_DISABLE_COPY(SignalHandler) + public: + SignalHandler(Receiver *receiver, QObject *parent = 0); + +@@ -268,6 +270,7 @@ int SignalHandler::qt_metacall(QMetaObject::Call call, int methodId, v + if (call == QMetaObject::InvokeMetaMethod) { + const QObject *object = sender(); + Q_ASSERT(object); ++ Q_ASSERT(QThread::currentThread() == object->thread()); + Q_ASSERT(senderSignalIndex() == methodId); + Q_ASSERT(m_connectionsCounter.contains(object)); + Q_ASSERT(m_connectionsCounter.value(object).contains(methodId)); +diff --git a/tests/auto/webchannel/tst_webchannel.cpp b/tests/auto/webchannel/tst_webchannel.cpp +index 181da9e..7f846f5 100644 +--- a/tests/auto/webchannel/tst_webchannel.cpp ++++ b/tests/auto/webchannel/tst_webchannel.cpp +@@ -943,8 +943,6 @@ void TestWebChannel::testInfiniteRecursion() + + void TestWebChannel::testAsyncObject() + { +- QSKIP("This test is broken. See QTBUG-80729"); +- + QWebChannel channel; + channel.connectTo(m_dummyTransport); + +@@ -1082,7 +1080,7 @@ void TestWebChannel::benchInitializeClients() + + publisher->propertyUpdatesInitialized = false; + publisher->signalToPropertyMap.clear(); +- publisher->signalHandler.clear(); ++ publisher->signalHandlers.clear(); + } + } + +-- +2.49.0 + diff --git a/dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0002-Handle-per-transport-client-idle-status.patch b/dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0002-Handle-per-transport-client-idle-status.patch new file mode 100644 index 00000000..05939014 --- /dev/null +++ b/dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0002-Handle-per-transport-client-idle-status.patch @@ -0,0 +1,335 @@ +From 59b4bf9c1e94959a427782338f2115edd0c47b8a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=98ystein=20Heskestad?= +Date: Fri, 7 May 2021 15:23:38 +0200 +Subject: [PATCH 2/3] Handle per-transport client idle status + +[ChangeLog][QMetaObjectPublisher] Handle per-transport client idle status + +Task-number: QTBUG-92927 +Change-Id: I5a06261e6dddb0fc0fae9f73b280c61cf5a2b52d +Reviewed-by: Arno Rehn +(cherry picked from commit a7199de7d90f48ce3d95cae795bd9209c39516ce) +--- + src/webchannel/qmetaobjectpublisher.cpp | 71 ++++++++++++++++++------ + src/webchannel/qmetaobjectpublisher_p.h | 39 +++++++++++-- + tests/auto/qml/testwebchannel.cpp | 6 +- + tests/auto/webchannel/tst_webchannel.cpp | 48 +++++++++++++++- + tests/auto/webchannel/tst_webchannel.h | 1 + + 5 files changed, 138 insertions(+), 27 deletions(-) + +diff --git a/src/webchannel/qmetaobjectpublisher.cpp b/src/webchannel/qmetaobjectpublisher.cpp +index e997b75..3897c07 100644 +--- a/src/webchannel/qmetaobjectpublisher.cpp ++++ b/src/webchannel/qmetaobjectpublisher.cpp +@@ -186,7 +186,6 @@ Q_DECLARE_TYPEINFO(OverloadResolutionCandidate, Q_MOVABLE_TYPE); + QMetaObjectPublisher::QMetaObjectPublisher(QWebChannel *webChannel) + : QObject(webChannel) + , webChannel(webChannel) +- , clientIsIdle(false) + , blockUpdates(false) + , propertyUpdatesInitialized(false) + { +@@ -300,17 +299,17 @@ QJsonObject QMetaObjectPublisher::classInfoForObject(const QObject *object, QWeb + return data; + } + +-void QMetaObjectPublisher::setClientIsIdle(bool isIdle) ++void QMetaObjectPublisher::setClientIsIdle(bool isIdle, QWebChannelAbstractTransport *transport) + { +- if (clientIsIdle == isIdle) { +- return; +- } +- clientIsIdle = isIdle; +- if (!isIdle && timer.isActive()) { +- timer.stop(); +- } else if (isIdle && !timer.isActive()) { +- timer.start(PROPERTY_UPDATE_INTERVAL, this); +- } ++ transportState[transport].clientIsIdle = isIdle; ++ if (isIdle) ++ sendEnqueuedPropertyUpdates(transport); ++} ++ ++bool QMetaObjectPublisher::isClientIdle(QWebChannelAbstractTransport *transport) ++{ ++ auto found = transportState.find(transport); ++ return found != transportState.end() && found.value().clientIsIdle; + } + + QJsonObject QMetaObjectPublisher::initializeClient(QWebChannelAbstractTransport *transport) +@@ -365,7 +364,7 @@ void QMetaObjectPublisher::initializePropertyUpdates(const QObject *const object + + void QMetaObjectPublisher::sendPendingPropertyUpdates() + { +- if (blockUpdates || !clientIsIdle || pendingPropertyUpdates.isEmpty()) { ++ if (blockUpdates) { + return; + } + +@@ -415,18 +414,19 @@ void QMetaObjectPublisher::sendPendingPropertyUpdates() + + // data does not contain specific updates + if (!data.isEmpty()) { +- setClientIsIdle(false); +- + message[KEY_DATA] = data; +- broadcastMessage(message); ++ enqueueBroadcastMessage(message); + } + + // send every property update which is not supposed to be broadcasted + const QHash::const_iterator suend = specificUpdates.constEnd(); + for (QHash::const_iterator it = specificUpdates.constBegin(); it != suend; ++it) { + message[KEY_DATA] = it.value(); +- it.key()->sendMessage(message); ++ enqueueMessage(message, it.key()); + } ++ ++ for (auto state = transportState.begin(); state != transportState.end(); ++state) ++ sendEnqueuedPropertyUpdates(state.key()); + } + + QVariant QMetaObjectPublisher::invokeMethod(QObject *const object, const QMetaMethod &method, +@@ -572,7 +572,7 @@ void QMetaObjectPublisher::signalEmitted(const QObject *object, const int signal + } + } else { + pendingPropertyUpdates[object][signalIndex] = arguments; +- if (clientIsIdle && !blockUpdates && !timer.isActive()) { ++ if (!blockUpdates && !timer.isActive()) { + timer.start(PROPERTY_UPDATE_INTERVAL, this); + } + } +@@ -852,6 +852,40 @@ void QMetaObjectPublisher::broadcastMessage(const QJsonObject &message) const + } + } + ++void QMetaObjectPublisher::enqueueBroadcastMessage(const QJsonObject &message) ++{ ++ if (webChannel->d_func()->transports.isEmpty()) { ++ qWarning("QWebChannel is not connected to any transports, cannot send message: %s", ++ QJsonDocument(message).toJson().constData()); ++ return; ++ } ++ ++ for (auto *transport : webChannel->d_func()->transports) { ++ auto &state = transportState[transport]; ++ state.queuedMessages.append(message); ++ } ++} ++ ++void QMetaObjectPublisher::enqueueMessage(const QJsonObject &message, ++ QWebChannelAbstractTransport *transport) ++{ ++ auto &state = transportState[transport]; ++ state.queuedMessages.append(message); ++} ++ ++void QMetaObjectPublisher::sendEnqueuedPropertyUpdates(QWebChannelAbstractTransport *transport) ++{ ++ auto found = transportState.find(transport); ++ if (found != transportState.end() && found.value().clientIsIdle ++ && !found.value().queuedMessages.isEmpty()) { ++ for (auto message : found.value().queuedMessages) { ++ transport->sendMessage(message); ++ } ++ found.value().queuedMessages.clear(); ++ found.value().clientIsIdle = false; ++ } ++} ++ + void QMetaObjectPublisher::handleMessage(const QJsonObject &message, QWebChannelAbstractTransport *transport) + { + if (!webChannel->d_func()->transports.contains(transport)) { +@@ -866,7 +900,7 @@ void QMetaObjectPublisher::handleMessage(const QJsonObject &message, QWebChannel + + const MessageType type = toType(message.value(KEY_TYPE)); + if (type == TypeIdle) { +- setClientIsIdle(true); ++ setClientIsIdle(true, transport); + } else if (type == TypeInit) { + if (!message.contains(KEY_ID)) { + qWarning("JSON message object is missing the id property: %s", +@@ -931,6 +965,7 @@ void QMetaObjectPublisher::setBlockUpdates(bool block) + blockUpdates = block; + + if (!blockUpdates) { ++ timer.start(PROPERTY_UPDATE_INTERVAL, this); + sendPendingPropertyUpdates(); + } else if (timer.isActive()) { + timer.stop(); +diff --git a/src/webchannel/qmetaobjectpublisher_p.h b/src/webchannel/qmetaobjectpublisher_p.h +index ded0d33..4713ef1 100644 +--- a/src/webchannel/qmetaobjectpublisher_p.h ++++ b/src/webchannel/qmetaobjectpublisher_p.h +@@ -59,6 +59,7 @@ + #include + #include + #include ++#include + + #include + +@@ -111,17 +112,36 @@ public: + */ + void broadcastMessage(const QJsonObject &message) const; + ++ /** ++ * Enqueue the given @p message to all known transports. ++ */ ++ void enqueueBroadcastMessage(const QJsonObject &message); ++ ++ /** ++ * Enqueue the given @p message to @p transport. ++ */ ++ void enqueueMessage(const QJsonObject &message, QWebChannelAbstractTransport *transport); ++ ++ /** ++ * If client for given @p transport is idle, send queued messaged to @p transport and then mark ++ * the client as not idle. ++ */ ++ void sendEnqueuedPropertyUpdates(QWebChannelAbstractTransport *transport); ++ + /** + * Serialize the QMetaObject of @p object and return it in JSON form. + */ + QJsonObject classInfoForObject(const QObject *object, QWebChannelAbstractTransport *transport); + + /** +- * Set the client to idle or busy, based on the value of @p isIdle. +- * +- * When the value changed, start/stop the property update timer accordingly. ++ * Set the client to idle or busy for a single @p transport, based on the value of @p isIdle. + */ +- void setClientIsIdle(bool isIdle); ++ void setClientIsIdle(bool isIdle, QWebChannelAbstractTransport *transport); ++ ++ /** ++ * Check that client is idle for @p transport. ++ */ ++ bool isClientIdle(QWebChannelAbstractTransport *transport); + + /** + * Initialize clients by sending them the class information of the registered objects. +@@ -277,8 +297,15 @@ private: + std::unordered_map> signalHandlers; + SignalHandler *signalHandlerFor(const QObject *object); + +- // true when the client is idle, false otherwise +- bool clientIsIdle; ++ struct TransportState ++ { ++ TransportState() : clientIsIdle(false) { } ++ // true when the client is idle, false otherwise ++ bool clientIsIdle; ++ // messages to send ++ QQueue queuedMessages; ++ }; ++ QHash transportState; + + // true when no property updates should be sent, false otherwise + bool blockUpdates; +diff --git a/tests/auto/qml/testwebchannel.cpp b/tests/auto/qml/testwebchannel.cpp +index 9891687..3ca81c2 100644 +--- a/tests/auto/qml/testwebchannel.cpp ++++ b/tests/auto/qml/testwebchannel.cpp +@@ -46,7 +46,11 @@ TestWebChannel::~TestWebChannel() + + bool TestWebChannel::clientIsIdle() const + { +- return QWebChannel::d_func()->publisher->clientIsIdle; ++ for (auto *transport : QWebChannel::d_func()->transports) { ++ if (QWebChannel::d_func()->publisher->isClientIdle(transport)) ++ return true; ++ } ++ return false; + } + + QT_END_NAMESPACE +diff --git a/tests/auto/webchannel/tst_webchannel.cpp b/tests/auto/webchannel/tst_webchannel.cpp +index 7f846f5..37f989a 100644 +--- a/tests/auto/webchannel/tst_webchannel.cpp ++++ b/tests/auto/webchannel/tst_webchannel.cpp +@@ -785,7 +785,7 @@ void TestWebChannel::testTransportWrapObjectProperties() + DummyTransport *dummyTransport = new DummyTransport(this); + channel.connectTo(dummyTransport); + channel.d_func()->publisher->initializeClient(dummyTransport); +- channel.d_func()->publisher->setClientIsIdle(true); ++ channel.d_func()->publisher->setClientIsIdle(true, dummyTransport); + + QCOMPARE(channel.d_func()->publisher->transportedWrappedObjects.size(), 0); + +@@ -988,6 +988,50 @@ void TestWebChannel::testAsyncObject() + thread.wait(); + } + ++void TestWebChannel::testPropertyMultipleTransports() ++{ ++ DummyTransport transport1; ++ DummyTransport transport2; ++ ++ QWebChannel channel; ++ QMetaObjectPublisher *publisher = channel.d_func()->publisher; ++ ++ TestObject testObj; ++ testObj.setObjectName("testObject"); ++ channel.registerObject(testObj.objectName(), &testObj); ++ channel.connectTo(&transport1); ++ channel.connectTo(&transport2); ++ ++ testObj.setProp("Hello"); ++ ++ publisher->initializeClient(&transport1); ++ publisher->initializeClient(&transport2); ++ publisher->setClientIsIdle(true, &transport1); ++ QCOMPARE(publisher->isClientIdle(&transport1), true); ++ QCOMPARE(publisher->isClientIdle(&transport2), false); ++ QVERIFY(transport1.messagesSent().isEmpty()); ++ QVERIFY(transport2.messagesSent().isEmpty()); ++ ++ testObj.setProp("World"); ++ QTRY_COMPARE_WITH_TIMEOUT(transport1.messagesSent().size(), 1u, 2000); ++ QCOMPARE(transport2.messagesSent().size(), 0u); ++ publisher->setClientIsIdle(true, &transport2); ++ QTRY_COMPARE_WITH_TIMEOUT(transport2.messagesSent().size(), 1u, 2000); ++ QCOMPARE(publisher->isClientIdle(&transport1), false); ++ QCOMPARE(publisher->isClientIdle(&transport2), false); ++ ++ testObj.setProp("!!!"); ++ publisher->setClientIsIdle(true, &transport2); ++ QCOMPARE(publisher->isClientIdle(&transport2), true); ++ QCOMPARE(publisher->isClientIdle(&transport1), false); ++ QTRY_COMPARE_WITH_TIMEOUT(transport2.messagesSent().size(), 2u, 2000); ++ QCOMPARE(transport1.messagesSent().size(), 1u); ++ publisher->setClientIsIdle(true, &transport1); ++ QTRY_COMPARE_WITH_TIMEOUT(transport1.messagesSent().size(), 2u, 2000); ++ QCOMPARE(publisher->isClientIdle(&transport1), false); ++ QCOMPARE(publisher->isClientIdle(&transport2), false); ++} ++ + class FunctionWrapper : public QObject + { + Q_OBJECT +@@ -1105,7 +1149,7 @@ void TestWebChannel::benchPropertyUpdates() + obj->change(); + } + +- channel.d_func()->publisher->clientIsIdle = true; ++ channel.d_func()->publisher->setClientIsIdle(true, m_dummyTransport); + channel.d_func()->publisher->sendPendingPropertyUpdates(); + } + } +diff --git a/tests/auto/webchannel/tst_webchannel.h b/tests/auto/webchannel/tst_webchannel.h +index eae21f4..dd4e690 100644 +--- a/tests/auto/webchannel/tst_webchannel.h ++++ b/tests/auto/webchannel/tst_webchannel.h +@@ -348,6 +348,7 @@ private slots: + void testJsonToVariant(); + void testInfiniteRecursion(); + void testAsyncObject(); ++ void testPropertyMultipleTransports(); + void testDeletionDuringMethodInvocation_data(); + void testDeletionDuringMethodInvocation(); + +-- +2.49.0 + diff --git a/dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0003-QMetaObjectPublisher-Never-send-stale-queued-message.patch b/dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0003-QMetaObjectPublisher-Never-send-stale-queued-message.patch new file mode 100644 index 00000000..62c070e4 --- /dev/null +++ b/dev-qt/qtwebchannel/files/qtwebchannel-5.15.17-gentoo-kde-1/0003-QMetaObjectPublisher-Never-send-stale-queued-message.patch @@ -0,0 +1,60 @@ +From 85ba097de9759efe5563156e43de1ad8473d5d54 Mon Sep 17 00:00:00 2001 +From: Arno Rehn +Date: Wed, 8 Dec 2021 22:44:49 +0100 +Subject: [PATCH 3/3] QMetaObjectPublisher: Never send stale queued messages + +If the client is connected with an in-process transport, it can happen +that a transmitted message triggers a subsequent property change. +In that case, we need to ensure that the queued messages have already +been cleared; otherwise the recursive call will send everythig again. + +Case in point: The qmlwebchannel tests fail if we don't clear the +queued messages before sending them out. + +For that same reason set the client to "busy" (aka non-idle) just right +before sending out the messages; otherwise a potential "Idle" type +message will not correctly restore the Idle state. + +Pick-to: 6.2 +Pick-to: 6.3 +Change-Id: Idc4afdd5cf4b4e03b8de8953a03d28442d74a3ab +Reviewed-by: Fabian Kosmale +(cherry picked from commit b4bf8f5e043120341cd9caa59f25a2beecd94ad0) +--- + src/webchannel/qmetaobjectpublisher.cpp | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/src/webchannel/qmetaobjectpublisher.cpp b/src/webchannel/qmetaobjectpublisher.cpp +index 3897c07..898d769 100644 +--- a/src/webchannel/qmetaobjectpublisher.cpp ++++ b/src/webchannel/qmetaobjectpublisher.cpp +@@ -878,11 +878,23 @@ void QMetaObjectPublisher::sendEnqueuedPropertyUpdates(QWebChannelAbstractTransp + auto found = transportState.find(transport); + if (found != transportState.end() && found.value().clientIsIdle + && !found.value().queuedMessages.isEmpty()) { +- for (auto message : found.value().queuedMessages) { ++ ++ // If the client is connected with an in-process transport, it can ++ // happen that a message triggers a subsequent property change. In ++ // that case, we need to ensure that the queued messages have already ++ // been cleared; otherwise the recursive call will send everythig again. ++ // Case in point: The qmlwebchannel tests fail if we don't clear the ++ // queued messages before sending them out. ++ // For that same reason set the client to "busy" (aka non-idle) just ++ // right before sending out the messages; otherwise a potential ++ // "Idle" type message will not correctly restore the Idle state. ++ const auto messages = std::move(found.value().queuedMessages); ++ Q_ASSERT(found.value().queuedMessages.isEmpty()); ++ found.value().clientIsIdle = false; ++ ++ for (const auto &message : messages) { + transport->sendMessage(message); + } +- found.value().queuedMessages.clear(); +- found.value().clientIsIdle = false; + } + } + +-- +2.49.0 + diff --git a/dev-qt/qtwebchannel/metadata.xml b/dev-qt/qtwebchannel/metadata.xml new file mode 100644 index 00000000..40635300 --- /dev/null +++ b/dev-qt/qtwebchannel/metadata.xml @@ -0,0 +1,21 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build QML/QtQuick bindings and imports + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtwebchannel + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtwebchannel/qtwebchannel-5.15.18.ebuild b/dev-qt/qtwebchannel/qtwebchannel-5.15.18.ebuild new file mode 100644 index 00000000..f898005b --- /dev/null +++ b/dev-qt/qtwebchannel/qtwebchannel-5.15.18.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + #QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86" +fi + +inherit qt5-build + +DESCRIPTION="Qt5 module for integrating C++ and QML applications with HTML/JavaScript clients" + +IUSE="qml" +RESTRICT="mirror" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + qml? ( =dev-qt/qtdeclarative-${QT5_PV}* ) +" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}/${QT5_MODULE}-5.15.17-gentoo-kde-1" +) + +src_prepare() { + qt_use_disable_mod qml quick src/src.pro + qt_use_disable_mod qml qml src/webchannel/webchannel.pro + + qt5-build_src_prepare +} diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest index 38355d95..8edd6782 100644 --- a/dev-qt/qtwebengine/Manifest +++ b/dev-qt/qtwebengine/Manifest @@ -4,10 +4,26 @@ AUX qtwebengine-5.15.13_p20240510-gcc15.patch 1308 BLAKE2B d206c6df9b88f706ade2f AUX qtwebengine-5.15.14_p20240510-gcc15-cstdint.patch 5506 BLAKE2B 2e31854e3beef5f25300a9b12158e9eabb674d54c07b563a4a7ffafe5c06dabdd808a776d4155f23ee7f0a917970d614f9060428ba8613d6cf15228bfc9d6b4c SHA512 e536d79f8841816858b5bd92adba6a862bce7149cc66c010885b82c8c92502a81e3fdb0038b21eafbdf046432a3b2c4c95b0352a608c0a99d0868813d56f00aa AUX qtwebengine-5.15.14_p20240510-gcc15-template-id-cdtor.patch 3299 BLAKE2B 2809e25858ac17f776bd20fdcbc4c8b658b7f2587390dfbce133939ddd11134a71b6f139f39b9bf46a5e99a7d8335d5242d3a2caad832e6252d817504b6e6e12 SHA512 cbef06092de6337b4559d44443947e9578d127f4d319027550de7c4289665e0d516e5229cc0f9a0855691ceb62cdd32fb5a5fb88ff6cfbe28e1985aae9828ed7 AUX qtwebengine-5.15.14_p20240510-icu-75.patch 5107 BLAKE2B fc61801f5bbf5583610afe5af8ed60a90f94a248c0aa16b94f6df96e239e9c1cfe1fc40da487d3a25fc600a798b33c5bf8384c6d6cfcd0ff9446c20aae5f8f84 SHA512 b812dc26e6135cd69df9ef3b9049509be9888e012394af3c496b03666e80c63f4c827916398d94f7499f73739ca70829108b60705d5b2329f3134dd695a029eb +AUX qtwebengine-5.15.14_p20240510-patchset/001-disable-fatal-warnings.patch 442 BLAKE2B d2f303f03f817c1e10d0c3c64deaefce773cb63852e8a37ba1c4611e26e850c5722e708425525a6fbfe170ce757a7fcb89e0324e3ea41f4ddeafd4bc15cc5c3b SHA512 79503e9278b50b5ac799852958850c54027c329f32242747514bbc7253192893c9ce5b9c6feeae7918f9e0f4047526adfb1c9ac9c0c5dcc625fe7b1507a93d23 +AUX qtwebengine-5.15.14_p20240510-patchset/002-extra-gn.patch 458 BLAKE2B 0595f06d31fd83a04cc0ef9fb7567374c28c4d09c8774e6584d288aa18c2386efe699bd1d155fdee96f5960d3575baff6a6aa7a694d0c953401f80add9daf6c3 SHA512 81498f04c1ad4d73e888bba31fb1129e24990bcddb1d68111b004bba2e4fdab91698b3fe1d01bd94a0bf904e52f614cddc4ba6f70ffaf6a1d45e37a53e583629 +AUX qtwebengine-5.15.14_p20240510-patchset/003-chromium-87-v8-icu68.patch 7361 BLAKE2B 0a5ab9077982df3afea7d156e0dbaf11384d7b9ab6ea70ef4dc0b82f1690e455144318734cb50b7bf2349a95b99325e67bbfcbdf5c88f55f3ecc65c7e593c468 SHA512 585dab11bf6cf811b657831292d5b6b90dd01d9e4c1fa4b6a446d0eb66f436c46a6fcd4851e9c6b6b0bda8a41cbea57fe74ca5ecca4e40cb35f85d7c2f5265e7 +AUX qtwebengine-5.15.14_p20240510-patchset/004-disable-git.patch 501 BLAKE2B a295e5061830da6bfaf0c0ae6db832c86f797fa2426ec29e244133e862c0998a03373c11a2a31944bc09e0a20bf30c0a0a91eb06b1f8a9fdcdd9762f5ba7c542 SHA512 b795328058be945e7a323ea50f01cd5c11b130bc1204c8274fec920e04cce1643d8f9313e975f451dbb7dfecd6214f9ff9ea0aec87ad29237b6e9bb1b4114c5f +AUX qtwebengine-5.15.14_p20240510-patchset/005-pdfium-system-lcms2.patch 2182 BLAKE2B cc19cc0c1242f7193f62a550ceb6358e43fcbdf6f95ddee373a3a775448908d6d0a661c6406e6c7578013a32ae280198263a94804e76c87e99db064dc972db7c SHA512 8890ab95300c148e21315a201ac56d04aca1ccc402e464b6ec1b90a69127a4fa02398893007f98eb40ea78d0abe56d459c34eba3c5cdd1521d4ab567225bced1 +AUX qtwebengine-5.15.14_p20240510-patchset/006-clang14.patch 1883 BLAKE2B 9f4afae3ea240841f8b009df0cc71f9f23361f5205a3ced968b6ddaaf36b16fb880baffe4f4eb0def9d45fa267a7a4e43dcccacc47ea474e0914f4159877ee56 SHA512 8de250760738386799523b3ad29dfae37120a69d4d469274e96d80ade8b26afad39f54651ec80b8a17ac5b2083193283b167a0ed0438b1d926e45ff69f067a14 +AUX qtwebengine-5.15.14_p20240510-patchset/007-gcc12-includes.patch 1139 BLAKE2B ba451fcef0dd235f6044622913197581fe2d2f3de8b6342fd9dc0f6706c28a16d8d6b6ad5429f6f2ea3a211a3cd01b730a1b36fd1f34e61b4391d19e0db1ae91 SHA512 7104313aec55fc8eede53cc966833f8e2632d175e4206dd90da2fa42807795152a01010e2cce7bacd57f30cd3fdbbfef32624d5763210d08362beda77a5724cd +AUX qtwebengine-5.15.14_p20240510-patchset/008-jumbo-build.patch 10385 BLAKE2B 388a99f50bfa6dcd6cd27711f654e2696f0059082e17979ffaca43f92bd1097648677562de8599212c18caaf6e11c9a454b0d3721fad1b8af1e5bd27d485b7a9 SHA512 db0a0af59bf4282df89a26a4233352ea4997b70e174c1f14abaf307a738dbd5cb88b346ab3265a5fdc2fd262f6dcde4bb6c09b4e28fe6225a755aea54e6e65dd +AUX qtwebengine-5.15.14_p20240510-patchset/009-port-to-pipewire-0.3.patch 65037 BLAKE2B e26087f781de07cf0d87d41eb02894dd2ad54326e780890788d62a8dda32d81be7b1f844a0a49676b86e61c99e8d303515f9b747d6ea82ef5cf2bd8a84b1f449 SHA512 efa9835abe8820d8cf7a26c77ff6469c77d1e5f614e326bb69ccf26221502efa6517a16ab1ed4c1457858cfa37cd8e6c205ddfa611ebe44a145f2429787e02aa +AUX qtwebengine-5.15.14_p20240510-patchset/010-widevine.patch 4482 BLAKE2B 25cb06e27d51011df57b63053bc97f20bf0062167d0915b2d4da5b5b7164b5f35ef66b19da69acd3fac16bf9264e85e5d69987a6c38284033c77058b9146ea20 SHA512 f05969ce3355ca23cdaad822e052f4a12350598cd9a5bf5af72f9f10e1cf43bbbc86f2af3b5e27cd6a9198bd025a7afddb4db35444542d57c9963f3f47a6de97 +AUX qtwebengine-5.15.14_p20240510-patchset/011-clang16.patch 594 BLAKE2B bedc481394382d3ba80f3788993653b94e7c08c2339defaf71252fc2406212bf2eebaaf6c4ff1a66cc5988f40cb837ce305ad416b500de075c301fef11597f04 SHA512 8a6adb43a09c5ca919da87176b617d29fb94cde4b3f30e156215ba41e93c48fb0afab2c52af5d928713d85cba6b3d7e0ba54ef7bd233071874a7d2afb8bd7cdb +AUX qtwebengine-5.15.14_p20240510-patchset/012-python3.12-dubious-imp.patch 807 BLAKE2B 7409c2c30f40e68c285b13e63543a6171f26cc4add3b5ee4a13c4e15880f6d0ce68b93705dfa80efb54a3e8dbdfc295e413d158832b185b15bec5d1766ae5ff8 SHA512 d2823242bbb764704ec8dc2e22ba7c5abc098ea18fba255e5aed2e77eb38a3b7b2baed20b2013486c48a934123a0cfa105498236a80ddbac0eb12dbb390795e7 +AUX qtwebengine-5.15.14_p20240510-patchset/013-python3.12-fix-six.patch 1842 BLAKE2B ccc04adf5b497c5ab24b03247772818335edd66ceaf114d6e93b47559910dc1d1c076f0f9a0c3ef4fd29bd3d452c139b74aab4f41c6b4cbaf39a876ac4b132dc SHA512 4d6b5eda2ce9be44cc9c7bfdb3fd41ffa87ac260d37d30e7af6f4ff7d5ebbf10b17b6119729bbf51f6405494189f82602c657daa139338526b49db89fb8ec682 +AUX qtwebengine-5.15.14_p20240510-patchset/patchseries 613 BLAKE2B b3063fa3624454255e52538df098d411a5ff812472adc919781d5548c91b630d10d61fc32389464062404a4821aa6c52133649becafb73efa032f57b72e52d3d SHA512 261125054f4591fe63f7af9b17660b26924a68d03cbd9e1b3dbdbd0287fa974033533bee7930bdc02aec2f9bd82899b4dd499ead7f4b7f97697cab3f83693aae AUX qtwebengine-5.15.14_p20240510-re2.patch 915 BLAKE2B a29abbec923f78dd7baafdc36b42ed9e0467885ecc04349cbbcec6727628627e84e0172f01e24b34c231d437b75f992b7a173532695085773d899dc94085c66b SHA512 45af510bafc1c838fe273652813d4130ecdef30152f57506b5b6580131cdbcf510acc5ae7bb8d44ac90072c8be7d75b4e0c187240a6522e184db8a11a204f2fc AUX qtwebengine-5.15.16_p20241115-py3.13-pipes.patch 848 BLAKE2B 7696eaf565511adcac5e74f7788633d1e83a88079548f1069c840da40e3ec5fef5fbfa0c019234a40dde14f6f43249792ad1bfc3d2ee8e5669d7fde7234a7ad2 SHA512 79588891105d8dce27e273d4113c31352c6b1035762ea6b1211be5f58299d9e2852b0b98bad34492d9af85e3ae1ca87407ffbf190159d64b0c6d7ba49e842bf8 AUX qtwebengine-5.15.17-py3.13-pipes.patch 848 BLAKE2B 7696eaf565511adcac5e74f7788633d1e83a88079548f1069c840da40e3ec5fef5fbfa0c019234a40dde14f6f43249792ad1bfc3d2ee8e5669d7fde7234a7ad2 SHA512 79588891105d8dce27e273d4113c31352c6b1035762ea6b1211be5f58299d9e2852b0b98bad34492d9af85e3ae1ca87407ffbf190159d64b0c6d7ba49e842bf8 +AUX qtwebengine-5.15.17-spellcheck.patch 1970 BLAKE2B 19774d51af538e9a6bd11fb02ed0ddb73184a87596ca7e6a4102126b54398d581787ec2081602e3f7b9e8e456a5da816226384bc599379eb4ccc0c7a91a12d3b SHA512 e8166ed62b63eb49bdd1ebb91408a81bec7d9251e6a05fefbf857f690f660b8ec58a6459b8cad278e630124dd11b26f67f6f496118085da9ed219314d4c13c86 AUX qtwebengine-5.15.2_p20210521-clang-libc++.patch 358 BLAKE2B a03de632ac4e01cf56c52af3a3bd5ff5bcfd525c67bf2e5d960904a9f3b53e1fa18f0e0df380c0cf84f17914fb313a028e26efaefe6ab5057f0d9a9cf2f6f0fd SHA512 6dc3864064d6084e70d4696fda744701c293ee62e9c9088e3247988ffb8085f30c632e94ac19aef715cbd211b21dfcb98691d5809e21cffd9f04bbb8b04cf0da DIST qtwebengine-5.15.14_p20240510-patchset.tar.xz 20780 BLAKE2B 516d4c628c4b027ab3a7159da006a57173be91de3eb4b7f308029953d4fd19fb3e790ca38e79d17fef75d8d9b392676650acb9285d5913f9ebecaa4136575c47 SHA512 492979d118d6bd9165ee194724e38b627d19c89dbe1daa6b2f55e4a8fc7676748a1eacb9623ee05e09140c2c4a2ac82ddafaef5c45630a117ce0ed14b240a474 DIST qtwebengine-everywhere-opensource-src-5.15.18.tar.xz 319649100 BLAKE2B 61bc11d0932e714400ca19f6ae8c8aa32bb1d4667020481c6b8fb1cc46021cd7bec3f6af476378ffbb1e26318a02a810e1bc339fbf645968a8ffd1d98760aa0c SHA512 731e9b01746efa0696bc89299fa4847157077bd21567a9d3358006d6bb7dddbadea5c085f9dfae12279e41619b4751d1d0009bfd0ee4f9ceab3bd1a567831ed2 EBUILD qtwebengine-5.15.18.ebuild 8200 BLAKE2B 976ef7d8ee0af723841d63c7099015259084ce6ca53507decf279df9e02c01a7234b147334ffb573923acfe3f6fa85c5621b1629bcfc2d055820dbdb9ac4ccfb SHA512 7e74b86a483071229b63a4fbb261570da9382f83b39ca102abdd7f3d77696732ca9494304f74c368688b5dc9bc183e22285dc80eb54f5ab2af2598b619f26135 +MISC metadata.xml 993 BLAKE2B 03a08f6ed6f77a285209f4876e976678462be7b00ddfe6becec4a4294eb3a14598438ca3d4b617036f136fdd88d0a144b1d02f9a6d9f30a16ae329564929f715 SHA512 309e9ab4ee9426b547030f5df41c0053f3e7f399bad963f1c404180feefd3b73e3aeaffd6d1ecfc79c9a1941d046c5060ef2089a5e5deef40df887f9776d989e diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/001-disable-fatal-warnings.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/001-disable-fatal-warnings.patch new file mode 100644 index 00000000..b0f5f3d3 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/001-disable-fatal-warnings.patch @@ -0,0 +1,12 @@ +diff --git a/src/buildtools/config/common.pri b/src/buildtools/config/common.pri +index cf990c79..910a88ca 100644 +--- a/src/buildtools/config/common.pri ++++ b/src/buildtools/config/common.pri +@@ -26,6 +26,7 @@ gn_args += \ + skia_use_dawn=false \ + toolkit_views=false \ + treat_warnings_as_errors=false \ ++ fatal_linker_warnings=false \ + use_allocator_shim=false \ + use_allocator=\"none\" \ + use_custom_libcxx=false \ diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/002-extra-gn.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/002-extra-gn.patch new file mode 100644 index 00000000..a319f521 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/002-extra-gn.patch @@ -0,0 +1,10 @@ +--- a/src/core/gn_run.pro ++++ b/src/core/gn_run.pro +@@ -64,6 +64,7 @@ + } + } else { + gn_args+= "qtwebengine_target=\"$$system_path($$OUT_PWD/$$getConfigDir()):QtWebEngineCore\"" ++ gn_args += $$(EXTRA_GN) + gn_args = $$system_quote($$gn_args) + gn_build_root = $$system_quote($$system_path($$OUT_PWD/$$getConfigDir())) + gn_run = $$gn_binary gen $$gn_build_root $$gn_python --args=$$gn_args --root=$$gn_src_root diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/003-chromium-87-v8-icu68.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/003-chromium-87-v8-icu68.patch new file mode 100644 index 00000000..a6856975 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/003-chromium-87-v8-icu68.patch @@ -0,0 +1,192 @@ +From b0a7f5691113534c2cf771f2dd3cece5e93bc7d4 Mon Sep 17 00:00:00 2001 +From: Frank Tang +Date: Tue, 03 Nov 2020 23:20:37 -0800 +Subject: [PATCH] Update to ICU68-1 + +ICU68-1 change the output skeleton format. So we need to change +resolvedOptions code for 68 migration. + +Chromium roll +https://chromium-review.googlesource.com/c/chromium/src/+/2474093 + +Bug: v8:10945 +Change-Id: I3b2c7fbe8abb22df8fa51287c498ca3245b8c55b +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2477431 +Commit-Queue: Frank Tang +Reviewed-by: Jakob Kummerow +Reviewed-by: Shu-yu Guo +Cr-Commit-Position: refs/heads/master@{#70972} + +(ported to work with CurrencySignString(Isolate* isolate, + Handle UnitDisplayString(Isolate* isolate, + const icu::UnicodeString& skeleton) { + // Ex: skeleton as +- // "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name" ++ // =ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-full-name" + if (skeleton.indexOf("unit-width-full-name") >= 0) { + return ReadOnlyRoots(isolate).long_string_handle(); + } + // Ex: skeleton as +- // "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow". ++ // =ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-narrow". + if (skeleton.indexOf("unit-width-narrow") >= 0) { + return ReadOnlyRoots(isolate).narrow_string_handle(); + } + // Ex: skeleton as +- // "measure-unit/length-foot .### rounding-mode-half-up" ++ // =ICU-68.1: "unit/length-foot .### rounding-mode-half-up" + return ReadOnlyRoots(isolate).short_string_handle(); + } + +@@ -422,7 +425,8 @@ Notation NotationFromSkeleton(const icu::UnicodeString& skeleton) { + return Notation::COMPACT; + } + // Ex: skeleton as +- // "measure-unit/length-foot .### rounding-mode-half-up" ++ // =ICU-68.1: "unit/length-foot .### rounding-mode-half-up" + return Notation::STANDARD; + } + +@@ -562,14 +566,23 @@ namespace { + + // Ex: percent .### rounding-mode-half-up + // Special case for "percent" +-// Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .### +-// rounding-mode-half-up" should return "kilometer-per-unit". +-// Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return +-// "year". ++// =ICU-68.1: ++// Ex: "unit/milliliter-per-acre .### rounding-mode-half-up" ++// should return "milliliter-per-acre". ++// Ex: "unit/year .### rounding-mode-half-up" should return ++// "year". + std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) { + std::string str; + str = skeleton.toUTF8String(str); ++#if U_ICU_VERSION_MAJOR_NUM < 68 + std::string search("measure-unit/"); ++#else ++ std::string search("unit/"); ++#endif + size_t begin = str.find(search); + if (begin == str.npos) { + // Special case for "percent". +@@ -578,20 +591,41 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) { + } + return ""; + } ++#if U_ICU_VERSION_MAJOR_NUM < 68 + // Skip the type (ex: "length"). + // "measure-unit/length-kilometer per-measure-unit/duration-hour" + // b + begin = str.find("-", begin + search.size()); ++#else ++ // Ex: ++ // "unit/acre .### rounding-mode-half-up" ++ // b ++ // Ex: ++ // "unit/milliliter-per-acre .### rounding-mode-half-up" ++ // b ++ begin += search.size(); ++#endif + if (begin == str.npos) { + return ""; + } ++#if U_ICU_VERSION_MAJOR_NUM < 68 + begin++; // Skip the '-'. ++#endif + // Find the end of the subtype. + size_t end = str.find(" ", begin); +- // "measure-unit/length-kilometer per-measure-unit/duration-hour" +- // b e ++ // =ICU-68.1: ++ // Ex: ++ // "unit/acre .### rounding-mode-half-up" ++ // b e ++ // Ex: ++ // "unit/milliliter-per-acre .### rounding-mode-half-up" ++ // b e + if (end == str.npos) { + end = str.size(); ++#if U_ICU_VERSION_MAJOR_NUM < 68 + return str.substr(begin, end - begin); + } + // "measure-unit/length-kilometer per-measure-unit/duration-hour" +@@ -625,17 +659,36 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) { + // "measure-unit/length-kilometer per-measure-unit/duration-hour" + // [result ] b e + return result + "-per-" + str.substr(begin, end - begin); ++#else ++ } ++ return str.substr(begin, end - begin); ++#endif + } + + Style StyleFromSkeleton(const icu::UnicodeString& skeleton) { + if (skeleton.indexOf("currency/") >= 0) { + return Style::CURRENCY; + } ++#if U_ICU_VERSION_MAJOR_NUM < 68 + if (skeleton.indexOf("measure-unit/") >= 0) { + if (skeleton.indexOf("scale/100") >= 0 && + skeleton.indexOf("measure-unit/concentr-percent") >= 0) { ++#else ++ if (skeleton.indexOf("percent") >= 0) { ++ // percent precision-integer rounding-mode-half-up scale/100 ++ if (skeleton.indexOf("scale/100") >= 0) { ++#endif + return Style::PERCENT; ++#if U_ICU_VERSION_MAJOR_NUM >= 68 ++ } else { ++ return Style::UNIT; ++#endif + } ++#if U_ICU_VERSION_MAJOR_NUM >= 68 ++ } ++ // Before ICU68: "measure-unit/", since ICU68 "unit/" ++ if (skeleton.indexOf("unit/") >= 0) { ++#endif + return Style::UNIT; + } + return Style::DECIMAL; +diff --git a/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc b/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc +index 267343aaae..64d56a1c12 100644 +--- a/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc ++++ b/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc +@@ -195,9 +195,18 @@ MaybeHandle JSRelativeTimeFormat::New( + } + } + ++#if U_ICU_VERSION_MAJOR_NUM < 68 + icu::DecimalFormat* decimal_format = + static_cast(number_format); + decimal_format->setMinimumGroupingDigits(-2); ++#else ++ if (number_format->getDynamicClassID() == ++ icu::DecimalFormat::getStaticClassID()) { ++ icu::DecimalFormat* decimal_format = ++ static_cast(number_format); ++ decimal_format->setMinimumGroupingDigits(-2); ++ } ++#endif + + // Change UDISPCTX_CAPITALIZATION_NONE to other values if + // ECMA402 later include option to change capitalization. diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/004-disable-git.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/004-disable-git.patch new file mode 100644 index 00000000..c31e8970 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/004-disable-git.patch @@ -0,0 +1,15 @@ +generate_gni.sh: update_readme() runs git at the end of process, prevent it. + +Thanks-to: Georgy Yakovlev + +--- a/src/3rdparty/chromium/third_party/libvpx/generate_gni.sh 2021-02-07 12:51:49.438514897 +0100 ++++ b/src/3rdparty/chromium/third_party/libvpx/generate_gni.sh 2021-02-21 16:23:38.375724515 +0100 +@@ -519,8 +519,3 @@ + + gn format --in-place $BASE_DIR/BUILD.gn + gn format --in-place $BASE_DIR/libvpx_srcs.gni +- +-cd $BASE_DIR/$LIBVPX_SRC_DIR +-update_readme +- +-cd $BASE_DIR diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/005-pdfium-system-lcms2.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/005-pdfium-system-lcms2.patch new file mode 100644 index 00000000..b3c2ffb3 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/005-pdfium-system-lcms2.patch @@ -0,0 +1,79 @@ +Description: Use system lcms2 +Author: Sandro Knauß +Origin: Debian +Forwarded: https://bugreports.qt.io/browse/QTBUG-61746 +Reviewed-by: Sandro Knauß +Last-Update: 2021-03-08 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/src/3rdparty/chromium/third_party/pdfium/third_party/BUILD.gn ++++ b/src/3rdparty/chromium/third_party/pdfium/third_party/BUILD.gn +@@ -239,58 +239,19 @@ if (!pdf_use_skia && !pdf_use_skia_paths + } + } + +-config("fx_lcms2_warnings") { +- visibility = [ ":*" ] +- if (is_clang) { +- cflags = [ +- # cmslut.cc is sloppy with aggregate initialization. Version 2.7 of this +- # library doesn't appear to have this problem. +- "-Wno-missing-braces", +- ] +- } ++import("//build/shim_headers.gni") ++ ++shim_headers("lcms2_shim") { ++ root_path = "lcms/include" ++ headers = [ ++ "lcms2.h", ++ "lcms2_plugin.h", ++ ] + } + + source_set("fx_lcms2") { +- configs -= [ "//build/config/compiler:chromium_code" ] +- configs += [ +- "//build/config/compiler:no_chromium_code", +- "//build/config/sanitizers:cfi_icall_generalize_pointers", +- ":pdfium_third_party_config", +- +- # Must be after no_chromium_code for warning flags to be ordered correctly. +- ":fx_lcms2_warnings", +- ] +- sources = [ +- "lcms/include/lcms2.h", +- "lcms/include/lcms2_plugin.h", +- "lcms/src/cmsalpha.c", +- "lcms/src/cmscam02.c", +- "lcms/src/cmscgats.c", +- "lcms/src/cmscnvrt.c", +- "lcms/src/cmserr.c", +- "lcms/src/cmsgamma.c", +- "lcms/src/cmsgmt.c", +- "lcms/src/cmshalf.c", +- "lcms/src/cmsintrp.c", +- "lcms/src/cmsio0.c", +- "lcms/src/cmsio1.c", +- "lcms/src/cmslut.c", +- "lcms/src/cmsmd5.c", +- "lcms/src/cmsmtrx.c", +- "lcms/src/cmsnamed.c", +- "lcms/src/cmsopt.c", +- "lcms/src/cmspack.c", +- "lcms/src/cmspcs.c", +- "lcms/src/cmsplugin.c", +- "lcms/src/cmsps2.c", +- "lcms/src/cmssamp.c", +- "lcms/src/cmssm.c", +- "lcms/src/cmstypes.c", +- "lcms/src/cmsvirt.c", +- "lcms/src/cmswtpnt.c", +- "lcms/src/cmsxform.c", +- ] +- deps = [ "../core/fxcrt" ] ++ deps = [ ":lcms2_shim" ] ++ libs = ["lcms2"] + } + + if (!build_with_chromium) { diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/006-clang14.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/006-clang14.patch new file mode 100644 index 00000000..c1a98d09 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/006-clang14.patch @@ -0,0 +1,42 @@ +From 0825e7bc64e47d87e1f1026cc80c933550f114f5 Mon Sep 17 00:00:00 2001 +From: Dimitry Andric +Date: Mon, 14 Feb 2022 13:55:25 +0100 +Subject: www/qt5-webengine: fix build with clang 14 + +Fixes compile error: + +In file included from gen/third_party/blink/renderer/platform/platform_jumbo_63.cc:8: +src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc:122:15: error: anonymous non-C-compatible type given name for linkage purposes by typedef declaration after its linkage was computed; add a tag name here to establish linkage prior to definition +typedef struct { + ^ + UTextWithBuffer +src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc:123:3: note: type is not C-compatible due to this member declaration + DISALLOW_NEW(); + ^~~~~~~~~~~~~~ +src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/allocator/allocator.h:40:2: note: expanded from macro 'DISALLOW_NEW' + public: \ + ^~~~~~~ +src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc:126:3: note: type is given name 'UTextWithBuffer' for linkage purposes by this typedef declaration +} UTextWithBuffer; + ^ + +PR: 261949 +Approved by: adridg (maintainer) +MFH: 2022Q1 + +--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc ++++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc +@@ -119,11 +119,11 @@ enum TextContext { kNoContext, kPriorContext, kPrimary + + const int kTextBufferCapacity = 16; + +-typedef struct { ++struct UTextWithBuffer { + DISALLOW_NEW(); + UText text; + UChar buffer[kTextBufferCapacity]; +-} UTextWithBuffer; ++}; + + static inline int64_t TextPinIndex(int64_t& index, int64_t limit) { + if (index < 0) diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/007-gcc12-includes.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/007-gcc12-includes.patch new file mode 100644 index 00000000..cd476564 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/007-gcc12-includes.patch @@ -0,0 +1,32 @@ +https://build.opensuse.org/package/view_file/KDE:Qt:5.15/libqt5-qtwebengine/0001-skia-Some-includes-to-fix-build-with-GCC-12.patch?expand=1 +https://bugs.gentoo.org/840326 + +From 68799a1e0815b20ca59ce354a55280399257a201 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Fri, 25 Mar 2022 15:29:28 +0100 +Subject: [PATCH] skia: Some includes to fix build with GCC 12 + +Those includes got introduced upstream for other reasons and fixed building +with GCC 12 as a side effect. +--- a/src/3rdparty/chromium/third_party/skia/include/core/SkColor.h ++++ b/src/3rdparty/chromium/third_party/skia/include/core/SkColor.h +@@ -12,6 +12,8 @@ + #include "include/core/SkScalar.h" + #include "include/core/SkTypes.h" + ++#include ++ + /** \file SkColor.h + + Types, consts, functions, and macros for colors. +--- a/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp ++++ b/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp +@@ -8,6 +8,8 @@ + + #include "include/utils/SkParse.h" + ++#include // std::lower_bound ++ + static constexpr const char* gColorNames[] = { + "aliceblue", + "antiquewhite", diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/008-jumbo-build.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/008-jumbo-build.patch new file mode 100644 index 00000000..d65da54a --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/008-jumbo-build.patch @@ -0,0 +1,213 @@ +https://bugs.gentoo.org/813957 + +--- a/src/3rdparty/chromium/base/task/thread_pool.cc ++++ b/src/3rdparty/chromium/base/task/thread_pool.cc +@@ -15,10 +15,10 @@ + + namespace { + +-class PostTaskAndReplyWithTraitsTaskRunner ++class PostTaskAndReplyWithTraitsTaskRunnerTP + : public internal::PostTaskAndReplyImpl { + public: +- explicit PostTaskAndReplyWithTraitsTaskRunner(const TaskTraits& traits) ++ explicit PostTaskAndReplyWithTraitsTaskRunnerTP(const TaskTraits& traits) + : traits_(traits) {} + + private: +@@ -85,7 +85,7 @@ + const TaskTraits& traits, + OnceClosure task, + OnceClosure reply) { +- return PostTaskAndReplyWithTraitsTaskRunner(traits).PostTaskAndReply( ++ return PostTaskAndReplyWithTraitsTaskRunnerTP(traits).PostTaskAndReply( + from_here, std::move(task), std::move(reply)); + } + +--- a/src/3rdparty/chromium/third_party/blink/renderer/core/animation/document_animations.cc ++++ b/src/3rdparty/chromium/third_party/blink/renderer/core/animation/document_animations.cc +@@ -57,8 +57,8 @@ + document.GetWorkletAnimationController().UpdateAnimationTimings(reason); + } + +-bool CompareAnimations(const Member& left, +- const Member& right) { ++bool CompareAnimationsDocument(const Member& left, ++ const Member& right) { + return Animation::HasLowerCompositeOrdering( + left.Get(), right.Get(), + Animation::CompareAnimationsOrdering::kTreeOrder); +@@ -157,7 +157,7 @@ + else + GetAnimationsTargetingTreeScope(animations, tree_scope); + +- std::sort(animations.begin(), animations.end(), CompareAnimations); ++ std::sort(animations.begin(), animations.end(), CompareAnimationsDocument); + return animations; + } + +@@ -203,7 +203,7 @@ + + // By processing in decreasing order by priority, we can perform a single + // pass for discovery of replaced properties. +- std::sort(animations->begin(), animations->end(), CompareAnimations); ++ std::sort(animations->begin(), animations->end(), CompareAnimationsDocument); + PropertyHandleSet replaced_properties; + for (auto anim_it = animations->rbegin(); anim_it != animations->rend(); + anim_it++) { +--- a/src/3rdparty/chromium/third_party/blink/renderer/core/html/forms/date_time_chooser_impl.cc ++++ b/src/3rdparty/chromium/third_party/blink/renderer/core/html/forms/date_time_chooser_impl.cc +@@ -129,11 +129,11 @@ + data); + + data->Append(ChooserResourceLoader::GetPickerCommonStyleSheet()); +- if (!features::IsFormControlsRefreshEnabled()) ++ if (!::features::IsFormControlsRefreshEnabled()) + data->Append(ChooserResourceLoader::GetPickerButtonStyleSheet()); + data->Append(ChooserResourceLoader::GetSuggestionPickerStyleSheet()); + data->Append(ChooserResourceLoader::GetCalendarPickerStyleSheet()); +- if (features::IsFormControlsRefreshEnabled()) { ++ if (::features::IsFormControlsRefreshEnabled()) { + data->Append(ChooserResourceLoader::GetCalendarPickerRefreshStyleSheet()); + if (parameters_->type == input_type_names::kTime || + parameters_->type == input_type_names::kDatetimeLocal) { +@@ -183,9 +183,9 @@ + AddProperty("isLocaleRTL", locale_->IsRTL(), data); + AddProperty("isRTL", parameters_->is_anchor_element_rtl, data); + AddProperty("isFormControlsRefreshEnabled", +- features::IsFormControlsRefreshEnabled(), data); ++ ::features::IsFormControlsRefreshEnabled(), data); + #if defined(OS_MAC) +- AddProperty("isBorderTransparent", features::IsFormControlsRefreshEnabled(), ++ AddProperty("isBorderTransparent", ::features::IsFormControlsRefreshEnabled(), + data); + #endif + AddProperty("mode", parameters_->type.GetString(), data); +@@ -236,7 +236,7 @@ + + data->Append(ChooserResourceLoader::GetPickerCommonJS()); + data->Append(ChooserResourceLoader::GetSuggestionPickerJS()); +- if (features::IsFormControlsRefreshEnabled()) { ++ if (::features::IsFormControlsRefreshEnabled()) { + data->Append(ChooserResourceLoader::GetMonthPickerJS()); + if (parameters_->type == input_type_names::kTime) { + data->Append(ChooserResourceLoader::GetTimePickerJS()); +--- a/src/3rdparty/chromium/third_party/blink/renderer/core/html/forms/multiple_fields_temporal_input_type_view.cc ++++ b/src/3rdparty/chromium/third_party/blink/renderer/core/html/forms/multiple_fields_temporal_input_type_view.cc +@@ -296,7 +296,7 @@ + if (input_type_->FormControlType() == input_type_names::kTime) { + if (date.ParseTime(value, 0, end) && end == value.length()) + edit->SetOnlyTime(date); +- } else if (features::IsFormControlsRefreshEnabled() && ++ } else if (::features::IsFormControlsRefreshEnabled() && + input_type_->FormControlType() == + input_type_names::kDatetimeLocal) { + if (date.ParseDateTimeLocal(value, 0, end) && end == value.length()) +@@ -397,7 +397,7 @@ + MakeGarbageCollected(document, + *this)); +- if (!features::IsFormControlsRefreshEnabled()) { ++ if (!::features::IsFormControlsRefreshEnabled()) { + GetElement().UpdateView(); + container->AppendChild( + MakeGarbageCollectedOpenPopup(); + event.SetDefaultHandled(); +--- a/src/3rdparty/chromium/third_party/blink/renderer/core/html/forms/picker_indicator_element.cc ++++ b/src/3rdparty/chromium/third_party/blink/renderer/core/html/forms/picker_indicator_element.cc +@@ -60,7 +60,7 @@ + LayoutObject* PickerIndicatorElement::CreateLayoutObject( + const ComputedStyle& style, + LegacyLayout legacy) { +- if (features::IsFormControlsRefreshEnabled()) ++ if (::features::IsFormControlsRefreshEnabled()) + return HTMLDivElement::CreateLayoutObject(style, legacy); + + UseCounter::Count(GetDocument(), WebFeature::kLegacyLayoutByDetailsMarker); +--- a/src/3rdparty/chromium/third_party/blink/renderer/core/html/forms/slider_thumb_element.cc ++++ b/src/3rdparty/chromium/third_party/blink/renderer/core/html/forms/slider_thumb_element.cc +@@ -63,7 +63,7 @@ + if (GetLayoutObject()) { + GetLayoutObject()->SetNeedsLayoutAndFullPaintInvalidation( + layout_invalidation_reason::kSliderValueChanged); +- if (features::IsFormControlsRefreshEnabled()) { ++ if (::features::IsFormControlsRefreshEnabled()) { + HTMLInputElement* input(HostInput()); + if (input && input->GetLayoutObject()) { + // the slider track selected value needs to be updated. +--- a/src/3rdparty/chromium/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.cc ++++ b/src/3rdparty/chromium/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.cc +@@ -252,9 +252,9 @@ + ts << " [id=\"" << resource.Target()->GetIdAttribute() << "\"]"; + } + +-static base::Optional ResolveColor(const ComputedStyle& style, +- const SVGPaint& paint, +- const SVGPaint& visited_paint) { ++static base::Optional ResolveColorSVG(const ComputedStyle& style, ++ const SVGPaint& paint, ++ const SVGPaint& visited_paint) { + if (!paint.HasColor()) + return base::nullopt; + Color color = style.ResolvedColor(paint.GetColor()); +@@ -283,7 +283,7 @@ + return true; + } + } +- if (base::Optional color = ResolveColor(style, paint, visited_paint)) { ++ if (base::Optional color = ResolveColorSVG(style, paint, visited_paint)) { + ts << " [" << paint_name << "={" << s; + ts << "[type=SOLID] [color=" << *color << "]"; + return true; +--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/webrtc/peer_connection_remote_audio_source.cc ++++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/webrtc/peer_connection_remote_audio_source.cc +@@ -20,7 +20,7 @@ + void* const kPeerConnectionRemoteTrackIdentifier = + const_cast(&kPeerConnectionRemoteTrackIdentifier); + +-void SendLogMessage(const std::string& message) { ++void SendLogMessageRTC(const std::string& message) { + blink::WebRtcLogMessage("PCRAS::" + message); + } + +@@ -82,12 +82,12 @@ + track_interface_(std::move(track_interface)), + is_sink_of_peer_connection_(false) { + DCHECK(track_interface_); +- SendLogMessage(base::StringPrintf("PeerConnectionRemoteAudioSource([id=%s])", ++ SendLogMessageRTC(base::StringPrintf("PeerConnectionRemoteAudioSource([id=%s])", + track_interface_->id().c_str())); + } + + PeerConnectionRemoteAudioSource::~PeerConnectionRemoteAudioSource() { +- SendLogMessage(base::StringPrintf("~PeerConnectionRemoteAudioSource([id=%s])", ++ SendLogMessageRTC(base::StringPrintf("~PeerConnectionRemoteAudioSource([id=%s])", + track_interface_->id().c_str())); + EnsureSourceIsStopped(); + } +@@ -103,7 +103,7 @@ + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + if (is_sink_of_peer_connection_) + return true; +- SendLogMessage(base::StringPrintf("EnsureSourceIsStarted([id=%s])", ++ SendLogMessageRTC(base::StringPrintf("EnsureSourceIsStarted([id=%s])", + track_interface_->id().c_str())); + track_interface_->AddSink(this); + is_sink_of_peer_connection_ = true; +@@ -113,7 +113,7 @@ + void PeerConnectionRemoteAudioSource::EnsureSourceIsStopped() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + if (is_sink_of_peer_connection_) { +- SendLogMessage(base::StringPrintf("EnsureSourceIsStopped([id=%s])", ++ SendLogMessageRTC(base::StringPrintf("EnsureSourceIsStopped([id=%s])", + track_interface_->id().c_str())); + track_interface_->RemoveSink(this); + is_sink_of_peer_connection_ = false; diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/009-port-to-pipewire-0.3.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/009-port-to-pipewire-0.3.patch new file mode 100644 index 00000000..baae0c8e --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/009-port-to-pipewire-0.3.patch @@ -0,0 +1,1766 @@ +From 77f70aae4c97cad1dea5fba9c04c8d2ffd3826ec Mon Sep 17 00:00:00 2001 +From: Antonio Rojas +Date: Sun, 20 Feb 2022 11:12:00 +0000 +Subject: [PATCH 3/3] Port to pipewire 0.3 + +--- + .../webrtc/modules/desktop_capture/BUILD.gn | 42 +- + .../linux/base_capturer_pipewire.cc | 770 ++++++++++++++---- + .../linux/base_capturer_pipewire.h | 58 +- + .../linux/{pipewire.sigs => pipewire02.sigs} | 3 + + .../desktop_capture/linux/pipewire03.sigs | 46 ++ + .../linux/screen_capturer_pipewire.cc | 29 - + .../linux/screen_capturer_pipewire.h | 33 - + .../linux/window_capturer_pipewire.cc | 29 - + .../linux/window_capturer_pipewire.h | 33 - + .../desktop_capture/screen_capturer_linux.cc | 4 +- + .../desktop_capture/window_capturer_linux.cc | 4 +- + chromium/third_party/webrtc/webrtc.gni | 4 + + 12 files changed, 750 insertions(+), 305 deletions(-) + rename chromium/third_party/webrtc/modules/desktop_capture/linux/{pipewire.sigs => pipewire02.sigs} (91%) + create mode 100644 chromium/third_party/webrtc/modules/desktop_capture/linux/pipewire03.sigs + delete mode 100644 chromium/third_party/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc + delete mode 100644 chromium/third_party/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.h + delete mode 100644 chromium/third_party/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc + delete mode 100644 chromium/third_party/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.h + +diff --git a/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn b/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn +index 5235512735d..8259442f811 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn ++++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn +@@ -11,6 +11,11 @@ import("//build/config/ui.gni") + import("//tools/generate_stubs/rules.gni") + import("../../webrtc.gni") + ++if (rtc_use_pipewire) { ++ assert(rtc_pipewire_version == "0.2" || rtc_pipewire_version == "0.3", ++ "Unsupported PipeWire version") ++} ++ + use_desktop_capture_differ_sse2 = current_cpu == "x86" || current_cpu == "x64" + + config("x11_config") { +@@ -200,22 +205,41 @@ if (is_linux || is_chromeos) { + ] + } + +- if (rtc_link_pipewire) { ++ if (rtc_pipewire_version == "0.3") { + pkg_config("pipewire") { +- packages = [ "libpipewire-0.2" ] ++ packages = [ "libpipewire-0.3" ] ++ if (!rtc_link_pipewire) { ++ ignore_libs = true ++ } + } + } else { ++ pkg_config("pipewire") { ++ packages = [ "libpipewire-0.2" ] ++ if (!rtc_link_pipewire) { ++ ignore_libs = true ++ } ++ } ++ } ++ ++ if (!rtc_link_pipewire) { + # When libpipewire is not directly linked, use stubs to allow for dlopening of + # the binary. + generate_stubs("pipewire_stubs") { +- configs = [ "../../:common_config" ] ++ configs = [ ++ "../../:common_config", ++ ":pipewire", ++ ] + deps = [ "../../rtc_base" ] + extra_header = "linux/pipewire_stub_header.fragment" + logging_function = "RTC_LOG(LS_VERBOSE)" + logging_include = "rtc_base/logging.h" + output_name = "linux/pipewire_stubs" + path_from_source = "modules/desktop_capture/linux" +- sigs = [ "linux/pipewire.sigs" ] ++ if (rtc_pipewire_version == "0.3") { ++ sigs = [ "linux/pipewire03.sigs" ] ++ } else { ++ sigs = [ "linux/pipewire02.sigs" ] ++ } + } + } + +@@ -506,6 +530,7 @@ rtc_library("desktop_capture_generic") { + absl_deps = [ + "//third_party/abseil-cpp/absl/memory", + "//third_party/abseil-cpp/absl/strings", ++ "//third_party/abseil-cpp/absl/types:optional", + ] + + if (rtc_use_x11_extensions) { +@@ -526,20 +551,15 @@ rtc_library("desktop_capture_generic") { + sources += [ + "linux/base_capturer_pipewire.cc", + "linux/base_capturer_pipewire.h", +- "linux/screen_capturer_pipewire.cc", +- "linux/screen_capturer_pipewire.h", +- "linux/window_capturer_pipewire.cc", +- "linux/window_capturer_pipewire.h", + ] + + configs += [ + ":pipewire_config", + ":gio", ++ ":pipewire", + ] + +- if (rtc_link_pipewire) { +- configs += [ ":pipewire" ] +- } else { ++ if (!rtc_link_pipewire) { + deps += [ ":pipewire_stubs" ] + } + } +diff --git a/chromium/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc b/chromium/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc +index 2640e93aa98..c302a086ead 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc ++++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc +@@ -14,8 +14,14 @@ + #include + #include + #include ++#if !PW_CHECK_VERSION(0, 3, 0) + #include + #include ++#endif ++ ++#include ++#include ++#include + + #include + #include +@@ -30,7 +36,11 @@ + #include "modules/desktop_capture/linux/pipewire_stubs.h" + + using modules_desktop_capture_linux::InitializeStubs; +-using modules_desktop_capture_linux::kModulePipewire; ++#if PW_CHECK_VERSION(0, 3, 0) ++using modules_desktop_capture_linux::kModulePipewire03; ++#else ++using modules_desktop_capture_linux::kModulePipewire02; ++#endif + using modules_desktop_capture_linux::StubPathMap; + #endif // defined(WEBRTC_DLOPEN_PIPEWIRE) + +@@ -47,9 +57,156 @@ const char kScreenCastInterfaceName[] = "org.freedesktop.portal.ScreenCast"; + const int kBytesPerPixel = 4; + + #if defined(WEBRTC_DLOPEN_PIPEWIRE) ++#if PW_CHECK_VERSION(0, 3, 0) ++const char kPipeWireLib[] = "libpipewire-0.3.so.0"; ++#else + const char kPipeWireLib[] = "libpipewire-0.2.so.1"; + #endif ++#endif + ++// static ++struct dma_buf_sync { ++ uint64_t flags; ++}; ++#define DMA_BUF_SYNC_READ (1 << 0) ++#define DMA_BUF_SYNC_START (0 << 2) ++#define DMA_BUF_SYNC_END (1 << 2) ++#define DMA_BUF_BASE 'b' ++#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync) ++ ++static void SyncDmaBuf(int fd, uint64_t start_or_end) { ++ struct dma_buf_sync sync = {0}; ++ ++ sync.flags = start_or_end | DMA_BUF_SYNC_READ; ++ ++ while (true) { ++ int ret; ++ ret = ioctl(fd, DMA_BUF_IOCTL_SYNC, &sync); ++ if (ret == -1 && errno == EINTR) { ++ continue; ++ } else if (ret == -1) { ++ RTC_LOG(LS_ERROR) << "Failed to synchronize DMA buffer: " ++ << g_strerror(errno); ++ break; ++ } else { ++ break; ++ } ++ } ++} ++ ++class ScopedBuf { ++ public: ++ ScopedBuf() {} ++ ScopedBuf(unsigned char* map, int map_size, bool is_dma_buf, int fd) ++ : map_(map), map_size_(map_size), is_dma_buf_(is_dma_buf), fd_(fd) {} ++ ~ScopedBuf() { ++ if (map_ != MAP_FAILED) { ++ if (is_dma_buf_) { ++ SyncDmaBuf(fd_, DMA_BUF_SYNC_END); ++ } ++ munmap(map_, map_size_); ++ } ++ } ++ ++ operator bool() { return map_ != MAP_FAILED; } ++ ++ void initialize(unsigned char* map, int map_size, bool is_dma_buf, int fd) { ++ map_ = map; ++ map_size_ = map_size; ++ is_dma_buf_ = is_dma_buf; ++ fd_ = fd; ++ } ++ ++ unsigned char* get() { return map_; } ++ ++ protected: ++ unsigned char* map_ = nullptr; ++ int map_size_; ++ bool is_dma_buf_; ++ int fd_; ++}; ++ ++template ++class Scoped { ++ public: ++ Scoped() {} ++ explicit Scoped(T* val) { ptr_ = val; } ++ ~Scoped() { RTC_NOTREACHED(); } ++ ++ T* operator->() { return ptr_; } ++ ++ bool operator!() { return ptr_ == nullptr; } ++ ++ T* get() { return ptr_; } ++ ++ T** receive() { ++ RTC_CHECK(!ptr_); ++ return &ptr_; ++ } ++ ++ Scoped& operator=(T* val) { ++ ptr_ = val; ++ return *this; ++ } ++ ++ protected: ++ T* ptr_ = nullptr; ++}; ++ ++template <> ++Scoped::~Scoped() { ++ if (ptr_) { ++ g_error_free(ptr_); ++ } ++} ++ ++template <> ++Scoped::~Scoped() { ++ if (ptr_) { ++ g_free(ptr_); ++ } ++} ++ ++template <> ++Scoped::~Scoped() { ++ if (ptr_) { ++ g_variant_unref(ptr_); ++ } ++} ++ ++template <> ++Scoped::~Scoped() { ++ if (ptr_) { ++ g_variant_iter_free(ptr_); ++ } ++} ++ ++template <> ++Scoped::~Scoped() { ++ if (ptr_) { ++ g_object_unref(ptr_); ++ } ++} ++ ++template <> ++Scoped::~Scoped() { ++ if (ptr_) { ++ g_object_unref(ptr_); ++ } ++} ++ ++#if PW_CHECK_VERSION(0, 3, 0) ++void BaseCapturerPipeWire::OnCoreError(void* data, ++ uint32_t id, ++ int seq, ++ int res, ++ const char* message) { ++ BaseCapturerPipeWire* that = static_cast(data); ++ RTC_DCHECK(that); ++ ++ RTC_LOG(LS_ERROR) << "PipeWire remote error: " << message; ++} ++#else + // static + void BaseCapturerPipeWire::OnStateChanged(void* data, + pw_remote_state old_state, +@@ -64,7 +221,7 @@ void BaseCapturerPipeWire::OnStateChanged(void* data, + break; + case PW_REMOTE_STATE_CONNECTED: + RTC_LOG(LS_INFO) << "PipeWire remote state: connected."; +- that->CreateReceivingStream(); ++ that->pw_stream_ = that->CreateReceivingStream(); + break; + case PW_REMOTE_STATE_CONNECTING: + RTC_LOG(LS_INFO) << "PipeWire remote state: connecting."; +@@ -74,6 +231,7 @@ void BaseCapturerPipeWire::OnStateChanged(void* data, + break; + } + } ++#endif + + // static + void BaseCapturerPipeWire::OnStreamStateChanged(void* data, +@@ -83,6 +241,18 @@ void BaseCapturerPipeWire::OnStreamStateChanged(void* data, + BaseCapturerPipeWire* that = static_cast(data); + RTC_DCHECK(that); + ++#if PW_CHECK_VERSION(0, 3, 0) ++ switch (state) { ++ case PW_STREAM_STATE_ERROR: ++ RTC_LOG(LS_ERROR) << "PipeWire stream state error: " << error_message; ++ break; ++ case PW_STREAM_STATE_PAUSED: ++ case PW_STREAM_STATE_STREAMING: ++ case PW_STREAM_STATE_UNCONNECTED: ++ case PW_STREAM_STATE_CONNECTING: ++ break; ++ } ++#else + switch (state) { + case PW_STREAM_STATE_ERROR: + RTC_LOG(LS_ERROR) << "PipeWire stream state error: " << error_message; +@@ -97,36 +267,74 @@ void BaseCapturerPipeWire::OnStreamStateChanged(void* data, + case PW_STREAM_STATE_STREAMING: + break; + } ++#endif + } + + // static ++#if PW_CHECK_VERSION(0, 3, 0) ++void BaseCapturerPipeWire::OnStreamParamChanged(void* data, ++ uint32_t id, ++ const struct spa_pod* format) { ++#else + void BaseCapturerPipeWire::OnStreamFormatChanged(void* data, + const struct spa_pod* format) { ++#endif + BaseCapturerPipeWire* that = static_cast(data); + RTC_DCHECK(that); + + RTC_LOG(LS_INFO) << "PipeWire stream format changed."; + ++#if PW_CHECK_VERSION(0, 3, 0) ++ if (!format || id != SPA_PARAM_Format) { ++#else + if (!format) { + pw_stream_finish_format(that->pw_stream_, /*res=*/0, /*params=*/nullptr, + /*n_params=*/0); ++#endif + return; + } + ++#if PW_CHECK_VERSION(0, 3, 0) ++ spa_format_video_raw_parse(format, &that->spa_video_format_); ++#else + that->spa_video_format_ = new spa_video_info_raw(); + spa_format_video_raw_parse(format, that->spa_video_format_, + &that->pw_type_->format_video); ++#endif + ++#if PW_CHECK_VERSION(0, 3, 0) ++ auto width = that->spa_video_format_.size.width; ++ auto height = that->spa_video_format_.size.height; ++#else + auto width = that->spa_video_format_->size.width; + auto height = that->spa_video_format_->size.height; ++#endif + auto stride = SPA_ROUND_UP_N(width * kBytesPerPixel, 4); + auto size = height * stride; + ++ that->desktop_size_ = DesktopSize(width, height); ++ + uint8_t buffer[1024] = {}; + auto builder = spa_pod_builder{buffer, sizeof(buffer)}; + + // Setup buffers and meta header for new format. +- const struct spa_pod* params[2]; ++ const struct spa_pod* params[3]; ++#if PW_CHECK_VERSION(0, 3, 0) ++ params[0] = reinterpret_cast(spa_pod_builder_add_object( ++ &builder, SPA_TYPE_OBJECT_ParamBuffers, SPA_PARAM_Buffers, ++ SPA_PARAM_BUFFERS_size, SPA_POD_Int(size), SPA_PARAM_BUFFERS_stride, ++ SPA_POD_Int(stride), SPA_PARAM_BUFFERS_buffers, ++ SPA_POD_CHOICE_RANGE_Int(8, 1, 32))); ++ params[1] = reinterpret_cast(spa_pod_builder_add_object( ++ &builder, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type, ++ SPA_POD_Id(SPA_META_Header), SPA_PARAM_META_size, ++ SPA_POD_Int(sizeof(struct spa_meta_header)))); ++ params[2] = reinterpret_cast(spa_pod_builder_add_object( ++ &builder, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type, ++ SPA_POD_Id(SPA_META_VideoCrop), SPA_PARAM_META_size, ++ SPA_POD_Int(sizeof(struct spa_meta_region)))); ++ pw_stream_update_params(that->pw_stream_, params, 3); ++#else + params[0] = reinterpret_cast(spa_pod_builder_object( + &builder, + // id to enumerate buffer requirements +@@ -155,8 +363,18 @@ void BaseCapturerPipeWire::OnStreamFormatChanged(void* data, + // Size: size of the metadata, specified as integer (i) + ":", that->pw_core_type_->param_meta.size, "i", + sizeof(struct spa_meta_header))); +- +- pw_stream_finish_format(that->pw_stream_, /*res=*/0, params, /*n_params=*/2); ++ params[2] = reinterpret_cast(spa_pod_builder_object( ++ &builder, ++ // id to enumerate supported metadata ++ that->pw_core_type_->param.idMeta, that->pw_core_type_->param_meta.Meta, ++ // Type: specified as id or enum (I) ++ ":", that->pw_core_type_->param_meta.type, "I", ++ that->pw_core_type_->meta.VideoCrop, ++ // Size: size of the metadata, specified as integer (i) ++ ":", that->pw_core_type_->param_meta.size, "i", ++ sizeof(struct spa_meta_video_crop))); ++ pw_stream_finish_format(that->pw_stream_, /*res=*/0, params, /*n_params=*/3); ++#endif + } + + // static +@@ -164,15 +382,26 @@ void BaseCapturerPipeWire::OnStreamProcess(void* data) { + BaseCapturerPipeWire* that = static_cast(data); + RTC_DCHECK(that); + +- pw_buffer* buf = nullptr; ++ struct pw_buffer* next_buffer; ++ struct pw_buffer* buffer = nullptr; ++ ++ next_buffer = pw_stream_dequeue_buffer(that->pw_stream_); ++ while (next_buffer) { ++ buffer = next_buffer; ++ next_buffer = pw_stream_dequeue_buffer(that->pw_stream_); + +- if (!(buf = pw_stream_dequeue_buffer(that->pw_stream_))) { ++ if (next_buffer) { ++ pw_stream_queue_buffer(that->pw_stream_, buffer); ++ } ++ } ++ ++ if (!buffer) { + return; + } + +- that->HandleBuffer(buf); ++ that->HandleBuffer(buffer); + +- pw_stream_queue_buffer(that->pw_stream_, buf); ++ pw_stream_queue_buffer(that->pw_stream_, buffer); + } + + BaseCapturerPipeWire::BaseCapturerPipeWire(CaptureSourceType source_type) +@@ -183,6 +412,7 @@ BaseCapturerPipeWire::~BaseCapturerPipeWire() { + pw_thread_loop_stop(pw_main_loop_); + } + ++#if !PW_CHECK_VERSION(0, 3, 0) + if (pw_type_) { + delete pw_type_; + } +@@ -190,30 +420,41 @@ BaseCapturerPipeWire::~BaseCapturerPipeWire() { + if (spa_video_format_) { + delete spa_video_format_; + } ++#endif + + if (pw_stream_) { + pw_stream_destroy(pw_stream_); + } + ++#if !PW_CHECK_VERSION(0, 3, 0) + if (pw_remote_) { + pw_remote_destroy(pw_remote_); + } ++#endif + ++#if PW_CHECK_VERSION(0, 3, 0) ++ if (pw_core_) { ++ pw_core_disconnect(pw_core_); ++ } ++ ++ if (pw_context_) { ++ pw_context_destroy(pw_context_); ++ } ++#else + if (pw_core_) { + pw_core_destroy(pw_core_); + } ++#endif + + if (pw_main_loop_) { + pw_thread_loop_destroy(pw_main_loop_); + } + ++#if !PW_CHECK_VERSION(0, 3, 0) + if (pw_loop_) { + pw_loop_destroy(pw_loop_); + } +- +- if (current_frame_) { +- free(current_frame_); +- } ++#endif + + if (start_request_signal_id_) { + g_dbus_connection_signal_unsubscribe(connection_, start_request_signal_id_); +@@ -228,18 +469,16 @@ BaseCapturerPipeWire::~BaseCapturerPipeWire() { + } + + if (session_handle_) { +- GDBusMessage* message = g_dbus_message_new_method_call( +- kDesktopBusName, session_handle_, kSessionInterfaceName, "Close"); +- if (message) { +- GError* error = nullptr; +- g_dbus_connection_send_message(connection_, message, ++ Scoped message(g_dbus_message_new_method_call( ++ kDesktopBusName, session_handle_, kSessionInterfaceName, "Close")); ++ if (message.get()) { ++ Scoped error; ++ g_dbus_connection_send_message(connection_, message.get(), + G_DBUS_SEND_MESSAGE_FLAGS_NONE, +- /*out_serial=*/nullptr, &error); +- if (error) { ++ /*out_serial=*/nullptr, error.receive()); ++ if (error.get()) { + RTC_LOG(LS_ERROR) << "Failed to close the session: " << error->message; +- g_error_free(error); + } +- g_object_unref(message); + } + } + +@@ -274,7 +513,11 @@ void BaseCapturerPipeWire::InitPipeWire() { + StubPathMap paths; + + // Check if the PipeWire library is available. +- paths[kModulePipewire].push_back(kPipeWireLib); ++#if PW_CHECK_VERSION(0, 3, 0) ++ paths[kModulePipewire03].push_back(kPipeWireLib); ++#else ++ paths[kModulePipewire02].push_back(kPipeWireLib); ++#endif + if (!InitializeStubs(paths)) { + RTC_LOG(LS_ERROR) << "Failed to load the PipeWire library and symbols."; + portal_init_failed_ = true; +@@ -284,16 +527,46 @@ void BaseCapturerPipeWire::InitPipeWire() { + + pw_init(/*argc=*/nullptr, /*argc=*/nullptr); + ++#if PW_CHECK_VERSION(0, 3, 0) ++ pw_main_loop_ = pw_thread_loop_new("pipewire-main-loop", nullptr); ++ ++ pw_thread_loop_lock(pw_main_loop_); ++ ++ pw_context_ = ++ pw_context_new(pw_thread_loop_get_loop(pw_main_loop_), nullptr, 0); ++ if (!pw_context_) { ++ RTC_LOG(LS_ERROR) << "Failed to create PipeWire context"; ++ return; ++ } ++ ++ pw_core_ = pw_context_connect(pw_context_, nullptr, 0); ++ if (!pw_core_) { ++ RTC_LOG(LS_ERROR) << "Failed to connect PipeWire context"; ++ return; ++ } ++#else + pw_loop_ = pw_loop_new(/*properties=*/nullptr); + pw_main_loop_ = pw_thread_loop_new(pw_loop_, "pipewire-main-loop"); + ++ pw_thread_loop_lock(pw_main_loop_); ++ + pw_core_ = pw_core_new(pw_loop_, /*properties=*/nullptr); + pw_core_type_ = pw_core_get_type(pw_core_); + pw_remote_ = pw_remote_new(pw_core_, nullptr, /*user_data_size=*/0); + + InitPipeWireTypes(); ++#endif + + // Initialize event handlers, remote end and stream-related. ++#if PW_CHECK_VERSION(0, 3, 0) ++ pw_core_events_.version = PW_VERSION_CORE_EVENTS; ++ pw_core_events_.error = &OnCoreError; ++ ++ pw_stream_events_.version = PW_VERSION_STREAM_EVENTS; ++ pw_stream_events_.state_changed = &OnStreamStateChanged; ++ pw_stream_events_.param_changed = &OnStreamParamChanged; ++ pw_stream_events_.process = &OnStreamProcess; ++#else + pw_remote_events_.version = PW_VERSION_REMOTE_EVENTS; + pw_remote_events_.state_changed = &OnStateChanged; + +@@ -301,19 +574,33 @@ void BaseCapturerPipeWire::InitPipeWire() { + pw_stream_events_.state_changed = &OnStreamStateChanged; + pw_stream_events_.format_changed = &OnStreamFormatChanged; + pw_stream_events_.process = &OnStreamProcess; ++#endif + ++#if PW_CHECK_VERSION(0, 3, 0) ++ pw_core_add_listener(pw_core_, &spa_core_listener_, &pw_core_events_, this); ++ ++ pw_stream_ = CreateReceivingStream(); ++ if (!pw_stream_) { ++ RTC_LOG(LS_ERROR) << "Failed to create PipeWire stream"; ++ return; ++ } ++#else + pw_remote_add_listener(pw_remote_, &spa_remote_listener_, &pw_remote_events_, + this); + pw_remote_connect_fd(pw_remote_, pw_fd_); ++#endif + + if (pw_thread_loop_start(pw_main_loop_) < 0) { + RTC_LOG(LS_ERROR) << "Failed to start main PipeWire loop"; + portal_init_failed_ = true; + } + ++ pw_thread_loop_unlock(pw_main_loop_); ++ + RTC_LOG(LS_INFO) << "PipeWire remote opened."; + } + ++#if !PW_CHECK_VERSION(0, 3, 0) + void BaseCapturerPipeWire::InitPipeWireTypes() { + spa_type_map* map = pw_core_type_->map; + pw_type_ = new PipeWireType(); +@@ -323,23 +610,44 @@ void BaseCapturerPipeWire::InitPipeWireTypes() { + spa_type_format_video_map(map, &pw_type_->format_video); + spa_type_video_format_map(map, &pw_type_->video_format); + } ++#endif + +-void BaseCapturerPipeWire::CreateReceivingStream() { ++pw_stream* BaseCapturerPipeWire::CreateReceivingStream() { ++#if !PW_CHECK_VERSION(0, 3, 0) ++ if (pw_remote_get_state(pw_remote_, nullptr) != PW_REMOTE_STATE_CONNECTED) { ++ RTC_LOG(LS_ERROR) << "Cannot create pipewire stream"; ++ return nullptr; ++ } ++#endif + spa_rectangle pwMinScreenBounds = spa_rectangle{1, 1}; +- spa_rectangle pwScreenBounds = +- spa_rectangle{static_cast(desktop_size_.width()), +- static_cast(desktop_size_.height())}; +- +- spa_fraction pwFrameRateMin = spa_fraction{0, 1}; +- spa_fraction pwFrameRateMax = spa_fraction{60, 1}; ++ spa_rectangle pwMaxScreenBounds = spa_rectangle{UINT32_MAX, UINT32_MAX}; + + pw_properties* reuseProps = + pw_properties_new_string("pipewire.client.reuse=1"); +- pw_stream_ = pw_stream_new(pw_remote_, "webrtc-consume-stream", reuseProps); ++#if PW_CHECK_VERSION(0, 3, 0) ++ auto stream = pw_stream_new(pw_core_, "webrtc-consume-stream", reuseProps); ++#else ++ auto stream = pw_stream_new(pw_remote_, "webrtc-consume-stream", reuseProps); ++#endif + + uint8_t buffer[1024] = {}; + const spa_pod* params[1]; + spa_pod_builder builder = spa_pod_builder{buffer, sizeof(buffer)}; ++ ++#if PW_CHECK_VERSION(0, 3, 0) ++ params[0] = reinterpret_cast(spa_pod_builder_add_object( ++ &builder, SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat, ++ SPA_FORMAT_mediaType, SPA_POD_Id(SPA_MEDIA_TYPE_video), ++ SPA_FORMAT_mediaSubtype, SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw), ++ SPA_FORMAT_VIDEO_format, ++ SPA_POD_CHOICE_ENUM_Id(5, SPA_VIDEO_FORMAT_BGRx, SPA_VIDEO_FORMAT_RGBx, ++ SPA_VIDEO_FORMAT_RGBA, SPA_VIDEO_FORMAT_BGRx, ++ SPA_VIDEO_FORMAT_BGRA), ++ SPA_FORMAT_VIDEO_size, ++ SPA_POD_CHOICE_RANGE_Rectangle(&pwMinScreenBounds, &pwMinScreenBounds, ++ &pwMaxScreenBounds), ++ 0)); ++#else + params[0] = reinterpret_cast(spa_pod_builder_object( + &builder, + // id to enumerate formats +@@ -349,69 +657,218 @@ void BaseCapturerPipeWire::CreateReceivingStream() { + // then allowed formats are enumerated (e) and the format is undecided (u) + // to allow negotiation + ":", pw_type_->format_video.format, "Ieu", pw_type_->video_format.BGRx, +- SPA_POD_PROP_ENUM(2, pw_type_->video_format.RGBx, +- pw_type_->video_format.BGRx), ++ SPA_POD_PROP_ENUM( ++ 4, pw_type_->video_format.RGBx, pw_type_->video_format.BGRx, ++ pw_type_->video_format.RGBA, pw_type_->video_format.BGRA), + // Video size: specified as rectangle (R), preferred size is specified as + // first parameter, then allowed size is defined as range (r) from min and + // max values and the format is undecided (u) to allow negotiation +- ":", pw_type_->format_video.size, "Rru", &pwScreenBounds, 2, +- &pwMinScreenBounds, &pwScreenBounds, +- // Frame rate: specified as fraction (F) and set to minimum frame rate +- // value +- ":", pw_type_->format_video.framerate, "F", &pwFrameRateMin, +- // Max frame rate: specified as fraction (F), preferred frame rate is set +- // to maximum value, then allowed frame rate is defined as range (r) from +- // min and max values and it is undecided (u) to allow negotiation +- ":", pw_type_->format_video.max_framerate, "Fru", &pwFrameRateMax, 2, +- &pwFrameRateMin, &pwFrameRateMax)); +- +- pw_stream_add_listener(pw_stream_, &spa_stream_listener_, &pw_stream_events_, ++ ":", pw_type_->format_video.size, "Rru", &pwMinScreenBounds, ++ SPA_POD_PROP_MIN_MAX(&pwMinScreenBounds, &pwMaxScreenBounds))); ++#endif ++ ++ pw_stream_add_listener(stream, &spa_stream_listener_, &pw_stream_events_, + this); ++#if PW_CHECK_VERSION(0, 3, 0) ++ if (pw_stream_connect(stream, PW_DIRECTION_INPUT, pw_stream_node_id_, ++ PW_STREAM_FLAG_AUTOCONNECT, params, 1) != 0) { ++#else + pw_stream_flags flags = static_cast( +- PW_STREAM_FLAG_AUTOCONNECT | PW_STREAM_FLAG_INACTIVE | +- PW_STREAM_FLAG_MAP_BUFFERS); +- if (pw_stream_connect(pw_stream_, PW_DIRECTION_INPUT, /*port_path=*/nullptr, ++ PW_STREAM_FLAG_AUTOCONNECT | PW_STREAM_FLAG_INACTIVE); ++ if (pw_stream_connect(stream, PW_DIRECTION_INPUT, /*port_path=*/nullptr, + flags, params, + /*n_params=*/1) != 0) { ++#endif + RTC_LOG(LS_ERROR) << "Could not connect receiving stream."; + portal_init_failed_ = true; +- return; ++ return nullptr; + } ++ ++ return stream; + } + + void BaseCapturerPipeWire::HandleBuffer(pw_buffer* buffer) { + spa_buffer* spaBuffer = buffer->buffer; +- void* src = nullptr; ++ ScopedBuf map; ++ uint8_t* src = nullptr; ++ ++ if (spaBuffer->datas[0].chunk->size == 0) { ++ RTC_LOG(LS_ERROR) << "Failed to get video stream: Zero size."; ++ return; ++ } ++ ++#if PW_CHECK_VERSION(0, 3, 0) ++ if (spaBuffer->datas[0].type == SPA_DATA_MemFd || ++ spaBuffer->datas[0].type == SPA_DATA_DmaBuf) { ++#else ++ if (spaBuffer->datas[0].type == pw_core_type_->data.MemFd || ++ spaBuffer->datas[0].type == pw_core_type_->data.DmaBuf) { ++#endif ++ map.initialize( ++ static_cast( ++ mmap(nullptr, ++ spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset, ++ PROT_READ, MAP_PRIVATE, spaBuffer->datas[0].fd, 0)), ++ spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset, ++#if PW_CHECK_VERSION(0, 3, 0) ++ spaBuffer->datas[0].type == SPA_DATA_DmaBuf, ++#else ++ spaBuffer->datas[0].type == pw_core_type_->data.DmaBuf, ++#endif ++ spaBuffer->datas[0].fd); ++ ++ if (!map) { ++ RTC_LOG(LS_ERROR) << "Failed to mmap the memory: " ++ << std::strerror(errno); ++ return; ++ } ++ ++#if PW_CHECK_VERSION(0, 3, 0) ++ if (spaBuffer->datas[0].type == SPA_DATA_DmaBuf) { ++#else ++ if (spaBuffer->datas[0].type == pw_core_type_->data.DmaBuf) { ++#endif ++ SyncDmaBuf(spaBuffer->datas[0].fd, DMA_BUF_SYNC_START); ++ } ++ ++ src = SPA_MEMBER(map.get(), spaBuffer->datas[0].mapoffset, uint8_t); ++#if PW_CHECK_VERSION(0, 3, 0) ++ } else if (spaBuffer->datas[0].type == SPA_DATA_MemPtr) { ++#else ++ } else if (spaBuffer->datas[0].type == pw_core_type_->data.MemPtr) { ++#endif ++ src = static_cast(spaBuffer->datas[0].data); ++ } + +- if (!(src = spaBuffer->datas[0].data)) { ++ if (!src) { ++ return; ++ } ++ ++#if PW_CHECK_VERSION(0, 3, 0) ++ struct spa_meta_region* video_metadata = ++ static_cast(spa_buffer_find_meta_data( ++ spaBuffer, SPA_META_VideoCrop, sizeof(*video_metadata))); ++#else ++ struct spa_meta_video_crop* video_metadata = ++ static_cast( ++ spa_buffer_find_meta(spaBuffer, pw_core_type_->meta.VideoCrop)); ++#endif ++ ++ // Video size from metadata is bigger than an actual video stream size. ++ // The metadata are wrong or we should up-scale the video...in both cases ++ // just quit now. ++#if PW_CHECK_VERSION(0, 3, 0) ++ if (video_metadata && (video_metadata->region.size.width > ++ static_cast(desktop_size_.width()) || ++ video_metadata->region.size.height > ++ static_cast(desktop_size_.height()))) { ++#else ++ if (video_metadata && (video_metadata->width > desktop_size_.width() || ++ video_metadata->height > desktop_size_.height())) { ++#endif ++ RTC_LOG(LS_ERROR) << "Stream metadata sizes are wrong!"; + return; + } + +- uint32_t maxSize = spaBuffer->datas[0].maxsize; +- int32_t srcStride = spaBuffer->datas[0].chunk->stride; +- if (srcStride != (desktop_size_.width() * kBytesPerPixel)) { ++ // Use video metadata when video size from metadata is set and smaller than ++ // video stream size, so we need to adjust it. ++ bool video_is_full_width = true; ++ bool video_is_full_height = true; ++#if PW_CHECK_VERSION(0, 3, 0) ++ if (video_metadata && video_metadata->region.size.width != 0 && ++ video_metadata->region.size.height != 0) { ++ if (video_metadata->region.size.width < ++ static_cast(desktop_size_.width())) { ++ video_is_full_width = false; ++ } else if (video_metadata->region.size.height < ++ static_cast(desktop_size_.height())) { ++ video_is_full_height = false; ++ } ++ } ++#else ++ if (video_metadata && video_metadata->width != 0 && ++ video_metadata->height != 0) { ++ if (video_metadata->width < desktop_size_.width()) { ++ } else if (video_metadata->height < desktop_size_.height()) { ++ video_is_full_height = false; ++ } ++ } ++#endif ++ ++ DesktopSize video_size_prev = video_size_; ++ if (!video_is_full_height || !video_is_full_width) { ++#if PW_CHECK_VERSION(0, 3, 0) ++ video_size_ = DesktopSize(video_metadata->region.size.width, ++ video_metadata->region.size.height); ++#else ++ video_size_ = DesktopSize(video_metadata->width, video_metadata->height); ++#endif ++ } else { ++ video_size_ = desktop_size_; ++ } ++ ++ webrtc::MutexLock lock(¤t_frame_lock_); ++ if (!current_frame_ || !video_size_.equals(video_size_prev)) { ++ current_frame_ = std::make_unique( ++ video_size_.width() * video_size_.height() * kBytesPerPixel); ++ } ++ ++ const int32_t dst_stride = video_size_.width() * kBytesPerPixel; ++ const int32_t src_stride = spaBuffer->datas[0].chunk->stride; ++ ++ if (src_stride != (desktop_size_.width() * kBytesPerPixel)) { + RTC_LOG(LS_ERROR) << "Got buffer with stride different from screen stride: " +- << srcStride ++ << src_stride + << " != " << (desktop_size_.width() * kBytesPerPixel); + portal_init_failed_ = true; ++ + return; + } + +- if (!current_frame_) { +- current_frame_ = static_cast(malloc(maxSize)); +- } +- RTC_DCHECK(current_frame_ != nullptr); +- +- // If both sides decided to go with the RGBx format we need to convert it to +- // BGRx to match color format expected by WebRTC. +- if (spa_video_format_->format == pw_type_->video_format.RGBx) { +- uint8_t* tempFrame = static_cast(malloc(maxSize)); +- std::memcpy(tempFrame, src, maxSize); +- ConvertRGBxToBGRx(tempFrame, maxSize); +- std::memcpy(current_frame_, tempFrame, maxSize); +- free(tempFrame); +- } else { +- std::memcpy(current_frame_, src, maxSize); ++ // Adjust source content based on metadata video position ++#if PW_CHECK_VERSION(0, 3, 0) ++ if (!video_is_full_height && ++ (video_metadata->region.position.y + video_size_.height() <= ++ desktop_size_.height())) { ++ src += src_stride * video_metadata->region.position.y; ++ } ++ const int x_offset = ++ !video_is_full_width && ++ (video_metadata->region.position.x + video_size_.width() <= ++ desktop_size_.width()) ++ ? video_metadata->region.position.x * kBytesPerPixel ++ : 0; ++#else ++ if (!video_is_full_height && ++ (video_metadata->y + video_size_.height() <= desktop_size_.height())) { ++ src += src_stride * video_metadata->y; ++ } ++ ++ const int x_offset = ++ !video_is_full_width && ++ (video_metadata->x + video_size_.width() <= desktop_size_.width()) ++ ? video_metadata->x * kBytesPerPixel ++ : 0; ++#endif ++ ++ uint8_t* dst = current_frame_.get(); ++ for (int i = 0; i < video_size_.height(); ++i) { ++ // Adjust source content based on crop video position if needed ++ src += x_offset; ++ std::memcpy(dst, src, dst_stride); ++ // If both sides decided to go with the RGBx format we need to convert it to ++ // BGRx to match color format expected by WebRTC. ++#if PW_CHECK_VERSION(0, 3, 0) ++ if (spa_video_format_.format == SPA_VIDEO_FORMAT_RGBx || ++ spa_video_format_.format == SPA_VIDEO_FORMAT_RGBA) { ++#else ++ if (spa_video_format_->format == pw_type_->video_format.RGBx || ++ spa_video_format_->format == pw_type_->video_format.RGBA) { ++#endif ++ ConvertRGBxToBGRx(dst, dst_stride); ++ } ++ src += src_stride - x_offset; ++ dst += dst_stride; + } + } + +@@ -441,14 +898,13 @@ void BaseCapturerPipeWire::OnProxyRequested(GObject* /*object*/, + BaseCapturerPipeWire* that = static_cast(user_data); + RTC_DCHECK(that); + +- GError* error = nullptr; +- GDBusProxy *proxy = g_dbus_proxy_new_finish(result, &error); ++ Scoped error; ++ GDBusProxy* proxy = g_dbus_proxy_new_finish(result, error.receive()); + if (!proxy) { +- if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) ++ if (g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED)) + return; + RTC_LOG(LS_ERROR) << "Failed to create a proxy for the screen cast portal: " + << error->message; +- g_error_free(error); + that->portal_init_failed_ = true; + return; + } +@@ -462,38 +918,36 @@ void BaseCapturerPipeWire::OnProxyRequested(GObject* /*object*/, + // static + gchar* BaseCapturerPipeWire::PrepareSignalHandle(GDBusConnection* connection, + const gchar* token) { +- gchar* sender = g_strdup(g_dbus_connection_get_unique_name(connection) + 1); +- for (int i = 0; sender[i]; i++) { +- if (sender[i] == '.') { +- sender[i] = '_'; ++ Scoped sender( ++ g_strdup(g_dbus_connection_get_unique_name(connection) + 1)); ++ for (int i = 0; sender.get()[i]; i++) { ++ if (sender.get()[i] == '.') { ++ sender.get()[i] = '_'; + } + } + +- gchar* handle = g_strconcat(kDesktopRequestObjectPath, "/", sender, "/", ++ gchar* handle = g_strconcat(kDesktopRequestObjectPath, "/", sender.get(), "/", + token, /*end of varargs*/ nullptr); +- g_free(sender); + + return handle; + } + + void BaseCapturerPipeWire::SessionRequest() { + GVariantBuilder builder; +- gchar* variant_string; ++ Scoped variant_string; + + g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT); + variant_string = + g_strdup_printf("webrtc_session%d", g_random_int_range(0, G_MAXINT)); + g_variant_builder_add(&builder, "{sv}", "session_handle_token", +- g_variant_new_string(variant_string)); +- g_free(variant_string); ++ g_variant_new_string(variant_string.get())); + variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT)); + g_variant_builder_add(&builder, "{sv}", "handle_token", +- g_variant_new_string(variant_string)); ++ g_variant_new_string(variant_string.get())); + +- portal_handle_ = PrepareSignalHandle(connection_, variant_string); ++ portal_handle_ = PrepareSignalHandle(connection_, variant_string.get()); + session_request_signal_id_ = SetupRequestResponseSignal( + portal_handle_, OnSessionRequestResponseSignal); +- g_free(variant_string); + + RTC_LOG(LS_INFO) << "Screen cast session requested."; + g_dbus_proxy_call( +@@ -509,22 +963,21 @@ void BaseCapturerPipeWire::OnSessionRequested(GDBusProxy *proxy, + BaseCapturerPipeWire* that = static_cast(user_data); + RTC_DCHECK(that); + +- GError* error = nullptr; +- GVariant* variant = g_dbus_proxy_call_finish(proxy, result, &error); ++ Scoped error; ++ Scoped variant( ++ g_dbus_proxy_call_finish(proxy, result, error.receive())); + if (!variant) { +- if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) ++ if (g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED)) + return; + RTC_LOG(LS_ERROR) << "Failed to create a screen cast session: " + << error->message; +- g_error_free(error); + that->portal_init_failed_ = true; + return; + } + RTC_LOG(LS_INFO) << "Initializing the screen cast session."; + +- gchar* handle = nullptr; +- g_variant_get_child(variant, 0, "o", &handle); +- g_variant_unref(variant); ++ Scoped handle; ++ g_variant_get_child(variant.get(), 0, "o", &handle); + if (!handle) { + RTC_LOG(LS_ERROR) << "Failed to initialize the screen cast session."; + if (that->session_request_signal_id_) { +@@ -536,8 +989,6 @@ void BaseCapturerPipeWire::OnSessionRequested(GDBusProxy *proxy, + return; + } + +- g_free(handle); +- + RTC_LOG(LS_INFO) << "Subscribing to the screen cast session."; + } + +@@ -557,11 +1008,11 @@ void BaseCapturerPipeWire::OnSessionRequestResponseSignal( + << "Received response for the screen cast session subscription."; + + guint32 portal_response; +- GVariant* response_data; +- g_variant_get(parameters, "(u@a{sv})", &portal_response, &response_data); +- g_variant_lookup(response_data, "session_handle", "s", ++ Scoped response_data; ++ g_variant_get(parameters, "(u@a{sv})", &portal_response, ++ response_data.receive()); ++ g_variant_lookup(response_data.get(), "session_handle", "s", + &that->session_handle_); +- g_variant_unref(response_data); + + if (!that->session_handle_ || portal_response) { + RTC_LOG(LS_ERROR) +@@ -575,23 +1026,23 @@ void BaseCapturerPipeWire::OnSessionRequestResponseSignal( + + void BaseCapturerPipeWire::SourcesRequest() { + GVariantBuilder builder; +- gchar* variant_string; ++ Scoped variant_string; + + g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT); + // We want to record monitor content. +- g_variant_builder_add(&builder, "{sv}", "types", +- g_variant_new_uint32(capture_source_type_)); ++ g_variant_builder_add( ++ &builder, "{sv}", "types", ++ g_variant_new_uint32(static_cast(capture_source_type_))); + // We don't want to allow selection of multiple sources. + g_variant_builder_add(&builder, "{sv}", "multiple", + g_variant_new_boolean(false)); + variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT)); + g_variant_builder_add(&builder, "{sv}", "handle_token", +- g_variant_new_string(variant_string)); ++ g_variant_new_string(variant_string.get())); + +- sources_handle_ = PrepareSignalHandle(connection_, variant_string); ++ sources_handle_ = PrepareSignalHandle(connection_, variant_string.get()); + sources_request_signal_id_ = SetupRequestResponseSignal( + sources_handle_, OnSourcesRequestResponseSignal); +- g_free(variant_string); + + RTC_LOG(LS_INFO) << "Requesting sources from the screen cast session."; + g_dbus_proxy_call( +@@ -608,22 +1059,21 @@ void BaseCapturerPipeWire::OnSourcesRequested(GDBusProxy *proxy, + BaseCapturerPipeWire* that = static_cast(user_data); + RTC_DCHECK(that); + +- GError* error = nullptr; +- GVariant* variant = g_dbus_proxy_call_finish(proxy, result, &error); ++ Scoped error; ++ Scoped variant( ++ g_dbus_proxy_call_finish(proxy, result, error.receive())); + if (!variant) { +- if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) ++ if (g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED)) + return; + RTC_LOG(LS_ERROR) << "Failed to request the sources: " << error->message; +- g_error_free(error); + that->portal_init_failed_ = true; + return; + } + + RTC_LOG(LS_INFO) << "Sources requested from the screen cast session."; + +- gchar* handle = nullptr; +- g_variant_get_child(variant, 0, "o", &handle); +- g_variant_unref(variant); ++ Scoped handle; ++ g_variant_get_child(variant.get(), 0, "o", handle.receive()); + if (!handle) { + RTC_LOG(LS_ERROR) << "Failed to initialize the screen cast session."; + if (that->sources_request_signal_id_) { +@@ -635,8 +1085,6 @@ void BaseCapturerPipeWire::OnSourcesRequested(GDBusProxy *proxy, + return; + } + +- g_free(handle); +- + RTC_LOG(LS_INFO) << "Subscribed to sources signal."; + } + +@@ -668,17 +1116,16 @@ void BaseCapturerPipeWire::OnSourcesRequestResponseSignal( + + void BaseCapturerPipeWire::StartRequest() { + GVariantBuilder builder; +- gchar* variant_string; ++ Scoped variant_string; + + g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT); + variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT)); + g_variant_builder_add(&builder, "{sv}", "handle_token", +- g_variant_new_string(variant_string)); ++ g_variant_new_string(variant_string.get())); + +- start_handle_ = PrepareSignalHandle(connection_, variant_string); ++ start_handle_ = PrepareSignalHandle(connection_, variant_string.get()); + start_request_signal_id_ = + SetupRequestResponseSignal(start_handle_, OnStartRequestResponseSignal); +- g_free(variant_string); + + // "Identifier for the application window", this is Wayland, so not "x11:...". + const gchar parent_window[] = ""; +@@ -698,23 +1145,22 @@ void BaseCapturerPipeWire::OnStartRequested(GDBusProxy *proxy, + BaseCapturerPipeWire* that = static_cast(user_data); + RTC_DCHECK(that); + +- GError* error = nullptr; +- GVariant* variant = g_dbus_proxy_call_finish(proxy, result, &error); ++ Scoped error; ++ Scoped variant( ++ g_dbus_proxy_call_finish(proxy, result, error.receive())); + if (!variant) { +- if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) ++ if (g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED)) + return; + RTC_LOG(LS_ERROR) << "Failed to start the screen cast session: " + << error->message; +- g_error_free(error); + that->portal_init_failed_ = true; + return; + } + + RTC_LOG(LS_INFO) << "Initializing the start of the screen cast session."; + +- gchar* handle = nullptr; +- g_variant_get_child(variant, 0, "o", &handle); +- g_variant_unref(variant); ++ Scoped handle; ++ g_variant_get_child(variant.get(), 0, "o", handle.receive()); + if (!handle) { + RTC_LOG(LS_ERROR) + << "Failed to initialize the start of the screen cast session."; +@@ -727,8 +1173,6 @@ void BaseCapturerPipeWire::OnStartRequested(GDBusProxy *proxy, + return; + } + +- g_free(handle); +- + RTC_LOG(LS_INFO) << "Subscribed to the start signal."; + } + +@@ -746,9 +1190,10 @@ void BaseCapturerPipeWire::OnStartRequestResponseSignal( + + RTC_LOG(LS_INFO) << "Start signal received."; + guint32 portal_response; +- GVariant* response_data; +- GVariantIter* iter = nullptr; +- g_variant_get(parameters, "(u@a{sv})", &portal_response, &response_data); ++ Scoped response_data; ++ Scoped iter; ++ g_variant_get(parameters, "(u@a{sv})", &portal_response, ++ response_data.receive()); + if (portal_response || !response_data) { + RTC_LOG(LS_ERROR) << "Failed to start the screen cast session."; + that->portal_init_failed_ = true; +@@ -758,28 +1203,28 @@ void BaseCapturerPipeWire::OnStartRequestResponseSignal( + // Array of PipeWire streams. See + // https://github.com/flatpak/xdg-desktop-portal/blob/master/data/org.freedesktop.portal.ScreenCast.xml + // documentation for . +- if (g_variant_lookup(response_data, "streams", "a(ua{sv})", &iter)) { +- GVariant* variant; ++ if (g_variant_lookup(response_data.get(), "streams", "a(ua{sv})", ++ iter.receive())) { ++ Scoped variant; + +- while (g_variant_iter_next(iter, "@(ua{sv})", &variant)) { ++ while (g_variant_iter_next(iter.get(), "@(ua{sv})", variant.receive())) { + guint32 stream_id; +- gint32 width; +- gint32 height; +- GVariant* options; ++ guint32 type; ++ Scoped options; + +- g_variant_get(variant, "(u@a{sv})", &stream_id, &options); +- RTC_DCHECK(options != nullptr); ++ g_variant_get(variant.get(), "(u@a{sv})", &stream_id, options.receive()); ++ RTC_DCHECK(options.get()); + +- g_variant_lookup(options, "size", "(ii)", &width, &height); ++ if (g_variant_lookup(options.get(), "source_type", "u", &type)) { ++ that->capture_source_type_ = ++ static_cast(type); ++ } + +- that->desktop_size_.set(width, height); ++ that->pw_stream_node_id_ = stream_id; + +- g_variant_unref(options); +- g_variant_unref(variant); ++ break; + } + } +- g_variant_iter_free(iter); +- g_variant_unref(response_data); + + that->OpenPipeWireRemote(); + } +@@ -807,35 +1252,30 @@ void BaseCapturerPipeWire::OnOpenPipeWireRemoteRequested( + BaseCapturerPipeWire* that = static_cast(user_data); + RTC_DCHECK(that); + +- GError* error = nullptr; +- GUnixFDList* outlist = nullptr; +- GVariant* variant = g_dbus_proxy_call_with_unix_fd_list_finish( +- proxy, &outlist, result, &error); ++ Scoped error; ++ Scoped outlist; ++ Scoped variant(g_dbus_proxy_call_with_unix_fd_list_finish( ++ proxy, outlist.receive(), result, error.receive())); + if (!variant) { +- if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) ++ if (g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED)) + return; + RTC_LOG(LS_ERROR) << "Failed to open the PipeWire remote: " + << error->message; +- g_error_free(error); + that->portal_init_failed_ = true; + return; + } + + gint32 index; +- g_variant_get(variant, "(h)", &index); ++ g_variant_get(variant.get(), "(h)", &index); + +- if ((that->pw_fd_ = g_unix_fd_list_get(outlist, index, &error)) == -1) { ++ if ((that->pw_fd_ = ++ g_unix_fd_list_get(outlist.get(), index, error.receive())) == -1) { + RTC_LOG(LS_ERROR) << "Failed to get file descriptor from the list: " + << error->message; +- g_error_free(error); +- g_variant_unref(variant); + that->portal_init_failed_ = true; + return; + } + +- g_variant_unref(variant); +- g_object_unref(outlist); +- + that->InitPipeWire(); + } + +@@ -854,15 +1294,18 @@ void BaseCapturerPipeWire::CaptureFrame() { + return; + } + ++ webrtc::MutexLock lock(¤t_frame_lock_); + if (!current_frame_) { + callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr); + return; + } + +- std::unique_ptr result(new BasicDesktopFrame(desktop_size_)); ++ DesktopSize frame_size = video_size_; ++ ++ std::unique_ptr result(new BasicDesktopFrame(frame_size)); + result->CopyPixelsFrom( +- current_frame_, (desktop_size_.width() * kBytesPerPixel), +- DesktopRect::MakeWH(desktop_size_.width(), desktop_size_.height())); ++ current_frame_.get(), (frame_size.width() * kBytesPerPixel), ++ DesktopRect::MakeWH(frame_size.width(), frame_size.height())); + if (!result) { + callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr); + return; +@@ -887,4 +1330,11 @@ bool BaseCapturerPipeWire::SelectSource(SourceId id) { + return true; + } + ++// static ++std::unique_ptr BaseCapturerPipeWire::CreateRawCapturer( ++ const DesktopCaptureOptions& options) { ++ return std::make_unique( ++ BaseCapturerPipeWire::CaptureSourceType::kAny); ++} ++ + } // namespace webrtc +diff --git a/chromium/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h b/chromium/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h +index f28d7a558bc..75d20dbf1db 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h ++++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h +@@ -10,18 +10,23 @@ + + #ifndef MODULES_DESKTOP_CAPTURE_LINUX_BASE_CAPTURER_PIPEWIRE_H_ + #define MODULES_DESKTOP_CAPTURE_LINUX_BASE_CAPTURER_PIPEWIRE_H_ +- + #include + #define typeof __typeof__ + #include + #include ++#if PW_CHECK_VERSION(0, 3, 0) ++#include ++#endif + ++#include "absl/types/optional.h" + #include "modules/desktop_capture/desktop_capture_options.h" + #include "modules/desktop_capture/desktop_capturer.h" + #include "rtc_base/constructor_magic.h" ++#include "rtc_base/synchronization/mutex.h" + + namespace webrtc { + ++#if !PW_CHECK_VERSION(0, 3, 0) + class PipeWireType { + public: + spa_type_media_type media_type; +@@ -29,14 +34,25 @@ class PipeWireType { + spa_type_format_video format_video; + spa_type_video_format video_format; + }; ++#endif + + class BaseCapturerPipeWire : public DesktopCapturer { + public: +- enum CaptureSourceType { Screen = 1, Window }; ++ // Values are set based on source type property in ++ // xdg-desktop-portal/screencast ++ // https://github.com/flatpak/xdg-desktop-portal/blob/master/data/org.freedesktop.portal.ScreenCast.xml ++ enum class CaptureSourceType : uint32_t { ++ kScreen = 0b01, ++ kWindow = 0b10, ++ kAny = 0b11 ++ }; + + explicit BaseCapturerPipeWire(CaptureSourceType source_type); + ~BaseCapturerPipeWire() override; + ++ static std::unique_ptr CreateRawCapturer( ++ const DesktopCaptureOptions& options); ++ + // DesktopCapturer interface. + void Start(Callback* delegate) override; + void CaptureFrame() override; +@@ -45,6 +61,21 @@ class BaseCapturerPipeWire : public DesktopCapturer { + + private: + // PipeWire types --> ++#if PW_CHECK_VERSION(0, 3, 0) ++ struct pw_context* pw_context_ = nullptr; ++ struct pw_core* pw_core_ = nullptr; ++ struct pw_stream* pw_stream_ = nullptr; ++ struct pw_thread_loop* pw_main_loop_ = nullptr; ++ ++ spa_hook spa_core_listener_; ++ spa_hook spa_stream_listener_; ++ ++ // event handlers ++ pw_core_events pw_core_events_ = {}; ++ pw_stream_events pw_stream_events_ = {}; ++ ++ struct spa_video_info_raw spa_video_format_; ++#else + pw_core* pw_core_ = nullptr; + pw_type* pw_core_type_ = nullptr; + pw_stream* pw_stream_ = nullptr; +@@ -60,11 +91,13 @@ class BaseCapturerPipeWire : public DesktopCapturer { + pw_remote_events pw_remote_events_ = {}; + + spa_video_info_raw* spa_video_format_ = nullptr; ++#endif + ++ guint32 pw_stream_node_id_ = 0; + gint32 pw_fd_ = -1; + + CaptureSourceType capture_source_type_ = +- BaseCapturerPipeWire::CaptureSourceType::Screen; ++ BaseCapturerPipeWire::CaptureSourceType::kScreen; + + // <-- end of PipeWire types + +@@ -79,10 +112,12 @@ class BaseCapturerPipeWire : public DesktopCapturer { + guint sources_request_signal_id_ = 0; + guint start_request_signal_id_ = 0; + ++ DesktopSize video_size_; + DesktopSize desktop_size_ = {}; + DesktopCaptureOptions options_ = {}; + +- uint8_t* current_frame_ = nullptr; ++ webrtc::Mutex current_frame_lock_; ++ std::unique_ptr current_frame_; + Callback* callback_ = nullptr; + + bool portal_init_failed_ = false; +@@ -91,21 +126,32 @@ class BaseCapturerPipeWire : public DesktopCapturer { + void InitPipeWire(); + void InitPipeWireTypes(); + +- void CreateReceivingStream(); ++ pw_stream* CreateReceivingStream(); + void HandleBuffer(pw_buffer* buffer); + + void ConvertRGBxToBGRx(uint8_t* frame, uint32_t size); + ++#if PW_CHECK_VERSION(0, 3, 0) ++ static void OnCoreError(void* data, ++ uint32_t id, ++ int seq, ++ int res, ++ const char* message); ++ static void OnStreamParamChanged(void* data, ++ uint32_t id, ++ const struct spa_pod* format); ++#else + static void OnStateChanged(void* data, + pw_remote_state old_state, + pw_remote_state state, + const char* error); ++ static void OnStreamFormatChanged(void* data, const struct spa_pod* format); ++#endif + static void OnStreamStateChanged(void* data, + pw_stream_state old_state, + pw_stream_state state, + const char* error_message); + +- static void OnStreamFormatChanged(void* data, const struct spa_pod* format); + static void OnStreamProcess(void* data); + static void OnNewBuffer(void* data, uint32_t id); + +diff --git a/chromium/third_party/webrtc/modules/desktop_capture/linux/pipewire.sigs b/chromium/third_party/webrtc/modules/desktop_capture/linux/pipewire02.sigs +similarity index 91% +rename from chromium/third_party/webrtc/modules/desktop_capture/linux/pipewire.sigs +rename to chromium/third_party/webrtc/modules/desktop_capture/linux/pipewire02.sigs +index 3e21e9dc07c..5ac3d1d22b8 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/pipewire.sigs ++++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/pipewire02.sigs +@@ -26,6 +26,7 @@ void pw_remote_add_listener(pw_remote *remote, spa_hook *listener, const pw_remo + int pw_remote_connect_fd(pw_remote *remote, int fd); + void pw_remote_destroy(pw_remote *remote); + pw_remote * pw_remote_new(pw_core *core, pw_properties *properties, size_t user_data_size); ++enum pw_remote_state pw_remote_get_state(pw_remote *remote, const char **error); + + // stream.h + void pw_stream_add_listener(pw_stream *stream, spa_hook *listener, const pw_stream_events *events, void *data); +@@ -42,3 +43,5 @@ void pw_thread_loop_destroy(pw_thread_loop *loop); + pw_thread_loop * pw_thread_loop_new(pw_loop *loop, const char *name); + int pw_thread_loop_start(pw_thread_loop *loop); + void pw_thread_loop_stop(pw_thread_loop *loop); ++void pw_thread_loop_lock(struct pw_thread_loop *loop); ++void pw_thread_loop_unlock(struct pw_thread_loop *loop); +diff --git a/chromium/third_party/webrtc/modules/desktop_capture/linux/pipewire03.sigs b/chromium/third_party/webrtc/modules/desktop_capture/linux/pipewire03.sigs +new file mode 100644 +index 00000000000..78d241f40c6 +--- /dev/null ++++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/pipewire03.sigs +@@ -0,0 +1,46 @@ ++// Copyright 2018 The WebRTC project authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++//------------------------------------------------ ++// Functions from PipeWire used in capturer code. ++//------------------------------------------------ ++ ++// core.h ++int pw_core_disconnect(pw_core *core); ++ ++// loop.h ++void pw_loop_destroy(pw_loop *loop); ++pw_loop * pw_loop_new(const spa_dict *props); ++ ++ ++// pipewire.h ++void pw_init(int *argc, char **argv[]); ++ ++// properties.h ++pw_properties * pw_properties_new_string(const char *args); ++ ++// stream.h ++void pw_stream_add_listener(pw_stream *stream, spa_hook *listener, const pw_stream_events *events, void *data); ++int pw_stream_connect(pw_stream *stream, enum pw_direction direction, uint32_t target_id, enum pw_stream_flags flags, const spa_pod **params, uint32_t n_params); ++pw_buffer *pw_stream_dequeue_buffer(pw_stream *stream); ++void pw_stream_destroy(pw_stream *stream); ++pw_stream * pw_stream_new(pw_core *core, const char *name, pw_properties *props); ++int pw_stream_queue_buffer(pw_stream *stream, pw_buffer *buffer); ++int pw_stream_set_active(pw_stream *stream, bool active); ++int pw_stream_update_params(pw_stream *stream, const spa_pod **params, uint32_t n_params); ++ ++// thread-loop.h ++void pw_thread_loop_destroy(pw_thread_loop *loop); ++pw_thread_loop * pw_thread_loop_new(const char *name, const spa_dict *props); ++int pw_thread_loop_start(pw_thread_loop *loop); ++void pw_thread_loop_stop(pw_thread_loop *loop); ++void pw_thread_loop_lock(pw_thread_loop *loop); ++void pw_thread_loop_unlock(pw_thread_loop *loop); ++pw_loop * pw_thread_loop_get_loop(pw_thread_loop *loop); ++ ++ ++// context.h ++void pw_context_destroy(pw_context *context); ++pw_context *pw_context_new(pw_loop *main_loop, pw_properties *props, size_t user_data_size); ++pw_core * pw_context_connect(pw_context *context, pw_properties *properties, size_t user_data_size); +diff --git a/chromium/third_party/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc b/chromium/third_party/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc +deleted file mode 100644 +index fe672140cca..00000000000 +--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc ++++ /dev/null +@@ -1,29 +0,0 @@ +-/* +- * Copyright 2018 The WebRTC project authors. All Rights Reserved. +- * +- * Use of this source code is governed by a BSD-style license +- * that can be found in the LICENSE file in the root of the source +- * tree. An additional intellectual property rights grant can be found +- * in the file PATENTS. All contributing project authors may +- * be found in the AUTHORS file in the root of the source tree. +- */ +- +-#include "modules/desktop_capture/linux/screen_capturer_pipewire.h" +- +-#include +- +- +-namespace webrtc { +- +-ScreenCapturerPipeWire::ScreenCapturerPipeWire() +- : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::Screen) {} +-ScreenCapturerPipeWire::~ScreenCapturerPipeWire() {} +- +-// static +-std::unique_ptr +-ScreenCapturerPipeWire::CreateRawScreenCapturer( +- const DesktopCaptureOptions& options) { +- return std::make_unique(); +-} +- +-} // namespace webrtc +diff --git a/chromium/third_party/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.h b/chromium/third_party/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.h +deleted file mode 100644 +index 66dcd680e06..00000000000 +--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.h ++++ /dev/null +@@ -1,33 +0,0 @@ +-/* +- * Copyright 2018 The WebRTC project authors. All Rights Reserved. +- * +- * Use of this source code is governed by a BSD-style license +- * that can be found in the LICENSE file in the root of the source +- * tree. An additional intellectual property rights grant can be found +- * in the file PATENTS. All contributing project authors may +- * be found in the AUTHORS file in the root of the source tree. +- */ +- +-#ifndef MODULES_DESKTOP_CAPTURE_LINUX_SCREEN_CAPTURER_PIPEWIRE_H_ +-#define MODULES_DESKTOP_CAPTURE_LINUX_SCREEN_CAPTURER_PIPEWIRE_H_ +- +-#include +- +-#include "modules/desktop_capture/linux/base_capturer_pipewire.h" +- +-namespace webrtc { +- +-class ScreenCapturerPipeWire : public BaseCapturerPipeWire { +- public: +- ScreenCapturerPipeWire(); +- ~ScreenCapturerPipeWire() override; +- +- static std::unique_ptr CreateRawScreenCapturer( +- const DesktopCaptureOptions& options); +- +- RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCapturerPipeWire); +-}; +- +-} // namespace webrtc +- +-#endif // MODULES_DESKTOP_CAPTURE_LINUX_SCREEN_CAPTURER_PIPEWIRE_H_ +diff --git a/chromium/third_party/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc b/chromium/third_party/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc +deleted file mode 100644 +index b4559156dce..00000000000 +--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc ++++ /dev/null +@@ -1,29 +0,0 @@ +-/* +- * Copyright 2018 The WebRTC project authors. All Rights Reserved. +- * +- * Use of this source code is governed by a BSD-style license +- * that can be found in the LICENSE file in the root of the source +- * tree. An additional intellectual property rights grant can be found +- * in the file PATENTS. All contributing project authors may +- * be found in the AUTHORS file in the root of the source tree. +- */ +- +-#include "modules/desktop_capture/linux/window_capturer_pipewire.h" +- +-#include +- +- +-namespace webrtc { +- +-WindowCapturerPipeWire::WindowCapturerPipeWire() +- : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::Window) {} +-WindowCapturerPipeWire::~WindowCapturerPipeWire() {} +- +-// static +-std::unique_ptr +-WindowCapturerPipeWire::CreateRawWindowCapturer( +- const DesktopCaptureOptions& options) { +- return std::make_unique(); +-} +- +-} // namespace webrtc +diff --git a/chromium/third_party/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.h b/chromium/third_party/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.h +deleted file mode 100644 +index 7f184ef2999..00000000000 +--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.h ++++ /dev/null +@@ -1,33 +0,0 @@ +-/* +- * Copyright 2018 The WebRTC project authors. All Rights Reserved. +- * +- * Use of this source code is governed by a BSD-style license +- * that can be found in the LICENSE file in the root of the source +- * tree. An additional intellectual property rights grant can be found +- * in the file PATENTS. All contributing project authors may +- * be found in the AUTHORS file in the root of the source tree. +- */ +- +-#ifndef MODULES_DESKTOP_CAPTURE_LINUX_WINDOW_CAPTURER_PIPEWIRE_H_ +-#define MODULES_DESKTOP_CAPTURE_LINUX_WINDOW_CAPTURER_PIPEWIRE_H_ +- +-#include +- +-#include "modules/desktop_capture/linux/base_capturer_pipewire.h" +- +-namespace webrtc { +- +-class WindowCapturerPipeWire : public BaseCapturerPipeWire { +- public: +- WindowCapturerPipeWire(); +- ~WindowCapturerPipeWire() override; +- +- static std::unique_ptr CreateRawWindowCapturer( +- const DesktopCaptureOptions& options); +- +- RTC_DISALLOW_COPY_AND_ASSIGN(WindowCapturerPipeWire); +-}; +- +-} // namespace webrtc +- +-#endif // MODULES_DESKTOP_CAPTURE_LINUX_WINDOW_CAPTURER_PIPEWIRE_H_ +diff --git a/chromium/third_party/webrtc/modules/desktop_capture/screen_capturer_linux.cc b/chromium/third_party/webrtc/modules/desktop_capture/screen_capturer_linux.cc +index 82dbae48137..ed48b7d6d59 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/screen_capturer_linux.cc ++++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/screen_capturer_linux.cc +@@ -14,7 +14,7 @@ + #include "modules/desktop_capture/desktop_capturer.h" + + #if defined(WEBRTC_USE_PIPEWIRE) +-#include "modules/desktop_capture/linux/screen_capturer_pipewire.h" ++#include "modules/desktop_capture/linux/base_capturer_pipewire.h" + #endif // defined(WEBRTC_USE_PIPEWIRE) + + #if defined(WEBRTC_USE_X11) +@@ -28,7 +28,7 @@ std::unique_ptr DesktopCapturer::CreateRawScreenCapturer( + const DesktopCaptureOptions& options) { + #if defined(WEBRTC_USE_PIPEWIRE) + if (options.allow_pipewire() && DesktopCapturer::IsRunningUnderWayland()) { +- return ScreenCapturerPipeWire::CreateRawScreenCapturer(options); ++ return BaseCapturerPipeWire::CreateRawCapturer(options); + } + #endif // defined(WEBRTC_USE_PIPEWIRE) + +diff --git a/chromium/third_party/webrtc/modules/desktop_capture/window_capturer_linux.cc b/chromium/third_party/webrtc/modules/desktop_capture/window_capturer_linux.cc +index 41dbf836b03..2b142ae3b92 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/window_capturer_linux.cc ++++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/window_capturer_linux.cc +@@ -14,7 +14,7 @@ + #include "modules/desktop_capture/desktop_capturer.h" + + #if defined(WEBRTC_USE_PIPEWIRE) +-#include "modules/desktop_capture/linux/window_capturer_pipewire.h" ++#include "modules/desktop_capture/linux/base_capturer_pipewire.h" + #endif // defined(WEBRTC_USE_PIPEWIRE) + + #if defined(WEBRTC_USE_X11) +@@ -28,7 +28,7 @@ std::unique_ptr DesktopCapturer::CreateRawWindowCapturer( + const DesktopCaptureOptions& options) { + #if defined(WEBRTC_USE_PIPEWIRE) + if (options.allow_pipewire() && DesktopCapturer::IsRunningUnderWayland()) { +- return WindowCapturerPipeWire::CreateRawWindowCapturer(options); ++ return BaseCapturerPipeWire::CreateRawCapturer(options); + } + #endif // defined(WEBRTC_USE_PIPEWIRE) + +diff --git a/chromium/third_party/webrtc/webrtc.gni b/chromium/third_party/webrtc/webrtc.gni +index ca8acdbf259..505c975cece 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/webrtc.gni ++++ b/src/3rdparty/chromium/third_party/webrtc/webrtc.gni +@@ -117,6 +117,10 @@ declare_args() { + # Set this to link PipeWire directly instead of using the dlopen. + rtc_link_pipewire = false + ++ # Set this to use certain PipeWire version ++ # Currently we support PipeWire 0.2 (default) and PipeWire 0.3 ++ rtc_pipewire_version = "0.3" ++ + # Enable to use the Mozilla internal settings. + build_with_mozilla = false + +-- +2.35.1 + diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/010-widevine.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/010-widevine.patch new file mode 100644 index 00000000..dcfdeae3 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/010-widevine.patch @@ -0,0 +1,82 @@ +From b99042fb839021a0a3d2fe0cac7ac3899c4acbba Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Tue, 14 Jun 2022 14:19:24 +0200 +Subject: [PATCH] Find modern Chrome, Chromium and Firefox CDM modules + +The default download location has moved again, but we can now +also use firefox CDMs. + +Pick-to: 6.4 6.3 +Task-number: QTBUG-104238 +Change-Id: I7ee581fa63e50df970acb31ea6d3f67d332aef59 +Reviewed-by: Peter Varga +--- + src/core/content_client_qt.cpp | 54 ++++++++++++++++++++++++++++++---- + 1 file changed, 49 insertions(+), 5 deletions(-) + +diff --git a/src/core/content_client_qt.cpp b/src/core/content_client_qt.cpp +index 6c914b7729..7167332d9b 100644 +--- a/src/core/content_client_qt.cpp ++++ b/src/core/content_client_qt.cpp +@@ -250,15 +251,56 @@ static bool IsWidevineAvailable(base::FilePath *cdm_path, + } + } + #elif defined(Q_OS_LINUX) +- pluginPaths << QStringLiteral("/opt/google/chrome/libwidevinecdm.so") // Old Google Chrome ++ QList potentialWidevineVersionDirs; ++ ++ // Google Chrome widevine modules ++ QDir chromeWidevineDir(QDir::homePath() + "/.config/google-chrome/WidevineCdm"); ++ if (chromeWidevineDir.exists()) ++ potentialWidevineVersionDirs << chromeWidevineDir; ++ ++ // Firefox widevine modules ++ QDir firefoxPotentialProfilesDir(QDir::homePath() + "/.mozilla/firefox"); ++ if (firefoxPotentialProfilesDir.exists()) { ++ QFileInfoList firefoxProfileDirs = firefoxPotentialProfilesDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name | QDir::Reversed); ++ for (const QFileInfo &info : firefoxProfileDirs) { ++ QDir widevinePluginsDir(info.absoluteFilePath() + "/gmp-widevinecdm"); ++ if (widevinePluginsDir.exists()) ++ potentialWidevineVersionDirs << widevinePluginsDir; ++ } ++ } ++ ++ // Chromium widevine modules (might not work with proprietary codecs) ++ QDir chromiumWidevineDir(QDir::homePath() + "/.config/chromium/WidevineCdm"); ++ if (chromiumWidevineDir.exists()) ++ potentialWidevineVersionDirs << chromiumWidevineDir; ++ ++ // Search for widewine versions ++ for (const QDir &dir : potentialWidevineVersionDirs) { ++ QFileInfoList widevineVersionDirs = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name | QDir::Reversed); ++ // ### alternatively look up in the manifest.json and take the path from there. + #if Q_PROCESSOR_WORDSIZE == 8 +- << QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so") ++ const QString library = QLatin1String("/_platform_specific/linux_x64/libwidevinecdm.so"); + #else +- << QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x86/libwidevinecdm.so") ++ const QString library = QLatin1String("/_platform_specific/linux_x86/libwidevinecdm.so"); + #endif +- << QStringLiteral("/usr/lib/chromium/libwidevinecdm.so") // Arch ++ for (const QFileInfo &info : widevineVersionDirs) { ++ pluginPaths << info.absoluteFilePath() + "/libwidevinecdm.so"; ++ pluginPaths << info.absoluteFilePath() + library; ++ } ++ } ++ ++ // Fixed paths: ++ pluginPaths << QStringLiteral("/usr/lib/chromium/libwidevinecdm.so") // Arch + << QStringLiteral("/usr/lib/chromium-browser/libwidevinecdm.so") // Ubuntu/neon +- << QStringLiteral("/usr/lib64/chromium/libwidevinecdm.so"); // OpenSUSE style ++ << QStringLiteral("/usr/lib64/chromium/libwidevinecdm.so") // OpenSUSE style ++#if Q_PROCESSOR_WORDSIZE == 8 ++ << QStringLiteral("/usr/lib64/chromium-browser/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so") // Gentoo ++ << QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so") // Old Google Chrome ++#else ++ << QStringLiteral("/usr/lib/chromium-browser/WidevineCdm/_platform_specific/linux_x86/libwidevinecdm.so") // Gentoo ++ << QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x86/libwidevinecdm.so") // Old Google Chrome ++#endif ++ << QStringLiteral("/opt/google/chrome/libwidevinecdm.so"); // Older Google Chrome + #endif + } + diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/011-clang16.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/011-clang16.patch new file mode 100644 index 00000000..2d8f8482 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/011-clang16.patch @@ -0,0 +1,15 @@ +https://bugs.gentoo.org/903573 +--- a/src/3rdparty/chromium/v8/src/base/bit-field.h ++++ b/src/3rdparty/chromium/v8/src/base/bit-field.h +@@ -39,8 +39,11 @@ + static constexpr int kLastUsedBit = kShift + kSize - 1; + static constexpr U kNumValues = U{1} << kSize; + ++ #pragma clang diagnostic push ++ #pragma clang diagnostic ignored "-Wenum-constexpr-conversion" + // Value for the field with all bits set. + static constexpr T kMax = static_cast(kNumValues - 1); ++ #pragma clang diagnostic pop + + template + using Next = BitField; diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/012-python3.12-dubious-imp.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/012-python3.12-dubious-imp.patch new file mode 100644 index 00000000..b06f957e --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/012-python3.12-dubious-imp.patch @@ -0,0 +1,26 @@ +Description: stop using imp module which was removed in Python 3.12 +Origin: upstream, commits + https://chromium.googlesource.com/chromium/src/+/9e0c89a3b5638ba2 + https://chromium.googlesource.com/chromium/src/+/f5f6e361d037c316 +Last-Update: 2024-03-17 + +--- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py ++++ b/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py +@@ -3,7 +3,6 @@ + # found in the LICENSE file. + + import errno +-import imp + import os.path + import sys + +--- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py ++++ b/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py +@@ -2,7 +2,6 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + +-import imp + import os.path + import sys + diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/013-python3.12-fix-six.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/013-python3.12-fix-six.patch new file mode 100644 index 00000000..bfc04388 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/013-python3.12-fix-six.patch @@ -0,0 +1,58 @@ +Patch-Source: https://sources.debian.org/data/main/q/qtwebengine-opensource-src/5.15.16+dfsg-3/debian/patches/python3.12-six.patch +-- +Description: implement find_spec() for _SixMetaPathImporter +Origin: upstream, https://github.com/benjaminp/six/commit/25916292d96f5f09 +Last-Update: 2024-03-17 + +--- a/src/3rdparty/chromium/third_party/protobuf/third_party/six/six.py ++++ b/src/3rdparty/chromium/third_party/protobuf/third_party/six/six.py +@@ -71,6 +71,11 @@ else: + MAXSIZE = int((1 << 63) - 1) + del X + ++if PY34: ++ from importlib.util import spec_from_loader ++else: ++ spec_from_loader = None ++ + + def _add_doc(func, doc): + """Add documentation to a function.""" +@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object): + return self + return None + ++ def find_spec(self, fullname, path, target=None): ++ if fullname in self.known_modules: ++ return spec_from_loader(fullname, self) ++ return None ++ + def __get_module(self, fullname): + try: + return self.known_modules[fullname] +--- a/src/3rdparty/chromium/tools/grit/third_party/six/__init__.py ++++ b/src/3rdparty/chromium/tools/grit/third_party/six/__init__.py +@@ -71,6 +71,11 @@ else: + MAXSIZE = int((1 << 63) - 1) + del X + ++if PY34: ++ from importlib.util import spec_from_loader ++else: ++ spec_from_loader = None ++ + + def _add_doc(func, doc): + """Add documentation to a function.""" +@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object): + return self + return None + ++ def find_spec(self, fullname, path, target=None): ++ if fullname in self.known_modules: ++ return spec_from_loader(fullname, self) ++ return None ++ + def __get_module(self, fullname): + try: + return self.known_modules[fullname] diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/patchseries b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/patchseries new file mode 100644 index 00000000..3dde4765 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.14_p20240510-patchset/patchseries @@ -0,0 +1,13 @@ +001-disable-fatal-warnings.patch # downstream, bug 695446 +002-extra-gn.patch # downstream, bug 774186 +003-chromium-87-v8-icu68.patch # downstream, bug 757606 +004-disable-git.patch # downstream snapshot fix +005-pdfium-system-lcms2.patch # by Debian, QTBUG-61746 +006-clang14.patch # by FreeBSD, bug 836604 +007-gcc12-includes.patch # by openSUSE, bug 840326 +008-jumbo-build.patch # bug 813957 +009-port-to-pipewire-0.3.patch # bug 698988, pipewire-3 +010-widevine.patch # bug 888783 +011-clang16.patch # bug 903573 +012-python3.12-dubious-imp.patch # bug 925718, py3.12 +013-python3.12-fix-six.patch # bug 925718, py3.12 diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.17-spellcheck.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.17-spellcheck.patch new file mode 100644 index 00000000..07ceacf9 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.17-spellcheck.patch @@ -0,0 +1,38 @@ +diff '--color=auto' -ur qtwebengine-5.15.17.orig/src/3rdparty/chromium/content/browser/browser_context.cc qtwebengine-5.15.17/src/3rdparty/chromium/content/browser/browser_context.cc +--- qtwebengine-5.15.17.orig/src/3rdparty/chromium/content/browser/browser_context.cc 2025-05-23 21:15:55.660122334 +0200 ++++ qtwebengine-5.15.17/src/3rdparty/chromium/content/browser/browser_context.cc 2025-05-23 21:53:01.541956570 +0200 +@@ -533,6 +533,11 @@ + RemoveUserData(kStoragePartitionMapKeyName); + } + ++#if defined(TOOLKIT_QT) ++void BrowserContext::FailedToLoadDictionary(const std::string&) { ++} ++#endif ++ + std::string BrowserContext::GetMediaDeviceIDSalt() { + return unique_id_; + } +diff '--color=auto' -ur qtwebengine-5.15.17.orig/src/3rdparty/chromium/content/public/browser/browser_context.h qtwebengine-5.15.17/src/3rdparty/chromium/content/public/browser/browser_context.h +--- qtwebengine-5.15.17.orig/src/3rdparty/chromium/content/public/browser/browser_context.h 2025-05-23 21:15:55.837295999 +0200 ++++ qtwebengine-5.15.17/src/3rdparty/chromium/content/public/browser/browser_context.h 2025-05-23 21:54:31.181538982 +0200 +@@ -18,7 +18,6 @@ + #include "base/memory/weak_ptr.h" + #include "base/optional.h" + #include "base/supports_user_data.h" +-#include "components/spellcheck/spellcheck_buildflags.h" + #include "content/common/content_export.h" + #include "mojo/public/cpp/bindings/pending_receiver.h" + #include "mojo/public/cpp/bindings/pending_remote.h" +@@ -346,9 +345,9 @@ + // directly, so privacy is not compromised. + virtual media::VideoDecodePerfHistory* GetVideoDecodePerfHistory(); + +-#if defined(TOOLKIT_QT) && BUILDFLAG(ENABLE_SPELLCHECK) ++#if defined(TOOLKIT_QT) + // Inform about not working dictionary for given language +- virtual void FailedToLoadDictionary(const std::string& language) = 0; ++ virtual void FailedToLoadDictionary(const std::string& language); + #endif + + // Returns a LearningSession associated with |this|. Used as the central diff --git a/dev-qt/qtwebengine/metadata.xml b/dev-qt/qtwebengine/metadata.xml new file mode 100644 index 00000000..50c53c59 --- /dev/null +++ b/dev-qt/qtwebengine/metadata.xml @@ -0,0 +1,25 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Install the QWebEngineView plugin used to add widgets in dev-qt/designer forms that display web pages. + Combine source files to speed up build process. + Use the system-wide dev-libs/icu instead of bundled. + Enable QtWidgets support + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtwebengine + qt/qtwebengine-chromium + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtwebkit/Manifest b/dev-qt/qtwebkit/Manifest index fae2e455..53a86bbe 100644 --- a/dev-qt/qtwebkit/Manifest +++ b/dev-qt/qtwebkit/Manifest @@ -12,8 +12,14 @@ AUX no_pdf_image_plugin.diff 854 BLAKE2B d63627aaf83d6752a65f5660a80682a18c4ad13 AUX offlineasm_ruby_3.2.diff 1275 BLAKE2B 48e944220dca9527272a05f6517b66fb217e2505b0bf32c160c5ac5069e7fc1ab88dd2bbb3edcad71871753e44ea62c2f846d1489e15c5f62a1ede8af0935f11 SHA512 82004434b5f063363be3be7e550395065af7395009a148e6c0936f797889df6aa93754210a7c7bffbfdfeaa922a07bcd00437d0b90a59356be7f1fa7d8c193da AUX path_max.diff 598 BLAKE2B 676a26a4b97996e62eaea6ef3cd6481b0a64e062c5ef346f1938f6ae9dd5b37ac264b55ed338f413b230a79258982828305b00eff905b6cc78c219225a235e29 SHA512 d8908f53a66fa5a36660145ed0de4648465f7aa90bdf20554f9cf53f4ef2b02669c0a08f2ff0627215e62dcfa31f61cae206b3bd94ca737c2c30b6db2e7c36ca AUX python_3.9.diff 645 BLAKE2B bdad9cf9feec2b46459249affcf60ad8086dd0200cc5a3bd6eca2aabab6777d21ec526245affcaa85be77d1dd44dc123d33a19656c85bbf1901dca81a1e4cf9f SHA512 cd90c52141ff70381cc5c5f627713428dee20f33ceed66f428cc30a3a8f3c63263e26528f81de6c9bb970c6951121f48b92c681d799ee0bc651fe6f04aa0a543 +AUX qtwebkit-5.212.0_pre20240528-gcc14.patch 882 BLAKE2B 5f2ac706a300e04fc3bbfba4d4c5dd39b06a3f0051930791f4aad54afad1d6b00f6acc2e74aed0aeaab7ced0f46b7d81ddf85bac93b1c53e24c828c89a2b5602 SHA512 1d2ff7e5e0bab4670d24741237d5d4f4a9c3c072245e7437e62e3534c192107f32b321d60ef688d6456f7d4af98a7f7722f75fd1f5cdf0213491cb0bbba9c954 +AUX qtwebkit-5.212.0_pre20240528-icu76.patch 863 BLAKE2B f38b5e30199815fef76602d0d45edfce49d103b8bb4a52883ce27496566562c8c0a2985a8b3622139edd55338988ec00058152f43b0c30863318d6aa27614fea SHA512 2df1f51292139fe0dcdc2d43d58bb615a84609837a30526d84a49bd64434e45688d3d9e6ec6d721ad12202ebb9b14ad54fad9e56d269c1494c82fef56bff8876 +AUX qtwebkit-5.212.0_pre20240528-ruby.patch 2085 BLAKE2B da71cf492810ae752132674a22025b26a1ef45ec5cd3a1ef589da0f94d55194f4b3f22bc4a136f5c8bdacf18c1a1213c8a57d0008b9d88f62d7ccfd734a09407 SHA512 1431c6329fb9ef86dbe929a4002881f6a511aa8a2be684a7c96ea7ea48af53b4f0d96bd8e8367289080bed674ba35cab002747cf3820a6831e60f7ab7a53d3cc AUX reduce_exports.diff 946 BLAKE2B ac87fb790c16fe876b89e289a132e933e79da475a942f3e5d7473e22ea6f04062c4f5aefbb442a950dcd70dd717f86ba8b8b8e304aac949aab7a7cb29cec9eab SHA512 9240c6a9b30262715561960018ba40daf9efe19053b8b0b4817f10976ac6d837e7a32977a0c173ff7f8ed5281d3581cd7f79b3b1a2a5aa6be760a7594eb14574 AUX series 271 BLAKE2B 647b81e820e5210edeaa5b6a01717ca22c70756862e9e073de9b7c23c4b3cd182adc858c37523f74a8f25d78a51522bdb4fa2b70a3f0c3d9a3f5d0af22d8c547 SHA512 c249c957d42beb5e3c811ac3e853ca3a0f3b05ede3e39ec4aa350df42a7d2fb83c7b45d7fa3c7a33e6ff789fd6851540074f286057b0bc1a9662159eb1d194f2 AUX support_riscv64.diff 2131 BLAKE2B ea74709d35758e4c5662bfadef1b6e091788457e675783c7010e1e62fcfab59cc9b001b25ac373a50280fe9041423c2d7fd7d618d9e4a52a2800467bc8490b58 SHA512 0e07fb0b3dc39df14e9591706949ca0ae44d7c6433461673e9bebe927e5ec0529e1064ffc2d5e3b2a5f88a2d7016dd8f020eee6ae860bfee559f45662236c5c2 DIST qtwebkit-5.212.0-alpha4.tar.xz 12528508 BLAKE2B 72d7444f270f47b62044cf683ed306803660bfbafe1450440ea29e43e3c0e6e841b6e860dfa8affc1b32b7c539448f04e22a7ae38cce055d37905dfb3240aab0 SHA512 33f11270bd030599beff9c1983a6c5ff2d61f407cc8a6825f7f405d46f9184c720fc7f60c7359f08f828db96a2170092875066a0d5c0a21ff09bc48a2603fbf6 +DIST qtwebkit-5.212.0_pre20240528.gh.tar.gz 988034078 BLAKE2B 275f6b2723a7bb2a94ba57c2850a28ddfd570bbcd05464c0ac3eee39628126b4855080f33893d00dc695c17e269dd2465c361221a8f3b0fd1689a5549c3394b7 SHA512 dfbda5ed6d84e968c778c72931393a2e4341547ab65be7bfecfbdc4befecb2642bfb4219b23c15465426ba8e50d87d631d3c75d0ee54a775802295c6b16daf96 EBUILD qtwebkit-5.212.0_pre20200309-r6.ebuild 4655 BLAKE2B ccc56ffab7d6e87b57387c3c05e49ee644da67f23a19615c9d3e27d9ce50e66a5a26d8eb399966481107a912e9be3ddbd9a3eae41dfad5b821840fb3972cbbb6 SHA512 78c9a9dc8f674b7a8ac1a430d20183e9a38dc5742cfca5b6aa5cbdf0736e4c1fa4146239615cd1fcc7b5c9a3d30f6c84c30289785b37e60a6cfb0139eec887d8 +EBUILD qtwebkit-5.212.0_pre20240528-r1.ebuild 4139 BLAKE2B 06dddbd788188e20bcb3989b6239a0fa2cd9ad896ce22b541eb1e2b20f3a5d3ba3568ec0c6b31fdaf5a6dcf20bf606a3444993c3ad50590ddb8c2869c0a851f0 SHA512 ec640592948ba6397fd81b03618b6d1079bbaa915a4d52025e088884ba5186fbfd75eb7bafc06ebe34f4e53551c3d2c8fef42670f423e4e76b406df25a2e7a41 +MISC metadata.xml 1152 BLAKE2B 6291c4643d29dd68af56e6054c4db1ebb307fdf2097012182dc77a2754e51bca84c1f53ae7c9f6305ead35cc47334a9e0ca605871aac899ce06482d983c8406f SHA512 28146a11931ab5b106d7bfa08dd3cb38ed3ae1fec003ca27f3f3234887bc9d65a82c76e5ab50334e94de02c3b6455a228acec2574c551e218e53e2005becc6c6 diff --git a/dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-gcc14.patch b/dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-gcc14.patch new file mode 100644 index 00000000..870b6e28 --- /dev/null +++ b/dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-gcc14.patch @@ -0,0 +1,15 @@ +diff --git a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp +index 9e726d5..4876f0f 100644 +--- a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp ++++ b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp +@@ -231,8 +231,9 @@ bool isAllowedByAllWithHashFromContent(const CSPDirectiveListVector& policies, c + auto cryptoDigest = CryptoDigest::create(toCryptoDigestAlgorithm(algorithm)); + cryptoDigest->addBytes(contentCString.data(), contentCString.length()); + Vector digest = cryptoDigest->computeHash(); ++ ContentSecurityPolicyHash hash = std::make_pair(algorithm, digest); + for (auto& policy : policies) { +- if ((policy.get()->*allowed)(std::make_pair(algorithm, digest))) ++ if ((policy.get()->*allowed)(hash)) + return true; + } + } diff --git a/dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-icu76.patch b/dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-icu76.patch new file mode 100644 index 00000000..a19a281e --- /dev/null +++ b/dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-icu76.patch @@ -0,0 +1,11 @@ +diff '--color=auto' -ur qtwebkit-756e1c8f23dc2720471298281c421c0076d02df8.orig/Source/WTF/wtf/Platform.h qtwebkit-756e1c8f23dc2720471298281c421c0076d02df8/Source/WTF/wtf/Platform.h +--- qtwebkit-756e1c8f23dc2720471298281c421c0076d02df8.orig/Source/WTF/wtf/Platform.h 2024-05-28 01:27:58.000000000 +0200 ++++ qtwebkit-756e1c8f23dc2720471298281c421c0076d02df8/Source/WTF/wtf/Platform.h 2024-12-23 21:25:17.688583651 +0100 +@@ -1141,6 +1141,7 @@ + /* FIXME: This does not belong in Platform.h and should instead be included in another mechanism (compiler option, prefix header, config.h, etc) */ + /* ICU configuration. Some of these match ICU defaults on some platforms, but we would like them consistently set everywhere we build WebKit. */ + #define U_SHOW_CPLUSPLUS_API 0 ++#define U_SHOW_CPLUSPLUS_HEADER_API 0 + #ifdef __cplusplus + #define UCHAR_TYPE char16_t + #endif diff --git a/dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-ruby.patch b/dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-ruby.patch new file mode 100644 index 00000000..d25c3b1d --- /dev/null +++ b/dev-qt/qtwebkit/files/qtwebkit-5.212.0_pre20240528-ruby.patch @@ -0,0 +1,46 @@ +From c7d19a492d97f9282a546831beb918e03315f6ef Mon Sep 17 00:00:00 2001 +From: Adrian Perez de Castro +Date: Wed, 15 Jan 2020 22:15:38 +0000 +Subject: [PATCH] Offlineasm warnings with newer Ruby versions + https://bugs.webkit.org/show_bug.cgi?id=206233 + +Reviewed by Yusuke Suzuki. + +Avoid a warning about using Object#=~ on Annotation instances, which +has been deprecated in Ruby 2.7. + +* offlineasm/parser.rb: Swap checks to prevent applying the =~ operator +to Annotation instances, which do not define it. + + +Canonical link: https://commits.webkit.org/219400@main +git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254637 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/JavaScriptCore/ChangeLog | 13 +++++++++++++ + Source/JavaScriptCore/offlineasm/parser.rb | 6 +++--- + 2 files changed, 16 insertions(+), 3 deletions(-) + +diff --git a/Source/JavaScriptCore/offlineasm/parser.rb b/Source/JavaScriptCore/offlineasm/parser.rb +index 791c81a9868d..f14c873e2dbd 100644 +--- a/Source/JavaScriptCore/offlineasm/parser.rb ++++ b/Source/JavaScriptCore/offlineasm/parser.rb +@@ -628,9 +628,7 @@ def parseSequence(final, comment) + firstCodeOrigin = @tokens[@idx].codeOrigin + list = [] + loop { +- if (@idx == @tokens.length and not final) or (final and @tokens[@idx] =~ final) +- break +- elsif @tokens[@idx].is_a? Annotation ++ if @tokens[@idx].is_a? Annotation + # This is the only place where we can encounter a global + # annotation, and hence need to be able to distinguish between + # them. +@@ -644,6 +642,8 @@ def parseSequence(final, comment) + list << Instruction.new(codeOrigin, annotationOpcode, [], @tokens[@idx].string) + @annotation = nil + @idx += 2 # Consume the newline as well. ++ elsif (@idx == @tokens.length and not final) or (final and @tokens[@idx] =~ final) ++ break + elsif @tokens[@idx] == "\n" + # ignore + @idx += 1 diff --git a/dev-qt/qtwebkit/metadata.xml b/dev-qt/qtwebkit/metadata.xml new file mode 100644 index 00000000..05f4bb98 --- /dev/null +++ b/dev-qt/qtwebkit/metadata.xml @@ -0,0 +1,26 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Enable physical position determination via dev-qt/qtpositioning + Enable HTML5 audio/video support via media-libs/gstreamer using SLOT 1.0 + Enable hyphenation support via dev-libs/hyphen + Enable HTML5 audio/video support via dev-qt/qtmultimedia + Enable device orientation detection via dev-qt/qtsensors + Enable printing via dev-qt/qtprintsupport + Build QML/QtQuick bindings + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtwebkit/qtwebkit-5.212.0_pre20240528-r1.ebuild b/dev-qt/qtwebkit/qtwebkit-5.212.0_pre20240528-r1.ebuild new file mode 100644 index 00000000..1a485088 --- /dev/null +++ b/dev-qt/qtwebkit/qtwebkit-5.212.0_pre20240528-r1.ebuild @@ -0,0 +1,150 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} python3_13t ) +USE_RUBY="ruby27 ruby30 ruby31 ruby32" +MY_COMMIT="756e1c8f23dc2720471298281c421c0076d02df8" + +inherit check-reqs cmake flag-o-matic python-any-r1 qmake-utils ruby-single toolchain-funcs + +DESCRIPTION="WebKit rendering library for the Qt5 framework (deprecated)" +HOMEPAGE="https://www.qt.io/" +SRC_URI="https://github.com/qtwebkit/qtwebkit/archive/${MY_COMMIT}.tar.gz -> ${P}.gh.tar.gz" +S="${WORKDIR}/qtwebkit-${MY_COMMIT}" +LICENSE="BSD LGPL-2+" +SLOT="5/5.212" +KEYWORDS="amd64 arm arm64 ppc64 x86" +IUSE="geolocation gles2-only +gstreamer +hyphen +jit multimedia nsplugin opengl orientation +printsupport qml webp X" + +REQUIRED_USE=" + nsplugin? ( X ) + qml? ( opengl ) + ?? ( gstreamer multimedia ) +" + +# Dependencies found at Source/cmake/OptionsQt.cmake +QT_MIN_VER="5.12.3:5" +BDEPEND=" + ${PYTHON_DEPS} + ${RUBY_DEPS} + dev-lang/perl + dev-util/gperf + >=sys-devel/bison-2.4.3 + sys-devel/flex + virtual/pkgconfig +" +DEPEND=" + dev-db/sqlite:3 + dev-libs/icu:= + dev-libs/libxml2 + dev-libs/libxslt + >=dev-qt/qtcore-${QT_MIN_VER} + >=dev-qt/qtgui-${QT_MIN_VER} + >=dev-qt/qtnetwork-${QT_MIN_VER} + >=dev-qt/qtwidgets-${QT_MIN_VER}= + media-libs/libpng:0= + media-libs/woff2 + media-libs/libjpeg-turbo:0 + geolocation? ( >=dev-qt/qtpositioning-${QT_MIN_VER} ) + gstreamer? ( + dev-libs/glib:2 + media-libs/gstreamer:1.0 + media-libs/gst-plugins-bad:1.0 + media-libs/gst-plugins-base:1.0 + ) + hyphen? ( dev-libs/hyphen ) + multimedia? ( >=dev-qt/qtmultimedia-${QT_MIN_VER}[widgets] ) + opengl? ( + >=dev-qt/qtgui-${QT_MIN_VER}[gles2-only=] + >=dev-qt/qtopengl-${QT_MIN_VER}[gles2-only=] + ) + orientation? ( >=dev-qt/qtsensors-${QT_MIN_VER} ) + printsupport? ( >=dev-qt/qtprintsupport-${QT_MIN_VER} ) + qml? ( + >=dev-qt/qtdeclarative-${QT_MIN_VER} + >=dev-qt/qtwebchannel-${QT_MIN_VER}[qml] + ) + webp? ( media-libs/libwebp:= ) + X? ( + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXrender + ) +" +RDEPEND="${DEPEND}" + +CHECKREQS_DISK_BUILD="16G" # bug 417307 + +PATCHES=( + "${FILESDIR}"/qtwebkit-5.212.0_pre20240528-gcc14.patch + "${FILESDIR}"/qtwebkit-5.212.0_pre20240528-icu76.patch + "${FILESDIR}"/qtwebkit-5.212.0_pre20240528-ruby.patch +) + +_check_reqs() { + if [[ ${MERGE_TYPE} != binary ]] && is-flagq "-g*" && ! is-flagq "-g*0"; then + einfo "Checking for sufficient disk space to build ${PN} with debugging flags" + check-reqs_$1 + fi +} + +pkg_pretend() { + _check_reqs pkg_pretend +} + +pkg_setup() { + _check_reqs pkg_setup + python-any-r1_pkg_setup +} + +src_configure() { + # Respect CC, otherwise fails on prefix, bug #395875 + tc-export CC + + # Multiple rendering bugs on youtube, github, etc without this, bug #547224 + append-flags $(test-flags -fno-strict-aliasing) + + append-cxxflags -fpermissive + + local mycmakeargs=( + -DPORT=Qt + -DENABLE_API_TESTS=OFF + -DENABLE_TOOLS=OFF + -DENABLE_GEOLOCATION=$(usex geolocation) + -DUSE_GSTREAMER=$(usex gstreamer) + -DUSE_LIBHYPHEN=$(usex hyphen) + -DENABLE_JIT=$(usex jit) + -DUSE_QT_MULTIMEDIA=$(usex multimedia) + -DENABLE_NETSCAPE_PLUGIN_API=$(usex nsplugin) + -DENABLE_OPENGL=$(usex opengl) + -DENABLE_PRINT_SUPPORT=$(usex printsupport) + -DENABLE_DEVICE_ORIENTATION=$(usex orientation) + -DENABLE_WEBKIT2=$(usex qml) + $(cmake_use_find_package webp WebP) + -DENABLE_X11_TARGET=$(usex X) + ) + + if has_version "virtual/rubygems[ruby_targets_ruby32]"; then + mycmakeargs+=( -DRUBY_EXECUTABLE=$(type -P ruby32) ) + elif has_version "virtual/rubygems[ruby_targets_ruby31]"; then + mycmakeargs+=( -DRUBY_EXECUTABLE=$(type -P ruby31) ) + elif has_version "virtual/rubygems[ruby_targets_ruby30]"; then + mycmakeargs+=( -DRUBY_EXECUTABLE=$(type -P ruby30) ) + elif has_version "virtual/rubygems[ruby_targets_ruby27]"; then + mycmakeargs+=( -DRUBY_EXECUTABLE=$(type -P ruby27) ) + fi + + cmake_src_configure +} + +src_install() { + cmake_src_install + + # bug 572056 + if [[ ! -f ${ED}$(qt5_get_libdir)/libQt5WebKit.so ]]; then + eerror "${CATEGORY}/${PF} could not build due to a broken ruby environment." + die 'Check "eselect ruby" and ensure you have a working ruby in your $PATH' + fi +} diff --git a/dev-qt/qtwebview/Manifest b/dev-qt/qtwebview/Manifest new file mode 100644 index 00000000..ee516b51 --- /dev/null +++ b/dev-qt/qtwebview/Manifest @@ -0,0 +1,3 @@ +DIST qtwebview-everywhere-opensource-src-5.15.18.tar.xz 114332 BLAKE2B 4ffd929b47733491ab3c4e5861cb72f8be6a796d375adcf0f2b2b60e83b096fea9cf57e4575248c63fc9572b398b1cc12637b570abddf2608fb0d4d987d22b56 SHA512 5dc6ae1b648a66572947f36d4e668b3219d7c40f9b455871fb673268de24b0d7e84075b6bcd4aa1cb72ec6a6bd3519344a66e2481b783786df6a613aacfacac0 +EBUILD qtwebview-5.15.18.ebuild 460 BLAKE2B e6de380ee0ff90fe7e3ef7b0d9f337e7e0b18d724765b8530ba3326226c4788cb9e0b7b567aeffdda536dd052516defe8b5ff1758d2da8ef401454e9c3ad4cc4 SHA512 2a02519762327253a0e3c6eb70b91765a77445e66dfcfc1db4e47c71646209245e13571e11162198e7b3ab41e5f824dc8dd4bc9bf41edc3ea48f0c228d2b1692 +MISC metadata.xml 534 BLAKE2B e41cc4c8e50d8d207559d68b8a9dc1d7a8c3afd218a28279163c917b24ac6b814361838a54c2b2256b13c0a1d1fbce4809c4f0c526d2fe576763cbed4ba33b6f SHA512 9ba885a1ccff4733d0ba510e4042d5f03a24ee9ac3f8b4cb89ad4b37fe3596fc5ec7f4786798397c58cf34ca82c40ce45d772ffde8be5cc9423428cb4aa19f8e diff --git a/dev-qt/qtwebview/metadata.xml b/dev-qt/qtwebview/metadata.xml new file mode 100644 index 00000000..5ad95512 --- /dev/null +++ b/dev-qt/qtwebview/metadata.xml @@ -0,0 +1,18 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + qt/qtwebview + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtwebview/qtwebview-5.15.18.ebuild b/dev-qt/qtwebview/qtwebview-5.15.18.ebuild new file mode 100644 index 00000000..be7f4a43 --- /dev/null +++ b/dev-qt/qtwebview/qtwebview-5.15.18.ebuild @@ -0,0 +1,22 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt5-build + +DESCRIPTION="Module for displaying web content in a QML application using the Qt5 framework" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 arm64" +fi + +IUSE=" " + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtdeclarative-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}* + =dev-qt/qtwebengine-${QT5_PV}*:5 +" +RDEPEND="${DEPEND}" diff --git a/dev-qt/qtwidgets/Manifest b/dev-qt/qtwidgets/Manifest new file mode 100644 index 00000000..6e560cde --- /dev/null +++ b/dev-qt/qtwidgets/Manifest @@ -0,0 +1,5 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 +EBUILD qtwidgets-5.15.18.ebuild 1196 BLAKE2B 5ca3fe9a127c3aea4029254ccc6d645a42226f26c9f08fce6e90e1c2f13c302e0a59b3eeb00c7d01de9e683951d79cbd8d3ab20ddb915c7c13168a7d63f671f5 SHA512 00ca46c87fd5a4f7432eaea8e96c284d062e4a15c3d8100a69bc633ada5e68ac7827b2a11f3f5c1fabf3938e2ac43fdda8c3f46cba74d717c39d04734d62a681 +MISC metadata.xml 559 BLAKE2B 3ea80a5e419db32987d68d7e5033fa75fa0ff22b31b0842fd7ead902172cbe83650b0bbdf8657a57e428726e7cdf114d9011bd16066c080bc5f6ecb3f691d42c SHA512 51172365a186fbca09651bfd751284960dda4036390af2afab9812a7ae3fabdd9d60a336dee3cfc5e3d133a0216bf77e29660b9cdee2f0bcd2ce43c27297bdb1 diff --git a/dev-qt/qtwidgets/metadata.xml b/dev-qt/qtwidgets/metadata.xml new file mode 100644 index 00000000..cb9c6f8a --- /dev/null +++ b/dev-qt/qtwidgets/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build the GTK platform theme plugin + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild b/dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild new file mode 100644 index 00000000..565ac61b --- /dev/null +++ b/dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="Set of components for creating classic desktop-style UIs for the Qt5 framework" + +# keep IUSE defaults in sync with qtgui +IUSE="dbus gles2-only gtk +png +X" +REQUIRED_USE="gtk? ( dbus )" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*:5=[gles2-only=,png=,X?] + dbus? ( =dev-qt/qtdbus-${QT5_PV}* ) + gtk? ( + dev-libs/glib:2 + =dev-qt/qtgui-${QT5_PV}*:5=[dbus] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/pango + ) +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/tools/uic + src/widgets + src/plugins/platformthemes +) + +QT5_GENTOO_CONFIG=( + dbus:xdgdesktopportal: + gtk:gtk3: + ::widgets + !:no-widgets: +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :widgets +) + +src_configure() { + local myconf=( + -opengl $(usex gles2-only es2 desktop) + $(usev dbus -dbus-linked) + $(qt_use gtk) + -gui + $(qt_use png libpng system) + -widgets + $(qt_use X xcb) + $(usev X '-xcb-xlib -xkbcommon') + ) + qt5-build_src_configure +} diff --git a/dev-qt/qtx11extras/Manifest b/dev-qt/qtx11extras/Manifest new file mode 100644 index 00000000..c0bc6ee8 --- /dev/null +++ b/dev-qt/qtx11extras/Manifest @@ -0,0 +1,3 @@ +DIST qtx11extras-everywhere-opensource-src-5.15.18.tar.xz 123980 BLAKE2B 30b23aeea766d694c7b9097ba655ed2a3057543a58ab937925b0725af53676cf3490ec2c0eb1c69b353c1dcf34e8c7d5f2107e965617d1622b36f67120d0972b SHA512 7e12f87da4a2c8333adc09f0069cfdbb6b81e778b0e261b13a8631a90bc21deb831fc4d74229e977afa864919ef6dbe98fc37ef29eeffee52cacef21af4216f7 +EBUILD qtx11extras-5.15.18.ebuild 453 BLAKE2B 59fe4ebadfbc4557592fdc75d000cdbed01e4e46c5b2230cc1faa0e6bff61fa7345115caa19972dee9f2129463d74bda82acccccc2f990746424ebda848620a6 SHA512 3e51e5feed2e935c6ec95bb2f58d6f31f49a6c898605357f6fb36954b9cacfc990172f320383d62a60b01af404f11ed0c3df0fad951acfce31487cfd0dc1e938 +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qtx11extras/metadata.xml b/dev-qt/qtx11extras/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qtx11extras/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtx11extras/qtx11extras-5.15.18.ebuild b/dev-qt/qtx11extras/qtx11extras-5.15.18.ebuild new file mode 100644 index 00000000..24041553 --- /dev/null +++ b/dev-qt/qtx11extras/qtx11extras-5.15.18.ebuild @@ -0,0 +1,22 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt5-build + +DESCRIPTION="Linux/X11-specific support library for the Qt5 framework" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +IUSE=" " + +RDEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}*[X] +" +DEPEND="${RDEPEND} + test? ( =dev-qt/qtwidgets-${QT5_PV}* ) +" diff --git a/dev-qt/qtxml/Manifest b/dev-qt/qtxml/Manifest new file mode 100644 index 00000000..ff8120a6 --- /dev/null +++ b/dev-qt/qtxml/Manifest @@ -0,0 +1,5 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 +EBUILD qtxml-5.15.18.ebuild 519 BLAKE2B ed3eb86cae59386e8db5320401a35bafaba54c2b85155c379f192b673395bf7336bda6ac1786957e2ba2a4b64e75ef94d855489faaa1b62b7af088c989e00be8 SHA512 d99c8d55c33cde4e75554015a8738e5169bcf54312f40dc3125effdf210f649dbedf659c7e60027891c516120310d70a589fd8a53bcc71fb152786da90a8fe63 +MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e diff --git a/dev-qt/qtxml/metadata.xml b/dev-qt/qtxml/metadata.xml new file mode 100644 index 00000000..ae8aa959 --- /dev/null +++ b/dev-qt/qtxml/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtxml/qtxml-5.15.18.ebuild b/dev-qt/qtxml/qtxml-5.15.18.ebuild new file mode 100644 index 00000000..8658cb23 --- /dev/null +++ b/dev-qt/qtxml/qtxml-5.15.18.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="Implementation of SAX and DOM for the Qt5 framework" + +IUSE=" " + +RDEPEND="=dev-qt/qtcore-${QT5_PV}*:5=" +DEPEND="${RDEPEND} + test? ( =dev-qt/qtnetwork-${QT5_PV}* ) +" + +QT5_TARGET_SUBDIRS=( + src/xml +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :xml +) diff --git a/dev-qt/qtxmlpatterns/Manifest b/dev-qt/qtxmlpatterns/Manifest new file mode 100644 index 00000000..3d228908 --- /dev/null +++ b/dev-qt/qtxmlpatterns/Manifest @@ -0,0 +1,3 @@ +DIST qtxmlpatterns-everywhere-opensource-src-5.15.18.tar.xz 5169388 BLAKE2B 369bd08c2e15e7c3cb0ba72e4c5e2b573e9f71783458c64a7ca8a515d29e7aa85597fa6c4b405895bd9d97e70a2b042fb4e4aa76ce3c6109e24a9120bb8d98a5 SHA512 2c1f1ec6c2a70a2151259a290675b15e44475f19afa46f396b4cd511e3aeb7cd83fffd7d76ddde31817c5f2e944dcd32587550713aed34aac9585f3eeef7e39b +EBUILD qtxmlpatterns-5.15.18.ebuild 801 BLAKE2B 51a2518825568f74d5048ca21d9f48a569db591b5a48f444540f7a4984c0762552bbcb85d74d32dc9694bc7c21403778e550cfca94a9be76a930368a0b98d638 SHA512 a208cfdae6bf67caab69656dd553e443f6e61f3d630bd3b5b84833bd95e2baa027eceb2c363005223723cb4d07ce53b348758c150bac67a4706b4f18babd80bd +MISC metadata.xml 590 BLAKE2B 2f67cb5fc0572aa19ed1775ac6a1cf2de7aae77141a76f81ad00d9620c0ba4238c1058ed53bd6332f8862f24cb59f3f23984df84d062c295868f3914ad8efb8f SHA512 50bbcf3579ec5613429e2a7c613e41ccd79d04f0ed7bb2e5db1ae22868aea8922f0b3509bc4fe91ab7cbc9ad6b86bb536993638d3562d811203814e64e2ae22b diff --git a/dev-qt/qtxmlpatterns/metadata.xml b/dev-qt/qtxmlpatterns/metadata.xml new file mode 100644 index 00000000..7907c83e --- /dev/null +++ b/dev-qt/qtxmlpatterns/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build the XmlListModel import for QtQuick (requires QtDeclarative) + + + https://bugreports.qt.io/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtxmlpatterns/qtxmlpatterns-5.15.18.ebuild b/dev-qt/qtxmlpatterns/qtxmlpatterns-5.15.18.ebuild new file mode 100644 index 00000000..34ad76f5 --- /dev/null +++ b/dev-qt/qtxmlpatterns/qtxmlpatterns-5.15.18.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt5-build + +DESCRIPTION="XPath, XQuery, XSLT, and XML Schema validation library for the Qt5 framework" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +IUSE="qml" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtnetwork-${QT5_PV}* + qml? ( =dev-qt/qtdeclarative-${QT5_PV}* ) +" +RDEPEND="${DEPEND} + !