Noteworthy changes in version 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.
Drop historic patches; adapt one to upstream changes
and add bug report URL.
Noteworthy changes in version 1.9.0 (2017-03-28)
------------------------------------------------
* 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.
[c=C29/A18/R0 cpp=C10/A4/R0 qt=C9/A2/R0]
A library was removed; recursive bump will follow soon.
Noteworthy changes in version 1.8.0 (2016-11-16)
------------------------------------------------
* 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.
* On 64 bit Windows systems gpgconf is now properly located.
* 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.
[c=C28/A17/R0 cpp=C9/A3/R0 qt=C8/A1/R0]
Noteworthy changes in version 1.7.1 (2016-10-18)
------------------------------------------------
* 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.
[c=C27/A16/R0 cpp=C8/A2/R0 qt=C7/A0/R0]
Noteworthy changes in version 1.7.0 (2016-09-21)
------------------------------------------------
* New language bindings for Python 2 and 3.
* New language Bindings for C++ and the 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.
The find-prefix infrastructure was required in a pkgviews world where
packages installed from pkgsrc could have different installation
prefixes, and this was a way for a dependency prefix to be determined.
Now that pkgviews has been removed there is no longer any need for the
overhead of this infrastructure. Instead we use BUILDLINK_PREFIX.pkg
for dependencies pulled in via buildlink, or LOCALBASE/PREFIX where the
dependency is coming from pkgsrc.
Provides a reasonable performance win due to the reduction of `pkg_info
-qp` calls, some of which were redundant anyway as they were duplicating
the same information provided by BUILDLINK_PREFIX.pkg.
Problems found locating distfiles:
Package f-prot-antivirus6-fs-bin: missing distfile fp-NetBSD.x86.32-fs-6.2.3.tar.gz
Package f-prot-antivirus6-ws-bin: missing distfile fp-NetBSD.x86.32-ws-6.2.3.tar.gz
Package libidea: missing distfile libidea-0.8.2b.tar.gz
Package openssh: missing distfile openssh-7.1p1-hpn-20150822.diff.bz2
Package uvscan: missing distfile vlp4510e.tar.Z
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
---------------------
Noteworthy changes in version 1.6.0 (2015-08-26) [C25/A14/R0]
------------------------------------------------
* 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.
* [w32] The standard GnuPG 2.1 install directory is now seached for
gpgconf.exe before a registry specified directory and the Gpg4win
install directory.
* [w32] gpgme-w32spawn.exe will now only be searched in the gpgme DLL
directory.
* 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.
Noteworthy changes in version 1.5.5 (2015-06-08) [C24/A13/R4]
------------------------------------------------
* 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.
Noteworthy changes in version 1.5.4 (2015-04-13) [C24/A13/R3]
------------------------------------------------
* Fixed a possible crash in the debug code.
* Fixed building for Windows with newer versions of Mingw.
Noteworthy changes in version 1.5.3 (2014-12-11) [C24/A13/R2]
-------------------------------------------------------------
* The export key functions do now return an error if used with the
latest GnuPG version.
Noteworthy changes in version 1.5.2 (2014-11-21) [C24/A13/R1]
-------------------------------------------------------------
* gpgme-tool is now installed.
* Fix external listing for modern keyservers.
* Minor other fixes.
Noteworthy changes in version 1.5.1 (2014-07-30) [C24/A13/R0]
-------------------------------------------------------------
* Fixed possible overflow in gpgsm and uiserver engines.
[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.
Noteworthy changes in version 1.5.0 (2014-05-21) [C23/A12/R0]
-------------------------------------------------------------
* 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.
Noteworthy changes in version 1.4.4 (2014-07-30) [C22/A11/R1]
-------------------------------------------------------------
Backported from 1.5.1:
* Fixed possible overflow in gpgsm and uiserver engines.
[CVE-2014-3564]
* Fixed possibled segv in gpgme_op_card_edit.
* Fixed minor memleaks and possible zombie processes.
* Fixed prototype inconsistencies and void pointer arithmetic.
Noteworthy changes in version 1.4.3 (2013-08-12) [C22/A11/R0]
-------------------------------------------------------------
* The default engine names are now taken from the output of gpgconf.
If gpgconf is not found the use of gpg 1 is assumed.
* Under Windows the default engines names are first searched in the
installation directory of the gpgme DLL.
* 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.
Noteworthy changes in version 1.4.2 (2013-05-28)
------------------------------------------------
* Allow symmetric encryption with gpgme_op_encrypt_sign.
* Fixed mismatching off_t definitions on Windows.
* Interface changes relative to the 1.4.1 release:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gpgme_off_t NEW.
gpgme_size_t NEW.
GPGME_PROTOCOL_OPENPGP NEW alias.
* 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.
-don't pull in gnupg2's "gpgconf" if both gnupg1 and gnupg2 are installed
but we are building against gnupg1, this caused a build failure
-fix a selftest to work with gnupg2
changes:
-bugfixes
-API extensions
-documentation improvement
-The encoding of gpgme_data_t objects can affect the output encoding
of export, sign and encrypt operations now
-Using GPGME_KEYLIST_MODE_LOCAL combined with
GPGME_KEYLIST_MODE_EXTERN is now supported
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.