Changes from 2.2 to 2.4

Changes from 2.2 to 2.4 — Changes made between version 2.2 and version 2.4

Changes from 2.2 to 2.4

GMime 2.4 has had a number of API changes since GMime 2.2. To start, ALL public APIs that used to use off_t in GMime 2.2 now use gint64 so that the API and ABI do not change based on whether or not large file support is enabled.

In addition, all of the functions marked as deprecated in 2.0 and 2.2 were removed (usually they had equivalent functionality in a parent class).

Many functions have also been renamed for better clarity and/or consistency. For convenience, GMime 2.4 source packages include a shell-script to aid in porting applications using GMime 2.2 (should work for most GMime 2.0 applications as well) to the 2.4 API. You can find this script under the tools/ directory, named `gmime-port-2-2-to-2-4.sh'.

This script won't fix everything, but it should help quite a bit.

Beyond that, a few methods have changed in other ways:

  • g_mime_cipher_context_sign() still returns int, but if the value isn't -1 (failure), then it will represent a GMimeCipherHash that it used for signing. This is useful, for example, when the requested hash was GMIME_CIPHER_HASH_DEFAULT.

  • g_mime_cipher_context_decrypt() now returns a GMimeSignatureValidty on success and NULL on failure. This is needed in case the encrypted stream was also signed.

  • g_mime_multipart_encrypted_encrypt() now takes a boolean 'sign' argument to allow the caller to request encrypting and signing in a single pass.