$ git diff --patch-with-stat --summary 5fe9fe101a835a0cc9cedf7ec14586432ee65368..1a1333a212ca0c7cf78aa6426ab96b0ab1ac1215
.abf.yml | 2 +-
nx-firewall-desktopfile.patch | 15 +++
nx-firewall-werror.patch | 8 +-
nx-firewall.spec | 37 +++++-
...-2d5dc7c6fb6ea4fce7844d7a18d51308456c9ac9.patch | 140 +++++++++++++++++++++
5 files changed, 192 insertions(+), 10 deletions(-)
create mode 100644 nx-firewall-desktopfile.patch
create mode 100644 revert-2d5dc7c6fb6ea4fce7844d7a18d51308456c9ac9.patch
diff --git a/.abf.yml b/.abf.yml
index c81f998..5b7322d 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,2 @@
sources:
- nx-firewall-master-2019.11.18.zip: 716db0790b6b801912b86d14e916f16d302720a5
+ nx-firewall-master-2020.05.18.zip: 4774fe2c05dfebf4347902a99924a00cc385f86f
diff --git a/nx-firewall-desktopfile.patch b/nx-firewall-desktopfile.patch
new file mode 100644
index 0000000..37900ee
--- /dev/null
+++ b/nx-firewall-desktopfile.patch
@@ -0,0 +1,15 @@
+diff -up nx-firewall-master/kcm/org_nxos_firewall.desktop.omv~ nx-firewall-master/kcm/org_nxos_firewall.desktop
+--- nx-firewall-master/kcm/org_nxos_firewall.desktop.omv~ 2020-01-26 19:41:54.615422989 +0100
++++ nx-firewall-master/kcm/org_nxos_firewall.desktop 2020-01-26 19:45:39.965412056 +0100
+@@ -11,7 +11,7 @@ X-KDE-Weight=80
+ X-DocPath=kcontrol5/org.nxos.firewall/index.html
+
+
+-Name=NX Firewall
+-Comment=NX Firewall - Secure your workstation!
++Name=Firewall
++Comment=Set up a firewall and monitor network connections
+ X-KDE-Keywords=firewall, network, security
+-Categories=Qt;KDE;X-KDE-settings-looknfeel;
++Categories=Qt;KDE;Settings;
+diff -up nx-firewall-master/kcm/package/metadata.desktop.omv~ nx-firewall-master/kcm/package/metadata.desktop
diff --git a/nx-firewall-werror.patch b/nx-firewall-werror.patch
index af1aa74..5af85a0 100644
--- a/nx-firewall-werror.patch
+++ b/nx-firewall-werror.patch
@@ -1,13 +1,13 @@
-Index: CMakeLists.txt
+Index: nxf/CMakeLists.txt
===================================================================
---- CMakeLists.txt
-+++ CMakeLists.txt 2019-12-08 02:05:35.108570271 +0100
+--- nxf/CMakeLists.txt
++++ nxf/CMakeLists.txt 2019-12-08 02:05:35.108570271 +0100
@@ -44,7 +44,7 @@
#-----------------------------------------------------------------------------
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -std=c++0x")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3 -O0")
-set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Werror -O2")
-+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
++#set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
#-----------------------------------------------------------------------------
# SOURCES
diff --git a/nx-firewall.spec b/nx-firewall.spec
index 6a4cd5d..d2dc8c7 100644
--- a/nx-firewall.spec
+++ b/nx-firewall.spec
@@ -1,8 +1,8 @@
-%define snap 2019.11.18
+%define snap 2020.05.18
Name: nx-firewall
Version: 0.4.1
-Release: 3.git.%{snap}.2
+Release: 3.git.%{snap}.6
Summary: Plasma 5 Firewall KCM
Group: System/Base
License: GPLv3+
@@ -10,6 +10,10 @@ URL: https://github.com/nx-desktop/nx-firewall
#Source: https://github.com/nx-desktop/nx-firewall/archive/%{version}/%{name}-%{version}.tar.gz
Source0: %{name}-master-%{snap}.zip
Patch0: nx-firewall-werror.patch
+Patch1: nx-firewall-desktopfile.patch
+# Revert https://github.com/nx-desktop/nx-firewall/commit/2d5dc7c6fb6ea4fce7844d7a18d51308456c9ac9
+# since it breaks the UI
+Patch2: revert-2d5dc7c6fb6ea4fce7844d7a18d51308456c9ac9.patch
BuildRequires: cmake
BuildRequires: ninja
BuildRequires: cmake(ECM)
@@ -20,17 +24,41 @@ BuildRequires: cmake(KF5Plasma)
BuildRequires: cmake(KF5PlasmaQuick)
BuildRequires: cmake(KF5Declarative)
BuildRequires: cmake(KF5KDELibs4Support)
+BuildRequires: cmake(KF5Auth)
+BuildRequires: cmake(KF5Config)
+BuildRequires: cmake(Qt5QmlModels)
+BuildRequires: cmake(KF5Archive)
+BuildRequires: cmake(KF5Crash)
+BuildRequires: cmake(KF5DocTools)
+BuildRequires: cmake(KF5Emoticons)
+BuildRequires: cmake(KF5GuiAddons)
+BuildRequires: cmake(KF5ItemModels)
+BuildRequires: cmake(KF5Bookmarks)
+BuildRequires: cmake(KF5JobWidgets)
+BuildRequires: cmake(KF5Solid)
+BuildRequires: cmake(KF5Codecs)
+BuildRequires: cmake(KF5Sonnet)
+BuildRequires: cmake(KF5TextWidgets)
+BuildRequires: cmake(KF5UnitConversion)
+BuildRequires: cmake(KF5Service)
+BuildRequires: cmake(KF5Package)
BuildRequires: pkgconfig(python)
+BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Qml)
BuildRequires: pkgconfig(Qt5X11Extras)
+# So cmake can find the correct path for netstat, ufw and iptables
+BuildRequires: net-tools
+BuildRequires: ufw
+BuildRequires: iptables
+# For netstat
+Requires: net-tools
Requires: ufw
%description
nx-firewall is a small and easy to use KCM Firewall for Plasma 5.
%prep
-%setup -qn %{name}-master
-%autopatch -p0
+%autosetup -p1 -n %{name}-master
%build
export CFLAGS="%{optflags} -Wno-error=deprecated-declarations"
@@ -43,7 +71,6 @@ export CFLAGS="%{optflags} -Wno-error=inconsistent-missing-override"
%ninja_install -C build
%files
-%{_libdir}/libexec/__pycache__/*.pyc
%{_libdir}/libexec/kauth/nomad_ufw_plugin_helper
%{_libdir}/libexec/kauth/nxos_netstat_helper
%{_libdir}/libexec/nomad_ufw_plugin_helper.py
diff --git a/revert-2d5dc7c6fb6ea4fce7844d7a18d51308456c9ac9.patch b/revert-2d5dc7c6fb6ea4fce7844d7a18d51308456c9ac9.patch
new file mode 100644
index 0000000..0fc3b2f
--- /dev/null
+++ b/revert-2d5dc7c6fb6ea4fce7844d7a18d51308456c9ac9.patch
@@ -0,0 +1,140 @@
+diff -up nx-firewall-master/kcm/package/contents/ui/main.qml.3~ nx-firewall-master/kcm/package/contents/ui/main.qml
+--- nx-firewall-master/kcm/package/contents/ui/main.qml.3~ 2020-05-12 06:02:39.000000000 +0200
++++ nx-firewall-master/kcm/package/contents/ui/main.qml 2021-01-07 20:22:25.882986564 +0100
+@@ -21,21 +21,23 @@
+
+ import QtQuick 2.6
+ import QtQuick.Layouts 1.3
+-import QtQuick.Controls 2.12 as QQC2
++import QtQuick.Controls 1.4
++import QtQuick.Controls.Styles 1.4
++
++import org.kde.plasma.core 2.0 as PlasmaCore
++import org.kde.plasma.components 2.0 as PlasmaComponents
++import org.kde.plasma.extras 2.0 as PlasmaExtras
+
+ import org.kde.kcm 1.0
+ import org.nomad.ufw 1.0
+ import org.nomad.netstat 1.0
+
+-import org.kde.kirigami 2.4 as Kirigami
+-import org.kde.kcm 1.1 as KCM
+-
+-KCM.SimpleKCM {
+- id: root
++Item {
++ id: mainWindow
+
+- implicitHeight: Kirigami.Units.gridUnit * 22
+-
+- KCM.ConfigModule.quickHelp: i18n("This module lets you configure firewall.")
++ implicitWidth: units.gridUnit * 44
++ implicitHeight: units.gridUnit * 50
++ clip: true
+
+ UfwClient {
+ id: ufwClient
+@@ -51,49 +53,65 @@ KCM.SimpleKCM {
+ anchors.fill: parent
+ }
+
+- ColumnLayout {
+- QQC2.TabBar {
+- id: tabButtons
+-
+- QQC2.TabButton {
+- text: i18n("Rules")
+- }
+- QQC2.TabButton {
+- text: i18n("Connections")
+- }
+- QQC2.TabButton {
+- text: i18n("Logs")
+- }
+- }
+-
+- StackLayout {
+- id: tabGroup
+- currentIndex: tabButtons.currentIndex
+-
+- Layout.fillWidth: true
+- Layout.fillHeight: true
+-
+- RulesView {
+- Layout.fillWidth: true
+- Layout.fillHeight: true
+- }
+-
+- ConnectionsView {
+- Layout.fillWidth: true
+- Layout.fillHeight: true
+- }
+-
+- LogsView {
+- Layout.fillWidth: true
+- Layout.fillHeight: true
+- }
++ PlasmaCore.FrameSvgItem {
++ anchors.fill: parent
++ imagePath: "dialogs/background"
++ enabledBorders: PlasmaCore.FrameSvg.NoBorder
++ }
++
++ PlasmaComponents.TabBar {
++ id: tabButtons
++ anchors.top: parent.top
++ anchors.left: parent.left
++
++ PlasmaComponents.TabButton {
++ text: i18n("Rules")
++ tab: rulesTab
++ }
++ PlasmaComponents.TabButton {
++ text: i18n("Connections")
++ tab: connectionsTab
++ }
++ PlasmaComponents.TabButton {
++ id: logsTabButton
++ text: i18n("Logs")
++ tab: logsTab
+ }
++ }
+
+- QQC2.Label {
+- text: ufwClient.status
++ PlasmaComponents.TabGroup {
++ id: tabGroup
++ anchors.top: tabButtons.bottom
++ anchors.left: parent.left
++ anchors.right: parent.right
++ anchors.bottom: parent.bottom
++ anchors.margins: 12
++
++ PlasmaExtras.ConditionalLoader {
++ id: rulesTab
++ when: tabGroup.currentTab == rulesTab
++ source: Qt.createComponent("RulesView.qml")
++ }
++ PlasmaExtras.ConditionalLoader {
++ id: connectionsTab
++ when: tabGroup.currentTab == connectionsTab
++ source: Qt.createComponent("ConnectionsView.qml")
++ }
++ PlasmaExtras.ConditionalLoader {
++ id: logsTab
++ when: tabGroup.currentTab == logsTab
++ source: Qt.createComponent("LogsView.qml")
+ }
+ }
+
++ PlasmaComponents.Label {
++ anchors.bottom: parent.bottom
++ anchors.left: parent.left
++ anchors.right: parent.right
++
++ text: ufwClient.status
++ }
++
+ function createRuleFromConnection(protocol, localAddress, foreignAddres, status) {
+ // Transform to the ufw notation
+ localAddress = localAddress.replace("*", "")