[neon/forks/libgpgme]: Summary of bulk changes made

KDE Git Services - Bulk Change null at kde.org
Tue Jul 2 13:45:11 BST 2024


Git repository change summary for neon/forks/libgpgme
Pushed by carlosdem into branch 'Neon/release'.
Changed from b978ca7d01f622ccc1dc7117ce77a48d11c9b5d2 to b096ac5db3c7be7dc6ec7449529ed2897f2856cb
Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository.

This change contains the following new commits:

Git commit 7e2ef54b9c070bf9f4516828e34deae84b1425d3 by Werner Koch on 10/08/2022 at 13:33..
Post release updates

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/7e2ef54b9c070bf9f4516828e34deae84b1425d3

Git commit 586846209b08ce5e9545f53f21de884eb4079115 by Andre Heinecke on 11/08/2022 at 09:39..
Qt: Fix working with no gpgconf in CryptoConfig

* lang/qt/src/cryptoconfig.cpp (CryptoConfig::entry): Add nullptr
  checks.

--
This fixes a crash when gpgconf is not found. When every return
value is NULL.

GnuPG-Bug-Id: T6131
https://invent.kde.org/neon/forks/libgpgme/-/commit/586846209b08ce5e9545f53f21de884eb4079115

Git commit 5f51a9b4589200486b2833124cbd93455f6ce208 by Andre Heinecke on 12/08/2022 at 13:16..
w32: Add another fallback to look for gpgconf.exe

* src/w32-util.c (_gpgme_get_gpgconf_path): Add fallback for
GnuPG VS-Desktop install scheme.

--
GnuPG VS-Desktop has the install layout:

%PROGRAMFILES%\GnuPG VS-Desktop\bin\libgpgme.dll
%PROGRAMFILES%\GnuPG VS-Desktop\GnuPG\bin\gpgconf.exe

This fallback is of course only required if the registry
string pointing to the correct install directory is
broken.

GnuPG-Bug-Id: T6131
https://invent.kde.org/neon/forks/libgpgme/-/commit/5f51a9b4589200486b2833124cbd93455f6ce208

Git commit c977424a1d39751fc5055131ad3f7819d421dcc8 by Ingo Klöcker on 17/08/2022 at 12:52..
qt: Make sure expiration time is interpreted as unsigned number

* lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp (add_subkey): Convert
expiration time to uint_least32_t.
--

This fixes the corresponding test on 32-bit systems where time_t (the
return type of expirationTime()) is a signed 32-bit integer type.

GnuPG-bug-id: 6137
https://invent.kde.org/neon/forks/libgpgme/-/commit/c977424a1d39751fc5055131ad3f7819d421dcc8

Git commit 81d4b7f2d7077297d76af5728949d8f2bdff8cd5 by Ingo Klöcker on 17/08/2022 at 12:56..
qt,tests: Log the actual error code if the assertion fails

* lang/qt/tests/t-addexistingsubkey.cpp (
AddExistingSubkeyJobTest::testAddExistingSubkeyAsync,
AddExistingSubkeyJobTest::testAddExistingSubkeySync,
AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration): Use
QCOMPARE instead of QVERIFY for asserting equality.
--

GnuPG-bug-id: 6137
https://invent.kde.org/neon/forks/libgpgme/-/commit/81d4b7f2d7077297d76af5728949d8f2bdff8cd5

Git commit f2b48de26b8f8c48c293423eda712831544924f6 by Ingo Klöcker on 17/08/2022 at 13:22..
qt,tests: Make sure expiration time is interpreted as unsigned number

* lang/qt/tests/t-addexistingsubkey.cpp,
lang/qt/tests/t-changeexpiryjob.cpp: Convert expiration time to
uint_least32_t.
--

This doesn't change the outcome of the tests (they also pass without
this change because of the expiration dates of the test keys), but it's
still good practise to treat the expiration time as an unsigned number
if the assertions check that the expiration time is in some range.

GnuPG-bug-id: 6137
https://invent.kde.org/neon/forks/libgpgme/-/commit/f2b48de26b8f8c48c293423eda712831544924f6

Git commit 2fa5c80aeba4528b3bdf41ec5740e7db5d4b6d2b by Ingo Klöcker on 18/08/2022 at 08:43..
cpp: Fix handling of "no key" or "invalid time" situations

* lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp
(GpgAddExistingSubkeyEditInteractor::Private::nextState): Fix inverted
logic of string comparisons.
--

This fixes the problem that the interactor didn't return the proper
error code if gpg didn't accept the key grip or the expiration date.

GnuPG-bug-id: 6137
https://invent.kde.org/neon/forks/libgpgme/-/commit/2fa5c80aeba4528b3bdf41ec5740e7db5d4b6d2b

Git commit 2e7a61b898fccc1c20000b79dee83cd980901fa9 by Ingo Klöcker on 18/08/2022 at 08:55..
qt,tests: Make test pass on 32-bit systems

* lang/qt/tests/t-addexistingsubkey.cpp
(AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration): Handle
negative expiration date.
--

On 32-bit systems the expiration date of the test key overflows. This
will cause the AddExistingSubkeyJob to fail. We expect it to fail with
an "invalid time" error.

GnuPG-bug-id: 6137
https://invent.kde.org/neon/forks/libgpgme/-/commit/2e7a61b898fccc1c20000b79dee83cd980901fa9

Git commit f02c20cc9c5756690b07abfd02a43533547ba2ef by Ingo Klöcker on 19/08/2022 at 09:05..
cpp: Fix building with C++11

* lang/cpp/src/importresult.cpp (ImportResult::mergeWith): Replace
'auto' in lambdas with the actual type.
--

Generic lambdas require C++14.

GnuPG-bug-id: 6141
https://invent.kde.org/neon/forks/libgpgme/-/commit/f02c20cc9c5756690b07abfd02a43533547ba2ef

Git commit 05661806848b8a6ef9005e4a420d8613ddc868f1 by Ingo Klöcker on 22/08/2022 at 07:30..
qt: Fix building with Qt6

* lang/qt/src/util.cpp, lang/qt/src/util.h: Replace forward declaration
with include.
--

Based on patch by Laurent Montel
https://invent.kde.org/neon/forks/libgpgme/-/commit/05661806848b8a6ef9005e4a420d8613ddc868f1

Git commit 83176ad7d3e57ad7804d3c885e1b4fcd1d4d96f9 by Ingo Klöcker on 22/08/2022 at 12:39..
qt: Fix building with C++11

* lang/qt/src/qgpgmerefreshsmimekeysjob.cpp
(QGpgMERefreshSMIMEKeysJob::start): Replace 'auto' in lambda with the
actual type.
* lang/qt/src/qgpgmesignkeyjob.cpp (class TrustSignatureProperties): Add
default c'tor and c'tor initializing all members.
* lang/qt/src/util.cpp (toFingerprints): Replace 'auto' in lambda with
the actual type.
* lang/qt/tests/run-exportjob.cpp (createExportJob): Replace 'auto'
return type with actual type.
--

This fixes compilation with strict C++11.

GnuPG-bug-id: 6141
https://invent.kde.org/neon/forks/libgpgme/-/commit/83176ad7d3e57ad7804d3c885e1b4fcd1d4d96f9

Git commit 73e96bfaa8176cf7b18bfa9edacaaf8d26989998 by Ingo Klöcker on 22/08/2022 at 13:04..
build: Update ax_cxx_compile_stdcxx macro

* m4/ax_cxx_compile_stdcxx.m4: Replace with current version from the
autoconf archive.
--

This fixes the problem that the switch -std=c++11 was omitted if the
compiler supported C++11 features by default. This made gcc happily
compile C++14 code. Now C++11 is enforced by gcc.

GnuPG-bug-id: 6141
https://invent.kde.org/neon/forks/libgpgme/-/commit/73e96bfaa8176cf7b18bfa9edacaaf8d26989998

Git commit 1522813888257aafb6d108b49fb7b24005d2693a by Ingo Klöcker on 22/08/2022 at 17:09..
build: Omit -I... and -L... for standard paths in pkgconfig file

* configure.ac (GPGME_CONFIG_CFLAGS): Prefix with -I${includedir} for
non-standard include paths.
(GPGME_CONFIG_LIBS): Prefix with -L${libdir} for non-standard library
paths.
* src/gpgme.pc.in (Cflags): Remove hard-coded -I${includedir}.
(Libs): Remove hard-coded -L${libdir}.
--

This helps prevent problems when building/linking something that depends
on gpgme (installed in standard path) and some other library (installed
in a standard path and a custom path).

See T6136 for related changes in libgpg-error.
https://invent.kde.org/neon/forks/libgpgme/-/commit/1522813888257aafb6d108b49fb7b24005d2693a

Git commit 80670f60ba971145dd6792e00d31c08c10cc8159 by NIIBE Yutaka on 07/09/2022 at 02:27..
Fix parsing import status for invalid fingerprint.

* src/import.c (parse_import): Handle invalid fingerprint case.

--

GnuPG-bug-id: 6187
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/80670f60ba971145dd6792e00d31c08c10cc8159

Git commit eedaaf70167f5dd7d8438235139b57527d3a961b by Ingo Klöcker on 14/09/2022 at 08:41..
cpp: Reject signing expired keys

* lang/cpp/src/gpgsignkeyeditinteractor.cpp (enum SignKeyState): Add
new state REJECT_SIGN_EXPIRED.
(makeTable): Add entries for new state to transition map.
(GpgSignKeyEditInteractor::action): Handle new state.
--

With this change the edit interactor aborts the key signing operation
with a "key expired" error instead of with a "general error".

GnuPG-bug-id: 6155
https://invent.kde.org/neon/forks/libgpgme/-/commit/eedaaf70167f5dd7d8438235139b57527d3a961b

Git commit fbd94076461ec55603d741121fa2ff6a861ea803 by NIIBE Yutaka on 15/09/2022 at 04:45..
Fix for modern compiler.

* src/argparse.c (show_version): It's no args.

--

Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/fbd94076461ec55603d741121fa2ff6a861ea803

Git commit ae9258fbf3b9d434495ef11fc184a91fe7c4ca57 by NIIBE Yutaka on 15/09/2022 at 04:46..
build:python: Don't use gpg-error-config/gpgme-config.

* lang/python/setup.py.in: Use @prefix@, @GPGME_CONFIG_LIBS@,
@GPGME_CONFIG_CFLAGS@, and @GPG_ERROR_CFLAGS@ of configure.

--

GnuPG-bug-id: 6204
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/ae9258fbf3b9d434495ef11fc184a91fe7c4ca57

Git commit b1e5f3b183104a58d71821b7dbe44244d1c3f87f by Werner Koch on 29/09/2022 at 07:59..
core: Fix SIG_CREATED status parsing for 0x1F sigs

* src/sign.c (parse_sig_created): Special case the rfc4880 "1F" status.
--

This has always been wrong but we can't simply force strtol to assume
hex.  Patch compiles but has received no specific test.  For details
see
GnuPG-bug-id: 6223
https://invent.kde.org/neon/forks/libgpgme/-/commit/b1e5f3b183104a58d71821b7dbe44244d1c3f87f

Git commit 8e908029ffa03d21662030d3111dcf556b722e1a by Ingo Klöcker on 10/10/2022 at 12:46..
build,qt: Explicitly namespace a few Qt variables for Qt5

m4/qt.m4: Rename to
m4/qt5.m4: this.
(FIND_QT): Rename to FIND_QT5.
(GPGME_QT): Change variable prefix to GPGME_QT5.
(GPGME_QTTEST: Change variable prefix to GPGME_QT5TEST.
configure.ac, lang/qt/src/Makefile.am, lang/qt/tests/Makefile.am:
Adjust accordingly.
--

In preparation to adding support for building qgpgme for Qt6, add the
version number to a few variables to avoid confusion.
https://invent.kde.org/neon/forks/libgpgme/-/commit/8e908029ffa03d21662030d3111dcf556b722e1a

Git commit 8d019bbb8d40de2cbed7ad6d3367c6a46a561fab by Ingo Klöcker on 11/10/2022 at 09:00..
build,qt: Allow building QGpgME for Qt 6

* configure.ac: Look for Qt 5 and/or Qt 6. Require C++17 if Qt 6 binding
is built. Build cmake files QGpgmeConfig* for Qt 5 and QGpgmeQt6Config*
for Qt 6.
(available_languages): Add "qt5" and "qt6".
(WANT_QT5, WANT_QT6): New conditionals.
* lang/qt/src/Makefile.am: Keep building libqgpgme for Qt 5. Build
libqgpgmeqt6 for Qt 6.
* lang/qt/tests/Makefile.am: Build tests for Qt 5 or Qt 6.
* lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in,
lang/qt/src/QGpgmeQt6Config.cmake.in.in,
lang/qt/src/QGpgmeQt6ConfigVersion.cmake.in, m4/qt6.m4: New.
--

This makes it possible to build QGpgME optionally for Qt 6.4.0 or later.
By default or if the language "qt" is enabled, then QGpgME is built
either for Qt 5 (if found) or Qt 6. A build for Qt 5 or Qt 6 can be
requested by explicitly enabling the language "qt5" or "qt6". Building
QGpgME for Qt 5 and Qt 6 simultaneously is not supported.
https://invent.kde.org/neon/forks/libgpgme/-/commit/8d019bbb8d40de2cbed7ad6d3367c6a46a561fab

Git commit 4938c24a466bf05e707d3e6cbf759705adc7e8d6 by Ingo Klöcker on 11/10/2022 at 09:00..
qt: Remove obsolete code.

* lang/qt/src/qgpgmenewcryptoconfig.cpp (struct Select1St): Remove.
--

This struct was never used in this implementation of the crypto config
classes and it causes a build error with Qt 6 where QPair is an alias
for std::pair.
https://invent.kde.org/neon/forks/libgpgme/-/commit/4938c24a466bf05e707d3e6cbf759705adc7e8d6

Git commit b2fb26baeada7b39331f71a30c654bfb8b53cb30 by Ingo Klöcker on 11/10/2022 at 09:00..
qt,tests: Port test to QRegularExpression.

* lang/qt/tests/t-trustsignatures.cpp: Use QRegularExpression instead of
QRegExp.
--

This allows building with Qt 6 without Core5Compat.
https://invent.kde.org/neon/forks/libgpgme/-/commit/b2fb26baeada7b39331f71a30c654bfb8b53cb30

Git commit e6a1b241b4e6a0a677ed8f0e4e287a5cc82d7fbb by Ingo Klöcker on 11/10/2022 at 09:00..
build,qt: Clean up all generated files

* lang/qt/src/Makefile.am (CLEANFILES): Add QGpgmeConfig-w32.cmake.in
and QGpgmeQt6Config-w32.cmake.in.
--
https://invent.kde.org/neon/forks/libgpgme/-/commit/e6a1b241b4e6a0a677ed8f0e4e287a5cc82d7fbb

Git commit f7a46714283bb8c107c68d0f1227abfe223b2365 by Ingo Klöcker on 14/10/2022 at 07:31..
build,qt: Always compile the Qt 6 test application with -fpic

* m4/qt6.m4: Do not add -fpic to GPGME_QT6_CFLAGS. Add -fpic to CPPFLAGS
used for build test of simple Qt 6 application.
--

The pkgconfig files of Qt6Core do not contain the qt_config variable,
so that we cannot easily check whether Qt6 was compiled with pic. For
simplicity we always compile the test application with -fpic to avoid
a build failure if Qt6 was actually compiled with pic.
For the actual build of QGpgME libtool automatically uses -fPIC, so that
we don't have to add it to the GPGME_QT6_CFLAGS.
https://invent.kde.org/neon/forks/libgpgme/-/commit/f7a46714283bb8c107c68d0f1227abfe223b2365

Git commit 55e660ee944cef18d6766711c566974c002e28a4 by Ingo Klöcker on 14/10/2022 at 08:34..
doc: Update NEWS

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/55e660ee944cef18d6766711c566974c002e28a4

Git commit 1792db58346cb39fd99332478d56dc190bae7836 by Ingo Klöcker on 14/10/2022 at 12:02..
build,qt: Fail check for Qt if moc wasn't found

* m4/qt5.m4, m4/qt6.m4: Perform build test only if moc was found.
--

If moc wasn't found but the build test (which doesn't require moc)
succeeded, then success was reported.
https://invent.kde.org/neon/forks/libgpgme/-/commit/1792db58346cb39fd99332478d56dc190bae7836

Git commit 2ff09f474fb908dff83cce79c9d84b4fa21f5d7b by Ingo Klöcker on 14/10/2022 at 12:16..
build,qt: Check whether building with -fPIC is needed

m4/qt6.m4: Use build test to check whether -fPIC is needed for building
a Qt application.
--
https://invent.kde.org/neon/forks/libgpgme/-/commit/2ff09f474fb908dff83cce79c9d84b4fa21f5d7b

Git commit d36905bb80c43987f2ca6980d3973d2111f89991 by NIIBE Yutaka on 24/10/2022 at 03:10..
build: Update gpg-error.m4.

* m4/gpg-error.m4: Update from libgpg-error 1.46.

--

Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/d36905bb80c43987f2ca6980d3973d2111f89991

Git commit d9ac1385950217893be6f0d6fdb3324b8647d16b by Ingo Klöcker on 24/10/2022 at 10:22..
cpp: Allow setting the curve to use when generating ECC keys

lang/cpp/src/gpggencardkeyinteractor.h (class GpgGenCardKeyInteractor):
Add enum Curve. Add member function setCurve.
lang/cpp/src/gpggencardkeyinteractor.cpp
(class GpgGenCardKeyInteractor::Private): Initialize simple members
in-class. Add member curve.
(GpgGenCardKeyInteractor::~GpgGenCardKeyInteractor): Use default d'tor.
(GpgGenCardKeyInteractor::setCurve): New.
(GpgGenCardKeyInteractor::action): Return curve defaulting to
Curve25519.
--

This enables users of this interactor to request the generation of
ECC keys with a specific curve as smart card keys. It's up to the user
to specify a curve that is actually supported by the smart card.

GnuPG-bug-id: 4429
https://invent.kde.org/neon/forks/libgpgme/-/commit/d9ac1385950217893be6f0d6fdb3324b8647d16b

Git commit 830e017e5d5f51d956d1188860302655f3e727e9 by Werner Koch on 24/10/2022 at 11:50..
core: Protect against a theoretical integer overflow in parsetlv.c

* src/parsetlv.c (_gpgme_parse_tlv): Detect integer overflow.
--

Although there is no concrete case where we use for example
(to.nhdr+ti.length), it feels safer to protect against this anyway.
https://invent.kde.org/neon/forks/libgpgme/-/commit/830e017e5d5f51d956d1188860302655f3e727e9

Git commit f1802682c3c8794edaca37966405bd1f070f5e01 by NIIBE Yutaka on 26/10/2022 at 02:02..
python: Fix configure generating setup.py.

* lang/python/setup.py.in: Handle the case, when substitutions
may be empty.

