Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gpgme for openSUSE:Factory checked 
in at 2021-01-18 11:27:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gpgme (Old)
 and      /work/SRC/openSUSE:Factory/.gpgme.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gpgme"

Mon Jan 18 11:27:22 2021 rev:85 rq:863068 version:1.15.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/gpgme/gpgme.changes      2020-12-09 
22:11:54.419096577 +0100
+++ /work/SRC/openSUSE:Factory/.gpgme.new.28504/gpgme.changes   2021-01-18 
11:30:36.852391040 +0100
@@ -1,0 +2,10 @@
+Tue Jan 12 22:35:23 UTC 2021 - Andreas Stieger <andreas.stie...@gmx.de>
+
+- gpgme 1.15.1:
+  * Fix a bug in the secret key export
+  * Make listing of signatures work if only secret keys are listed
+  * qt: Avoid empty "r...@gnupg.org" signature notations
+  * python: Fix key_export functions
+- remove deprecated texinfo macros
+
+-------------------------------------------------------------------

Old:
----
  gpgme-1.15.0.tar.bz2
  gpgme-1.15.0.tar.bz2.sig

New:
----
  gpgme-1.15.1.tar.bz2
  gpgme-1.15.1.tar.bz2.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gpgme.spec ++++++
--- /var/tmp/diff_new_pack.o1A2wN/_old  2021-01-18 11:30:37.904404224 +0100
+++ /var/tmp/diff_new_pack.o1A2wN/_new  2021-01-18 11:30:37.912404324 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package gpgme
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -30,7 +30,7 @@
 %endif
 %{!?python_module:%define python_module() python-%{**} python3-{**}}
 Name:           gpgme%{psuffix}
-Version:        1.15.0
+Version:        1.15.1
 Release:        0
 Summary:        Programmatic library interface to GnuPG
 License:        LGPL-2.1-or-later AND GPL-3.0-or-later
@@ -50,11 +50,9 @@
 BuildRequires:  pkgconfig
 BuildRequires:  swig
 %if %{with python2} || %{with python3}
-BuildRequires:  python-rpm-macros
 BuildRequires:  %{python_module devel}
+BuildRequires:  python-rpm-macros
 %endif
-Requires(post): %{install_info_prereq}
-Requires(preun): %{install_info_prereq}
 %if %{with qt}
 BuildRequires:  pkgconfig(Qt5Core)
 BuildRequires:  pkgconfig(Qt5Test)
@@ -68,7 +66,6 @@
 %define python_files() -n python3-%{**}
 %endif
 
-
 %description
 GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG
 easier for applications. It provides a high-level crypto API for
@@ -262,11 +259,6 @@
 %postun -n libgpgme11 -p /sbin/ldconfig
 %post -n libgpgmepp6 -p /sbin/ldconfig
 %postun -n libgpgmepp6 -p /sbin/ldconfig
-%post
-%install_info --info-dir=%{_infodir} %{_infodir}/gpgme.info%{ext_info}
-
-%preun
-%install_info_delete --info-dir=%{_infodir} %{_infodir}/gpgme.info%{ext_info}
 %endif
 
 %if !%{with qt}

++++++ gpgme-1.15.0.tar.bz2 -> gpgme-1.15.1.tar.bz2 ++++++
++++ 1807 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/AUTHORS new/gpgme-1.15.1/AUTHORS
--- old/gpgme-1.15.0/AUTHORS    2018-12-03 10:37:25.000000000 +0100
+++ new/gpgme-1.15.1/AUTHORS    2021-01-08 18:07:52.000000000 +0100
@@ -19,7 +19,7 @@
 
   Copyright (C) 1991-2013 Free Software Foundation, Inc.
   Copyright (C) 2000-2001 Werner Koch
-  Copyright (C) 2001-2018 g10 Code GmbH
+  Copyright (C) 2001-2021 g10 Code GmbH
   Copyright (C) 2002 Klar??lvdalens Datakonsult AB
   Copyright (C) 2004-2008 Igor Belyi
   Copyright (C) 2002 John Goerzen
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/ChangeLog new/gpgme-1.15.1/ChangeLog
--- old/gpgme-1.15.0/ChangeLog  2020-11-12 10:30:05.000000000 +0100
+++ new/gpgme-1.15.1/ChangeLog  2021-01-08 18:21:40.000000000 +0100
@@ -1,5 +1,106 @@
+2021-01-08  Werner Koch  <w...@gnupg.org>
+
+       Release 1.15.1.
+       + commit bb9880778fb16cdb6de83905e45bf6c965770013
+
+
+       Make distcheck make target a bit more reliable.
+       + commit 133050b3fa28122a4b60dbbde698fb14379ccf95
+       * Makefile.am (release): Do not pass --parallel
+
+2021-01-05  Ingo Kl??cker  <d...@ingo-kloecker.de>
+
+       core: Make listing of signatures work if only secret keys are listed.
+       + commit 5137d7fc214d0d9dcb947ccdc32fa87979f9a6d0
+       * src/engine-gpg.c (gpg_keylist_build_options): Add "--with-sig-check"
+       argument if signatures shall be listed.
+       * tests/gpg/t-keylist-secret-sig.c: New.
+       * tests/gpg/Makefile.am (c_tests): Add new test.
+
+2021-01-04  Ingo Kl??cker  <d...@ingo-kloecker.de>
+
+       cpp: Add const-overload of UserID::Signature::operator<
+       + commit a6220adf3081c9c848f6d0a6fc3774cb168ccf9c
+       lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::Signature::operator<):
+       Add const-overload. Deprecate non-const overload.
+
+2021-01-04  Andre Heinecke  <aheine...@gnupg.org>
+
+       Qt: Undeprecate QByteArray based start functs.
+       + commit 543e2106386f00ebecf7653e7896fa12a6e828ff
+       * lang/qt/src/encryptjob.h, lang/qt/src/signjob.h (start):
+       Undeprecate QByteArray based functions.
+
+2020-12-03  NIIBE Yutaka  <gni...@fsij.org>
+
+       python: Fix key_export*.
+       + commit 7a4fe82a017b751ad756c93d2b9e31d7be045275
+       * lang/python/src/core.py (key_export): Just raise an error.
+       (key_export_minimal, key_export_secret): Ditto.
+
+2020-11-24  NIIBE Yutaka  <gni...@fsij.org>
+
+       core: Call _gpgme_passphrase_status_handler when exporting keys.
+       + commit 53ac732bae46e1f883998e987fc84d4cababde12
+       * src/export.c (export_status_handler): Call the handler.
+
+2020-11-20  Andre Heinecke  <aheine...@gnupg.org>
+
+       Revert "cpp: Use portable off_t size_t"
+       + commit a5c4b030258714dd72a2e276114183309cad3ec3
+       This reverts commit 88294023c196497cfa6737be262c8b0c09d2a3ce.
+
+2020-11-20  NIIBE Yutaka  <gni...@fsij.org>
+
+       m4: Update with newer autoconf constructs.
+       + commit 4c6fd361593e22092770d120d68a18b4f70e0bb8
+       * src/gpgme.m4: Replace AC_HELP_STRING to AS_HELP_STRING.
+
+2020-11-18  Andre Heinecke  <aheine...@gnupg.org>
+
+       cpp: Use portable off_t size_t.
+       + commit 88294023c196497cfa6737be262c8b0c09d2a3ce
+       * configure.ac: Configure cpp data.h.in
+       * lang/cpp/src/Makefile.am: Generate data.h
+       * lang/cpp/src/data.cpp, lang/cpp/src/data.h: Use portable
+       types.
+       * lang/qt/src/Makefile.am: Include build dir.
+       * lang/qt/tests/makefile.am: Include build dir.
+
+2020-11-18  Ingo Kl??cker  <d...@ingo-kloecker.de>
+           Daniel Kahn Gillmor
+
+       qt: Avoid empty "r...@gnupg.org" signature notations.
+       + commit 3c185c2159cdcc23f44773fe1cfb624b27598c80
+       * lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Check remark for being
+       an empty string instead of a null QString.
+
+2020-11-18  NIIBE Yutaka  <gni...@fsij.org>
+
+       build: Update with newer autoconf constructs.
+       + commit 223779dfdeb7808809372587fa135a8cc2616ce8
+       * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS instead of AC_GNU_SOURCE.
+       Use AS_HELP_STRING instead of AC_HELP_STRING.
+       * m4/libtool.m4: Update from libgpg-error.
+       * m4/gpg-error.m4: Update from libgpg-error.
+       * m4/libassuan.m4: Update from libassuan.
+
+2020-11-12  Andre Heinecke  <aheine...@gnupg.org>
+
+       qt: Fix export of qDebug GpgME::Error overload.
+       + commit df5a89e6929479dc1bf301974fe7d607d024bc1f
+       * lang/qt/src/debug.cpp: Include debug.h to get the export decl.
+
 2020-11-12  Werner Koch  <w...@gnupg.org>
 
