summaryrefslogtreecommitdiff
path: root/user/krdc/libvncserver-modern-c.patch
diff options
context:
space:
mode:
Diffstat (limited to 'user/krdc/libvncserver-modern-c.patch')
-rw-r--r--user/krdc/libvncserver-modern-c.patch124
1 files changed, 124 insertions, 0 deletions
diff --git a/user/krdc/libvncserver-modern-c.patch b/user/krdc/libvncserver-modern-c.patch
new file mode 100644
index 000000000..d68ee1e17
--- /dev/null
+++ b/user/krdc/libvncserver-modern-c.patch
@@ -0,0 +1,124 @@
+Needed for newer GCC.
+
+From 20c8099d34fc495784b360af131195c851c116f8 Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+Date: Thu, 9 May 2024 16:53:56 +0200
+Subject: [PATCH] Use PkgConfig to find vncclient
+
+This is more robust than the custom find module
+---
+ CMakeLists.txt | 9 ++----
+ cmake/modules/FindLibVNCServer.cmake | 48 ----------------------------
+ vnc/CMakeLists.txt | 7 +---
+ vnc/qtonly/CMakeLists.txt | 12 ++-----
+ 4 files changed, 6 insertions(+), 70 deletions(-)
+ delete mode 100644 cmake/modules/FindLibVNCServer.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c1318839..d5b6dd25 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -72,13 +72,8 @@ set(CMAKE_CXX_STANDARD 20)
+ add_subdirectory(core)
+
+ if(WITH_VNC)
+- find_package(LibVNCServer)
+- set_package_properties(LibVNCServer PROPERTIES
+- DESCRIPTION "VNC server / client library"
+- URL "http://libvncserver.sourceforge.net/"
+- PURPOSE "Needed to build VNC client support in KRDC"
+- TYPE REQUIRED
+- )
++ find_package(PkgConfig REQUIRED)
++ pkg_check_modules(VNCCLIENT libvncclient REQUIRED IMPORTED_TARGET)
+
+ find_package(LibSSH)
+ set_package_properties(LibSSH PROPERTIES
+diff --git a/cmake/modules/FindLibVNCServer.cmake b/cmake/modules/FindLibVNCServer.cmake
+deleted file mode 100644
+index f6634b6e..00000000
+--- a/cmake/modules/FindLibVNCServer.cmake
++++ /dev/null
+@@ -1,48 +0,0 @@
+-# cmake macro to test LIBVNCSERVER LIB
+-
+-# SPDX-FileCopyrightText: 2006 Alessandro Praduroux <pradu@pradu.it>
+-# SPDX-FileCopyrightText: 2007 Urs Wolfer <uwolfer@kde.org>
+-#
+-# SPDX-License-Identifier: BSD-3-Clause
+-
+-IF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
+- # Already in cache, be silent
+- SET(LIBVNCSERVER_FIND_QUIETLY TRUE)
+-ENDIF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
+-
+-FIND_PATH(LIBVNCSERVER_INCLUDE_DIR rfb/rfb.h)
+-
+-FIND_LIBRARY(LIBVNCSERVER_LIBRARIES NAMES vncserver libvncserver)
+-
+-# libvncserver and libvncclient are in the same package, so it does
+-# not make sense to add a new cmake script for finding libvncclient.
+-# instead just find the libvncclient also in this file.
+-FIND_PATH(LIBVNCCLIENT_INCLUDE_DIR rfb/rfbclient.h)
+-FIND_LIBRARY(LIBVNCCLIENT_LIBRARIES NAMES vncclient libvncclient)
+-
+-IF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
+- SET(CMAKE_REQUIRED_INCLUDES "${LIBVNCSERVER_INCLUDE_DIR}" "${CMAKE_REQUIRED_INCLUDES}")
+- SET(_TEST_SOURCE_CODE "
+-#include <rfb/rfbclient.h>
+-
+-int main()
+-{
+- rfbClient* tmp;
+- tmp->GotXCutText;
+- return 0;
+-}
+- ")
+- CHECK_CXX_SOURCE_COMPILES("${_TEST_SOURCE_CODE}" LIBVNCSERVER_FOUND)
+-ENDIF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
+-
+-IF (LIBVNCSERVER_FOUND)
+- IF (NOT LIBVNCSERVER_FIND_QUIETLY)
+- MESSAGE(STATUS "Found LibVNCServer: ${LIBVNCSERVER_LIBRARIES}")
+- ENDIF (NOT LIBVNCSERVER_FIND_QUIETLY)
+-ELSE (LIBVNCSERVER_FOUND)
+- IF (LIBVNCSERVER_FIND_REQUIRED)
+- MESSAGE(FATAL_ERROR "Could NOT find acceptable version of LibVNCServer (version 0.9 or later required).")
+- ENDIF (LIBVNCSERVER_FIND_REQUIRED)
+-ENDIF (LIBVNCSERVER_FOUND)
+-
+-MARK_AS_ADVANCED(LIBVNCSERVER_INCLUDE_DIR LIBVNCSERVER_LIBRARIES)
+diff --git a/vnc/CMakeLists.txt b/vnc/CMakeLists.txt
+index 9bc06626..edd67f0d 100644
+--- a/vnc/CMakeLists.txt
++++ b/vnc/CMakeLists.txt
+@@ -19,17 +19,13 @@ ki18n_wrap_ui(krdc_vncplugin
+ vncpreferences.ui
+ )
+
+-target_include_directories(krdc_vncplugin PRIVATE
+- ${LIBVNCCLIENT_INCLUDE_DIR}
+-)
+-
+ target_link_libraries(krdc_vncplugin
+ Qt::Core
+ KF5::ConfigCore
+ KF5::CoreAddons
+ KF5::XmlGui
+ Qt::Gui
+- ${LIBVNCCLIENT_LIBRARIES}
++ PkgConfig::VNCCLIENT
+ krdccore
+ )
+
+@@ -58,7 +54,6 @@ target_link_libraries(kcm_krdc_vncplugin
+ KF5::CoreAddons
+ KF5::XmlGui
+ Qt::Gui
+- ${LIBVNCCLIENT_LIBRARIES}
+ krdccore
+ )
+
+--
+GitLab
+