--

Reported-by: Andreas Metzler
Fixes-commit: ae9258fbf3b9d434495ef11fc184a91fe7c4ca57
GnuPG-bug-id: 6204
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/f1802682c3c8794edaca37966405bd1f070f5e01

Git commit 1c9694f8d50b1236d2e4f2acbe23f972da36e437 by Werner Koch on 26/10/2022 at 10:10..
core: New global flags "inst-type".

* src/gpgme.c (gpgme_set_global_flag): Add flag "inst-type".
* src/w32-util.c (_gpgme_set_get_inst_type): New.
(INST_TYPE_GPG4WIN_DIR): New.
(INST_TYPE_GPGDESK_DIR): New.
(_gpgme_get_gpgconf_path): Implement this flag.  Replace fixed strings
by the macros.
* src/posix-util.c (_gpgme_set_get_inst_type): New dummy.
--

This is intended for use by Kleopatra to reliable find the expected
GnuPG installation.
https://invent.kde.org/neon/forks/libgpgme/-/commit/1c9694f8d50b1236d2e4f2acbe23f972da36e437

Git commit 9f55dceca0cf2926d14cb4a70bd0cdc454d89f03 by NIIBE Yutaka on 02/11/2022 at 01:12..
build: Prefer gpgrt-config when available.

* src/gpgme.m4: Overriding the decision by --with-gpgme-prefix,
use gpgrt-config gpgme when gpgrt-config is available.

--

This may offer better migration.

GnuPG-bug-id: 5034
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/9f55dceca0cf2926d14cb4a70bd0cdc454d89f03

Git commit 9f5e11729260b814c4903e2fbccfb3855073abd2 by NIIBE Yutaka on 02/11/2022 at 01:12..
build: Update libassuan.m4.

* m4/libassuan.m4: Update from libassuan master.

--

GnuPG-bug-id: 5034
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/9f5e11729260b814c4903e2fbccfb3855073abd2

Git commit 4f874ea431ba68ba70cf569741488502b1f61e66 by Ingo Klöcker on 04/11/2022 at 09:38..
core: New context flag "no-auto-check-trustdb"

* src/context.h (gpgme_context): Add field no_auto_check_trustdb.
* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add flag
"no-auto-check-trustdb".
* src/engine-gpg.c (engine_gpg): Add flags.no_auto_check_trustdb.
(gpg_set_engine_flags): Set the flag.
(build_argv): Pass option to gpg.

* tests/run-keylist.c (show_usage, main): Add option --no-trust-check.
--

This makes the --no-auto-check-trustdb option available in the GPGME API
to disable the potentially expensive automatic trust database check.

GnuPG-bug-id: 6261
https://invent.kde.org/neon/forks/libgpgme/-/commit/4f874ea431ba68ba70cf569741488502b1f61e66

Git commit b6593bda1f7bfaf6cf3b869b8379cbb2b619e00a by Ingo Klöcker on 04/11/2022 at 09:44..
qt: Allow disabling automatic trust database check on key listing

* lang/qt/src/Makefile.am (qgpgme_sources): Add listallkeysjob.cpp.
* lang/qt/src/listallkeysjob.cpp: New.
* lang/qt/src/listallkeysjob.h (enum ListAllKeysJob::Option,
typedef ListAllKeysJob::Options, ListAllKeysJob::setOptions,
ListAllKeysJob::options): New.
* lang/qt/src/qgpgmelistallkeysjob.cpp (list_keys): Set context flag
"no-auto-check-trustdb" if requested.
(QGpgMEListAllKeysJob::start, QGpgMEListAllKeysJob::exec): Add options
to call of list_keys.
--

GnuPG-bug-id: 6261
https://invent.kde.org/neon/forks/libgpgme/-/commit/b6593bda1f7bfaf6cf3b869b8379cbb2b619e00a

Git commit 6bcfbb3498f02dc86370cd4f2e3ccc5f9163d51a by Ingo Klöcker on 11/11/2022 at 10:46..
core: Check for nullptr

* src/edit.c (interact_start, edit_start): Return error if key is null.
--

This prevents a crash further down the road.
https://invent.kde.org/neon/forks/libgpgme/-/commit/6bcfbb3498f02dc86370cd4f2e3ccc5f9163d51a

Git commit 2b7fcbf2f280ca88d76f8398138580155213552a by NIIBE Yutaka on 15/11/2022 at 04:39..
m4: Update gpg-error.m4.

* m4/gpg-error.m4: Update from libgpg-error master.

--

GnuPG-bug-id: 6273
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/2b7fcbf2f280ca88d76f8398138580155213552a

Git commit abd51848bdc8a5ea5929f9cfb819a408dc53d463 by NIIBE Yutaka on 15/11/2022 at 04:40..
gpgme.m4: Include _AM_PATH_GPGRT_CONFIG implementation.

* src/gpgme.m4 (_AM_PATH_GPGRT_CONFIG): New.
(_AM_PATH_GPGME_CONFIG): Require _AM_PATH_GPGRT_CONFIG.

--

GnuPG-bug-id: 6273
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/abd51848bdc8a5ea5929f9cfb819a408dc53d463

Git commit ae2057e6017427941aef00ccf1b7a9f6b0e3189c by NIIBE Yutaka on 15/11/2022 at 05:25..
doc: Update documentation for gpgme.pc and pkg-config.

--

GnuPG-bug-id: 6274
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/ae2057e6017427941aef00ccf1b7a9f6b0e3189c

Git commit 5903fa454a47d788432192a7860b90b57efd6a10 by Ingo Klöcker on 15/11/2022 at 09:03..
core: Allow nullptr for key on card-edit

* src/edit.c (interact_start, edit_start): Return error if key is null
on edit-key.
--

In case of card-edit, key is typically null.
https://invent.kde.org/neon/forks/libgpgme/-/commit/5903fa454a47d788432192a7860b90b57efd6a10

Git commit f9cbf2c8a839d2c3df20157cfe65b67a4b0bcb5a by NIIBE Yutaka on 25/11/2022 at 06:37..
gpgme.m4: Fix AM_PATH_GPGME_PTHREAD.

* src/gpgme.m4 (AM_PATH_GPGME_PTHREAD): It's deprecated, since gpgme
supports threads and GNU C library has integrated pthread features.

--

GnuPG-bug-id: 6285
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/f9cbf2c8a839d2c3df20157cfe65b67a4b0bcb5a

Git commit a9921d797b45f1ab6766e06c96c6ce880a6427e1 by NIIBE Yutaka on 29/11/2022 at 02:18..
doc: Don't use AM_PATH_GPGME_PTHREAD any more.

--

GnuPG-bug-id: 6285
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/a9921d797b45f1ab6766e06c96c6ce880a6427e1

Git commit d04d7b174fb7f27b7434cade22eafdd85b2d424e by Ingo Klöcker on 06/12/2022 at 07:12..
qt: Write path values with Unix directory separators

* lang/qt/src/qgpgmenewcryptoconfig.cpp
(QGpgMENewCryptoConfigEntry::setURLValue): Remove conversion to native
directory separators.
--

Even on Windows Unix directory separators work with all API calls. And
some path values also allow "URLs" like tcp://1.2.3.4:10001 which must
use '/'.

GnuPG-bug-id: 4518
https://invent.kde.org/neon/forks/libgpgme/-/commit/d04d7b174fb7f27b7434cade22eafdd85b2d424e

Git commit c419376b85ff4a489f3bf7ad97ed656495792523 by Ingo Klöcker on 08/12/2022 at 14:31..
cpp: Handle statuses that need no response in the base edit interactor

* lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl): Do
not call nextState() if status needs no response.
* lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp
(GpgAddExistingSubkeyEditInteractor::Private::nextState),
lang/cpp/src/gpgadduserideditinteractor.cpp
(GpgAddUserIDEditInteractor::nextState),
lang/cpp/src/gpggencardkeyinteractor.cpp
(GpgGenCardKeyInteractor::nextState),
lang/cpp/src/gpgrevokekeyeditinteractor.cpp
(GpgRevokeKeyEditInteractor::Private::nextState),
lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp
(GpgSetExpiryTimeEditInteractor::nextState),
lang/cpp/src/gpgsetownertrusteditinteractor.cpp
(GpgSetOwnerTrustEditInteractor::nextState),
lang/cpp/src/gpgsignkeyeditinteractor.cpp
(GpgSignKeyEditInteractor::nextState): Remove handling of statuses that
need no response.
--

This change removes superfluous code duplication.

GnuPG-bug-id: 6305
https://invent.kde.org/neon/forks/libgpgme/-/commit/c419376b85ff4a489f3bf7ad97ed656495792523

Git commit e7953dcf1376631719c73d9fa34bcb96752d3794 by Ingo Klöcker on 08/12/2022 at 14:31..
cpp: Handle status errors in the base edit interactor

* lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl):
Handle status errors.
* lang/cpp/src/gpgrevokekeyeditinteractor.cpp
(GpgRevokeKeyEditInteractor::Private::nextState): Remove handling of
status errors.
--

With this change status errors are handled for all interactors. In
particular, this makes all edit interactors handle canceled password
prompts correctly.

GnuPG-bug-id: 6305
https://invent.kde.org/neon/forks/libgpgme/-/commit/e7953dcf1376631719c73d9fa34bcb96752d3794

Git commit 2ba11f9bfb1f51a481eb1240b8cf2c8ad260c222 by NIIBE Yutaka on 14/12/2022 at 06:12..
doc:python: Replace gpgme-config to pkg-config.

--

Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/2ba11f9bfb1f51a481eb1240b8cf2c8ad260c222

Git commit 270d7523001a57a59ea0be617d8e71d4363e0d50 by Ingo Klöcker on 04/01/2023 at 10:37..
qt: Explicitly instantiate private job classes

* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/changeexpiryjob_p.h, lang/qt/src/encryptjob_p.h,
lang/qt/src/importjob_p.h, lang/qt/src/listallkeysjob_p.h,
lang/qt/src/signencryptjob_p.h: New.
* lang/qt/src/changeexpiryjob.cpp, lang/qt/src/encryptjob.cpp,
lang/qt/src/importjob.cpp, lang/qt/src/listallkeysjob.cpp,
lang/qt/src/signencryptjob.cpp: Move JobPrivate subclasses to the new
private header files.
* lang/qt/src/job_p.h (jobPrivate): Remove lazy instantiation of private
job classes.
* lang/qt/src/qgpgmechangeexpiryjob.cpp (class
QGpgMEChangeExpiryJobPrivate): New.
(QGpgMEChangeExpiryJob::QGpgMEChangeExpiryJob): Instantiate private job
class.
* lang/qt/src/qgpgmeencryptjob.cpp (class
QGpgMEEncryptJobPrivate): New.
(QGpgMEEncryptJob::QGpgMEEncryptJob): Instantiate private job
class.
* lang/qt/src/qgpgmeimportjob.cpp (class
QGpgMEImportJobPrivate): New.
(QGpgMEImportJob::QGpgMEImportJob): Instantiate private job
class.
* lang/qt/src/qgpgmelistallkeysjob.cpp (class
QGpgMEListAllKeysJobPrivate): New.
(QGpgMEListAllKeysJob::QGpgMEListAllKeysJob): Instantiate private job
class.
* lang/qt/src/qgpgmesignencryptjob.cpp (class
QGpgMESignEncryptJobPrivate): New.
(QGpgMESignEncryptJob::QGpgMESignEncryptJob): Instantiate private job
class.
--

We need private job classes corresponding to the concrete leaf classes.
This makes the lazy instantiation of the private classes by the job
interface classes impossible.

GnuPG-bug-id: 6323
https://invent.kde.org/neon/forks/libgpgme/-/commit/270d7523001a57a59ea0be617d8e71d4363e0d50

Git commit 18c2c0b2509069951829bb0bdd9b39dc467f5e6e by Ingo Klöcker on 04/01/2023 at 11:16..
qt: Support deferred start of jobs

* lang/qt/src/job.cpp, lang/qt/src/job.h (Job::startNow): New method.
* lang/qt/src/job_p.h (JobPrivate::start): New pure virtual method.
* lang/qt/src/qgpgmechangeexpiryjob.cpp
(QGpgMEChangeExpiryJobPrivate::start): New.
* lang/qt/src/qgpgmeencryptjob.cpp (QGpgMEEncryptJobPrivate::start):
New.
* lang/qt/src/qgpgmeimportjob.cpp (QGpgMEImportJobPrivate::start): New.
* lang/qt/src/qgpgmelistallkeysjob.cpp
(QGpgMEListAllKeysJobPrivate::start): New.
* lang/qt/src/qgpgmesignencryptjob.cpp
(QGpgMESignEncryptJobPrivate::start): New.
* lang/qt/src/threadedjobmixin.h (Thread::hasFunction): New method.
(ThreadedJobMixin::run, ThreadedJobMixin::setWorkerFunction): New
methods.
--

startNow() starts a deferred job for which the worker function has been
set before.

GnuPG-bug-id: 6323
https://invent.kde.org/neon/forks/libgpgme/-/commit/18c2c0b2509069951829bb0bdd9b39dc467f5e6e

Git commit 398375a0ab3b819694435c2e46b759d56b3735e0 by Ingo Klöcker on 05/01/2023 at 13:24..
qt: Allow deferred start of import job

* lang/qt/src/importjob.h (ImportJob::startLater): New pure virtual
method.
* lang/qt/src/qgpgmeimportjob.cpp, lang/qt/src/qgpgmeimportjob.h
(QGpgMEImportJob::startLater): New method.

* lang/qt/tests/t-import.cpp (ImportTest::testDeferredStart): New.
--

This makes it possible to prepare an import job for a deferred start.

GnuPG-bug-id: 6323
https://invent.kde.org/neon/forks/libgpgme/-/commit/398375a0ab3b819694435c2e46b759d56b3735e0

Git commit e16c368758e54b99d88529d3a10cecf36ed995b8 by Ingo Klöcker on 05/01/2023 at 17:03..
qt: Replace Q_DECL_OVERRIDE with override

* lang/qt/src/defaultkeygenerationjob.h,
lang/qt/src/hierarchicalkeylistjob.h, lang/qt/src/multideletejob.h,
lang/qt/src/protocol_p.h, lang/qt/src/qgpgmeadduseridjob.h,
lang/qt/src/qgpgmechangeexpiryjob.h,
lang/qt/src/qgpgmechangeownertrustjob.h,
lang/qt/src/qgpgmechangepasswdjob.h, lang/qt/src/qgpgmedecryptjob.h,
lang/qt/src/qgpgmedecryptverifyjob.h, lang/qt/src/qgpgmedeletejob.h,
lang/qt/src/qgpgmedownloadjob.h, lang/qt/src/qgpgmeencryptjob.h,
lang/qt/src/qgpgmeexportjob.h, lang/qt/src/qgpgmegpgcardjob.h,
lang/qt/src/qgpgmeimportfromkeyserverjob.h,
lang/qt/src/qgpgmeimportjob.h, lang/qt/src/qgpgmekeyformailboxjob.h,
lang/qt/src/qgpgmekeygenerationjob.h, lang/qt/src/qgpgmekeylistjob.h,
lang/qt/src/qgpgmelistallkeysjob.h, lang/qt/src/qgpgmenewcryptoconfig.h,
lang/qt/src/qgpgmequickjob.h, lang/qt/src/qgpgmerefreshsmimekeysjob.h,
lang/qt/src/qgpgmesignencryptjob.h, lang/qt/src/qgpgmesignjob.h,
lang/qt/src/qgpgmesignkeyjob.h, lang/qt/src/qgpgmetofupolicyjob.h,
lang/qt/src/qgpgmeverifydetachedjob.h,
lang/qt/src/qgpgmeverifyopaquejob.h, lang/qt/src/qgpgmewkdlookupjob.h,
lang/qt/src/qgpgmewkspublishjob.h, lang/qt/src/threadedjobmixin.h,
lang/qt/tests/t-support.h: Replace Q_DECL_OVERRIDE with override
--

We require C++11 since a long time.
https://invent.kde.org/neon/forks/libgpgme/-/commit/e16c368758e54b99d88529d3a10cecf36ed995b8

Git commit dc9cc9aa0754d834388acabb5a68677f6512b960 by Ingo Klöcker on 05/01/2023 at 19:17..
cpp: Expliticly declare compiler generated copy constructors

* lang/cpp/src/configuration.h (Component, Option),
lang/cpp/src/data.h (Data),
lang/cpp/src/decryptionresult.h (DecryptionResult,
DecryptionResult::Recipient),
lang/cpp/src/encryptionresult.h (EncryptionResult, InvalidRecipient),
lang/cpp/src/engineinfo.h (EngineInfo),
lang/cpp/src/importresult.h (ImportResult, Import),
lang/cpp/src/key.h (Key, Subkey, UserID, UserID::Signature),
lang/cpp/src/keygenerationresult.h (KeyGenerationResult),
lang/cpp/src/keylistresult.h (KeyListResult),
lang/cpp/src/notation.h (Notation),
lang/cpp/src/signingresult.h (SigningResult, InvalidSigningKey,
CreatedSignature),
lang/cpp/src/swdbresult.h (SwdbResult),
lang/cpp/src/tofuinfo.h (TofuInfo),
lang/cpp/src/verificationresult.h (VerificationResult, Signature),
lang/cpp/src/vfsmountresult.h (VfsMountResult): Explitily declare
compiler generated copy constructor.
--

This fixes "implicitly-declared copy constructor is deprecated"
warnings.
https://invent.kde.org/neon/forks/libgpgme/-/commit/dc9cc9aa0754d834388acabb5a68677f6512b960

Git commit 2e9d72a0be8579d6f1d3c74c64873a9c2f844272 by Ingo Klöcker on 05/01/2023 at 19:29..
cpp: Fix comparisons of integer expressions of different signedness

* lang/cpp/src/gpgrevokekeyeditinteractor.cpp
(GpgRevokeKeyEditInteractor::Private::nextState): Cast signed nextLine
value to std::size_t.
--
https://invent.kde.org/neon/forks/libgpgme/-/commit/2e9d72a0be8579d6f1d3c74c64873a9c2f844272

Git commit 64da77620a451653e9b8c41bb0c9e58e22967123 by Ingo Klöcker on 05/01/2023 at 19:33..
qt: Fix comparisons of integer expressions of different signedness

* lang/qt/tests/t-import.cpp (ImportTest::testImportWithImportFilter):
Make integer literal unsigned.
--
https://invent.kde.org/neon/forks/libgpgme/-/commit/64da77620a451653e9b8c41bb0c9e58e22967123

Git commit 984ff7e3a2a9a261a0732cbdaf3b2f22d325b433 by Ingo Klöcker on 16/01/2023 at 11:28..
core: Do not add obsolete --no-sk-comments to command line

* src/engine-gpg.c (build_argv): Don't add "--no-sk-comments" to argv.
--

