Blob Blame History Raw
#
# spec file for package plasma-nm5
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%bcond_without released
%define mm_support 1
Name:           plasma-nm5
Version:        5.27.2
Release:        0
Summary:        Plasma applet written in QML for managing network connections
License:        (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
Group:          System/GUI/KDE
URL:            http://www.kde.org
Source:         https://download.kde.org/stable/plasma/%{version}/plasma-nm-%{version}.tar.xz
%if %{with released}
Source1:        https://download.kde.org/stable/plasma/%{version}/plasma-nm-%{version}.tar.xz.sig
Source2:        plasma.keyring
%endif
BuildRequires:  NetworkManager-devel >= 0.9.8.4
BuildRequires:  extra-cmake-modules >= 1.3.0
BuildRequires:  fdupes
BuildRequires:  kf5-filesystem
BuildRequires:  mobile-broadband-provider-info
BuildRequires:  update-desktop-files
BuildRequires:  cmake(KF5Completion) >= 5.98.0
BuildRequires:  cmake(KF5ConfigWidgets)
BuildRequires:  cmake(KF5CoreAddons)
BuildRequires:  cmake(KF5DBusAddons)
BuildRequires:  cmake(KF5Declarative)
BuildRequires:  cmake(KF5I18n)
BuildRequires:  cmake(KF5IconThemes)
BuildRequires:  cmake(KF5Init)
BuildRequires:  cmake(KF5ItemViews)
BuildRequires:  cmake(KF5KCMUtils)
BuildRequires:  cmake(KF5KDELibs4Support)
BuildRequires:  cmake(KF5KIO)
BuildRequires:  cmake(KF5NetworkManagerQt)
BuildRequires:  cmake(KF5Notifications)
BuildRequires:  cmake(KF5Plasma)
BuildRequires:  cmake(KF5Service)
BuildRequires:  cmake(KF5Solid)
BuildRequires:  cmake(KF5Wallet)
BuildRequires:  cmake(KF5WidgetsAddons)
BuildRequires:  cmake(KF5WindowSystem)
BuildRequires:  cmake(KF5XmlGui)
BuildRequires:  cmake(Qca-qt5) >= 2.1.0
BuildRequires:  cmake(Qt5Core) >= 5.15.0
BuildRequires:  cmake(Qt5DBus)
BuildRequires:  cmake(Qt5Network)
BuildRequires:  cmake(Qt5Quick)
BuildRequires:  cmake(Qt5UiTools)
BuildRequires:  cmake(Qt5Widgets)
BuildRequires:  pkgconfig(openconnect) >= 5.2
Requires:       NetworkManager
Requires:       kded
Requires:       kirigami2
Requires:       kwalletd5
Requires:       prison-qt5-imports
Recommends:     mobile-broadband-provider-info
Provides:       NetworkManager-client
Provides:       plasma-nm-kf5 = %{version}
Obsoletes:      plasma-nm-kf5 < %{version}
# Merged into the core in 5.15.80
Provides:       %{name}-wireguard = %{version}
Obsoletes:      %{name}-wireguard < %{version}
Provides:       plasma-nm = %{version}
Obsoletes:      plasma-nm < %{version}
%if 0%{?mm_support}
BuildRequires:  cmake(KF5ModemManagerQt)
BuildRequires:  pkgconfig(ModemManager) >= 1.0.0
%endif
Obsoletes:      NetworkManager-kde4-devel
Obsoletes:      NetworkManager-kde4-libs
Obsoletes:      NetworkManager-kde4-libs-lang
Obsoletes:      NetworkManager-novellvpn-kde4
Obsoletes:      plasmoid-networkmanagement
Supplements:    packageand(plasma5-desktop:NetworkManager)

%description
Plasma applet for controlling network connections on systems
that use the NetworkManager service.

%package openvpn
Summary:        OpenVPN support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}
Requires:       NetworkManager-openvpn
Supplements:    packageand(%{name}:NetworkManager-openvpn)
Provides:       NetworkManager-openvpn-frontend
Provides:       plasma-nm-openvpn = %{version}
Obsoletes:      NetworkManager-openvpn-kde4
Obsoletes:      plasma-nm-openvpn < %{version}

