commit:     812c4dc366899fdd36ffb61d4b6b0137186a256b
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 23 22:39:01 2023 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Thu Feb 23 22:42:38 2023 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=812c4dc3

kde-plasma/plasma-nm: Fix IUSE openconnect, add new dependency

See also:
https://invent.kde.org/plasma/plasma-nm/-/merge_requests/222

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

 .../plasma-nm-5.27.80-openconnect-optional.patch   | 77 ++++++++++++++++++++++
 kde-plasma/plasma-nm/plasma-nm-9999.ebuild         | 14 ++--
 2 files changed, 85 insertions(+), 6 deletions(-)

diff --git 
a/kde-plasma/plasma-nm/files/plasma-nm-5.27.80-openconnect-optional.patch 
b/kde-plasma/plasma-nm/files/plasma-nm-5.27.80-openconnect-optional.patch
new file mode 100644
index 0000000000..fc2b5a9c72
--- /dev/null
+++ b/kde-plasma/plasma-nm/files/plasma-nm-5.27.80-openconnect-optional.patch
@@ -0,0 +1,77 @@
+From 50ace5c0641e0f2e7b8cdaf8f57afda147df7f96 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <[email protected]>
+Date: Thu, 23 Feb 2023 22:00:41 +0100
+Subject: [PATCH] Introduce BUILD_OPENCONNECT option (default ON)
+
+QtWebEngine is a huge dependency, considerably increasing the entry barrier
+to build and contribute to plasma-nm. It is easily possible to make it
+optional in this case so it should be done.
+
+Signed-off-by: Andreas Sturmlechner <[email protected]>
+---
+ CMakeLists.txt     | 19 +++++++++++++++----
+ vpn/CMakeLists.txt |  2 +-
+ 2 files changed, 16 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3acdb4b7..f03f6e3a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -17,6 +17,8 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+ find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
+ 
++option(BUILD_OPENCONNECT "Build OpenConnect VPN plugin" ON)
++
+ include(KDEInstallDirs)
+ include(KDECMakeSettings)
+ include(KDECompilerSettings NO_POLICY_SCOPE)
+@@ -34,11 +36,22 @@ find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} 
CONFIG REQUIRED COMPONENTS
+     Network
+     Quick
+     QuickWidgets
+-    WebEngineCore
+-    WebEngineWidgets
+     Widgets
+ )
+ 
++find_package(PkgConfig REQUIRED)
++
++if (BUILD_OPENCONNECT)
++    pkg_check_modules(OPENCONNECT IMPORTED_TARGET openconnect>=3.99)
++    if (NOT TARGET PkgConfig::OPENCONNECT)
++        set(BUILD_OPENCONNECT OFF)
++    endif()
++endif()
++
++if (BUILD_OPENCONNECT)
++    find_package(Qt${QT_MAJOR_VERSION}WebEngineWidgets ${QT_MIN_VERSION} 
CONFIG REQUIRED)
++endif()
++
+ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED
+     ConfigWidgets
+     Completion
+@@ -80,8 +93,6 @@ set_package_properties(KF5Prison PROPERTIES DESCRIPTION 
"Prison library"
+                        PURPOSE "Needed to create mobile barcodes for WiFi 
networks"
+                       )
+ 
+-find_package(PkgConfig REQUIRED)
+-pkg_check_modules(OPENCONNECT IMPORTED_TARGET openconnect>=3.99)
+ pkg_check_modules(NETWORKMANAGER IMPORTED_TARGET libnm>1.4.0 REQUIRED)
+ pkg_check_modules(MOBILEBROADBANDPROVIDERINFO mobile-broadband-provider-info)
+ pkg_get_variable(BROADBANDPROVIDER_DATABASE mobile-broadband-provider-info 
database)
+diff --git a/vpn/CMakeLists.txt b/vpn/CMakeLists.txt
+index 2bf0086a..25baa308 100644
+--- a/vpn/CMakeLists.txt
++++ b/vpn/CMakeLists.txt
+@@ -9,6 +9,6 @@ add_subdirectory(sstp)
+ add_subdirectory(strongswan)
+ add_subdirectory(vpnc)
+ 
+-if(TARGET PkgConfig::OPENCONNECT)
++if (BUILD_OPENCONNECT)
+     add_subdirectory(openconnect)
+ endif()
+-- 
+2.39.2
+

diff --git a/kde-plasma/plasma-nm/plasma-nm-9999.ebuild 
b/kde-plasma/plasma-nm/plasma-nm-9999.ebuild
index a1404f67a5..5bbcfbb12e 100644
--- a/kde-plasma/plasma-nm/plasma-nm-9999.ebuild
+++ b/kde-plasma/plasma-nm/plasma-nm-9999.ebuild
@@ -45,6 +45,7 @@ DEPEND="
        >=dev-qt/qtxml-${QTMIN}:5
        net-misc/mobile-broadband-provider-info
        openconnect? (
+               >=dev-qt/qtwebengine-${QTMIN}:5[widgets]
                >=dev-qt/qtxml-${QTMIN}:5
                net-vpn/networkmanager-openconnect
                net-vpn/openconnect:=
@@ -63,13 +64,14 @@ BDEPEND="
        virtual/pkgconfig
 "
 
-src_prepare() {
-       ecm_src_prepare
+PATCHES=( "${FILESDIR}/${PN}-5.27.80-openconnect-optional.patch" )
 
-       # TODO: try to get a build switch upstreamed
-       if ! use openconnect; then
-               sed -e "s/^pkg_check_modules.*openconnect/#&/" -i 
CMakeLists.txt || die
-       fi
+src_configure() {
+       local mycmakeargs=(
+               -DBUILD_OPENCONNECT=$(usex openconnect)
+       )
+
+       ecm_src_configure
 }
 
 pkg_postinst() {

Reply via email to