This option is a no-op since 1.4.3 and 1.4.23 is the latest 1.4 release.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/984ff7e3a2a9a261a0732cbdaf3b2f22d325b433

Git commit fbce7deb3b68af900f692591d5d05fa5c1a83f5f by Ingo Klöcker on 17/01/2023 at 08:31..
core: Use "goto leave" pattern to clean up resources

* src/engine-gpg.c (build_argv): Initialize fd_data_map and argv. Goto
leave on error. Free fd_data_map and argv on error.
--

This will make it easier to add an additional "--with-gpg-args" option
where needed.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/fbce7deb3b68af900f692591d5d05fa5c1a83f5f

Git commit 12e490d97f2e7064bc9b5bea0d197790d10db106 by Ingo Klöcker on 18/01/2023 at 09:30..
core: Extend gpgme_get_dirinfo to return the gpgtar name

* src/dirinfo.c (WANT_GPGTAR_NAME): New.
(dirinfo): Add field gpgtar_name.
(get_gpgconf_item): Build gpgtar_name on demand and return it.
(_gpgme_get_default_gpgtar_name) : New.
(gpgme_get_dirinfo): New value "gpgtar-name" for WHAT.
* src/util.h (_gpgme_get_default_gpgtar_name): New.

* tests/t-engine-info.c (main): Add gpgtar-name to the output.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/12e490d97f2e7064bc9b5bea0d197790d10db106

Git commit 1a9dfdfccba1a10ce87809beba71d8e035df3aa5 by Ingo Klöcker on 18/01/2023 at 09:33..
cpp,doc: Update list of allowed values for dirInfo

--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/1a9dfdfccba1a10ce87809beba71d8e035df3aa5

Git commit 7a68a1ca645296fa90ff9e08a99879cf8d440630 by Ingo Klöcker on 18/01/2023 at 09:37..
doc: Document socketdir value of gpgme_get_dirinfo

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/7a68a1ca645296fa90ff9e08a99879cf8d440630

Git commit d56b3bc1cfa128d0246cfac59411adaad2579bc4 by Ingo Klöcker on 18/01/2023 at 09:54..
core: Defer adding --status-fd and --logger-fd to argument list

* src/engine-gpg.c (_append_to_arglist, _prepend_to_arglist): New.
(_add_arg): Use _append_to_arglist and _prepend_to_arglist.
(add_data_ext): New. Extends add_data.
(add_data): Uses add_data_ext.
(gpg_new): Do not add --status-fd and --logger-fd to argument list.
(start): Prepend --logger-fd and --status-fd to the argument list.
--

This change makes it possible to handle those two arguments differently
if gpgtar is used instead of gpg.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/d56b3bc1cfa128d0246cfac59411adaad2579bc4

Git commit 5d8316da1d3dd0ab73743898e76c51932d0f13e2 by Ingo Klöcker on 18/01/2023 at 10:48..
core: Support usage of gpgtar for encryption

* src/gpgme.h.in (GPGME_ENCRYPT_ARCHIVE): New encryption flag.
* src/engine-gpg.c (arg_and_data_s): New field gpg_arg.
(engine_gpg): New flag use_gpgtar.
(_add_arg): Add argument gpg_arg and set it.
(add_arg_ext, add_arg_with_locp, add_arg, add_arg_pfx, add_arg_len):
Adjust call of _add_arg.
(add_arg_with_locp): Add argument front.
(add_gpg_arg, add_gpg_arg_with_value): New.
(gpg_new): Use add_gpg_arg_with_value for gpg-only options with a value
and add_gpg_arg for gpg-only options without.
(build_argv): Consider usage of gpgtar when counting arguments to pass
to gpg/gpgtar. Prepend "--gpg-args" to all gpg-only arguments if gpgtar
is used.
(start): Set program to use. Read diagnostics output from stderr when
using gpgtar. Do not pass --status-fd to gpgtar for gpg < 2.4.1. Use
add_gpg_arg_with_value for --lc-ctype and --lc-messages.
(gpg_encrypt): Set use_gpgtar engine flag if GPGME_ENCRYPT_ARCHIVE flag
is set. Check for new enough gpg and incompatible flags. Use
add_gpg_arg_with_value for gpg-only options with a value and
add_gpg_arg for gpg-only options without a value. Set extra options
for gpgtar and pass input data to stdin when using gpgtar.
* src/engine-gpgsm.c (gpgsm_encrypt): Return error if new flag is set.
* src/engine-uiserver.c (uiserver_encrypt): Ditto.

* tests/run-encrypt.c (show_usage): New options --archive and
--diagnostics.
(main): Parse new options. Encrypt with gpgtar if --archive is given.
Print stderr of gpg/gpgtar if --diagnostics is given.
--

With this change the gpgme_op_encrypt* functions get support for
encrypting a list of files and/or directories passed as NUL-separated
list in "plain" data with gpgtar.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/5d8316da1d3dd0ab73743898e76c51932d0f13e2

Git commit aa201b0bb63d703a3794826fac2e2013fb0c34e7 by Ingo Klöcker on 19/01/2023 at 09:29..
core: Fix --set-filename argument

* src/engine-gpg.c (gpg_encrypt): Append equal sign to argument name.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/aa201b0bb63d703a3794826fac2e2013fb0c34e7

Git commit 0ca45e48b45af1978027e6fe26c7e406fd5ec74b by Ingo Klöcker on 19/01/2023 at 09:45..
core: Support usage of gpgtar for creating a signed archive

* src/gpgme.h.in (GPGME_SIG_MODE_ARCHIVE): New signature mode.
* src/engine-gpg.c (append_args_from_sender,
append_args_from_sig_notations): Use add_gpg_arg_with_value
for gpg-only options with a value.
(gpg_sign): Set use_gpgtar engine flag if GPGME_SIG_MODE_ARCHIVE mode
is set. Check for new enough gpg. Use add_gpg_arg_with_value for
gpg-only options with a value and add_gpg_arg for gpg-only options
without a value. Set extra options for gpgtar and pass input data to
stdin when using gpgtar.
* src/sign.c (sign_start): Add GPGME_SIG_MODE_ARCHIVE as valid mode.

* tests/run-sign.c (show_usage): New options --archive and
--diagnostics.
(main): Parse new options. Sign with gpgtar if --archive is given.
Print stderr of gpg/gpgtar if --diagnostics is given.
--

With this change the gpgme_op_sign* functions get support for
creating a signed archive from files and/or directories passed as
NUL-separated list in the "in" data with gpgtar.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/0ca45e48b45af1978027e6fe26c7e406fd5ec74b

Git commit 29cfcd316d1bfc98ca663369a9503cc169dd3447 by Ingo Klöcker on 19/01/2023 at 10:08..
core: Support usage of gpgtar for creating an encrypted signed archive

* src/engine-gpg.c (gpg_encrypt_sign): Set use_gpgtar engine flag if
GPGME_ENCRYPT_ARCHIVE mode is set. Check for new enough gpg. Use
add_gpg_arg_with_value for gpg-only options with a value and
add_gpg_arg for gpg-only options without a value. Set extra options for
gpgtar and pass input data to stdin when using gpgtar.

* tests/run-encrypt.c (print_result): Rename to print_encrypt_result.
Print header.
(print_sign_result): New.
(show_usage): New option --sign.
(main): Parse new option. Sign and encrypt --sign is given.
Print results of signing additionally to results of encryption.
--

With this change the gpgme_op_encrypt_sign* functions get support for
creating an encrypted and signed archive from files and/or directories
passed as NUL-separated list in the "plain" data with gpgtar.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/29cfcd316d1bfc98ca663369a9503cc169dd3447

Git commit 4c872b674189d84d936d6c5cbe18b27c90c162e0 by Ingo Klöcker on 19/01/2023 at 11:08..
doc: Update NEWS and API documentation

--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/4c872b674189d84d936d6c5cbe18b27c90c162e0

Git commit 419adf41afa40e5b34f646f2cb16d8aebda20048 by Ingo Klöcker on 23/01/2023 at 11:17..
core: Allow setting the base directory when creating an archive

* src/engine-gpg.c (gpg_encrypt, gpg_encrypt_sign, gpg_sign): Pass
file name set in data with --directory option to gpgtar.

* tests/run-encrypt.c (show_usage): New option --directory.
(main): Parse new option. Set file name of input data to option value.
* tests/run-sign.c (show_usage): New option --directory.
(main): Parse new option. Set file name of input data to option value.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/419adf41afa40e5b34f646f2cb16d8aebda20048

Git commit 95ea3bf831aeac201108876e73750692aa1ba3f5 by Ingo Klöcker on 24/01/2023 at 11:32..
core: Support usage of gpgtar for decrypting an encrypted archive

* src/gpgme.h.in (GPGME_DECRYPT_ARCHIVE): New decryption flag.
* src/engine-gpg.c (gpg_decrypt): Set use_gpgtar engine flag if
GPGME_DECRYPT_ARCHIVE flag is set. Check for new enough gpg and
incompatible flags. Use add_gpg_arg_with_value for gpg-only options
with a value and add_gpg_arg for gpg-only options without a value.
Set extra options for gpgtar and pass input data to stdin when using
gpgtar.

* tests/run-decrypt.c (show_usage): New options --archive and
--directory.
(main): Parse new options. Decrypt with gpgtar if --archive is given.
Set file name of output data to value of --directory option.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/95ea3bf831aeac201108876e73750692aa1ba3f5

Git commit 5b79b323971cb0794c45791851d85f8a66f0a441 by Ingo Klöcker on 25/01/2023 at 10:26..
core: Support usage of gpgtar for verifying a signed archive

* src/gpgme.h.in (gpgme_verify_flags_t): New enum.
(GPGME_VERIFY_ARCHIVE): New const.
(gpgme_op_verify_ext_start): New func.
(gpgme_op_verify_ext): New func.
* src/gpgme.def, src/libgpgme.vers: Add new functions.
* src/verify.c (gpgme_op_verify_ext_start): New.
(gpgme_op_verify_ext): New.
(verify_start): Add arg FLAGS.  Pass the flags to
_gpgme_engine_op_verify.
(gpgme_op_verify_start): Call gpgme_op_verify_ext_start with 0 for
FLAGS.
(gpgme_op_verify): Call gpgme_op_verify_ext with 0 for FLAGS.
* src/engine.c, src/engine.h (_gpgme_engine_op_verify): Add arg FLAGS.
* src/engine-backend.h (struct engine_ops): Add FLAGS to 'verify'.
* src/engine-gpg.c (gpg_verify): Add arg FLAGS. Set use_gpgtar engine
flag if GPGME_VERIFY_ARCHIVE flag is set. Check for new enough gpg. Use
add_gpg_arg for gpg-only options without a value. Set extra options for
gpgtar and pass input data to stdin when using gpgtar.
* src/engine-gpgsm.c (gpgsm_verify): Add arg FLAGS. Return error if
GPGME_VERIFY_ARCHIVE flag is set.
* src/engine-uiserver.c (uiserver_verify): Ditto.

* tests/run-verify.c (show_usage): New options --archive, --directory,
and --diagnostics.
(main): Parse new options. Verify and extract with gpgtar if --archive
is given. Set file name of output data to value of --directory option.
Print stderr of gpg/gpgtar if --diagnostics is given.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/5b79b323971cb0794c45791851d85f8a66f0a441

Git commit ab7146aa61f009f51a9bcf5b8855b128aadec55d by Ingo Klöcker on 25/01/2023 at 11:17..
doc: Update NEWS and API documentation

--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/ab7146aa61f009f51a9bcf5b8855b128aadec55d

Git commit 3580bb139b2e41f6c2397e506ee66f4892ceec62 by Ingo Klöcker on 26/01/2023 at 08:52..
core: Update required GnuPG version for new archive features

* src/engine-gpg.c (gpg_decrypt, gpg_encrypt, gpg_encrypt_sign,
gpg_sign, gpg_verify): Require gpg 2.4.1.

--

To work properly the archive feature needs a fix added in GnuPG 2.4.1.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/3580bb139b2e41f6c2397e506ee66f4892ceec62

Git commit 70aaf05a6a3eafd1ba96df71d03334337b1d071d by Ingo Klöcker on 26/01/2023 at 11:01..
cpp: Pass ThrowKeyIds and EncryptWrap flags to GpgME

* lang/cpp/src/context.cpp (encryptflags2encryptflags): Convert
ThrowKeyIds and EncryptWrap to corresponding gpgme encrypt flags.
(operator<<): Add flags to debug stream.
--

GnuPG-bug-id: 6359
https://invent.kde.org/neon/forks/libgpgme/-/commit/70aaf05a6a3eafd1ba96df71d03334337b1d071d

Git commit 3e31f648e513bed0029b09104d416d25fca08868 by Ingo Klöcker on 26/01/2023 at 11:01..
cpp: Support all encryption flags

* lang/cpp/src/context.h (WantAddress): New flag.
* lang/cpp/src/context.cpp (encryptflags2encryptflags): Convert
WantAddress to corresponding gpgme encrypt flags.
(operator<<): Add new flag to debug stream.
--

GnuPG-bug-id: 6359
https://invent.kde.org/neon/forks/libgpgme/-/commit/3e31f648e513bed0029b09104d416d25fca08868

Git commit 1328a575864376dcedb21dde9f67779a6d55c18d by Ingo Klöcker on 27/01/2023 at 11:11..
doc: Fix syntax errors

--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/1328a575864376dcedb21dde9f67779a6d55c18d

Git commit 261245a2e0e76568607c79a0c80372cb6f46444e by Ingo Klöcker on 27/01/2023 at 11:14..
cpp: Add convenience overload to set file name

* lang/cpp/src/data.h, lang/cpp/src/data.cpp (setFileName): Add
overload.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/261245a2e0e76568607c79a0c80372cb6f46444e

Git commit d28ea8c6b3db008150e2bae99a33e30b55c4bc10 by Ingo Klöcker on 27/01/2023 at 11:16..
cpp: Support new archive encryption flag

* lang/cpp/src/context.h (EncryptArchive): New flag.
* lang/cpp/src/context.cpp (encryptflags2encryptflags): Convert
EncryptArchive to corresponding gpgme encrypt flags.
(operator<<): Add new flag to debug stream.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/d28ea8c6b3db008150e2bae99a33e30b55c4bc10

Git commit 275a3a2c16d27e5bc87f7d80af2ee703a92b6758 by Ingo Klöcker on 27/01/2023 at 11:17..
qt: Add data provider for list of file names

* lang/qt/src/Makefile.am: Add new files and corresponding camel-case
header.
* lang/qt/src/dataprovider.h: Include interface from gpgme++ when
not building.
* lang/qt/src/filelistdataprovider.cpp,
lang/qt/src/filelistdataprovider.h: New.
--

The new data provider simplifies providing a nul-separated list of
UTF-8-encoded filenames, e.g. for creating signed or encrypted
archives. It is a simple read-only proxy for QByteArrayDataProvider.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/275a3a2c16d27e5bc87f7d80af2ee703a92b6758

Git commit 7afd135ccec73585e06272f98b4a0895e3ee6579 by Ingo Klöcker on 27/01/2023 at 11:20..
qt: Add job for creating encrypted archives

* lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h,
lang/qt/src/encryptarchivejob_p.h,
lang/qt/src/qgpgmeencryptarchivejob.cpp,
lang/qt/src/qgpgmeencryptarchivejob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function encryptArchiveJob
* lang/qt/src/protocol_p.h (Protocol::encryptArchiveJob): ... and
implement it.
* lang/qt/src/Makefile.am: Update accordingly.

* lang/qt/tests/run-encryptarchivejob.cpp: New.
* lang/qt/tests/Makefile.am: Add new test runner.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/7afd135ccec73585e06272f98b4a0895e3ee6579

Git commit 48b11f576260286bddef3833e25d0059638fe0bb by Ingo Klöcker on 30/01/2023 at 11:49..
core: Use signature modes as flags

* src/engine-backend.h (engine_ops.sign): Rename argument mode to
flags.
* src/engine-gpg.c (gpg_sign): Rename argument mode to flags. Check
for invalid combination of flags.
* src/engine-gpgsm.c (gpgsm_sign): Rename argument mode to flags.
Check for unsupported flags.
* src/engine-uiserver.c (gpgsm_sign): Rename argument mode to flags.
Check for unsupported flags.
* src/engine.c, src/engine.h (_gpgme_engine_op_sign): Rename argument
mode to flags.
* src/gpgme.h.in (GPGME_SIG_MODE_ARCHIVE): Change value to 4.
(gpgme_op_sign_start, gpgme_op_sign): Rename argument mode to flags.
* src/sign.c (sign_start): Rename argument mode to flags. Adjust
check for invalid flags.
(gpgme_op_sign_start, gpgme_op_sign): Rename argument mode to flags.
--

Using the signature mode constants as flags is more natural, even if
currently all flags are mutually exclusive, because archives are
signed with a normal signature.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/48b11f576260286bddef3833e25d0059638fe0bb

Git commit 2faa031af24959d5093da430d5f10fe30d77a75d by Ingo Klöcker on 30/01/2023 at 11:49..
cpp: Support new archive signing flag

* lang/cpp/src/global.h (enum SignatureMode): Add constant SignArchive.
* lang/cpp/src/context.cpp (sigmode2sigmode): Rename to
sigflags2sigflags
(sigflags2sigflags): ... and rename argument mode to flags and treat
it as flags. Adjust the callers.
(operator<<): Change local CHECK macro to handle flags. Add new flag
to debug stream.
* lang/cpp/src/signingresult.cpp (CreatedSignature::mode): Handle
new flags (even if it cannot occur currently).
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/2faa031af24959d5093da430d5f10fe30d77a75d

Git commit 8d672b3b7e5c5d487f20fb742a29fbee21236885 by Ingo Klöcker on 30/01/2023 at 11:56..
qt: Add job for creating signed archives

* lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h,
lang/qt/src/signarchivejob_p.h,
lang/qt/src/qgpgmesignarchivejob.cpp,
lang/qt/src/qgpgmesignarchivejob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function signArchiveJob
* lang/qt/src/protocol_p.h (Protocol::signArchiveJob): ... and
implement it.
* lang/qt/src/Makefile.am: Update accordingly.

* lang/qt/tests/run-signarchivejob.cpp: New.
* lang/qt/tests/Makefile.am: Add new test runner.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/8d672b3b7e5c5d487f20fb742a29fbee21236885

Git commit 3cdcfa33f7496c3130797224f8ae327732409460 by Werner Koch on 31/01/2023 at 06:59..
Merge branch 'ikloecker/t6342-gpgtar' into master

--
Solved conflicts:
	NEWS
	lang/cpp/src/context.cpp
	lang/cpp/src/context.h
https://invent.kde.org/neon/forks/libgpgme/-/commit/3cdcfa33f7496c3130797224f8ae327732409460

Git commit 577562dd4cabea53e5119f609eecf666ba84dc46 by Werner Koch on 31/01/2023 at 07:10..
Update NEWS and set version to 1.19.0

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/577562dd4cabea53e5119f609eecf666ba84dc46

