diff --git a/Makefile.am b/Makefile.am index 1b046d56..6448d05b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,123 +1,124 @@ # Makefile.am - Installer for GnuPG 4 Windows Makefile. # Copyright (C) 2005, 2008, 2012 g10 Code GmbH # # This file is part of GPG4Win. # # GPG4Win 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. # # GPG4Win 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, see . ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = dist-bzip2 no-dist-gzip DISTCHECK_CONFIGURE_FLAGS = --host=i686-w64-mingw32 if BUILD_GPG4WIN po = po else po = endif if BUILD_GPG4WIN doc = doc else doc = endif SUBDIRS = ${po} packages ${doc} src # find patches -type f | sort | sed 's/$/ \\/' | sed 's/^/ /' # find patches-appimage -type f | sort | sed 's/$/ \\/' | sed 's/^/ /' EXTRA_DIST = autogen.sh README.GIT ONEWS \ doc/license-page doc/GPLv3 \ build-aux/git-log-footer build-aux/git-log-fix \ docker/appimage/Dockerfile \ docker/build-appimage-docker-image.sh \ docker/run-appimage-build.sh \ patches/boost/boost-1-fixes.patch \ patches/breeze-icons/0001-Make-binary-icons-cross-compilable.patch \ patches/extra-cmake-modules/0001-Use-BIN_INSTALL_DIR-data-for-DATAROOTDIR-on-Windows.patch \ patches/glib/glib-1-fixes.patch \ patches/glib/glib-2-fixes.patch \ patches/kconfigwidgets/0001-Make-QDbus-optional.patch \ patches/kiconthemes/0001-Make-DBus-optional.patch \ patches/kleopatra/build-fixes.patch \ patches/kleopatra/lower-cmake-requirement.patch \ patches/kleopatra/set-cxx-standard.patch \ + patches/kleopatra/Add-setting-to-always-search-for-smartcard-certs.patch \ patches/kxmlgui/0001-make-qdbus-optional.patch \ patches/kxmlgui/0004-Cruedly-disable-KSendbugmail.patch \ patches/libkleo/lower-cmake-requirement.patch \ patches/libkleo/set-cxx-standard.patch \ patches/qtbase/0001-Fix-build-without-std-thread.patch \ patches/qtbase/0001-Gpg4win-qstandardpaths-patch.patch \ patches/qtbase/0002-Gpg4win-theme-names-and-relpaths.patch \ patches/qtbase/0003-Fix-build-with-GCC-11-include-limits.patch \ patches/qttools/disable-most-tools.patch \ patches/w32pth-2.0.5/workaround-broken-libtool.patch \ patches-appimage/kconfigwidgets/0001-build-without-KF5Auth.patch \ patches-appimage/ki18n/0001-Load-Qt-translations-even-if-some-catalogs-are-missi.patch \ patches-appimage/qtwayland-5.15.0/00-disable-wayland-server.patch \ patches-appimage/kleopatra/build-fixes.patch \ patches-appimage/kleopatra/set-cxx-standard.patch \ patches-appimage/libkleo/set-cxx-standard.patch \ patches-appimage/libkleo/gpg4win-check.patch \ patches-appimage/kleopatra/aboutdata.patch copy-news: cp NEWS doc/website/NEWS.last copy-release: gpg4win-$(VERSION).tar.bz2 installers/gpg4win-$(VERSION).exe \ installers/gpg4win-light-$(VERSION).exe \ installers/gpg4win-vanilla-$(VERSION).exe @echo Copying $(VERSION) to $(RELEASEHOST) >&2 @set -e;\ if ssh "$$(echo $(RELEASEHOST)|cut -d: -f -1)" \ test -f "$$(echo $(RELEASEHOST)/gpg4win-$(VERSION).exe|cut -d: -f2-)";\ then echo "This release has already been copied to the server" >&2 ;\ else scp gpg4win-$(VERSION).tar.bz2 \ installers/gpg4win-$(VERSION).exe \ installers/gpg4win-light-$(VERSION).exe \ installers/gpg4win-vanilla-$(VERSION).exe \ installers/gpg4win-src-$(VERSION).exe $(RELEASEHOST)/ ;\ for f in en de ; do \ scp src/README.$$f.txt \ $(RELEASEHOST)/README-$(VERSION).$$f.txt; \ done;\ fi dist-hook: gen-ChangeLog gen_start_date = 2012-03-26T00:00:00 .PHONY: gen-ChangeLog gen-ChangeLog: set -e; \ if test -d $(top_srcdir)/.git; then \ (cd $(top_srcdir) && \ $(GITLOG_TO_CHANGELOG) --append-dot --tear-off \ --amend=build-aux/git-log-fix \ --since=$(gen_start_date) ) > $(distdir)/cl-t; \ cat $(top_srcdir)/build-aux/git-log-footer >> $(distdir)/cl-t;\ rm -f $(distdir)/ChangeLog; \ mv $(distdir)/cl-t $(distdir)/ChangeLog; \ fi download: packages/packages.common packages/packages.4 packages/packages.3 (cd packages; ./download.sh) msi: $(MAKE) $(AM_MAKEFLAGS) -C src msi msi-signed: $(MAKE) $(AM_MAKEFLAGS) -C src msi-signed msi-upload: $(MAKE) $(AM_MAKEFLAGS) -C src msi-upload diff --git a/patches/kleopatra/Add-setting-to-always-search-for-smartcard-certs.patch b/patches/kleopatra/Add-setting-to-always-search-for-smartcard-certs.patch new file mode 100755 index 00000000..f27b6aed --- /dev/null +++ b/patches/kleopatra/Add-setting-to-always-search-for-smartcard-certs.patch @@ -0,0 +1,64 @@ +#! /bin/sh +patch -p1 -l -f $* < $0 +exit $? + +From daca8a21e8a04a005a46afbc82d25b5699272d73 Mon Sep 17 00:00:00 2001 +From: Andre Heinecke +Date: Tue, 14 Dec 2021 09:10:02 +0100 +Subject: [PATCH] Add setting to always search for smartcard certs + +By default kleopatra only searches on LDAP servers for +certificates belonging to a PKCS#15 smartcards. But +there could also be scenrios where other protocols make +sense. So we now add a default off setting for this. + +To implement this also for OpenPGP smartcards we now +have: +GnuPG-Bug-Id: T5735 +--- + src/kcfg/settings.kcfg | 9 +++++++++ + src/view/p15cardwidget.cpp | 4 +++- + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/src/kcfg/settings.kcfg b/src/kcfg/settings.kcfg +index d2f40282..71ed45e5 100644 +--- a/src/kcfg/settings.kcfg ++++ b/src/kcfg/settings.kcfg +@@ -100,4 +100,13 @@ + true + + ++ ++ ++ ++ Searches for the certificates belonging the smartcard keys on the configured keyserver. ++ Searches on keyservers regardless of the protocol for the smartcards key, regardless ++ of the keyserver protocol. Default behavior is to only do this for LDAP keyservers. ++ false ++ ++ + +diff --git a/src/view/p15cardwidget.cpp b/src/view/p15cardwidget.cpp +index d010d718..af6613dc 100644 +--- a/src/view/p15cardwidget.cpp ++++ b/src/view/p15cardwidget.cpp +@@ -12,6 +12,8 @@ + + #include "openpgpkeycardwidget.h" + ++#include "settings.h" ++ + #include "smartcard/p15card.h" + #include "smartcard/openpgpcard.h" + #include "smartcard/readerstatus.h" +@@ -105,7 +107,7 @@ void P15CardWidget::searchPGPFpr(const std::string &fpr) + /* Only do auto import from LDAP */ + auto conf = QGpgME::cryptoConfig(); + Q_ASSERT (conf); +- if (!Kleo::keyserver().startsWith(QLatin1String{"ldap"})) { ++ if (!Settings().alwaysSearchCardOnKeyserver() && !Kleo::keyserver().startsWith(QLatin1String{"ldap"})) { + return; + } + mStatusLabel->setText(i18n("Searching in directory service...")); +-- +2.30.2