commit 77f7c2ab20004f21adbbc23add15a8ce93116c1c Author: zyppe <210hcl@gmail.com> Date: Sun Feb 11 18:15:39 2024 +0800 Initialize for gpgme diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4752abb --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +gpgme-1.16.0.tar.bz2 diff --git a/.gpgme.metadata b/.gpgme.metadata new file mode 100644 index 0000000..e86b52a --- /dev/null +++ b/.gpgme.metadata @@ -0,0 +1 @@ +4ba759d7d0e215963a6532bca28ccd083d789d699e25c980a490f43de9303cbe gpgme-1.16.0.tar.bz2 diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..b3541bb --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,3 @@ +libgpgme11 +libgpgmepp6 +libqgpgme7 diff --git a/gpgme-1.16.0-Use-after-free-in-t-edit-sign-test.patch b/gpgme-1.16.0-Use-after-free-in-t-edit-sign-test.patch new file mode 100644 index 0000000..f80c746 --- /dev/null +++ b/gpgme-1.16.0-Use-after-free-in-t-edit-sign-test.patch @@ -0,0 +1,126 @@ +From 81a33ea5e1b86d586b956e893a5b25c4cd41c969 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= +Date: Sat, 26 Jun 2021 18:02:47 +0200 +Subject: [PATCH] core: Fix use-after-free issue in test + +* tests/gpg/t-edit-sign.c (sign_key, verify_key_signature): New. +(main): Factored out signing and verifying the result. +-- + +Factoring the two steps of the test into different functions fixes the +use-after-free issue that was caused by accidentaly using a variable +of the first step in the second step. + +GnuPG-bug-id: 5509 +--- + tests/gpg/t-edit-sign.c | 54 ++++++++++++++++++++++++++++------------- + 1 file changed, 37 insertions(+), 17 deletions(-) + +diff --git a/tests/gpg/t-edit-sign.c b/tests/gpg/t-edit-sign.c +index 2f983622..e0494c54 100644 +--- a/tests/gpg/t-edit-sign.c ++++ b/tests/gpg/t-edit-sign.c +@@ -107,31 +107,19 @@ interact_fnc (void *opaque, const char *status, const char *args, int fd) + } + + +-int +-main (int argc, char **argv) ++void ++sign_key (const char *key_fpr, const char *signer_fpr) + { + gpgme_ctx_t ctx; + gpgme_error_t err; + gpgme_data_t out = NULL; +- const char *signer_fpr = "A0FF4590BB6122EDEF6E3C542D727CC768697734"; /* Alpha Test */ + gpgme_key_t signing_key = NULL; +- const char *key_fpr = "D695676BDCEDCC2CDD6152BCFE180B1DA9E3B0B2"; /* Bravo Test */ + gpgme_key_t key = NULL; +- gpgme_key_t signed_key = NULL; +- gpgme_user_id_t signed_uid = NULL; +- gpgme_key_sig_t key_sig = NULL; + char *agent_info; +- int mode; +- +- (void)argc; +- (void)argv; +- +- init_gpgme (GPGME_PROTOCOL_OpenPGP); + + err = gpgme_new (&ctx); + fail_if_err (err); + +- /* Sign the key */ + agent_info = getenv("GPG_AGENT_INFO"); + if (!(agent_info && strchr (agent_info, ':'))) + gpgme_set_passphrase_cb (ctx, passphrase_cb, 0); +@@ -159,8 +147,23 @@ main (int argc, char **argv) + gpgme_data_release (out); + gpgme_key_unref (key); + gpgme_key_unref (signing_key); ++ gpgme_release (ctx); ++} ++ ++ ++void ++verify_key_signature (const char *key_fpr, const char *signer_keyid) ++{ ++ gpgme_ctx_t ctx; ++ gpgme_error_t err; ++ gpgme_key_t signed_key = NULL; ++ gpgme_user_id_t signed_uid = NULL; ++ gpgme_key_sig_t key_sig = NULL; ++ int mode; ++ ++ err = gpgme_new (&ctx); ++ fail_if_err (err); + +- /* Verify the key signature */ + mode = gpgme_get_keylist_mode (ctx); + mode |= GPGME_KEYLIST_MODE_SIGS; + err = gpgme_set_keylist_mode (ctx, mode); +@@ -168,7 +171,7 @@ main (int argc, char **argv) + err = gpgme_get_key (ctx, key_fpr, &signed_key, 0); + fail_if_err (err); + +- signed_uid = key->uids; ++ signed_uid = signed_key->uids; + if (!signed_uid) + { + fprintf (stderr, "Signed key has no user IDs\n"); +@@ -180,7 +183,7 @@ main (int argc, char **argv) + exit (1); + } + key_sig = signed_uid->signatures->next; +- if (strcmp ("2D727CC768697734", key_sig->keyid)) ++ if (strcmp (signer_keyid, key_sig->keyid)) + { + fprintf (stderr, "Unexpected key ID in second user ID sig: %s\n", + key_sig->keyid); +@@ -196,6 +199,23 @@ main (int argc, char **argv) + + gpgme_key_unref (signed_key); + gpgme_release (ctx); ++} ++ ++ ++int ++main (int argc, char **argv) ++{ ++ const char *signer_fpr = "A0FF4590BB6122EDEF6E3C542D727CC768697734"; /* Alpha Test */ ++ const char *signer_keyid = signer_fpr + strlen(signer_fpr) - 16; ++ const char *key_fpr = "D695676BDCEDCC2CDD6152BCFE180B1DA9E3B0B2"; /* Bravo Test */ ++ ++ (void)argc; ++ (void)argv; ++ ++ init_gpgme (GPGME_PROTOCOL_OpenPGP); ++ ++ sign_key (key_fpr, signer_fpr); ++ verify_key_signature (key_fpr, signer_keyid); + + return 0; + } +-- +2.32.0 + diff --git a/gpgme-1.16.0-t-various-testSignKeyWithExpiration-32-bit.patch b/gpgme-1.16.0-t-various-testSignKeyWithExpiration-32-bit.patch new file mode 100644 index 0000000..7d5ac17 --- /dev/null +++ b/gpgme-1.16.0-t-various-testSignKeyWithExpiration-32-bit.patch @@ -0,0 +1,33 @@ +From 6a79e90dedc19877ae1c520fed875b57089a5425 Mon Sep 17 00:00:00 2001 +From: =?utf8?q?Ingo=20Kl=C3=B6cker?= +Date: Thu, 8 Jul 2021 11:54:06 +0200 +Subject: [PATCH] Make sure expiration time is interpreted as unsigned number + +* lang/qt/tests/t-various.cpp (testSignKeyWithExpiration): Convert +expiration time to uint_least32_t. +-- + +This fixes the test on 32-bit systems where time_t (the return type of +expirationTime()) is a signed 32-bit integer type. + +GnuPG-bug-id: 5522 +--- + lang/qt/tests/t-various.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lang/qt/tests/t-various.cpp b/lang/qt/tests/t-various.cpp +index 8563b681..72a2487a 100644 +--- a/lang/qt/tests/t-various.cpp ++++ b/lang/qt/tests/t-various.cpp +@@ -355,7 +355,7 @@ private Q_SLOTS: + target.update(); + const auto keySignature = target.userID(0).signature(target.userID(0).numSignatures() - 1); + QVERIFY(!keySignature.neverExpires()); +- const auto expirationDate = QDateTime::fromSecsSinceEpoch(keySignature.expirationTime()).date(); ++ const auto expirationDate = QDateTime::fromSecsSinceEpoch(uint_least32_t(keySignature.expirationTime())).date(); + QCOMPARE(expirationDate, QDate(2106, 2, 6)); // expiration date is capped at 2106-02-06 + } + +-- +2.11.0 + diff --git a/gpgme-1.16.0.tar.bz2.sig b/gpgme-1.16.0.tar.bz2.sig new file mode 100644 index 0000000..b44fa56 Binary files /dev/null and b/gpgme-1.16.0.tar.bz2.sig differ diff --git a/gpgme-use-glibc-closefrom.patch b/gpgme-use-glibc-closefrom.patch new file mode 100644 index 0000000..8b12c17 --- /dev/null +++ b/gpgme-use-glibc-closefrom.patch @@ -0,0 +1,32 @@ +From 4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e Mon Sep 17 00:00:00 2001 +From: Jiri Kucera +Date: Sun, 25 Jul 2021 11:35:54 +0200 +Subject: [PATCH] core: Support closefrom also for glibc. + +* src/posix-io.c (_gpgme_io_spawn): Use glibc's closefrom. +-- + +Since 2.34, glibc introduces closefrom (the implementation +follows *BSD standard). + +Signed-off-by: Werner Koch +--- + src/posix-io.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/posix-io.c b/src/posix-io.c +index e712ef28..2a3a81fc 100644 +--- a/src/posix-io.c ++++ b/src/posix-io.c +@@ -570,7 +570,7 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags, + if (fd_list[i].fd > fd) + fd = fd_list[i].fd; + fd++; +-#if defined(__sun) || defined(__FreeBSD__) ++#if defined(__sun) || defined(__FreeBSD__) || defined(__GLIBC__) + closefrom (fd); + max_fds = fd; + #else /*!__sun */ +-- +2.11.0 + diff --git a/gpgme.changes b/gpgme.changes new file mode 100644 index 0000000..ed95b23 --- /dev/null +++ b/gpgme.changes @@ -0,0 +1,825 @@ +* Tue Aug 31 2021 pmonreal@suse.com +- Update to 1.16.0 in SLE-15-SP4: [jsc#SLE-20014, jsc#SLE-21114] + * Remove gpgme-test-json.patch fixed upstream +* Thu Aug 5 2021 pmonreal@suse.com +- Fix build with glibc 2.34: [bsc#1189089] + * Use glibc's closefrom. + * Add gpgme-use-glibc-closefrom.patch +* Wed Jul 7 2021 andreas.stieger@gmx.de +- gpgme 1.16.0: + * New context flag "cert-expire" + * New data flags "io-buffer-size" and "sensitive" + * cpp,qt: Add support for trust signatures + * qt: Add support for flags in LDAP server options + * qt: Fix too high memory consumption due to QProcess + * qt: Do not set empty base DN as query of keyserver URL + * qt: Extend SignKeyJob to create signatures with expiration date + * python: New optional parameter filter_signatures for decrypt +- run all tests again +- add patches to fix tests: + * gpgme-1.16.0-Use-after-free-in-t-edit-sign-test.patch + * gpgme-1.16.0-t-various-testSignKeyWithExpiration-32-bit.patch +* Wed Mar 31 2021 pmonreal@suse.com +- Fix t-json test in SP3: https://dev.gnupg.org/T4820 [bsc#1183801] + * tests/json: Bravo key does not have secret key material + * tests/json: Do not check for keygrip of pubkeys + * core: Make sure the keygrip is available in WITH_SECRET mode +- Add gpgme-test-json.patch +* Thu Mar 25 2021 code@bnavigator.de +- Can't assume non-existence of python38 macros in Leap. + gh#openSUSE/python-rpm-macros#107 + Test for suse_version instead. Only Tumbleweed has and needs the + python_subpackage_only support. +* Tue Jan 12 2021 andreas.stieger@gmx.de +- gpgme 1.15.1: + * Fix a bug in the secret key export + * Make listing of signatures work if only secret keys are listed + * qt: Avoid empty "rem@gnupg.org" signature notations + * python: Fix key_export functions +- remove deprecated texinfo macros +* Sat Dec 5 2020 code@bnavigator.de +- Use python-rpm-macros to provide python3X-gpg for all present + python3 flavors -- gh#openSUSE/python-rpm-macros#66 +* Tue Nov 17 2020 andreas.stieger@gmx.de +- gpgme 1.15.0: + * New function gpgme_op_setexpire to make changing the expiration + easier + * New function gpgme_op_revsig to revoke key signatures + * Support exporting secret keys + * cpp: Support for set expire operations in the C++ bindings + * cpp: Support for revoking key signatures in the C++ bindings + * qt: Extended ChangeExpiryJob to support changing the expiry of + subkeys + * qt: Extended QuickJob to support revoking of key signatures + * qt: Added QDebug stream operator for GpgME::Error. + * Require libgpg-error 1.36 +* Fri Jul 17 2020 andreas.stieger@gmx.de +- gpgme 1.14.0: + * New keylist mode to force the engine to return the keygrip + * New export mode to export as OpenSSH public key + * New context flag "extended-edit" to enable expert key edit + * Deprecate the anyway non working trustlist functions + * cpp: Add convenience API to obtain remarks + * cpp: The sign key edit-interactor now supports multiple + signatures from the same key + * qt: Extended signkeyjob to handle remarks and multiple + signatures + * qt: Added job API for gpg-card + * qt: The logging category has been changed to gpg.qgpgme to be + more consistent with other qt logging categories +- drop upstream patches: + * 0001-gpg-Avoid-error-diagnostics-with-override-session-ke.patch +- drop patches no longer needed that now break tests: + * gpgme-t-json-test-Bravo-key-no-secret-key-material.patch + * gpgme-t-json-test-with-keygrip-when-listing-keys.patch +* Thu Jul 2 2020 dcermak@suse.com +- Add 0001-gpg-Avoid-error-diagnostics-with-override-session-ke.patch + This patch is a fix from + https://dev.gnupg.org/rMae4d7761a15b82eb98b0bcc72af2ae2e8973e1f9 which fixes + https://dev.gnupg.org/T3464 + The patch is required to make notmuch's testsuite pass with gpgme 1.13.0 and + 1.13.1. For further details, see id:87366av72u.fsf@fifthhorseman.net on + notmuch@notmuchmail.org +* Thu May 14 2020 mcepl@suse.com +- Don't delete python egg-info files (bsc#1168795) +* Wed Apr 29 2020 pmonrealgonzalez@suse.com +- Fix build: [bsc#1170811] + * Test t-json fails since the gpg-2.2.20 update +- Add patches: + * gpgme-t-json-test-Bravo-key-no-secret-key-material.patch + * gpgme-t-json-test-with-keygrip-when-listing-keys.patch +* Wed Oct 16 2019 mgorse@suse.com +- Build qt bindings separately to avoid build cycle with + samba/libsoup. +* Fri Jun 14 2019 pmonrealgonzalez@suse.com +- gpgme 1.13.1: + * core: At debug levels up to 9 print only an ascii dump. + * core: Add commented debug helper to posix-io.c. + * core: Fix error return value of _gpgme_run_io_cb. + * core: Prettify _gpgme_io_select debug output again and fix TRACE_SYSRES. + * core: Improve the debug messages even more. + * core: Avoid explicit locks in the debug code. + * json: Print "nan", "-inf", "inf" if needed. + * json: Improve handling of large exponents in the JSON parsor. + * core: Implement recpstring option parsing for gpgsm. + * core: Make gpgme_op_encrypt_ext work for CMS. + * python: Fix typo in DecryptionError exception. + * python: Make EXTRA_DIST files explicit. + * Python, doc: Minor style improvement. + * Always use maintainer mode -Wno cflags. + * cpp: Fix initialization warning. + * python: stop raising BadSignatures from decrypt(verify=True) + * cpp: Add wrapper for gpgme_set_global_flag. + * core: Fix duplication of close_notify_handler for gpgsm. +* Sun Mar 31 2019 andreas.stieger@gmx.de +- gpgme 1.13.0: + * Support GPGME_AUDITLOG_DIAG for gpgsm + * New context flag "trust-model". + * Aligned the gpgrt-config code with our other libaries + * Auto-check for all installed Python versions + * Fixed generating card key in the C++ bindings + * Fixed a segv due to bad parameters in genkey + * Fixed crash if the plaintext is ignored in a CMS verify + * Fixed test suite problems related to dtags + * Fixed bunch of python bugs + * Several fixes to the Common Lisp bindings + * Fixed minor bugs in gpgme-json + * Require trace level 8 to dump all I/O data + * The compiler must now support variadic macros +- drop gpgme-key-expirity.patch, included upstream +* Wed Jan 9 2019 tchvatal@suse.com +- Regen keys in Qt tests to not expire bsc#1121051: + * gpgme-key-expirity.patch +* Tue Oct 9 2018 tchvatal@suse.com +- Fix the build on ix86 as we disable one test there that should + not work, sadly just sed is employed as the infrastructure for + testing is not smart enough for comfy test filtering +* Mon Oct 8 2018 kbabioch@suse.com +- Update to 1.12.0: + * Enhanced the JSON based interface tool gpgme-json to support Native + Messaging as well as new Javascript code to support the browser + site. See lang/js/README for details. + * Major overhaul of the Python language bindings documentation + * Even for old versions of gpg a missing MDC will now lead to a + decryption failure + * Added context flag "auto-key-locate" to control the + behavior of GPGME_KEYLIST_MODE_LOCATE + * New data function to create a data object from an estream + * Add more interfaces to the C++ binding + * Improved error codes on decryption failure + * Lots of minor fixes + * Interface changes +* Fri Apr 20 2018 astieger@suse.com +- update to 1.11.1: + * Fixed build problems in the 1.11.0 releas + drop gpgme-1.11-fix-gpgme-json-rpath.patch, + drop gpgme-1.11-fix-tests.patch + * Added C++ interfaces which were planned for 1.11.0 +* Thu Apr 19 2018 kbabioch@suse.com +- Update to 1.11 + * New encryption API to support direct key specification including + hidden recipients option and taking keys from a file. This also + allows to enforce the use of a subkey. + * New encryption flag for the new API to enforce the use of plain + mail addresses (addr-spec). + * The import API can now tell whether v3 keys are skipped. These + old and basically broken keys are not anymore supported by GnuPG + 2.1. + * The decrypt and verify API will now return the MIME flag as + specified by RFC-4880bis. + * The offline mode now has an effect on gpg by disabling all + network access. + * A failed OpenPGP verification how returns the fingerprint of the + intended key if a recent gpg version was used for signature + creation. + * Various minor fixes. +- Dropped patch 0001-core-Tweak-STATUS_FAILURE-handling.patch, since + it is included upstream now. +- add gpgme-1.11-fix-gpgme-json-rpath.patch to remove rpath +- add gpgme-1.11-fix-tests.patch to fix tests +* Mon Apr 16 2018 astieger@suse.com +- bsc#1089497: Address failure handling issues when using gpg 2.2.6 + via gpgme, as used by libzypp + Add 0001-core-Tweak-STATUS_FAILURE-handling.patch +* Mon Jan 8 2018 tchvatal@suse.com +- Tweak up the python conditional to allow us finegraining and + selecting only py2 or py3 if needed +* Tue Dec 12 2017 astieger@suse.com +- gpgme 1.10.0: + * Now returns more specific error codes for decryption to distinguish + between bad passphrase, user canceled, and no secret key. + * Now returns key origin information if available. + * Added context flag "auto-key-retrieve" to selectively enable the + corresponding gpg option. + * Added flag is_de_vs to decryption and verify results. + * py: Use SEEK_SET as default for data.seek. + * cpp: Various new APIs. + * Reduced spawn overhead on Linux again. Added new configure option + - -disable-linux-getdents to disable this feature for very old + Linux versions. + * Improved the Python bindings build system. + * Made the test suite less fragile. + * Interface changes relative to the 1.9.0 release: + gpgme_decrypt_result_t EXTENDED: New field 'is_de_vs'. + gpgme_signature_t EXTENDED: New field 'is_de_vs'. + gpgme_keyorg_t NEW. + gpgme_op_delete_ext NEW. + gpgme_op_delete_ext_start NEW. + GPGME_DELETE_ALLOW_SECRET NEW. + GPGME_DELETE_FORCE NEW. + gpgme_op_conf_dir NEW. + gpgme_set_ctx_flag EXTENDED: New flag 'auto-key-retrieve'. + cpp: DecryptionResult::isDeVs NEW. + cpp: Signature::isDeVs NEW. + cpp: EngineInfo::Version::operator> NEW. + cpp: Context::createKey NEW. + cpp: Context::startCreateKey NEW. + cpp: Context::createSubkey NEW. + cpp: Context::startCreateSubkey NEW. + qt: QuickJob NEW. + py: DecryptResult EXTENDED: New boolean field 'is_de_vs'. + py: Signature EXTENDED: New boolean field 'is_de_vs'. + py: GpgError EXTENDED: Partial results in 'results'. +* Tue Nov 7 2017 mpluskal@suse.com +- Make python package naming consistent with python singlespec +* Tue Mar 28 2017 astieger@suse.com +- gpgme 1.9.0: + * Clarified meaning of the 'expire' parameter of gpgme_op_createkey + and gpgme_op_createsubkey. New flag to force a key without an + expiration date. + * New function gpgme_op_keylist_from_data_start to list keys from + data objects without importing them. + * New function gpgme_op_set_uid_flag to flag a key as primary. + * New function gpgme_op_decrypt_ext to run decryption with special + flags. This can for example be used to unwrap keys (remove only + the encryption layer). + * New encryption flags to wrap a key (adding an encryption layer to + an OpenPGP message) or to create anonymously encrypted messages. + * Support for adduid and revuid operations in the C++ bindings. + * Support for smartcard key generation in the C++ bindings. + * Several new functions for the Python binding. + * Many smaller bug fixes. + * Interface changes relative to the 1.8.0 release: + gpgme_op_createkey CHANGED: Meaning of 'expire' parameter. + gpgme_op_createsubkey CHANGED: Meaning of 'expire' parameter. + GPGME_CREATE_NOEXPIRE NEW. + gpgme_key_t EXTENDED: New field 'origin'. + gpgme_key_t EXTENDED: New field 'last_update'. + gpgme_subkey_t EXTENDED: New field 'is_de_vs'. + gpgme_user_id_t EXTENDED: New field 'origin'. + gpgme_user_id_t EXTENDED: New field 'last_update'. + gpgme_op_keylist_from_data_start NEW. + gpgme_op_set_uid_flag_start NEW. + gpgme_op_set_uid_flag NEW. + gpgme_op_decrypt_ext_start NEW. + gpgme_op_decrypt_ext NEW. + GPGME_ENCRYPT_THROW_KEYIDS NEW. + GPGME_ENCRYPT_WRAP NEW. + GPGME_DECRYPT_VERIFY NEW. + GPGME_DECRYPT_UNWRAP NEW. + gpgme_data_rewind UN-DEPRECATE. + cpp: Context::revUid(const Key&, const char*) NEW. + cpp: Context::startRevUid(const Key&, const char*) NEW. + cpp: Context::addUid(const Key&, const char*) NEW. + cpp: Context::startAddUid(const Key&, const char*) NEW. + cpp: Key::UserID::revoke() NEW. + cpp: Key::addUid() NEW. + cpp: Key::isDeVs NEW. + cpp: GpgGenCardKeyInteractor NEW. + cpp: Subkey::keyGrip NEW. + cpp: Subkey::isDeVs NEW. + cpp: Data::toKeys NEW. + cpp: Context::setDecryptFlags NEW. + cpp: Context::decrypt EXTENDED: Flags added. + cpp: Context::startDecrypt EXTENDED: Flags added. + cpp: Context::decryptAndVerify EXTENDED: Flags added. + cpp: Context::startCombinedDecryptionAndVerification EXTENDED: Flags. + cpp: Context::encryptFlags EXTENDED: New flags. + qt: CryptoConfig::stringValueList() NEW. + py: Context.__init__ EXTENDED: New keyword arg home_dir. + py: Context.home_dir NEW. + py: Context.keylist EXTENDED: New keyword arg mode. + py: Context.keylist EXTENDED: New keyword arg source. + py: Context.create_key NEW. + py: Context.create_subkey NEW. + py: Context.key_add_uid NEW. + py: Context.key_revoke_uid NEW. + py: Context.key_sign NEW. + py: Context.key_tofu_policy NEW. + py: core.pubkey_algo_string NEW. + py: core.addrspec_from_uid NEW. +- drop upstreamed patches: + * gpgme-include_functional.patch + * remove-a-forgotten-instance-of-libsuffix.diff +* Thu Mar 23 2017 lbeltrame@kde.org +- Re-conditionalize python builds, to allow gpgme to build on + Leap 42.3 (python tests fail with an older gpg, see + gpg issue 3008) +- Enable Qt build also on Leap 42.3 (needed for KDE PIM) +* Tue Feb 14 2017 tchvatal@suse.com +- Unconditionalize python and python3 builds +- Unconditionalize c++ build +* Mon Feb 13 2017 jengelh@inai.de +- Fix RPM groups +* Mon Feb 13 2017 tchvatal@suse.com +- Do not condition around the qt version as it breaks baselibs validator +* Tue Feb 7 2017 crrodriguez@opensuse.org +- gpgme-include_functional.patch: include where + needed, fix GCC7 build +* Tue Nov 22 2016 lbeltrame@kde.org +- Add remove-a-forgotten-instance-of-libsuffix.diff: fix CMake + files for gpgmepp (or they won't work with KDE software) +* Sat Nov 19 2016 astieger@suse.com +- gpgme 1.8: + * The module of the Python bindings has been renamed to 'gpg'. + * New interface to query current software versions. + * New feature to use gpg's --{show,override}session-key options. + * New interface to set the sender of a mail. + * qt: Added Distinguished Name parser from libkleo + * The --homedir option is now used with recent gpgconf versions. + * The internal locking functions have been replaced by libgpg-error + locking functions. + * Interface changes relative to the 1.7.1 release: + gpgme_set_sender NEW. + gpgme_get_sender NEW. + gpgme_op_query_swdb NEW. + gpgme_op_query_swdb_result NEW. + gpgme_query_swdb_result_t NEW. + gpgme_get_ctx_flag NEW. + gpgme_decrypt_result_t EXTENDED: New field session_key. + qt: DN NEW. + qt: DN::Attribute NEW. + qt: Job::context(Job*) NEW. + cpp: EngineInfo::Version::Version(const char*) NEW. + cpp: EngineInfo::Version::Version() NEW. + cpp: SwdbResult NEW. + cpp: Context::setSender(const char*) NEW. + cpp: Context::getSender() NEW. +* Fri Oct 21 2016 astieger@suse.com +- in addition to dropping gpgme-1.7.0-python-Include-config.h.patch + remove automake depdendency and autogen.sh call +- build QT lib only on Factory +* Thu Oct 20 2016 jengelh@inai.de +- Trim and update descriptions +* Tue Oct 18 2016 lbeltrame@kde.org +- New upstream release 1.7.1 + * Fixed problems with the new language bindings. + * New helper function gpgme_addrspec_from_uid. + * Use option --exit-on-status-write-error with newer gpg versions. + * qt: Missed API from the Qt Binding inclusion has + been added again. + * qt: abstractimportjob.h is now installed to that + ImportJobs can be used again. + * qt: Fixed spelling error in API (startReceive). + * Interface changes relative to the 1.7.0 release: + gpgme_addrspec_from_uid NEW. + qt: WksPublishJob::startRecieve RENAMED to ::startReceive. + qt: MultiDeleteJob NEW. + qt: AbstractImportJob NEW. + qt: SpecialJob NEW. + cpp: Signature::key(bool, bool) NEW. + cpp: UserID::addrSpecFromString(const char*) NEW. + cpp: UserID::addrSpec() NEW. +- Drop conflict (handled on kdepimlibs4 side) +- Drop upstreamed patches: + * gpgme-1.7.0-nonvoid-returns.patch + * gpgme-1.7.0-cpp-qt-Include-config.h.patch + * gpgme-1.7.0-python-Include-config.h.patch +* Wed Oct 12 2016 lbeltrame@kde.org +- Switch on the Qt bindings +- Add missing buildrequires, files, and needed adjustments for the + Qt build +* Tue Oct 11 2016 lbeltrame@kde.org +- Conflict libgpgmepp-devel with kdepimlibs4-devel as they both + install the same header (kdepimlibs4 for historical reasons) +* Mon Sep 26 2016 astieger@suse.com +- gpgme 1.7.0: + * Python2 bindings + * C++ bindings + * disabled: Python3, Qt-Framework API + * New functions gpgme_op_createkey and gpgme_op_createsubkey to make + key creation easier (requires GnuPG 2.1). + * New functions gpgme_op_adduid and gpgme_op_revuid to make user id + management easier (requires GnuPG 2.1). + * New function gpgme_op_keysign to make key signing easier (requires + GnuPG 2.1). + * New function gpgme_op_interact to replace the now deprecated + functions gpgme_op_edit and gpgme_op_card_edit. + * New function gpgme_pubkey_algo_string to convert a public key + algorithm into a GnuPG 2.1 style string. + * Support for GnuPG 2.1's TOFU trust model. + * Notation flags are now correctly set on verify. + * New global flag "require-gnupg" to set a minimal gnupg version. + * More supported items in gpgme_get_dirinfo. + * New function gpgme_data_set_flag and flag "size-hint". + * New function gpgme_set_ctx_flag and flags "full-status" and + "raw-description". + * Improved gpgme_data_identify to distinguish more file types. + * New flag GPGME_ENCRYPT_SYMMETRIC for gpgme_op_encrypt to allow + mixed public key and symmetric encryption. + * New field KEYGRIP in gpgme_subkey_t. New fields FPR in gpgme_key_t. + * New flag GPGME_DATA_ENCODING_MIME to declare that the encrypted or + signed data is a valid MIME part. This is to support future GnuPG + versions. + * Interface changes relative to the 1.6.0 release: + gpgme_pubkey_algo_string NEW. + GPGME_PK_EDDSA NEW. + gpgme_set_ctx_flag NEW. + gpgme_data_set_flag NEW. + gpgme_op_createkey NEW. + gpgme_op_createkey_start NEW. + gpgme_op_createsubkey NEW. + gpgme_op_createsubkey_start NEW. + gpgme_op_adduid_start NEW. + gpgme_op_adduid NEW. + gpgme_op_revuid_start NEW. + gpgme_op_revuid NEW. + gpgme_op_keysign_start NEW. + gpgme_op_keysign NEW. + gpgme_op_tofu_policy_start NEW. + gpgme_op_tofu_policy NEW. + gpgme_op_interact_start NEW. + gpgme_op_interact NEW. + gpgme_interact_cb_t NEW. + gpgme_op_edit_start DEPRECATED. + gpgme_op_edit DEPRECATED. + gpgme_op_card_edit_start DEPRECATED. + gpgme_op_card_edit DEPRECATED. + gpgme_edit_cb_t DEPRECATED. + gpgme_status_code_t DEPRECATED. + gpgme_genkey_result_t EXTENDED: New fields pubkey and seckey. + gpgme_signature_t EXTENDED: New field key. + gpgme_key_t EXTENDED: New field fpr. + gpgme_subkey_t EXTENDED: New field keygrip. + gpgme_user_id_t EXTENDED: New field tofu. + gpgme_tofu_policy_t NEW. + gpgme_tofu_info_t NEW. + GPGME_STATUS_KEY_CONSIDERED NEW. + GPGME_STATUS_TOFU_USER NEW. + GPGME_STATUS_TOFU_STATS NEW. + GPGME_STATUS_TOFU_STATS_LONG NEW. + GPGME_STATUS_NOTATION_FLAGS NEW. + GPGME_KEYLIST_MODE_WITH_TOFU NEW. + GPGME_DATA_TYPE_PGP_ENCRYPTED NEW. + GPGME_DATA_TYPE_PGP_SIGNATURE NEW. + GPGME_DATA_ENCODING_MIME NEW. + GPGME_ENCRYPT_SYMMETRIC NEW. + GPGME_CREATE_SIGN NEW. + GPGME_CREATE_ENCR NEW. + GPGME_CREATE_CERT NEW. + GPGME_CREATE_AUTH NEW. + GPGME_CREATE_NOPASSWD NEW. + GPGME_CREATE_SELFSIGNED NEW. + GPGME_CREATE_NOSTORE NEW. + GPGME_CREATE_WANTPUB NEW. + GPGME_CREATE_WANTSEC NEW. + GPGME_CREATE_FORCE NEW. + GPGME_KEYSIGN_LOCAL NEW. + GPGME_KEYSIGN_LFSEP NEW. + GPGME_INTERACT_CARD NEW. + * Add patches to fix build: + + gpgme-1.7.0-nonvoid-returns.patch + + gpgme-1.7.0-cpp-qt-Include-config.h.patch + + gpgme-1.7.0-python-Include-config.h.patch +* Fri Sep 11 2015 astieger@suse.com +- restore taking build timestamp from changelog date +* Wed Aug 26 2015 astieger@suse.com +- gpgme 1.6.0: + * Added gpgme_set_offline to do a key listinging w/o requiring + CRL. + * Added gpgme_set_status_cb to allow a user to see some status + messages. + * Added an export mode for secret keys. + * More precise error codes are returned if GnuPG >= 2.1.8 is used. + * The passphrase handler for the loopback mode has been improved and may + also be used with genkey. + * Interface changes relative to the 1.5.1 release: + gpgme_set_offline NEW. + gpgme_get_offline NEW. + gpgme_set_status_cb NEW. + gpgme_get_status_cb NEW. + GPGME_EXPORT_MODE_SECRET NEW + GPGME_EXPORT_MODE_RAW NEW. + GPGME_EXPORT_MODE_PKCS12 NEW. +* Fri Jun 19 2015 astieger@suse.com +- fix install-info for clean uninstall [boo#935339] +* Mon Jun 8 2015 astieger@suse.com +- gpgme 1.5.5: + * Fixed crash in key listings for user ids with a backslash. + * Fixed regression for GPGSM use with GnuPG < 2.1. + * Properly set signature summary for revoked OpenPGP keys. +* Tue Apr 14 2015 astieger@suse.com +- gpgme 1.5.4: + * Fixed a possible crash in the debug code. +* Tue Feb 3 2015 coolo@suse.com +- making the build reproducible - see + http://lists.gnupg.org/pipermail/gnupg-commits/2014-September/010683.html + for a very similiar problem +* Fri Dec 26 2014 andreas.stieger@gmx.de +- gpgme 1.5.3: + * The export key functions do now return an error if used with the + latest GnuPG version. +* Sat Nov 22 2014 andreas.stieger@gmx.de +- gpgme 1.5.2: + + gpgme-tool is now installed. + + Fix external listing for modern keyservers. + + Minor other fixes. +- disable failing unit tests +* Sun Aug 3 2014 andreas.stieger@gmx.de +- gpgme 1.5.1 + - Fixed possible overflow in gpgsm and uiserver engines. + [bnc#890123] [CVE-2014-3564] + - Added support for GnuPG 2.1's --with-secret option. + - Interface changes relative to the 1.5.0 release: + GPGME_KEYLIST_MODE_WITH_SECRET NEW. +* Wed May 21 2014 andreas.stieger@gmx.de +- gpgme 1.5.0 + - On Unices the engine file names are not not anymore hardwired + but located via the envvar PATH. All options to set the name of + the engines for the configure run are removed. + - If GPGME finds the gpgconf binary it defaults to using gpg2 or + whatever gpgconf tells as name for the OpenPGP engine. If + gpgconf is not found, GPGME looks for an engine named "gpg". + - New feature to use the gpgme I/O subsystem to run arbitrary + commands. + - New flag to use encryption without the default compression step. + - New function to access "gpg-conf --list-dirs" + - New configure option --enable-fixed-path for use by Android. + - Support ECC algorithms. + - Interface changes relative to the 1.4.3 release: + gpgme_get_dirinfo NEW. + gpgme_op_spawn_start NEW. + gpgme_op_spawn NEW. + GPGME_PROTOCOL_SPAWN NEW. + GPGME_SPAWN_DETACHED NEW. + GPGME_SPAWN_ALLOW_SET_FG NEW. + GPGME_ENCRYPT_NO_COMPRESS NEW. + GPGME_PK_ECC NEW. + GPGME_MD_SHA224 NEW. + gpgme_subkey_t EXTENDED: New field curve. + GPGME_STATUS_PLAINTEXT_LENGTH NEW. + GPGME_STATUS_MOUNTPOINT NEW. + GPGME_STATUS_PINENTRY_LAUNCHED NEW. + GPGME_STATUS_ATTRIBUTE NEW. + GPGME_STATUS_BEGIN_SIGNING NEW. + GPGME_STATUS_KEY_NOT_CREATED NEW. +* Tue Aug 13 2013 andreas.stieger@gmx.de +- update to 1.4.3: + * The default engine names are now taken from the output of gpgconf. + If gpgconf is not found the use of gpg 1 is assumed. + * New function gpgme_data_identify to detect the type of a message. + * Interface changes relative to the 1.4.2 release: + gpgme_signers_count NEW. + gpgme_data_type_t NEW. + gpgme_data_identify NEW. +- includes changes from 1.4.2: + * Allow symmetric encryption with gpgme_op_encrypt_sign. + * Interface changes relative to the 1.4.1 release: + gpgme_off_t NEW. + gpgme_size_t NEW. + GPGME_PROTOCOL_OPENPGP NEW alias. +- includes changes from 1.4.1: + * Fixed reading of gpg.conf files with excessive use of the group + option +* Thu May 23 2013 cfarrell@suse.com +- license update: LGPL-2.1+ and GPL-3.0+ + See the HACKING file in the doc directory +* Tue Mar 12 2013 andreas.stieger@gmx.de +- gpgme-config --libs lists -lassuan, but libgpgme-devel did not + require libassuan-devel [bnc#808882] +* Sun Mar 3 2013 andreas.stieger@gmx.de +- update to 1.4.0 + * New function gpgme_io_writen as a convenience wrapper around + gpgme_io_write. + * New functions to support the pinentry mode feature of GnuPG 2.1. + * New macro GPGME_VERSION_NUMBER to allow supporting different API + versions without the need for a configure test. + * Several improvements for gpgme-tool. + * Better logging of the common "invalid engine" error code. + * Support for FD passing is now enabled by default. The configure + option --disable-fd-passing may be used to disable this. + * Interface changes relative to the 1.3.1 release: + GPGME_VERSION_NUMBER NEW. + gpgme_io_writen NEW. + gpgme_set_global_flag NEW. + gpgme_set_pinentry_mode NEW. + gpgme_get_pinentry_mode NEW. + gpgme_pinentry_mode_t NEW. + GPGME_PINENTRY_MODE_DEFAULT NEW. + GPGME_PINENTRY_MODE_ASK NEW. + GPGME_PINENTRY_MODE_CANCEL NEW. + GPGME_PINENTRY_MODE_ERROR NEW. + GPGME_PINENTRY_MODE_LOOPBACK NEW. +- pass --disable-fd-passing, regression tests crash otherwise +- add verification of source tarball signatures during build +- remove conflict marker in past changelog entries +- drop gpgme-1.3.2-gpgme-config-remove-extraneous-libs.patch + other packages in openSUSE:Factory which depend on gpgme also depend + on libassuan +- autogen call no longer required +- call make in %%build section +* Fri Nov 16 2012 andreas.stieger@gmx.de +- update to 1.3.2 + * Remove support for libgpgme-pth. As far as we know, this was never used, + and GnuPG is going to use our own npth in the future. + * Fix signature summary information for a missing X.509 key. + * Fix parsing of dates >= year 2038. +- refresh gpgme-1.3.0-gpgme-config-remove-extraneous-libs.patch + to gpgme-1.3.2-gpgme-config-remove-extraneous-libs.patch +- actual minimum requirement for libgpg-error is >= 1.8 +* Thu Dec 1 2011 coolo@suse.com +- add automake as buildrequire to avoid implicit dependency +* Sun Oct 2 2011 crrodriguez@opensuse.org +- Workaround qemu-arm bugs +- remove support for the "pth" library, which has not seen + mainteniance for around 5 years, native pthread support + should be just fine in linux too. +* Mon Sep 5 2011 vuntz@opensuse.org +- Move gpg2 Requires from gpgme to libgpgme11 since it's the + library that will call the binary when it needs it. + Fix bnc#715963. +- Add libgpgme11 Requires to gpgme as this package makes no sense + without the library. +* Fri Jul 29 2011 puzel@novell.com +- update to gpgme-1.3.1 + - Detect GPG versions not supporting ---passwd. + - Interface changes relative to the 1.3.0 release: + GPGME_EXPORT_MODE_MINIMAL NEW + GPGME_STATUS_SUCCESS NEW + gpgme_err_code_from_syserror NEW + gpgme_err_set_errno NEW + gpgme_error_from_errno CHANGED: Return gpgme_error_t + gpgme_error_from_syserror NEW +- drop gnupg-2.0.17-test-failure.patch (fixed upstream) +* Thu Apr 28 2011 idoenmez@novell.com +- Add gnupg-2.0.17-test-failure.patch: fix test failure with gnupg 2.0.17 +* Fri Feb 4 2011 sbrabec@suse.cz +- Removed unneeded dependency of libgpgme11. +* Mon Jan 31 2011 gber@opensuse.org +- added gpgme-1.3.0-gpgme-config-remove-extraneous-libs.patch in + order to remove the extraneuos libassuan from gpgme-config +* Tue Dec 14 2010 cristian.rodriguez@opensuse.org +- run spec cleaner +- fix -devel package dependencies +* Wed Apr 14 2010 chris@computersalat.de +- fix deps + o pth / libpth-devel >= 2.0.7 +* Mon Apr 5 2010 aj@suse.de +- Add requires of libassuan-devel on devel package. +* Wed Mar 31 2010 puzel@novell.com +- update to gpgme-1.3 + * GPGME does not come with an internal libassuan version anymore. + The external libassuan 1.1.0 release or later is required. For + application programmers on systems that can resolve inter-library + dependencies at runtime, this is a transparent change. + * New engine GPGME_PROTOCOL_G13 to support the new g13 tool. + * New engine GPGME_PROTOCOL_UISERVER to support UI Servers. + * New API to change the passpgrase of a key. + * Interface changes relative to the 1.2.0 release: + - GPGME_STATUS_INV_SGNR NEW. + - GPGME_STATUS_NO_SGNR NEW. + - GPGME_PROTOCOL_G13 NEW. + - gpgme_op_g13_mount NEW. + - gpgme_g13_result_t NEW. + - GPGME_PK_ECDSA NEW. + - GPGME_PK_ECDH NEW. + - gpgme_op_passwd_start NEW. + - gpgme_op_passwd NEW. +- drop gpgme-1.1.8-makecheck.patch (not needed) +* Sun Jan 31 2010 jengelh@medozas.de +- package baselibs.conf +* Tue Jun 23 2009 puzel@novell.com +- update to gpgme-1.2.0 + * New encryption flag GPGME_ENCRYPT_NO_ENCRYPT_TO to disable default + recipients. + * gpgme_new will fail if gpgme_check_version was not called, or a + selftest failed (for example, if -mms-bitfields was not used on + MingW32 targets). + * New functions gpgme_io_read and gpgme_io_write for use with + gpgme_passphrase_cb_t and gpgme_edit_cb_t functions. + * New functions gpgme_result_ref and gpgme_result_unref to detach + result structures from a context. + * New functions gpgme_op_export_keys_start and gpgme_op_export_keys + that allow to specify exported keys through gpgme_key_t objects + instead of patterns. + * New mode of operation gpgme_export_mode_t that allows exporting + external keys. +- drop unneeded BRs: libgcrypt-devel, libksba-devel +* Thu Jun 11 2009 puzel@suse.cz +- change BuildRequires: (pth-devel -> libpth-devel) +* Tue Jun 2 2009 dmueller@suse.de +- fix requires of devel package +* Mon Jun 1 2009 puzel@suse.cz +- BuildRequires: pth-devel +* Wed Feb 18 2009 puzel@suse.cz +- update to 1.1.8 + * SIGPIPE is now again ignored as described in the manual. Fixes + regresion introduced with 1.1.6. +* Mon Dec 8 2008 puzel@suse.cz +- update to 1.1.7 + - using GPGME_KEYLIST_MODE_LOCAL combined with + GPGME_KEYLIST_MODE_EXTERN is now supported + - the encoding of gpgme_data_t objects can affect the output encoding + of export, sign and encrypt operations now + - the reference manual now includes the specification of "The GnuPG + UI Server protocol" + - a new function gpgme_cancel_async can be used to asynchronously + cancel any pending operation at any time, from any thread +- remove gpgme-1.1.6-from-upstream.patch (fixed upstream) +- remove gpgme-1.1.4-warning.patch (fixed upstream) +- fix obsolete usage of run_ldconfig +* Thu Apr 10 2008 ro@suse.de +- added baselibs.conf file to build xxbit packages + for multilib support +* Wed Feb 6 2008 bk@suse.de +- update to version 1.1.6: API extensions, eg for gpgconf thru gpgme +- add upstream patches to run the testsuite non-interactively +* Thu Dec 27 2007 crrodriguez@suse.de +- fix library-without-ldconfig-post* errors +- remove "la" files +* Tue Aug 7 2007 ro@suse.de +- remove devel requires from library package +* Mon Aug 6 2007 mrueckert@suse.de +- add defattr to the lib package +* Mon Aug 6 2007 zpetrova@suse.cz +- split gpgme to libgpgme11 and gpgme. +* Fri Jul 27 2007 zpetrova@suse.cz +- update to version 1.1.5 + - small bug and portability fixes. +* Wed May 16 2007 zpetrova@suse.cz +- removed gpg from Requires list. (#273491) +* Mon Mar 12 2007 zpetrova@suse.cz +- updated filelist +* Fri Mar 9 2007 ltinkl@suse.cz +- update to latest version (1.1.4), needed for gpa + * Detect and bail out on double plaintext messages. This is required + so that applications can properly detect the signed parts of a + message. Actual there is now a double protection as GnuPG 1.4.7 + will detect this case too. + * Fixed a memory leak in gpgme_data_release_and_get_mem. + * Fixed a bug in Windows command line quoting. +* Sun Feb 4 2007 ro@suse.de +- updated filelist +* Wed Sep 20 2006 anosek@suse.cz +- fixed compiler warning: variable "key" is used before its value + is set [#159104] (warning.patch) +* Mon Jul 17 2006 nadvornik@suse.cz +- fixed pthread support in gpgme-config +* Wed Jun 28 2006 zpetrova@suse.cz +- update to version 1.1.2 +* Thu Jan 26 2006 sbrabec@suse.cz +- Added %%install_info_prereq. +* Wed Jan 25 2006 mls@suse.de +- converted neededforbuild to BuildRequires +* Sat Jan 14 2006 kukuk@suse.de +- Create devel subpackage [#140727] +* Sat Dec 3 2005 meissner@suse.de +- require libgpg-error-devel (since we include headers that + include headers from there). +* Mon Nov 28 2005 zpetrova@suse.cz +- Update to version 1.0.3 (#135395). +* Thu Feb 17 2005 didge@suse.de +- update to stable version 1.0.2 +- update of url +* Mon Jul 12 2004 adrian@suse.de +- update to version 0.9.0 + * support for gpg2 +* Thu Mar 18 2004 didge@suse.de +- fixed bug #36194 +* Fri Feb 27 2004 ro@suse.de +- added libgpg-error to neededforbuild +* Mon Feb 9 2004 didge@suse.de +- version 0.3.16 +* Sat Jan 10 2004 adrian@suse.de +- add %%run_ldconfig +* Tue Sep 2 2003 mc@suse.de +- add newpg, libgcrypt and libksba to neededforbuild again + it is needed to support kmail with cryptplug + fixed #29620, #29641 and #29642 +* Mon Aug 11 2003 adrian@suse.de +- cleanup #neededforbuild and requires +* Tue Aug 5 2003 adrian@suse.de +- fix libtool handling to get shared libraries +* Thu May 22 2003 coolo@suse.de +- fixing info pages +* Wed Apr 16 2003 coolo@suse.de +- use BuildRoot +* Fri Feb 21 2003 mc@suse.de +- fixed -fPIC and lib64 Problems +* Thu Feb 20 2003 mc@suse.de +- update to version 0.3.15 +* Thu Jan 30 2003 didge@suse.de +- Version 0.3.14 +* Mon Oct 21 2002 didge@suse.de +- Version 0.3.12 +* Wed Sep 25 2002 ro@suse.de +- removed bogus self-provides again +* Wed Sep 25 2002 didge@suse.de +- Version 0.3.11 +* Tue Sep 10 2002 didge@suse.de +- Version 0.3.10 +* Wed Jul 31 2002 didge@suse.de +- Version 0.3.8 +* Fri Jun 21 2002 didge@suse.de +- New Version 0.3.7 +* Fri May 10 2002 didge@suse.de +- New Version 0.3.6 +* Tue May 7 2002 ro@suse.de +- fixed specfile: no macro allowed in Version: line +* Fri Mar 8 2002 didge@suse.de +- New Version 0.3.4 +* Thu Feb 14 2002 didge@suse.de +- New Version 0.3.3 +* Fri Jan 4 2002 didge@suse.de +- New Version 0.3.0 +* Wed Oct 31 2001 didge@suse.de +- Fixed patch +* Mon Oct 29 2001 didge@suse.de +- Needs a patch to build on other platforms than i386 +* Tue Oct 9 2001 didge@suse.de +- Version 0.2.3 +- needs a patch to build because something is broken?! +* Thu Sep 13 2001 didge@suse.de +- Fix a bug to build under AXP +* Wed Aug 22 2001 didge@suse.de +- First build, Verison 0.2.2 diff --git a/gpgme.keyring b/gpgme.keyring new file mode 100644 index 0000000..d45094b --- /dev/null +++ b/gpgme.keyring @@ -0,0 +1,65 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +l7ErThn6owVH9szWrUt6jkKOBg== +=h7e4 +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/gpgme.spec b/gpgme.spec new file mode 100644 index 0000000..9d1fd8f --- /dev/null +++ b/gpgme.spec @@ -0,0 +1,301 @@ +# +# spec file for package gpgme +# +# Copyright (c) 2022-2023 ZhuningOS +# + + +%global flavor %{nil} +%if "%{flavor}" == "" +%define psuffix %{nil} +%bcond_without python2 +%bcond_without python3 +%bcond_with qt +%else +%define psuffix qt +%bcond_with python2 +%bcond_with python3 +%bcond_without qt +%endif +%{!?python_module:%define python_module() python-%{**} python3-{**}} +Name: gpgme%{psuffix} +Version: 1.16.0 +Release: 150400.1.80 +Summary: Programmatic library interface to GnuPG +License: GPL-3.0-or-later AND LGPL-2.1-or-later +Group: Productivity/Security +URL: https://www.gnupg.org/related_software/gpgme/ +Source: ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-%{version}.tar.bz2 +Source1: ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-%{version}.tar.bz2.sig +Source2: baselibs.conf +# https://www.gnupg.org/signature_key.html +Source3: gpgme.keyring +# used to have a fixed timestamp +Source99: gpgme.changes +Patch0: gpgme-1.16.0-Use-after-free-in-t-edit-sign-test.patch +Patch1: gpgme-1.16.0-t-various-testSignKeyWithExpiration-32-bit.patch +# PATCH-FIX-UPSTREAM bsc#1189089 Use glibc's closefrom +Patch2: gpgme-use-glibc-closefrom.patch +BuildRequires: gcc-c++ +BuildRequires: gpg2 >= 2.0.10 +BuildRequires: libassuan-devel >= 2.4.2 +BuildRequires: libgpg-error-devel >= 1.36 +BuildRequires: pkgconfig +BuildRequires: swig +Requires(post): %{install_info_prereq} +Requires(preun): %{install_info_prereq} +%if %{with python2} || %{with python3} +BuildRequires: %{python_module devel} +BuildRequires: python-rpm-macros +%endif +%if %{with qt} +BuildRequires: pkgconfig(Qt5Core) +BuildRequires: pkgconfig(Qt5Test) +%endif + +%description +GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG +easier for applications. It provides a high-level crypto API for +encryption, decryption, signing, signature verification, and key +management. It uses GnuPG as its back-end. + +%package -n libgpgme11 +Summary: Programmatic library interface to GnuPG +Group: System/Libraries +Requires: gpg2 + +%description -n libgpgme11 +GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG +easier for applications. It provides a high-level crypto API for +encryption, decryption, signing, signature verification, and key +management. It uses GnuPG as its back-end. + +%package -n libgpgme-devel +Summary: Development files for GPGME, a C library for accessing GnuPG +Group: Development/Libraries/C and C++ +Requires: glibc-devel +Requires: libgpg-error-devel +Requires: libgpgme11 = %{version} +%requires_ge libassuan-devel +Provides: gpgme-devel = %{version} +Obsoletes: gpgme-devel < %{version} + +%description -n libgpgme-devel +GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG +easier for applications. It provides a high-level crypto API for +encryption, decryption, signing, signature verification, and key +management. + +This subpackage contains the headers needed for building applications +making use of libgpgme. + +%package -n libgpgmepp6 +Summary: Programmatic C++ library interface to GnuPG +Group: System/Libraries +Requires: gpg2 + +%description -n libgpgmepp6 +GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG +easier for applications. It provides a high-level crypto API for +encryption, decryption, signing, signature verification, and key +management. + +This package contains the C++ bindings. + +%package -n libgpgmepp-devel +Summary: Development files for libgpgmepp, a C++ library for accessing GnuPG +Group: Development/Libraries/C and C++ +Requires: glibc-devel +Requires: libgpg-error-devel +Requires: libgpgme-devel = %{version} +Requires: libgpgmepp6 = %{version} +%requires_ge libassuan-devel + +%description -n libgpgmepp-devel +GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG +easier for applications. It provides a high-level crypto API for +encryption, decryption, signing, signature verification, and key +management. + +This subpackage contains the headers needed for building applications +making use of libgpgmepp. + +%package -n python2-gpg +Summary: Python 2 bindings for GPGME, a library for accessing GnuPG +Group: Development/Languages/Python +Provides: python-gpg = %{version}-%{release} +Obsoletes: python-gpg < %{version}-%{release} + +%description -n python2-gpg +GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG +easier for applications. It provides a high-level crypto API for +encryption, decryption, signing, signature verification, and key +management. + +This package contains the bindings to use the library from Python 2 applications. + +%package -n python3-gpg +Summary: Python 3 bindings for GPGME, a library for accessing GnuPG +Group: Development/Languages/Python + +%description -n python3-gpg +GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG +easier for applications. It provides a high-level crypto API for +encryption, decryption, signing, signature verification, and key +management. + +This package contains the bindings to use the library from Python 3 applications. + +%package -n libqgpgme7 +Summary: Programmatic Qt library interface to GnuPG +Group: System/Libraries +Requires: gpg2 + +%description -n libqgpgme7 +GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG +easier for applications. It provides a high-level crypto API for +encryption, decryption, signing, signature verification, and key +management. + +This package contains the Qt bindings. + +%package -n libqgpgme-devel +Summary: Development files for libqgpgme, a Qt library for accessing GnuPG +Group: Development/Libraries/C and C++ +Requires: libgpgme-devel = %{version} +Requires: libgpgmepp-devel = %{version} +Requires: libqgpgme7 = %{version} + +%description -n libqgpgme-devel +GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG +easier for applications. It provides a high-level crypto API for +encryption, decryption, signing, signature verification, and key +management. + +This package contains the bindings to use the library in Qt C++ applications. + +%prep +%autosetup -p1 -n gpgme-%{version} + +%build +build_timestamp=$(date -u +%{Y}-%{m}-%{dT}%{H}:%{M}+0000 -r %{SOURCE99}) +languages="cl cpp" + +%if %{with python2} || %{with python3} +languages="${languages} python" +%endif + +%if %{with qt} +languages="cpp qt" +%endif + +%configure \ + --disable-silent-rules \ + --disable-static \ + --disable-fd-passing \ + --enable-languages="${languages}" \ + --enable-build-timestamp="${build_timestamp}" +%make_build + +%install +%make_install +find %{buildroot} -type f -name "*.la" -delete -print +chmod -x %{buildroot}%{_libdir}/cmake/Gpgmepp/*.cmake + +%if %{with qt} +rm -r %{buildroot}%{_bindir} +rm -r %{buildroot}%{_datadir}/aclocal/gpgme* +rm -r %{buildroot}%{_includedir}/gpgme* +rm -r %{buildroot}%{_infodir}/gpgme* +rm -r %{buildroot}%{_libdir}/cmake/Gpgmepp +rm -r %{buildroot}%{_libdir}/libgpgme* +rm -r %{buildroot}%{_libdir}/pkgconfig/gpgme* +%endif + +%check +%if ! 0%{?qemu_user_space_build} +%make_build check +%endif + +%if %{with qt} +%post -n libqgpgme7 -p /sbin/ldconfig +%postun -n libqgpgme7 -p /sbin/ldconfig +%endif + +%if !%{with qt} +%post -n libgpgme11 -p /sbin/ldconfig +%postun -n libgpgme11 -p /sbin/ldconfig +%post -n libgpgmepp6 -p /sbin/ldconfig +%postun -n libgpgmepp6 -p /sbin/ldconfig + +%post +%install_info --info-dir=%{_infodir} %{_infodir}/gpgme.info%{ext_info} + +%preun +%install_info_delete --info-dir=%{_infodir} %{_infodir}/gpgme.info%{ext_info} +%endif + +%if !%{with qt} +%files +%license COPYING COPYING.LESSER LICENSES +%doc AUTHORS ChangeLog ChangeLog-2011 README NEWS THANKS TODO VERSION +%{_bindir}/gpgme-tool +%{_bindir}/gpgme-json +%{_datadir}/common-lisp +%{_datadir}/common-lisp/source +%{_infodir}/gpgme* + +%files -n libgpgme11 +%license COPYING COPYING.LESSER LICENSES +%{_libdir}/libgpgme.so.* + +%files -n libgpgme-devel +%license COPYING COPYING.LESSER LICENSES +%{_libdir}/libgpgme.so +%{_bindir}/gpgme-config +%{_datadir}/aclocal/gpgme.m4 +%{_includedir}/gpgme.h +%{_libdir}/pkgconfig/gpgme.pc +%{_libdir}/pkgconfig/gpgme-glib.pc + +%files -n libgpgmepp6 +%license COPYING COPYING.LESSER LICENSES +%{_libdir}/libgpgmepp.so.* + +%files -n libgpgmepp-devel +%license COPYING COPYING.LESSER LICENSES +%{_libdir}/libgpgmepp.so +%{_includedir}/gpgme++ +%dir %{_libdir}/cmake +%dir %{_libdir}/cmake/Gpgmepp +%{_libdir}/cmake/Gpgmepp/GpgmeppConfig*.cmake +%endif + +%if %{with python2} +%files -n python2-gpg +%license COPYING COPYING.LESSER LICENSES +%{python2_sitearch}/gpg* +%endif + +%if %{with python3} +%files -n python3-gpg +%license COPYING COPYING.LESSER LICENSES +%{python3_sitearch}/gpg* +%endif + +%if %{with qt} +%files -n libqgpgme7 +%license COPYING COPYING.LESSER LICENSES +%{_libdir}/libqgpgme.so.* + +%files -n libqgpgme-devel +%license COPYING COPYING.LESSER LICENSES +%{_includedir}/qgpgme/ +%{_includedir}/QGpgME/ +%dir %{_libdir}/cmake +%dir %{_libdir}/cmake/QGpgme +%{_libdir}/cmake/QGpgme/*.cmake +%{_libdir}/libqgpgme.so +%endif + +%changelog