Git commit 359378c5b3f3aaf274dfc33861978c3cf6ec60ca by Werner Koch on 31/01/2023 at 08:52..
json: New operation "identify" and convenience option --identify.

* src/gpgme-json.c (data_type_to_string): New.
(op_identify): New.
(process_request): Add to command list.
(cmd_identify): New.
(main): Add option --identify.
--
https://invent.kde.org/neon/forks/libgpgme/-/commit/359378c5b3f3aaf274dfc33861978c3cf6ec60ca

Git commit 5d07f8db7763d5cc48c7b27d5cc67d74fad77ea4 by Werner Koch on 31/01/2023 at 08:53..
doc: Fix description of gpgme_data_identify

--
GnuPG-bug-id: 5887
https://invent.kde.org/neon/forks/libgpgme/-/commit/5d07f8db7763d5cc48c7b27d5cc67d74fad77ea4

Git commit 2b98585c89c1654aa736777eeb92ff79d5fdd72b by Ingo Klöcker on 31/01/2023 at 11:01..
qt,tests: Avoid leaking Context

* lang/qt/tests/t-import.cpp: Wrap Context*s in unique_ptr.
--

This fixes leaks found with -fsanitize=address.
https://invent.kde.org/neon/forks/libgpgme/-/commit/2b98585c89c1654aa736777eeb92ff79d5fdd72b

Git commit 8c4436e73af369f79f125f56d020d01b184cafc6 by Ingo Klöcker on 31/01/2023 at 11:01..
qt: Add job for creating encrypted signed archives

* lang/qt/src/signencryptarchivejob.cpp,
lang/qt/src/signencryptarchivejob.h,
lang/qt/src/signencryptarchivejob_p.h,
lang/qt/src/qgpgmesignencryptarchivejob.cpp,
lang/qt/src/qgpgmesignencryptarchivejob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function signEncryptArchiveJob
* lang/qt/src/protocol_p.h (Protocol::signEncryptArchiveJob): ... and
implement it.
* lang/qt/src/Makefile.am: Update accordingly.

* lang/qt/tests/run-encryptarchivejob.cpp (displayName): Remove.
(CommandLineOptions): Initialize member armor. Add member sign.
(parseCommandLine): Update application description. Add and parse option
-s/--sign.
(main): Use SignEncryptArchiveJob if sign option is set.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/8c4436e73af369f79f125f56d020d01b184cafc6

Git commit 41a30f6d9f59b08213ab2c307036be9bc9b6f876 by Ingo Klöcker on 31/01/2023 at 11:01..
cpp: Fix debug output of SignatureMode

* lang/cpp/src/context.cpp (operator<<): Treat signature mode as
combination of a 2-bit flag and a 1-bit flag.
--

This fixes the output for normal signature mode.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/41a30f6d9f59b08213ab2c307036be9bc9b6f876

Git commit d3a8c2c8b68b290a642c83c53a5989ee7fdc6331 by Ingo Klöcker on 31/01/2023 at 11:01..
qt: Remove unused and commented-out code

* lang/qt/src/qgpgmeencryptarchivejob.cpp,
lang/qt/src/qgpgmeencryptarchivejob.h (QGpgMEEncryptArchiveJob):
Remove member function resultHook and member mResult.
* lang/qt/src/qgpgmesignarchivejob.cpp,
lang/qt/src/qgpgmesignarchivejob.h (QGpgMESignArchiveJob):
Remove member function resultHook and member mResult.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/d3a8c2c8b68b290a642c83c53a5989ee7fdc6331

Git commit 7b2188aca159f42b1e1d02afdd48152bab187463 by Ingo Klöcker on 31/01/2023 at 11:01..
doc: Update NEWS

--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/7b2188aca159f42b1e1d02afdd48152bab187463

Git commit 472f109138a19c0712a835622acf9376129239c6 by Ingo Klöcker on 31/01/2023 at 11:13..
doc: Update "since" version

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/472f109138a19c0712a835622acf9376129239c6

Git commit 343fb33bf02bea74caf4e615483f1a00dc06f7b8 by Ingo Klöcker on 31/01/2023 at 20:13..
qt: Fix build without installed gpgme++ headers

* lang/qt/src/filelistdataprovider.cpp: Include error.h without
folder prefix.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/343fb33bf02bea74caf4e615483f1a00dc06f7b8

Git commit 5ab9c234d6b507f568fe1d2a2cbc82250a7828ee by Werner Koch on 01/02/2023 at 16:29..
core,w32: More robust detection of GnuPG Desktop dir layout

* src/w32-util.c (INST_TYPE_GPG4WIN, INST_TYPE_GPGDESK): New to
replace the numeric constants.
(find_version_file): New.
(_gpgme_get_gpgconf_path): Guess a default for inst_type.
--

GnuPG-bug-id: 6362
https://invent.kde.org/neon/forks/libgpgme/-/commit/5ab9c234d6b507f568fe1d2a2cbc82250a7828ee

Git commit 7f541547fc1783bb9ea119695fb76e2000bdfcf8 by Ingo Klöcker on 02/02/2023 at 08:47..
core: Allow usage of gpgtar also for new enough gpg 2.2

* src/engine-gpg.c (have_usable_gpgtar): New.
(start): Always pass --status-fd to the called process.
(gpg_decrypt, gpg_encrypt, gpg_encrypt_sign, gpg_sign, gpg_verify):
Use have_usable_gpgtar() to check for suitable gpg.
--

The version check in start() is not needed because versions of gpg
that are unsuitable for the usage of gpgtar are rejected already by
the callers.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/7f541547fc1783bb9ea119695fb76e2000bdfcf8

Git commit 84780646910cdd91555a368650e3d92cf52b86bd by Ingo Klöcker on 02/02/2023 at 08:47..
cpp: Add const-overloads of version comparison operators

* lang/cpp/src/engineinfo.h (EngineInfo::Version): Add const-overloads
of all comparison operators.
--

We keep the non-const overloads for binary compatibility.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/84780646910cdd91555a368650e3d92cf52b86bd

Git commit 55c948866fb8bf4adbf0c8f53edf51a4075b753e by Ingo Klöcker on 02/02/2023 at 08:47..
qt: Allow checking if the sign/encrypt archive jobs are supported

* lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h
(isSupported): New.
* lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h
(isSupported): New.
* lang/qt/src/signencryptarchivejob.cpp,
lang/qt/src/signencryptarchivejob.h (isSupported): New.

* lang/qt/tests/run-encryptarchivejob.cpp (main),
lang/qt/tests/run-signarchivejob.cpp (main): Check if jobs are
supported.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/55c948866fb8bf4adbf0c8f53edf51a4075b753e

Git commit b3bdf14b37a313c21de61168e5e7545ab08fea13 by Ingo Klöcker on 02/02/2023 at 08:56..
cpp: Update decryption flags

* lang/cpp/src/context.h (DecryptArchive): New flag.
--

This flag corresponds to the GPGME_DECRYPT_ARCHIVE flag in gpgme.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/b3bdf14b37a313c21de61168e5e7545ab08fea13

Git commit 7ad717f6ba00046a26a99d015d701a178ca30630 by Ingo Klöcker on 02/02/2023 at 08:59..
core: Make usage of input size hint compatible with gpgtar

* src/engine-gpg.c (add_input_size_hint): Use add_gpg_arg_with_value
to add the --input-size-hint option.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/7ad717f6ba00046a26a99d015d701a178ca30630

Git commit c407728064ca0c9b2f365437c6a7f2acc40e6d84 by Ingo Klöcker on 02/02/2023 at 11:11..
qt: Add job for extracting encrypted and signed archives

* lang/qt/src/decryptverifyarchivejob.cpp,
lang/qt/src/decryptverifyarchivejob.h,
lang/qt/src/decryptverifyarchivejob_p.h,
lang/qt/src/qgpgmedecryptverifyarchivejob.cpp,
lang/qt/src/qgpgmedecryptverifyarchivejob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function decryptVerifyArchiveJob
* lang/qt/src/protocol_p.h (Protocol::decryptVerifyArchiveJob): ... and
implement it.
* lang/qt/src/Makefile.am: Update accordingly.

* lang/qt/tests/run-decryptverifyarchivejob.cpp: New.
* lang/qt/tests/Makefile.am: Add new test runner.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/c407728064ca0c9b2f365437c6a7f2acc40e6d84

Git commit 1698eec2ae3ec1a97c739e892d9cf288c0ec4ccd by Ingo Klöcker on 02/02/2023 at 11:11..
cpp: Return successful verification for signed but not encrypted data

* lang/cpp/src/context.cpp (Context::decrypt): Use decryptionResult().
(Context::verifyDetachedSignature, Context::verifyOpaqueSignature):
Use verificationResult().
(Context::verificationResult): Ignore "no data" error for signed but
not encrypted data.
(Context::decryptAndVerify): Use decryptionResult() and
verificationResult().
--

gpgme's decrypt operations set the error to GPG_ERR_NO_DATA if no
encrypted data was found. It makes sense to use this error for the
encryption result, but it doesn't make sense to use it also for the
verfication result if signed data was found.
This way using the combined decrypt-verify operations on data that
may be encrypted and/or signed doesn't produce confusing results.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/1698eec2ae3ec1a97c739e892d9cf288c0ec4ccd

Git commit 52fd0bcde47a676ee1021c870b50e2add78d6973 by Ingo Klöcker on 02/02/2023 at 11:11..
qt,tests: Add test for the previous commit

* lang/qt/tests/t-decryptverify.cpp: New.
* lang/qt/tests/Makefile.am: Add new test.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/52fd0bcde47a676ee1021c870b50e2add78d6973

Git commit e0778ed91021822d127168d239cc51011e96dc95 by Ingo Klöcker on 02/02/2023 at 11:22..
doc: Add new flags

--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/e0778ed91021822d127168d239cc51011e96dc95

Git commit 844e6cd3b923834727f042b92d6a9a2db86b3fed by Ingo Klöcker on 08/02/2023 at 12:25..
tests: Make t-edit-sign idempotent

* tests/gpg/t-edit-sign.c (test_key, test_key_fpr, import_key,
delete_key): New.
(main): Remove key_fpr. Import test key to sign. Delete test key after
test.
--

Using a dedicated test key for testing key signing, which is imported
before the test and deleted after the test, makes sure that the
keys in the test key ring don't change. This is important for stable
results of the key listing tests.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/844e6cd3b923834727f042b92d6a9a2db86b3fed

Git commit fcefc78f749a8f39cc587636647b24f8fa48efad by Ingo Klöcker on 08/02/2023 at 12:46..
tests: Extend tests with an ultimately trusted key

* tests/gpg/Makefile.am (gpg-sample.stamp, pubring-stamp): Unify usage
of tabs.
(pubring-stamp): Import owner trust values.
* tests/gpg/ownertrust.txt: New.
* tests/gpg/t-decrypt-verify.c, tests/gpg/t-verify.c: Update expected
values for signature summary and validity.
* tests/gpg/t-keylist-secret-sig.c, tests/gpg/t-keylist-sig.c,
tests/gpg/t-keylist.c: Update expected values of owner trust and uid
validity.
--

This change marks the "Alpha Test" test key as ultimately trusted which
makes it possible to check for correct values derived from this, i.e.
key owner trust, user id validity, signature summary and signature
validity.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/fcefc78f749a8f39cc587636647b24f8fa48efad

Git commit 7098c14b231113055535abb14b4cde0c845f8728 by Ingo Klöcker on 09/02/2023 at 08:33..
tests: Stop daemons after setting up test environment

* lang/python/tests/Makefile.am, lang/qt/tests/Makefile.am,
tests/gpg/Makefile.am, tests/json/Makefile.am (pubring-stamp): Call
`gpgconf --kill all` after importing test keys.
--

This ensures that no gpg-agents or other daemons are running after
"make".
https://invent.kde.org/neon/forks/libgpgme/-/commit/7098c14b231113055535abb14b4cde0c845f8728

Git commit 3aaed9cfbfd6821b2e812fbdd24448953d6ca279 by Ingo Klöcker on 09/02/2023 at 08:56..
cpp: Improve debug output of some enums

* lang/cpp/src/verificationresult.cpp (operator<<): Fix output of
Signature::PKAStatus which doesn't represent flags. Print corresponding
name of enum value if Signature::Summary or Notation::Flags are 0.
--

GnuPG-bug-id: 6368
https://invent.kde.org/neon/forks/libgpgme/-/commit/3aaed9cfbfd6821b2e812fbdd24448953d6ca279

Git commit 41dc3bd22a3e0001abec8f2bea79b40ee5ad00be by Ingo Klöcker on 10/02/2023 at 08:54..
core: Allow finalization of signature verification of unencrypted data

* src/decrypt-verify.c (decrypt_verify_status_handler): Call
_gpgme_verify_status_handler on EOF even if
_gpgme_decrypt_status_handler returned NO DATA error.

* tests/gpg/t-decrypt-verify.c (normal_signed_message): New.
(main): Add test with signed, but not encrypted data.
--

This allows the verify status handler to finalize the verification of
the last signature even if the decrypt status handler returned a NO DATA
error because the input data wasn't encrypted.

GnuPG-bug-id: 6368
https://invent.kde.org/neon/forks/libgpgme/-/commit/41dc3bd22a3e0001abec8f2bea79b40ee5ad00be

Git commit 21283dfd1be1e56bc174cf5f12461888af7ab8b5 by Ingo Klöcker on 10/02/2023 at 09:00..
tests: Fix cleaning up at the end of the test

* tests/gpg/t-import.c (main): Unref key and release context.
--

This fixes leaks found with -fsanitize=address.
https://invent.kde.org/neon/forks/libgpgme/-/commit/21283dfd1be1e56bc174cf5f12461888af7ab8b5

Git commit c0da6f77c66e3c514a23a80ad497c08b1062c6c8 by Werner Koch on 10/02/2023 at 10:12..
core: Update copyright notices

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/c0da6f77c66e3c514a23a80ad497c08b1062c6c8

Git commit 9c5506fde701f637381614dcfe22e3f9dc82955d by Werner Koch on 10/02/2023 at 10:12..
core: Switch to logging via gpgrt

* src/debug.c (errfp): Remove.
(debug_init): Factor some code out to ...
(safe_to_use_debug_file): new.
(tid_log_callback): New.
(debug_init): Rewrite to make use of gpgrt logging.
(_gpgme_debug): Ditto.
(_gpgme_debug_end): Remove extra LF testing code.
* src/dirinfo.c (get_gpgconf_item): Remove now unneeded LFs.  Realign
output.
https://invent.kde.org/neon/forks/libgpgme/-/commit/9c5506fde701f637381614dcfe22e3f9dc82955d

Git commit ea6f15ed602eeb9fa87766ba88acc78361a14b38 by Ingo Klöcker on 14/02/2023 at 08:25..
qt: Add simple and extended progress signals replacing old signal

* lang/qt/src/job.h (Job): Add signals jobProgress and rawProgress.
Deprecate signal progress.
* lang/qt/src/multideletejob.cpp (MultiDeleteJob::slotResult): Emit
new progress signals.
* lang/qt/src/qgpgmerefreshsmimekeysjob.cpp
(QGpgMERefreshSMIMEKeysJob::slotStatus): Ditto.
* lang/qt/src/threadedjobmixin.h (ThreadedJobMixin::showProgress): Use
modern overload of QMetaObject::invokeMethod to forward the progress
signal and add the value of what. Add forwarding of progress to the new
signals.

* lang/qt/tests/t-encrypt.cpp (EncryptionTest::testProgress): Test
the new signals instead of the deprecated one.
--

The new signal jobProgress omits the what value which is useless for
most consumers. The new signal rawProgress makes all information
provided by the backend available to consumers. The latter is not
really meant to be used by users of gpgme. It will be used by the
archive jobs to provide more user-friendly signals.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/ea6f15ed602eeb9fa87766ba88acc78361a14b38

Git commit ccff6a96fc2b0b069c6fd3a6d2991a9b372ad714 by Ingo Klöcker on 14/02/2023 at 08:25..
qt: Remove commented out code

--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/ccff6a96fc2b0b069c6fd3a6d2991a9b372ad714

Git commit 73e46b34658c0130de5ab9e3f4ce1ac4ee35c5e2 by Ingo Klöcker on 14/02/2023 at 08:25..
qt: Add signals for file-based and data-based progress

* lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add
signals fileProgress and dataProgress.
* lang/qt/src/encryptarchivejob.h (EncryptArchiveJob): Ditto.
* lang/qt/src/signarchivejob.h (SignArchiveJob): Ditto.
* lang/qt/src/signencryptarchivejob.h (SignEncryptArchiveJob): Ditto.
* lang/qt/src/job_p.h (emitArchiveProgressSignals): New.
* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
(QGpgMEDecryptVerifyArchiveJob::QGpgMEDecryptVerifyArchiveJob): Emit
appropriate signal when receiving Job::rawProgress signal.
* lang/qt/src/qgpgmeencryptarchivejob.cpp
(QGpgMEEncryptArchiveJob::QGpgMEEncryptArchiveJob): Ditto.
* lang/qt/src/qgpgmesignarchivejob.cpp
(QGpgMESignArchiveJob::QGpgMESignArchiveJob): Ditto.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp
(QGpgMESignEncryptArchiveJob::QGpgMESignEncryptArchiveJob): Ditto.
--

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/73e46b34658c0130de5ab9e3f4ce1ac4ee35c5e2

Git commit 76351c4877d60799a35afccd87037d5dd0871262 by Werner Koch on 08/03/2023 at 09:50..
tests: Add option --binary to run-verify

* tests/run-verify.c (main): Set encoding.
--

gpgsm usually used autodetection of the input format.  But sometimes
it is required to tell gpgsm that the input is binary encoded.  In
particular, this allows to strip trailing zeroes from a detached
signature.
https://invent.kde.org/neon/forks/libgpgme/-/commit/76351c4877d60799a35afccd87037d5dd0871262

Git commit c1f6535f144dedfbf5507f850d4da5b61fd5ec74 by Werner Koch on 08/03/2023 at 14:54..
core: Also detect legacy X.509 v0 certificates.

* src/data-identify.c (basic_detection): Loose the detection of X.509
certs.
https://invent.kde.org/neon/forks/libgpgme/-/commit/c1f6535f144dedfbf5507f850d4da5b61fd5ec74

Git commit 98a159eb5e0458e4ce52dae9fe4877b0c430598b by Werner Koch on 15/03/2023 at 15:07..
build: Update autogen.sh from libgpg-error

--

This fixes hopefully issues with the beta numbering.  Also removes the
Windows-CE support
https://invent.kde.org/neon/forks/libgpgme/-/commit/98a159eb5e0458e4ce52dae9fe4877b0c430598b

Git commit e50724e1bbe55678dfcd2a1ea75157f6514fc58a by Ingo Klöcker on 17/03/2023 at 08:20..
tests: Package the ownertrust file

