diff options
author | Adriaan de Groot <adridg@FreeBSD.org> | 2021-01-13 22:02:08 +0800 |
---|---|---|
committer | Adriaan de Groot <adridg@FreeBSD.org> | 2021-01-13 22:02:08 +0800 |
commit | 63ddfd119714d37cecd4c5a7a6fa899798e9f356 (patch) | |
tree | c4ea8758278cf9d4acae0d63a11afd408376d0ca /security | |
parent | f26b249c17d1266aed027f5e2299100635656a1b (diff) | |
download | freebsd-ports-gnome-63ddfd119714d37cecd4c5a7a6fa899798e9f356.tar.gz freebsd-ports-gnome-63ddfd119714d37cecd4c5a7a6fa899798e9f356.tar.zst freebsd-ports-gnome-63ddfd119714d37cecd4c5a7a6fa899798e9f356.zip |
Fix key management in security/kleopatra
This was reported upstream also as
https://bugs.kde.org/show_bug.cgi?id=415168
there has been a patch languishing there for a long time, which I've
now (re)submitted upstream. It fixes all of the reported problem:
a previous patch by me in FreeBSD ports only dealt with half of them.
PR: 242670
Submitted by: Andre Heinecke
Reported by: Gerhard Seibert
Diffstat (limited to 'security')
-rw-r--r-- | security/kleopatra/Makefile | 1 | ||||
-rw-r--r-- | security/kleopatra/files/patch-D26393 | 47 | ||||
-rw-r--r-- | security/libkleo/Makefile | 1 | ||||
-rw-r--r-- | security/libkleo/files/patch-BR415168 | 98 |
4 files changed, 100 insertions, 47 deletions
diff --git a/security/kleopatra/Makefile b/security/kleopatra/Makefile index 12844d125a7d..197dedbdd341 100644 --- a/security/kleopatra/Makefile +++ b/security/kleopatra/Makefile @@ -2,6 +2,7 @@ PORTNAME= kleopatra DISTVERSION= ${KDE_APPLICATIONS_VERSION} +PORTREVISION= 1 CATEGORIES= security kde kde-applications MAINTAINER= kde@FreeBSD.org diff --git a/security/kleopatra/files/patch-D26393 b/security/kleopatra/files/patch-D26393 deleted file mode 100644 index 4d0192ce9e33..000000000000 --- a/security/kleopatra/files/patch-D26393 +++ /dev/null @@ -1,47 +0,0 @@ -Submitted upstream as D26393, see also - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242670 - https://bugs.kde.org/show_bug.cgi?id=415168 - -diff --git src/commands/command_p.h src/commands/command_p.h -index d9acbaae..0a16161e 100644 ---- src/commands/command_p.h -+++ src/commands/command_p.h -@@ -37,6 +37,7 @@ - #include "view/keylistcontroller.h" - - #include <Libkleo/KeyListModel> -+#include <Libkleo/KeyRearrangeColumnsProxyModel> - - #include <KMessageBox> - -@@ -73,7 +74,7 @@ public: - } - KeyListModelInterface *model() const - { -- return view_ ? dynamic_cast<KeyListModelInterface *>(view_->model()) : nullptr; -+ return view_ ? dynamic_cast<KeyListModelInterface *>(dynamic_cast<KeyRearrangeColumnsProxyModel*>(view_->model())) : nullptr; - } - KeyListController *controller() const - { -diff --git src/dialogs/lookupcertificatesdialog.cpp src/dialogs/lookupcertificatesdialog.cpp -index 4f7b0246..313c4f9f 100644 ---- src/dialogs/lookupcertificatesdialog.cpp -+++ src/dialogs/lookupcertificatesdialog.cpp -@@ -37,6 +37,8 @@ - #include "ui_lookupcertificatesdialog.h" - - #include <Libkleo/KeyListModel> -+#include <Libkleo/KeyRearrangeColumnsProxyModel> -+ - #include <KConfigGroup> - #include <gpgme++/key.h> - -@@ -99,7 +101,7 @@ private: - if (!view) { - return std::vector<Key>(); - } -- const auto *const model = dynamic_cast<KeyListModelInterface*>(view->model()); -+ const auto *const model = dynamic_cast<KeyListModelInterface*>(dynamic_cast<KeyRearrangeColumnsProxyModel*>(view->model())); - Q_ASSERT(model); - const QItemSelectionModel *const sm = view->selectionModel(); - Q_ASSERT(sm); diff --git a/security/libkleo/Makefile b/security/libkleo/Makefile index c1d7a2e4059f..50c8ba281d9d 100644 --- a/security/libkleo/Makefile +++ b/security/libkleo/Makefile @@ -2,6 +2,7 @@ PORTNAME= libkleo DISTVERSION= ${KDE_APPLICATIONS_VERSION} +PORTREVISION= 1 CATEGORIES= security kde kde-applications MAINTAINER= kde@FreeBSD.org diff --git a/security/libkleo/files/patch-BR415168 b/security/libkleo/files/patch-BR415168 new file mode 100644 index 000000000000..e7e6a10e92b1 --- /dev/null +++ b/security/libkleo/files/patch-BR415168 @@ -0,0 +1,98 @@ +From 54ef30823adb3d4c9b6c66494142980f5cc9e35b Mon Sep 17 00:00:00 2001 +From: Andre Heinecke <aheinecke@gnupg.org> +Date: Wed, 12 Feb 2020 12:11:32 +0100 +Subject: [PATCH] De inline keylistmodelinterface virtual dtor + +This attempts to fix a crash on FreeBSD. See: D26393 for +more info. + +BUG: 415168 +--- + src/CMakeLists.txt | 1 + + src/models/keylistmodelinterface.cpp | 35 ++++++++++++++++++++++++++++ + src/models/keylistmodelinterface.h | 6 +++-- + 3 files changed, 40 insertions(+), 2 deletions(-) + create mode 100644 src/models/keylistmodelinterface.cpp + +diff --git src/CMakeLists.txt src/CMakeLists.txt +index dc30079..056d33b 100644 +--- src/CMakeLists.txt ++++ src/CMakeLists.txt +@@ -29,6 +29,7 @@ set(libkleo_core_SRCS + kleo/keyresolver.cpp + models/keycache.cpp + models/keylistmodel.cpp ++ models/keylistmodelinterface.cpp + models/keylistsortfilterproxymodel.cpp + models/keyrearrangecolumnsproxymodel.cpp + models/subkeylistmodel.cpp +diff --git src/models/keylistmodelinterface.cpp src/models/keylistmodelinterface.cpp +new file mode 100644 +index 0000000..77fc1e2 +--- /dev/null ++++ src/models/keylistmodelinterface.cpp +@@ -0,0 +1,35 @@ ++/* -*- mode: c++; c-basic-offset:4 -*- ++ models/keylistmodelinterface.cpp ++ ++ Copyright (c) 2020 g10 Code GmbH ++ ++ Kleopatra is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ Kleopatra is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ ++ In addition, as a special exception, the copyright holders give ++ permission to link the code of this program with any edition of ++ the Qt library by Trolltech AS, Norway (or with modified versions ++ of Qt that use the same license as Qt), and distribute linked ++ combinations including the two. You must obey the GNU General ++ Public License in all respects for all of the code used other than ++ Qt. If you modify this file, you may extend this exception to ++ your version of the file, but you are not obligated to do so. If ++ you do not wish to do so, delete this exception statement from ++ your version. ++*/ ++#include "keylistmodelinterface.h" ++ ++Kleo::KeyListModelInterface::~KeyListModelInterface() ++{ ++} +diff --git src/models/keylistmodelinterface.h src/models/keylistmodelinterface.h +index 3090017..4de3fec 100644 +--- src/models/keylistmodelinterface.h ++++ src/models/keylistmodelinterface.h +@@ -35,6 +35,8 @@ + + #include <vector> + ++#include <kleo_export.h> ++ + namespace GpgME + { + class Key; +@@ -46,10 +48,10 @@ template <typename T> class QList; + namespace Kleo + { + +-class KeyListModelInterface ++class KLEO_EXPORT KeyListModelInterface + { + public: +- virtual ~KeyListModelInterface() {} ++ virtual ~KeyListModelInterface(); + + static const int FingerprintRole = 0xF1; + static const int KeyRole = 0xF2; +-- +2.20.1 + |