%description openvpn
OpenVPN plugin for plasma-nm components.

%package vpnc
Summary:        vpnc support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}
Requires:       NetworkManager-vpnc
Supplements:    packageand(%{name}:NetworkManager-vpnc)
Provides:       NetworkManager-vpnc-frontend
Provides:       plasma-nm-vpnc = %{version}
Obsoletes:      NetworkManager-vpnc-kde4
Obsoletes:      plasma-nm-vpnc < %{version}

%description vpnc
vpnc plugin for plasma-nm components.

%package openconnect
Summary:        OpenConnect support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}
Requires:       NetworkManager-openconnect
Requires:       openconnect
Supplements:    packageand(%{name}:NetworkManager-openconnect)
Provides:       NetworkManager-openconnect-frontend
Provides:       plasma-nm-openconnect = %{version}
Obsoletes:      NetworkManager-openconnect-kde4
Obsoletes:      plasma-nm-openconnect < %{version}

%description openconnect
OpenConnect plugin for plasma-nm components.

%package libreswan
Summary:        Libreswan support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}
Requires:       NetworkManager-libreswan
Supplements:    packageand(%{name}:NetworkManager-libreswan)
Provides:       NetworkManager-libreswan-frontend
# Old names
Provides:       plasma-nm-openswan = %{version}
Obsoletes:      plasma-nm-openswan < %{version}
Provides:       %{name}-openswan = %{version}
Obsoletes:      %{name}-openswan < %{version}

%description libreswan
Libreswan plugin for plasma-nm components.

%package strongswan
Summary:        strongSwan support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}
Requires:       NetworkManager-strongswan
Supplements:    packageand(%{name}:NetworkManager-strongswan)
Provides:       NetworkManager-strongswan-frontend
Provides:       plasma-nm-strongswan = %{version}
Obsoletes:      plasma-nm-strongswan < %{version}

%description strongswan
strongSwan plugin for plasma-nm components.

%package l2tp
Summary:        L2TP support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}
Requires:       NetworkManager-l2tp
Supplements:    packageand(%{name}:NetworkManager-l2tp)
Provides:       NetworkManager-l2tp-frontend
Provides:       plasma-nm-l2tp = %{version}
Obsoletes:      plasma-nm-l2tp < %{version}

%description l2tp
Layer Two Tunneling Protocol (L2TP) plugin for plasma-nm components.

%package pptp
Summary:        PPTP support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}
Requires:       NetworkManager-pptp
Supplements:    packageand(%{name}:NetworkManager-pptp)
Provides:       NetworkManager-pptp-frontend
Provides:       plasma-nm-pptp = %{version}
Obsoletes:      NetworkManager-pptp-kde4
Obsoletes:      plasma-nm-pptp < %{version}

%description pptp
Point-To-Point Tunneling Protocol (PPTP) plugin for plasma-nm components.

%package ssh
Summary:        SSH support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}
# NetworkManager-ssh doesn't exist in Factory
#Requires:       NetworkManager-ssh
Supplements:    packageand(%{name}:NetworkManager-ssh)
Provides:       NetworkManager-ssh-frontend

%description ssh
Secure Shell (SSH) plugin for plasma-nm components.

%package sstp
Summary:        SSTP support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}
# NetworkManager-sstp doesn't exist in Factory
#Requires:       NetworkManager-sstp
Supplements:    packageand(%{name}:NetworkManager-sstp)
Provides:       NetworkManager-sstp-frontend

%description sstp
Secure Sockets Tunneling Protocol (SSTP) plugin for plasma-nm components.

%package iodine
Summary:        VPN support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}
Requires:       NetworkManager-iodine
Supplements:    packageand(%{name}:NetworkManager-iodine)
Provides:       NetworkManager-iodine-frontend