tests/gpg/Makefile.am (EXTRA_DIST): Add ownertrust.txt.
--

This fixes `make distcheck`.

GnuPG-bug-id: 6342
https://invent.kde.org/neon/forks/libgpgme/-/commit/e50724e1bbe55678dfcd2a1ea75157f6514fc58a

Git commit d086653cc346d5634bc742d5586e927fc9ee57cf by Werner Koch (on behalf of Ben Greiner (bnavigator)) on 17/03/2023 at 09:06..
python: Update python.m4 configure script.

* configure.ac: Unset PYTHON_LIBS.  Support python 3.10.
* m4/python.m4: Find correct version string for python >= 3.10.
--

See-also: https://dev.gnupg.org/D546

Also test for 3.11 and 3.12 (wk).
https://invent.kde.org/neon/forks/libgpgme/-/commit/d086653cc346d5634bc742d5586e927fc9ee57cf

Git commit 96a30fdf30626a7cefd9c9e620a60817ef44fde2 by Werner Koch on 17/03/2023 at 09:34..
Release 1.19.0
https://invent.kde.org/neon/forks/libgpgme/-/commit/96a30fdf30626a7cefd9c9e620a60817ef44fde2

Git commit 18e09b15d58d9ce13d997967b5ba0a32b3efc828 by Werner Koch on 17/03/2023 at 10:42..
Post release updates

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/18e09b15d58d9ce13d997967b5ba0a32b3efc828

Git commit 6d21256c9220df05bf92a695a787dde13fe44ca7 by Werner Koch on 21/03/2023 at 07:37..
core,cpp: Add new key flags to gpgme_subkey_t

* src/gpgme.h.in (struct _gpgme_subkey): Add bit flags can_renc,
can_timestamp, adn is_group_owned. Reduce size of _unused.
* src/keylist.c (set_subkey_capability): Set them.
* tests/run-keylist.c (main): Print them.

* lang/cpp/src/key.h (Subkey::canRenc): New.
(Subkey::canTimestamp): New.
(Subkey::isGroupOwned): New.
* lang/cpp/src/key.cpp: Implement new methods.
(Subkey::isQualified): Print them.
(std::ostream &operator<<): Print them.
--

GnuPG-bug-id: 6395
https://invent.kde.org/neon/forks/libgpgme/-/commit/6d21256c9220df05bf92a695a787dde13fe44ca7

Git commit b608c084b9220d8ed288eb916e88a236abac0707 by Ingo Klöcker on 27/03/2023 at 14:49..
core: Initialize error variable

* src/engine-gpg.c (build_argv): Initialize err.
--

Fixes-commit: fbce7deb3b68af900f692591d5d05fa5c1a83f5f
https://invent.kde.org/neon/forks/libgpgme/-/commit/b608c084b9220d8ed288eb916e88a236abac0707

Git commit 34cc7daba12a2a6baa3cfa337762656c210686fa by Werner Koch on 27/03/2023 at 14:56..
core: Minor code cleanup.

* src/engine-gpg.c (build_argv): Remove superfluous tes.
--

gpg_error_from_syserror is guaranteed not to return 0 even if errno is
not set.
https://invent.kde.org/neon/forks/libgpgme/-/commit/34cc7daba12a2a6baa3cfa337762656c210686fa

Git commit d256ba7cc57d9bfcfa05fb05cf66dc992efbb695 by Ingo Klöcker on 04/04/2023 at 10:11..
w32: Always use UTF-8 for localized texts

* configure.ac: Define GPG_ERR_ENABLE_GETTEXT_MACROS.
* src/version.c (do_subsystem_inits) [W32]: Switch gettext to UTF-8.
--

On Windows, applications using GpgME can now rely on localized texts
returned by GpgME, e.g. the texts for error codes, to be UTF-8 encoded.
In particular, this saves a useless and possibly lossy conversion to
native encoding and back to UTF-8. On other OSes, where we use the
system provided gettext, we assume that UTF-8 is used nowadays.

GnuPG-bug-id: 5960
https://invent.kde.org/neon/forks/libgpgme/-/commit/d256ba7cc57d9bfcfa05fb05cf66dc992efbb695

Git commit 806a5d18b988449fbaa3c2e6380acf3ae4580f4a by NIIBE Yutaka on 05/04/2023 at 23:40..
build: Update gpg-error.m4.

* m4/gpg-error.m4: Update from libgpg-error master.

--

Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/806a5d18b988449fbaa3c2e6380acf3ae4580f4a

Git commit 0c29119e061cbdcb7342380938a25af91290f1a0 by Werner Koch on 17/04/2023 at 12:05..
core,w32: Fix invocation of gpgtar

* src/dirinfo.c (EXEEXT_S): New.
(get_gpgconf_item): Append ".exe" to gpg-wks-client and gpgtar.

* src/gpgme-w32spawn.c (mystderr): Add code to ease debugging.
https://invent.kde.org/neon/forks/libgpgme/-/commit/0c29119e061cbdcb7342380938a25af91290f1a0

Git commit 7d1159c1e99bb1bae0ab698c85105dcdcb95b7ea by Werner Koch on 17/04/2023 at 13:05..
core: Avoid printf format warnings due to gpgme_ssize_t.

* src/debug.h (_trace_sysres_ssize_t): Cast arg.
https://invent.kde.org/neon/forks/libgpgme/-/commit/7d1159c1e99bb1bae0ab698c85105dcdcb95b7ea

Git commit 5bd84cfd3f092703bb4b9b993be7d89ca13b36b0 by Ingo Klöcker on 18/04/2023 at 11:16..
cpp: Fix Key::canSign()

* lang/cpp/src/key.h (canReallySign): Deprecate.
* lang/cpp/src/key.cpp (canSign): Remove workaround. Use implementation
of canReallySign.
(canReallySign): Use canSign().
(operator<<): Use canSign().
--

The workaround in canSign was added 19 years ago and canReallySign, the
workaround for the workaround, was added 13 years ago. Time to get rid
of those workarounds for a bug in gpgme which has been fixed long ago
and which cause bugs for any unsuspecting user of Key::canSign().

GnuPG-bug-id: 6456
https://invent.kde.org/neon/forks/libgpgme/-/commit/5bd84cfd3f092703bb4b9b993be7d89ca13b36b0

Git commit e80bf34bf86f6f183145c31d598dda41c0496a4d by Ingo Klöcker on 19/04/2023 at 07:18..
Update NEWS

* NEWS: Add news for recent changes
--

GnuPG-bug-id: 5960, 6456
https://invent.kde.org/neon/forks/libgpgme/-/commit/e80bf34bf86f6f183145c31d598dda41c0496a4d

Git commit a14155d2c1b2ddc167dbf278faf1d6b469575492 by Ingo Klöcker on 19/04/2023 at 07:23..
build,qt: Simplify check for moc

m4/qt6.m4: Remove alternative checks for moc that were taken over from
Qt 5 and that are obsolete for Qt 6.
--
https://invent.kde.org/neon/forks/libgpgme/-/commit/a14155d2c1b2ddc167dbf278faf1d6b469575492

Git commit 7351ef32ce7c04d20ee32fc9b645a1931b3b0aba by Werner Koch on 20/04/2023 at 11:35..
core: Support the new macOS Homebrew location.

* src/posix-util.c (find_executable): Extend the path.
--

GnuPG-bug-id: 6440
https://invent.kde.org/neon/forks/libgpgme/-/commit/7351ef32ce7c04d20ee32fc9b645a1931b3b0aba

Git commit 451ed47434c5ffd2916adae25e5a128606b5ef98 by Werner Koch on 20/04/2023 at 11:48..
Release 1.20.0
https://invent.kde.org/neon/forks/libgpgme/-/commit/451ed47434c5ffd2916adae25e5a128606b5ef98

Git commit d99156ff081c08cf83c437bdae85a1f2c3b4f020 by Werner Koch on 20/04/2023 at 12:02..
Post release updates

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/d99156ff081c08cf83c437bdae85a1f2c3b4f020

Git commit d44a473e27160a35268789e14dccd0ad55af0690 by NIIBE Yutaka on 25/04/2023 at 23:46..
doc: Fix Python example code.

* lang/python/doc/src/gpgme-python-howto.org: Fix chmod race.
* lang/python/examples/howto/export-secret-key.py: Likewise.
* lang/python/examples/howto/export-secret-keys.py: Likewise.
* lang/python/examples/howto/temp-homedir-config.py: Likewise.

--

It's not for Python 2.7.

GnuPG-bug-id: 6466
Reported-by: Hanno Böck
Co-authored-by: Ingo Klöcker
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/d44a473e27160a35268789e14dccd0ad55af0690

Git commit e622e36f1f32641c66b28a0de95c75ae35f6ca05 by NIIBE Yutaka on 16/05/2023 at 01:52..
build: Sync to libtool from libgpg-error for 64-bit Windows.

* build-aux/ltmain.hs: Update from libgpg-error.

--

GnuPG-bug-id: 6484
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/e622e36f1f32641c66b28a0de95c75ae35f6ca05

Git commit 36a68bc5308c0b4a541ca6adea5d3635217e8af2 by Werner Koch on 23/05/2023 at 13:52..
python: Fix wrong use of write.

* lang/python/helpers.c (pyPassphraseCb): Use gpgme_io_writen.
(_gpg_interact_cb): Ditto.
* lang/python/helpers.h (write) [W32]: Remove bad write macro.
--
GnuPG-bug-id: T6501

Using write(2) without checking for EINTR is a not a good idea.
Futher gpgme_io_writen is the correct way to send data from a
callback.  This also fixed the wrong use of a simple macro for
Windows.
https://invent.kde.org/neon/forks/libgpgme/-/commit/36a68bc5308c0b4a541ca6adea5d3635217e8af2

Git commit fbc3963d6229853fe9fb1fd599ef39ed0fe2eae6 by Werner Koch on 30/05/2023 at 09:20..
core: For key signing and uid revoking allow an empty user id.

* src/engine-gpg.c (gpg_keysign): Required USERID to be non-empty.
--

For some language bindings it is easier if the engine considers an
empty user id to be equivalent to NULL.
https://invent.kde.org/neon/forks/libgpgme/-/commit/fbc3963d6229853fe9fb1fd599ef39ed0fe2eae6

Git commit e2103be390764f62b21a4e5d4fa90a7b78326787 by Werner Koch (on behalf of Biswapriyo Nath) on 30/05/2023 at 09:44..
cpp,python: Respect --disable-gpg-test for tests

lang/cpp/Makefile.am (SUBDIRS): Depend tests in RUN_GPG_TESTS.
lang/python/Makefile.am (SUBDIRS): Ditto.
--

This is similar to the core and qt switch to disable the tests.

Signed-off-by: Biswapriyo Nath <nathbappai at gmail.com>
ChangeLog entries added by wk.
https://invent.kde.org/neon/forks/libgpgme/-/commit/e2103be390764f62b21a4e5d4fa90a7b78326787

Git commit 7990f70107bc8487f954c6885436a7661e162929 by Ingo Klöcker on 01/06/2023 at 07:37..
doc,cpp: Treat GPG_ERR_FULLY_CANCELED as canceled

* doc/gpgme.texi (GPG_ERR_FULLY_CANCELED): New.
* lang/cpp/src/context.cpp (Error::isCanceled): Also return true for
GPG_ERR_FULLY_CANCELED.
--

For internal purposes, GnuPG sometimes uses the error code
GPG_ERR_FULLY_CANCELED instead of GPG_ERR_CANCELED. From a user
perspective both values mean the same thing and should therefore be
treated identically.

GnuPG-bug-id: 6510
https://invent.kde.org/neon/forks/libgpgme/-/commit/7990f70107bc8487f954c6885436a7661e162929

Git commit 7e6d51aa6fc97bed12486540167e9b710c9a3378 by Andre Heinecke on 13/06/2023 at 10:45..
Fix definition of GPG_ERR_ENABLE_GETTEXT_MACROS

* configure.ac: Add missing value.

--
Otherwise it would not be included in config.h
https://invent.kde.org/neon/forks/libgpgme/-/commit/7e6d51aa6fc97bed12486540167e9b710c9a3378

Git commit eb68948c438814b99b81adf44b674738d0b1be34 by Werner Koch on 15/06/2023 at 09:01..
core: Use 64 bit instead of gpgme_off_t for some internal functions.

* src/conversion.c (_gpgme_string_to_off): Return an u64 value.
* src/data.c (_gpgme_data_get_size_hint): Ditto.
(gpgme_data_set_flag): Use u64 for io-buffer-size due to string_to_off
change.
* src/data.h (struct gpgme_data): Change size_hint to u64.
* src/engine-gpg.c (add_input_size_hint): Replace gpgme_off_t by u64.
--

GnuPG-bug-id: 6534
https://invent.kde.org/neon/forks/libgpgme/-/commit/eb68948c438814b99b81adf44b674738d0b1be34

Git commit 8796456d235d2d7a8a1ce7337abc1d4d149bcf9a by Werner Koch on 15/06/2023 at 09:01..
tests: Add option --cancel to run-encrypt.

* tests/run-encrypt.c (cancel_after_progress): New.
(progress_cb): Take care of it.
(main): Add option --cancel.
--

This tool may now be used to test gpgme_cancel_async.
Releated to
GnuPG-bug-id: 6534
https://invent.kde.org/neon/forks/libgpgme/-/commit/8796456d235d2d7a8a1ce7337abc1d4d149bcf9a

Git commit 91bbb1e482da783b4d1b9d5f663a1a0af77fc0a4 by Werner Koch on 15/06/2023 at 11:00..
core: Send a input-size-hint for gpgsm.

* src/engine-gpgsm.c (send_input_size_hint): New.
(gpgsm_decrypt): Send hint.
(gpgsm_encrypt): Send hint.
(gpgsm_sign): Send hint.
(gpgsm_verify): Send hint.
--
GnuPG-bug-id: 6534
https://invent.kde.org/neon/forks/libgpgme/-/commit/91bbb1e482da783b4d1b9d5f663a1a0af77fc0a4

Git commit cbcea4a09b1309a4bd822247a8dfcdcb73041f9c by Andre Heinecke on 16/06/2023 at 10:35..
cpp: Expose gpgme_data_set_flag through cpp API

* lang/cpp/src/data.cpp (Data::setFlag): New.
* lang/cpp/src/data.h: Update accordingly.
* NEWS: Mention this.

--
This exposes the generic flag mechanism for data to users
of the C++ library. It is similar to Context::setFlag but
has no getter.
https://invent.kde.org/neon/forks/libgpgme/-/commit/cbcea4a09b1309a4bd822247a8dfcdcb73041f9c

Git commit 5811d069d3b391e9fd77c1062a2d96be41645422 by Andre Heinecke on 16/06/2023 at 12:33..
qt, cpp: Support larger size-hint on 32 bit builds

* NEWS: Mention this.
* lang/cpp/src/data.h, lang/cpp/src/data.cpp (Data::setSizeHint): New.
* lang/qt/src/qgpgmedecryptjob.cpp,
 lang/qt/src/qgpgmedecryptverifyarchivejob.cpp,
 lang/qt/src/qgpgmedecryptverifyjob.cpp,
 lang/qt/src/qgpgmeencryptjob.cpp,
 lang/qt/src/qgpgmesignencryptjob.cpp,
 lang/qt/src/qgpgmesignjob.cpp,
 lang/qt/src/qgpgmeverifydetachedjob.cpp,
 lang/qt/src/qgpgmeverifyopaquejob.cpp: Set size for input IODevice.

--
This fixes the case where the old detection of the size of QIOdevice
using seek would overflow and instead explicitly uses QIODevice::size
to check for the size and pass it through as an uint64.

GnuPG-Bug-Id: T6534
https://invent.kde.org/neon/forks/libgpgme/-/commit/5811d069d3b391e9fd77c1062a2d96be41645422

Git commit 6f6b35df505af108669bd6ff8c351c970130eb45 by Ingo Klöcker on 19/06/2023 at 15:58..
qt: Return const pointer to JobPrivate class for const pointer to Job

* lang/qt/src/job.cpp, lang/qt/src/job_p.h (getJobPrivate): Replace with
two overloads for non-const pointer and const pointer to Job.
* lang/qt/src/job_p.h (jobPrivate): Replace with two template functions
for non-const pointer and const pointer to Job.
--

This helps avoid changing values stored in the JobPrivate class in
const functions (e.g. getters) of Job classes.

GnuPG-bug-id: 6530
https://invent.kde.org/neon/forks/libgpgme/-/commit/6f6b35df505af108669bd6ff8c351c970130eb45

Git commit 4655b2dc6b33aca3bd6737eadadfb8afcf8694bd by Ingo Klöcker on 19/06/2023 at 15:58..
qt: Rename JobPrivate::start to JobPrivate::startNow

