diff --git a/org.kde.Sdk.json b/org.kde.Sdk.json index f535690..6645ba4 100644 --- a/org.kde.Sdk.json +++ b/org.kde.Sdk.json @@ -1,982 +1,954 @@ { "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" }, "org.kde.WaylandDecoration" : { "directory": "share/runtime/lib/plugins/", "subdirectories": true, "no-autodownload": true, "version": "5.12", "merge-dirs": "wayland-decoration-client", "//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.5/submodules/qtbase-everywhere-src-5.12.5.tar.xz", "sha256": "fc8abffbbda9da3e593d8d62b56bc17dbaab13ff71b72915ddda11dabde4d625" }, { "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": "patch", "path": "patch/qtbase-use-wayland-on-gnome.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.5/submodules/qtdeclarative-everywhere-src-5.12.5.tar.xz", "sha256": "22c5323d4b01259e6e352eef1b54129d6dfee00a406f0312905fa7db322b9190" } ] }, { "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.5/submodules/qttools-everywhere-src-5.12.5.tar.xz", "sha256": "28e095047b4985437dd66120cbcb49ac091bf4f12576ecad7ebc781b7dd44025" } ] }, { "name": "qt5-qtscript", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtscript-everywhere-src-5.12.5.tar.xz", "sha256": "0083734ae827840334b774decb15de37f1b4ea5c88e442e2f485c530f24f1df4" } ] }, { "name": "qt5-webchannel", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtwebchannel-everywhere-src-5.12.5.tar.xz", "sha256": "9f1d1ac20722ee053ecf071d4ec0070a45a765cb67b6e31add61004fb4b3c5e8" } ] }, { "name": "qt5-qtlocation", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtlocation-everywhere-src-5.12.5.tar.xz", "sha256": "12c8b59755abc4ca56e135e8ae3db7c6ba1bd95c779060f10a01393ae1040122" } ] }, { "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.5/submodules/qtwebengine-everywhere-src-5.12.5.tar.xz", "sha256": "31881130e69eb8336e9480f9f33cd5a93e86de8d7323c0ae1893e1a72ce70743" }, { "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.5/submodules/qtsvg-everywhere-src-5.12.5.tar.xz", "sha256": "75a791cf749f671d7ea9090b403ca513f745795018db512e7eecbf418b679840" } ] }, { "name": "qt5-qtx11extras", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtx11extras-everywhere-src-5.12.5.tar.xz", "sha256": "89425af3e48b040878c6a64ace58c17a83b87c9330e6366b09a41d6797062a68" } ] }, { "name": "qt5-qtmultimedia", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtmultimedia-everywhere-src-5.12.5.tar.xz", "sha256": "d5a0a4fddc5ef14d641160a1fc0011b190ff8d9f19009498d586516b8ee3479c" } ] }, { "name": "qt5-qtsensors", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtsensors-everywhere-src-5.12.5.tar.xz", "sha256": "e3a86a706f475bb23fc874de56026482de223ebd24f8cb4e94a28d1985ca0b85" } ] }, { "name": "qt5-qtquickcontrols", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtquickcontrols-everywhere-src-5.12.5.tar.xz", "sha256": "46deaefbdac3daa576c748e807956f5f82b2318923b1a36e434a3ff32d1d2559" } ] }, { "name": "qt5-qtquickcontrols2", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtquickcontrols2-everywhere-src-5.12.5.tar.xz", "sha256": "d744bdc492486db6cb521b1d4891e2358719399825ca1cf2a50968a80f6acb8f" } ] }, { "name": "qt5-qtgraphicaleffects", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtgraphicaleffects-everywhere-src-5.12.5.tar.xz", "sha256": "bdbddba7e0e0d041809a98d97c07da8be8936ec48537335cbaea9b0049c646ad" } ] }, { "name": "qt5-qtxmlpatterns", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtxmlpatterns-everywhere-src-5.12.5.tar.xz", "sha256": "b905d9107f87798ef0f142942fc45c0f63fc113522ab041e791d3cb744a8babd" } ] }, { "name": "qt5-qtimageformats", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtimageformats-everywhere-src-5.12.5.tar.xz", "sha256": "9f19394830542fb9e6bde6806b6216b7207f96bff674b91e8e8a8f89699e1f0a" } ] }, { "name": "qt5-connectivity", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtconnectivity-everywhere-src-5.12.5.tar.xz", "sha256": "bdf62c72d689f47c4d17ecdde934d9f85a1164091e58fce02873de259e8de88b" } ] }, { "name": "qt5-wayland", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtwayland-everywhere-src-5.12.5.tar.xz", "sha256": "29fd31267149451f93faa15f031e0a14506e704086033f70d51479522c6f3846" }, - { - "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-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" - }, { "type": "patch", "path": "patch/qtwayland-do-not-redraw-decorations-everytime.patch" }, { "type": "patch", "path": "patch/qtwayland-use-gnome-platform-theme-on-gnome-based-desktops.patch" } ] }, { "name": "qt5-virtualkeyboard", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtvirtualkeyboard-everywhere-src-5.12.5.tar.xz", "sha256": "786d745b34b1f145073488d492325e98bcde81b07ab984032ea5eb2fb52e6e5e" } ] }, { "name": "qt5-qtserialport", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtserialport-everywhere-src-5.12.5.tar.xz", "sha256": "f8ef0321a59ecfe2c72adc2ee220e0047403439a3c7b9efb719b1476af1fb862" } ] }, { "name": "qt5-qtwebsockets", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtwebsockets-everywhere-src-5.12.5.tar.xz", "sha256": "5d58e697c49c0ea19a8299deba84b5360dca8c336a1636d38de0351757293262" } ] }, { "name": "qt5-qtcharts", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtcharts-everywhere-src-5.12.5.tar.xz", "sha256": "4c7c30a916ba0100a1635b89f48bc5a8af4cdedac79c3fc18456af54dc0a6608" } ] }, { "name": "qt5-qt3d", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qt3d-everywhere-src-5.12.5.tar.xz", "sha256": "2a35b144768c7ad8a9265d16a04f038d9bc51016bd2c4b2b516e374f81ff29c4" } ] }, { "name": "qt5-qtspeech", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtspeech-everywhere-src-5.12.5.tar.xz", "sha256": "f94c0cd7236d1a20d97d314d2c17c45c967cd7f24b869c43f5f46253f436f25b" } ] }, { "name": "qt5-qtnetworkauth", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtnetworkauth-everywhere-src-5.12.5.tar.xz", "sha256": "0933475a2d30550c70ce4026c72678cbfdac73211593c78d442e038ef531a9f1" } ] }, { "name": "qt5-qtgamepad", "buildsystem": "qmake", "cleanup-platform": [ "/bin", "/mkspecs" ], "sources": [ { "type": "archive", "url": "http://download.qt.io/archive/qt/5.12/5.12.5/submodules/qtgamepad-everywhere-src-5.12.5.tar.xz", "sha256": "de88f01d47f7cc5d54a1af783c5fae9f2b0101948ff33b8290f71b2657aded33" } ] }, { "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.61.0" } ] }, { "name": "kwidgetsaddons", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kwidgetsaddons.git", "branch": "v5.61.0" } ] }, { "name": "ki18n", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/ki18n.git", "branch": "v5.61.0" } ] }, { "name": "kconfig", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kconfig.git", "branch": "v5.61.0" } ] }, { "name": "attica", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/attica.git", "branch": "v5.61.0" } ] }, { "name": "kguiaddons", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kguiaddons.git", "branch": "v5.61.0" } ] }, { "name": "kcoreaddons", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kcoreaddons.git", "branch": "v5.61.0" } ] }, { "name": "kauth", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kauth.git", "branch": "v5.61.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.61.0" } ] }, { "name": "kcodecs", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kcodecs.git", "branch": "v5.61.0" } ] }, { "name": "kconfigwidgets", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kconfigwidgets.git", "branch": "v5.61.0" } ] }, { "name": "kitemviews", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kitemviews.git", "branch": "v5.61.0" } ] }, { "name": "kiconthemes", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kiconthemes.git", "branch": "v5.61.0" } ] }, { "name": "kwindowsystem", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kwindowsystem.git", "branch": "v5.61.0" } ] }, { "name": "kcrash", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kcrash.git", "branch": "v5.61.0" } ] }, { "name": "kdbusaddons", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kdbusaddons.git", "branch": "v5.61.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.61.0" } ] }, { "name": "kglobalaccel", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kglobalaccel.git", "branch": "v5.61.0" } ] }, { "name": "sonnet", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/sonnet.git", "branch": "v5.61.0" } ] }, { "name": "kcompletion", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kcompletion.git", "branch": "v5.61.0" } ] }, { "name": "ktextwidgets", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/ktextwidgets.git", "branch": "v5.61.0" } ] }, { "name": "kxmlgui", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kxmlgui.git", "branch": "v5.61.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.61.0" } ] }, { "name": "kpackage", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kpackage.git", "branch": "v5.61.0" } ] }, { "name": "kbookmarks", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kbookmarks.git", "branch": "v5.61.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.61.0" } ] }, { "name": "kwallet", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kwallet.git", "branch": "v5.61.0" } ] }, { "name": "kjobwidgets", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kjobwidgets.git", "branch": "v5.61.0" } ] }, "udev/udev-175.json", { "name": "solid", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/solid.git", "branch": "v5.61.0" } ] }, { "name": "kio", "buildsystem": "cmake-ninja", "config-opts": [ "-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/kio.git", "branch": "v5.61.0" } ] }, { "name": "kparts", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kparts.git", "branch": "v5.61.0" } ] }, { "name": "kplotting", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kplotting.git", "branch": "v5.61.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.61.0" } ] }, { "name": "kinit", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kinit.git", "branch": "v5.61.0" } ] }, { "name": "kded", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kded.git", "branch": "v5.61.0" } ] }, { "name": "kunitconversion", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kunitconversion.git", "branch": "v5.61.0" } ] }, { "name": "kdeclarative", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kdeclarative.git", "branch": "v5.61.0" } ] }, { "name": "kcmutils", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kcmutils.git", "branch": "v5.61.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.61.0" } ] }, { "name": "knewstuff", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/knewstuff.git", "branch": "v5.61.0" } ] }, { "name": "kidletime", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kidletime.git", "branch": "v5.61.0" } ] }, { "name": "threadweaver", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/threadweaver.git", "branch": "v5.61.0" } ] }, { "name": "kitemmodels", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kitemmodels.git", "branch": "v5.61.0" } ] }, { "name": "kxmlrpcclient", "buildsystem": "cmake-ninja", "config-opts": [ "-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/kxmlrpcclient.git", "branch": "v5.61.0" } ] }, { "name": "kdnssd", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kdnssd.git", "branch": "v5.61.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.61.0" } ] }, { "config-opts": [ "-DENABLE_TESTING=OFF" ], "name": "ktexteditor", "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/ktexteditor.git", "branch": "v5.61.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.61.0" } ] }, { "name": "kemoticons", "config-opts": [ "-DENABLE_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "git://anongit.kde.org/kemoticons.git", "branch": "v5.61.0" } ] }, { "name": "kpty", "buildsystem": "cmake-ninja", "config-opts": [ "-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/kpty.git", "branch": "v5.61.0" } ] }, { "name": "kwayland", "buildsystem": "cmake-ninja", "config-opts": ["-DENABLE_TESTING=OFF" ], "sources": [ { "type": "git", "url": "git://anongit.kde.org/kwayland.git", "branch": "v5.61.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.61.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.61.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.61.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.61.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.61.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 deleted file mode 100644 index c6503ff..0000000 --- a/patch/qtbase-revert-reset-qwidget-winid-when-backing-window-surface-destroyed.patch +++ /dev/null @@ -1,36 +0,0 @@ -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 deleted file mode 100644 index 9209694..0000000 --- a/patch/qtwayland-dont-crash-when-start-drag-without-dragfocus.patch +++ /dev/null @@ -1,16 +0,0 @@ -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-emit-wl-surfare-lifetime-signals.patch b/patch/qtwayland-emit-wl-surfare-lifetime-signals.patch deleted file mode 100644 index 45822dc..0000000 --- a/patch/qtwayland-emit-wl-surfare-lifetime-signals.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp -index e3785f5..731ed7f 100644 ---- a/src/client/qwaylandwindow.cpp -+++ b/src/client/qwaylandwindow.cpp -@@ -210,7 +210,9 @@ void QWaylandWindow::initWindow() - - void QWaylandWindow::initializeWlSurface() - { -+ Q_ASSERT(!isInitialized()); - init(mDisplay->createSurface(static_cast(this))); -+ emit wlSurfaceCreated(); - } - - bool QWaylandWindow::shouldCreateShellSurface() const -@@ -245,8 +247,10 @@ void QWaylandWindow::reset(bool sendDestroyEvent) - mShellSurface = nullptr; - delete mSubSurfaceWindow; - mSubSurfaceWindow = nullptr; -- if (isInitialized()) -+ if (isInitialized()) { -+ emit wlSurfaceDestroyed(); - destroy(); -+ } - mScreens.clear(); - - if (mFrameCallback) { -diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h -index c47123d..0e32b59 100644 ---- a/src/client/qwaylandwindow_p.h -+++ b/src/client/qwaylandwindow_p.h -@@ -199,6 +199,10 @@ public: - public slots: - void applyConfigure(); - -+signals: -+ void wlSurfaceCreated(); -+ void wlSurfaceDestroyed(); -+ - protected: - void surface_enter(struct ::wl_output *output) override; - void surface_leave(struct ::wl_output *output) override; diff --git a/patch/qtwayland-fix-expose-event-compression.patch b/patch/qtwayland-fix-expose-event-compression.patch deleted file mode 100644 index 4645c96..0000000 --- a/patch/qtwayland-fix-expose-event-compression.patch +++ /dev/null @@ -1,35 +0,0 @@ -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-fix-stuttering-when-gui-thread-is-busy.patch b/patch/qtwayland-fix-stuttering-when-gui-thread-is-busy.patch deleted file mode 100644 index bbded1c..0000000 --- a/patch/qtwayland-fix-stuttering-when-gui-thread-is-busy.patch +++ /dev/null @@ -1,127 +0,0 @@ -From ec9057081f1094fbfeb11449bc533997731e4079 Mon Sep 17 00:00:00 2001 -From: Johan Klokkhammer Helsing -Date: Wed, 19 Jun 2019 14:05:22 +0200 -Subject: Client: Fix stuttering when the GUI thread is busy - -When we did invokeMethod for handling the frame callbacks, we had to wait for -the GUI thread to finish whatever it's doing before we would stop blocking. - -Fix it by clearing the frame callback timer and stop blocking immediately, -while delaying the rest of the work until it can be run on the other thread. - -Fixes: QTBUG-76397 -Change-Id: I343e4feac4838926b4fa2ccac2948988bc6c3bb7 -Reviewed-by: Paul Olav Tvete - -diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp -index cecdbda9..7c8ecada 100644 ---- a/src/client/qwaylandwindow.cpp -+++ b/src/client/qwaylandwindow.cpp -@@ -610,29 +610,34 @@ const wl_callback_listener QWaylandWindow::callbackListener = { - Q_UNUSED(callback); - Q_UNUSED(time); - auto *window = static_cast(data); -- if (window->thread() != QThread::currentThread()) -- QMetaObject::invokeMethod(window, [=] { window->handleFrameCallback(); }, Qt::QueuedConnection); -- else -- window->handleFrameCallback(); -+ window->handleFrameCallback(); - } - }; - - void QWaylandWindow::handleFrameCallback() - { -- bool wasExposed = isExposed(); -+ // Stop the timer and stop waiting immediately -+ int timerId = mFrameCallbackTimerId.fetchAndStoreOrdered(-1); -+ mWaitingForFrameCallback = false; - -- if (mFrameCallbackTimerId != -1) { -- killTimer(mFrameCallbackTimerId); -- mFrameCallbackTimerId = -1; -- } -+ // The rest can wait until we can run it on the correct thread -+ auto doHandleExpose = [this, timerId]() { -+ if (timerId != -1) -+ killTimer(timerId); - -- mWaitingForFrameCallback = false; -- mFrameCallbackTimedOut = false; -+ bool wasExposed = isExposed(); -+ mFrameCallbackTimedOut = false; -+ if (!wasExposed && isExposed()) // Did setting mFrameCallbackTimedOut make the window exposed? -+ sendExposeEvent(QRect(QPoint(), geometry().size())); -+ if (wasExposed && hasPendingUpdateRequest()) -+ deliverUpdateRequest(); -+ }; - -- if (!wasExposed && isExposed()) -- sendExposeEvent(QRect(QPoint(), geometry().size())); -- if (wasExposed && hasPendingUpdateRequest()) -- deliverUpdateRequest(); -+ if (thread() != QThread::currentThread()) { -+ QMetaObject::invokeMethod(this, doHandleExpose); -+ } else { -+ doHandleExpose(); -+ } - } - - QMutex QWaylandWindow::mFrameSyncMutex; -@@ -654,11 +659,11 @@ bool QWaylandWindow::waitForFrameSync(int timeout) - } - - // Stop current frame timer if any, can't use killTimer directly, because we might be on a diffent thread -- if (mFrameCallbackTimerId != -1) { -- int id = mFrameCallbackTimerId; -- mFrameCallbackTimerId = -1; -- QMetaObject::invokeMethod(this, [=] { killTimer(id); }, Qt::QueuedConnection); -- } -+ // Ordered semantics is needed to avoid stopping the timer twice and not miss it when it's -+ // started by other writes -+ int fcbId = mFrameCallbackTimerId.fetchAndStoreOrdered(-1); -+ if (fcbId != -1) -+ QMetaObject::invokeMethod(this, [=] { killTimer(fcbId); }, Qt::QueuedConnection); - - return !mWaitingForFrameCallback; - } -@@ -1090,9 +1095,9 @@ void QWaylandWindow::timerEvent(QTimerEvent *event) - } - } - -- if (event->timerId() == mFrameCallbackTimerId) { -- killTimer(mFrameCallbackTimerId); -- mFrameCallbackTimerId = -1; -+ -+ if (mFrameCallbackTimerId.testAndSetOrdered(event->timerId(), -1)) { -+ killTimer(event->timerId()); - qCDebug(lcWaylandBackingstore) << "Didn't receive frame callback in time, window should now be inexposed"; - mFrameCallbackTimedOut = true; - mWaitingForUpdate = false; -@@ -1154,11 +1159,9 @@ void QWaylandWindow::handleUpdate() - mWaitingForUpdate = false; - - // Stop current frame timer if any, can't use killTimer directly, see comment above. -- if (mFrameCallbackTimerId != -1) { -- int id = mFrameCallbackTimerId; -- mFrameCallbackTimerId = -1; -- QMetaObject::invokeMethod(this, [=] { killTimer(id); }, Qt::QueuedConnection); -- } -+ int fcbId = mFrameCallbackTimerId.fetchAndStoreOrdered(-1); -+ if (fcbId != -1) -+ QMetaObject::invokeMethod(this, [=] { killTimer(fcbId); }, Qt::QueuedConnection); - - // Start a timer for handling the case when the compositor stops sending frame callbacks. - QMetaObject::invokeMethod(this, [=] { // Again; can't do it directly -diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h -index c47123dc..e8c9d568 100644 ---- a/src/client/qwaylandwindow_p.h -+++ b/src/client/qwaylandwindow_p.h -@@ -216,7 +216,7 @@ protected: - WId mWindowId; - bool mWaitingForFrameCallback = false; - bool mFrameCallbackTimedOut = false; // Whether the frame callback has timed out -- int mFrameCallbackTimerId = -1; // Started on commit, reset on frame callback -+ QAtomicInt mFrameCallbackTimerId = -1; // Started on commit, reset on frame callback - struct ::wl_callback *mFrameCallback = nullptr; - struct ::wl_event_queue *mFrameQueue = nullptr; - QWaitCondition mFrameSyncWait; diff --git a/patch/qtwayland-make-handleupdate-aware-of-exposure-changes.patch b/patch/qtwayland-make-handleupdate-aware-of-exposure-changes.patch deleted file mode 100644 index d51ee72..0000000 --- a/patch/qtwayland-make-handleupdate-aware-of-exposure-changes.patch +++ /dev/null @@ -1,62 +0,0 @@ -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; - }; - diff --git a/patch/qtwayland-reset-frame-callback-timer-when-hiding-window.patch b/patch/qtwayland-reset-frame-callback-timer-when-hiding-window.patch deleted file mode 100644 index 602d6eb..0000000 --- a/patch/qtwayland-reset-frame-callback-timer-when-hiding-window.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp -index cecdbda..e3785f5 100644 ---- a/src/client/qwaylandwindow.cpp -+++ b/src/client/qwaylandwindow.cpp -@@ -254,6 +254,13 @@ void QWaylandWindow::reset(bool sendDestroyEvent) - mFrameCallback = nullptr; - } - -+ int timerId = mFrameCallbackTimerId.fetchAndStoreOrdered(-1); -+ if (timerId != -1) { -+ killTimer(timerId); -+ } -+ mWaitingForFrameCallback = false; -+ mFrameCallbackTimedOut = false; -+ - mMask = QRegion(); - mQueuedBuffer = nullptr; - }