+       build: Use ~/.gnupg-autogen.sh for the release targets.
+       + commit 27abdac25dcd4ba57e073a5de2f057830e623282
+       * Makefile.am (sign-release): Use global config vars.
+
+       Post release updates.
+       + commit 01a0d8ec1aa8543dca0986c6dcb5cabc535aae2c
+
+
        Release 1.15.0.
        + commit feea38c89d4ceb40334f884da9ab07cc4b73e757
        * configure.ac: Bump LT versions to c=C35/A24/R0, cpp=C18/A13/R0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/Makefile.am new/gpgme-1.15.1/Makefile.am
--- old/gpgme-1.15.0/Makefile.am        2018-12-03 10:37:25.000000000 +0100
+++ new/gpgme-1.15.1/Makefile.am        2021-01-08 17:39:43.000000000 +0100
@@ -20,14 +20,14 @@
 
 ## Process this file with automake to produce Makefile.in
 
-# Location of the released tarball archives.  Note that this is an
-# internal archive and before uploading this to the public server,
-# manual tests should be run and the git release tat set and pushed.
-# Adjust as needed.
-RELEASE_ARCHIVE_DIR  = wk@vigenere:tarballs/gpgme/
+# Location of the released tarball archives.  This is prefixed by
+# the variable RELEASE_ARCHIVE in ~/.gnupg-autogen.rc.  For example:
+# RELEASE_ARCHIVE=user@host:archive/tarballs
+RELEASE_ARCHIVE_SUFFIX = gpgme
+# The variable RELEASE_SIGNKEY in ~/.gnupg-autogen.rc is used
+# to specify the key for signing.  For example:
+# RELEASE_SIGNKEY=D8692123C4065DEA5E0F3AB5249B39D24F25E3B6
 
-# The key used to sign the released sources.  Adjust as needed.
-RELEASE_SIGNING_KEY  = D8692123C4065DEA5E0F3AB5249B39D24F25E3B6
 
 # Autoconf flags
 ACLOCAL_AMFLAGS = -I m4
@@ -97,7 +97,7 @@
         cd $(abs_top_builddir); \
         rm -rf dist; mkdir dist ; cd dist ; \
         $(abs_top_srcdir)/configure --enable-maintainer-mode; \
-        $(MAKE) distcheck TESTFLAGS=--parallel; \
+        $(MAKE) distcheck; \
         echo "/* Build finished at $$(date -uIseconds) */" ;\
          echo "/*" ;\
         echo " * Please run the final step interactively:" ;\