* lang/qt/src/job_p.h (JobPrivate::start): Rename to startNow.
* lang/qt/src/job.cpp (Job::startNow): Adapt function call.
* lang/qt/src/qgpgmechangeexpiryjob.cpp
(QGpgMEChangeExpiryJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
(QGpgMEDecryptVerifyArchiveJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmeencryptarchivejob.cpp
(QGpgMEEncryptArchiveJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmeencryptjob.cpp (QGpgMEEncryptJobPrivate::start):
Rename to startNow.
* lang/qt/src/qgpgmeimportjob.cpp (QGpgMEImportJobPrivate::start):
Rename to startNow.
* lang/qt/src/qgpgmelistallkeysjob.cpp
(QGpgMEListAllKeysJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmesignarchivejob.cpp
(QGpgMESignArchiveJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp
(QGpgMESignEncryptArchiveJobPrivate::start): Rename to startNow.
* lang/qt/src/qgpgmesignencryptjob.cpp
(QGpgMESignEncryptJobPrivate::start): Rename to startNow.
--

Using the same name for the public and the private method avoids
confusion.

GnuPG-bug-id: 6530
https://invent.kde.org/neon/forks/libgpgme/-/commit/4655b2dc6b33aca3bd6737eadadfb8afcf8694bd

Git commit 23526c3ff26be11e4ebb1294b6f60202881a066c by Ingo Klöcker on 19/06/2023 at 15:58..
qt: Make the run methods of ThreadedJobMixin public

* lang/qt/src/threadedjobmixin.h (ThreadedJobMixin::run): Make all
overloads public.
--

This allows calling the run() functions from the JobPrivate subclasses.

GnuPG-bug-id: 6530
https://invent.kde.org/neon/forks/libgpgme/-/commit/23526c3ff26be11e4ebb1294b6f60202881a066c

Git commit 8b9fabf5d55419a68c2b0fc7fd1a90517c881d78 by Ingo Klöcker on 19/06/2023 at 16:08..
qt: Add a generic hook to start a job

* lang/qt/src/job.cpp, lang/qt/src/job.h (Job::startIt): New method.
* lang/qt/src/job_p.h (JobPrivate::startIt): New pure virtual method.
* lang/qt/src/qgpgmechangeexpiryjob.cpp
(QGpgMEChangeExpiryJobPrivate::startIt): New.
* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
(QGpgMEDecryptVerifyArchiveJobPrivate::startIt): New.
* lang/qt/src/qgpgmeencryptarchivejob.cpp
(QGpgMEEncryptArchiveJobPrivate::startIt): New.
* lang/qt/src/qgpgmeencryptjob.cpp (QGpgMEEncryptJobPrivate::startIt):
New.
* lang/qt/src/qgpgmeimportjob.cpp (QGpgMEImportJobPrivate::startIt):
New.
* lang/qt/src/qgpgmelistallkeysjob.cpp
(QGpgMEListAllKeysJobPrivate::startIt): New.
* lang/qt/src/qgpgmesignarchivejob.cpp
(QGpgMESignArchiveJobPrivate::startIt): New.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp
(QGpgMESignEncryptArchiveJobPrivate::startIt): New.
* lang/qt/src/qgpgmesignencryptjob.cpp
(QGpgMESignEncryptJobPrivate::startIt): New.
--

startIt() starts a job if the necessary values have been set before.
This makes it possible to extend jobs with additional ways to start them
without having to worry about overloading existing virtual start()
methods. This will be used first for the different archive jobs.

GnuPG-bug-id: 6530
https://invent.kde.org/neon/forks/libgpgme/-/commit/8b9fabf5d55419a68c2b0fc7fd1a90517c881d78

Git commit c38b6200396f703917e4c66aca068f90cfbad325 by Ingo Klöcker on 19/06/2023 at 16:08..
core: Support writing the sign/encrypt output directly to a file

* src/engine-gpg.c (gpg_encrypt): Pass output file name to gpg if output
has file name set.
(gpg_encrypt_sign): Ditto.
(gpg_sign): Ditto.

* tests/run-encrypt.c (show_usage): New option --output.
(main): Parse new option. Set file name on output if --output is given.
Do not print output if --output is given.
* tests/run-sign.c (show_usage): New option --output.
(main): Parse new option. Set file name on output if --output is given.
Do not print output if --output is given.
--

This change makes it possible to tell gpg (and gpgtar) to write the
output (i.e. the signed/encrypted data or the signature or the created
archive) directly to a file with given file name instead of piping
the output back to gpgme.

GnuPG-bug-id: 6530
https://invent.kde.org/neon/forks/libgpgme/-/commit/c38b6200396f703917e4c66aca068f90cfbad325

Git commit e608315392cc5b7ddf51e16dce5fe7e99b83f011 by Ingo Klöcker on 19/06/2023 at 16:21..
qt: Support writing signed/encrypted archives directly to a file

* lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h
(EncryptArchiveJob): Add member functions setRecipients, recipients,
setInputPaths, inputPaths, setOutputFile, outputFile,
setEncryptionFlags, encryptionFlags.
* lang/qt/src/encryptarchivejob_p.h (EncryptArchiveJobPrivate): Add
members m_recipients, m_inputPaths, m_outputFilePath, m_encryptionFlags.
* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt): Move creation of
outdata to encrypt_to_io_device.
(encrypt_to_io_device, encrypt_to_filename): New.
(QGpgMEEncryptArchiveJob::start): Use encrypt_to_io_device instead of
encrypt.
(QGpgMEEncryptArchiveJobPrivate::startIt): Start the job with the
values from member variables.
* lang/qt/src/qgpgmesignarchivejob.cpp (sign): Move creation of
outdata to sign_to_io_device.
(sign_to_io_device, sign_to_filename): New.
(QGpgMESignArchiveJob::start): Use sign_to_io_device instead of sign.
(QGpgMESignArchiveJobPrivate::startIt): Start the job with the
values from member variables.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt): Move
creation of outdata to sign_encrypt_to_io_device.
(sign_encrypt_to_io_device, sign_encrypt_to_filename): New.
(QGpgMESignEncryptArchiveJob::start): Use sign_encrypt_to_io_device
instead of sign_encrypt.
(QGpgMESignEncryptArchiveJobPrivate::startIt): Start the job with the
values from member variables.
* lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h
(SignArchiveJob): Add member functions setSigner, signers,
setInputPaths, inputPaths, setOutputFile, outputFile.
* lang/qt/src/signarchivejob_p.h (SignArchiveJobPrivate): Add
members m_signers, m_inputPaths, m_outputFilePath.
* lang/qt/src/signencryptarchivejob.cpp,
lang/qt/src/signencryptarchivejob.h (SignEncryptArchiveJob): Add
member functions setSigner, signers, setRecipients, recipients,
setInputPaths, inputPaths, setOutputFile, outputFile,
setEncryptionFlags, encryptionFlags.
* lang/qt/src/signencryptarchivejob_p.h (SignEncryptArchiveJobPrivate):
Add members m_signers, m_recipients, m_inputPaths, m_outputFilePath,
m_encryptionFlags.

* lang/qt/tests/run-encryptarchivejob.cpp (createOutput): Remove.
(checkOutputFilePath): New.
(main): Create file output writing to stdout if no archive name (or "-")
is given. Exit if file with given archive name already exists. Make
the jobs write the created archive directly to the given archive name.
* lang/qt/tests/run-signarchivejob.cpp (createOutput): Remove.
(checkOutputFilePath): New.
(main): Create file output writing to stdout if no archive name (or "-")
is given. Exit if file with given archive name already exists. Make
the jobs write the created archive directly to the given archive name.
--

This makes it possible to tell gpgtar to write the created archive
directly to a specified file bypassing GpgME's Data IO.

GnuPG-bug-id: 6530
https://invent.kde.org/neon/forks/libgpgme/-/commit/e608315392cc5b7ddf51e16dce5fe7e99b83f011

Git commit 1a9f192ab450288aea7a889527e78afd2c067b59 by Ingo Klöcker on 21/06/2023 at 12:38..
core: Support reading the archive to decrypt/verify directly from a file

* src/engine-gpg.c (add_file_name_arg_or_data): New.
(gpg_decrypt): Use add_file_name_arg_or_data instead of add_data for the
ciphertext.
(gpg_verify): Use add_file_name_arg_or_data instead of add_data for the
signature and the signed text.

* tests/run-decrypt.c (show_usage): New option --direct-file-io.
(main): Parse new option. If option is given, then don't open input
file, create simple data object instead of data object from stream and
set input file name on input data.
* tests/run-verify.c (show_usage): New option --direct-file-io.
(main): Parse new option. If option is given, then don't open input
files, create simple data objects instead of data objects from stream
and set input file names on input data objects.
--

This change makes it possible to tell gpg (and gpgtar) to read the
input (i.e. the signed/encrypted data or the signature or the created
archive) directly from the files with given file names instead of from
streams piped through GpgME's Data IO.

GnuPG-bug-id: 6530
https://invent.kde.org/neon/forks/libgpgme/-/commit/1a9f192ab450288aea7a889527e78afd2c067b59

Git commit 1c2459a5927866931808141ac6c4157cd5e3a157 by Ingo Klöcker on 21/06/2023 at 13:25..
qt: Support reading signed/encrypted archives directly from a file

* lang/qt/src/decryptverifyarchivejob.cpp,
lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add
member functions setInputFile, inputFile.
* lang/qt/src/decryptverifyarchivejob_p.h
(DecryptVerifyArchiveJobPrivate): Add member m_inputFilePath.
* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp (decrypt_verify): Move
creation of indata to decrypt_verify_from_io_device.
(decrypt_verify_from_io_device, decrypt_verify_from_file_name): New.
(QGpgMEDecryptVerifyArchiveJob::start): Use
decrypt_verify_from_io_device instead of decrypt_verify.
(QGpgMEDecryptVerifyArchiveJobPrivate::startIt): Start the job with the
values from member variables.

* lang/qt/tests/run-decryptverifyarchivejob.cpp (createInput): Remove.
(main): Remove creation of input. Make the job read the archive directly
from the given archive name.
--

This makes it possible to tell gpgtar to read the signed/encrypted
archive directly from a specified file bypassing GpgME's Data IO.

GnuPG-bug-id: 6530
https://invent.kde.org/neon/forks/libgpgme/-/commit/1c2459a5927866931808141ac6c4157cd5e3a157

Git commit 05ac1ce09ff199c715805cf601ea6d65e26c1fff by NIIBE Yutaka on 23/06/2023 at 01:38..
build: Add BUILT_SOURCE for better dependency.

* Makefile.am (BUILT_SOURCE): Add conf/config.h.

--

GnuPG-bug-id: 6547
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/05ac1ce09ff199c715805cf601ea6d65e26c1fff

Git commit 5bf3e6d0754a179b316f90a885371af99bc03ea1 by Werner Koch on 07/07/2023 at 11:35..
Release 1.21.0
https://invent.kde.org/neon/forks/libgpgme/-/commit/5bf3e6d0754a179b316f90a885371af99bc03ea1

Git commit 546d3a982db7b127eb7130f654c6f52d9f10a4f8 by Werner Koch on 07/07/2023 at 12:01..
Post release updates

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/546d3a982db7b127eb7130f654c6f52d9f10a4f8

Git commit ad34fcbbec3fc3a1a7d1232afd2e4f55119e2cb6 by Ingo Klöcker on 08/07/2023 at 19:49..
qt: Fix check for required files

* lang/qt/src/QGpgmeConfig-w32.cmake.in.in: Fix typos in variable names.
--

Because of those typos the loop over the files to check was an empty
loops and therefore the wrong name of the DLL was never noticed.
https://invent.kde.org/neon/forks/libgpgme/-/commit/ad34fcbbec3fc3a1a7d1232afd2e4f55119e2cb6

Git commit be0e653ce3039b1a81d23bed9dc99c0e60a7995a by Ingo Klöcker on 08/07/2023 at 19:49..
qt: Fix DLL version in cmake config files

* lang/qt/src/QGpgmeConfig-w32.cmake.in.in,
lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in: Fix name and path of DLL.
--

Co-authored-by: Biswapriyo Nath <nathbappai at gmail.com>
Signed-off-by: Ingo Klöcker <dev at ingo-kloecker.de>
https://invent.kde.org/neon/forks/libgpgme/-/commit/be0e653ce3039b1a81d23bed9dc99c0e60a7995a

Git commit e3defc0adf68de74a735abae334739771838f191 by Ingo Klöcker on 08/07/2023 at 19:49..
qt: Ensure that we check the correct paths

* lang/qt/src/QGpgmeConfig-w32.cmake.in.in,
lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in: Get paths to check from
the target properties.
--

This avoids the error present in an older version where the files to
check used the correct path, but a wrong path of the DLL was set in the
target properties.
https://invent.kde.org/neon/forks/libgpgme/-/commit/e3defc0adf68de74a735abae334739771838f191

Git commit 0518ed32e254faaa1f5ae61593ab17e8485388a6 by NIIBE Yutaka on 28/07/2023 at 05:07..
build: Update libassuan.m4 for libassuan version 3 in future.

* m4/libassuan.m4: Update from libassuan master.

--

New libassuan 3 has backward compatible API.

Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/0518ed32e254faaa1f5ae61593ab17e8485388a6

Git commit 777cf7f2d17331cfe127129c750121970fcad58f by Ingo Klöcker on 28/07/2023 at 12:18..
core: Return bad data error instead of general error on unexpected data

* src/verify.c (_gpgme_verify_status_handler): Return GPG_ERR_BAD_DATA
instead of GPG_ERR_GENERAL.
--

This gives users trying to decrypt and/or verify for example a public
key block a more useful error.

GnuPG-bug-id: 6617
https://invent.kde.org/neon/forks/libgpgme/-/commit/777cf7f2d17331cfe127129c750121970fcad58f

Git commit a9b28c79e92f6194ea52c7d33213f2a0dc9bd013 by Ingo Klöcker on 28/07/2023 at 14:15..
core: Prevent wrong plaintext when verifying clearsigned signature

* src/engine-gpg.c (gpg_verify): Use a separate pipe instead of stdout
for reading the plaintext.

* tests/gpg/t-support.h (PGM): Define if undefined.
(print_data): Undefine BUF_SIZE.
(check_data): New.
* tests/gpg/t-verify.c (clearsigned_plus_key_block): New.
(main): Add test.
--

Reading the plaintext from stdout is a bad idea because gpg can also
print other stuff on stdout, e.g. the keys contained in a public key
block. This is fixed by reading the plaintext via a special pipe.

GnuPG-bug-id: 6622
https://invent.kde.org/neon/forks/libgpgme/-/commit/a9b28c79e92f6194ea52c7d33213f2a0dc9bd013

Git commit d91d037fc19f0bbec44210099dc0d0e358d3fd4a by Carl Schwan on 03/08/2023 at 09:53..
qt: Add setInputEncoding to QGpgMe::EncryptJob

* lang/qt/src/encryptjob.cpp, lang/qt/src/encryptjob.h,
lang/qt/src/encryptjob_p.h: Add inputEncoding/setInputEncoding
to EncryptJob
* lang/qt/src/qgpgmeencryptjob.cpp: Use newly added inputEncoding
to set encoding hint of the encrypted content
--

This allows applications like KMail to set the input encoding of the
encrypted content, which simplify and improve the performance of
identifying the content type then decrypting it.

GnuPG-bug-id: 6616
Signed-off-by: Carl Schwan <carl.schwan at gnupg.com>
https://invent.kde.org/neon/forks/libgpgme/-/commit/d91d037fc19f0bbec44210099dc0d0e358d3fd4a

Git commit 8701e989376dfa772f299fe41bf4a60a98f8564e by Carl Schwan on 04/08/2023 at 09:34..
cpp: Expose gpgme_decrypt_result_t.is_mime through cpp API

* lang/cpp/src/descriptionresult.cpp (DescriptionResult::isMime): New.
* lang/cpp/src/descriptionresult.h: Update accordingly.

--
This exposes the is_mime metadata from a decryption result to users
of the C++ library.

GnuPG-bug-id: 6199
Signed-off-by: Carl Schwan <carl.schwan at gnupg.com>
https://invent.kde.org/neon/forks/libgpgme/-/commit/8701e989376dfa772f299fe41bf4a60a98f8564e

Git commit d72811a2c09411f8fdc821eb78d16ce8fbd5a184 by Ingo Klöcker on 14/08/2023 at 10:23..
core: Store engine's version string in gpgsm engine

* src/engine-gpgsm.c (struct engine_gpgsm): Add field 'version'.
(gpgsm_new): Copy version string.
(gpgsm_release): Free VERSION.
--

GnuPG-bug-id: 6648
https://invent.kde.org/neon/forks/libgpgme/-/commit/d72811a2c09411f8fdc821eb78d16ce8fbd5a184

Git commit bc98f01c8599f612dd1035b08f827b0657d94984 by Ingo Klöcker on 14/08/2023 at 10:24..
core: Use offline mode for all operations of gpgsm engine

* src/engine-backend.h (keylist, keylist_ext): Remove engine_flags.
* src/engine-gpg.c (gpg_keylist, gpg_keylist_ext): Ditto.
* src/engine.c, src/engine.h (_gpgme_engine_op_keylist): Ditto.
(_gpgme_engine_op_keylist_ext): Ditto.
* src/engine.h (GPGME_ENGINE_FLAG_OFFLINE): Remove.
* src/engine-gpgsm.c (struct engine_gpgsm): New field flags with offline
flag.
(have_gpgsm_version): New.
(gpg_set_engine_flags): Set the offline flag.
(start): Send OPTION "offline".
(gpgsm_keylist, gpgsm_keylist_ext): Remove engine_flags.  Remove
sending of OPTION "offline".
* src/keylist.c (gpgme_op_keylist_start, gpgme_op_keylist_ext_start):
Remove setting of offline flag.
--

GnuPG-bug-id: 6648
https://invent.kde.org/neon/forks/libgpgme/-/commit/bc98f01c8599f612dd1035b08f827b0657d94984

Git commit 150a2f9e4e5afe359fec2bbb017f6d0cfa7ca4a7 by Ingo Klöcker on 14/08/2023 at 12:04..
tests: Support offline mode in run-import

* tests/run-import.c (show_usage): New option --offline.
(main): Parse new option. Set offline mode accordingly.
--

This allows testing gpgme_op_import with (and without) offline mode.

GnuPG-bug-id: 6648
https://invent.kde.org/neon/forks/libgpgme/-/commit/150a2f9e4e5afe359fec2bbb017f6d0cfa7ca4a7

Git commit 7a2a3f317b18df062a421ecf783182ad872b78ce by Ingo Klöcker on 15/08/2023 at 09:50..
cpp: Remove unused include

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/7a2a3f317b18df062a421ecf783182ad872b78ce

Git commit c3171d0cf1a249618f0763fe141ab84d8a4be240 by Ingo Klöcker on 15/08/2023 at 09:56..
qt: Make toLogString helper public

* lang/qt/src/util.h: Move toLogString ...
* lang/qt/src/debug.h: ... here.
* lang/qt/tests/run-importjob.cpp (main): Use toLogString.
--

This allows using the helper in dependent projects without duplicating
it everywhere.

GnuPG-bug-id: 6584
https://invent.kde.org/neon/forks/libgpgme/-/commit/c3171d0cf1a249618f0763fe141ab84d8a4be240

Git commit 40ca3d58963884a876c826dcf5c32673b8ddc084 by Ingo Klöcker on 16/08/2023 at 12:23..
qt: Clean up after failure or cancel of sign/encrypt archive operation

* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt): Remove output file
if operation was canceled or failed.
* lang/qt/src/qgpgmesignarchivejob.cpp (sign): Ditto.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt): Ditto.

* lang/qt/tests/run-encryptarchivejob.cpp (CommandLineOptions): Add
field cancelTimeout.
(parseCommandLine): Add option --cancel-after. Parse option value.
(main): Check for invalid cancel timeout. Start timer for canceling
the job.
* lang/qt/tests/run-signarchivejob.cpp (CommandLineOptions): Add
field cancelTimeout.
(parseCommandLine): Add option --cancel-after. Parse option value.
(main): Check for invalid cancel timeout. Start timer for canceling
the job.
--

This change ensures that the output file is removed if the creation of
a signed or encrypted archive was canceled or failed. The new option
of the test runners enables testing the cancelation of the jobs.

GnuPG-bug-id: 6584
https://invent.kde.org/neon/forks/libgpgme/-/commit/40ca3d58963884a876c826dcf5c32673b8ddc084

Git commit dacbd51c3f8ae6dafe56b3d4b4d15c8d62254230 by NIIBE Yutaka on 17/08/2023 at 05:03..
build: New configure option --with-libtool-modification.

* Makefile.am (EXTRA_DIST): Add build-aux/libtool-patch.sed.
* build-aux/libtool-patch.sed: New.
* configure.ac (--with-libtool-modification): New.
* build-aux/ltmain.sh: Revert our own local modification.

--

Fixes-commit: e622e36f1f32641c66b28a0de95c75ae35f6ca05
GnuPG-bug-id: 6619
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/dacbd51c3f8ae6dafe56b3d4b4d15c8d62254230

Git commit 8ea7015a230eed6239298d725adf7751c5fb84ea by Werner Koch on 21/08/2023 at 07:41..
Release 1.22.0
https://invent.kde.org/neon/forks/libgpgme/-/commit/8ea7015a230eed6239298d725adf7751c5fb84ea

Git commit cfeb62d358878f49977e5667395ad21f15048778 by Werner Koch on 21/08/2023 at 07:54..
Post release updates

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/cfeb62d358878f49977e5667395ad21f15048778

Git commit fb03a5b3df29fb8806af275143ab5b0c3ee69738 by Ingo Klöcker on 21/08/2023 at 08:19..
doc: Fix interface changes

--

toLogString is in the QGpgME namespace (as everything else in the qt
bindings).
https://invent.kde.org/neon/forks/libgpgme/-/commit/fb03a5b3df29fb8806af275143ab5b0c3ee69738

Git commit 2ad36f71144731f847c89b1f1e91f21c215cffa1 by Ingo Klöcker on 21/08/2023 at 16:06..
qt: Add job for refreshing OpenPGP keys via WKD

* lang/qt/src/wkdrefreshjob.cpp, lang/qt/src/wkdrefreshjob.h,
lang/qt/src/wkdrefreshjob_p.h, lang/qt/src/qgpgmewkdrefreshjob.cpp,
lang/qt/src/qgpgmewkdrefreshjob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function wkdRefreshJob
* lang/qt/src/protocol_p.h (Protocol::wkdRefreshJob): ... and
implement it.
* lang/qt/src/Makefile.am: Update accordingly.

* lang/qt/tests/run-wkdrefreshjob.cpp: New.
* lang/qt/tests/Makefile.am: Add new test runner.
--

This job allows updating keys via WKD. Only user IDs that were
originally retrieved via WKD (i.e. which have origin WKD) are
considered.

GnuPG-bug-id: 6672
https://invent.kde.org/neon/forks/libgpgme/-/commit/2ad36f71144731f847c89b1f1e91f21c215cffa1

Git commit d23528cadf4284f508bc4ba05e1b5c14b46bd354 by Ingo Klöcker on 21/08/2023 at 19:08..
qt,tests: Fix build in source directory

* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include Qt binding sources
before C++ binding sources and C sources.
--

This fixes the problem that the debug.h in the C sources was found
before the one in the Qt bindings.

GnuPG-bug-id: 6673
https://invent.kde.org/neon/forks/libgpgme/-/commit/d23528cadf4284f508bc4ba05e1b5c14b46bd354

Git commit 24a8c279da98fe7e586a9fc3cd91175c9e60ffef by Ingo Klöcker on 21/08/2023 at 19:32..
build: Suggest out-of-source build

* autogen.rc (final_info): Suggest to run configure from a build
subdirectory.
--

We recommend out-of-source builds. The suggestion what to do next shown
by autogen.sh should reflect this.

GnuPG-bug-id: 6673
https://invent.kde.org/neon/forks/libgpgme/-/commit/24a8c279da98fe7e586a9fc3cd91175c9e60ffef

Git commit aee18a2ab2498bc6092bef518c532796bbe5b502 by Ingo Klöcker (on behalf of Christian Hesse) on 22/08/2023 at 09:15..
qt,tests: Fix build in source directory, part 2

* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include Qt binding sources
before C++ binding sources and C sources.
--

This fixes the problem that the debug.h in the C sources was found
before the one in the Qt bindings.

Commit d23528cadf4284f508bc4ba05e1b5c14b46bd354 fixed it for Qt5, we
need Qt6 as well.

GnuPG-bug-id: 6673
https://invent.kde.org/neon/forks/libgpgme/-/commit/aee18a2ab2498bc6092bef518c532796bbe5b502

Git commit 3f297387bf401475385c458e4d1d95b3eefaf3d8 by Ingo Klöcker on 23/08/2023 at 10:00..
qt: Allow specifying user IDs to use when refreshing keys via WKD

* lang/qt/src/wkdrefreshjob.h, lang/qt/src/wkdrefreshjob.cpp
(WKDRefreshJob::start): New overload.
* lang/qt/src/wkdrefreshjob_p.h (WKDRefreshJobPrivate): Add field
m_userIds.
* lang/qt/src/qgpgmewkdrefreshjob.cpp (toEmailAddresses): New.
(locate_external_keys): Change return type and arguments.
(refresh_keys): Remove.
(QGpgMEWKDRefreshJobPrivate::startIt): Get emails from keys or user IDs.
Remove duplicates. Call locate_external_keys instead of refresh_keys.

* lang/qt/tests/run-wkdrefreshjob.cpp (CommandLineOptions,
parseCommandLine): New.
(main): Support new option --all-userids.
--

The new start() overload allows to specify the user IDs to use for the
WKD lookup explicitly. This allows updating user IDs via WKD which were
originally not retrieved via WKD.

GnuPG-bug-id: 6672
https://invent.kde.org/neon/forks/libgpgme/-/commit/3f297387bf401475385c458e4d1d95b3eefaf3d8

Git commit d75b2a91517397261c2508dba058611f803c0733 by Werner Koch on 31/08/2023 at 10:02..
Support GPGME_ENCRYPT_ALWAYS_TRUST also for S/MIME.

* src/engine-gpgsm.c (gpgsm_encrypt): Send the always-trust options.

* tests/run-encrypt.c: Add option --always-trust.
--

Note that the run-encrypt test tool used to assume always-trust for
OpenPGP since 1.7.0 This bug has also been fixed by introducing the
explicit option.

GnuPG-bug-id: 6559
https://invent.kde.org/neon/forks/libgpgme/-/commit/d75b2a91517397261c2508dba058611f803c0733

Git commit b80d52a1f74a205b6cd708ad3b5741b051bbaaff by NIIBE Yutaka on 01/09/2023 at 05:06..
build: Change the default for --with-libtool-modification.

* configure.ac (--with-libtool-modification): default=never.

--

GnuPG-bug-id: 6619
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/b80d52a1f74a205b6cd708ad3b5741b051bbaaff

Git commit e36b2d1bce4bb6281e18f53d06d7831e6d6f5a09 by Werner Koch on 04/09/2023 at 15:03..
New mode to list a v5 fingerprint for v4 packets.

* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_V5FPR): New.
(struct _gpgme_subkey): Add field v5fpr.
* src/engine-gpg.c (gpg_keylist_build_options): Pass new option to
gpg.
* src/key.c (gpgme_key_unref): Free new field.
* src/keylist.c (op_data_t): Parse and add "fp2" line.

