diff --git a/x11-wm/plasma6-kwin/Makefile b/x11-wm/plasma6-kwin/Makefile index 3bbb41749e53..6335aa4a702d 100644 --- a/x11-wm/plasma6-kwin/Makefile +++ b/x11-wm/plasma6-kwin/Makefile @@ -1,49 +1,50 @@ PORTNAME= kwin DISTVERSION= ${KDE_PLASMA_VERSION}.1 +PORTREVISION= 1 CATEGORIES= x11-wm kde kde-plasma COMMENT= Easy to use, but flexible, X Window Manager and Wayland Compositor MAINTAINER= kde@FreeBSD.org BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:devel/evdev-proto \ hwdata>0:misc/hwdata \ wayland-protocols>0:graphics/wayland-protocols \ Xwayland:x11-servers/xwayland LIB_DEPENDS= libdisplay-info.so:sysutils/libdisplay-info \ libdrm.so:graphics/libdrm \ libepoxy.so:graphics/libepoxy \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libinput.so:x11/libinput \ liblcms2.so:graphics/lcms2 \ libpipewire-0.3.so:multimedia/pipewire \ libqaccessibilityclient-qt6.so:accessibility/libqaccessibilityclient@qt6 \ libudev.so:devel/libudev-devd \ libwayland-client.so:graphics/wayland \ libxcb-cursor.so:x11/xcb-util-cursor \ libxcb-icccm.so:x11/xcb-util-wm \ libxcb-keysyms.so:x11/xcb-util-keysyms \ libxcvt.so:x11/libxcvt \ libxkbcommon.so:x11/libxkbcommon RUN_DEPENDS= hwdata>0:misc/hwdata \ Xwayland:x11-servers/xwayland CONFLICTS_INSTALL= theseus-ship # bin/kwin_wayland USES= cmake gettext gl kde:6 pkgconfig python qt:6 shebangfix tar:xz \ xorg USE_GL= egl gbm gl opengl USE_KDE= activities attica auth breeze colorscheme config \ configwidgets coreaddons crash dbusaddons decoration \ globalaccel globalacceld guiaddons i18n idletime kcmutils \ kdeclarative kpipewire kscreenlocker libplasma newstuff \ notifications package runner service svg wayland widgetsaddons \ windowsystem xmlgui \ ecm:build plasma-wayland-protocols:build USE_QT= base declarative multimedia sensors tools wayland USE_XORG= ice sm x11 xcb xext xi BINARY_ALIAS= python3=${PYTHON_CMD} SHEBANG_FILES= src/plugins/strip-effect-metadata.py .include diff --git a/x11-wm/plasma6-kwin/files/patch-bug500819 b/x11-wm/plasma6-kwin/files/patch-bug500819 new file mode 100644 index 000000000000..b62045d2de18 --- /dev/null +++ b/x11-wm/plasma6-kwin/files/patch-bug500819 @@ -0,0 +1,46 @@ +commit b97892417ec1649c780e85e403842a77a6ab87b6 +Author: Xaver Hugl +Date: Wed Feb 26 12:58:09 2025 +0100 + + backends/drm: fix testing for more connectors than CRTCs + + The connectors may not actually be enabled, so the checks could sometimes result in + wrongly returning Error::NotEnoughCrtcs. + + BUG: 500819 + CCBUG: 500797 + + (cherry picked from commit aa11d89a90bc4eb77bfe191a2cadede4d957d2a9) + +diff --git a/src/backends/drm/drm_gpu.cpp b/src/backends/drm/drm_gpu.cpp +index 9291b5296d..4599b3dc46 100644 +--- src/backends/drm/drm_gpu.cpp ++++ src/backends/drm/drm_gpu.cpp +@@ -345,15 +345,7 @@ void DrmGpu::removeOutputs() + + DrmPipeline::Error DrmGpu::checkCrtcAssignment(QList connectors, const QList &crtcs) + { +- if (connectors.isEmpty() || crtcs.isEmpty()) { +- if (m_pipelines.isEmpty()) { +- // nothing to do +- return DrmPipeline::Error::None; +- } +- if (!connectors.empty()) { +- // we have no crtcs left to drive the remaining connectors +- return DrmPipeline::Error::InvalidArguments; +- } ++ if (connectors.isEmpty()) { + return testPipelines(); + } + auto connector = connectors.takeFirst(); +@@ -363,6 +355,10 @@ DrmPipeline::Error DrmGpu::checkCrtcAssignment(QList connectors, + pipeline->setCrtc(nullptr); + return checkCrtcAssignment(connectors, crtcs); + } ++ if (crtcs.isEmpty()) { ++ // we have no crtc left to drive this connector ++ return DrmPipeline::Error::InvalidArguments; ++ } + DrmCrtc *currentCrtc = nullptr; + if (m_atomicModeSetting) { + // try the crtc that this connector is already connected to first