@@ -108,19 +108,31 @@
 sign-release:
         +(set -e; \
          cd dist; \
+         x=$$(grep '^RELEASE_ARCHIVE=' $$HOME/.gnupg-autogen.rc|cut -d= -f2);\
+          if [ -z "$$x" ]; then \
+             echo "error: RELEASE_ARCHIVE missing in ~/.gnupg-autogen.rc">&2; \
+             exit 2;\
+          fi;\
+          myarchive="$$x/$(RELEASE_ARCHIVE_SUFFIX)";\
+         x=$$(grep '^RELEASE_SIGNKEY=' $$HOME/.gnupg-autogen.rc|cut -d= -f2);\
+          if [ -z "$$x" ]; then \
+             echo "error: RELEASE_SIGNKEY missing in ~/.gnupg-autogen.rc">&2; \
+             exit 2;\
+          fi;\
+         mysignkey="$$x";\
          files1="$(RELEASE_NAME).tar.bz2" ;\
          files2="$(RELEASE_NAME).tar.bz2.sig \
                  $(RELEASE_NAME).swdb \
                  $(RELEASE_NAME).buildlog" ;\
          echo "/* Signing the source tarball ..." ;\
-         gpg -sbu $(RELEASE_SIGNING_KEY) $(RELEASE_NAME).tar.bz2 ;\
+         gpg -sbu $$mysignkey $(RELEASE_NAME).tar.bz2 ;\
          cat $(RELEASE_NAME).swdb >swdb.snippet;\
          echo >>swdb.snippet ;\
          sha1sum $${files1} >>swdb.snippet ;\
           cat "../$(RELEASE_NAME).buildlog" swdb.snippet \
                | gzip >$(RELEASE_NAME).buildlog ;\
           echo "Copying to local archive ..." ;\
-         scp -p $${files1} $${files2} $(RELEASE_ARCHIVE_DIR)/ || true;\
+         scp -p $${files1} $${files2} $$myarchive/ || true;\
           echo "Uploading documentation ..." ;\
          $(MAKE) -C doc online; \
          echo '/*' ;\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/NEWS new/gpgme-1.15.1/NEWS
--- old/gpgme-1.15.0/NEWS       2020-11-12 10:18:33.000000000 +0100
+++ new/gpgme-1.15.1/NEWS       2021-01-08 18:14:21.000000000 +0100
@@ -1,3 +1,22 @@
+Noteworthy changes in version 1.15.1 (2021-01-08)
+-------------------------------------------------
+
+ * Fix another bug in the secret key export.  [#5046]
+
+ * Make listing of signatures work if only secret keys are listed.  [#3580]
+
+ * Fix build problem on FreeBSD.  [a6220adf30]
+
+ * qt: Avoid empty "r...@gnupg.org" signature notations.  [#5142]
+
+ * python: Fix key_export functions.  [#5149]
+
+
+ [c=C35/A24/R1 cpp=C18/A12/R1 qt=C12/A5/R1]
+
+ Release-info: https://dev.gnupg.org/T5225
+
+
 Noteworthy changes in version 1.15.0 (2020-11-12)
 -------------------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/README new/gpgme-1.15.1/README
--- old/gpgme-1.15.0/README     2020-11-12 10:18:42.000000000 +0100
+++ new/gpgme-1.15.1/README     2021-01-08 18:07:35.000000000 +0100
@@ -1,7 +1,7 @@
                        GPGME - GnuPG Made Easy
                      ---------------------------
 
-Copyright 2001-2020 g10 Code GmbH
+Copyright 2001-2021 g10 Code GmbH
 
 This file is free software; as a special exception the author gives
 unlimited permission to copy and/or distribute it, with or without
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/VERSION new/gpgme-1.15.1/VERSION
--- old/gpgme-1.15.0/VERSION    2020-11-12 10:29:38.000000000 +0100
+++ new/gpgme-1.15.1/VERSION    2021-01-08 18:21:12.000000000 +0100
@@ -1 +1 @@
-1.15.0
+1.15.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/conf/config.h.in new/gpgme-1.15.1/conf/config.h.in
--- old/gpgme-1.15.0/conf/config.h.in   2020-11-12 10:27:35.000000000 +0100
+++ new/gpgme-1.15.1/conf/config.h.in   2021-01-08 18:20:23.000000000 +0100
@@ -278,5 +278,5 @@
 #define GPG_ERR_ENABLE_ERRNO_MACROS 1
 
 #define CRIGHTBLURB "Copyright (C) 2000 Werner Koch\n" \
-                    "Copyright (C) 2001--2020 g10 Code GmbH\n"
+                    "Copyright (C) 2001--2021 g10 Code GmbH\n"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/configure.ac new/gpgme-1.15.1/configure.ac
--- old/gpgme-1.15.0/configure.ac       2020-11-12 10:19:50.000000000 +0100
+++ new/gpgme-1.15.1/configure.ac       2021-01-08 18:13:58.000000000 +0100
@@ -1,6 +1,6 @@
 # configure.ac for GPGME
 # Copyright (C) 2000 Werner Koch (dd9jn)
-# Copyright (C) 2001-2018 g10 Code GmbH
+# Copyright (C) 2001-2021 g10 Code GmbH
 #
 # This file is part of GPGME.
 #
@@ -19,7 +19,7 @@
 # SPDX-License-Identifier: LGPL-2.1-or-later
 
 # (Process this file with autoconf to produce a configure script.)
-AC_PREREQ(2.59)
+AC_PREREQ([2.59])
 min_automake_version="1.14"
 
 # To build a release you need to create a tag with the version number
@@ -32,7 +32,7 @@
 m4_define([mym4_package],[gpgme])
 m4_define([mym4_major], [1])
 m4_define([mym4_minor], [15])
-m4_define([mym4_micro], [0])
+m4_define([mym4_micro], [1])
 
 # Below is m4 magic to extract and compute the git revision number,
 # the decimalized short revision number, a beta version string and a
@@ -45,7 +45,7 @@
 m4_define([mym4_revision],     m4_argn(7, mym4_verslist))
 m4_define([mym4_revision_dec], m4_argn(8, mym4_verslist))
 m4_esyscmd([echo ]mym4_version[>VERSION])
-AC_INIT([mym4_package],[mym4_version], [https://bugs.gnupg.org])
+AC_INIT([mym4_package],[mym4_version],[https://bugs.gnupg.org])
 
 # LT Version numbers, remember to change them just *before* a release.
 #   (Code changed:                     REVISION++)
@@ -55,18 +55,18 @@
 #
 LIBGPGME_LT_CURRENT=35
 LIBGPGME_LT_AGE=24
-LIBGPGME_LT_REVISION=0
+LIBGPGME_LT_REVISION=1
 
 # If there is an ABI break in gpgmepp or qgpgme also bump the
 # version in IMPORTED_LOCATION in the GpgmeppConfig-w32.cmake.in.in
 
 LIBGPGMEPP_LT_CURRENT=18
 LIBGPGMEPP_LT_AGE=12
-LIBGPGMEPP_LT_REVISION=0
+LIBGPGMEPP_LT_REVISION=1
 
 LIBQGPGME_LT_CURRENT=12
 LIBQGPGME_LT_AGE=5
-LIBQGPGME_LT_REVISION=0
+LIBQGPGME_LT_REVISION=1
 ################################################
 
 AC_SUBST(LIBGPGME_LT_CURRENT)
@@ -105,7 +105,7 @@
 AC_ARG_VAR(SYSROOT,[locate config scripts also below that directory])
 
 # Enable GNU extensions on systems that have them.
-AC_GNU_SOURCE
+AC_USE_SYSTEM_EXTENSIONS
 
 # Taken from mpfr-4.0.1, then modified for LDADD_FOR_TESTS_KLUDGE
 dnl Under Linux, make sure that the old dtags are used if LD_LIBRARY_PATH
@@ -243,7 +243,7 @@
 
        AM_PATH_GLIB_2_0
        AC_ARG_ENABLE(w32-glib,
-           AC_HELP_STRING([--enable-w32-glib], [build GPGME Glib for W32]),
+           AS_HELP_STRING([--enable-w32-glib],[build GPGME Glib for W32]),
                           build_w32_glib=$enableval)
        ;;
     *)
@@ -291,7 +291,7 @@
 
 
 AC_ARG_ENABLE([fixed-path],
-              AC_HELP_STRING([--enable-fixed-path=PATH],
+              AS_HELP_STRING([--enable-fixed-path=PATH],
                              [locate binaries only via this PATH]),
               [fixed_search_path="$enableval"],
               [fixed_search_path=""])
@@ -304,7 +304,7 @@
 # Note: You need to declare all possible languages also in
 #       lang/Makefile.am's DIST_SUBDIRS.
 AC_ARG_ENABLE([languages],
-              AC_HELP_STRING([--enable-languages=languages],
+              AS_HELP_STRING([--enable-languages=languages],
                              [enable only specific language bindings]),
                              [enabled_languages=`echo $enableval | \
                              tr ',:' '  ' | tr '[A-Z]' '[a-z]' | \
@@ -494,7 +494,7 @@
 AC_SUBST(BUILD_FILEVERSION)
 
 AC_ARG_ENABLE([build-timestamp],
-  AC_HELP_STRING([--enable-build-timestamp],
+  AS_HELP_STRING([--enable-build-timestamp],
                  [set an explicit build timestamp for reproducibility.
                   (default is the current time in ISO-8601 format)]),
      [if test "$enableval" = "yes"; then
@@ -513,25 +513,25 @@
 #
 run_gpgconf_test="yes"
 AC_ARG_ENABLE(gpgconf-test,
-  AC_HELP_STRING([--disable-gpgconf-test], [disable GPGCONF regression test]),
+  AS_HELP_STRING([--disable-gpgconf-test],[disable GPGCONF regression test]),
          run_gpgconf_test=$enableval)
 AM_CONDITIONAL(RUN_GPGCONF_TESTS, test "$run_gpgconf_test" = "yes")
 
 run_gpg_test="yes"
 AC_ARG_ENABLE(gpg-test,
-  AC_HELP_STRING([--disable-gpg-test], [disable GPG regression test]),
+  AS_HELP_STRING([--disable-gpg-test],[disable GPG regression test]),
          run_gpg_test=$enableval)
 AM_CONDITIONAL(RUN_GPG_TESTS, test "$run_gpg_test" = "yes")
 
 run_gpgsm_test="yes"
 AC_ARG_ENABLE(gpgsm-test,
-  AC_HELP_STRING([--disable-gpgsm-test], [disable GPGSM regression test]),
+  AS_HELP_STRING([--disable-gpgsm-test],[disable GPGSM regression test]),
          run_gpgsm_test=$enableval)
 AM_CONDITIONAL(RUN_GPGSM_TESTS, test "$run_gpgsm_test" = "yes")
 
 run_g13_test="yes"
 AC_ARG_ENABLE(g13-test,
-  AC_HELP_STRING([--disable-g13-test], [disable G13 regression test]),
+  AS_HELP_STRING([--disable-g13-test],[disable G13 regression test]),
          run_g13_test=$enableval)
 AM_CONDITIONAL(RUN_G13_TESTS, test "$run_g13_test" = "yes")
 
@@ -750,7 +750,7 @@
 
 use_descriptor_passing=yes
 AC_ARG_ENABLE(fd-passing,
-  AC_HELP_STRING([--disable-fd-passing], [do not use FD passing]),
+  AS_HELP_STRING([--disable-fd-passing],[do not use FD passing]),
   use_descriptor_passing=$enableval)
 
 if test "$supports_descriptor_passing" != "yes"; then
@@ -782,7 +782,7 @@
 # before an exec.  This option allows to switch this optimization off.
 use_linux_getdents=yes
 AC_ARG_ENABLE(linux-getdents,
-              AC_HELP_STRING([--disable-linux-getdents],
+              AS_HELP_STRING([--disable-linux-getdents],
                              [do not use SYS_getdents on Linux]),
               use_linux_getdents=$enableval)
 if test "$use_linux_getdents" = "yes"; then
@@ -824,7 +824,7 @@
 #define GPG_ERR_ENABLE_ERRNO_MACROS 1
 
 #define CRIGHTBLURB "Copyright (C) 2000 Werner Koch\n" \
-                    "Copyright (C) 2001--2020 g10 Code GmbH\n"
+                    "Copyright (C) 2001--2021 g10 Code GmbH\n"
 ])
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/gpgme.spec new/gpgme-1.15.1/gpgme.spec
--- old/gpgme-1.15.0/gpgme.spec 2020-11-12 10:30:05.000000000 +0100
+++ new/gpgme-1.15.1/gpgme.spec 2021-01-08 18:21:40.000000000 +0100
@@ -1,7 +1,7 @@
 # This is a template.  The dist target uses it to create the real file.
 Summary: GPGME - GnuPG Made Easy
 Name: gpgme
-Version: 1.15.0
+Version: 1.15.1
 Release: 1
 URL: https://gnupg.org/gpgme.html
 Source: https://www.gnupg.org/ftp/gcrypt/gpgme/%{name}-%{version}.tar.gz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/lang/cl/gpgme.asd new/gpgme-1.15.1/lang/cl/gpgme.asd
--- old/gpgme-1.15.0/lang/cl/gpgme.asd  2020-11-12 10:29:57.000000000 +0100
+++ new/gpgme-1.15.1/lang/cl/gpgme.asd  2021-01-08 18:21:32.000000000 +0100
@@ -27,7 +27,7 @@
 (defsystem gpgme
   :description "GnuPG Made Easy."
   :author "g10 Code GmbH"
-  :version "1.15.0"
+  :version "1.15.1"
   :licence "GPL"
   :defsystem-depends-on ("cffi-grovel")
   :depends-on ("cffi" "gpg-error" "trivial-garbage")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/lang/cpp/src/key.cpp new/gpgme-1.15.1/lang/cpp/src/key.cpp
--- old/gpgme-1.15.0/lang/cpp/src/key.cpp       2020-11-05 23:27:32.000000000 
+0100
+++ new/gpgme-1.15.1/lang/cpp/src/key.cpp       2021-01-08 16:23:34.000000000 
+0100
@@ -867,6 +867,12 @@
 
 bool UserID::Signature::operator<(const Signature &other)
 {
+    // kept for binary compatibility
+    return static_cast<const UserID::Signature *>(this)->operator<(other);
+}
+
+bool UserID::Signature::operator<(const Signature &other) const
+{
     // based on cmp_signodes() in g10/keylist.c
 
     // both signatures must belong to the same user ID
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/lang/cpp/src/key.h new/gpgme-1.15.1/lang/cpp/src/key.h
--- old/gpgme-1.15.0/lang/cpp/src/key.h 2020-11-05 23:27:32.000000000 +0100
+++ new/gpgme-1.15.1/lang/cpp/src/key.h 2021-01-08 16:23:34.000000000 +0100
@@ -468,7 +468,9 @@
     }
 
     /*! Defines a canonical sort order for signatures of the same user ID. */
-    bool operator<(const Signature &other);
+    bool operator<(const Signature &other) const;
+
+    GPGMEPP_DEPRECATED bool operator<(const Signature &other);
 
     bool isNull() const
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/lang/python/src/core.py 
new/gpgme-1.15.1/lang/python/src/core.py
--- old/gpgme-1.15.0/lang/python/src/core.py    2020-11-05 23:27:32.000000000 
+0100
+++ new/gpgme-1.15.1/lang/python/src/core.py    2021-01-08 16:23:34.000000000 
+0100
@@ -637,7 +637,7 @@
             data.seek(0, os.SEEK_SET)
             pk_result = data.read()
         except GPGMEError as e:
-            pk_result = e
+            raise e
 
         if len(pk_result) > 0:
             result = pk_result
@@ -672,7 +672,7 @@
             data.seek(0, os.SEEK_SET)
             pk_result = data.read()
         except GPGMEError as e:
-            pk_result = e
+            raise e
 
         if len(pk_result) > 0:
             result = pk_result
@@ -713,7 +713,7 @@
             data.seek(0, os.SEEK_SET)
             sk_result = data.read()
         except GPGMEError as e:
-            sk_result = e
+            raise e
 
         if len(sk_result) > 0:
             result = sk_result
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/lang/qt/src/debug.cpp new/gpgme-1.15.1/lang/qt/src/debug.cpp
--- old/gpgme-1.15.0/lang/qt/src/debug.cpp      2020-11-05 23:27:32.000000000 
+0100
+++ new/gpgme-1.15.1/lang/qt/src/debug.cpp      2021-01-08 16:23:34.000000000 
+0100
@@ -36,6 +36,7 @@
 #endif
 
 #include "error.h"
+#include "debug.h"
 
 #include <QDebug>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/lang/qt/src/encryptjob.h 
new/gpgme-1.15.1/lang/qt/src/encryptjob.h
--- old/gpgme-1.15.0/lang/qt/src/encryptjob.h   2017-07-12 14:35:02.000000000 
+0200
+++ new/gpgme-1.15.1/lang/qt/src/encryptjob.h   2021-01-08 16:23:34.000000000 
+0100
@@ -90,7 +90,7 @@
        not be performed, but full validity assumed for all keys
        without further checks.
     */
-    virtual QGPGME_DEPRECATED_EXPORT GpgME::Error start(const 
std::vector<GpgME::Key> &recipients,
+    virtual GpgME::Error start(const std::vector<GpgME::Key> &recipients,
             const QByteArray &plainText, bool alwaysTrust = false) = 0;
 
     /*!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/lang/qt/src/qgpgmesignkeyjob.cpp 
new/gpgme-1.15.1/lang/qt/src/qgpgmesignkeyjob.cpp
--- old/gpgme-1.15.0/lang/qt/src/qgpgmesignkeyjob.cpp   2020-07-15 
12:14:17.000000000 +0200
+++ new/gpgme-1.15.1/lang/qt/src/qgpgmesignkeyjob.cpp   2021-01-08 
16:23:34.000000000 +0100
@@ -83,7 +83,7 @@
         skei->setDupeOk(true);
     }
 
-    if (!remark.isNull()) {
+    if (!remark.isEmpty()) {
         ctx->addSignatureNotation("r...@gnupg.org", 
remark.toUtf8().constData());
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/lang/qt/src/signjob.h new/gpgme-1.15.1/lang/qt/src/signjob.h
--- old/gpgme-1.15.0/lang/qt/src/signjob.h      2017-07-12 14:35:02.000000000 
+0200
+++ new/gpgme-1.15.1/lang/qt/src/signjob.h      2021-01-08 16:23:34.000000000 
+0100
@@ -85,7 +85,7 @@
        Starts the signing operation. \a signers is the list of keys to
        sign \a plainText with. Empty (null) keys are ignored.
     */
-    virtual QGPGME_DEPRECATED_EXPORT GpgME::Error start(const 
std::vector<GpgME::Key> &signers,
+    virtual GpgME::Error start(const std::vector<GpgME::Key> &signers,
             const QByteArray &plainText,
             GpgME::SignatureMode mode) = 0;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/m4/gpg-error.m4 new/gpgme-1.15.1/m4/gpg-error.m4
--- old/gpgme-1.15.0/m4/gpg-error.m4    2018-12-03 10:37:25.000000000 +0100
+++ new/gpgme-1.15.1/m4/gpg-error.m4    2021-01-08 16:23:34.000000000 +0100
@@ -1,5 +1,5 @@
 # gpg-error.m4 - autoconf macro to detect libgpg-error.
-# Copyright (C) 2002, 2003, 2004, 2011, 2014, 2018 g10 Code GmbH
+# Copyright (C) 2002, 2003, 2004, 2011, 2014, 2018, 2020 g10 Code GmbH
 #
 # This file is free software; as a special exception the author gives
 # unlimited permission to copy and/or distribute it, with or without
@@ -9,7 +9,7 @@
 # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
-# Last-changed: 2018-11-02
+# Last-changed: 2020-11-17
 
 
 dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION,
@@ -31,7 +31,7 @@
   dnl since that is consistent with how our three siblings use the directory/
   dnl package name in --with-$dir_name-prefix=PFX.
   AC_ARG_WITH(libgpg-error-prefix,
-              AC_HELP_STRING([--with-libgpg-error-prefix=PFX],
+              AS_HELP_STRING([--with-libgpg-error-prefix=PFX],
                              [prefix where GPG Error is installed (optional)]),
               [gpg_error_config_prefix="$withval"])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/m4/libassuan.m4 new/gpgme-1.15.1/m4/libassuan.m4
--- old/gpgme-1.15.0/m4/libassuan.m4    2018-12-03 10:37:25.000000000 +0100
+++ new/gpgme-1.15.1/m4/libassuan.m4    2021-01-08 16:23:34.000000000 +0100
@@ -9,6 +9,7 @@
 dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 dnl SPDX-License-Identifier: FSFULLR
+# Last-changed: 2020-11-17
 
 dnl
 dnl Common code used for libassuan detection [internal]
@@ -17,7 +18,7 @@
 AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
 [ AC_REQUIRE([AC_CANONICAL_HOST])
   AC_ARG_WITH(libassuan-prefix,
-              AC_HELP_STRING([--with-libassuan-prefix=PFX],
+              AS_HELP_STRING([--with-libassuan-prefix=PFX],
                              [prefix where LIBASSUAN is installed (optional)]),
      libassuan_config_prefix="$withval", libassuan_config_prefix="")
   if test x$libassuan_config_prefix != x ; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/m4/libtool.m4 new/gpgme-1.15.1/m4/libtool.m4
--- old/gpgme-1.15.0/m4/libtool.m4      2017-03-28 16:49:24.000000000 +0200
+++ new/gpgme-1.15.1/m4/libtool.m4      2021-01-08 16:23:34.000000000 +0100
@@ -1326,7 +1326,10 @@
          x86_64-*linux*)
            LD="${LD-ld} -m elf_i386"
            ;;
-         ppc64-*linux*|powerpc64-*linux*)
+         powerpc64le-*)
+           LD="${LD-ld} -m elf32lppclinux"
+           ;;
+         powerpc64-*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -1345,7 +1348,10 @@
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         ppc*-*linux*|powerpc*-*linux*)
+         powerpcle-*)
+           LD="${LD-ld} -m elf64lppc"
+           ;;
+         powerpc-*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
@@ -2638,6 +2644,26 @@
   dynamic_linker=no
   ;;
 
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  ;;
+
 # This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
   version_type=linux # correct to gnu/linux during the next big refactor
@@ -7448,7 +7474,7 @@
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_GCJ_CONFIG],
 [AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
+AC_LANG_PUSH([Java])
 
 # Source file extension for Java test sources.
 ac_ext=java
@@ -7504,7 +7530,7 @@
   _LT_CONFIG($1)
 fi
 
-AC_LANG_RESTORE
+AC_LANG_POP
 
 GCC=$lt_save_GCC
 CC=$lt_save_CC
@@ -7519,7 +7545,7 @@
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_GO_CONFIG],
 [AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
+AC_LANG_PUSH([Go])
 
 # Source file extension for Go test sources.
 ac_ext=go
@@ -7575,7 +7601,7 @@
   _LT_CONFIG($1)
 fi
 
-AC_LANG_RESTORE
+AC_LANG_POP
 
 GCC=$lt_save_GCC
 CC=$lt_save_CC
@@ -7590,7 +7616,9 @@
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_RC_CONFIG],
 [AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
+
+dnl Here, something like AC_LANG_PUSH([RC]) is expected.
+dnl But Resource Compiler is not supported as a language by autoconf
 
 # Source file extension for RC test sources.
 ac_ext=rc
@@ -7629,8 +7657,10 @@
   _LT_CONFIG($1)
 fi
 
+dnl Here, AC_LANG_POP is expected.
 GCC=$lt_save_GCC
-AC_LANG_RESTORE
+dnl Back to C
+AC_LANG([C])
 CC=$lt_save_CC
 CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_RC_CONFIG
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/src/engine-gpg.c new/gpgme-1.15.1/src/engine-gpg.c
--- old/gpgme-1.15.0/src/engine-gpg.c   2020-11-05 23:27:32.000000000 +0100
+++ new/gpgme-1.15.1/src/engine-gpg.c   2021-01-08 16:23:34.000000000 +0100
@@ -3017,6 +3017,12 @@
       err = add_arg (gpg, "--with-keygrip");
     }
 
+  if (!err && (mode & GPGME_KEYLIST_MODE_SIGS)
+      && have_gpg_version (gpg, "2.0.10"))
+    {
+      err = add_arg (gpg, "--with-sig-check");
+    }
+
   if (!err
       && (mode & GPGME_KEYLIST_MODE_SIGS)
       && (mode & GPGME_KEYLIST_MODE_SIG_NOTATIONS))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/src/export.c new/gpgme-1.15.1/src/export.c
--- old/gpgme-1.15.0/src/export.c       2020-11-12 09:59:47.000000000 +0100
+++ new/gpgme-1.15.1/src/export.c       2021-01-08 16:23:34.000000000 +0100
@@ -88,6 +88,10 @@
   op_data_t opd;
   const char *loc;
 
+  err = _gpgme_passphrase_status_handler (priv, code, args);
+  if (err)
+    return err;
+
   err = _gpgme_op_data_lookup (ctx, OPDATA_EXPORT, &hook, -1, NULL);
   opd = hook;
   if (err)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/src/gpgme.m4 new/gpgme-1.15.1/src/gpgme.m4
--- old/gpgme-1.15.0/src/gpgme.m4       2018-12-03 10:37:25.000000000 +0100
+++ new/gpgme-1.15.1/src/gpgme.m4       2021-01-08 16:23:34.000000000 +0100
@@ -9,12 +9,12 @@
 # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
-# Last-changed: 2018-11-12
+# Last-changed: 2020-11-20
 
 
 AC_DEFUN([_AM_PATH_GPGME_CONFIG],
 [ AC_ARG_WITH(gpgme-prefix,
-            AC_HELP_STRING([--with-gpgme-prefix=PFX],
+            AS_HELP_STRING([--with-gpgme-prefix=PFX],
                            [prefix where GPGME is installed (optional)]),
      gpgme_config_prefix="$withval", gpgme_config_prefix="")
   if test x"${GPGME_CONFIG}" = x ; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/src/versioninfo.rc.in new/gpgme-1.15.1/src/versioninfo.rc.in
--- old/gpgme-1.15.0/src/versioninfo.rc.in      2020-11-12 10:19:16.000000000 
+0100
+++ new/gpgme-1.15.1/src/versioninfo.rc.in      2021-01-08 18:08:07.000000000 
+0100
@@ -39,7 +39,7 @@
             VALUE "FileDescription", "GPGME - GnuPG Made Easy\0"
             VALUE "FileVersion", 
"@LIBGPGME_LT_CURRENT@.@LIBGPGME_LT_AGE@.@LIBGPGME_LT_REVISION@.@BUILD_REVISION@\0"
             VALUE "InternalName", "gpgme\0"
-            VALUE "LegalCopyright", "Copyright ? 2001-2020 g10 Code GmbH\0"
+            VALUE "LegalCopyright", "Copyright ? 2001-2021 g10 Code GmbH\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "gpgme.dll\0"
             VALUE "PrivateBuild", "\0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/tests/gpg/Makefile.am new/gpgme-1.15.1/tests/gpg/Makefile.am
--- old/gpgme-1.15.0/tests/gpg/Makefile.am      2020-07-15 15:57:11.000000000 
+0200
+++ new/gpgme-1.15.1/tests/gpg/Makefile.am      2021-01-08 16:23:34.000000000 
+0100
@@ -38,7 +38,7 @@
 c_tests = \
         t-encrypt t-encrypt-sym t-encrypt-sign t-sign t-signers                
\
        t-decrypt t-verify t-decrypt-verify t-sig-notation t-export     \
-       t-import t-edit t-keylist t-keylist-sig t-wait  \
+       t-import t-edit t-keylist t-keylist-sig t-keylist-secret-sig t-wait     
\
        t-encrypt-large t-file-name t-gpgconf t-encrypt-mixed \
        $(tests_unix)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gpgme-1.15.0/tests/gpg/t-keylist-secret-sig.c 
new/gpgme-1.15.1/tests/gpg/t-keylist-secret-sig.c
--- old/gpgme-1.15.0/tests/gpg/t-keylist-secret-sig.c   1970-01-01 
01:00:00.000000000 +0100
+++ new/gpgme-1.15.1/tests/gpg/t-keylist-secret-sig.c   2021-01-08 
16:23:34.000000000 +0100
@@ -0,0 +1,628 @@
+/* t-keylist-secret-sig.c - Regression test.
+ * Copyright (C) 2000 Werner Koch (dd9jn)
+ * Copyright (C) 2001, 2003, 2004 g10 Code GmbH
+ *
+ * This file is part of GPGME.
+ *
+ * GPGME is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * GPGME 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <https://gnu.org/licenses/>.
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ */
+
+/* We need to include config.h so that we know whether we are building
+   with large file system (LFS) support. */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <gpgme.h>
+
+#include "t-support.h"
+
+
+struct
+{
+  const char *fpr;
+  const char *sec_keyid;
+  struct
+  {
+    const char *name;
+    const char *comment;
+    const char *email;
+    struct
+    {
+      gpgme_pubkey_algo_t algo;
+      const char *keyid;
+      const char *name;
+      const char *comment;
+      const char *email;
+      unsigned int sig_class;
+      int exportable;
+    } sig;
+  } uid[3];
+}
+keys[] =
+  {
+    { "A0FF4590BB6122EDEF6E3C542D727CC768697734", "6AE6D7EE46A871F8",
+      { { "Alfa Test", "demo key", "a...@example.net",
+          { GPGME_PK_DSA, "2D727CC768697734",
+           "Alfa Test", "demo key", "a...@example.net", 19, 1 } },
+       { "Alpha Test", "demo key", "al...@example.net",
+          { GPGME_PK_DSA, "2D727CC768697734",
+           "Alfa Test", "demo key", "a...@example.net", 19, 1 } },
+       { "Alice", "demo key", NULL,
+          { GPGME_PK_DSA, "2D727CC768697734",
+           "Alfa Test", "demo key", "a...@example.net", 19, 1 } } } },
+    { NULL }
+  };
+
+
+int
+main (void)
+{
+  gpgme_error_t err;
+  gpgme_ctx_t ctx;
+  gpgme_key_t key;
+  gpgme_keylist_result_t result;
+  int mode;
+  int i = 0;
+
+  init_gpgme (GPGME_PROTOCOL_OpenPGP);
+
+  err = gpgme_new (&ctx);
+  fail_if_err (err);
+
+  mode  = gpgme_get_keylist_mode (ctx);
+  mode |= GPGME_KEYLIST_MODE_SIGS;
+  err = gpgme_set_keylist_mode (ctx, mode);
+  fail_if_err (err);
+
+  err = gpgme_op_keylist_start (ctx, "Alpha", 1);
+  fail_if_err (err);
+
+  while (!(err = gpgme_op_keylist_next (ctx, &key)))
+    {
+      if (!keys[i].fpr)
+       {
+         fprintf (stderr, "More keys returned than expected\n");
+         exit (1);
+       }
+
+      /* Global key flags.  */
+      if (key->revoked)
+       {
+         fprintf (stderr, "Key unexpectedly revoked\n");
+         exit (1);
+       }
+      if (key->expired)
+       {
+         fprintf (stderr, "Key unexpectedly expired\n");
+         exit (1);
+       }
+      if (key->disabled)
+       {
+         fprintf (stderr, "Key unexpectedly disabled\n");
+         exit (1);
+       }
+      if (key->invalid)
+       {
+         fprintf (stderr, "Key unexpectedly invalid\n");
+         exit (1);
+       }
+      if (!key->can_encrypt)
+       {
+         fprintf (stderr, "Key unexpectedly unusable for encryption\n");
+         exit (1);
+       }
+      if (!key->can_sign)
+       {
+         fprintf (stderr, "Key unexpectedly unusable for signing\n");
+         exit (1);
+       }
+      if (!key->can_certify)
+       {
+         fprintf (stderr, "Key unexpectedly unusable for certifications\n");
+         exit (1);
+       }
+      if (!key->secret)
+       {
+         fprintf (stderr, "Key unexpectedly not secret\n");
+         exit (1);
+       }
+      if (key->protocol != GPGME_PROTOCOL_OpenPGP)
+       {
+         fprintf (stderr, "Key has unexpected protocol: %s\n",
+                  gpgme_get_protocol_name (key->protocol));
+         exit (1);
+       }
+      if (key->issuer_serial)
+       {
+         fprintf (stderr, "Key unexpectedly carries issuer serial: %s\n",
+                  key->issuer_serial);
+         exit (1);
+       }
+      if (key->issuer_name)
+       {
+         fprintf (stderr, "Key unexpectedly carries issuer name: %s\n",
+                  key->issuer_name);
+         exit (1);
+       }
+      if (key->chain_id)
+       {
+         fprintf (stderr, "Key unexpectedly carries chain ID: %s\n",
+                  key->chain_id);
+         exit (1);
+       }
+      if (key->owner_trust != GPGME_VALIDITY_UNKNOWN)
+       {
+         fprintf (stderr, "Key has unexpected owner trust: %i\n",
+                  key->owner_trust);
+         exit (1);
+       }
+      if (!key->subkeys || !key->subkeys->next || key->subkeys->next->next)
+       {
+         fprintf (stderr, "Key has unexpected number of subkeys\n");
+         exit (1);
+       }
+
+      /* Primary key.  */
+      if (key->subkeys->revoked)
+       {
+         fprintf (stderr, "Primary key unexpectedly revoked\n");
+         exit (1);
+       }
+      if (key->subkeys->expired)
+       {
+         fprintf (stderr, "Primary key unexpectedly expired\n");
+         exit (1);
+       }
+      if (key->subkeys->disabled)
+       {
+         fprintf (stderr, "Primary key unexpectedly disabled\n");
+         exit (1);
+       }
+      if (key->subkeys->invalid)
+       {
+         fprintf (stderr, "Primary key unexpectedly invalid\n");
+         exit (1);
+       }
+      if (key->subkeys->can_encrypt)
+       {
+         fprintf (stderr, "Primary key unexpectedly usable for encryption\n");
+         exit (1);
+       }
+      if (!key->subkeys->can_sign)
+       {
+         fprintf (stderr, "Primary key unexpectedly unusable for signing\n");
+         exit (1);
+       }
+      if (!key->subkeys->can_certify)
+       {
+         fprintf (stderr, "Primary key unexpectedly unusable for 
certifications\n");
+         exit (1);
+       }
+      if (!key->subkeys->secret)
+       {
+         fprintf (stderr, "Primary key unexpectedly not secret\n");
+         exit (1);
+       }
+      if (key->subkeys->pubkey_algo != GPGME_PK_DSA)
+       {
+         fprintf (stderr, "Primary key has unexpected public key algo: %s\n",
+                  gpgme_pubkey_algo_name (key->subkeys->pubkey_algo));
+         exit (1);
+       }
+      if (key->subkeys->length != 1024)
+       {
+         fprintf (stderr, "Primary key has unexpected length: %i\n",
+                  key->subkeys->length);
+         exit (1);
+       }
+      if (strcmp (key->subkeys->keyid, &keys[i].fpr[40 - 16]))
+       {
+         fprintf (stderr, "Primary key has unexpected key ID: %s\n",
+                  key->subkeys->keyid);
+         exit (1);
+       }
+      if (strcmp (key->subkeys->fpr, keys[i].fpr))
+       {
+         fprintf (stderr, "Primary key has unexpected fingerprint: %s\n",
+                  key->subkeys->fpr);
+         exit (1);
+       }
+      if (key->subkeys->expires)
+       {
+         fprintf (stderr, "Primary key unexpectedly expires: %lu\n",
+                  key->subkeys->expires);
+         exit (1);
+       }
+
+      /* Secondary key.  */
+      if (key->subkeys->next->revoked)
+       {
+         fprintf (stderr, "Secondary key unexpectedly revoked\n");
+         exit (1);
+       }
+      if (key->subkeys->next->expired)
+       {
+         fprintf (stderr, "Secondary key unexpectedly expired\n");
+         exit (1);
+       }
+      if (key->subkeys->next->disabled)
+       {
+         fprintf (stderr, "Secondary key unexpectedly disabled\n");
+         exit (1);
+       }
+      if (key->subkeys->next->invalid)
+       {
+         fprintf (stderr, "Secondary key unexpectedly invalid\n");
+         exit (1);
+       }
+      if (!key->subkeys->next->can_encrypt)
+       {
+         fprintf (stderr, "Secondary key unexpectedly unusable for 
encryption\n");
+         exit (1);
+       }
+      if (key->subkeys->next->can_sign)
+       {
+         fprintf (stderr, "Secondary key unexpectedly usable for signing\n");
+         exit (1);
+       }
+      if (key->subkeys->next->can_certify)
+       {
+         fprintf (stderr, "Secondary key unexpectedly usable for 
certifications\n");
+         exit (1);
+       }
+      if (!key->subkeys->next->secret)
+       {
+         fprintf (stderr, "Secondary key unexpectedly not secret\n");
+         exit (1);
+       }
+      if (key->subkeys->next->pubkey_algo != GPGME_PK_ELG_E)
+       {
+         fprintf (stderr, "Secondary key has unexpected public key algo: %s\n",
+                  gpgme_pubkey_algo_name (key->subkeys->next->pubkey_algo));
+         exit (1);
+       }
+      if (key->subkeys->next->length != 1024)
+       {
+         fprintf (stderr, "Secondary key has unexpected length: %i\n",
+                  key->subkeys->next->length);
+         exit (1);
+       }
+      if (strcmp (key->subkeys->next->keyid, keys[i].sec_keyid))
+       {
+         fprintf (stderr, "Secondary key has unexpected key ID: %s\n",
+                  key->subkeys->next->keyid);
+         exit (1);
+       }
+      if (!key->subkeys->next->fpr)
+       {
+         fprintf (stderr, "Secondary key has unexpectedly no fingerprint\n");
+         exit (1);
+       }
+      if (key->subkeys->next->expires)
+       {
+         fprintf (stderr, "Secondary key unexpectedly expires: %lu\n",
+                  key->subkeys->next->expires);
+         exit (1);
+       }
+
+      /* FIXME: The below test will crash if we want to check for a
+        name, comment or email that doesn't exist in the key's user
+        IDs.  */
+      if (!((!keys[i].uid[0].name && !key->uids)
+           || (keys[i].uid[0].name && !keys[i].uid[1].name
+               && key->uids && !key->uids->next)
+           || (keys[i].uid[0].name && keys[i].uid[1].name
+               && !keys[i].uid[2].name
+               && key->uids && key->uids->next && !key->uids->next->next)
+           || (keys[i].uid[0].name && keys[i].uid[1].name
+               && keys[i].uid[2].name
+               && key->uids && key->uids->next && key->uids->next->next
+               && !key->uids->next->next->next)))
+         {
+           fprintf (stderr, "Key has unexpected number of user IDs\n");
+           exit (1);
+         }
+      if (key->uids && key->uids->revoked)
+       {
+         fprintf (stderr, "First user ID unexpectedly revoked\n");
+         exit (1);
+       }
+      if (key->uids && key->uids->invalid)
+       {
+         fprintf (stderr, "First user ID unexpectedly invalid\n");
+         exit (1);
+       }
+      if (key->uids && key->uids->validity != GPGME_VALIDITY_UNKNOWN)
+       {
+         fprintf (stderr, "First user ID has unexpectedly validity: %i\n",
+                  key->uids->validity);
+         exit (1);
+       }
+      if (keys[i].uid[0].name
+         && strcmp (keys[i].uid[0].name, key->uids->name))
+       {
+         fprintf (stderr, "Unexpected name in first user ID: %s\n",
+                  key->uids->name);
+         exit (1);
+       }
+      if (keys[i].uid[0].comment
+         && strcmp (keys[i].uid[0].comment, key->uids->comment))
+       {
+         fprintf (stderr, "Unexpected comment in first user ID: %s\n",
+                  key->uids->comment);
+         exit (1);
+       }
+      if (keys[i].uid[0].email
+         && strcmp (keys[i].uid[0].email, key->uids->email))
+       {
+         fprintf (stderr, "Unexpected email in first user ID: %s\n",
+                  key->uids->email);
+         exit (1);
+       }
+      if (key->uids && (!key->uids->signatures || key->uids->signatures->next))
+       {
+         fprintf (stderr, "First user ID unexpected number of signatures\n");
+         exit (1);
+       }
+      if (keys[i].uid[0].sig.algo != key->uids->signatures->pubkey_algo)
+       {
+         fprintf (stderr, "Unexpected algorithm in first user ID sig: %s\n",
+                  gpgme_pubkey_algo_name (key->uids->signatures->pubkey_algo));
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[0].sig.keyid, key->uids->signatures->keyid))
+       {
+         fprintf (stderr, "Unexpected key ID in first user ID sig: %s\n",
+                  key->uids->signatures->keyid);
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[0].sig.name, key->uids->signatures->name))
+       {
+         fprintf (stderr, "Unexpected name in first user ID sig: %s\n",
+                  key->uids->signatures->name);
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[0].sig.comment, key->uids->signatures->comment))
+       {
+         fprintf (stderr, "Unexpected comment in first user ID sig: %s\n",
+                  key->uids->signatures->comment);
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[0].sig.email, key->uids->signatures->email))
+       {
+         fprintf (stderr, "Unexpected email in first user ID sig: %s\n",
+                  key->uids->signatures->email);
+         exit (1);
+       }
+      if (keys[i].uid[0].sig.sig_class != key->uids->signatures->sig_class)
+       {
+         fprintf (stderr, "Unexpected class in first user ID sig: %i\n",
+                  key->uids->signatures->sig_class);
+         exit (1);
+       }
+      if (keys[i].uid[0].sig.exportable != key->uids->signatures->exportable)
+       {
+         fprintf (stderr, "Unexpected exportable stat in first user ID sig: 
%i\n",
+                  key->uids->signatures->exportable);
+         exit (1);
+       }
+
+      if (key->uids && key->uids->next && key->uids->next->revoked)
+       {
+         fprintf (stderr, "Second user ID unexpectedly revoked\n");
+         exit (1);
+       }
+      if (key->uids && key->uids->next && key->uids->next->invalid)
+       {
+         fprintf (stderr, "Second user ID unexpectedly invalid\n");
+         exit (1);
+       }
+      if (key->uids && key->uids->next
+         && key->uids->next->validity != GPGME_VALIDITY_UNKNOWN)
+       {
+         fprintf (stderr, "Second user ID has unexpectedly validity: %i\n",
+                  key->uids->next->validity);
+         exit (1);
+       }
+      if (keys[i].uid[1].name
+         && strcmp (keys[i].uid[1].name, key->uids->next->name))
+       {
+         fprintf (stderr, "Unexpected name in second user ID: %s\n",
+                  key->uids->next->name);
+         exit (1);
+       }
+      if (keys[i].uid[1].comment
+         && strcmp (keys[i].uid[1].comment, key->uids->next->comment))
+       {
+         fprintf (stderr, "Unexpected comment in second user ID: %s\n",
+                  key->uids->next->comment);
+         exit (1);
+       }
+      if (keys[i].uid[1].email
+         && strcmp (keys[i].uid[1].email, key->uids->next->email))
+       {
+         fprintf (stderr, "Unexpected email in second user ID: %s\n",
+                  key->uids->next->email);
+         exit (1);
+       }
+      /* Note: There is a bug in gpg 1.3.4 which duplicates a
+         signature after importing the secret key.  Thus we disable
+         the second part of the check. */
+      if (key->uids && (!key->uids->next->signatures /*|| 
key->uids->next->signatures->next*/))
+       {
+         fprintf (stderr, "Second user ID unexpected number of signatures\n");
+         exit (1);
+       }
+      if (keys[i].uid[1].sig.algo != key->uids->next->signatures->pubkey_algo)
+       {
+         fprintf (stderr, "Unexpected algorithm in second user ID sig: %s\n",
+                  gpgme_pubkey_algo_name 
(key->uids->next->signatures->pubkey_algo));
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[1].sig.keyid, 
key->uids->next->signatures->keyid))
+       {
+         fprintf (stderr, "Unexpected key ID in second user ID sig: %s\n",
+                  key->uids->next->signatures->keyid);
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[1].sig.name, key->uids->next->signatures->name))
+       {
+         fprintf (stderr, "Unexpected name in second user ID sig: %s\n",
+                  key->uids->next->signatures->name);
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[1].sig.comment, 
key->uids->next->signatures->comment))
+       {
+         fprintf (stderr, "Unexpected comment in second user ID sig: %s\n",
+                  key->uids->next->signatures->comment);
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[1].sig.email, 
key->uids->next->signatures->email))
+       {
+         fprintf (stderr, "Unexpected email in second user ID sig: %s\n",
+                  key->uids->next->signatures->email);
+         exit (1);
+       }
+      if (keys[i].uid[1].sig.sig_class != 
key->uids->next->signatures->sig_class)
+       {
+         fprintf (stderr, "Unexpected class in second user ID sig: %i\n",
+                  key->uids->next->signatures->sig_class);
+         exit (1);
+       }
+      if (keys[i].uid[1].sig.exportable != 
key->uids->next->signatures->exportable)
+       {
+         fprintf (stderr, "Unexpected exportable stat in second user ID sig: 
%i\n",
+                  key->uids->next->signatures->exportable);
+         exit (1);
+       }
+
+      if (key->uids && key->uids->next && key->uids->next->next
+         && key->uids->next->next->revoked)
+       {
+         fprintf (stderr, "Third user ID unexpectedly revoked\n");
+         exit (1);
+       }
+      if (key->uids && key->uids->next && key->uids->next->next
+         && key->uids->next->next->invalid)
+       {
+         fprintf (stderr, "Third user ID unexpectedly invalid\n");
+         exit (1);
+       }
+      if (key->uids && key->uids->next && key->uids->next->next
+         && key->uids->next->next->validity != GPGME_VALIDITY_UNKNOWN)
+       {
+         fprintf (stderr, "Third user ID has unexpectedly validity: %i\n",
+                  key->uids->next->next->validity);
+         exit (1);
+       }
+      if (keys[i].uid[2].name
+         && strcmp (keys[i].uid[2].name, key->uids->next->next->name))
+       {
+         fprintf (stderr, "Unexpected name in third user ID: %s\n",
+                  key->uids->next->next->name);
+         exit (1);
+       }
+      if (keys[i].uid[2].comment
+         && strcmp (keys[i].uid[2].comment, key->uids->next->next->comment))
+       {
+         fprintf (stderr, "Unexpected comment in third user ID: %s\n",
+                  key->uids->next->next->comment);
+         exit (1);
+       }
+      if (keys[i].uid[2].email
+         && strcmp (keys[i].uid[2].email, key->uids->next->next->email))
+       {
+         fprintf (stderr, "Unexpected email in third user ID: %s\n",
+                  key->uids->next->next->email);
+         exit (1);
+       }
+      if (key->uids && (!key->uids->next->next->signatures
+                       || key->uids->next->next->signatures->next))
+       {
+         fprintf (stderr, "Third user ID unexpected number of signatures\n");
+         exit (1);
+       }
+      if (keys[i].uid[2].sig.algo != 
key->uids->next->next->signatures->pubkey_algo)
+       {
+         fprintf (stderr, "Unexpected algorithm in third user ID sig: %s\n",
+                  gpgme_pubkey_algo_name 
(key->uids->next->next->signatures->pubkey_algo));
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[2].sig.keyid, 
key->uids->next->next->signatures->keyid))
+       {
+         fprintf (stderr, "Unexpected key ID in third user ID sig: %s\n",
+                  key->uids->next->next->signatures->keyid);
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[2].sig.name, 
key->uids->next->next->signatures->name))
+       {
+         fprintf (stderr, "Unexpected name in third user ID sig: %s\n",
+                  key->uids->next->next->signatures->name);
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[2].sig.comment, 
key->uids->next->next->signatures->comment))
+       {
+         fprintf (stderr, "Unexpected comment in third user ID sig: %s\n",
+                  key->uids->next->next->signatures->comment);
+         exit (1);
+       }
+      if (strcmp (keys[i].uid[2].sig.email, 
key->uids->next->next->signatures->email))
+       {
+         fprintf (stderr, "Unexpected email in third user ID sig: %s\n",
+                  key->uids->next->next->signatures->email);
+         exit (1);
+       }
+      if (keys[i].uid[2].sig.sig_class != 
key->uids->next->next->signatures->sig_class)
+       {
+         fprintf (stderr, "Unexpected class in third user ID sig: %i\n",
+                  key->uids->next->next->signatures->sig_class);
+         exit (1);
+       }
+      if (keys[i].uid[2].sig.exportable != 
key->uids->next->next->signatures->exportable)
+       {
+         fprintf (stderr, "Unexpected exportable stat in third user ID sig: 
%i\n",
+                  key->uids->next->next->signatures->exportable);
+         exit (1);
+       }
+
+      gpgme_key_unref (key);
+      i++;
+    }
+  if (gpgme_err_code (err) != GPG_ERR_EOF)
+    fail_if_err (err);
+  err = gpgme_op_keylist_end (ctx);
+  fail_if_err (err);
+
+  result = gpgme_op_keylist_result (ctx);
+  if (result->truncated)
+    {
+      fprintf (stderr, "Key listing unexpectedly truncated\n");
+      exit (1);
+    }
+
+  if (keys[i].fpr)
+    {
+      fprintf (stderr, "Less keys returned than expected\n");
+      exit (1);
+    }
+
+  gpgme_release (ctx);
+  return 0;
+}

Reply via email to