2003-04-25 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / NEWS
diff --git a/NEWS b/NEWS
index 6b4aa1a..409181c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,210 @@
-Noteworthy changes in version CVS-HEAD
+Noteworthy changes in version 0.4.1 (unreleased)
 ------------------------------------------------
 
+ * GPGME_ATTR_IS_SECRET is not anymore representable as a string.
+
+ * gpgme_op_verify and gpgme_op_decrypt_verify don't return a status
+   summary anymore.  Use gpgme_get_sig_status to retrieve the individual stati.
+
+ * GpgmeIOCb changed from a void function to a function returning a
+   GpgmeError value.  However, it will always return 0, so you can
+   safely ignore the return value.
+
+ * A new I/O callback event GPGME_EVENT_START has been added.  The new
+   requirement is that you must wait until this event until you are
+   allowed to call the I/O callback handlers previously registered for
+   this context operation.  Calling I/O callback functions for this
+   context operation before the start event happened is unsafe because
+   it can lead to race conditions in a multi-threaded environment.
+
+ * The idle function feature has been removed.  It was not precisely
+   defined in a multi-threaded environment and is obsoleted by the
+   user I/O callback functions.  If you still need a simple way to
+   call something while waiting on one or multiple asynchronous
+   operations to complete, don't set the HANG flag in gpgme_wait (note
+   that this will return to your program more often than the idle
+   function did).
+
+ * gpgme_wait can return NULL even if hang is true, if an error
+   occurs.  In that case *status contains the error code.
+
+ * gpgme_get_engine_info was radically changed.  Instead an XML
+   string, an info structure of the new type GpgmeEngineInfo is
+   returned.  This makes it easier and more robust to evaluate the
+   information in an application.
+
+ * The new function gpgme_get_protocol_name can be used to convert a
+   GpgmeProtocol value into a string.
+
+ * The GpgmePassphraseCb type now returns a GpgmeError value, and
+   returns the password string in a new parameter.  The gpgme_cancel
+   function has been removed, just return GPGME_Canceled in the
+   passphrase callback directly.
+
+ * The status of a context operation is not checked anymore, so the
+   errors GPGME_Busy and GPGME_No_Request can not occur anymore.
+
+ * For clarity and better reusability, the error codes
+   GPGME_No_Recipients, GPGME_Invalid_Recipient and
+   GPGME_No_Passphrase have been renamed to GPGME_No_UserID,
+   GPGME_Invalid_UserID and GPGME_Bad_Passphrase resp.
+
+ * The FPR argument to gpgme_op_genkey was removed.  Instead, use the
+   gpgme_op_genkey_result function to retrieve a GpgmeGenKeyResult
+   pointer to a structure which contains the fingerprint.  This also
+   works with gpgme_op_genkey.  The structure also provides other
+   information about the generated keys.
+
+   So, instead:
+
+   char *fpr;
+   err = gpgme_op_genkey (ctx, NULL, NULL, &fpr); 
+   if (!err && fpr)
+     printf ("%s\n", fpr);
+
+   you should now do:
+
+   GpgmeGenKeyResult result;
+   err = gpgme_op_genkey (ctx, NULL, NULL);
+   if (!err)
+     {
+       result = gpgme_op_genkey_result (ctx);
+       if (result->fpr)
+         printf ("%s\n", result->fpr);
+     }
+
+ * Interface changes relative to the 0.4.0 release:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+GpgmeIOCb                      CHANGED: Return type from void to GpgmeError.
+GpgmeEventIO                   CHANGED: New event type (all numbers changed).
+gpgme_key_get_string_attr      CHANGED: Don't handle GPGME_ATTR_IS_SECRET.
+gpgme_op_verify                        CHANGED: Drop R_STAT argument.
+gpgme_op_decrypt_verify                CHANGED: Drop R_STAT argument.
+gpgme_wait                     CHANGED: Can return NULL even if hang is true.
+GpgmeIdleFunc                   REMOVED
+gpgme_register_idle             REMOVED
+GpgmeEngineInfo                        NEW
+gpgme_get_engine_info          CHANGED: Return info structure instead XML.
+gpgme_get_protocol_name                NEW
+GpgmePassphraseCb              CHANGED: Return error value, new argument.
+gpgme_cancel                   REMOVED: Return error in callback directly.
+GPGME_Busy                     DEPRECATED: Not in use.
+GPGME_No_Request               DEPRECATED: Not in use.
+GPGME_No_Recipients            DEPRECATED: Use GPGME_No_UserID.
+GPGME_No_UserID                        NEW
+GPGME_Invalid_Recipient                DEPRECATED: Use GPGME_Invalid_UserID.
+GPGME_Invalid_UserID           NEW
+GPGME_No_Passphrase            DEPRECATED: Use GPGME_Bad_Passphrase.
+GPGME_Bad_Passphrase           NEW
+gpgme_op_genkey                        CHANGED: FPR argument dropped.
+gpgme_op_genkey_result         NEW
+GpgmeGenKeyResult              NEW
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Noteworthy changes in version 0.4.0 (2002-12-23)
+------------------------------------------------
+
+ * Key generation returns the fingerprint of the generated key.
+
+ * New convenience function gpgme_get_key.
+
+ * Supports signatures of user IDs in keys via the new
+   GPGME_KEYLIST_MODE_SIGS keylist mode and the
+   gpgme_key_sig_get_string_attr and gpgme_key_sig_get_ulong_attr
+   interfaces.  The XML info about a key also includes the signatures
+   if available.
+
+ * New data object interface, which is more flexible and transparent.
+
+ * Interface changes relative to the 0.3.9 release:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+GpgmeDataReadCb                        NEW
+GpgmeDataWriteCb               NEW
+GpgmeDataSeekCb                        NEW
+GpgmeDataReleaseCb             NEW
+GpgmeDataCbs                   NEW
+gpgme_data_read                        CHANGED: Match read() closely.
+gpgme_data_write               CHANGED: Match write() closely.
+gpgme_data_seek                        NEW
+gpgme_data_new_from_fd         NEW
+gpgme_data_new_from_stream     NEW
+gpgme_data_new_from_cbs                NEW
+gpgme_data_rewind              DEPRECATED: Replaced by gpgme_data_seek().
+gpgme_data_new_from_read_cb    DEPRECATED: Replaced by gpgme_data_from_cbs().
+gpgme_data_get_type            REMOVED: No replacement.
+gpgme_op_verify                        CHANGED: Take different data objects for
+                               signed text and plain text.
+gpgme_op_verify_start          CHANGED: See gpgme_op_verify.
+gpgme_check_engine             REMOVED: Deprecated since 0.3.0.
+gpgme_op_genkey                        CHANGED: New parameter FPR.
+GPGME_KEYLIST_MODE_SIGS                NEW
+gpgme_key_sig_get_string_attr  NEW
+gpgme_key_sig_get_ulong_attr   NEW
+gpgme_get_key                  NEW
+GPGME_ATTR_SIG_CLASS           NEW
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Noteworthy changes in version 0.3.15 (2003-02-18)
+-------------------------------------------------
+
+ * The progress status is sent via the progress callbacks in
+   gpgme_op_edit.
+
+ * Bug fix for signing operations with explicit signer settings for
+   the CMS protocol.
+
+Noteworthy changes in version 0.3.14 (2002-12-04)
+-------------------------------------------------
+
+ * GPGME-Plug is now in its own package "cryptplug".
+
+ * Workaround for a setlocale problem.  Fixed a segv related to not
+   correctly as closed marked file descriptors.
+
+Noteworthy changes in version 0.3.13 (2002-11-20)
+-------------------------------------------------
+
+ * Release due to changes in gpgmeplug.
+
+Noteworthy changes in version 0.3.12 (2002-10-15)
+-------------------------------------------------
+
+ * Fixed some bux with key listings.  
+
+ * The development has been branched to clean up some API issues.
+   This 0.3 series will be kept for compatibility reasons; so do don't
+   expect new features.
+
+Noteworthy changes in version 0.3.11 (2002-09-20)
+-------------------------------------------------
+        
+ * Bug fixes.
+
+Noteworthy changes in version 0.3.10 (2002-09-02)
+-------------------------------------------------
+
+ * Setting the signing keys for the CMS protocol does now work.
+
+ * The signers setting is honoured by gpgme_op_edit.
+
+Noteworthy changes in version 0.3.9 (2002-08-21)
+------------------------------------------------
+
+ * A spec file for creating RPMs has been added.
+
+ * An experimental interface to GnuPG's --edit-key functionality is
+   introduced, see gpgme_op_edit.
+
+ * The new gpgme_import_ext function provides a convenient access to
+   the number of processed keys.
+
  * Interface changes relative to the 0.3.8 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+GpgmeStatusCode                        NEW
+GpgmeEditCb                    NEW
+gpgme_op_edit_start            NEW
+gpgme_op_edit                  NEW
+gpgme_op_import_ext            NEW
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Noteworthy changes in version 0.3.8 (2002-06-25)