* gpgsm/t-import.c (check_result): gpgsm does now return info in
[gpgme.git] / NEWS
diff --git a/NEWS b/NEWS
index 34e461e..5812dcf 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,85 @@
-Noteworthy changes in version 0.4.3 (unreleased)
+Noteworthy changes in version 0.4.5 (unreleased)
+------------------------------------------------
+
+ * GPGME is now compiled with LFS (large file support) by default.
+   This means that _all_ programs using GPGME must be compiled with
+   LFS support enabled by default.  You can do this easily with
+   autoconf, by using the AC_SYS_LARGEFILE macro.  Or you can do this
+   without autoconf by defining the preprocessor symbol
+   _FILE_OFFSET_BITS to 64 (by passing the -D_FILE_OFFSET_BITS=64 to
+   the C compiler command line, or by defining this preprocessor
+   symbol before including any system header files).  For more
+   details, read the section on LFS in the manual.
+
+   Up to now, it was undocumented that GPGME was not using LFS.
+   But the public interfaces use off_t, and file descriptors are
+   exchanged between the application and GPGME.  This was an oversight,
+   and bound to cause troubles in the future.
+
+   Writing GPGME as a dual mode library that seamlessly supports LFS
+   while keeping backwards compatibility is possible, but does not
+   solve the problem: Many applications already expect GPGME to have
+   LFS (they are compiled with off_t being a 64bit value).  This is true
+   in particular for the popular Gtk+ and Qt programs.
+
+   So, although this is an ABI (but not an API) break, we will not
+   change the library version to reflect that.  Because the interfaces
+   affected are probably not used yet in any GPGME 0.4 based
+   application, we don't expect any real failures from this change.
+   In fact, applications already using LFS will have some subtle bugs
+   fixed.
+
+   However, if you encounter an application using GPGME 0.4.x that
+   does _not_ use LFS by default (off_t is a 32bit value), _and_
+   uses at least one of the functions gpgme_data_seek,
+   gpgme_data_new_from_filepart, or a gpgme_data_seek_cb_t with
+   gpgme_data_new_from_cbs, then indeed this library will be ABI
+   incompatible with the program.  As said above, we don't believe
+   such a program exists.  If we are in error, then you have two
+   options: As a quick hack, you can configure GPGME with the
+   --disable-largefile option.  This will revert the change, and GPGME
+   will not use LFS.  However, GPGME will be incompatible with
+   programs that expect GPGME to use LFS.  All applications are
+   required to use LFS when using GPGME, so this is only good as a
+   temporary local work-around.
+
+   The other option is to change the versioning of the library and
+   recompile all applications.  We have reserved a special version of
+   the library for that, so you can do that without expecting a
+   version clash in the future.  Furthermore, everyone who does this
+   will agree on the version to use (this is important for
+   distribution makers).  Read the comment in configure.ac (before
+   LIBGPGME_LT_AGE) if you want to do this.  Please don't do this
+   blindly: As stated above, we think it is unlikely this measure is
+   needed.  Still, it is there if necessary.  If in doubt, contact us
+   and we will give our advise for your specific situation.
+
+ * A new key listing mode for validation of the key has been added.
+   See the manual.
+
+ * Interface changes relative to the 0.4.4 release:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gpgme_data_seek_cb_t           CHANGED: off_t is now a largefile type.
+gpgme_data_seek                        CHANGED: off_t is now a largefile type.
+gpgme_data_new_from_filepart   CHANGED: off_t is now a largefile type.
+GPGME_KEYLIST_MODE_VALIDATE     NEW.
+
+
+Noteworthy changes in version 0.4.4 (2004-01-12)
+------------------------------------------------
+
+ * The member "class" in gpgme_key_sig_t and gpgme_new_signature_t has
+   been renamed to "sig_class", to avoid clash with C++ compilers.  In
+   the C API, the old name "class" has been preserved for backwards
+   compatibility, but is deprecated.
+
+ * Interface changes relative to the 0.4.3 release:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gpgme_key_sig_t                        CHANGED: class deprecated, use new sig_class.
+gpgme_new_signature_t          CHANGED: class deprecated, use new sig_class.
+
+
+Noteworthy changes in version 0.4.3 (2003-10-06)
 ------------------------------------------------
 
  * libgpgme should not be used for threaded programs anymore.  This
@@ -11,6 +92,20 @@ Noteworthy changes in version 0.4.3 (unreleased)
    The old code for automagically detecting the thread library is
    still part of libgpgme, but it is DEPRECATED.
 
+ * There are new automake macros AM_PATH_GPGME_PTH and
+   AM_PATH_GPGME_PTHREAD, which support checking for thread-enabled
+   versions of GPGME.  They define GPGME_PTH_CFLAGS, GPGME_PTH_LIBS,
+   GPGME_PTHREAD_CFLAGS and GPGME_PTHREAD_LIBS respectively.  These
+   variables of course also include the configuration for the thread
+   package itself.  Alternatively, use libtool.
+
+ * gpgme_strerror_r as a thread safe variant of gpgme_strerror was
+   added.
+
+ * gpgme-config doesn't support setting the prefix or exec prefix
+   anymore.  I don't think it ever worked correctly, and it seems to
+   be pointless.
+
  * gpgme_get_key fails with GPG_ERR_AMBIGUOUS_NAME if the key ID
    provided was not unique, instead returning the first matching key.
 
@@ -24,12 +119,42 @@ Noteworthy changes in version 0.4.3 (unreleased)
    than an unsigned long (the old class field is preserved for
    backwards compatibility).
 
- * Interface changes relative to the 0.4.3 release:
+ * A new function gpgme_set_locale() is provided to allow configuring
+   the locale for the crypto backend.  This is necessary for text
+   terminals so that programs like the pinentry can be started with
+   the right locale settings for the terminal the application is running
+   on, in case the terminal has different settings than the system
+   default (for example, if it is a remote terminal).  You are highly
+   recommended to call the following functions directly after
+   gpgme_check_version:
+
+   #include <locale.h>
+
+   setlocale (LC_ALL, "");
+   gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL));
+   gpgme_set_locale (NULL, LC_MESSAGES, setlocale (LC_MESSAGES, NULL));
+
+   GPGME can not do this for you, as setlocale is not thread safe, and
+   there is no alternative.
+
+ * The signal action for SIGPIPE is now set to SIG_IGN by
+   gpgme_check_version, instead the first time a crypto engine is
+   started (which is not well defined).
+
+ * In the output of gpgme_hash_algo_name, change RMD160 to RIPEMD160,
+   TIGER to TIGER192, CRC32-RFC1510 to CRC32RFC1510, and CRC24-RFC2440
+   to CRC24RFC2440.  For now, these strings can be used as the MIC
+   parameter for PGP/MIME (if appropriately modified).
+
+ * Interface changes relative to the 0.4.2 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gpgme_strerror_t               NEW
 gpgme_get_key                  CHANGED: Fails correctly if key ID not unique.
 gpgme_key_t                    EXTENDED: New field can_authenticate.
 gpgme_subkey_t                 EXTENDED: New field can_authenticate.
 gpgme_new_signature_t          CHANGED: New type for class field.
+gpgme_set_locale               NEW
+gpgme_hash_algo_name           CHANGED: Slight adjustment of algo names.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
@@ -810,7 +935,7 @@ Noteworthy changes in version 0.2.1 (2001-04-02)
  * Made the W32 support more robust.
 
 
- Copyright 2001, 2002 g10 Code GmbH
+ Copyright 2001, 2002, 2003, 2004 g10 Code GmbH
 
  This file is free software; as a special exception the author gives
  unlimited permission to copy and/or distribute it, with or without