summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog46
-rw-r--r--Makefile.am59
-rw-r--r--Makefile.in60
-rw-r--r--NEWS17
-rw-r--r--VERSION2
-rwxr-xr-xconfigure38
-rw-r--r--configure.ac13
-rw-r--r--doc/defsincdate2
-rw-r--r--doc/gpgme.info246
-rw-r--r--doc/gpgme.info-1122
-rw-r--r--doc/gpgme.info-277
-rw-r--r--doc/gpgme.texi55
-rw-r--r--gpgme.spec2
-rw-r--r--lang/cl/gpgme.asd2
-rw-r--r--lang/cpp/src/key.cpp49
-rw-r--r--lang/cpp/src/key.h31
-rw-r--r--src/Makefile.am2
-rw-r--r--src/Makefile.in9
-rw-r--r--src/decrypt.c1
-rw-r--r--src/verify.c1
-rw-r--r--tests/gpg/t-verify.c12
21 files changed, 604 insertions, 242 deletions
diff --git a/ChangeLog b/ChangeLog
index 10dfc61..3a4fcca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,49 @@
+2018-04-20 Werner Koch <wk@gnupg.org>
+
+ Release 1.11.1.
+ + commit 2e9a14912fb906c17017553ccd0941d172e095ff
+ * configure.ac: Bump LT version to C31/A20/R1. For cpp to C13/A7/R0.
+ For qt to: C10/A3/R2.
+
+ core: Remove another debug output leftover.
+ + commit f779362ffbc7b9334d98f9ee50bfe3c2dc177215
+ * src/decrypt.c (_gpgme_decrypt_status_handler): Remove log debug.
+
+ build: More release creation automation.
+ + commit d11bec5ef5e576dab52c1dc7d87758e4f9bf3583
+ * Makefile.am: Add release and sign-release targets.
+
+2018-04-19 Werner Koch <wk@gnupg.org>
+
+ json: Remove the -noinstall flag used during development.
+ + commit ab43d85b9a76fb5ba321f4c7280b4d72bfd67f59
+ * src/Makefile.am (gpgme-json_LDFLAGS): Remove.
+
+2018-04-19 Andre Heinecke <aheinecke@intevation.de>
+
+ cpp: Add origin and last_update to UserID.
+ + commit d65d6329319bff8cc555999fc92a20e151762a10
+ * NEWS: Mention it.
+ * lang/cpp/src/key.cpp, lang/cpp/src/key.h (UserID::lastUpdate),
+ (UserID::origin): New.
+ (gpgme_origin_to_pp_origin): New helper.
+
+ cpp: Add origin and last_update.
+ + commit 0adaf7bafd352f1c3a1e797493780150e3bb0adc
+ * NEWS: mention interface change.
+ * lang/cpp/src/key.cpp (Key::origin, Key::lastUpdate): New.
+ * lang/cpp/src/key.h (Key::Origin): New enum.
+
+2018-04-19 Werner Koch <wk@gnupg.org>
+
+ core: Remove leftover debug output.
+ + commit b52a91f5a6818db6b3dd7ce86c01b5d5f6700d0d
+ * src/verify.c (_gpgme_verify_status_handler): Remove debug output.
+
+ tests: Fix t-verify test for GnuPG < 2.2.7.
+ + commit 3d8e5c07511938a0b30b4626530822338abd9ec0
+ * tests/gpg/t-verify.c (check_result): Tweak for gnupg < 2.2.7.
+
2018-04-18 Werner Koch <wk@gnupg.org>
Release 1.11.0.
diff --git a/Makefile.am b/Makefile.am
index e47ace5..2dc02e7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,6 +19,16 @@
## 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/
+
+# The key used to sign the released sources. Adjust as needed.
+RELEASE_SIGNING_KEY = D8692123C4065DEA5E0F3AB5249B39D24F25E3B6
+
+# Autoconf flags
ACLOCAL_AMFLAGS = -I m4
DISTCHECK_CONFIGURE_FLAGS =
@@ -57,9 +67,9 @@ distcheck-hook:
esac;\
done ) | tee $(distdir).swdb
+.PHONY: gen-ChangeLog release sign-release
gen_start_date = 2011-12-01T00:00:00
-.PHONY: gen-ChangeLog
gen-ChangeLog:
if test -d $(top_srcdir)/.git; then \
(cd $(top_srcdir) && \
@@ -70,3 +80,50 @@ gen-ChangeLog:
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi
+
+
+# Macro to help the release target.
+RELEASE_NAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
+
+release:
+ +(set -e;\
+ if [ "$(abs_top_builddir)" = "$(abs_top_srcdir)" ]; then \
+ echo "error: build directory must not be the source directory" >&2;\
+ exit 2;\
+ fi ;\
+ echo "/* Build started at $$(date -uIseconds) */" ;\
+ cd $(top_srcdir); \
+ ./autogen.sh --force; \
+ cd $(abs_top_builddir); \
+ rm -rf dist; mkdir dist ; cd dist ; \
+ $(abs_top_srcdir)/configure --enable-maintainer-mode; \
+ $(MAKE) distcheck TESTFLAGS=--parallel; \
+ echo "/* Build finished at $$(date -uIseconds) */" ;\
+ echo "/*" ;\
+ echo " * Please run the final step interactivly:" ;\
+ echo " * make sign-release" ;\
+ echo " */" ;\
+ ) 2>&1 | tee "$(RELEASE_NAME).buildlog"
+
+sign-release:
+ +(set -e; \
+ cd dist; \
+ 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 ;\
+ 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;\
+ echo "Uploading documentation ..." ;\
+ $(MAKE) -C doc online; \
+ echo '/*' ;\
+ echo ' * All done; for checksums see dist/swdb.snippet' ;\
+ echo ' */' ;\
+ )
diff --git a/Makefile.in b/Makefile.in
index 15dfd86..7803997 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -425,6 +425,17 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
+
+# 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/
+
+# The key used to sign the released sources. Adjust as needed.
+RELEASE_SIGNING_KEY = D8692123C4065DEA5E0F3AB5249B39D24F25E3B6
+
+# Autoconf flags
ACLOCAL_AMFLAGS = -I m4
DISTCHECK_CONFIGURE_FLAGS =
EXTRA_DIST = autogen.sh autogen.rc gpgme.spec.in \
@@ -434,6 +445,9 @@ EXTRA_DIST = autogen.sh autogen.rc gpgme.spec.in \
@RUN_GPG_TESTS_TRUE@tests = tests
SUBDIRS = src ${tests} doc lang
gen_start_date = 2011-12-01T00:00:00
+
+# Macro to help the release target.
+RELEASE_NAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
@@ -940,7 +954,8 @@ distcheck-hook:
echo "$${pref}sha2 $$(sha256sum <$$i|cut -d' ' -f1)" ;;\
esac;\
done ) | tee $(distdir).swdb
-.PHONY: gen-ChangeLog
+
+.PHONY: gen-ChangeLog release sign-release
gen-ChangeLog:
if test -d $(top_srcdir)/.git; then \
(cd $(top_srcdir) && \
@@ -952,6 +967,49 @@ gen-ChangeLog:
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi
+release:
+ +(set -e;\
+ if [ "$(abs_top_builddir)" = "$(abs_top_srcdir)" ]; then \
+ echo "error: build directory must not be the source directory" >&2;\
+ exit 2;\
+ fi ;\
+ echo "/* Build started at $$(date -uIseconds) */" ;\
+ cd $(top_srcdir); \
+ ./autogen.sh --force; \
+ cd $(abs_top_builddir); \
+ rm -rf dist; mkdir dist ; cd dist ; \
+ $(abs_top_srcdir)/configure --enable-maintainer-mode; \
+ $(MAKE) distcheck TESTFLAGS=--parallel; \
+ echo "/* Build finished at $$(date -uIseconds) */" ;\
+ echo "/*" ;\
+ echo " * Please run the final step interactivly:" ;\
+ echo " * make sign-release" ;\
+ echo " */" ;\
+ ) 2>&1 | tee "$(RELEASE_NAME).buildlog"
+
+sign-release:
+ +(set -e; \
+ cd dist; \
+ 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 ;\
+ 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;\
+ echo "Uploading documentation ..." ;\
+ $(MAKE) -C doc online; \
+ echo '/*' ;\
+ echo ' * All done; for checksums see dist/swdb.snippet' ;\
+ echo ' */' ;\
+ )
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/NEWS b/NEWS
index b7c091c..7603130 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,20 @@
+Noteworthy changes in version 1.11.1 (2018-04-20)
+-------------------------------------------------
+
+ * Fixed build problems in the 1.11.0 release.
+
+ * Added C++ interfaces which were planned for 1.11.0.
+
+ * Interface changes relative to the 1.10.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ cpp: Key::origin NEW.
+ cpp: Key::lastUpdate NEW.
+ cpp: UserID::origin NEW.
+ cpp: UserID::lastUpdate NEW.
+
+ [c=C31/A20/R1 cpp=C13/A7/R0 qt=C10/A3/R2]
+
+
Noteworthy changes in version 1.11.0 (2018-04-18)
-------------------------------------------------
diff --git a/VERSION b/VERSION
index 1cac385..720c738 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.11.0
+1.11.1
diff --git a/configure b/configure
index 035a97f..5678a32 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gpgme 1.11.0.
+# Generated by GNU Autoconf 2.69 for gpgme 1.11.1.
#
# Report bugs to <http://bugs.gnupg.org>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gpgme'
PACKAGE_TARNAME='gpgme'
-PACKAGE_VERSION='1.11.0'
-PACKAGE_STRING='gpgme 1.11.0'
+PACKAGE_VERSION='1.11.1'
+PACKAGE_STRING='gpgme 1.11.1'
PACKAGE_BUGREPORT='http://bugs.gnupg.org'
PACKAGE_URL=''
@@ -1457,7 +1457,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gpgme 1.11.0 to adapt to many kinds of systems.
+\`configure' configures gpgme 1.11.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1527,7 +1527,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gpgme 1.11.0:";;
+ short | recursive ) echo "Configuration of gpgme 1.11.1:";;
esac
cat <<\_ACEOF
@@ -1677,7 +1677,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gpgme configure 1.11.0
+gpgme configure 1.11.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2507,7 +2507,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gpgme $as_me 1.11.0, which was
+It was created by gpgme $as_me 1.11.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2872,18 +2872,18 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
#
LIBGPGME_LT_CURRENT=31
LIBGPGME_LT_AGE=20
-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=12
-LIBGPGMEPP_LT_AGE=6
+LIBGPGMEPP_LT_CURRENT=13
+LIBGPGMEPP_LT_AGE=7
LIBGPGMEPP_LT_REVISION=0
LIBQGPGME_LT_CURRENT=10
LIBQGPGME_LT_AGE=3
-LIBQGPGME_LT_REVISION=1
+LIBQGPGME_LT_REVISION=2
# If the API is changed in an incompatible way: increment the next counter.
GPGME_CONFIG_API_VERSION=1
@@ -2899,7 +2899,7 @@ VERSION=$PACKAGE_VERSION
VERSION_MAJOR=1
VERSION_MINOR=11
-VERSION_MICRO=0
+VERSION_MICRO=1
ac_aux_dir=
for ac_dir in build-aux "$srcdir"/build-aux; do
@@ -3420,7 +3420,7 @@ fi
# Define the identity of the package.
PACKAGE='gpgme'
- VERSION='1.11.0'
+ VERSION='1.11.1'
cat >>confdefs.h <<_ACEOF
@@ -6470,7 +6470,7 @@ cat >>confdefs.h <<_ACEOF
#define VERSION "$VERSION"
_ACEOF
-VERSION_NUMBER=0x010b00
+VERSION_NUMBER=0x010b01
# We need to compile and run a program on the build machine. A
@@ -20754,7 +20754,7 @@ ENABLED_LANGUAGES=$enabled_languages
#
# Provide information about the build.
#
-BUILD_REVISION="3f55c52"
+BUILD_REVISION="2e9a149"
cat >>confdefs.h <<_ACEOF
@@ -20763,7 +20763,7 @@ _ACEOF
BUILD_FILEVERSION=`echo "$PACKAGE_VERSION"|sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
-BUILD_FILEVERSION="${BUILD_FILEVERSION}16213"
+BUILD_FILEVERSION="${BUILD_FILEVERSION}11930"
# Check whether --enable-build-timestamp was given.
@@ -23006,7 +23006,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gpgme $as_me 1.11.0, which was
+This file was extended by gpgme $as_me 1.11.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -23072,7 +23072,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gpgme config.status 1.11.0
+gpgme config.status 1.11.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -25384,7 +25384,7 @@ fi
echo "
GPGME v${VERSION} has been configured as follows:
- Revision: 3f55c52 (16213)
+ Revision: 2e9a149 (11930)
Platform: $host
UI Server: $uiserver
diff --git a/configure.ac b/configure.ac
index a04b059..2a35404 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,6 @@
# configure.ac for GPGME
# Copyright (C) 2000 Werner Koch (dd9jn)
-# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-# 2009, 2010, 2011, 2012, 2013, 2014, 2015 g10 Code GmbH
+# Copyright (C) 2001-2018 g10 Code GmbH
#
# This file is part of GPGME.
#
@@ -29,7 +28,7 @@ min_automake_version="1.14"
# for the LT versions.
m4_define(mym4_version_major, [1])
m4_define(mym4_version_minor, [11])
-m4_define(mym4_version_micro, [0])
+m4_define(mym4_version_micro, [1])
# Below is m4 magic to extract and compute the revision number, the
# decimalized short revision number, a beta version string, and a flag
@@ -57,18 +56,18 @@ AC_INIT([gpgme],[mym4_full_version],[http://bugs.gnupg.org])
#
LIBGPGME_LT_CURRENT=31
LIBGPGME_LT_AGE=20
-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=12
-LIBGPGMEPP_LT_AGE=6
+LIBGPGMEPP_LT_CURRENT=13
+LIBGPGMEPP_LT_AGE=7
LIBGPGMEPP_LT_REVISION=0
LIBQGPGME_LT_CURRENT=10
LIBQGPGME_LT_AGE=3
-LIBQGPGME_LT_REVISION=1
+LIBQGPGME_LT_REVISION=2
# If the API is changed in an incompatible way: increment the next counter.
GPGME_CONFIG_API_VERSION=1
diff --git a/doc/defsincdate b/doc/defsincdate
index 6a1f09f..1012c60 100644
--- a/doc/defsincdate
+++ b/doc/defsincdate
@@ -1 +1 @@
-1512709151
+1524207413
diff --git a/doc/gpgme.info b/doc/gpgme.info
index dfdad87..9dc709a 100644
--- a/doc/gpgme.info
+++ b/doc/gpgme.info
@@ -19,8 +19,8 @@ END-INFO-DIR-ENTRY
This file documents the GPGME library.
- This is Edition 1.10.1-beta188, last updated 8 December 2017, of ‘The
-‘GnuPG Made Easy’ Reference Manual’, for Version 1.10.1-beta188.
+ This is Edition 1.11.1-beta7, last updated 20 April 2018, of ‘The
+‘GnuPG Made Easy’ Reference Manual’, for Version 1.11.1-beta7.
Copyright © 2002–2008, 2010, 2012–2017 g10 Code GmbH.
@@ -37,130 +37,130 @@ Public License for more details.

Indirect:
-gpgme.info-1: 1689
-gpgme.info-2: 302743
+gpgme.info-1: 1683
+gpgme.info-2: 301966

Tag Table:
(Indirect)
-Node: Top1689
-Node: Introduction9299
-Node: Getting Started10089
-Node: Features11550
-Node: Overview12862
-Node: Preparation13971
-Node: Header14968
-Node: Building the Source15715
-Node: Largefile Support (LFS)17859
-Node: Using Automake23275
-Node: Using Libtool25828
-Node: Library Version Check26190
-Node: Signal Handling32250
-Node: Multi-Threading33520
-Ref: Multi-Threading-Footnote-134936
-Node: Protocols and Engines35359
-Node: Engine Version Check38110
-Node: Engine Information40633
-Node: Engine Configuration44493
-Node: OpenPGP45797
-Node: Cryptographic Message Syntax46137
-Node: Assuan46450
-Node: Algorithms46824
-Ref: Algorithms-Footnote-147303
-Node: Public Key Algorithms47431
-Node: Hash Algorithms50033
-Node: Error Handling51247
-Node: Error Values53121
-Node: Error Sources58324
-Node: Error Codes60764
-Node: Error Strings65557
-Node: Exchanging Data67364
-Node: Creating Data Buffers69249
-Node: Memory Based Data Buffers69765
-Node: File Based Data Buffers73198
-Node: Callback Based Data Buffers75400
-Node: Destroying Data Buffers79591
-Node: Manipulating Data Buffers81098
-Node: Data Buffer I/O Operations81590
-Node: Data Buffer Meta-Data83963
-Node: Data Buffer Convenience88482
-Node: Contexts90702
-Node: Creating Contexts91888
-Node: Destroying Contexts92735
-Node: Result Management93074
-Node: Context Attributes94655
-Node: Protocol Selection95692
-Node: Crypto Engine96724
-Node: Setting the Sender98613
-Node: ASCII Armor100126
-Node: Text Mode100755
-Node: Offline Mode101689
-Node: Pinentry Mode103187
-Node: Included Certificates105081
-Node: Key Listing Mode106527
-Node: Passphrase Callback110985
-Node: Progress Meter Callback114547
-Node: Status Message Callback116532
-Node: Locale122500
-Node: Key Management124078
-Node: Key objects125306
-Node: Listing Keys139530
-Node: Information About Keys148183
-Node: Manipulating Keys149491
-Node: Generating Keys150061
-Node: Signing Keys168383
-Node: Exporting Keys172016
-Node: Importing Keys178823
-Ref: Importing Keys-Footnote-1186226
-Node: Deleting Keys186354
-Node: Changing Passphrases188634
-Node: Changing TOFU Data189961
-Node: Advanced Key Editing192069
-Node: Trust Item Management194802
-Node: Listing Trust Items195838
-Node: Manipulating Trust Items198199
-Node: Crypto Operations198842
-Node: Decrypt200106
-Node: Verify206858
-Node: Decrypt and Verify219322
-Node: Sign222177
-Node: Selecting Signers222741
-Node: Creating a Signature224147
-Node: Signature Notation Data228917
-Node: Encrypt231202
-Node: Encrypting a Plaintext231558
-Node: Miscellaneous243791
-Node: Running other Programs244203
-Node: Using the Assuan protocol246366
-Node: Checking for updates249164
-Node: Run Control253981
-Node: Waiting For Completion254725
-Node: Using External Event Loops256843
-Node: I/O Callback Interface258815
-Node: Registering I/O Callbacks264055
-Node: I/O Callback Example266094
-Node: I/O Callback Example GTK+272719
-Node: I/O Callback Example GDK274508
-Node: I/O Callback Example Qt276150
-Node: Cancellation278438
-Node: UI Server Protocol280746
-Ref: UI Server Protocol-Footnote-1282181
-Node: UI Server Encrypt282300
-Node: UI Server Sign287658
-Node: UI Server Decrypt290011
-Node: UI Server Verify291666
-Node: UI Server Set Input Files295238
-Node: UI Server Sign/Encrypt Files296308
-Node: UI Server Verify/Decrypt Files298116
-Node: UI Server Import/Export Keys299992
-Node: UI Server Checksum Files302743
-Node: Miscellaneous UI Server Commands304961
-Ref: command SENDER306892
-Node: Debugging308594
-Node: Deprecated Functions310343
-Node: Library Copying335560
-Node: Copying363780
-Node: Concept Index401530
-Node: Function and Data Index416309
+Node: Top1683
+Node: Introduction9287
+Node: Getting Started10077
+Node: Features11538
+Node: Overview12850
+Node: Preparation13959
+Node: Header14956
+Node: Building the Source15703
+Node: Largefile Support (LFS)17847
+Node: Using Automake23263
+Node: Using Libtool25816
+Node: Library Version Check26178
+Node: Signal Handling32238
+Node: Multi-Threading33508
+Ref: Multi-Threading-Footnote-134924
+Node: Protocols and Engines35347
+Node: Engine Version Check38098
+Node: Engine Information40621
+Node: Engine Configuration44481
+Node: OpenPGP45785
+Node: Cryptographic Message Syntax46125
+Node: Assuan46438
+Node: Algorithms46812
+Ref: Algorithms-Footnote-147291
+Node: Public Key Algorithms47419
+Node: Hash Algorithms50021
+Node: Error Handling51235
+Node: Error Values53109
+Node: Error Sources58312
+Node: Error Codes60752
+Node: Error Strings65545
+Node: Exchanging Data67352
+Node: Creating Data Buffers69237
+Node: Memory Based Data Buffers69753
+Node: File Based Data Buffers73186
+Node: Callback Based Data Buffers75388
+Node: Destroying Data Buffers79579
+Node: Manipulating Data Buffers81086
+Node: Data Buffer I/O Operations81578
+Node: Data Buffer Meta-Data83951
+Node: Data Buffer Convenience88470
+Node: Contexts90690
+Node: Creating Contexts91876
+Node: Destroying Contexts92723
+Node: Result Management93062
+Node: Context Attributes94643
+Node: Protocol Selection95680
+Node: Crypto Engine96712
+Node: Setting the Sender98601
+Node: ASCII Armor100114
+Node: Text Mode100743
+Node: Offline Mode101677
+Node: Pinentry Mode103175
+Node: Included Certificates105069
+Node: Key Listing Mode106515
+Node: Passphrase Callback110973
+Node: Progress Meter Callback114535
+Node: Status Message Callback116520
+Node: Locale122488
+Node: Key Management124066
+Node: Key objects125294
+Node: Listing Keys139518
+Node: Information About Keys148171
+Node: Manipulating Keys149479
+Node: Generating Keys150049
+Node: Signing Keys168371
+Node: Exporting Keys172004
+Node: Importing Keys178811
+Ref: Importing Keys-Footnote-1186214
+Node: Deleting Keys186342
+Node: Changing Passphrases188622
+Node: Changing TOFU Data189949
+Node: Advanced Key Editing192057
+Node: Trust Item Management194790
+Node: Listing Trust Items195826
+Node: Manipulating Trust Items198187
+Node: Crypto Operations198830
+Node: Decrypt200094
+Node: Verify206846
+Node: Decrypt and Verify219310
+Node: Sign222165
+Node: Selecting Signers222729
+Node: Creating a Signature224135
+Node: Signature Notation Data228905
+Node: Encrypt231190
+Node: Encrypting a Plaintext231546
+Node: Miscellaneous245958
+Node: Running other Programs246370
+Node: Using the Assuan protocol248533
+Node: Checking for updates251331
+Node: Run Control256148
+Node: Waiting For Completion256892
+Node: Using External Event Loops259010
+Node: I/O Callback Interface260982
+Node: Registering I/O Callbacks266222
+Node: I/O Callback Example268261
+Node: I/O Callback Example GTK+274886
+Node: I/O Callback Example GDK276675
+Node: I/O Callback Example Qt278317
+Node: Cancellation280605
+Node: UI Server Protocol282913
+Ref: UI Server Protocol-Footnote-1284348
+Node: UI Server Encrypt284467
+Node: UI Server Sign289825
+Node: UI Server Decrypt292178
+Node: UI Server Verify293833
+Node: UI Server Set Input Files297405
+Node: UI Server Sign/Encrypt Files298475
+Node: UI Server Verify/Decrypt Files301966
+Node: UI Server Import/Export Keys303842
+Node: UI Server Checksum Files304904
+Node: Miscellaneous UI Server Commands307122
+Ref: command SENDER309053
+Node: Debugging310755
+Node: Deprecated Functions312504
+Node: Library Copying337721
+Node: Copying365941
+Node: Concept Index403691
+Node: Function and Data Index418470

End Tag Table
diff --git a/doc/gpgme.info-1 b/doc/gpgme.info-1
index 888e180..af6d6b4 100644
--- a/doc/gpgme.info-1
+++ b/doc/gpgme.info-1
@@ -19,8 +19,8 @@ END-INFO-DIR-ENTRY
This file documents the GPGME library.
- This is Edition 1.10.1-beta188, last updated 8 December 2017, of ‘The
-‘GnuPG Made Easy’ Reference Manual’, for Version 1.10.1-beta188.
+ This is Edition 1.11.1-beta7, last updated 20 April 2018, of ‘The
+‘GnuPG Made Easy’ Reference Manual’, for Version 1.11.1-beta7.
Copyright © 2002–2008, 2010, 2012–2017 g10 Code GmbH.
@@ -41,9 +41,9 @@ File: gpgme.info, Node: Top, Next: Introduction, Up: (dir)
Main Menu
*********
-This is Edition 1.10.1-beta188, last updated 8 December 2017, of ‘The
-‘GnuPG Made Easy’ Reference Manual’, for Version 1.10.1-beta188 of the
-GPGME library.
+This is Edition 1.11.1-beta7, last updated 20 April 2018, of ‘The ‘GnuPG
+Made Easy’ Reference Manual’, for Version 1.11.1-beta7 of the GPGME
+library.
* Menu:
@@ -5738,6 +5738,59 @@ File: gpgme.info, Node: Encrypting a Plaintext, Up: Encrypt
This keyword disables all keyword detection up to the end of
the string. All keywords are treated as verbatim arguments.
+ To create a RECPSTRING it is often useful to employ a strconcat
+ style function. For example this function creates a string to
+ encrypt to two keys:
+
+ char *
+ xbuild_recpstring (const char *key1, const char *key2)
+ {
+ char *result = gpgrt_strconcat ("--\n", key1, "\n", key2, NULL);
+ if (!result)
+ { perror ("strconcat failed"); exit (2); }
+ return result;
+ }
+
+ Note the use of the double dash here; unless you want to specify a
+ keyword, it is a good idea to avoid any possible trouble with key
+ specifications starting with a double dash. The used strconcat
+ function is available in Libgpg-error 1.28 and later; Libgpg-error
+ (aka Gpgrt) is a dependency of GPGME. The number of arguments to
+ ‘gpgrt_strconcat’ is limited to 47 but that should always be
+ sufficient. In case a larger and non-fixed number of keys are to
+ be supplied the following code can be used:
+
+ char *
+ xbuild_long_recpstring (void)
+ {
+ gpgrt_stream_t memfp;
+ const char *s;
+ void *result;
+
+ memfp = gpgrt_fopenmem (0, "w+b");
+ if (!memfp)
+ { perror ("fopenmem failed"); exit (2); }
+ gpgrt_fputs ("--", memfp);
+ while ((s = get_next_keyspec ()))
+ {
+ gpgrt_fputc ('\n', memfp);
+ gpgrt_fputs (s, memfp);
+ }
+ gpgrt_fputc (0, memfp);
+ if (gpgrt_ferror (memfp))
+ { perror ("writing to memstream failed"); exit (2); }
+ if (gpgrt_fclose_snatch (memfp, &result, NULL))
+ { perror ("fclose_snatch failed"); exit (2); }
+ return result;
+ }
+
+ In this example ‘get_next_keyspec’ is expected to return the next
+ key to be added to the string. Please take care: Encrypting to a
+ large number of recipients is often questionable due to security
+ reasons and also for the technicality that all keys are currently
+ passed on the command line to ‘gpg’ which has as a platform
+ specific length limitation.
+
-- Function: gpgme_error_t gpgme_op_encrypt_ext_start (gpgme_ctx_t CTX,
gpgme_key_t RECP[], const char *RECPSTRING,
gpgme_encrypt_flags_t FLAGS, gpgme_data_t PLAIN,
@@ -7208,62 +7261,3 @@ commands. Afterwards, the actual operation is requested:
is present, the server always returns ‘OK’ promptly, and completes
the operation asynchronously.
-
-File: gpgme.info, Node: UI Server Verify/Decrypt Files, Next: UI Server Import/Export Keys, Prev: UI Server Sign/Encrypt Files, Up: UI Server Protocol
-
-A.7 UI Server: Decrypting and verifying files.
-==============================================
-
-First, the input files need to be specified by one or more ‘FILE’
-commands. Afterwards, the actual operation is requested:
-
- -- Command: DECRYPT_FILES --nohup
- -- Command: VERIFY_FILES --nohup
- -- Command: DECRYPT_VERIFY_FILES --nohup
- Request that the files specified by ‘FILE’ are decrypted and/or
- verified. The command selects the default action. The UI server
- may allow the user to change this default afterwards interactively,
- and even abort the operation or complete it only on some of the
- selected files and directories.
-
- What it means to decrypt or verify a file or directory is specific
- to the preferences of the user, the functionality the UI server
- provides, and the selected protocol. Typically, for decryption, a
- new file is created for each input file under the original filename
- minus a protocol specific extension (like ‘.gpg’) which contains
- the original plaintext. For verification a status is displayed for
- each signed input file, indicating if it is signed, and if yes, if
- the signature is valid. For files that are signed and encrypted,
- the ‘VERIFY’ command transiently decrypts the file to verify the
- enclosed signature. For directories, the server may offer multiple
- options to the user (for example ignore or process recursively).
-
- The option ‘--nohup’ is mandatory. It is currently unspecified
- what should happen if ‘--nohup’ is not present. Because ‘--nohup’
- is present, the server always returns ‘OK’ promptly, and completes
- the operation asynchronously.
-
-
-File: gpgme.info, Node: UI Server Import/Export Keys, Next: UI Server Checksum Files, Prev: UI Server Verify/Decrypt Files, Up: UI Server Protocol
-
-A.8 UI Server: Managing certificates.
-=====================================
-
-First, the input files need to be specified by one or more ‘FILE’
-commands. Afterwards, the actual operation is requested:
-
- -- Command: IMPORT_FILES --nohup
- Request that the certificates contained in the files specified by
- ‘FILE’ are imported into the local certificate databases.
-
- For directories, the server may offer multiple options to the user
- (for example ignore or process recursively).
-
- The option ‘--nohup’ is mandatory. It is currently unspecified
- what should happen if ‘--nohup’ is not present. Because ‘--nohup’
- is present, the server always returns ‘OK’ promptly, and completes
- the operation asynchronously.
-
- FIXME: It may be nice to support an ‘EXPORT’ command as well, which
-is enabled by the context menu of the background of a directory.
-
diff --git a/doc/gpgme.info-2 b/doc/gpgme.info-2
index 4888966..541764b 100644
--- a/doc/gpgme.info-2
+++ b/doc/gpgme.info-2
@@ -19,8 +19,8 @@ END-INFO-DIR-ENTRY
This file documents the GPGME library.
- This is Edition 1.10.1-beta188, last updated 8 December 2017, of ‘The
-‘GnuPG Made Easy’ Reference Manual’, for Version 1.10.1-beta188.
+ This is Edition 1.11.1-beta7, last updated 20 April 2018, of ‘The
+‘GnuPG Made Easy’ Reference Manual’, for Version 1.11.1-beta7.
Copyright © 2002–2008, 2010, 2012–2017 g10 Code GmbH.
@@ -36,6 +36,65 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.

+File: gpgme.info, Node: UI Server Verify/Decrypt Files, Next: UI Server Import/Export Keys, Prev: UI Server Sign/Encrypt Files, Up: UI Server Protocol
+
+A.7 UI Server: Decrypting and verifying files.
+==============================================
+
+First, the input files need to be specified by one or more ‘FILE’
+commands. Afterwards, the actual operation is requested:
+
+ -- Command: DECRYPT_FILES --nohup
+ -- Command: VERIFY_FILES --nohup
+ -- Command: DECRYPT_VERIFY_FILES --nohup
+ Request that the files specified by ‘FILE’ are decrypted and/or
+ verified. The command selects the default action. The UI server
+ may allow the user to change this default afterwards interactively,
+ and even abort the operation or complete it only on some of the
+ selected files and directories.
+
+ What it means to decrypt or verify a file or directory is specific
+ to the preferences of the user, the functionality the UI server
+ provides, and the selected protocol. Typically, for decryption, a
+ new file is created for each input file under the original filename
+ minus a protocol specific extension (like ‘.gpg’) which contains
+ the original plaintext. For verification a status is displayed for
+ each signed input file, indicating if it is signed, and if yes, if
+ the signature is valid. For files that are signed and encrypted,
+ the ‘VERIFY’ command transiently decrypts the file to verify the
+ enclosed signature. For directories, the server may offer multiple
+ options to the user (for example ignore or process recursively).
+
+ The option ‘--nohup’ is mandatory. It is currently unspecified
+ what should happen if ‘--nohup’ is not present. Because ‘--nohup’
+ is present, the server always returns ‘OK’ promptly, and completes
+ the operation asynchronously.
+
+
+File: gpgme.info, Node: UI Server Import/Export Keys, Next: UI Server Checksum Files, Prev: UI Server Verify/Decrypt Files, Up: UI Server Protocol
+
+A.8 UI Server: Managing certificates.
+=====================================
+
+First, the input files need to be specified by one or more ‘FILE’
+commands. Afterwards, the actual operation is requested:
+
+ -- Command: IMPORT_FILES --nohup
+ Request that the certificates contained in the files specified by
+ ‘FILE’ are imported into the local certificate databases.
+
+ For directories, the server may offer multiple options to the user
+ (for example ignore or process recursively).
+
+ The option ‘--nohup’ is mandatory. It is currently unspecified
+ what should happen if ‘--nohup’ is not present. Because ‘--nohup’
+ is present, the server always returns ‘OK’ promptly, and completes
+ the operation asynchronously.
+
+ FIXME: It may be nice to support an ‘EXPORT’ command as well, which
+is enabled by the context menu of the background of a directory.
+
+
File: gpgme.info, Node: UI Server Checksum Files, Next: Miscellaneous UI Server Commands, Prev: UI Server Import/Export Keys, Up: UI Server Protocol
A.9 UI Server: Create and verify checksums for files.
@@ -2415,7 +2474,7 @@ Function and Data Index
* gpgme_edit_cb_t: Deprecated Functions.
(line 37)
* gpgme_encrypt_result_t: Encrypting a Plaintext.
- (line 188)
+ (line 241)
* gpgme_engine_check_version: Engine Version Check.
(line 67)
* gpgme_engine_info_t: Engine Information. (line 6)
@@ -2549,17 +2608,17 @@ Function and Data Index
* gpgme_op_encrypt_ext: Encrypting a Plaintext.
(line 131)
* gpgme_op_encrypt_ext_start: Encrypting a Plaintext.
- (line 171)
+ (line 224)
* gpgme_op_encrypt_result: Encrypting a Plaintext.
- (line 199)
+ (line 252)
* gpgme_op_encrypt_sign: Encrypting a Plaintext.
- (line 210)
+ (line 263)
* gpgme_op_encrypt_sign_ext: Encrypting a Plaintext.
- (line 235)
+ (line 288)
* gpgme_op_encrypt_sign_ext_start: Encrypting a Plaintext.
- (line 251)
+ (line 304)
* gpgme_op_encrypt_sign_start: Encrypting a Plaintext.
- (line 221)
+ (line 274)
* gpgme_op_encrypt_start: Encrypting a Plaintext.
(line 113)
* gpgme_op_export: Exporting Keys. (line 46)
diff --git a/doc/gpgme.texi b/doc/gpgme.texi
index 20bfa23..c4a29d5 100644
--- a/doc/gpgme.texi
+++ b/doc/gpgme.texi
@@ -6226,7 +6226,62 @@ string. All keywords are treated as verbatim arguments.
@end table
+To create a @var{recpstring} it is often useful to employ a strconcat
+style function. For example this function creates a string to encrypt
+to two keys:
+@example
+char *
+xbuild_recpstring (const char *key1, const char *key2)
+@{
+ char *result = gpgrt_strconcat ("--\n", key1, "\n", key2, NULL);
+ if (!result)
+ @{ perror ("strconcat failed"); exit (2); @}
+ return result;
+@}
+@end example
+
+Note the use of the double dash here; unless you want to specify a
+keyword, it is a good idea to avoid any possible trouble with key
+specifications starting with a double dash. The used strconcat
+function is available in Libgpg-error 1.28 and later; Libgpg-error
+(aka Gpgrt) is a dependency of GPGME. The number of arguments to
+@code{gpgrt_strconcat} is limited to 47 but that should always be
+sufficient. In case a larger and non-fixed number of keys are to be
+supplied the following code can be used:
+
+@example
+char *
+xbuild_long_recpstring (void)
+@{
+ gpgrt_stream_t memfp;
+ const char *s;
+ void *result;
+
+ memfp = gpgrt_fopenmem (0, "w+b");
+ if (!memfp)
+ @{ perror ("fopenmem failed"); exit (2); @}
+ gpgrt_fputs ("--", memfp);
+ while ((s = get_next_keyspec ()))
+ @{
+ gpgrt_fputc ('\n', memfp);
+ gpgrt_fputs (s, memfp);
+ @}
+ gpgrt_fputc (0, memfp);
+ if (gpgrt_ferror (memfp))
+ @{ perror ("writing to memstream failed"); exit (2); @}
+ if (gpgrt_fclose_snatch (memfp, &result, NULL))
+ @{ perror ("fclose_snatch failed"); exit (2); @}
+ return result;
+@}
+@end example
+
+In this example @code{get_next_keyspec} is expected to return the next
+key to be added to the string. Please take care: Encrypting to a
+large number of recipients is often questionable due to security
+reasons and also for the technicality that all keys are currently
+passed on the command line to @command{gpg} which has as a platform
+specific length limitation.
@end deftypefun
diff --git a/gpgme.spec b/gpgme.spec
index 760477e..f154edb 100644
--- a/gpgme.spec
+++ b/gpgme.spec
@@ -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.11.0
+Version: 1.11.1
Release: 1
URL: https://gnupg.org/gpgme.html
Source: ftp://ftp.gnupg.org/gcrypt/alpha/gpgme/%{name}-%{version}.tar.gz
diff --git a/lang/cl/gpgme.asd b/lang/cl/gpgme.asd
index a39b61a..9c5c719 100644
--- a/lang/cl/gpgme.asd
+++ b/lang/cl/gpgme.asd
@@ -27,7 +27,7 @@
(defsystem gpgme
:description "GnuPG Made Easy."
:author "g10 Code GmbH"
- :version "1.11.0"
+ :version "1.11.1"
:licence "GPL"
:depends-on ("cffi" "gpg-error")
:components ((:file "gpgme-package")
diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp
index 0e86a19..034286f 100644
--- a/lang/cpp/src/key.cpp
+++ b/lang/cpp/src/key.cpp
@@ -967,6 +967,42 @@ Error UserID::revoke()
return ret;
}
+static Key::Origin gpgme_origin_to_pp_origin (const unsigned int origin)
+{
+ switch (origin) {
+ case GPGME_KEYORG_KS:
+ return Key::OriginKS;
+ case GPGME_KEYORG_DANE:
+ return Key::OriginDane;
+ case GPGME_KEYORG_WKD:
+ return Key::OriginWKD;
+ case GPGME_KEYORG_URL:
+ return Key::OriginURL;
+ case GPGME_KEYORG_FILE:
+ return Key::OriginFile;
+ case GPGME_KEYORG_SELF:
+ return Key::OriginSelf;
+ case GPGME_KEYORG_OTHER:
+ return Key::OriginOther;
+ case GPGME_KEYORG_UNKNOWN:
+ default:
+ return Key::OriginUnknown;
+ }
+}
+
+Key::Origin UserID::origin() const
+{
+ if (isNull()) {
+ return Key::OriginUnknown;
+ }
+ return gpgme_origin_to_pp_origin(uid->origin);
+}
+
+time_t UserID::lastUpdate() const
+{
+ return static_cast<time_t>(uid ? uid->last_update : 0);
+}
+
Error Key::addUid(const char *uid)
{
if (isNull()) {
@@ -981,6 +1017,19 @@ Error Key::addUid(const char *uid)
return ret;
}
+Key::Origin Key::origin() const
+{
+ if (isNull()) {
+ return OriginUnknown;
+ }
+ return gpgme_origin_to_pp_origin(key->origin);
+}
+
+time_t Key::lastUpdate() const
+{
+ return static_cast<time_t>(key ? key->last_update : 0);
+}
+
std::ostream &operator<<(std::ostream &os, const UserID &uid)
{
os << "GpgME::UserID(";
diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h
index c3c711c..76a0d4f 100644
--- a/lang/cpp/src/key.h
+++ b/lang/cpp/src/key.h
@@ -178,6 +178,27 @@ public:
*/
static Key locate(const char *mbox);
+ /* @enum Origin
+ * @brief The Origin of the key. */
+ enum Origin : unsigned int {
+ OriginUnknown = 0,
+ OriginKS = 1,
+ OriginDane = 3,
+ OriginWKD = 4,
+ OriginURL = 5,
+ OriginFile = 6,
+ OriginSelf = 7,
+ OriginOther = 31,
+ };
+ /*! Get the origin of the key.
+ *
+ * @returns the Origin. */
+ Origin origin() const;
+
+ /*! Get the last update time.
+ *
+ * @returns the last update time. */
+ time_t lastUpdate() const;
private:
gpgme_key_t impl() const
{
@@ -371,6 +392,16 @@ public:
*
* @returns an error on error.*/
Error revoke();
+
+ /*! Get the origin of the key.
+ *
+ * @returns the Origin. */
+ Key::Origin origin() const;
+
+ /*! Get the last update time.
+ *
+ * @returns the last update time. */
+ time_t lastUpdate() const;
private:
shared_gpgme_key_t key;
gpgme_user_id_t uid;
diff --git a/src/Makefile.am b/src/Makefile.am
index c2d4a84..0a196e0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -104,8 +104,6 @@ gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@
gpgme_json_SOURCES = gpgme-json.c cJSON.c cJSON.h
gpgme_json_LDADD = -lm libgpgme.la $(GPG_ERROR_LIBS)
-# We use -no-install temporary during development.
-gpgme_json_LDFLAGS = -no-install
if HAVE_W32_SYSTEM
diff --git a/src/Makefile.in b/src/Makefile.in
index 5eac9e1..40fec0f 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -107,7 +107,7 @@ subdir = src
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/build-aux/mkinstalldirs \
$(srcdir)/versioninfo.rc.in $(srcdir)/gpgme.h.in \
- $(srcdir)/gpgme-config.in stpcpy.c setenv.c ttyname_r.c \
+ $(srcdir)/gpgme-config.in ttyname_r.c setenv.c stpcpy.c \
$(top_srcdir)/build-aux/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
@@ -235,9 +235,6 @@ am_gpgme_json_OBJECTS = gpgme-json.$(OBJEXT) cJSON.$(OBJEXT)
gpgme_json_OBJECTS = $(am_gpgme_json_OBJECTS)
am__DEPENDENCIES_2 =
gpgme_json_DEPENDENCIES = libgpgme.la $(am__DEPENDENCIES_2)
-gpgme_json_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(gpgme_json_LDFLAGS) $(LDFLAGS) -o $@
am_gpgme_tool_OBJECTS = gpgme-tool.$(OBJEXT) argparse.$(OBJEXT)
gpgme_tool_OBJECTS = $(am_gpgme_tool_OBJECTS)
gpgme_tool_DEPENDENCIES = libgpgme.la
@@ -565,8 +562,6 @@ gpgme_tool_SOURCES = gpgme-tool.c argparse.c argparse.h
gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@
gpgme_json_SOURCES = gpgme-json.c cJSON.c cJSON.h
gpgme_json_LDADD = -lm libgpgme.la $(GPG_ERROR_LIBS)
-# We use -no-install temporary during development.
-gpgme_json_LDFLAGS = -no-install
@HAVE_W32_SYSTEM_TRUE@RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
@HAVE_W32_SYSTEM_TRUE@LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE)
@HAVE_W32_SYSTEM_TRUE@SUFFIXES = .rc .lo
@@ -781,7 +776,7 @@ clean-libexecPROGRAMS:
gpgme-json$(EXEEXT): $(gpgme_json_OBJECTS) $(gpgme_json_DEPENDENCIES) $(EXTRA_gpgme_json_DEPENDENCIES)
@rm -f gpgme-json$(EXEEXT)
- $(AM_V_CCLD)$(gpgme_json_LINK) $(gpgme_json_OBJECTS) $(gpgme_json_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(gpgme_json_OBJECTS) $(gpgme_json_LDADD) $(LIBS)
gpgme-tool$(EXEEXT): $(gpgme_tool_OBJECTS) $(gpgme_tool_DEPENDENCIES) $(EXTRA_gpgme_tool_DEPENDENCIES)
@rm -f gpgme-tool$(EXEEXT)
diff --git a/src/decrypt.c b/src/decrypt.c
index 155e18e..0fc7019 100644
--- a/src/decrypt.c
+++ b/src/decrypt.c
@@ -414,7 +414,6 @@ _gpgme_decrypt_status_handler (void *priv, gpgme_status_code_t code,
err = _gpgme_parse_plaintext (args, &opd->result.file_name, &mime);
if (err)
return err;
- gpgrt_log_debug ("decrypt.c setting mime to %d\n", mime);
opd->result.is_mime = !!mime;
}
break;
diff --git a/src/verify.c b/src/verify.c
index bd437c9..26b205a 100644
--- a/src/verify.c
+++ b/src/verify.c
@@ -1096,7 +1096,6 @@ _gpgme_verify_status_handler (void *priv, gpgme_status_code_t code, char *args)
err = _gpgme_parse_plaintext (args, &opd->result.file_name, &mime);
if (err)
return err;
- gpgrt_log_debug ("verify.c: setting mime to %d\n", mime);
opd->result.is_mime = !!mime;
}
break;
diff --git a/tests/gpg/t-verify.c b/tests/gpg/t-verify.c
index 7c23406..fa0164a 100644
--- a/tests/gpg/t-verify.c
+++ b/tests/gpg/t-verify.c
@@ -126,9 +126,15 @@ check_result (gpgme_verify_result_t result, int no_of_sigs, int skip_sigs,
}
if (strcmp (sig->fpr, fpr))
{
- fprintf (stderr, "%s:%i:sig-%d: Unexpected fingerprint: %s\n",
- PGM, __LINE__, skip_sigs, sig->fpr);
- exit (1);
+ if (strlen (sig->fpr) == 16 && strlen (fpr) == 40
+ && !strncmp (sig->fpr, fpr + 24, 16))
+ ; /* okay because gnupg < 2.2.6 only shows the keyid. */
+ else
+ {
+ fprintf (stderr, "%s:%i:sig-%d: Unexpected fingerprint: %s\n",
+ PGM, __LINE__, skip_sigs, sig->fpr);
+ exit (1);
+ }
}
if (gpgme_err_code (sig->status) != status)
{