diff --git a/org.kde.Sdk.json b/org.kde.Sdk.json index b5b050e..ef4cf91 100644 --- a/org.kde.Sdk.json +++ b/org.kde.Sdk.json @@ -1,948 +1,960 @@ { "build-runtime": true, "id": "org.kde.Sdk", "id-platform": "org.kde.Platform", "branch": "5.12", "runtime": "org.freedesktop.Platform", "sdk": "org.freedesktop.Sdk", "runtime-version": "18.08", "sdk-extensions": ["org.freedesktop.Sdk.Debug", "org.freedesktop.Sdk.Locale", "org.freedesktop.Sdk.Docs"], "platform-extensions": ["org.freedesktop.Platform.Locale"], "inherit-extensions": [ "org.freedesktop.Platform.GL", "org.freedesktop.Platform.Timezones", "org.freedesktop.Platform.GStreamer", "org.freedesktop.Platform.Icontheme", "org.freedesktop.Platform.VAAPI.Intel", "org.freedesktop.Platform.html5-codecs", "org.gtk.Gtk3theme" ], "inherit-sdk-extensions": [ "org.freedesktop.Sdk.Extension" ], "add-extensions": { "org.kde.Sdk.Docs" : { "directory": "share/runtime/docs", "bundle": true, "autodelete": true, "no-autodownload": true }, "org.kde.KStyle" : { "directory": "share/runtime/lib/plugins/", "subdirectories": true, "no-autodownload": true, "version": "5.12", "merge-dirs": "styles", "download-if": "active-gtk-theme" }, "org.kde.PlatformTheme" : { "directory": "share/runtime/lib/plugins/", "subdirectories": true, "no-autodownload": true, "version": "5.12", "merge-dirs": "platformthemes", "//TODO": "This is currently only used for gnome platform plugin and should be its own extension point", "download-if": "on-xdg-desktop-GNOME;on-xdg-desktop-GNOME-classic" } }, "finish-args": [ "--env=GI_TYPELIB_PATH=/app/lib/girepository-1.0", "--env=GST_PLUGIN_PATH=/app/lib/gstreamer-1.0:/app/lib/@SDK_ARCH@-linux-gnu/extensions/gstreamer-1.0:/usr/lib/@SDK_ARCH@-linux-gnu/extensions/gstreamer-1.0", "--env=XDG_DATA_DIRS=/app/share:/usr/share:/usr/share/runtime/share:/run/host/share", "--env=QT_PLUGIN_PATH=/app/lib64/plugins:/app/lib/plugins:/usr/share/runtime/lib/plugins", "--env=QML2_IMPORT_PATH=/app/lib64/qml:/app/lib/qml", "--env=KDE_FORK_SLAVES=1", "--env=DCONF_USER_CONFIG_DIR=.config/dconf", "--filesystem=xdg-config/kdeglobals:ro", "--filesystem=xdg-run/dconf", "--filesystem=~/.config/dconf:ro", "--talk-name=com.canonical.AppMenu.Registrar", "--sdk=org.kde.Sdk//5.12", "--runtime=org.kde.Platform//5.12" ], "cleanup": [ "/man", "/share/man", "/lib/systemd", "*.la"], "cleanup-commands": [ "/usr/libexec/freedesktop-post.sh" ], "cleanup-platform": [ "/share/runtime/docs", "/include", "/share/aclocal", "/share/pkgconfig", "/lib/pkgconfig", "*.a", "*.cmake" ], "cleanup-platform-commands": [ "/usr/libexec/freedesktop-post.sh" ], "modules": [ { "name": "qt5-qtbase", "cleanup-platform": [ "/bin", "/mkspecs" ], "build-options" : { "arch" : { "x86_64" : { "config-opts" : [ "-reduce-relocations", "-force-debug-info" ] }, "arm" : { "config-opts" : [ "-no-reduce-relocations", "-optimize-size", "-opengl es2" ] }, "aarch64" : { "config-opts" : [ "-no-reduce-relocations", "-optimize-size", "-opengl es2" ] } } }, "config-opts": [ "-confirm-license", "-opensource", "-shared", "-platform", "linux-g++", "-optimized-qmake", "-nomake", "examples", "-nomake", "tests", "-system-harfbuzz", "-system-sqlite", "-accessibility", "-dbus-linked", "-fontconfig", "-glib", "-icu", "-openssl-linked", "-no-pch", "-no-rpath", "-no-directfb", "-no-linuxfb", "-no-kms", "-no-cups", "-system-proxies", "-gtk", "-no-use-gold-linker", "-archdatadir", "/usr/lib/" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtbase-everywhere-src-5.12.4.tar.xz", "sha256": "20fbc7efa54ff7db9552a7a2cdf9047b80253c1933c834f35b0bc5c1ae021195" }, { "type": "patch", "path": "patch/qtbase-avoid-hardcoding-kernel-version.patch" }, + { + "type": "patch", + "path": "patch/qtbase-revert-reset-qwidget-winid-when-backing-window-surface-destroyed.patch" + }, { "type": "shell", "commands": [ "mv configure configure.qt" ] }, { "type": "script", "commands": [ "processed=`sed -e 's/--/-/g ; s/=/ /g' <<< $@`", "./configure.qt $processed" ], "dest-filename": "configure" } ] }, { "name": "qt5-qtdeclarative", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs", "lib/plugins/qmltooling" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtdeclarative-everywhere-src-5.12.4.tar.xz", "sha256": "614105ed73079d67d81b34fef31c9934c5e751342e4b2e0297128c8c301acda7" } ] }, { "name": "qt5-qttools", "buildsystem": "qmake", "cleanup-platform": [ "/mkspecs", "/bin/assistant", "/bin/qhelpgenerator", "/bin/qcollectiongenerator", "/bin/qhelpconverter", "/bin/pixeltool", "/bin/designer", "/bin/lrelease", "/bin/lupdate", "/bin/lconvert", "/bin/linguist", "/bin/qdoc", "/bin/qtattributionsscanner", "/bin/qtplugininfo", "/bin/qtdiag", "/bin/qdbusviewer" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qttools-everywhere-src-5.12.4.tar.xz", "sha256": "3b0e353860a9c0cd4db9eeae5f94fef8811ed7d107e3e5e97e4a557f61bd6eb6" } ] }, { "name": "qt5-qtscript", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtscript-everywhere-src-5.12.4.tar.xz", "sha256": "7adb3fe77638c7a6f2a26bca850b0ff54f5fb7e5561d2e4141d14a84305c2b6a" } ] }, { "name": "qt5-webchannel", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtwebchannel-everywhere-src-5.12.4.tar.xz", "sha256": "ab571a1b699e61a86be1a6b8d6ffd998d431c4850cc27e9a21f81fa5923bfdb7" } ] }, { "name": "qt5-qtlocation", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtlocation-everywhere-src-5.12.4.tar.xz", "sha256": "127b40bd7679fead3fb98f4c9c1d71dde9d6d416e90a6000129b61a5f128b3a0" } ] }, { "name": "qt5-qtwebengine", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "config-opts": [ "--", "-system-ffmpeg", "-webengine-proprietary-codecs", "-webengine-icu", "-webp" ], "modules": [ { "name": "pciutils", "no-autogen": true, "make-args": ["SHARED=no", "ZLIB=no", "PREFIX=/usr"], "post-install": [ "make install-pcilib", "make install-lib" ], "sources": [ { "type": "git", "url": "https://kernel.googlesource.com/pub/scm/utils/pciutils/pciutils", "branch": "v3.6.2" }, { "type": "shell", "commands": [ "sed -i 's@PREFIX=/usr/local@PREFIX=/usr@' Makefile" ] } ] }, { "name": "opus", "sources": [ { "type": "git", "url": "https://github.com/xiph/opus.git", "branch": "v1.2.1" } ] } ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtwebengine-everywhere-src-5.12.4.tar.xz", "sha256": "fccf5c945412c19c3805323211b504ac8becbf191c638a2dc85ec91abfb1b331" }, { "type": "patch", "path": "patch/qtwebengine-no-udev.patch" } ] }, { "name": "qt5-qtsvg", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtsvg-everywhere-src-5.12.4.tar.xz", "sha256": "110812515a73c650e5ebc41305d9a243dadeb21f485aaed773e394dd84ce0d04" } ] }, { "name": "qt5-qtx11extras", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtx11extras-everywhere-src-5.12.4.tar.xz", "sha256": "49cc009eaf4a01ca7dbe12651ef39de9a43860acb674aec372e70b209f9bae1e" } ] }, { "name": "qt5-qtmultimedia", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtmultimedia-everywhere-src-5.12.4.tar.xz", "sha256": "7c0759ab6fca2480b10b71a35beeffe0b847adeff5af94eacd1a4531d033423d" } ] }, { "name": "qt5-qtsensors", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtsensors-everywhere-src-5.12.4.tar.xz", "sha256": "95873c7ea5960008d6eb41368ca64d68fbd05594ca8c2cd848b1612fc4aec0a9" } ] }, { "name": "qt5-qtquickcontrols", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtquickcontrols-everywhere-src-5.12.4.tar.xz", "sha256": "32d4c2505337c67b0bac26d7f565ec8fabdc616e61247e98674820769dda9858" } ] }, { "name": "qt5-qtquickcontrols2", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtquickcontrols2-everywhere-src-5.12.4.tar.xz", "sha256": "9a447eed38bc8c7d7be7bc407317f58940377c077ddca74c9a641b1ee6200331" } ] }, { "name": "qt5-qtgraphicaleffects", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtgraphicaleffects-everywhere-src-5.12.4.tar.xz", "sha256": "0bc38b168fa724411984525173d667aa47076c8cbd4eeb791d0da7fe4b9bdf73" } ] }, { "name": "qt5-qtxmlpatterns", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtxmlpatterns-everywhere-src-5.12.4.tar.xz", "sha256": "0bea1719bb948f65cbed4375cc3e997a6464f35d25b631bafbd7a3161f8f5666" } ] }, { "name": "qt5-qtimageformats", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtimageformats-everywhere-src-5.12.4.tar.xz", "sha256": "2dee25c3eea90d172cbd40f41450153322b902da1daa7d2370a55124b2307bb3" } ] }, { "name": "qt5-connectivity", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtconnectivity-everywhere-src-5.12.4.tar.xz", "sha256": "749d05242b9fae12e80f569fb6b918dc011cb191eeb05147cbde474ca6b173ef" } ] }, { "name": "qt5-wayland", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtwayland-everywhere-src-5.12.4.tar.xz", "sha256": "2fade959c3927687134c597d85c12ba1af22129a60ab326c2dc77a648e74e6b7" }, { "type": "patch", "path": "patch/qtwayland-fix-stuttering-when-gui-thread-is-busy.patch" }, { "type": "patch", "path": "patch/qtwayland-reset-frame-callback-timer-when-hiding-window.patch" }, { "type": "patch", "path": "patch/qtwayland-emit-wl-surfare-lifetime-signals.patch" }, { "type": "patch", - "path": "patch/qtwayland-dont-send-fake-surface-created-destroyed-events.patch" + "path": "patch/qtwayland-make-handleupdate-aware-of-exposure-changes.patch" + }, + { + "type": "patch", + "path": "patch/qtwayland-dont-crash-when-start-drag-without-dragfocus.patch" + }, + { + "type": "patch", + "path": "patch/qtwayland-fix-expose-event-compression.patch" } ] }, { "name": "qt5-virtualkeyboard", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtvirtualkeyboard-everywhere-src-5.12.4.tar.xz", "sha256": "33ac0356f916995fe5a91582e12b4c4f730c705808ea3c14e75c6e350e8131e6" } ] }, { "name": "qt5-qtserialport", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtserialport-everywhere-src-5.12.4.tar.xz", "sha256": "bf487df8a9fb2eddf103842b57a75b17ef4c498ee40306ae9997017c82b0ad39" } ] }, { "name": "qt5-qtwebsockets", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtwebsockets-everywhere-src-5.12.4.tar.xz", "sha256": "b471eda2f486d21c51fc3bc53bb8844022117e746d5f15c5eabb82cd37eb2abe" } ] }, { "name": "qt5-qtcharts", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtcharts-everywhere-src-5.12.4.tar.xz", "sha256": "06ff68a80dc377847429cdd87d4e46465e1d6fbc417d52700a0a59d197669c9e" } ] }, { "name": "qt5-qt3d", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qt3d-everywhere-src-5.12.4.tar.xz", "sha256": "cfad2e16f40fa07f8be59fa29c0c246743ee67db417ca29772a92f36fa322af3" } ] }, { "name": "qt5-qtspeech", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtspeech-everywhere-src-5.12.4.tar.xz", "sha256": "2ff9660fb3f5663c9161f491d1a304db62691720136ae22c145ef6a1c94b90ec" } ] }, { "name": "qt5-qtnetworkauth", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtnetworkauth-everywhere-src-5.12.4.tar.xz", "sha256": "e501eb46b8405a2b7db9fe90a1c224cf6676a07dc22c0662317ffe3dee1dbf55" } ] }, { "name": "qt5-qtgamepad", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.4/submodules/qtgamepad-everywhere-src-5.12.4.tar.xz", "sha256": "25de6f10fb18f2484d1e569688bf33deb90ecbfb97ce41c2b5fb3521146e4c45" } ] }, { "name": "libdbusmenuqt", "buildsystem": "cmake-ninja", "config-opts": ["-DENABLE_TESTING=OFF", "-DWITH_DOC=OFF"], "sources": [ { "type": "bzr", "url": "http://bazaar.launchpad.net/~dbusmenu-team/libdbusmenu-qt/trunk/", "revision": "0.9.3+16.04.20160218-0ubuntu1" } ] }, { "name": "extra-cmake-modules", "cleanup-platform": ["*"], "buildsystem": "cmake-ninja", "config-opts": [ "-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/extra-cmake-modules.git", "branch": "v5.59.0" } ] }, { "name": "kwidgetsaddons", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kwidgetsaddons.git", "branch": "v5.59.0" } ] }, { "name": "ki18n", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/ki18n.git", "branch": "v5.59.0" } ] }, { "name": "kconfig", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kconfig.git", "branch": "v5.59.0" } ] }, { "name": "attica", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/attica.git", "branch": "v5.59.0" } ] }, { "name": "kguiaddons", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kguiaddons.git", "branch": "v5.59.0" } ] }, { "name": "kcoreaddons", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kcoreaddons.git", "branch": "v5.59.0" } ] }, { "name": "kauth", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kauth.git", "branch": "v5.59.0" } ] }, { "name": "karchive", "config-opts": ["-DENABLE_TESTING=OFF", "-DCMAKE_DISABLE_FIND_PACKAGE_Qt5Test=TRUE"], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/karchive.git", "branch": "v5.59.0" } ] }, { "name": "kcodecs", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kcodecs.git", "branch": "v5.59.0" } ] }, { "name": "kconfigwidgets", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kconfigwidgets.git", "branch": "v5.59.0" } ] }, { "name": "kitemviews", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kitemviews.git", "branch": "v5.59.0" } ] }, { "name": "kiconthemes", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kiconthemes.git", "branch": "v5.59.0" } ] }, { "name": "kwindowsystem", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kwindowsystem.git", "branch": "v5.59.0" } ] }, { "name": "kcrash", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kcrash.git", "branch": "v5.59.0" } ] }, { "name": "kdbusaddons", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kdbusaddons.git", "branch": "v5.59.0" } ] }, { "name": "kservice", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "builddir": true, "sources": [ { "type": "git", "url": "git://anongit.kde.org/kservice.git", "branch": "v5.59.0" } ] }, { "name": "kglobalaccel", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kglobalaccel.git", "branch": "v5.59.0" } ] }, { "name": "sonnet", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/sonnet.git", "branch": "v5.59.0" } ] }, { "name": "kcompletion", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kcompletion.git", "branch": "v5.59.0" } ] }, { "name": "ktextwidgets", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/ktextwidgets.git", "branch": "v5.59.0" } ] }, { "name": "kxmlgui", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kxmlgui.git", "branch": "v5.59.0" } ] }, { "name": "perl-uri-escape", "cleanup-platform": ["*"], "sources": [{ "type": "archive", "url": "https://cpan.metacpan.org/authors/id/E/ET/ETHER/URI-1.74.tar.gz", "sha256": "a9c254f45f89cb1dd946b689dfe433095404532a4543bdaab0b71ce0fdcdd53d" }, { "type": "script", "commands": [ "perl Makefile.PL INSTALLDIRS=vendor"], "dest-filename": "configure" } ] }, { "name": "kdoctools", "config-opts": [ "-DENABLE_TESTING=OFF", "-DDocBookXSL_DIR=/usr/share/xml/docbook/xml/xsl-stylesheets/", "-DDTD_PATH_LIST=/usr/share/xml/docbook/xml-dtd/4.5/" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kdoctools.git", "branch": "v5.59.0" } ] }, { "name": "kpackage", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kpackage.git", "branch": "v5.59.0" } ] }, { "name": "kbookmarks", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kbookmarks.git", "branch": "v5.59.0" } ] }, { "name": "phonon", "config-opts": ["-DENABLE_TESTING=OFF", "-DPHONON_BUILD_PHONON4QT5=ON"], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/phonon.git", "branch": "v4.10.2" } ] }, { "name": "knotifications", "buildsystem": "cmake-ninja", "config-opts": [ "-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/knotifications.git", "branch": "v5.59.0" } ] }, { "name": "kwallet", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kwallet.git", "branch": "v5.59.0" } ] }, { "name": "kjobwidgets", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kjobwidgets.git", "branch": "v5.59.0" } ] }, { "name": "solid", "config-opts": [ "-DENABLE_TESTING=OFF", "-DUDEV_DISABLED=ON", "-DBUILD_DEVICE_BACKEND_udisks2=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/solid.git", "branch": "v5.59.0" } ] }, { "name": "kio", "buildsystem": "cmake-ninja", "config-opts": [ "-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/kio.git", "branch": "v5.59.0" } ] }, { "name": "kparts", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kparts.git", "branch": "v5.59.0" } ] }, { "name": "kplotting", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kplotting.git", "branch": "v5.59.0" } ] }, { "name": "kdesignerplugin", "buildsystem": "cmake-ninja", "builddir": true, "config-opts": [ "-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/kdesignerplugin.git", "branch": "v5.59.0" } ] }, { "name": "kinit", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kinit.git", "branch": "v5.59.0" } ] }, { "name": "kded", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kded.git", "branch": "v5.59.0" } ] }, { "name": "kunitconversion", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kunitconversion.git", "branch": "v5.59.0" } ] }, { "name": "kdeclarative", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kdeclarative.git", "branch": "v5.59.0" } ] }, { "name": "kcmutils", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kcmutils.git", "branch": "v5.59.0" } ] }, { "name": "knotifyconfig", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "builddir": true, "sources": [ { "type": "git", "url": "git://anongit.kde.org/knotifyconfig.git", "branch": "v5.59.0" } ] }, { "name": "knewstuff", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/knewstuff.git", "branch": "v5.59.0" } ] }, { "name": "kidletime", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kidletime.git", "branch": "v5.59.0" } ] }, { "name": "threadweaver", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/threadweaver.git", "branch": "v5.59.0" } ] }, { "name": "kitemmodels", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kitemmodels.git", "branch": "v5.59.0" } ] }, { "name": "kxmlrpcclient", "buildsystem": "cmake-ninja", "config-opts": [ "-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/kxmlrpcclient.git", "branch": "v5.59.0" } ] }, { "name": "kdnssd", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kdnssd.git", "branch": "v5.59.0" } ] }, { "config-opts": [ "-DENABLE_TESTING=OFF" ], "name": "syntax-highlighting", "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/syntax-highlighting.git", "branch": "v5.59.0" } ] }, { "config-opts": [ "-DENABLE_TESTING=OFF" ], "name": "ktexteditor", "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/ktexteditor.git", "branch": "v5.59.0" } ] }, { "name": "frameworkintegration", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "builddir": true, "sources": [ { "type": "git", "url": "git://anongit.kde.org/frameworkintegration.git", "branch": "v5.59.0" } ] }, { "name": "kemoticons", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kemoticons.git", "branch": "v5.59.0" } ] }, { "name": "kpty", "buildsystem": "cmake-ninja", "config-opts": [ "-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/kpty.git", "branch": "v5.59.0" } ] }, { "name": "kwayland", "buildsystem": "cmake-ninja", "config-opts": ["-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/kwayland.git", "branch": "v5.59.0" } ] }, { "name": "kirigami", "config-opts": ["-DENABLE_TESTING=OFF", "-DPLASMA_ENABLED=OFF"], "buildsystem": "cmake-ninja", "builddir": true, "sources": [ { "type": "git", "url": "git://anongit.kde.org/kirigami.git", "branch": "v5.59.0" } ] }, { "name": "qqc2-desktop-style", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "builddir": true, "sources": [ { "type": "git", "url": "git://anongit.kde.org/qqc2-desktop-style.git", "branch": "v5.59.0" } ] }, { "name": "kactivities", "config-opts": [ "-DENABLE_TESTING=OFF", "-DKACTIVITIES_LIBRARY_ONLY=ON" ], "buildsystem": "cmake-ninja", "builddir": true, "sources": [ { "type": "git", "url": "git://anongit.kde.org/kactivities.git", "branch": "v5.59.0" } ] }, { "name": "plasma-framework", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "builddir": true, "sources": [ { "type": "git", "url": "git://anongit.kde.org/plasma-framework.git", "branch": "v5.59.0" } ] }, { "name": "breeze-icons", "cleanup-platform": [ "*.rcc" ], "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/breeze-icons.git", "branch": "v5.59.0" } ] }, { "name": "breeze", "buildsystem": "cmake-ninja", "config-opts": ["-DENABLE_TESTING=OFF", "-DWITH_DECORATIONS=OFF", "-DWITH_WALLPAPERS=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/breeze.git", "branch": "Plasma/5.15" } ] }, { "name": "plasma-integration", "buildsystem": "cmake-ninja", "config-opts": [ "-DENABLE_TESTING=OFF", "-DBUILD_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/plasma-integration.git", "branch": "Plasma/5.15" } ] }, { "name": "kwayland-integration", "buildsystem": "cmake-ninja", "config-opts": [ "-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/kwayland-integration.git", "branch": "Plasma/5.15" } ] }, { "name": "phonon-gstreamer", "buildsystem": "cmake-ninja", "config-opts": ["-DENABLE_TESTING=OFF", "-DPHONON_BUILD_PHONON4QT5=ON"], "sources": [ { "type": "git", "url": "git://anongit.kde.org/phonon-gstreamer.git", "branch": "v4.9.0" } ] }, { "name": "fcitx-platforminputcontext", "buildsystem": "cmake-ninja", "config-opts": ["-DENABLE_LIBRARY=OFF" ], "sources": [ { "type": "git", "url": "https://github.com/fcitx/fcitx-qt5", "branch": "1.2.3" } ] }, { "name": "os-release", "post-install": [ "mkdir -p /usr/share/runtime/lib/plugins/" ], "sources": [ { "type": "file", "path": "os-release" }, { "type": "file", "path": "issue" }, { "type": "file", "path": "issue.net" }, { "type": "file", "path": "org.kde.Sdk.appdata.xml" }, { "type": "file", "path": "org.kde.Platform.appdata.xml" }, { "type": "file", "path": "os-release-configure", "dest-filename": "configure" } ] } ] } diff --git a/patch/qtbase-revert-reset-qwidget-winid-when-backing-window-surface-destroyed.patch b/patch/qtbase-revert-reset-qwidget-winid-when-backing-window-surface-destroyed.patch new file mode 100644 index 0000000..c6503ff --- /dev/null +++ b/patch/qtbase-revert-reset-qwidget-winid-when-backing-window-surface-destroyed.patch @@ -0,0 +1,36 @@ +From deac052a40c93633041da058d5c73c9e91aa76c7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= +Date: Fri, 12 Jul 2019 12:28:29 +0200 +Subject: Revert "Reset QWidget's winId when backing window surface is + destroyed" + +This reverts commit a9246c7132a2c8864d3ae6cebd260bb9ee711fcb. + +The QWidget machinery is way to fragile to reset the winId under the +feet of QWidget like that. We would potentially need to include all +the logic in QWidget::destroy. This also ties into the flow between +QtGui and QtWidgets during window closing, which is still unresolved. + +Change-Id: I168048a63c89796398eb5331a80ce3e5c8d9a208 +Fixes: QTBUG-76588 +Task-number: QTBUG-69289 +Reviewed-by: Friedemann Kleint +Reviewed-by: Volker Hilsheimer + +diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp +index fdb3872903..6f0f39a344 100644 +--- a/src/widgets/kernel/qwidget.cpp ++++ b/src/widgets/kernel/qwidget.cpp +@@ -9382,12 +9382,6 @@ bool QWidget::event(QEvent *event) + d->renderToTextureReallyDirty = 1; + #endif + break; +- case QEvent::PlatformSurface: { +- auto surfaceEvent = static_cast(event); +- if (surfaceEvent->surfaceEventType() == QPlatformSurfaceEvent::SurfaceAboutToBeDestroyed) +- d->setWinId(0); +- break; +- } + #ifndef QT_NO_PROPERTIES + case QEvent::DynamicPropertyChange: { + const QByteArray &propName = static_cast(event)->propertyName(); diff --git a/patch/qtwayland-dont-crash-when-start-drag-without-dragfocus.patch b/patch/qtwayland-dont-crash-when-start-drag-without-dragfocus.patch new file mode 100644 index 0000000..9209694 --- /dev/null +++ b/patch/qtwayland-dont-crash-when-start-drag-without-dragfocus.patch @@ -0,0 +1,16 @@ +diff --git a/src/client/qwaylanddatadevice.cpp b/src/client/qwaylanddatadevice.cpp +index 300c9de..11984f9 100644 +--- a/src/client/qwaylanddatadevice.cpp ++++ b/src/client/qwaylanddatadevice.cpp +@@ -111,7 +111,10 @@ void QWaylandDataDevice::startDrag(QMimeData *mimeData, QWaylandWindow *icon) + if (!origin) + origin = m_display->currentInputDevice()->touchFocus(); + +- start_drag(m_dragSource->object(), origin->object(), icon->object(), m_display->currentInputDevice()->serial()); ++ if (origin) ++ start_drag(m_dragSource->object(), origin->object(), icon->object(), m_display->currentInputDevice()->serial()); ++ else ++ qCDebug(lcQpaWayland) << "Couldn't start a drag because the origin window could not be found."; + } + + void QWaylandDataDevice::cancelDrag() diff --git a/patch/qtwayland-dont-send-fake-surface-created-destroyed-events.patch b/patch/qtwayland-dont-send-fake-surface-created-destroyed-events.patch deleted file mode 100644 index 0782a94..0000000 --- a/patch/qtwayland-dont-send-fake-surface-created-destroyed-events.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp -index 731ed7f..ed0fe87 100644 ---- a/src/client/qwaylandwindow.cpp -+++ b/src/client/qwaylandwindow.cpp -@@ -98,7 +98,7 @@ QWaylandWindow::~QWaylandWindow() - delete mWindowDecoration; - - if (isInitialized()) -- reset(false); -+ reset(); - - QList inputDevices = mDisplay->inputDevices(); - for (int i = 0; i < inputDevices.size(); ++i) -@@ -128,8 +128,6 @@ void QWaylandWindow::initWindow() - - if (!isInitialized()) { - initializeWlSurface(); -- QPlatformSurfaceEvent e(QPlatformSurfaceEvent::SurfaceCreated); -- QGuiApplication::sendEvent(window(), &e); - } - - if (shouldCreateSubSurface()) { -@@ -237,12 +235,8 @@ bool QWaylandWindow::shouldCreateSubSurface() const - return QPlatformWindow::parent() != nullptr; - } - --void QWaylandWindow::reset(bool sendDestroyEvent) -+void QWaylandWindow::reset() - { -- if (isInitialized() && sendDestroyEvent) { -- QPlatformSurfaceEvent e(QPlatformSurfaceEvent::SurfaceAboutToBeDestroyed); -- QGuiApplication::sendEvent(window(), &e); -- } - delete mShellSurface; - mShellSurface = nullptr; - delete mSubSurfaceWindow; -diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h -index 0e32b59..746a7a5 100644 ---- a/src/client/qwaylandwindow_p.h -+++ b/src/client/qwaylandwindow_p.h -@@ -259,7 +259,7 @@ private: - void initializeWlSurface(); - bool shouldCreateShellSurface() const; - bool shouldCreateSubSurface() const; -- void reset(bool sendDestroyEvent = true); -+ void reset(); - void sendExposeEvent(const QRect &rect); - static void closePopups(QWaylandWindow *parent); - QWaylandScreen *calculateScreenFromSurfaceEvents() const; diff --git a/patch/qtwayland-fix-expose-event-compression.patch b/patch/qtwayland-fix-expose-event-compression.patch new file mode 100644 index 0000000..4645c96 --- /dev/null +++ b/patch/qtwayland-fix-expose-event-compression.patch @@ -0,0 +1,35 @@ +diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp +index 5e7e215..e4323e8 100644 +--- a/src/client/qwaylandwindow.cpp ++++ b/src/client/qwaylandwindow.cpp +@@ -355,7 +355,7 @@ void QWaylandWindow::setGeometry(const QRect &rect) + mSentInitialResize = true; + } + QRect exposeGeometry(QPoint(), geometry().size()); +- if (exposeGeometry != mLastExposeGeometry) ++ if (isExposed() && !mInResizeFromApplyConfigure && exposeGeometry != mLastExposeGeometry) + sendExposeEvent(exposeGeometry); + } + +@@ -367,7 +367,9 @@ void QWaylandWindow::resizeFromApplyConfigure(const QSize &sizeWithMargins, cons + QRect geometry(windowGeometry().topLeft(), QSize(widthWithoutMargins, heightWithoutMargins)); + + mOffset += offset; ++ mInResizeFromApplyConfigure = true; + setGeometry(geometry); ++ mInResizeFromApplyConfigure = false; + } + + void QWaylandWindow::sendExposeEvent(const QRect &rect) +diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h +index d605b52..c82aa8d 100644 +--- a/src/client/qwaylandwindow_p.h ++++ b/src/client/qwaylandwindow_p.h +@@ -269,6 +269,7 @@ private: + void handleMouseEventWithDecoration(QWaylandInputDevice *inputDevice, const QWaylandPointerEvent &e); + void handleScreenChanged(); + ++ bool mInResizeFromApplyConfigure = false; + QRect mLastExposeGeometry; + + static const wl_callback_listener callbackListener; diff --git a/patch/qtwayland-make-handleupdate-aware-of-exposure-changes.patch b/patch/qtwayland-make-handleupdate-aware-of-exposure-changes.patch new file mode 100644 index 0000000..d51ee72 --- /dev/null +++ b/patch/qtwayland-make-handleupdate-aware-of-exposure-changes.patch @@ -0,0 +1,62 @@ +diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp +index ed0fe87..da1b6a0 100644 +--- a/src/client/qwaylandwindow.cpp ++++ b/src/client/qwaylandwindow.cpp +@@ -79,6 +79,8 @@ Q_LOGGING_CATEGORY(lcWaylandBackingstore, "qt.qpa.wayland.backingstore") + + QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr; + ++QReadWriteLock mSurfaceLock; ++ + QWaylandWindow::QWaylandWindow(QWindow *window) + : QPlatformWindow(window) + , mDisplay(waylandScreen()->display()) +@@ -209,6 +211,7 @@ void QWaylandWindow::initWindow() + void QWaylandWindow::initializeWlSurface() + { + Q_ASSERT(!isInitialized()); ++ QWriteLocker lock(&mSurfaceLock); + init(mDisplay->createSurface(static_cast(this))); + emit wlSurfaceCreated(); + } +@@ -243,6 +246,7 @@ void QWaylandWindow::reset() + mSubSurfaceWindow = nullptr; + if (isInitialized()) { + emit wlSurfaceDestroyed(); ++ QWriteLocker lock(&mSurfaceLock); + destroy(); + } + mScreens.clear(); +@@ -1138,6 +1142,10 @@ void QWaylandWindow::requestUpdate() + void QWaylandWindow::handleUpdate() + { + // TODO: Should sync subsurfaces avoid requesting frame callbacks? ++ QReadLocker lock(&mSurfaceLock); ++ if (!isInitialized()) { ++ return; ++ } + + if (mFrameCallback) { + wl_callback_destroy(mFrameCallback); +diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h +index 746a7a5..4606a7b 100644 +--- a/src/client/qwaylandwindow_p.h ++++ b/src/client/qwaylandwindow_p.h +@@ -53,6 +53,8 @@ + + #include + #include ++#include ++ + #include + #include + #include +@@ -275,6 +277,8 @@ private: + static QMutex mFrameSyncMutex; + static QWaylandWindow *mMouseGrab; + ++ QReadWriteLock mSurfaceLock; ++ + friend class QWaylandSubSurface; + }; +