* tests/run-keylist.c (show_usage): Add option --v5fpr.

* src/keylist.c (op_data_t): Add field failure_code.
(keylist_status_handler): Handle special value.
(gpgme_op_keylist_end): Return an error if a FAILURE line has been
seen.
--

Note that the failure code part has been added to better diagnose
problems if a wrong gpg version is used.  If verything works right we
should not get this because we check that the gnupg version sis either
>= 2.4.4 or less than 2.3 and >= 2.2.42.

Note further that the v5fpr field may also be used to get the SHA-256
fingerprint of X.509 certificates (even without passing the new mode
flag).

GnuPG-bug-id: 6705
https://invent.kde.org/neon/forks/libgpgme/-/commit/e36b2d1bce4bb6281e18f53d06d7831e6d6f5a09

Git commit 8fde9cbe22885116e4779ea70e13bd0c2273d604 by Ingo Klöcker on 04/09/2023 at 15:31..
tests: Re-add --with-secret option

* tests/run-keylist.c (main): Handle option --with-secret again.
--

Re-add handling of --with-secret option that was accidentally removed
with the previous commit.

GnuPG-bug-id: 6705
https://invent.kde.org/neon/forks/libgpgme/-/commit/8fde9cbe22885116e4779ea70e13bd0c2273d604

Git commit 355a4cdb51b2d06d18773d538e0471ad5d1e32bb by Andreas Metzler on 10/09/2023 at 14:33..
Add build-conflicts with python3-setuptools. Closes: #1039724
https://invent.kde.org/neon/forks/libgpgme/-/commit/355a4cdb51b2d06d18773d538e0471ad5d1e32bb

Git commit 3e6485620816c9097f98cbe4fdb82a4683918a63 by Ingo Klöcker on 21/09/2023 at 08:45..
build,qt: Drop broken check for -fPIC

* m4/qt6.m4: Remove attempt to build a Qt program with -fPIC.
--

libtool already takes care of adding -fPIC. Moreover, building without
-fPIC succeeded even if Qt was built with -fPIC, i.e. the check didn't
work as intended.

GnuPG-bug-id: 6696
https://invent.kde.org/neon/forks/libgpgme/-/commit/3e6485620816c9097f98cbe4fdb82a4683918a63

Git commit 927f129663b8bde1ecb4e2ac2b233a7baca8a568 by Ingo Klöcker on 21/09/2023 at 08:58..
build,qt: Optionally build Qt 6 bindings with -mno-direct-extern-access

* configure.ac: Check if C++ compiler supports
-mno-direct-extern-access. Add option to enable building with
-mno-direct-extern-access.
* m4/ax_check_compile_flag.m4: New.
* m4/qt6.m4: Add -mno-direct-extern-access to GPGME_QT6_CFLAGS if
supported and requested.
--

This adds the possibility to build the Qt 6 bindings with the
-mno-direct-extern-access flag. This is required if Qt 6 was built with
this flag. This is a workaround for the lack of Qt 6's pkgconfig files
providing this flag if needed.

GnuPG-bug-id: 6696
https://invent.kde.org/neon/forks/libgpgme/-/commit/927f129663b8bde1ecb4e2ac2b233a7baca8a568

Git commit 4e321a0f06ffba2437fa34ccb88527e9ea633703 by Ingo Klöcker on 21/09/2023 at 20:53..
build,qt: Autodetect whether Qt was built with -mno-direct-extern-access

* m4/qt6.m4: Check the build configuration of Qt 6 for
no_direct_extern_access.
--

If building with -mno-direct-extern-access has been neither enabled nor
disabled explicitly, then check whether Qt 6 was built with this flag.
The check is skipped, if we build for Windows.

GnuPG-bug-id: 6696
https://invent.kde.org/neon/forks/libgpgme/-/commit/4e321a0f06ffba2437fa34ccb88527e9ea633703

Git commit d43d787e9ac153f67505fee95a975b4e8f6f928e by Ingo Klöcker on 22/09/2023 at 08:22..
qt: Use UTF-8 for file names on Windows

* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
(decrypt_verify_from_file_name): On Windows, convert Unicode file name
to UTF-8.
* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt,
encrypt_to_filename): On Windows, convert Unicode file name from/to
UTF-8.
* lang/qt/src/qgpgmesignarchivejob.cpp (sign, sign_to_filename): Ditto.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt,
sign_encrypt_to_filename): Ditto.
--

On Windows, GnuPG expects file names to be UTF-8-encoded. This fixes
encrypting and decrypting folders with umlauts in the folder name and
in the file name of the archive. Encrypting and decrypting folders
with kanji still fails.

GnuPG-bug-id: 6728
https://invent.kde.org/neon/forks/libgpgme/-/commit/d43d787e9ac153f67505fee95a975b4e8f6f928e

Git commit 8ad22290df34c73881f42f02cdd28551ec265077 by NIIBE Yutaka on 29/09/2023 at 02:12..
gpgme-tool: Support use of Windows HANDLE for INPUT/OUTPUT/MESSAGE.

* src/gpgme-tool.c [HAVE_W32_SYSTEM] (server_data_obj): Implement for
Windows HANDLE.

--

GnuPG-bug-id: 6634
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/8ad22290df34c73881f42f02cdd28551ec265077

Git commit 349a69b5ea77c334c1c59b56f283bb65dc54a590 by Werner Koch on 05/10/2023 at 12:17..
core: Check STATUS_FAILURE in export operations.

* src/export.c (op_data_t): Add failure_code.
(export_status_handler): Set it.
(gpgme_op_export_ext, gpgme_op_export_keys): Also check the failure
code.
--

That is just in case we missed an error code.  For example with older
gpg versions (e.g. 2.3.8) and exporting to a keyserver.
https://invent.kde.org/neon/forks/libgpgme/-/commit/349a69b5ea77c334c1c59b56f283bb65dc54a590

Git commit b63d203d3ba49483b079fb118a90990c452cd232 by Werner Koch on 05/10/2023 at 12:18..
core: Add key capability flags has_encrypt etc.

* src/gpgme.h.in (struct _gpgme_key): Add flags has_encrypt,
has_certify, has_sign, and has_authenticate.
* src/keylist.c (finish_key): Set these flags.
* tests/run-keylist.c (main): Print them.
--

GnuPG-bug-id: 6748
https://invent.kde.org/neon/forks/libgpgme/-/commit/b63d203d3ba49483b079fb118a90990c452cd232

Git commit 0132a1089f1e9cdbeb45a6dafb754be9d4774f83 by Ingo Klöcker on 05/10/2023 at 13:12..
doc: Fix typo

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/0132a1089f1e9cdbeb45a6dafb754be9d4774f83

Git commit a9e5a25b56abb7f27812f333c287a7adae9e18e8 by Ingo Klöcker on 05/10/2023 at 13:27..
cpp: Support new key capability flags

* lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): New methods
hasCertify, hasSign, hasEncrypt, hasAuthenticate.
--

GnuPG-bug-id: 6748
https://invent.kde.org/neon/forks/libgpgme/-/commit/a9e5a25b56abb7f27812f333c287a7adae9e18e8

Git commit 959f976dfca65b99fd1107f1fca93a5f0c4a83ad by Ingo Klöcker (on behalf of Marius P) on 13/10/2023 at 07:08..
python,examples: Add missing word "License"

* lang/python/examples/howto/add-userid.py,
lang/python/examples/howto/clear-sign-file.py,
lang/python/examples/howto/create-key.py,
lang/python/examples/howto/decrypt-file.py,
lang/python/examples/howto/detach-sign-file.py,
lang/python/examples/howto/encrypt-file.py,
lang/python/examples/howto/encrypt-sign-file.py,
lang/python/examples/howto/encrypt-to-group-gullible.py,
lang/python/examples/howto/encrypt-to-group-trustno1.py,
lang/python/examples/howto/encrypt-to-group.py,
lang/python/examples/howto/export-key.py,
lang/python/examples/howto/export-minimised-key.py,
lang/python/examples/howto/export-secret-key.py,
lang/python/examples/howto/export-secret-keys.py,
lang/python/examples/howto/groups.py,
lang/python/examples/howto/import-key.py,
lang/python/examples/howto/import-keybasekey.py,
lang/python/examples/howto/import-keys-hkp.py,
lang/python/examples/howto/import-keys.py,
lang/python/examples/howto/import-mailvelope-keys.py,
lang/python/examples/howto/keycount.py,
lang/python/examples/howto/local-sign-group.py,
lang/python/examples/howto/mutt-groups.py,
lang/python/examples/howto/pmkey-import-alt.py,
lang/python/examples/howto/pmkey-import-hkp-alt.py,
lang/python/examples/howto/pmkey-import-hkp.py,
lang/python/examples/howto/pmkey-import.py,
lang/python/examples/howto/revoke-userid.py,
lang/python/examples/howto/send-key-to-keyserver.py,
lang/python/examples/howto/sign-file.py,
lang/python/examples/howto/sign-key.py,
lang/python/examples/howto/symcrypt-file.py,
lang/python/examples/howto/temp-homedir-config.py,
lang/python/examples/howto/verify-signatures.py,
lang/python/examples/howto/verify-signed-file.py: Add "License" after
"Lesser General Public"
--

Anonymous contribution

Signed-off-by: Ingo Klöcker <dev at ingo-kloecker.de>
https://invent.kde.org/neon/forks/libgpgme/-/commit/959f976dfca65b99fd1107f1fca93a5f0c4a83ad

Git commit 57205c1dfafdf86eebef8a3a358cf3bd6a297d88 by Ingo Klöcker on 13/10/2023 at 07:18..
doc: Fix typos in documentation and source code comments

--

Anonymous contribution

Signed-off-by: Ingo Klöcker <dev at ingo-kloecker.de>
https://invent.kde.org/neon/forks/libgpgme/-/commit/57205c1dfafdf86eebef8a3a358cf3bd6a297d88

Git commit bd448c9cbf43d644c6175eb1795f4bb74128de16 by Ingo Klöcker on 13/10/2023 at 07:21..
cpp,doc: Fix typos in API documentation and source code comments

--

Anonymous contribution

Signed-off-by: Ingo Klöcker <dev at ingo-kloecker.de>
https://invent.kde.org/neon/forks/libgpgme/-/commit/bd448c9cbf43d644c6175eb1795f4bb74128de16

Git commit 131384b107fb54e37e31f8fc19be8ab8fcffd929 by Ingo Klöcker on 13/10/2023 at 07:22..
python,doc: Fix typos in documentation and source code comments

--

Anonymous contribution

Signed-off-by: Ingo Klöcker <dev at ingo-kloecker.de>
https://invent.kde.org/neon/forks/libgpgme/-/commit/131384b107fb54e37e31f8fc19be8ab8fcffd929

Git commit 5c7e4d252ad7ebd576fac870c75a55b3602333a9 by Ingo Klöcker on 13/10/2023 at 07:23..
qt,doc: Fix typos in source code comments

--

Anonymous contribution

Signed-off-by: Ingo Klöcker <dev at ingo-kloecker.de>
https://invent.kde.org/neon/forks/libgpgme/-/commit/5c7e4d252ad7ebd576fac870c75a55b3602333a9

Git commit ab25df8328d9248abc2816403e6051e00d5b1095 by Andre Heinecke on 18/10/2023 at 09:13..
qt: Handle cancel in changeexpiryjob

* lang/qt/src/qgpgmechangeexpiryjob.cpp (change_expiry): Return
cancel error.

--
The classical "cancel is not an error" problem.
GnuPG-Bug-Id: T6754
https://invent.kde.org/neon/forks/libgpgme/-/commit/ab25df8328d9248abc2816403e6051e00d5b1095

Git commit aae967ec9cb365518fc8f73e6fb3ba7b55ef590d by Werner Koch on 25/10/2023 at 09:05..
Release 1.23.0
https://invent.kde.org/neon/forks/libgpgme/-/commit/aae967ec9cb365518fc8f73e6fb3ba7b55ef590d

Git commit 8faaf7b72bfd988b96fcf15e900120056d3a38a7 by Werner Koch on 25/10/2023 at 09:16..
Post release updates

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/8faaf7b72bfd988b96fcf15e900120056d3a38a7

Git commit a0a4cd411c6d891e9ca784fd12b76410b0bb4673 by Andre Heinecke on 25/10/2023 at 15:42..
Change gpgme-w32-spawn to unicode

