diff options
-rw-r--r-- | pkgs/kde/gear/krfb/default.nix | 13 | ||||
-rw-r--r-- | pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff | 51 |
2 files changed, 64 insertions, 0 deletions
diff --git a/pkgs/kde/gear/krfb/default.nix b/pkgs/kde/gear/krfb/default.nix index 03789537f63e9..eadb9fffb756e 100644 --- a/pkgs/kde/gear/krfb/default.nix +++ b/pkgs/kde/gear/krfb/default.nix @@ -1,5 +1,6 @@ { mkKdeDerivation, + fetchpatch, qtwayland, libvncserver, xorg, @@ -7,6 +8,18 @@ mkKdeDerivation { pname = "krfb"; + # Backports. + # FIXME: remove in next release + patches = [ + # Build fix for Qt 6.7.1 + ./fix-build-with-qt-6.7.1.diff + # Wayland crash fix + (fetchpatch { + url = "https://invent.kde.org/network/krfb/-/commit/6e7a5ba56966ea1b67400be9ab7c82885abb76be.diff"; + hash = "sha256-kqD4B2Nixw8KMCOc4RpoEmvII2JZYBPxog6TT/BPuFs="; + }) + ]; + extraCmakeFlags = [ "-DQtWaylandScanner_EXECUTABLE=${qtwayland}/libexec/qtwaylandscanner" ]; diff --git a/pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff b/pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff new file mode 100644 index 0000000000000..d9ee35d4ca001 --- /dev/null +++ b/pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff @@ -0,0 +1,51 @@ +diff --git a/framebuffers/pipewire/CMakeLists.txt b/framebuffers/pipewire/CMakeLists.txt +index 99f4562..3bf5f63 100644 +--- a/framebuffers/pipewire/CMakeLists.txt ++++ b/framebuffers/pipewire/CMakeLists.txt +@@ -9,11 +9,6 @@ set (krfb_framebuffer_pw_SRCS + screencasting.cpp + ) + +-ecm_add_qtwayland_client_protocol(krfb_framebuffer_pw_SRCS +- PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml +- BASENAME zkde-screencast-unstable-v1 +-) +- + ecm_qt_declare_logging_category(krfb_framebuffer_pw_SRCS + HEADER krfb_fb_pipewire_debug.h + IDENTIFIER KRFB_FB_PIPEWIRE +@@ -38,6 +33,18 @@ add_library(krfb_framebuffer_pw + MODULE + ${krfb_framebuffer_pw_SRCS} + ) ++ ++if (Qt6_VERSION VERSION_LESS "6.7.1") ++ ecm_add_qtwayland_client_protocol(krfb_framebuffer_pw ++ PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml ++ BASENAME zkde-screencast-unstable-v1 ++ ) ++else() ++ qt6_generate_wayland_protocol_client_sources(krfb_framebuffer_pw ++ FILES ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml ++ ) ++endif() ++ + set_property(TARGET krfb_framebuffer_pw PROPERTY C_STANDARD 99) + + target_link_libraries(krfb_framebuffer_pw +diff --git a/framebuffers/pipewire/screencasting.cpp b/framebuffers/pipewire/screencasting.cpp +index 3c4d1ab..c338699 100644 +--- a/framebuffers/pipewire/screencasting.cpp ++++ b/framebuffers/pipewire/screencasting.cpp +@@ -5,7 +5,11 @@ + */ + + #include "screencasting.h" ++#if QT_VERSION < QT_VERSION_CHECK(6, 7, 1) + #include "qwayland-zkde-screencast-unstable-v1.h" ++#else ++#include "qwayland-screencast.h" ++#endif + #include <KWayland/Client/registry.h> + #include <QDebug> + #include <QRect> |