From 8294b197c0de9084d8ac8510382353ea4c177b87 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 28 Feb 2024 17:40:55 +0000 Subject: gentoo auto-resync : 28:02:2024 - 17:40:54 --- kde-plasma/kwin/Manifest | 5 +- .../kwin/files/kwin-6.0.0-kdebug-481456.patch | 272 +++++++++++++++++++++ kde-plasma/kwin/kwin-5.93.0.ebuild | 129 ---------- kde-plasma/kwin/kwin-6.0.0.ebuild | 131 ++++++++++ 4 files changed, 406 insertions(+), 131 deletions(-) create mode 100644 kde-plasma/kwin/files/kwin-6.0.0-kdebug-481456.patch delete mode 100644 kde-plasma/kwin/kwin-5.93.0.ebuild create mode 100644 kde-plasma/kwin/kwin-6.0.0.ebuild (limited to 'kde-plasma/kwin') diff --git a/kde-plasma/kwin/Manifest b/kde-plasma/kwin/Manifest index 675a61277b3d..02ff3e4b61b4 100644 --- a/kde-plasma/kwin/Manifest +++ b/kde-plasma/kwin/Manifest @@ -2,8 +2,9 @@ AUX kwin-5.26.80-gstreamer-optional.patch 948 BLAKE2B 880e77ce6462c115953471dfd4 AUX kwin-5.27.10-backends-drm-commit-m_next-state.patch 1039 BLAKE2B 73a46264684d6c8c99dcf02ffc5b63fa88ac550a74d94d7cefad8deefc91cddf345b9de9a222e197fa23b9caf41045e36288f1f056d518d78c6521ce21ab3415 SHA512 f255f2941fa7d0a001da6689fb9481a24d2804e77037229e2709e52b0bb547af79c6df007fb1d6fcab20e280de3aa79510eb797ea4f69710d62b6f7ad606b860 AUX kwin-5.27.10-xdgshellwindow-enforce-minSize.patch 1516 BLAKE2B b79746dda9281e071827b45c1f0a266df6854e5aaf1d1e5a1ad01ce6e22c154936e2683286b37b2420c59f35593cfdd8de023042bd54b27913cc4c213899f013 SHA512 90353ce0121f9db45f3f7143549c16394edfd0a31b262be25d0ffc781a5918af56a3838538389ac27bc9c9c9272ca237252a93fa471412a77be47ad1c4f5ead9 AUX kwin-5.90.90-gstreamer-optional.patch 851 BLAKE2B 511ef11be43c7f1c08ae63261e447773e0909ecd8f6650f9f02b1897ab0a35cd6f8605eca955ef2d99814c64ae4ffa4e058156c6fc44d4557c3c8bb748425213 SHA512 c794600d70051e05ad3d0c8da976f9348a79b0083c60ff489225170379107e2fbde7f4edabe9699acfe45db30ceb979c4d9647ccf100f804eb9b241303c94485 +AUX kwin-6.0.0-kdebug-481456.patch 12666 BLAKE2B e84941f4a10a4cb9b4daa095b7c5d55ee61a0f2c6ffd513373f352a49035ca3d302ecb82e30d19426fe9cce564cef258e36b2f85cf3abd3a7724cd0c2cef639c SHA512 bf7225322d348cd1723c05110fd19736868cddf92fef2743d20ba8e2df9c5607d9860350959692a9e06602fa027cc8945eebe098636715ef9edf2beaf3c22490 DIST kwin-5.27.10.tar.xz 7634568 BLAKE2B 13da6f83e55236d7060c3f1fcf4f8e2ff5ca0351ae8c5fe6f313a4a4872430a5c049c582993d8c7817b493477f918060220b6b2ccda2baea0d44eb34767e2fc9 SHA512 f9cfbad8eb97c26417e430424bd496bfa31f9e3c6953ab68a7cff467de8ad43bc10a764f47bd0ce3afe4d27d2cd981ba949d09ab3090dfcef9e7a77b5a918f71 -DIST kwin-5.93.0.tar.xz 8823136 BLAKE2B 39ed7b8159c69b3b9da217b62536c63f8a81a6e193938cedf51d1bf196a3987d4be8f0ad42a8110511d13c222d65f2ea6819ffd70a304b1c78603b8011887cca SHA512 075c252bb50ecb7aaa72e386e29f423967b9b3ccf7e763b0fb07bdab745c48cff3f09f7029daa14d83cf576b8fb7f0064f2c9cb046f339c25f141781c30216b9 +DIST kwin-6.0.0.tar.xz 8830980 BLAKE2B 5dd438bebdf8940c892ac0ca4fde77fe241f9905430a4906cebd8fe6187f3da05137fa98d6504a10cb175a12df89b8a2bd19d3b8e203db91d01b23a65968a1b5 SHA512 94fcb6b1e40a8dd17a21a123ea5ae9c058b8fc5f640baba4a3c1190d69e810a36e70cecd44e2602ab04cc5a850679eb55dd6841cc2bdf84df55ce527be26940e EBUILD kwin-5.27.10-r2.ebuild 4350 BLAKE2B b65b0f2742781f9ac4349298136602a6a0e8179ab2a612bdfce7a98e1eb8dd8e80ba2dc2a02434352b623eab5da021054e5e98ed32da2b525d0ba9269decaf4d SHA512 3fd44de42cf3134ef1f73828009d61f60dfeea7eca994907d545a5a79108666ead9ca3e7d1c70d4eb9f0d2a6839530727f1c08c8fd618651ffcd32edf29748f4 -EBUILD kwin-5.93.0.ebuild 3894 BLAKE2B 09f7c8e1e28d29d13119351b6dc56acc1b4230aff5df99c85fb7a0258a5bc38f66f1042b0879f96025fe7832eb2ce5fa0041ef2a8d32e0d156510941d14c8056 SHA512 3464ff0850089de541e847f213cbf5f161876f886c1e4261f8a103d2f42798f739d2b3c586e6f6103724630b1ce577b0aa7e910976f5a13bb61777208c80023d +EBUILD kwin-6.0.0.ebuild 3959 BLAKE2B ca6c2ea6c0e7d210712cffe15873579d3172ad6f9f7bd737c3f4fd63e6899f480ac2ee35caa651c9bd3a0d44fea4bafb0e0baf2ae7d1026a334a5ec997b8a2b1 SHA512 c1ffb40c1815650481f4bc7a753c3e831ab8207cc50f532c2e34ac7d8c1307ea052d8f45b1ee372cdb1f34934042cffc28448f7b2b1b41cbd7ced8e1e7e8de3a MISC metadata.xml 609 BLAKE2B 055e529fe8f4baca13c678a0f42c061b0154c5f33ac0e9b80f1c95114bb7db28f42c94136d197205c8472f89a302c91e5ea66c0a7cfac3331a7a035a039c45f3 SHA512 8c54f2ddbe2e525ed6c9298f27d4270c5192f575a4dfa9e324fc35514ce6a39937f37de270887e7c256314ca47b04b2febca69e6fd2cfaf93ea88fa4a7221833 diff --git a/kde-plasma/kwin/files/kwin-6.0.0-kdebug-481456.patch b/kde-plasma/kwin/files/kwin-6.0.0-kdebug-481456.patch new file mode 100644 index 000000000000..208cfb8b0eb1 --- /dev/null +++ b/kde-plasma/kwin/files/kwin-6.0.0-kdebug-481456.patch @@ -0,0 +1,272 @@ +From ebce0e3c3371fbc5a59955c91873edca1b6e4e79 Mon Sep 17 00:00:00 2001 +From: David Edmundson +Date: Mon, 26 Feb 2024 10:32:49 +0000 +Subject: [PATCH] x11window: Disable strict geometry placement by default in + wayland + +Strict geometry disables certain user activites; full screen requests +and only sending configure events at sizes the client claims to support. + +This was added as a workaround for xterm in 19 years ago. It's a client +side bug as applications can still choose to ignore the configure event, +so kwin shouldn't have to sanitise them in advance. xterm seems to have +fixed it's bug, and pragmatically we know not all window managers +perform these checks so most clients should not be relying on it. + +On Wayland this additional check is proving problematic, the handling of +scaling especially fractional scaling is hitting cases where it's better +to always ask the client to do what kwin wants. + +Tests that refer to sizeIncrements are dropped as they are only used in +the strict geometry passes which is being obsoleted. Resizing in general +is still tested. + +BUG: 481456 + + +(cherry picked from commit 32be54b19d24e3fafc3a50492b1ca48047a64103) +--- + autotests/integration/x11_window_test.cpp | 171 ---------------------- + src/x11window.cpp | 14 +- + 2 files changed, 11 insertions(+), 174 deletions(-) + +diff --git a/autotests/integration/x11_window_test.cpp b/autotests/integration/x11_window_test.cpp +index aa48b26d8d2..588b01e8141 100644 +--- a/autotests/integration/x11_window_test.cpp ++++ b/autotests/integration/x11_window_test.cpp +@@ -35,8 +35,6 @@ private Q_SLOTS: + + void testMinimumSize(); + void testMaximumSize(); +- void testResizeIncrements(); +- void testResizeIncrementsNoBaseSize(); + void testTrimCaption_data(); + void testTrimCaption(); + void testFullscreenLayerWithActiveWaylandWindow(); +@@ -291,175 +289,6 @@ void X11WindowTest::testMaximumSize() + c.reset(); + } + +-void X11WindowTest::testResizeIncrements() +-{ +- // This test verifies that the resize increments constraint is correctly applied. +- QFETCH_GLOBAL(qreal, scale); +- kwinApp()->setXwaylandScale(scale); +- +- // Create an xcb window. +- Test::XcbConnectionPtr c = Test::createX11Connection(); +- QVERIFY(!xcb_connection_has_error(c.get())); +- const QRect windowGeometry(0, 0, 100, 200); +- xcb_window_t windowId = xcb_generate_id(c.get()); +- xcb_create_window(c.get(), XCB_COPY_FROM_PARENT, windowId, rootWindow(), +- windowGeometry.x(), +- windowGeometry.y(), +- windowGeometry.width(), +- windowGeometry.height(), +- 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, XCB_COPY_FROM_PARENT, 0, nullptr); +- xcb_size_hints_t hints; +- memset(&hints, 0, sizeof(hints)); +- xcb_icccm_size_hints_set_position(&hints, 1, windowGeometry.x(), windowGeometry.y()); +- xcb_icccm_size_hints_set_size(&hints, 1, windowGeometry.width(), windowGeometry.height()); +- xcb_icccm_size_hints_set_base_size(&hints, windowGeometry.width(), windowGeometry.height()); +- xcb_icccm_size_hints_set_resize_inc(&hints, 3, 5); +- xcb_icccm_set_wm_normal_hints(c.get(), windowId, &hints); +- xcb_map_window(c.get(), windowId); +- xcb_flush(c.get()); +- +- QSignalSpy windowCreatedSpy(workspace(), &Workspace::windowAdded); +- QVERIFY(windowCreatedSpy.wait()); +- X11Window *window = windowCreatedSpy.last().first().value(); +- QVERIFY(window); +- QVERIFY(window->isDecorated()); +- +- QSignalSpy interactiveMoveResizeStartedSpy(window, &Window::interactiveMoveResizeStarted); +- QSignalSpy interactiveMoveResizeSteppedSpy(window, &Window::interactiveMoveResizeStepped); +- QSignalSpy interactiveMoveResizeFinishedSpy(window, &Window::interactiveMoveResizeFinished); +- QSignalSpy frameGeometryChangedSpy(window, &Window::frameGeometryChanged); +- +- // Begin resize. +- QCOMPARE(workspace()->moveResizeWindow(), nullptr); +- QVERIFY(!window->isInteractiveResize()); +- workspace()->slotWindowResize(); +- QCOMPARE(workspace()->moveResizeWindow(), window); +- QCOMPARE(interactiveMoveResizeStartedSpy.count(), 1); +- QVERIFY(window->isInteractiveResize()); +- +- const QPointF cursorPos = KWin::Cursors::self()->mouse()->pos(); +- +- window->keyPressEvent(Qt::Key_Right); +- window->updateInteractiveMoveResize(KWin::Cursors::self()->mouse()->pos()); +- QCOMPARE(KWin::Cursors::self()->mouse()->pos(), cursorPos + QPoint(8, 0)); +- QCOMPARE(interactiveMoveResizeSteppedSpy.count(), 1); +- QVERIFY(frameGeometryChangedSpy.wait()); +- +- // 100 + 8 logical pixels, rounded to resize increments. This will differ on scale +- const qreal horizontalResizeInc = 3 / scale; +- const qreal verticalResizeInc = 5 / scale; +- const qreal expectedHorizontalResizeInc = std::floor(8. / horizontalResizeInc) * horizontalResizeInc; +- const qreal expectedVerticalResizeInc = std::floor(8. / verticalResizeInc) * verticalResizeInc; +- +- QCOMPARE(window->clientSize(), QSizeF(100, 200) / scale + QSizeF(expectedHorizontalResizeInc, 0)); +- +- window->keyPressEvent(Qt::Key_Down); +- window->updateInteractiveMoveResize(KWin::Cursors::self()->mouse()->pos()); +- QCOMPARE(KWin::Cursors::self()->mouse()->pos(), cursorPos + QPoint(8, 8)); +- QCOMPARE(interactiveMoveResizeSteppedSpy.count(), 2); +- QVERIFY(frameGeometryChangedSpy.wait()); +- QCOMPARE(window->clientSize(), QSize(100, 200) / scale + QSizeF(expectedHorizontalResizeInc, expectedVerticalResizeInc)); +- +- // Finish the resize operation. +- QCOMPARE(interactiveMoveResizeFinishedSpy.count(), 0); +- window->keyPressEvent(Qt::Key_Enter); +- QCOMPARE(interactiveMoveResizeFinishedSpy.count(), 1); +- QCOMPARE(workspace()->moveResizeWindow(), nullptr); +- QVERIFY(!window->isInteractiveResize()); +- +- // Destroy the window. +- QSignalSpy windowClosedSpy(window, &X11Window::closed); +- xcb_unmap_window(c.get(), windowId); +- xcb_destroy_window(c.get(), windowId); +- xcb_flush(c.get()); +- QVERIFY(windowClosedSpy.wait()); +- c.reset(); +-} +- +-void X11WindowTest::testResizeIncrementsNoBaseSize() +-{ +- QFETCH_GLOBAL(qreal, scale); +- kwinApp()->setXwaylandScale(scale); +- +- // Create an xcb window. +- Test::XcbConnectionPtr c = Test::createX11Connection(); +- QVERIFY(!xcb_connection_has_error(c.get())); +- const QRect windowGeometry(0, 0, 100, 200); +- xcb_window_t windowId = xcb_generate_id(c.get()); +- xcb_create_window(c.get(), XCB_COPY_FROM_PARENT, windowId, rootWindow(), +- windowGeometry.x(), +- windowGeometry.y(), +- windowGeometry.width(), +- windowGeometry.height(), +- 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, XCB_COPY_FROM_PARENT, 0, nullptr); +- xcb_size_hints_t hints; +- memset(&hints, 0, sizeof(hints)); +- xcb_icccm_size_hints_set_position(&hints, 1, windowGeometry.x(), windowGeometry.y()); +- xcb_icccm_size_hints_set_size(&hints, 1, windowGeometry.width(), windowGeometry.height()); +- xcb_icccm_size_hints_set_min_size(&hints, windowGeometry.width(), windowGeometry.height()); +- xcb_icccm_size_hints_set_resize_inc(&hints, 3, 5); +- xcb_icccm_set_wm_normal_hints(c.get(), windowId, &hints); +- xcb_map_window(c.get(), windowId); +- xcb_flush(c.get()); +- +- QSignalSpy windowCreatedSpy(workspace(), &Workspace::windowAdded); +- QVERIFY(windowCreatedSpy.wait()); +- X11Window *window = windowCreatedSpy.last().first().value(); +- QVERIFY(window); +- QVERIFY(window->isDecorated()); +- +- QSignalSpy interactiveMoveResizeStartedSpy(window, &Window::interactiveMoveResizeStarted); +- QSignalSpy interactiveMoveResizeSteppedSpy(window, &Window::interactiveMoveResizeStepped); +- QSignalSpy interactiveMoveResizeFinishedSpy(window, &Window::interactiveMoveResizeFinished); +- QSignalSpy frameGeometryChangedSpy(window, &Window::frameGeometryChanged); +- +- // Begin resize. +- QCOMPARE(workspace()->moveResizeWindow(), nullptr); +- QVERIFY(!window->isInteractiveResize()); +- workspace()->slotWindowResize(); +- QCOMPARE(workspace()->moveResizeWindow(), window); +- QCOMPARE(interactiveMoveResizeStartedSpy.count(), 1); +- QVERIFY(window->isInteractiveResize()); +- +- const QPointF cursorPos = KWin::Cursors::self()->mouse()->pos(); +- +- window->keyPressEvent(Qt::Key_Right); +- window->updateInteractiveMoveResize(KWin::Cursors::self()->mouse()->pos()); +- QCOMPARE(KWin::Cursors::self()->mouse()->pos(), cursorPos + QPoint(8, 0)); +- QCOMPARE(interactiveMoveResizeSteppedSpy.count(), 1); +- QVERIFY(frameGeometryChangedSpy.wait()); +- +- // 100 + 8 pixels, rounded to resize increments. This will differ on scale +- const qreal horizontalResizeInc = 3 / scale; +- const qreal verticalResizeInc = 5 / scale; +- const qreal expectedHorizontalResizeInc = std::floor(8. / horizontalResizeInc) * horizontalResizeInc; +- const qreal expectedVerticalResizeInc = std::floor(8. / verticalResizeInc) * verticalResizeInc; +- +- QCOMPARE(window->clientSize(), QSizeF(100, 200) / scale + QSizeF(expectedHorizontalResizeInc, 0)); +- +- window->keyPressEvent(Qt::Key_Down); +- window->updateInteractiveMoveResize(KWin::Cursors::self()->mouse()->pos()); +- QCOMPARE(KWin::Cursors::self()->mouse()->pos(), cursorPos + QPoint(8, 8)); +- QCOMPARE(interactiveMoveResizeSteppedSpy.count(), 2); +- QVERIFY(frameGeometryChangedSpy.wait()); +- QCOMPARE(window->clientSize(), QSizeF(100, 200) / scale + QSizeF(expectedHorizontalResizeInc, expectedVerticalResizeInc)); +- +- // Finish the resize operation. +- QCOMPARE(interactiveMoveResizeFinishedSpy.count(), 0); +- window->keyPressEvent(Qt::Key_Enter); +- QCOMPARE(interactiveMoveResizeFinishedSpy.count(), 1); +- QCOMPARE(workspace()->moveResizeWindow(), nullptr); +- QVERIFY(!window->isInteractiveResize()); +- +- // Destroy the window. +- QSignalSpy windowClosedSpy(window, &X11Window::closed); +- xcb_unmap_window(c.get(), windowId); +- xcb_destroy_window(c.get(), windowId); +- xcb_flush(c.get()); +- QVERIFY(windowClosedSpy.wait()); +- c.reset(); +-} +- + void X11WindowTest::testTrimCaption_data() + { + QFETCH_GLOBAL(qreal, scale); +diff --git a/src/x11window.cpp b/src/x11window.cpp +index e4ab708f472..9aa2056b1d0 100644 +--- a/src/x11window.cpp ++++ b/src/x11window.cpp +@@ -1492,7 +1492,8 @@ bool X11Window::isFullScreenable() const + if (!rules()->checkFullScreen(true)) { + return false; + } +- if (rules()->checkStrictGeometry(true)) { ++ const bool isX11Mode = kwinApp()->operationMode() == Application::OperationModeX11; ++ if (rules()->checkStrictGeometry(isX11Mode)) { + // check geometry constraints (rule to obey is set) + const QRectF fullScreenArea = workspace()->clientArea(FullScreenArea, this); + const QSizeF constrainedClientSize = constrainClientSize(fullScreenArea.size()); +@@ -3705,7 +3706,8 @@ QSizeF X11Window::constrainClientSize(const QSizeF &size, SizeMode mode) const + w = std::max(min_size.width(), w); + h = std::max(min_size.height(), h); + +- if (!rules()->checkStrictGeometry(!isFullScreen())) { ++ const bool isX11Mode = kwinApp()->operationMode() == Application::OperationModeX11; ++ if (!rules()->checkStrictGeometry(!isFullScreen() && isX11Mode)) { + // Disobey increments and aspect by explicit rule. + return QSizeF(w, h); + } +@@ -3890,6 +3892,10 @@ QSizeF X11Window::maxSize() const + + QSizeF X11Window::basicUnit() const + { ++ const bool isX11Mode = kwinApp()->operationMode() == Application::OperationModeX11; ++ if (!isX11Mode) { ++ return QSize(1, 1); ++ } + return m_geometryHints.resizeIncrements(); + } + +@@ -4457,9 +4463,11 @@ void X11Window::maximize(MaximizeMode mode) + + // if the client insist on a fix aspect ratio, we check whether the maximizing will get us + // out of screen bounds and take that as a "full maximization with aspect check" then ++ const bool isX11Mode = kwinApp()->operationMode() == Application::OperationModeX11; ++ + if (m_geometryHints.hasAspect() && // fixed aspect + (mode == MaximizeVertical || mode == MaximizeHorizontal) && // ondimensional maximization +- rules()->checkStrictGeometry(true)) { // obey aspect ++ rules()->checkStrictGeometry(isX11Mode)) { // obey aspect + const QSize minAspect = m_geometryHints.minAspect(); + const QSize maxAspect = m_geometryHints.maxAspect(); + if (mode == MaximizeVertical || (old_mode & MaximizeVertical)) { +-- +GitLab + diff --git a/kde-plasma/kwin/kwin-5.93.0.ebuild b/kde-plasma/kwin/kwin-5.93.0.ebuild deleted file mode 100644 index 1763a82de5a6..000000000000 --- a/kde-plasma/kwin/kwin-5.93.0.ebuild +++ /dev/null @@ -1,129 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -ECM_HANDBOOK="optional" -ECM_TEST="optional" -KFMIN=5.249.0 -PVCUT=$(ver_cut 1-3) -QTMIN=6.6.2 -inherit ecm plasma.kde.org - -DESCRIPTION="Flexible, composited Window Manager for windowing systems on Linux" - -LICENSE="GPL-2+" -SLOT="6" -KEYWORDS="~amd64" -IUSE="accessibility caps gles2-only lock multimedia screencast +shortcuts" - -RESTRICT="test" - -# qtbase slot up: GuiPrivate use in tabbox -COMMON_DEPEND=" - >=dev-libs/libinput-1.19:= - >=dev-libs/wayland-1.22.0 - >=dev-qt/qt5compat-${QTMIN}:6[qml] - >=dev-qt/qtbase-${QTMIN}:6=[accessibility,dbus,gles2-only=,gui,libinput,opengl,widgets] - >=dev-qt/qtdeclarative-${QTMIN}:6 - >=dev-qt/qtsensors-${QTMIN}:6 - >=dev-qt/qtshadertools-${QTMIN}:6 - >=kde-frameworks/kauth-${KFMIN}:6 - >=kde-frameworks/kcmutils-${KFMIN}:6 - >=kde-frameworks/kconfig-${KFMIN}:6[qml] - >=kde-frameworks/kconfigwidgets-${KFMIN}:6 - >=kde-frameworks/kcoreaddons-${KFMIN}:6 - >=kde-frameworks/kcrash-${KFMIN}:6 - >=kde-frameworks/kdbusaddons-${KFMIN}:6 - >=kde-frameworks/kdeclarative-${KFMIN}:6 - >=kde-frameworks/kglobalaccel-${KFMIN}:6=[X(+)] - >=kde-frameworks/kguiaddons-${KFMIN}:6[wayland] - >=kde-frameworks/ki18n-${KFMIN}:6 - >=kde-frameworks/kidletime-${KFMIN}:6=[wayland] - >=kde-frameworks/knewstuff-${KFMIN}:6 - >=kde-frameworks/knotifications-${KFMIN}:6 - >=kde-frameworks/kpackage-${KFMIN}:6 - >=kde-frameworks/kservice-${KFMIN}:6 - >=kde-frameworks/ksvg-${KFMIN}:6 - >=kde-frameworks/kwidgetsaddons-${KFMIN}:6 - >=kde-frameworks/kwindowsystem-${KFMIN}:6=[wayland,X] - >=kde-frameworks/kxmlgui-${KFMIN}:6 - >=kde-plasma/breeze-${PVCUT}:6 - >=kde-plasma/kdecoration-${PVCUT}:6 - >=kde-plasma/kwayland-${PVCUT}:6 - >=kde-plasma/plasma-activities-${PVCUT}:6 - media-libs/fontconfig - media-libs/freetype - media-libs/lcms:2 - media-libs/libdisplay-info - media-libs/libepoxy - media-libs/libglvnd - >=media-libs/mesa-21.3[egl(+),gbm(+),wayland,X] - virtual/libudev:= - x11-libs/libX11 - x11-libs/libXi - >=x11-libs/libdrm-2.4.112 - >=x11-libs/libxcb-1.10:= - >=x11-libs/libxcvt-0.1.1 - >=x11-libs/libxkbcommon-1.5.0 - x11-libs/xcb-util-cursor - x11-libs/xcb-util-keysyms - x11-libs/xcb-util-wm - accessibility? ( media-libs/libqaccessibilityclient:6 ) - gles2-only? ( media-libs/mesa[gles2] ) - lock? ( >=kde-plasma/kscreenlocker-${PVCUT}:6 ) - screencast? ( >=media-video/pipewire-0.3:= ) - shortcuts? ( >=kde-plasma/kglobalacceld-${PVCUT}:6 ) -" -RDEPEND="${COMMON_DEPEND} - !kde-plasma/kdeplasma-addons:5 - !kde-plasma/kwayland-server - >=kde-frameworks/kirigami-${KFMIN}:6 - >=kde-frameworks/kitemmodels-${KFMIN}:6 - >=kde-plasma/libplasma-${PVCUT}:6[wayland] - sys-apps/hwdata - x11-base/xwayland - multimedia? ( - >=dev-qt/qtmultimedia-${QTMIN}:6[gstreamer,qml] - media-plugins/gst-plugins-soup:1.0 - ) -" -DEPEND="${COMMON_DEPEND} - >=dev-libs/plasma-wayland-protocols-1.11.1 - >=dev-libs/wayland-protocols-1.32 - >=dev-qt/qttools-${QTMIN}:6[designer] - >=dev-qt/qtbase-${QTMIN}:6[concurrent] - >=dev-qt/qtwayland-${QTMIN}:6 - x11-base/xorg-proto - x11-libs/xcb-util-image - caps? ( sys-libs/libcap ) - test? ( screencast? ( >=kde-plasma/kpipewire-${PVCUT}:6 ) ) -" -BDEPEND=" - >=dev-qt/qtwayland-${QTMIN}:6 - dev-util/wayland-scanner - >=kde-frameworks/kcmutils-${KFMIN}:6 -" -PDEPEND=">=kde-plasma/kde-cli-tools-${PVCUT}:*" - -src_prepare() { - ecm_src_prepare - use multimedia || eapply "${FILESDIR}/${PN}-5.90.90-gstreamer-optional.patch" - - # TODO: try to get a build switch upstreamed - if ! use screencast; then - sed -e "s/^pkg_check_modules.*PipeWire/#&/" -i CMakeLists.txt || die - fi -} - -src_configure() { - local mycmakeargs=( - # KWIN_BUILD_NOTIFICATIONS exists, but kdeclarative still hard-depends on it - $(cmake_use_find_package accessibility QAccessibilityClient6) - $(cmake_use_find_package caps Libcap) - -DKWIN_BUILD_SCREENLOCKER=$(usex lock) - -DKWIN_BUILD_GLOBALSHORTCUTS=$(usex shortcuts) - ) - - ecm_src_configure -} diff --git a/kde-plasma/kwin/kwin-6.0.0.ebuild b/kde-plasma/kwin/kwin-6.0.0.ebuild new file mode 100644 index 000000000000..fd8eb2d7cb86 --- /dev/null +++ b/kde-plasma/kwin/kwin-6.0.0.ebuild @@ -0,0 +1,131 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_HANDBOOK="optional" +ECM_TEST="optional" +KFMIN=6.0 +PVCUT=$(ver_cut 1-3) +QTMIN=6.6.2 +inherit ecm plasma.kde.org + +DESCRIPTION="Flexible, composited Window Manager for windowing systems on Linux" + +LICENSE="GPL-2+" +SLOT="6" +KEYWORDS="~amd64" +IUSE="accessibility caps gles2-only lock multimedia screencast +shortcuts" + +RESTRICT="test" + +# qtbase slot up: GuiPrivate use in tabbox +COMMON_DEPEND=" + >=dev-libs/libinput-1.19:= + >=dev-libs/wayland-1.22.0 + >=dev-qt/qt5compat-${QTMIN}:6[qml] + >=dev-qt/qtbase-${QTMIN}:6=[accessibility,dbus,gles2-only=,gui,libinput,opengl,widgets] + >=dev-qt/qtdeclarative-${QTMIN}:6 + >=dev-qt/qtsensors-${QTMIN}:6 + >=dev-qt/qtshadertools-${QTMIN}:6 + >=kde-frameworks/kauth-${KFMIN}:6 + >=kde-frameworks/kcmutils-${KFMIN}:6 + >=kde-frameworks/kconfig-${KFMIN}:6[qml] + >=kde-frameworks/kconfigwidgets-${KFMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/kcrash-${KFMIN}:6 + >=kde-frameworks/kdbusaddons-${KFMIN}:6 + >=kde-frameworks/kdeclarative-${KFMIN}:6 + >=kde-frameworks/kglobalaccel-${KFMIN}:6=[X(+)] + >=kde-frameworks/kguiaddons-${KFMIN}:6[wayland] + >=kde-frameworks/ki18n-${KFMIN}:6 + >=kde-frameworks/kidletime-${KFMIN}:6=[wayland] + >=kde-frameworks/knewstuff-${KFMIN}:6 + >=kde-frameworks/knotifications-${KFMIN}:6 + >=kde-frameworks/kpackage-${KFMIN}:6 + >=kde-frameworks/kservice-${KFMIN}:6 + >=kde-frameworks/ksvg-${KFMIN}:6 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:6 + >=kde-frameworks/kwindowsystem-${KFMIN}:6=[wayland,X] + >=kde-frameworks/kxmlgui-${KFMIN}:6 + >=kde-plasma/breeze-${PVCUT}:6 + >=kde-plasma/kdecoration-${PVCUT}:6 + >=kde-plasma/kwayland-${PVCUT}:6 + >=kde-plasma/plasma-activities-${PVCUT}:6 + media-libs/fontconfig + media-libs/freetype + media-libs/lcms:2 + media-libs/libdisplay-info + media-libs/libepoxy + media-libs/libglvnd + >=media-libs/mesa-21.3[egl(+),gbm(+),wayland,X] + virtual/libudev:= + x11-libs/libX11 + x11-libs/libXi + >=x11-libs/libdrm-2.4.112 + >=x11-libs/libxcb-1.10:= + >=x11-libs/libxcvt-0.1.1 + >=x11-libs/libxkbcommon-1.5.0 + x11-libs/xcb-util-cursor + x11-libs/xcb-util-keysyms + x11-libs/xcb-util-wm + accessibility? ( media-libs/libqaccessibilityclient:6 ) + gles2-only? ( media-libs/mesa[gles2] ) + lock? ( >=kde-plasma/kscreenlocker-${PVCUT}:6 ) + screencast? ( >=media-video/pipewire-0.3:= ) + shortcuts? ( >=kde-plasma/kglobalacceld-${PVCUT}:6 ) +" +RDEPEND="${COMMON_DEPEND} + !kde-plasma/kdeplasma-addons:5 + !kde-plasma/kwayland-server + >=kde-frameworks/kirigami-${KFMIN}:6 + >=kde-frameworks/kitemmodels-${KFMIN}:6 + >=kde-plasma/libplasma-${PVCUT}:6[wayland] + sys-apps/hwdata + x11-base/xwayland + multimedia? ( + >=dev-qt/qtmultimedia-${QTMIN}:6[gstreamer,qml] + media-plugins/gst-plugins-soup:1.0 + ) +" +DEPEND="${COMMON_DEPEND} + >=dev-libs/plasma-wayland-protocols-1.11.1 + >=dev-libs/wayland-protocols-1.32 + >=dev-qt/qttools-${QTMIN}:6[designer] + >=dev-qt/qtbase-${QTMIN}:6[concurrent] + >=dev-qt/qtwayland-${QTMIN}:6 + x11-base/xorg-proto + x11-libs/xcb-util-image + caps? ( sys-libs/libcap ) + test? ( screencast? ( >=kde-plasma/kpipewire-${PVCUT}:6 ) ) +" +BDEPEND=" + >=dev-qt/qtwayland-${QTMIN}:6 + dev-util/wayland-scanner + >=kde-frameworks/kcmutils-${KFMIN}:6 +" +PDEPEND=">=kde-plasma/kde-cli-tools-${PVCUT}:*" + +PATCHES=( "${FILESDIR}/${P}-kdebug-481456.patch" ) # KDE-bug 481456 + +src_prepare() { + ecm_src_prepare + use multimedia || eapply "${FILESDIR}/${PN}-5.90.90-gstreamer-optional.patch" + + # TODO: try to get a build switch upstreamed + if ! use screencast; then + sed -e "s/^pkg_check_modules.*PipeWire/#&/" -i CMakeLists.txt || die + fi +} + +src_configure() { + local mycmakeargs=( + # KWIN_BUILD_NOTIFICATIONS exists, but kdeclarative still hard-depends on it + $(cmake_use_find_package accessibility QAccessibilityClient6) + $(cmake_use_find_package caps Libcap) + -DKWIN_BUILD_SCREENLOCKER=$(usex lock) + -DKWIN_BUILD_GLOBALSHORTCUTS=$(usex shortcuts) + ) + + ecm_src_configure +} -- cgit v1.2.3