Hello community, here is the log from the commit of package plasma-nm5 for openSUSE:Factory checked in at 2020-11-10 13:38:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/plasma-nm5 (Old) and /work/SRC/openSUSE:Factory/.plasma-nm5.new.11331 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma-nm5" Tue Nov 10 13:38:29 2020 rev:118 rq:846135 version:5.20.2 Changes: -------- --- /work/SRC/openSUSE:Factory/plasma-nm5/plasma-nm5.changes 2020-10-30 11:47:49.309715516 +0100 +++ /work/SRC/openSUSE:Factory/.plasma-nm5.new.11331/plasma-nm5.changes 2020-11-10 13:39:13.740500253 +0100 @@ -1,0 +2,6 @@ +Wed Nov 4 21:10:58 UTC 2020 - Fabian Vogt <fab...@ritter-vogt.de> + +- Add patch to support the compress parameter in .ovpn files (boo#1178258): + * 0001-Add-support-for-the-OpenVPN-parameter-compress.patch + +------------------------------------------------------------------- New: ---- 0001-Add-support-for-the-OpenVPN-parameter-compress.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ plasma-nm5.spec ++++++ --- /var/tmp/diff_new_pack.T0Eccf/_old 2020-11-10 13:39:14.476498791 +0100 +++ /var/tmp/diff_new_pack.T0Eccf/_new 2020-11-10 13:39:14.480498783 +0100 @@ -30,6 +30,8 @@ Source1: https://download.kde.org/stable/plasma/%{version}/plasma-nm-%{version}.tar.xz.sig Source2: plasma.keyring %endif +# PATCH-FIX-UPSTREAM +Patch1: 0001-Add-support-for-the-OpenVPN-parameter-compress.patch BuildRequires: NetworkManager-devel >= 0.9.8.4 BuildRequires: extra-cmake-modules >= 1.3.0 BuildRequires: fdupes ++++++ 0001-Add-support-for-the-OpenVPN-parameter-compress.patch ++++++ >From 089234a7e1941f3b5522add11e2f98d029859dcd Mon Sep 17 00:00:00 2001 From: Alfred Toth <k...@inctoo.de> Date: Mon, 2 Nov 2020 09:43:04 +0000 Subject: [PATCH] Add support for the OpenVPN parameter compress This adds support for the OpenVPN parameter compress. With this, it is possible to use compression algorithms like lz4 or lz4-v2. BUG: 387715 (cherry picked from commit 0fbf2b364c9104c833a495da09813fdf1ff23352) --- vpn/openvpn/nm-openvpn-service.h | 1 + vpn/openvpn/openvpn.cpp | 41 +++++++++++++++++++++-- vpn/openvpn/openvpnadvanced.ui | 33 +++++++++++++----- vpn/openvpn/openvpnadvancedwidget.cpp | 48 +++++++++++++++++++++------ 4 files changed, 102 insertions(+), 21 deletions(-) diff --git a/vpn/openvpn/nm-openvpn-service.h b/vpn/openvpn/nm-openvpn-service.h index b63ab5c1..e74a72d3 100644 --- a/vpn/openvpn/nm-openvpn-service.h +++ b/vpn/openvpn/nm-openvpn-service.h @@ -32,6 +32,7 @@ #define NM_OPENVPN_KEY_CERT "cert" #define NM_OPENVPN_KEY_CIPHER "cipher" #define NM_OPENVPN_KEY_KEYSIZE "keysize" +#define NM_OPENVPN_KEY_COMPRESS "compress" #define NM_OPENVPN_KEY_COMP_LZO "comp-lzo" #define NM_OPENVPN_KEY_CONNECTION_TYPE "connection-type" #define NM_OPENVPN_KEY_FLOAT "float" diff --git a/vpn/openvpn/openvpn.cpp b/vpn/openvpn/openvpn.cpp index 799d390a..10e265f1 100644 --- a/vpn/openvpn/openvpn.cpp +++ b/vpn/openvpn/openvpn.cpp @@ -50,6 +50,7 @@ K_PLUGIN_CLASS_WITH_JSON(OpenVpnUiPlugin, "plasmanetworkmanagement_openvpnui.jso #define CERT_TAG "cert" #define CIPHER_TAG "cipher" #define CLIENT_TAG "client" +#define COMPRESS_TAG "compress" #define COMP_TAG "comp-lzo" #define DEV_TAG "dev" #define FRAGMENT_TAG "fragment" @@ -300,6 +301,26 @@ NMVariantMapMap OpenVpnUiPlugin::importConnectionSettings(const QString &fileNam dataMap.insert(QLatin1String(NM_OPENVPN_KEY_COMP_LZO), "yes"); continue; } + if (key_value[0] == COMPRESS_TAG) { + if (key_value.count() > 1) { + if (key_value[1] == "yes") { + dataMap.insert(QLatin1String(NM_OPENVPN_KEY_COMPRESS), "yes"); + continue; + } else if (key_value[1] == "lzo") { + dataMap.insert(QLatin1String(NM_OPENVPN_KEY_COMPRESS), "lzo"); + continue; + } else if (key_value[1] == "lz4") { + dataMap.insert(QLatin1String(NM_OPENVPN_KEY_COMPRESS), "lz4"); + continue; + } else if (key_value[1] == "lz4-v2") { + dataMap.insert(QLatin1String(NM_OPENVPN_KEY_COMPRESS), "lz4-v2"); + continue; + } + } else { + dataMap.insert(QLatin1String(NM_OPENVPN_KEY_COMPRESS), "yes"); + continue; + } + } if (key_value[0] == RENEG_SEC_TAG) { if (key_value.count() == 2) { dataMap.insert(QLatin1String(NM_OPENVPN_KEY_RENEG_SECONDS), key_value[1]); @@ -811,8 +832,24 @@ bool OpenVpnUiPlugin::exportConnectionSettings(const NetworkManager::ConnectionS line = QString(CIPHER_TAG) + ' ' + dataMap[NM_OPENVPN_KEY_CIPHER] + '\n'; expFile.write(line.toLatin1()); } - if (dataMap[NM_OPENVPN_KEY_COMP_LZO] == "yes") { - line = QString(COMP_TAG) + " yes\n"; + if (dataMap[NM_OPENVPN_KEY_COMP_LZO] == "adaptive") { + line = QString(COMP_TAG) + " adaptive\n"; + expFile.write(line.toLatin1()); + } + if (dataMap[NM_OPENVPN_KEY_COMPRESS] == "yes") { + line = QString(COMPRESS_TAG) + " yes\n"; + expFile.write(line.toLatin1()); + } + if (dataMap[NM_OPENVPN_KEY_COMPRESS] == "lzo") { + line = QString(COMPRESS_TAG) + " lzo\n"; + expFile.write(line.toLatin1()); + } + if (dataMap[NM_OPENVPN_KEY_COMPRESS] == "lz4") { + line = QString(COMPRESS_TAG) + " lz4\n"; + expFile.write(line.toLatin1()); + } + if (dataMap[NM_OPENVPN_KEY_COMPRESS] == "lz4-v2") { + line = QString(COMPRESS_TAG) + " lz4-v2\n"; expFile.write(line.toLatin1()); } if (dataMap[NM_OPENVPN_KEY_MSSFIX] == "yes") { diff --git a/vpn/openvpn/openvpnadvanced.ui b/vpn/openvpn/openvpnadvanced.ui index ee2bcb98..f14884ae 100644 --- a/vpn/openvpn/openvpnadvanced.ui +++ b/vpn/openvpn/openvpnadvanced.ui @@ -91,22 +91,22 @@ <item> <layout class="QHBoxLayout" name="horizontalLayout_12"> <item> - <widget class="QCheckBox" name="chkUseLZO"> + <widget class="QCheckBox" name="chkUseCompression"> <property name="toolTip"> - <string>Use fast LZO compression.</string> + <string>Use compression.</string> </property> <property name="text"> - <string>Use LZO compression</string> + <string>Use compression</string> </property> </widget> </item> <item> - <widget class="QComboBox" name="cmbUseLZO"> + <widget class="QComboBox" name="cmbUseCompression"> <property name="enabled"> <bool>false</bool> </property> <property name="toolTip"> - <string>Use fast LZO compression.</string> + <string>Use compression.</string> </property> <item> <property name="text"> @@ -115,7 +115,17 @@ </item> <item> <property name="text"> - <string>Yes</string> + <string>LZO</string> + </property> + </item> + <item> + <property name="text"> + <string>LZ4</string> + </property> + </item> + <item> + <property name="text"> + <string>LZ4 v2</string> </property> </item> <item> @@ -123,6 +133,11 @@ <string>Adaptive</string> </property> </item> + <item> + <property name="text"> + <string>Automatic</string> + </property> + </item> </widget> </item> </layout> @@ -1179,7 +1194,7 @@ to protect against DoS attacks.</string> <tabstop>cmbDeviceType</tabstop> <tabstop>chkUseVirtualDeviceName</tabstop> <tabstop>leVirtualDeviceName</tabstop> - <tabstop>chkUseLZO</tabstop> + <tabstop>chkUseCompression</tabstop> <tabstop>chkUseTCP</tabstop> <tabstop>chkMssRestrict</tabstop> <tabstop>chkRandRemHosts</tabstop> @@ -1395,9 +1410,9 @@ to protect against DoS attacks.</string> </hints> </connection> <connection> - <sender>chkUseLZO</sender> + <sender>chkUseCompression</sender> <signal>toggled(bool)</signal> - <receiver>cmbUseLZO</receiver> + <receiver>cmbUseCompression</receiver> <slot>setEnabled(bool)</slot> <hints> <hint type="sourcelabel"> diff --git a/vpn/openvpn/openvpnadvancedwidget.cpp b/vpn/openvpn/openvpnadvancedwidget.cpp index 321a84d1..b2ddac14 100644 --- a/vpn/openvpn/openvpnadvancedwidget.cpp +++ b/vpn/openvpn/openvpnadvancedwidget.cpp @@ -56,6 +56,10 @@ public: public: enum HashingAlgorithms {Default = 0, None, Md4, Md5, Sha1, Sha224, Sha256, Sha384, Sha512, Ripemd160}; }; + class EnumCompression { + public: + enum Compression {None = 0, LZO, LZ4, LZ4v2, Adaptive, Automatic}; + }; }; OpenVpnAdvancedWidget::OpenVpnAdvancedWidget(const NetworkManager::VpnSetting::Ptr &setting, QWidget *parent) @@ -288,13 +292,28 @@ void OpenVpnAdvancedWidget::loadConfig() if (dataMap.contains(QLatin1String(NM_OPENVPN_KEY_COMP_LZO))) { const QString compLzo = dataMap[QLatin1String(NM_OPENVPN_KEY_COMP_LZO)]; if (compLzo == QLatin1String("no-by-default")) { - m_ui->cmbUseLZO->setCurrentIndex(0); + m_ui->cmbUseCompression->setCurrentIndex(Private::EnumCompression::None); } else if (compLzo == QLatin1String("yes")) { - m_ui->cmbUseLZO->setCurrentIndex(1); + m_ui->cmbUseCompression->setCurrentIndex(Private::EnumCompression::LZO); + } else { + m_ui->cmbUseCompression->setCurrentIndex(Private::EnumCompression::Adaptive); + } + m_ui->chkUseCompression->setChecked(true); + } + if (dataMap.contains(QLatin1String(NM_OPENVPN_KEY_COMPRESS))) { + const QString compress = dataMap[QLatin1String(NM_OPENVPN_KEY_COMPRESS)]; + if (compress == QLatin1String("lz4")) { + m_ui->cmbUseCompression->setCurrentIndex(Private::EnumCompression::LZ4); + } else if (compress == QLatin1String("lz4-v2")) { + m_ui->cmbUseCompression->setCurrentIndex(Private::EnumCompression::LZ4v2); + } else if (compress == QLatin1String("lzo")) { + m_ui->cmbUseCompression->setCurrentIndex(Private::EnumCompression::LZO); + } else if (compress == QLatin1String("yes")) { + m_ui->cmbUseCompression->setCurrentIndex(Private::EnumCompression::Automatic); } else { - m_ui->cmbUseLZO->setCurrentIndex(2); + m_ui->cmbUseCompression->setCurrentIndex(Private::EnumCompression::Automatic); } - m_ui->chkUseLZO->setChecked(true); + m_ui->chkUseCompression->setChecked(true); } m_ui->chkUseTCP->setChecked(dataMap[QLatin1String(NM_OPENVPN_KEY_PROTO_TCP)] == QLatin1String("yes")); if (dataMap.contains(QLatin1String(NM_OPENVPN_KEY_DEV_TYPE))) { @@ -483,17 +502,26 @@ NetworkManager::VpnSetting::Ptr OpenVpnAdvancedWidget::setting() const } data.insert(QLatin1String(NM_OPENVPN_KEY_PROTO_TCP), m_ui->chkUseTCP->isChecked() ? QLatin1String("yes") : QLatin1String("no")); - if (m_ui->chkUseLZO->isChecked()) { - switch (m_ui->cmbUseLZO->currentIndex()) { - case 0: + if (m_ui->chkUseCompression->isChecked()) { + switch (m_ui->cmbUseCompression->currentIndex()) { + case Private::EnumCompression::None: data.insert(QLatin1String(NM_OPENVPN_KEY_COMP_LZO), QLatin1String("no-by-default")); break; - case 1: - data.insert(QLatin1String(NM_OPENVPN_KEY_COMP_LZO), QLatin1String("yes")); + case Private::EnumCompression::LZO: + data.insert(QLatin1String(NM_OPENVPN_KEY_COMPRESS), QLatin1String("lzo")); break; - case 2: + case Private::EnumCompression::LZ4: + data.insert(QLatin1String(NM_OPENVPN_KEY_COMPRESS), QLatin1String("lz4")); + break; + case Private::EnumCompression::LZ4v2: + data.insert(QLatin1String(NM_OPENVPN_KEY_COMPRESS), QLatin1String("lz4-v2")); + break; + case Private::EnumCompression::Adaptive: data.insert(QLatin1String(NM_OPENVPN_KEY_COMP_LZO), QLatin1String("adaptive")); break; + case Private::EnumCompression::Automatic: + data.insert(QLatin1String(NM_OPENVPN_KEY_COMPRESS), QLatin1String("yes")); + break; } } -- 2.25.1