%description iodine
Iodine (VPN through DNS tunnel) plugin for plasma-nm components.

%package fortisslvpn
Summary:        FortiGate SSL VPN support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}
# Not available in oS:F stagings, leading to installcheck failure
# Requires:       NetworkManager-fortisslvpn
Supplements:    packageand(%{name}:NetworkManager-fortisslvpn)
Provides:       NetworkManager-fortisslvpn-frontend

%description fortisslvpn
FortiGate SSL VPN plugin for plasma-nm components.

%package mobile
Summary:        Mobile settings support for %{name}
Group:          System/GUI/KDE
Requires:       %{name} = %{version}

%description mobile
KConfig Modules and applets for
wireless connectivity on Plasma Mobile.

%lang_package

%prep
%autosetup -p1 -n plasma-nm-%{version}

%build
%cmake_kf5 -d build -- -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir} -DBUILD_MOBILE=ON
%cmake_build

%install
%kf5_makeinstall -C build

%kf5_find_lang

%fdupes %{buildroot}

%files
%license LICENSES/*
%{_kf5_applicationsdir}/kcm_networkmanagement.desktop
%{_kf5_libdir}/libplasmanm_editor.so
%{_kf5_libdir}/libplasmanm_internal.so
%dir %{_kf5_plugindir}/kf5
%dir %{_kf5_plugindir}/kf5/kded
%{_kf5_plugindir}/kf5/kded/networkmanagement.so
%dir %{_kf5_plugindir}/plasma/network
%dir %{_kf5_plugindir}/plasma/network/vpn
%dir %{_kf5_plugindir}/plasma/kcms
%dir %{_kf5_plugindir}/plasma/kcms/systemsettings_qwidgets
%{_kf5_qmldir}/
%{_kf5_notifydir}/
%{_kf5_sharedir}/plasma/
%dir %{_kf5_appstreamdir}
%{_kf5_appstreamdir}/org.kde.plasma.networkmanagement.appdata.xml
%{_kf5_plugindir}/plasma/kcms/systemsettings_qwidgets/kcm_networkmanagement.so
%{_kf5_debugdir}/plasma-nm.categories
%{_datadir}/kcm_networkmanagement/

%files openvpn
%license LICENSES/*
%{_kf5_plugindir}/plasma/network/vpn/*_openvpnui.so

%files vpnc
%license LICENSES/*
%{_kf5_plugindir}/plasma/network/vpn/*_vpncui.so

%files openconnect
%license LICENSES/*
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_openconnect_anyconnect.so
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_openconnect_globalprotectui.so
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_openconnect_juniperui.so
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_openconnect_pulseui.so
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_openconnect_arrayui.so
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_openconnect_f5ui.so
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_openconnect_fortinetui.so

%files libreswan
%license LICENSES/*
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_libreswanui.so

%files strongswan
%license LICENSES/*
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_strongswanui.so

%files l2tp
%license LICENSES/*
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_l2tpui.so

%files pptp
%license LICENSES/*
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_pptpui.so

%files ssh
%license LICENSES/*
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_sshui.so

%files sstp
%license LICENSES/*
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_sstpui.so

%files iodine
%license LICENSES/*
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_iodineui.so

%files fortisslvpn
%license LICENSES/*
%{_kf5_plugindir}/plasma/network/vpn/plasmanetworkmanagement_fortisslvpnui.so

%files mobile
%license LICENSES/*
%dir %{_kf5_plugindir}/kcms/
%{_kf5_plugindir}/kcms/kcm_mobile_hotspot.so
%{_kf5_plugindir}/kcms/kcm_mobile_wifi.so
%dir %{_kf5_sharedir}/kpackage/
%dir %{_kf5_sharedir}/kpackage/kcms/
%{_kf5_sharedir}/kpackage/kcms/kcm_mobile_hotspot/
%{_kf5_sharedir}/kpackage/kcms/kcm_mobile_wifi/

%files lang -f %{name}.lang

%changelog