2007-09-27 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / gpgme / ChangeLog
index 0f2c67b..87557d8 100644 (file)
@@ -1,3 +1,523 @@
+2007-09-27  Marcus Brinkmann  <marcus@g10code.de>
+
+       * w32-glib-io.c (_gpgme_io_spawn),
+       w32-qt-io.cpp (_gpgme_io_spawn), w32-io.c (_gpgme_io_spawn): Close
+       the process handle, return 0.
+
+       * gpgme.h (gpgme_protocol_t): Add GPGME_PROTOCOL_UNKNOWN.
+       * gpgme.c (gpgme_get_protocol_name): Implement support for
+       GPGME_PROTOCOL_UNKNOWN.
+
+       * kdpipeiodevice.h: Fix last change.
+
+       * w32-glib-io.c (_gpgme_io_pipe), w32-qt-io.c (_gpgme_io_pipe),
+       w32-io.c (_gpgme_io_pipe), posix-io.c (_gpgme_io_pipe): Fix debug
+       output.
+
+2007-09-25  Marcus Brinkmann  <marcus@g10code.de>
+
+       * conversion.c, keylist.c: Include <sys/types.h>.
+
+       * kdpipeiodevice.h: Use namespace _gpgme_.
+       * kdpipeiodevice.cpp: Use namespace _gpgme_.
+       [Q_OS_WIN32 && NOMINMAX]: Do not define NOMINMAX again.
+       * w32-qt-io.cpp: Change namespace of KDPipeIODevice to
+       _gpgme_::KDPipeIODevice.
+
+2007-09-17  Werner Koch  <wk@g10code.com>
+
+       * rungpg.c (gpg_new): Make robust against undefined ttyname or
+       ttytype.
+
+2007-09-14  Werner Koch  <wk@g10code.com>
+
+       * data-mem.c (gpgme_data_release_and_get_mem): Fix tracing bug.
+
+2007-09-14  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.c (gpgme_release): Call gpgme_sig_notation_clear.
+
+2007-09-13  Marcus Brinkmann  <marcus@g10code.de>
+
+       * rungpg.c (gpg_new): Handle return value of _gpgme_getenv (fixes
+       small memory leak).
+
+2007-09-07  Marcus Brinkmann  <marcus@g10code.de>
+
+       * Makefile.am (libgpgme_qt_la_SOURCES): Move
+       moc_kdpipeiodevice.cpp to EXTRA_DIST, as this is only included by
+       another file (it's more like a header file than a cpp file, but
+       automake doesn't know that).
+
+       * w32-qt-io.cpp (_gpgme_io_spawn): Fix several cast errors and typos.
+       * w32-io.c (_gpgme_io_write): Use TRACE_SYSRES instead of TRACE_SYS.
+       (libgpgme_qt_la_LIBADD): Add QT4_CORE_LIBS, not QT4_CORE_LIB.
+
+       * kdpipeiodevice.h, kdpipeiodevice.cpp, moc_kdpipeiodevice.cpp,
+       kdpipeiodevice.moc, w32-qt-io.c: New files.
+       * Makefile.am (ltlib_gpgme_extra): Rename to ltlib_gpgme_glib.
+       (ltlib_gpgme_qt): New variable.
+       (lib_LTLIBRARIES): Add $(ltlib_gpgme_qt).
+       (libgpgme_qt_la_SOURCES): New variable.
+       (AM_CPPFLAGS): Add @QT4_CORE_INCLUDES@
+       (AM_CFLAGS): Add @QT4_CORE_CFLAGS@.
+       (libgpgme_qt_la_LDFLAGS, libgpgme_qt_la_DEPENDENCIES)
+       (libgpgme_qt_la_LIBADD): New variables.
+
+       * sema.h (struct critsect_s): Rename "private" to "priv" to make
+       C++ users happy.  Change users.
+       * posix-sema.c (_gpgme_sema_cs_enter, _gpgme_sema_cs_leave)
+       (_gpgme_sema_cs_destroy): Likewise.
+       * w32-sema.c (critsect_init, _gpgme_sema_cs_enter)
+       (_gpgme_sema_cs_leave, _gpgme_sema_cs_destroy): Likewise.
+       * w32-glib-io.c (gpgme_get_giochannel): Change return type to
+       void*.
+       (gpgme_get_fdptr): New function.
+       * w32-io.c (gpgme_get_fdptr): New function
+       * gpgme.def: Add gpgme_get_fdptr.
+
+2007-08-22  Marcus Brinkmann  <marcus@g10code.de>
+
+       * w32-io.c (_gpgme_io_write): Return early if COUNT is zero.
+       (writer): Remove superfluous check.
+
+2007-08-20  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.h: Move include of gpg-error.h out of extern "C".
+
+2007-08-07  Werner Koch  <wk@g10code.com>
+
+       * gpgme.h (struct _gpgme_signature): Add member CHAIN_MODEL.
+       * verify.c (parse_trust): Set Chain_MODEL.
+
+2007-08-02  Werner Koch  <wk@g10code.com>
+
+       * w32-glib-io.c (_gpgme_io_spawn): Use DETACHED_PROCESS flag.
+       * w32-io.c (_gpgme_io_spawn): Ditto.
+       (_gpgme_io_write): Map ERROR_NO_DATA to EPIPE.
+       * debug.c (_gpgme_debug): Enable assuan logging.
+       (_gpgme_debug_subsystem_init): New.  * version.c
+       (do_subsystem_inits): Disable assuan logging and initialize de
+       debug system.
+       (gpgme_check_version): Do not trace before the subsystems are
+       initialized.
+
+2007-07-17  Marcus Brinkmann  <marcus@g10code.de>
+
+       * debug.c: Include <errno.h> and "debug.h".
+       (_gpgme_debug): Save and restore ERRNO.
+       (TOHEX): New macro.
+       (_gpgme_debug_buffer): New function.
+       * conversion.c, data-compat.c, data-mem.c, data.c, engine-gpgsm.c,
+       gpgme.c, keylist.c, posix-io.c, rungpg.c, sign.c, version.c,
+       w32-io.c, wait.c: Replace DEBUG macros by TRACE_* variants.  In
+       most of these files, add many more tracepoints.
+
+2007-07-16  Marcus Brinkmann  <marcus@g10code.de>
+
+       * engine-gpgsm.c (status_handler): Do not send BYE here.
+
+       * w32-io.c (struct reader_context_s, struct writer_context_s): New
+       members REFCOUNT.
+       (create_reader, create_writer): Initialize C->refcount to 1.
+       (destroy_reader, destroy_writer): Only destroy if C->refcount
+       drops to 0.
+       (find_reader, find_writer, kill_reader, kill_writer): Beautify.
+       * priv-io.h (_gpgme_io_dup): New prototype.
+       * posix-io.c (_gpgme_io_dup): New function. 
+       * w32-io.c (_gpgme_io_dup): Likewise.
+       * w32-glib-io.c (_gpgme_io_dup): Likewise.
+       * engine-gpgsm.c (start): Reverting to version 2007-07-10.
+
+2007-07-13  Marcus Brinkmann  <marcus@g10code.de>
+
+       * data-user.c (user_read, user_write, user_seek): Set errno and
+       return -1 instead returning the error code directly.
+       * data-compat.c (old_user_seek): Likewise.
+       * gpgme.c (gpgme_sig_notation_add): Return error properly.
+
+       * Revert the "close_notify_handler" returns int stuff.  Always
+       close in the _gpgme_io_close implementations.
+       * engine-gpgsm.c (status_handler): Try to terminate the connection
+       in case of error.
+       * w32-io.c (_gpgme_io_read): Return C->error_code in ERRNO.
+       (_gpgme_io_write): Likewise.
+       
+       * priv-io.h (_gpgme_io_set_close_notify): Change type of HANDLER
+       to _gpgme_close_notify_handler.
+       (_gpgme_close_notify_handler): New type.
+       (_gpgme_io_dup): Remove prototype.
+       * posix-io.c (notify_table, _gpgme_io_set_close_notify): Change
+       type of HANDLER to _gpgme_close_notify_handler_t.
+       (_gpgme_io_close): Do not close the FD if handler returns 0.
+       (_gpgme_io_dup): Remove function.
+       * w32-io.c (notify_table, _gpgme_io_set_close_notify,
+       _gpgme_io_close): Change type of HANDLER to
+       _gpgme_close_notify_handler_t.
+       (_gpgme_io_close): Do not close the FD if handler returns 0.
+       (_gpgme_io_dup): Remove function.
+       * w32-glib-io.c (_gpgme_io_dup): Remove function.
+       (_gpgme_io_set_close_notify, notify_table): Change type of HANDLER
+       to _gpgme_close_notify_handler_t.
+       (_gpgme_io_close): Do not close the FD if handler returns 0.
+       * rungpg.c (close_notify_handler): Change return type to int,
+       return 1.
+       * engine-gpgsm.c (close_notify_handler): Change return type to
+       int, return 0 for status FD and 1 for all other FDs.
+       (start): Do not duplicate the status FD.
+
+2007-07-12  Marcus Brinkmann  <marcus@g10code.de>
+
+       * Makefile.am: Replace implicite rule by suffix rule.  Add
+       SUFFIXES for that.
+
+2007-07-12  Werner Koch  <wk@g10code.com>
+
+       * version.c (do_subsystem_inits) [W32]: Make sure that the socket
+       system has been started.
+
+2007-07-10  Marcus Brinkmann  <marcus@g10code.de>
+
+       * priv-io.h (_gpgme_io_dup): New prototype.
+       * posix-io.c (_gpgme_io_dup): New function. 
+       * w32-io.c (_gpgme_io_dup): Likewise.
+       * w32-glib-io.c (_gpgme_io_dup): Likewise.
+       * engine-gpgsm.c (start): Use _gpgme_dup() instead of dup().
+
+2007-07-08  Marcus Brinkmann  <marcus@g10code.de>
+
+       * engine-gpgsm.c [HAVE_W32_SYSTEM]: Enable the bunch of the file.
+       * funopen.c (funopen): Rename to _gpgme_funopen.
+
+2007-04-30  Marcus Brinkmann  <marcus@g10code.de>
+
+       * engine-gpgsm.c (gpgsm_new): Fix error handling for ttyname_r.
+       * rungpg.c (gpg_new): Likewise.
+       Submitted by Stephen Tether.
+
+2007-02-26  Werner Koch  <wk@g10code.com>
+
+       * verify.c (op_data_t): New element PLAINTEXT_SEEN.
+       (_gpgme_verify_status_handler): Return an error if more than one
+       plaintext has been seen.
+       (parse_error): New arg SET_STATUS. Also detect it based on an
+       ERROR status (gpg > 1.4.6).
+
+2007-01-26  Werner Koch  <wk@g10code.com>
+
+       * w32-io.c (build_commandline): Fixed stupid quoting bug.
+       * w32-glib-io.c (build_commandline): Ditto.
+
+       * rungpg.c (gpg_set_locale): Avoid dangling pointer after free.
+
+       * gpgme-config.in: New options --get-gpg and --get-gpgsm.
+
+2007-01-18  Marcus Brinkmann  <marcus@g10code.de>
+
+       * data.h (_gpgme_data_get_fd): Add prototype.
+       (gpgme_data_get_fd_cb): New type.
+       (struct _gpgme_data_cbs): New member get_fd.
+       * data.c (_gpgme_data_get_fd): New function.
+       * data-fd.c (fd_get_fd): New function.
+       (fd_cbs): Add fd_get_fd.
+       * data-stream.c (stream_get_fd): New function.
+       (stream_cbs): Add stream_get_fd.
+       * data-mem.c (mem_cbs): Add NULL for get_fd callback.   
+       * data-user.c (user_cbs): Likewise.
+       * engine-gpgsm.c (gpgsm_set_fd) [USE_DESCRIPTOR_PASSING]: Try to
+       short-cut by passing the data descriptor directly.
+
+2007-01-17  Marcus Brinkmann  <marcus@g10code.de>
+
+       * w32-io.c (build_commandline): Quote all command line arguments.
+       * w32-glib-io.c (build_commandline): Likewise.
+
+2007-01-10  Werner Koch  <wk@g10code.com>
+
+       * ttyname_r.c (ttyname_r) [W32]: Return a dummy name.
+
+2007-01-08  Werner Koch  <wk@g10code.com>
+
+       * version.c (do_subsystem_inits): Do assuan init only if building
+       with Assuan.
+       * setenv.c: Include assuan-def.h only if building with Assuan
+       support.
+
+       * op-support.c (_gpgme_op_reset): Set LC_MESSAGES only if
+       if defined.
+       * engine-gpgsm.c (gpgsm_set_locale): Ditto.
+       * rungpg.c (gpg_set_locale): Ditto.
+
+2006-12-17  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.c (gpgme_set_protocol): Shut down the engine when
+       switching protocols.
+       (gpgme_ctx_set_engine_info): Likewise for engine info.
+       * engine.h (_gpgme_engine_reset): New function prototype.
+       * engine.c (_gpgme_engine_reset): New function.
+       * engine-backend.h (struct engine_ops): New member RESET.
+       * rungpg.c (_gpgme_engine_ops_gpg): Add NULL for reset function.
+       * engine-gpgsm.c (_gpgme_engine_ops_gpgsm)
+       [USE_DESCRIPTOR_PASSING]: Add gpgsm_reset for reset.
+       (_gpgme_engine_ops_gpgsm) [!USE_DESCRIPTOR_PASSING]: Add NULL for
+       reset function.
+       (gpgsm_reset) [USE_DESCRIPTOR_PASSING]: New function.
+       * op-support.c (_gpgme_op_reset): Try to use the engine's reset
+       function if available.
+       * engine-gpgsm.c (gpgsm_new): Move code to dup status_fd to ...
+       (start): ... here.
+       * posix-io.c (_gpgme_io_recvmsg, _gpgme_io_sendmsg): New functions.
+       
+       * engine.h (_gpgme_engine_new): Remove arguments lc_ctype and
+       lc_messages from prototype.
+       (_gpgme_engine_set_locale): New prototype.
+       * engine.c (_gpgme_engine_set_locale): New function.
+       * op-support.c (_gpgme_op_reset): Call _gpgme_engine_set_locale.
+       * engine-backend.h (struct engine_ops): Add new member SET_LOCALE.
+       Remove arguments lc_messages and lc_ctype from member NEW.
+       * engine-gpgsm.c (struct engine_gpgsm): New members lc_ctype_set
+       and lc_messages_set.
+       (gpgsm_new): Remove lc_messages and lc_ctype
+       arguments.
+       (gpgsm_set_locale): New function.
+       (_gpgme_engine_ops_gpgsm): Add gpgsm_set_locale.
+       * rungpg.c (struct engine_gpg): Add new members lc_messages and
+       lc_ctype.
+       (gpg_release): Release lc_messages and lc_ctype if set.
+       (gpg_new): Remove lc_messages and lc_ctype arguments.
+       (gpg_set_locale): New function.
+       (_gpgme_engine_ops_gpg): Add gpg_set_locale.
+       (add_arg): Implement in terms of:
+       (add_arg_ext): New function.
+       (start): Set lc-messages and lc-ctype arguments here.
+
+2006-12-03  Marcus Brinkmann  <marcus@g10code.de>
+
+       * engine-gpgsm.c (struct engine_gpgsm): Move members
+       input_fd_server, output_fd_server, message_fd_server to ...
+       (iocb_data): ... here (as server_fd).
+       (close_notify_handler): Reset tags as well.
+       (gpgsm_new): Implement support for descriptor
+       passing.
+       (fd_type_t): New type.
+       (gpgsm_clear_fd): New function.  Use it instead of _gpgsm_io_close
+       for unused communication channels.
+       (gpgsm_set_fd): Rewritten to support descriptor passing.  All
+       relevant callers adjusted as well (previously of _gpgme_io_close).
+
+2006-12-02  Marcus Brinkmann  <marcus@g10code.de>
+
+       * version.c: Include "assuan.h".
+       (do_subsystem_inits): Call assuan_set_assuan_err_source.
+
+2006-12-01  Marcus Brinkmann  <marcus@g10code.de>
+
+       * Makefile.am (libgpgme_real_la_SOURCES): Rename to main_sources.
+       (libgpgme_la_SOURCES, libgpgme_pthread_la_SOURCES,
+       libgpgme_glib_la_SOURCES, libgpgme_pth_la_SOURCES): Add
+       $(main_sources).
+       (libgpgme_la_DEPENDENCIES, libgpgme_la_LIBADD,
+       libgpgme_pthread_la_DEPENDENCIES, libgpgme_pthread_la_LIBADD,
+       libgpgme_pth_la_DEPENDENCIES, libgpgme_pth_la_LIBADD,
+       libgpgme_glib_la_DEPENDENCIES, libgpgme_glib_la_LIBADD): Remove
+       libgpgme-real.la.
+       (noinst_LTLIBRARIES): Removed.
+       (libgpgme_glib_la_CFLAGS, libgpgme_pth_la_CFLAGS): Removed.
+       (AM_CFLAGS): New variable.
+
+2006-11-30  Marcus Brinkmann  <marcus@g10code.de>
+
+       * engine-gpgsm.c: Replace AssuanError with gpg_error_t and
+       ASSUAN_CONTEXT with assuan_context_t.
+
+2006-11-29  Marcus Brinkmann  <marcus@g10code.de>
+
+       * engine-gpgsm.c (gpgsm_new): Check return value of
+       assuan_pipe_connect.
+
+       * rungpg.c: Include <unistd.h>.
+       (gpg_new): Support --display, --ttyname, --ttytype, --lc-ctype and
+       --lc-messages.  Fixes issue 734.
+
+2006-10-24  Marcus Brinkmann  <marcus@g10code.de>
+
+       * trustlist.c (gpgme_op_trustlist_next): Return error if OPD is
+       NULL.
+
+2006-10-23  Marcus Brinkmann  <marcus@g10code.de>
+
+       * wait-global.c (gpgme_wait): Unlock CTX_LIST_LOCK while calling
+       _gpgme_engine_io_event().
+
+       * keylist.c (gpgme_op_keylist_next): Return error if OPD is NULL.
+
+2006-09-25  Marcus Brinkmann  <marcus@g10code.de>
+
+       * data-mem.c (gpgme_data_release_and_get_mem): Release the data
+       object properly.
+
+2006-09-22  Marcus Brinkmann  <marcus@g10code.de>
+
+       * keylist.c (keylist_colon_handler): Move debug output after
+       initialising KEY.
+
+2006-07-29  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme-config.in (Options): Add NETLIBS.
+       * Makefile.am (libgpgme_la_LIBADD, libgpgme_pthread_la_LIBADD,
+       libgpgme_pth_la_LIBADD, libgpgme_glib_la_LIBADD): Add NETLIBS.
+
+       * rungpg.c (read_status): Fix comparison disguising as an
+       assignment.
+
+2005-03-24  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.c (gpgme_set_locale): Remove conditional on
+       HAVE_W32_SYSTEM, and just check for LC_MESSAGES.
+
+2006-07-16  Marcus Brinkmann  <marcus@g10code.de>
+
+       * rungpg.c (read_status): Strip potential carriage return.
+       * genkey.c (get_key_parameter): Skip potential carriage return.
+       * version.c (_gpgme_get_program_version): Strip potential carriage
+       return.
+
+       * data.c (gpgme_data_set_file_name): Allow to clear the file name
+       by passing NULL.
+
+2006-06-22  Marcus Brinkmann  <marcus@g10code.de>
+
+       * keylist.c (gpgme_get_key): Also clone the engine info.
+
+2006-03-06  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme-config.in (cflags_pth): Revert accidential removal of
+       pthread support with last change.
+
+2006-02-28  Marcus Brinkmann  <marcus@g10code.de>
+
+       * w32-glib-io.c (O_BINARY) [!O_BINARY]: New macro.
+       (_gpgme_io_pipe): Open pipes in binary mode.
+
+2006-02-22  Marcus Brinkmann  <marcus@g10code.de>
+
+       * engine.c (gpgme_engine_check_version): Reimplemented to allow
+       checking the version correctly even after changing the engine
+       information.  Bug reported by Stéphane Corthésy.
+
+       * rungpg.c (read_colon_line): Invoke colon preprocess handler if
+       it is set.
+       (colon_preprocessor_t): New type.
+       (struct engine_gpg): New member colon.preprocess_fnc.
+       (gpg_keylist_preprocess): New function.
+       * keylist.c (keylist_colon_handler): Allow short key IDs.
+
+2006-02-15  Marcus Brinkmann  <marcus@g10code.de>
+
+       * w32-io.c (create_writer): Make C->have_data a manually resetted
+       event.
+       (writer): Move code from end of if block to beginning, so it
+       is also run the first time.
+       (_gpgme_io_write): Move assert check after error check.  Reset
+       the is_empty event, and also do it eagerly.
+       (_gpgme_io_select): Unconditionally wait for the is_empty event.
+
+2006-01-26  Werner Koch  <wk@g10code.com>
+
+       * w32-util.c (_gpgme_get_conf_int): New.
+       * posix-util.c (_gpgme_get_conf_int): New.
+       * w32-io.c (get_desired_thread_priority): New.
+       (create_reader, create_writer): Use it here.
+
+2006-01-04  Werner Koch  <wk@g10code.com>
+
+       * debug.h (_gpgme_debug_srcname): New. Use it with the debug macros.
+
+       * w32-glib-io.c (_gpgme_io_set_nonblocking): Add debug
+       statements. Disable error return for failed nonblocking call.
+
+2006-01-03  Marcus Brinkmann  <marcus@g10code.de>
+
+       * w32-glib-io.c (_gpgme_io_close): Only close fd if there is no
+       channel for it.
+
+2005-12-31  Marcus Brinkmann  <marcus@g10code.de>
+
+       * w32-glib-io.c (find_channel): Set channel to unbuffered.
+       (_gpgme_io_select): Fix debug output.
+
+2005-12-23  Werner Koch  <wk@g10code.com>
+
+       * gpgme.h (struct _gpgme_signature): Append field PKA_ADDRESS.
+       * verify.c (release_op_data, _gpgme_verify_status_handler): Set
+       this field.
+
+2005-12-20  Werner Koch  <wk@g10code.com>
+
+       * gpgme.h (gpgme_status_code_t): Added GPGME_STATUS_PKA_TRUST_BAD
+       and GPGME_STATUS_PKA_TRUST_GOOD.
+       (struct _gpgme_signature): New field pka_trust.
+       * verify.c (_gpgme_verify_status_handler): Set pka_trust.
+
+2005-12-06  Werner Koch  <wk@g10code.com>
+
+       * keylist.c (keylist_colon_handler): Store fingerprints of the
+       subkeys.  Reset the secret flag of subkeys for stub secret keys.
+       (NR_FIELDS): Bumped up to 16
+
+2005-11-27  Marcus Brinkmann  <marcus@g10code.de>
+
+       * engine.c (_gpgme_set_engine_info): Use new_file_name in
+       engine_get_version invocation.  Reported by Stéphane Corthésy.
+
+2005-11-24  Marcus Brinkmann  <marcus@g10code.de>
+
+       * w32-glib-io.c (_gpgme_io_fd2str): Remove debug printf.
+
+2005-11-18  Werner Koch  <wk@g10code.com>
+
+       * w32-glib-io.c: Include glib.h before windows to avoid a symbol
+       shadowing warning.
+       (find_channel): Better use g_io_channel_win32_new_fd instead of
+       the autodetection function g_io_channel_unix_new.
+       (_gpgme_io_select): Rewritten.  It is now a fully working select
+       implementation.
+
+2005-11-18  Marcus Brinkmann  <marcus@g10code.de>
+
+       * priv-io.h (_gpgme_io_fd2str): New prototype.
+       * posix-io.c (_gpgme_io_fd2str): New function.
+       * w32-io.c (_gpgme_io_fd2str): New function.
+       * rungpg.c: Use this new function.
+       * w32-glib-io.c (_gpgme_io_fd2str): Rewrote the file handle code
+       again.  Two's company, three's the musketeers.
+
+       * w32-glib-io.c: Rewrote the file handle code.  We don't create
+       system fds for every handle (doesn't work for inherited handles),
+       but we create pseudo fds in a private namespace that designate a
+       handle and potentially a giochannel.
+
+2005-11-18  Werner Koch  <wk@g10code.com>
+
+       * versioninfo.rc.in: Set file version to LT-version + Svn-revision.
+
+2005-11-17  Marcus Brinkmann  <marcus@g10code.de>
+
+       * w32-glib-io.c: New file.
+       * gpgme.def (gpgme_get_giochannel): Add symbol.
+       * Makefile.am (system_components) [HAVE_DOSISH_SYSTEM]: Remove
+       w32-io.c.
+       (ltlib_gpgme_extra): New variable.
+       (lib_LTLIBRARIES): Add $(ltlib_gpgme_extra).
+       (system_components_not_extra): New variable.
+       (libgpgme_la_SOURCES, libgpgme_pthread_la_SOURCES,
+       (libgpgme_pth_la_SOURCES): Add $(system_components_not_extra).
+       (libgpgme_glib_la_LDFLAGS, libgpgme_glib_la_DEPENDENCIES,
+       (libgpgme_glib_la_LIBADD, libgpgme_glib_la_CFLAGS)
+       [BUILD_W32_GLIB]: New variables. 
+       * gpgme-config.in (glib): New option.
+       * gpgme.m4 (AM_PATH_GPGME_GLIB): New macro.
+
 2005-11-17  Marcus Brinkmann  <marcus@g10code.de>
 
        * priv-io.h (_gpgme_io_waitpid, _gpgme_io_kill): Removed.
        * data.c (gpgme_data_rewind): Allow to rewind data_type_none.
 
 
- Copyright 2001, 2002, 2003, 2004, 2005 g10 Code GmbH
+ Copyright 2001,2002,2003,2004,2005,2006,2007 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