Skip to content

Commit

Permalink
kdePackages.krfb: fix build
Browse files Browse the repository at this point in the history
  • Loading branch information
K900 authored and SuperSandro2000 committed May 22, 2024
1 parent 1b7883f commit 1529db2
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
13 changes: 13 additions & 0 deletions pkgs/kde/gear/krfb/default.nix
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
{
mkKdeDerivation,
fetchpatch,
qtwayland,
libvncserver,
xorg,
}:
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"
];
Expand Down
51 changes: 51 additions & 0 deletions pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff
Original file line number Diff line number Diff line change
@@ -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>

0 comments on commit 1529db2

Please sign in to comment.