commit:     a2b72ad2f7001809ac033e3ff56294072fee195a
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Aug  6 08:18:29 2022 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Oct 11 12:39:11 2022 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=a2b72ad2

kde-plasma/libksysguard: Fix build with USE -X

Bug: https://bugs.gentoo.org/813450
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/libksysguard-5.26.0-with_x11.patch       | 110 +++++++++++++++++++++
 .../libksysguard/libksysguard-5.26.49.9999.ebuild  |  10 +-
 kde-plasma/libksysguard/libksysguard-9999.ebuild   |  10 +-
 3 files changed, 126 insertions(+), 4 deletions(-)

diff --git a/kde-plasma/libksysguard/files/libksysguard-5.26.0-with_x11.patch 
b/kde-plasma/libksysguard/files/libksysguard-5.26.0-with_x11.patch
new file mode 100644
index 0000000000..d275044133
--- /dev/null
+++ b/kde-plasma/libksysguard/files/libksysguard-5.26.0-with_x11.patch
@@ -0,0 +1,110 @@
+From c389fbdaff34e35b0cd5de32b52e818714e13d40 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <[email protected]>
+Date: Mon, 1 Aug 2022 16:53:42 +0200
+Subject: [PATCH] Add CMake option to build WITH_X11
+
+We want to be able to build without X11 support even if some of the used
+libraries may not work w/o X11 themselves yet or need to be built with
+X11 support for other reverse dependencies.
+
+HAVE_X11 already exists and is set automagically so far, but using
+-DCMAKE_DISABLE_FIND_PACKAGE_X11 will break if any dependencies list X11
+as required in their cmake config.
+
+- Cleanup HAVE_* definitions a bit
+- Clarify X11 PURPOSE a bit
+
+Signed-off-by: Andreas Sturmlechner <[email protected]>
+---
+ CMakeLists.txt           | 44 ++++++++++++++++++++++------------------
+ processui/CMakeLists.txt |  4 ++--
+ 2 files changed, 26 insertions(+), 22 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 55938c4..5d4e085 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -65,25 +65,31 @@ ecm_setup_version(${PROJECT_VERSION}
+                   SOVERSION 9
+ )
+ 
+-find_package(X11)
+-set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries"
+-                        URL "https://www.x.org";
+-                        TYPE OPTIONAL
+-                        PURPOSE "Required for building the X11 based 
workspace"
+-                    )
+-if(X11_FOUND)
+-    if (QT_MAJOR_VERSION STREQUAL "5")
+-        find_package(Qt5X11Extras REQUIRED)
+-    elseif (QT_MAJOR_VERSION STREQUAL "6")
+-        find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} CONFIG 
REQUIRED Gui) # qtx11extras_p.h
+-    endif()
+-    set(HAVE_X11 1)
+-    find_library(X11_XRes_LIB XRes ${X11_LIB_SEARCH_PATH})
+-    find_path(X11_XRes_INCLUDE_PATH X11/extensions/XRes.h 
${X11_INC_SEARCH_PATH})
+-
+-    if(X11_XRes_LIB AND X11_XRes_INCLUDE_PATH)
+-        set(X11_XRes_FOUND TRUE)
++option(WITH_X11 "Build with X11 support." ON)
++if(WITH_X11)
++    find_package(X11)
++    set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries"
++                            URL "https://www.x.org";
++                            TYPE OPTIONAL
++                            PURPOSE "Required for building Process UI with 
X11 support"
++                        )
++    if(X11_FOUND)
++        if (QT_MAJOR_VERSION STREQUAL "5")
++            find_package(Qt5X11Extras REQUIRED)
++        elseif (QT_MAJOR_VERSION STREQUAL "6")
++            find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} CONFIG 
REQUIRED Gui) # qtx11extras_p.h
++        endif()
++        set(HAVE_X11 1)
++        find_library(X11_XRes_LIB XRes ${X11_LIB_SEARCH_PATH})
++        find_path(X11_XRes_INCLUDE_PATH X11/extensions/XRes.h 
${X11_INC_SEARCH_PATH})
++
++        if(X11_XRes_LIB AND X11_XRes_INCLUDE_PATH)
++            set(HAVE_XRES 1)
++        endif()
+     endif()
++else()
++    set(HAVE_X11 0)
++    set(HAVE_XRES 0)
+ endif()
+ 
+ set(WEBENGINE_SCRIPTING_ENABLED FALSE)
+@@ -122,8 +128,6 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+         PURPOSE "Used for reading hardware sensors")
+ endif()
+ 
+-set(HAVE_X11 ${X11_FOUND})
+-set(HAVE_XRES ${X11_XRes_FOUND})
+ configure_file(config-ksysguard.h.cmake 
${CMAKE_CURRENT_BINARY_DIR}/config-ksysguard.h )
+ 
+ option(BUILD_DESIGNERPLUGIN "Build plugin for Qt Designer" ON)
+diff --git a/processui/CMakeLists.txt b/processui/CMakeLists.txt
+index 2932733..c9bd800 100644
+--- a/processui/CMakeLists.txt
++++ b/processui/CMakeLists.txt
+@@ -30,7 +30,7 @@ ki18n_wrap_ui( processui_LIB_SRCS
+ add_library(processui ${processui_LIB_SRCS})
+ add_library(KSysGuard::ProcessUi ALIAS processui)
+ 
+-if(X11_XRes_FOUND)
++if(HAVE_XRES)
+     target_link_libraries(processui PRIVATE ${X11_XRes_LIB} ${X11_LIBRARIES})
+     include_directories(${X11_XRes_INCLUDE_PATH})
+ endif()
+@@ -59,7 +59,7 @@ target_include_directories(processui
+         "$<BUILD_INTERFACE:${libksysguard_SOURCE_DIR}>"
+         "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/ksysguard>"
+ )
+-if(X11_FOUND)
++if(HAVE_X11)
+     if (QT_MAJOR_VERSION STREQUAL "5")
+        target_link_libraries(processui PRIVATE Qt::X11Extras 
KF5::WindowSystem)
+     else()
+-- 
+2.35.1
+

diff --git a/kde-plasma/libksysguard/libksysguard-5.26.49.9999.ebuild 
b/kde-plasma/libksysguard/libksysguard-5.26.49.9999.ebuild
index 6354bfcba0..50ffca5ebc 100644
--- a/kde-plasma/libksysguard/libksysguard-5.26.49.9999.ebuild
+++ b/kde-plasma/libksysguard/libksysguard-5.26.49.9999.ebuild
@@ -58,13 +58,19 @@ RDEPEND="${COMMON_DEPEND}
        !<kde-plasma/plasma-workspace-5.18.80:5
 "
 
-PATCHES=( "${FILESDIR}/${PN}-5.22.80-no-detailed-mem-message.patch" )
+PATCHES=(
+       # downstream patch
+       "${FILESDIR}/${PN}-5.22.80-no-detailed-mem-message.patch"
+       # pending upstream:
+       # https://invent.kde.org/plasma/libksysguard/-/merge_requests/238
+       "${FILESDIR}/${PN}-5.26.0-with_x11.patch"
+)
 
 src_configure() {
        local mycmakeargs=(
                $(cmake_use_find_package webengine Qt5WebChannel)
                $(cmake_use_find_package webengine Qt5WebEngineWidgets)
-               $(cmake_use_find_package X X11)
+               -DWITH_X11=$(usex X)
        )
 
        ecm_src_configure

diff --git a/kde-plasma/libksysguard/libksysguard-9999.ebuild 
b/kde-plasma/libksysguard/libksysguard-9999.ebuild
index 39e6ddd19f..aa76374971 100644
--- a/kde-plasma/libksysguard/libksysguard-9999.ebuild
+++ b/kde-plasma/libksysguard/libksysguard-9999.ebuild
@@ -58,13 +58,19 @@ RDEPEND="${COMMON_DEPEND}
        !<kde-plasma/plasma-workspace-5.18.80:5
 "
 
-PATCHES=( "${FILESDIR}/${PN}-5.22.80-no-detailed-mem-message.patch" )
+PATCHES=(
+       # downstream patch
+       "${FILESDIR}/${PN}-5.22.80-no-detailed-mem-message.patch"
+       # pending upstream:
+       # https://invent.kde.org/plasma/libksysguard/-/merge_requests/238
+       "${FILESDIR}/${PN}-5.26.0-with_x11.patch"
+)
 
 src_configure() {
        local mycmakeargs=(
                $(cmake_use_find_package webengine Qt5WebChannel)
                $(cmake_use_find_package webengine Qt5WebEngineWidgets)
-               $(cmake_use_find_package X X11)
+               -DWITH_X11=$(usex X)
        )
 
        ecm_src_configure

Reply via email to