summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorTaichi Haradaguchi <20001722@ymail.ne.jp>2022-11-21 23:39:38 +0900
committerCaolán McNamara <caolanm@redhat.com>2022-12-15 15:19:54 +0000
commit1c5c31b006f8515bfea440bbcf286f8b4b840aac (patch)
tree5b00468ff393ebaec2f9bd880ee9dc81cb14e4e7 /external
parentc88dda7e89a0774b203def3d90475c7b668187c2 (diff)
gpgme: upgrade to release 1.18.0
Remove gpgme.git-4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e.patch.1 as it has applied in 1.18.0. * 0001-cpp-Fix-building-with-C-11.patch.1: fixed error "no matching function for call to object of type "(lambda at importresult.cpp:154:71)"". * w32-include.patch: add missing #include <string> (for std::string). * macos-include.patch: add missing #include <algorithm> (for std::any_of). Change-Id: I45f2ef415d80e6ee848699803e971f154812c9c6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143039 Tested-by: Jenkins Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'external')
-rwxr-xr-xexternal/gpgmepp/0001-cpp-Fix-building-with-C-11.patch.172
-rw-r--r--external/gpgmepp/ExternalPackage_gpgmepp.mk4
-rw-r--r--external/gpgmepp/Library_gpgmepp.mk3
-rw-r--r--external/gpgmepp/UnpackedTarball_gpgmepp.mk3
-rwxr-xr-xexternal/gpgmepp/Wincompatible-function-pointer-types.patch6
-rw-r--r--external/gpgmepp/asan.patch2
-rw-r--r--external/gpgmepp/configure.patch4
-rw-r--r--external/gpgmepp/find-libgpg-error-libassuan.patch6
-rw-r--r--external/gpgmepp/fix-autoconf-macros.patch8
-rw-r--r--external/gpgmepp/gcc9.patch2
-rw-r--r--external/gpgmepp/gpgme.git-4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e.patch.132
-rw-r--r--external/gpgmepp/macos-include.patch10
-rw-r--r--external/gpgmepp/rpath.patch2
-rw-r--r--external/gpgmepp/ubsan.patch8
-rw-r--r--external/gpgmepp/w32-build-fixes.patch.116
-rw-r--r--external/gpgmepp/w32-disable-docs.patch.12
-rw-r--r--external/gpgmepp/w32-fix-libtool.patch.12
-rw-r--r--external/gpgmepp/w32-fix-win32-macro.patch.120
-rw-r--r--external/gpgmepp/w32-include.patch20
19 files changed, 149 insertions, 73 deletions
diff --git a/external/gpgmepp/0001-cpp-Fix-building-with-C-11.patch.1 b/external/gpgmepp/0001-cpp-Fix-building-with-C-11.patch.1
new file mode 100755
index 000000000000..c7b288d7240a
--- /dev/null
+++ b/external/gpgmepp/0001-cpp-Fix-building-with-C-11.patch.1
@@ -0,0 +1,72 @@
+From f02c20cc9c5756690b07abfd02a43533547ba2ef Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <dev@ingo-kloecker.de>
+Date: Fri, 19 Aug 2022 11:05:37 +0200
+Subject: [PATCH] cpp: Fix building with C++11
+
+* lang/cpp/src/importresult.cpp (ImportResult::mergeWith): Replace
+'auto' in lambdas with the actual type.
+--
+
+Generic lambdas require C++14.
+
+GnuPG-bug-id: 6141
+---
+ lang/cpp/src/importresult.cpp | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/lang/cpp/src/importresult.cpp b/lang/cpp/src/importresult.cpp
+index 06258729..0a7ad03d 100644
+--- a/lang/cpp/src/importresult.cpp
++++ b/lang/cpp/src/importresult.cpp
+@@ -152,17 +152,17 @@ void GpgME::ImportResult::mergeWith(const ImportResult &other)
+ }
+ // was this key also considered during the first import
+ const auto consideredInFirstImports =
+- std::any_of(std::begin(d->imports), std::end(d->imports), [fpr](const auto i) {
++ std::any_of(std::begin(d->imports), std::end(d->imports), [fpr](const gpgme_import_status_t i) {
+ return i->fpr && !strcmp(i->fpr, fpr);
+ });
+ // did we see this key already in the list of keys of the other import
+ const auto consideredInPreviousOtherImports =
+- std::any_of(std::begin(other.d->imports), it, [fpr](const auto i) {
++ std::any_of(std::begin(other.d->imports), it, [fpr](const gpgme_import_status_t i) {
+ return i->fpr && !strcmp(i->fpr, fpr);
+ });
+ // was anything added to this key during the other import
+ const auto changedInOtherImports =
+- std::any_of(std::begin(other.d->imports), std::end(other.d->imports), [fpr](const auto i) {
++ std::any_of(std::begin(other.d->imports), std::end(other.d->imports), [fpr](const gpgme_import_status_t i) {
+ return i->fpr && !strcmp(i->fpr, fpr) && (i->status != 0);
+ });
+ if (consideredInFirstImports && !consideredInPreviousOtherImports) {
+@@ -177,15 +177,15 @@ void GpgME::ImportResult::mergeWith(const ImportResult &other)
+
+ // now do the same for the secret key counts
+ const auto secretKeyConsideredInFirstImports =
+- std::any_of(std::begin(d->imports), std::end(d->imports), [fpr](const auto i) {
++ std::any_of(std::begin(d->imports), std::end(d->imports), [fpr](const gpgme_import_status_t i) {
+ return i->fpr && !strcmp(i->fpr, fpr) && (i->status & GPGME_IMPORT_SECRET);
+ });
+ const auto secretKeyConsideredInPreviousOtherImports =
+- std::any_of(std::begin(other.d->imports), it, [fpr](const auto i) {
++ std::any_of(std::begin(other.d->imports), it, [fpr](const gpgme_import_status_t i) {
+ return i->fpr && !strcmp(i->fpr, fpr) && (i->status & GPGME_IMPORT_SECRET);
+ });
+ const auto secretKeyChangedInOtherImports =
+- std::any_of(std::begin(other.d->imports), std::end(other.d->imports), [fpr](const auto i) {
++ std::any_of(std::begin(other.d->imports), std::end(other.d->imports), [fpr](const gpgme_import_status_t i) {
+ return i->fpr && !strcmp(i->fpr, fpr) && (i->status & GPGME_IMPORT_SECRET) && (i->status != GPGME_IMPORT_SECRET);
+ });
+ if (secretKeyConsideredInFirstImports && !secretKeyConsideredInPreviousOtherImports) {
+@@ -204,7 +204,7 @@ void GpgME::ImportResult::mergeWith(const ImportResult &other)
+ d->imports.reserve(d->imports.size() + other.d->imports.size());
+ std::transform(std::begin(other.d->imports), std::end(other.d->imports),
+ std::back_inserter(d->imports),
+- [](const auto import) {
++ [](const gpgme_import_status_t import) {
+ gpgme_import_status_t copy = new _gpgme_import_status{*import};
+ if (import->fpr) {
+ copy->fpr = strdup(import->fpr);
+--
+2.34.1
+
diff --git a/external/gpgmepp/ExternalPackage_gpgmepp.mk b/external/gpgmepp/ExternalPackage_gpgmepp.mk
index a2b207597cdd..2b853087216b 100644
--- a/external/gpgmepp/ExternalPackage_gpgmepp.mk
+++ b/external/gpgmepp/ExternalPackage_gpgmepp.mk
@@ -15,8 +15,8 @@ ifneq ($(DISABLE_DYNLOADING),TRUE)
ifeq ($(OS),LINUX)
-$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgmepp.so.6,lang/cpp/src/.libs/libgpgmepp.so.6.13.0))
-$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgme.so.11,src/.libs/libgpgme.so.11.25.0))
+$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgmepp.so.6,lang/cpp/src/.libs/libgpgmepp.so.6.15.0))
+$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgme.so.11,src/.libs/libgpgme.so.11.27.0))
else ifeq ($(OS),MACOSX)
diff --git a/external/gpgmepp/Library_gpgmepp.mk b/external/gpgmepp/Library_gpgmepp.mk
index f60301a4eb0d..ac71cf8b90ec 100644
--- a/external/gpgmepp/Library_gpgmepp.mk
+++ b/external/gpgmepp/Library_gpgmepp.mk
@@ -58,9 +58,11 @@ $(eval $(call gb_Library_add_generated_exception_objects,gpgmepp,\
UnpackedTarball/gpgmepp/lang/cpp/src/engineinfo \
UnpackedTarball/gpgmepp/lang/cpp/src/eventloopinteractor \
UnpackedTarball/gpgmepp/lang/cpp/src/exception \
+ UnpackedTarball/gpgmepp/lang/cpp/src/gpgaddexistingsubkeyeditinteractor \
UnpackedTarball/gpgmepp/lang/cpp/src/gpgadduserideditinteractor \
UnpackedTarball/gpgmepp/lang/cpp/src/gpgagentgetinfoassuantransaction \
UnpackedTarball/gpgmepp/lang/cpp/src/gpggencardkeyinteractor \
+ UnpackedTarball/gpgmepp/lang/cpp/src/gpgrevokekeyeditinteractor \
UnpackedTarball/gpgmepp/lang/cpp/src/gpgsetexpirytimeeditinteractor \
UnpackedTarball/gpgmepp/lang/cpp/src/gpgsetownertrusteditinteractor \
UnpackedTarball/gpgmepp/lang/cpp/src/gpgsignkeyeditinteractor \
@@ -73,6 +75,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,gpgmepp,\
UnpackedTarball/gpgmepp/lang/cpp/src/swdbresult \
UnpackedTarball/gpgmepp/lang/cpp/src/tofuinfo \
UnpackedTarball/gpgmepp/lang/cpp/src/trustitem \
+ UnpackedTarball/gpgmepp/lang/cpp/src/util \
UnpackedTarball/gpgmepp/lang/cpp/src/verificationresult \
UnpackedTarball/gpgmepp/lang/cpp/src/vfsmountresult \
))
diff --git a/external/gpgmepp/UnpackedTarball_gpgmepp.mk b/external/gpgmepp/UnpackedTarball_gpgmepp.mk
index 563bec95aa34..be2b616d1268 100644
--- a/external/gpgmepp/UnpackedTarball_gpgmepp.mk
+++ b/external/gpgmepp/UnpackedTarball_gpgmepp.mk
@@ -32,8 +32,9 @@ $(eval $(call gb_UnpackedTarball_add_patches,gpgmepp, \
external/gpgmepp/c++20.patch \
external/gpgmepp/clang-cl.patch \
external/gpgmepp/configure.patch \
- external/gpgmepp/gpgme.git-4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e.patch.1 \
external/gpgmepp/w32-include.patch \
external/gpgmepp/Wincompatible-function-pointer-types.patch \
+ external/gpgmepp/0001-cpp-Fix-building-with-C-11.patch.1 \
+ external/gpgmepp/macos-include.patch \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/gpgmepp/Wincompatible-function-pointer-types.patch b/external/gpgmepp/Wincompatible-function-pointer-types.patch
index 26b39337fe97..050d2e55cfc7 100755
--- a/external/gpgmepp/Wincompatible-function-pointer-types.patch
+++ b/external/gpgmepp/Wincompatible-function-pointer-types.patch
@@ -1,6 +1,6 @@
--- src/assuan-support.c
+++ src/assuan-support.c
-@@ -96,7 +96,7 @@
+@@ -126,7 +126,7 @@
}
@@ -9,7 +9,7 @@
my_read (assuan_context_t ctx, assuan_fd_t fd, void *buffer, size_t size)
{
(void)ctx;
-@@ -104,7 +104,7 @@
+@@ -134,7 +134,7 @@
}
@@ -20,7 +20,7 @@
(void)ctx;
--- src/gpgme-w32spawn.c
+++ src/gpgme-w32spawn.c
-@@ -244,7 +244,7 @@
+@@ -243,7 +243,7 @@
handle = LoadLibrary ("user32.dll");
if (handle)
{
diff --git a/external/gpgmepp/asan.patch b/external/gpgmepp/asan.patch
index 16d97f6ff307..e0b1c85fe51b 100644
--- a/external/gpgmepp/asan.patch
+++ b/external/gpgmepp/asan.patch
@@ -1,6 +1,6 @@
--- src/posix-io.c
+++ src/posix-io.c
-@@ -468,6 +468,9 @@
+@@ -563,6 +563,9 @@
if (atfork)
atfork (atforkvalue, 0);
diff --git a/external/gpgmepp/configure.patch b/external/gpgmepp/configure.patch
index 4b51db6bebad..ad3f97e632fb 100644
--- a/external/gpgmepp/configure.patch
+++ b/external/gpgmepp/configure.patch
@@ -1,6 +1,6 @@
--- configure.ac
+++ configure.ac
-@@ -619,6 +619,15 @@
+@@ -617,6 +617,15 @@
AC_SUBST(API__SSIZE_T)
AM_SUBST_NOTMAKE(API__SSIZE_T)
@@ -16,7 +16,7 @@
# Checks for compiler features.
if test "$GCC" = yes; then
CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
-@@ -679,15 +679,6 @@
+@@ -677,15 +686,6 @@
AC_FUNC_FSEEKO
diff --git a/external/gpgmepp/find-libgpg-error-libassuan.patch b/external/gpgmepp/find-libgpg-error-libassuan.patch
index a65e453fc8b6..a98a7d845a34 100644
--- a/external/gpgmepp/find-libgpg-error-libassuan.patch
+++ b/external/gpgmepp/find-libgpg-error-libassuan.patch
@@ -2,7 +2,7 @@ diff --git a/configure.ac b/configure.ac
index f28480b..92a3e85 100644
--- configure.ac
+++ configure.ac
-@@ -674,15 +674,34 @@ AC_CHECK_FUNCS(setlocale)
+@@ -719,8 +719,18 @@
# Checking for libgpg-error.
have_gpg_error=no
@@ -23,6 +23,8 @@ index f28480b..92a3e85 100644
AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_GPGME,
[The default error source for GPGME.])
+@@ -729,8 +739,17 @@
+
# And for libassuan.
have_libassuan=no
-AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_API:$NEED_LIBASSUAN_VERSION",
@@ -53,7 +55,7 @@ index f28480b..92a3e85 100644
AM_CPPFLAGS = -I$(top_srcdir)/lang/cpp/src -I$(top_builddir)/src \
--- lang/cpp/tests/Makefile.in 2020-06-20 00:44:49.542344510 +0200
+++ lang/cpp/tests/Makefile.in~ 2020-06-13 00:55:19.021212970 +0200
-@@ -415,7 +415,7 @@
+@@ -427,7 +427,7 @@
top_srcdir = @top_srcdir@
AM_LDFLAGS = -no-install
LDADD = ../../cpp/src/libgpgmepp.la \
diff --git a/external/gpgmepp/fix-autoconf-macros.patch b/external/gpgmepp/fix-autoconf-macros.patch
index e333168b2b33..265703b00671 100644
--- a/external/gpgmepp/fix-autoconf-macros.patch
+++ b/external/gpgmepp/fix-autoconf-macros.patch
@@ -1,7 +1,7 @@
diff -ur gpgme.org/configure.ac gpgme/configure.ac
--- configure.ac 2017-02-16 15:18:45.051417378 +0100
+++ configure.ac~ 2017-02-16 15:20:03.635059285 +0100
-@@ -35,6 +35,11 @@
+@@ -38,6 +38,11 @@
# the decimalized short revision number, a beta version string and a
# flag indicating a development version (mym4_isbeta). Note that the
# m4 processing is done by autoconf and not during the configure run.
@@ -13,10 +13,10 @@ diff -ur gpgme.org/configure.ac gpgme/configure.ac
m4_define([mym4_verslist], m4_split(m4_esyscmd([./autogen.sh --find-version] \
mym4_package mym4_major mym4_minor mym4_micro),[:]))
m4_define([mym4_isbeta], m4_argn(2, mym4_verslist))
-@@ -90,7 +90,22 @@
+@@ -98,7 +103,22 @@
AC_CONFIG_MACRO_DIR([m4])
- AC_CONFIG_SRCDIR(src/gpgme.h.in)
- AC_CONFIG_HEADER(conf/config.h)
+ AC_CONFIG_SRCDIR([src/gpgme.h.in])
+ AC_CONFIG_HEADERS([conf/config.h])
-AM_INIT_AUTOMAKE([serial-tests dist-bzip2 no-dist-gzip])
+
+dnl Initialize automake. automake < 1.12 didn't have serial-tests and
diff --git a/external/gpgmepp/gcc9.patch b/external/gpgmepp/gcc9.patch
index c2a9fd444df7..709154ec102b 100644
--- a/external/gpgmepp/gcc9.patch
+++ b/external/gpgmepp/gcc9.patch
@@ -1,6 +1,6 @@
--- lang/cpp/src/key.h
+++ lang/cpp/src/key.h
-@@ -62,6 +62,7 @@
+@@ -68,6 +68,7 @@
/* implicit */ Key(const Null &);
Key(const shared_gpgme_key_t &key);
Key(gpgme_key_t key, bool acquireRef);
diff --git a/external/gpgmepp/gpgme.git-4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e.patch.1 b/external/gpgmepp/gpgme.git-4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e.patch.1
deleted file mode 100644
index 8b12c1785ccf..000000000000
--- a/external/gpgmepp/gpgme.git-4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e.patch.1
+++ /dev/null
@@ -1,32 +0,0 @@
-From 4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e Mon Sep 17 00:00:00 2001
-From: Jiri Kucera <sanczes@gmail.com>
-Date: Sun, 25 Jul 2021 11:35:54 +0200
-Subject: [PATCH] core: Support closefrom also for glibc.
-
-* src/posix-io.c (_gpgme_io_spawn): Use glibc's closefrom.
---
-
-Since 2.34, glibc introduces closefrom (the implementation
-follows *BSD standard).
-
-Signed-off-by: Werner Koch <wk@gnupg.org>
----
- src/posix-io.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/posix-io.c b/src/posix-io.c
-index e712ef28..2a3a81fc 100644
---- a/src/posix-io.c
-+++ b/src/posix-io.c
-@@ -570,7 +570,7 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags,
- if (fd_list[i].fd > fd)
- fd = fd_list[i].fd;
- fd++;
--#if defined(__sun) || defined(__FreeBSD__)
-+#if defined(__sun) || defined(__FreeBSD__) || defined(__GLIBC__)
- closefrom (fd);
- max_fds = fd;
- #else /*!__sun */
---
-2.11.0
-
diff --git a/external/gpgmepp/macos-include.patch b/external/gpgmepp/macos-include.patch
new file mode 100644
index 000000000000..93dd297c7368
--- /dev/null
+++ b/external/gpgmepp/macos-include.patch
@@ -0,0 +1,10 @@
+--- lang/cpp/src/importresult.cpp 2022-08-10 18:17:33.000000000 +0900
++++ lang/cpp/src/importresult.cpp 2022-11-29 01:37:44.786604882 +0900
+@@ -31,6 +31,7 @@
+ #include "result_p.h"
+
+ #include <gpgme.h>
++#include <algorithm>
+ #include <cstdlib>
+ #include <cstring>
+
diff --git a/external/gpgmepp/rpath.patch b/external/gpgmepp/rpath.patch
index e83dcf2762ef..6e6c46105b94 100644
--- a/external/gpgmepp/rpath.patch
+++ b/external/gpgmepp/rpath.patch
@@ -1,6 +1,6 @@
--- configure.ac
+++ configure.ac
-@@ -176,6 +176,9 @@
+@@ -187,6 +187,9 @@
LT_INIT([win32-dll disable-static])
LT_LANG([Windows Resource])
diff --git a/external/gpgmepp/ubsan.patch b/external/gpgmepp/ubsan.patch
index 5a6e6dcdc9b2..2262291cd8b5 100644
--- a/external/gpgmepp/ubsan.patch
+++ b/external/gpgmepp/ubsan.patch
@@ -1,8 +1,8 @@
--- src/engine-gpg.c
+++ src/engine-gpg.c
-@@ -60,6 +60,15 @@
+@@ -61,6 +61,15 @@
building command line to this location. */
- char arg[1]; /* Used if data above is not used. */
+ char arg[FLEXIBLE_ARRAY_MEMBER]; /* Used if data above is not used. */
};
+struct arg_without_data_s
+{
@@ -16,8 +16,8 @@
struct fd_data_map_s
-@@ -299,23 +308,24 @@
- a = malloc (sizeof *a - 1);
+@@ -310,23 +319,24 @@
+ a = malloc (offsetof (struct arg_and_data_s, arg));
if (!a)
return gpg_error_from_syserror ();
- a->next = NULL;
diff --git a/external/gpgmepp/w32-build-fixes.patch.1 b/external/gpgmepp/w32-build-fixes.patch.1
index 01ea99d91e43..d6d8af601015 100644
--- a/external/gpgmepp/w32-build-fixes.patch.1
+++ b/external/gpgmepp/w32-build-fixes.patch.1
@@ -13,7 +13,7 @@ diff -ru gpgme.orig/m4/ax_cxx_compile_stdcxx.m4 gpgme/m4/ax_cxx_compile_stdcxx.m
diff -ru gpgme.orig/src/dirinfo.c gpgme/src/dirinfo.c
--- gpgme.orig/src/dirinfo.c 2017-03-21 11:09:41.000000000 +0100
+++ gpgme/src/dirinfo.c 2017-09-30 08:36:13.239279300 +0200
-@@ -33,6 +33,10 @@
+@@ -34,6 +34,10 @@
DEFINE_STATIC_LOCK (dirinfo_lock);
@@ -27,7 +27,7 @@ diff -ru gpgme.orig/src/dirinfo.c gpgme/src/dirinfo.c
diff -ru gpgme.orig/src/mbox-util.c gpgme/src/mbox-util.c
--- gpgme.orig/src/mbox-util.c 2016-11-16 13:22:41.000000000 +0100
+++ gpgme/src/mbox-util.c 2017-09-30 08:18:29.270567500 +0200
-@@ -28,7 +28,9 @@
+@@ -29,7 +29,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -40,7 +40,7 @@ diff -ru gpgme.orig/src/mbox-util.c gpgme/src/mbox-util.c
diff -ru gpgme.orig/src/priv-io.h gpgme/src/priv-io.h
--- gpgme.orig/src/priv-io.h 2016-11-16 13:23:14.000000000 +0100
+++ gpgme/src/priv-io.h 2017-09-30 08:20:38.770562400 +0200
-@@ -36,6 +36,9 @@
+@@ -33,6 +33,9 @@
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
@@ -53,7 +53,7 @@ diff -ru gpgme.orig/src/priv-io.h gpgme/src/priv-io.h
diff -ru gpgme.orig/src/util.h gpgme/src/util.h
--- gpgme.orig/src/util.h 2017-03-28 11:41:30.000000000 +0200
+++ gpgme/src/util.h 2017-09-30 08:10:54.194049100 +0200
-@@ -39,6 +39,9 @@
+@@ -35,6 +35,9 @@
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
@@ -66,7 +66,7 @@ diff -ru gpgme.orig/src/util.h gpgme/src/util.h
diff -ru gpgme.orig/src/w32-util.c gpgme/src/w32-util.c
--- gpgme.orig/src/w32-util.c 2017-03-09 09:01:10.000000000 +0100
+++ gpgme/src/w32-util.c 2017-09-30 08:32:02.114330500 +0200
-@@ -721,7 +721,8 @@
+@@ -772,7 +772,8 @@
v /= 62;
XXXXXX[5] = letters[v % 62];
@@ -79,7 +79,7 @@ diff -ru gpgme.orig/src/w32-util.c gpgme/src/w32-util.c
diff -ru gpgme.orig/src/Makefile.am gpgme/src/Makefile.am
--- gpgme.orig/src/Makefile.am 2017-09-30 11:50:07.456960000 +0200
+++ gpgme/src/Makefile.am 2017-09-30 11:51:29.609649400 +0200
-@@ -26,7 +26,7 @@
+@@ -35,7 +35,7 @@
m4data_DATA = gpgme.m4
nodist_include_HEADERS = gpgme.h
@@ -88,7 +88,7 @@ diff -ru gpgme.orig/src/Makefile.am gpgme/src/Makefile.am
if BUILD_W32_GLIB
ltlib_gpgme_glib = libgpgme-glib.la
-@@ -99,11 +99,11 @@
+@@ -107,11 +107,11 @@
# versions, because then every object file is only compiled once.
AM_CFLAGS = @LIBASSUAN_CFLAGS@ @GPG_ERROR_CFLAGS@ @GLIB_CFLAGS@
@@ -104,7 +104,7 @@ diff -ru gpgme.orig/src/Makefile.am gpgme/src/Makefile.am
if HAVE_W32_SYSTEM
-@@ -120,7 +120,7 @@
+@@ -126,7 +126,7 @@
SUFFIXES = .rc .lo
.rc.lo:
diff --git a/external/gpgmepp/w32-disable-docs.patch.1 b/external/gpgmepp/w32-disable-docs.patch.1
index 2c307f502b63..1803ffa03cb5 100644
--- a/external/gpgmepp/w32-disable-docs.patch.1
+++ b/external/gpgmepp/w32-disable-docs.patch.1
@@ -4,7 +4,7 @@ like libgpg-error's --disable-doc
diff -ur gpgmepp.org/Makefile.am gpgmepp/Makefile.am
--- gpgmepp.org/Makefile.am 2016-11-16 13:20:18.000000000 +0100
+++ gpgmepp/Makefile.am 2017-11-20 15:34:49.086731000 +0100
-@@ -33,7 +33,7 @@
+@@ -45,7 +45,7 @@
tests =
endif
diff --git a/external/gpgmepp/w32-fix-libtool.patch.1 b/external/gpgmepp/w32-fix-libtool.patch.1
index 9a7adf713694..40893908b7f6 100644
--- a/external/gpgmepp/w32-fix-libtool.patch.1
+++ b/external/gpgmepp/w32-fix-libtool.patch.1
@@ -9,7 +9,7 @@ linking, by accepting cygwin path names, and correctly expanding
diff -ur gpgmepp.org/m4/libtool.m4 gpgmepp/m4/libtool.m4
--- gpgmepp.org/m4/libtool.m4 2016-11-16 13:20:16.000000000 +0100
+++ gpgmepp/m4/libtool.m4 2017-11-21 22:00:05.006587800 +0100
-@@ -3209,24 +3209,11 @@
+@@ -3230,24 +3230,11 @@
;;
cygwin*)
diff --git a/external/gpgmepp/w32-fix-win32-macro.patch.1 b/external/gpgmepp/w32-fix-win32-macro.patch.1
index 66e9ac48099a..8ab7b0fab089 100644
--- a/external/gpgmepp/w32-fix-win32-macro.patch.1
+++ b/external/gpgmepp/w32-fix-win32-macro.patch.1
@@ -1,7 +1,7 @@
diff -ur gpgmepp.org/lang/cpp/src/callbacks.cpp gpgmepp/lang/cpp/src/callbacks.cpp
--- gpgmepp.org/lang/cpp/src/callbacks.cpp 2016-10-18 19:22:02.000000000 +0200
+++ gpgmepp/lang/cpp/src/callbacks.cpp 2017-11-20 18:03:04.290060900 +0100
-@@ -38,7 +38,9 @@
+@@ -40,7 +40,9 @@
#include <cassert>
#include <cerrno>
#include <cstring>
@@ -29,7 +29,7 @@ diff -ur gpgmepp.org/lang/cpp/src/data.h gpgmepp/lang/cpp/src/data.h
diff -ur gpgmepp.org/lang/cpp/src/editinteractor.cpp gpgmepp/lang/cpp/src/editinteractor.cpp
--- gpgmepp.org/lang/cpp/src/editinteractor.cpp 2017-03-09 09:01:10.000000000 +0100
+++ gpgmepp/lang/cpp/src/editinteractor.cpp 2017-11-20 18:09:33.022674700 +0100
-@@ -30,9 +30,11 @@
+@@ -33,9 +33,11 @@
#include <gpgme.h>
@@ -46,7 +46,7 @@ diff -ur gpgmepp.org/lang/cpp/src/editinteractor.cpp gpgmepp/lang/cpp/src/editin
diff -ur gpgmepp.org/lang/cpp/src/gpgmepp_export.h gpgmepp/lang/cpp/src/gpgmepp_export.h
--- gpgmepp.org/lang/cpp/src/gpgmepp_export.h 2016-08-04 15:03:09.000000000 +0200
+++ gpgmepp/lang/cpp/src/gpgmepp_export.h 2017-11-20 16:57:47.805691100 +0100
-@@ -29,14 +29,14 @@
+@@ -30,14 +30,14 @@
# ifndef GPGMEPP_EXPORT
# ifdef BUILDING_GPGMEPP
/* We are building this library */
@@ -63,7 +63,7 @@ diff -ur gpgmepp.org/lang/cpp/src/gpgmepp_export.h gpgmepp/lang/cpp/src/gpgmepp_
# define GPGMEPP_EXPORT __declspec(dllimport)
# else
# define GPGMEPP_EXPORT __attribute__((visibility("default")))
-@@ -45,7 +45,7 @@
+@@ -46,7 +46,7 @@
# endif
# ifndef GPGMEPP_NO_EXPORT
@@ -72,7 +72,7 @@ diff -ur gpgmepp.org/lang/cpp/src/gpgmepp_export.h gpgmepp/lang/cpp/src/gpgmepp_
# define GPGMEPP_NO_EXPORT
# else
# define GPGMEPP_NO_EXPORT __attribute__((visibility("hidden")))
-@@ -54,7 +54,11 @@
+@@ -55,7 +55,11 @@
#endif
#ifndef GPGMEPP_DEPRECATED
@@ -88,7 +88,7 @@ diff -ur gpgmepp.org/lang/cpp/src/gpgmepp_export.h gpgmepp/lang/cpp/src/gpgmepp_
diff -ur gpgmepp.org/lang/cpp/src/interfaces/dataprovider.h gpgmepp/lang/cpp/src/interfaces/dataprovider.h
--- gpgmepp.org/lang/cpp/src/interfaces/dataprovider.h 2016-05-17 14:32:37.000000000 +0200
+++ gpgmepp/lang/cpp/src/interfaces/dataprovider.h 2017-11-20 18:03:11.332715700 +0100
-@@ -29,6 +29,11 @@
+@@ -31,6 +31,11 @@
#include <gpg-error.h>
@@ -103,7 +103,7 @@ diff -ur gpgmepp.org/lang/cpp/src/interfaces/dataprovider.h gpgmepp/lang/cpp/src
diff -ur gpgmepp.org/lang/cpp/src/key.cpp gpgmepp/lang/cpp/src/key.cpp
--- gpgmepp.org/lang/cpp/src/key.cpp 2017-03-20 20:10:15.000000000 +0100
+++ gpgmepp/lang/cpp/src/key.cpp 2017-11-20 17:44:50.321858800 +0100
-@@ -33,11 +33,17 @@
+@@ -34,11 +34,17 @@
#include <gpgme.h>
#include <string.h>
@@ -135,7 +135,7 @@ diff -ur gpgmepp.org/lang/cpp/src/key.h gpgmepp/lang/cpp/src/key.h
diff -ur gpgmepp.org/lang/qt/src/qgpgme_export.h gpgmepp/lang/qt/src/qgpgme_export.h
--- gpgmepp.org/lang/qt/src/qgpgme_export.h 2016-11-03 17:32:30.000000000 +0100
+++ gpgmepp/lang/qt/src/qgpgme_export.h 2017-11-20 16:58:27.395388000 +0100
-@@ -39,14 +39,14 @@
+@@ -40,14 +40,14 @@
# ifndef QGPGME_EXPORT
# ifdef BUILDING_QGPGME
/* We are building this library */
@@ -152,7 +152,7 @@ diff -ur gpgmepp.org/lang/qt/src/qgpgme_export.h gpgmepp/lang/qt/src/qgpgme_expo
# define QGPGME_EXPORT __declspec(dllimport)
# else
# define QGPGME_EXPORT __attribute__((visibility("default")))
-@@ -55,7 +55,7 @@
+@@ -56,7 +56,7 @@
# endif
# ifndef QGPGME_NO_EXPORT
@@ -161,7 +161,7 @@ diff -ur gpgmepp.org/lang/qt/src/qgpgme_export.h gpgmepp/lang/qt/src/qgpgme_expo
# define QGPGME_NO_EXPORT
# else
# define QGPGME_NO_EXPORT __attribute__((visibility("hidden")))
-@@ -64,7 +64,11 @@
+@@ -65,7 +65,11 @@
#endif
#ifndef QGPGME_DEPRECATED
diff --git a/external/gpgmepp/w32-include.patch b/external/gpgmepp/w32-include.patch
index 30fdba5f8f26..0fda72c2b072 100644
--- a/external/gpgmepp/w32-include.patch
+++ b/external/gpgmepp/w32-include.patch
@@ -20,3 +20,23 @@
#include <process.h>
#include "priv-io.h"
+--- lang/cpp/src/gpgaddexistingsubkeyeditinteractor.h
++++ lang/cpp/src/gpgaddexistingsubkeyeditinteractor.h
+@@ -27,6 +27,7 @@
+ #include "editinteractor.h"
+
+ #include <memory>
++#include <string>
+
+ namespace GpgME
+ {
+--- lang/cpp/src/gpgrevokekeyeditinteractor.h
++++ lang/cpp/src/gpgrevokekeyeditinteractor.h
+@@ -28,6 +28,7 @@
+ #include "global.h"
+
+ #include <memory>
++#include <string>
+ #include <vector>
+
+ namespace GpgME