* src/Makefile.am (gpgme_w32spawn_CFLAGS): Add -municode.
* src/gpgme-w32-spawn.c (build_commandline, my_spawn)
(translate_handles): Convert to wchar_t API.
(main): Use wmain instead.

--
Some time ago we introduced an inconsistency that w32-util called
gpgme-w32-spawn through CreateProcessW but since gpgme-w32-spawn
internally worked with 8 bit the chars were mangled and the
arguments not passed correctly through the CreateProcessA of the
child process. Since the GnuPG processes use GetCommandLineW
this is the proper way to pass on Unicode command line arguments.

Please note that we did not pass UTF-8 before this patch but
rather some broken native encoding where Windows replaces
unicode characters with question marks etc.

GnuPG-Bug-Id: T6728
https://invent.kde.org/neon/forks/libgpgme/-/commit/a0a4cd411c6d891e9ca784fd12b76410b0bb4673

Git commit cadcb3846992b446d42cbb441a6fae3562120d07 by Werner Koch on 27/10/2023 at 12:36..
Release 1.23.1

--

This is minor fix to the spawn helper.  No change to the library code.

GnuPG-bug-id: 6774
https://invent.kde.org/neon/forks/libgpgme/-/commit/cadcb3846992b446d42cbb441a6fae3562120d07

Git commit 0a0a5906d561cfcd5921e3b472abeded09087a10 by Werner Koch on 27/10/2023 at 12:41..
Post release updates

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/0a0a5906d561cfcd5921e3b472abeded09087a10

Git commit 8d8985bda1747a18b3b1378ea7c627302a61464a by Ingo Klöcker on 27/10/2023 at 14:07..
qt: Refactor removal of output file on cancel or error

* lang/qt/src/util.h, lang/qt/src/util.cpp (removeFile): New.
* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt): Move removal of
output file from here
(encrypt_to_filename): ... to here and use new function.
* lang/qt/src/qgpgmesignarchivejob.cpp (sign): Move removal of output
file from here
(sign_to_filename): ... to here and use new function.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt): Move
removal of output file from here
(sign_encrypt_to_filename): ... to here and use new function.
--

GnuPG-bug-id: 6721
https://invent.kde.org/neon/forks/libgpgme/-/commit/8d8985bda1747a18b3b1378ea7c627302a61464a

Git commit 46f5d5eeb3b1d0586106b33cecf600ab66170b45 by Ingo Klöcker on 27/10/2023 at 14:07..
qt: Use temporary .part file names when creating archives

* lang/qt/src/util.h, lang/qt/src/util.cpp (class PartialFileGuard):
New.
* lang/qt/src/util.cpp (getRandomCharacters, createPartFileName): New.
* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt_to_filename): Use
PartialFileGuard.
* lang/qt/src/qgpgmesignarchivejob.cpp (sign_to_filename): Ditto.
* lang/qt/src/qgpgmesignencryptarchivejob.cpp
(sign_encrypt_to_filename): Ditto.
--

When creating signed and/or encrypted archives, gpgtar now writes the
result to a temporary file name. On success, the archive is renamed to
the final file name. Otherwise, the (partially written) temporary file
is removed (if possible).

GnuPG-bug-id: 6721
https://invent.kde.org/neon/forks/libgpgme/-/commit/46f5d5eeb3b1d0586106b33cecf600ab66170b45

Git commit cf88690cf4fb1370e4af60287f0bd8b708b8f8a5 by Ingo Klöcker on 27/10/2023 at 14:14..
Update NEWS

--
https://invent.kde.org/neon/forks/libgpgme/-/commit/cf88690cf4fb1370e4af60287f0bd8b708b8f8a5

Git commit 624bfdf6c2317b475b9b237a138ecf5e4a43ec6a by Andreas Metzler on 29/10/2023 at 10:53..
Revert addition of build-conflicts with python3-setuptools

Does not work since dh-python depends on it.
https://invent.kde.org/neon/forks/libgpgme/-/commit/624bfdf6c2317b475b9b237a138ecf5e4a43ec6a

Git commit b8e54507fdf2fe50bcd49d58271432659f457435 by Andreas Metzler on 29/10/2023 at 14:26..
Fix build with python3-setuptools

Closes: #1039724, #1054786
https://invent.kde.org/neon/forks/libgpgme/-/commit/b8e54507fdf2fe50bcd49d58271432659f457435

Git commit ae332749eee056f59bf902a65ffb012fcf181875 by Ingo Klöcker on 30/10/2023 at 08:42..
build,qt: Build Qt with -fPIC if required or requested

* configure.ac: Add option to enable building the Qt 6 binding with
-fPIC. Fix typo and mention default for --enable-no-direct-extern-access
option.
* m4/qt6.m4: Add -fPIC to GPGME_QT6_CFLAGS if requested or if Qt 6 was
built with reduce_relocations.
--

GnuPG-bug-id: 6781
https://invent.kde.org/neon/forks/libgpgme/-/commit/ae332749eee056f59bf902a65ffb012fcf181875

Git commit 57324fec2e4a73978cf5a87008d79a67353adf54 by Andreas Metzler on 01/11/2023 at 17:21..
Upload to unstable
https://invent.kde.org/neon/forks/libgpgme/-/commit/57324fec2e4a73978cf5a87008d79a67353adf54

Git commit 52d59d75cae5803ac49ddbee4aae9b862c73a075 by Ingo Klöcker on 10/11/2023 at 07:55..
qt: Deprecate DefaultKeyGenerationJob

* lang/qt/src/defaultkeygenerationjob.h (class DefaultKeyGenerationJob):
Deprecate.
--

GnuPG generates Ed25519 keys by default and has switched to 3072 bits as
default for RSA keys. DefaultKeyGenerationJob always generates RSA 2048
keys and uses the old parameter file API of GnuPG. It shouldn't be used
anymore.

GnuPG-bug-id: 6805
https://invent.kde.org/neon/forks/libgpgme/-/commit/52d59d75cae5803ac49ddbee4aae9b862c73a075

Git commit 1bfd5e92d0236d1db9782904c1a2d5dc7461dae2 by Werner Koch on 10/11/2023 at 08:45..
tests: Add option --chain to run-keylist

* tests/run-keylist.c (xstrdup): New.
(main): Add option.
--

This allows to list the entire chain.
https://invent.kde.org/neon/forks/libgpgme/-/commit/1bfd5e92d0236d1db9782904c1a2d5dc7461dae2

Git commit 77e982579ccadb20ee865337ada9579ac41164e1 by Ingo Klöcker on 14/11/2023 at 12:51..
core: Preserve more specific existing failure code

* src/decrypt.c (_gpgme_decrypt_status_handler): Ignore received failure
code if we already have a specific failure code.
* src/encrypt.c (_gpgme_encrypt_status_handler): Ditto.
* src/export.c (export_status_handler): Ditto.
* src/genkey.c (genkey_status_handler): Ditto.
* src/keylist.c (keylist_status_handler): Ditto.
* src/keysign.c (keysign_status_handler): Ditto.
* src/passwd.c (passwd_status_handler): Ditto.
* src/revsig.c (revsig_status_handler): Ditto.
* src/setexpire.c (setexpire_status_handler): Ditto.
* src/sign.c (_gpgme_sign_status_handler): Ditto.
* src/tofupolicy.c (tofu_policy_status_handler): Ditto.
* src/verify.c (_gpgme_verify_status_handler): Ditto.
--

Usually, a process emits at most one failure code. But some operations
like the creation of an encrypted archive involve multiple chained
processes, so that multiple failure codes can be received. We want to
keep the first specific failure code we received. Further failure codes
are only parsed if we received just an unspecific "general error" so
far.

GnuPG-bug-id: 6575
https://invent.kde.org/neon/forks/libgpgme/-/commit/77e982579ccadb20ee865337ada9579ac41164e1

Git commit 185ab7d7ba8c5bea28c45ea9bab5b8ba31656512 by NIIBE Yutaka on 15/11/2023 at 06:21..
doc: Fix for e.g. and i.e.

--

Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
https://invent.kde.org/neon/forks/libgpgme/-/commit/185ab7d7ba8c5bea28c45ea9bab5b8ba31656512

Git commit 278f92b189ece58dee2036450ac029e3599fdb1f by Ingo Klöcker on 15/11/2023 at 10:57..
qt: Remove left-over partial files more persistently

* lang/qt/src/Makefile.am: Add new files.
* lang/qt/src/cleaner.cpp, lang/qt/src/cleaner.h: New.
* lang/qt/src/util.cpp (PartialFileGuard::~PartialFileGuard): Call
Cleaner::removeFile instead of removeFile.
* lang/qt/src/util.cpp, lang/qt/src/util.h (removeFile): Remove.
--

If the initial attempt to remove the file fails then a Cleaner is
created that tries to remove the file at regular intervals (10 s)
and on destruction (which happens on application shutdown).

GnuPG-bug-id: 6584
https://invent.kde.org/neon/forks/libgpgme/-/commit/278f92b189ece58dee2036450ac029e3599fdb1f

Git commit 618fea9e2006475bf849da1c1837e0d788f30a80 by Ingo Klöcker on 15/11/2023 at 10:57..
qt: On Windows, use UTF-8 when logging the error text

* lang/qt/src/debug.cpp (operator<<): On Windows, interpret the error
text as UTF-8 instead of local 8-bit encoding.
--

GnuPG-bug-id: 5960
https://invent.kde.org/neon/forks/libgpgme/-/commit/618fea9e2006475bf849da1c1837e0d788f30a80

Git commit 1bbe2d4b707843cacf020c252ce883ec45bdbc38 by Ingo Klöcker on 23/11/2023 at 15:13..
qt: Start dirmngr with gpgconf to avoid multiple instances

* lang/qt/src/qgpgmewkdlookupjob.cpp (startDirmngr): Use "gpgconf
--launch dirmngr" to start dirmngr.
--

Using gpgconf to start dirmngr prevents multiple instances to be started
by the concurrently running keyserver lookup and WKD lookup.

GnuPG-bug-id: 6833
https://invent.kde.org/neon/forks/libgpgme/-/commit/1bbe2d4b707843cacf020c252ce883ec45bdbc38

Git commit 1a26db717575068f0ab0d00a437ae870a93e1bb8 by Werner Koch on 28/11/2023 at 15:42..
Release 1.23.2
https://invent.kde.org/neon/forks/libgpgme/-/commit/1a26db717575068f0ab0d00a437ae870a93e1bb8

Git commit e4e94c3219f1ea4ac15f3bc8687ed5fd55f86508 by Andreas Metzler on 02/03/2024 at 05:49..
Import 1.18.0-4.1 NMU (t64 transition)
https://invent.kde.org/neon/forks/libgpgme/-/commit/e4e94c3219f1ea4ac15f3bc8687ed5fd55f86508

Git commit c7b533067f601be26e644510b8aac5c503fa405c by Andreas Metzler on 15/06/2024 at 16:23..
Update signing key from https://www.gnupg.org/signature_key.html

Adds:
02F38DFF731FF97CB039A1DA549E695E905BA208
GnuPG.com (Release Signing Key 2021)

5B80C5754298F0CB55D8ED6ABCEF7E294B092E28
Andre Heinecke (Release Signing Key)

AC8E115BF73E2D8D47FA9908E98E9B2D19C6C8BD
Niibe Yutaka (GnuPG Release Key)
https://invent.kde.org/neon/forks/libgpgme/-/commit/c7b533067f601be26e644510b8aac5c503fa405c

Git commit a2fbce0f2c1b3e6d2d47761360c4955aa337f878 by Andreas Metzler on 15/06/2024 at 16:26..
New upstream version 1.23.2
https://invent.kde.org/neon/forks/libgpgme/-/commit/a2fbce0f2c1b3e6d2d47761360c4955aa337f878

Git commit f7cd99fddf3d9b00cf8ccb68b21d0ec1974ca3b0 by Andreas Metzler on 15/06/2024 at 16:26..
Update upstream source from tag 'upstream/1.23.2'

Update to upstream version '1.23.2'
with Debian dir fa4a41a5ed6743ab8e075bfc2d4de3903e17df03
https://invent.kde.org/neon/forks/libgpgme/-/commit/f7cd99fddf3d9b00cf8ccb68b21d0ec1974ca3b0

Git commit 2424b0762c0d01d76eaab34d14e071160711964e by Andreas Metzler on 16/06/2024 at 04:46..
Start packaging 1.23.2
https://invent.kde.org/neon/forks/libgpgme/-/commit/2424b0762c0d01d76eaab34d14e071160711964e

Git commit 1a6904c69c3de1d79659af3c674d27efdabfb129 by Andreas Metzler on 16/06/2024 at 05:43..
Unfuzz patches, drop cherry-picked patches.
https://invent.kde.org/neon/forks/libgpgme/-/commit/1a6904c69c3de1d79659af3c674d27efdabfb129

Git commit e9954da4a474f02e4d211c8a95d8a6f22899e978 by Andreas Metzler on 16/06/2024 at 05:57..
Add newly introduced symbols to libgpgme11t64.symbols
https://invent.kde.org/neon/forks/libgpgme/-/commit/e9954da4a474f02e4d211c8a95d8a6f22899e978

Git commit 7d267a61cb6702cd3a8444a8546e67aa6ad7c44d by Andreas Metzler on 16/06/2024 at 06:22..
tighten symbol dependency versioning to reflect interface extensions
https://invent.kde.org/neon/forks/libgpgme/-/commit/7d267a61cb6702cd3a8444a8546e67aa6ad7c44d

Git commit c86d1cb701c0e78b66677296c28e65b6a82401c4 by Andreas Metzler on 16/06/2024 at 08:58..
[lintian] b-d on pkgconf instead of pkg-config
https://invent.kde.org/neon/forks/libgpgme/-/commit/c86d1cb701c0e78b66677296c28e65b6a82401c4

Git commit 9e57e9a8fa6c906c695744f410f344a95c9b7e25 by Andreas Metzler on 16/06/2024 at 09:11..
Use wildcards in no-symbols-control-file overrides

Avoids the need for update s with each minor release.
https://invent.kde.org/neon/forks/libgpgme/-/commit/9e57e9a8fa6c906c695744f410f344a95c9b7e25

Git commit 31ed35876b33961c08f7a638f8acf95489d67b06 by Andreas Metzler on 16/06/2024 at 09:13..
Standards-Version 4.7.0, no changes.
https://invent.kde.org/neon/forks/libgpgme/-/commit/31ed35876b33961c08f7a638f8acf95489d67b06

Git commit a96c5c60a18c2fd5b8ff87809916a0193b74d985 by Andreas Metzler on 16/06/2024 at 09:20..
Run wrap-and-sort -ast.
https://invent.kde.org/neon/forks/libgpgme/-/commit/a96c5c60a18c2fd5b8ff87809916a0193b74d985

Git commit 53d8af574e3c6d0f65288cb0e996460655366276 by Andreas Metzler on 16/06/2024 at 11:32..
Split off qt5 dev package

unfuzzed patch by Rene Engelhard on #863149
https://invent.kde.org/neon/forks/libgpgme/-/commit/53d8af574e3c6d0f65288cb0e996460655366276

Git commit 00c947b3bebe991f22cf52de904e3e821ea17dfe by Andreas Metzler on 16/06/2024 at 11:34..
Fix lintian issues in previouscommit
https://invent.kde.org/neon/forks/libgpgme/-/commit/00c947b3bebe991f22cf52de904e3e821ea17dfe

Git commit 84bd01784906187dcfc843cec771c350cedfa1f2 by Andreas Metzler on 16/06/2024 at 11:48..
Fix README link
https://invent.kde.org/neon/forks/libgpgme/-/commit/84bd01784906187dcfc843cec771c350cedfa1f2

Git commit 4ce3961167b377cf090a21aed19ed57e6b677885 by Andreas Metzler on 16/06/2024 at 11:55..
Fix cross-package README.gpgmepp symlink.
https://invent.kde.org/neon/forks/libgpgme/-/commit/4ce3961167b377cf090a21aed19ed57e6b677885

Git commit 81d44e5f4c5e350ca235d280c5f6ba6a6de0c311 by Andreas Metzler on 16/06/2024 at 16:13..
Also package Qt 6 bindings as libqgpgmeqt6-15 / libqgpgmeqt6-dev
https://invent.kde.org/neon/forks/libgpgme/-/commit/81d44e5f4c5e350ca235d280c5f6ba6a6de0c311

Git commit 2f528041b33ad8512874b4693862b8dfc8eb54ec by Andreas Metzler on 16/06/2024 at 16:32..
Add b-d on qt6-base-dev.
https://invent.kde.org/neon/forks/libgpgme/-/commit/2f528041b33ad8512874b4693862b8dfc8eb54ec

Git commit e0aa7624bf8011831f19b51675b2ac61804fee01 by Andreas Metzler on 22/06/2024 at 11:20..
Update copyright info for 1.23.2
https://invent.kde.org/neon/forks/libgpgme/-/commit/e0aa7624bf8011831f19b51675b2ac61804fee01

Git commit 15e5c05811131ef4c127051894c4030209fc28dc by Andreas Metzler on 22/06/2024 at 11:22..
Update homepage URL
https://invent.kde.org/neon/forks/libgpgme/-/commit/15e5c05811131ef4c127051894c4030209fc28dc

Git commit 34d833aedc3985ac707ebc06d92802468fe4a939 by Andreas Metzler on 22/06/2024 at 11:50..
Update gpgme.m4 from upstream GIT master
https://invent.kde.org/neon/forks/libgpgme/-/commit/34d833aedc3985ac707ebc06d92802468fe4a939

Git commit 9f5b84b0839954a5876368397579d9786c70f5cf by Andreas Metzler on 22/06/2024 at 11:52..
Install headers for Qt 5 and Qt 6 in separate folders.
https://invent.kde.org/neon/forks/libgpgme/-/commit/9f5b84b0839954a5876368397579d9786c70f5cf

Git commit faa0a5ee471fd1cc63ab33a1588c1c135e7765e7 by Andreas Metzler on 22/06/2024 at 12:36..
Adapt -dev packing to qt5/6 include directory split
https://invent.kde.org/neon/forks/libgpgme/-/commit/faa0a5ee471fd1cc63ab33a1588c1c135e7765e7

Git commit 61c1094957cecc135a56da3c76bc8ff17d5b5851 by Andreas Metzler on 22/06/2024 at 12:42..
fix typo in libqgpgmeqt6-15.lintian-overrides
https://invent.kde.org/neon/forks/libgpgme/-/commit/61c1094957cecc135a56da3c76bc8ff17d5b5851

Git commit b096ac5db3c7be7dc6ec7449529ed2897f2856cb by Carlos De Maine on 02/07/2024 at 12:43..
rebase on salsa experimental
https://invent.kde.org/neon/forks/libgpgme/-/commit/b096ac5db3c7be7dc6ec7449529ed2897f2856cb


More information about the Neon-commits mailing list