1 2013-05-28 Werner Koch <wk@gnupg.org>
4 * configure.ac: Set LT version to C21/A10/R0.
6 Add convenience macro GPGME_PROTOCOL_OPENPGP.
7 * src/gpgme.h.in (GPGME_PROTOCOL_OPENPGP): New.
9 2013-05-23 Werner Koch <wk@gnupg.org>
11 w32: Fix installing of .def file.
12 * src/Makefile.am (install-def-file): Create libdir first.
14 Fix libtool 2.4.2 to correctly detect .def files.
15 * build-aux/ltmain.sh (sed_uncomment_deffile): New.
16 (orig_export_symbols): Uncomment def file before testing for EXPORTS.
17 * m4/libtool.m4: Do the same for the generated code.
19 2013-05-22 Werner Koch <wk@gnupg.org>
21 Support --no-encrypt-to also with gpgme_op_encrypt_sign.
22 * src/engine-gpg.c (gpg_encrypt_sign): Support the
23 GPGME_ENCRYPT_NO_ENCRYPT_TO flag.
25 2013-05-22 Werner Koch <wk@gnupg.org>
26 Kyle L. Huff <g10bts@curetheitch.com>
28 Allow symmetric encryption with gpgme_op_encrypt_sign.
29 * src/encrypt-sign.c (encrypt_sym_status_handler): New.
30 (encrypt_sign_start): Handle recp == NULL case.
31 * src/engine-gpg.c (gpg_encrypt_sign): Implement symmetric encryption.
32 * tests/gpg/t-encrypt-sign.c (main): Add a test case for this.
34 2013-05-22 Werner Koch <wk@gnupg.org>
36 gpgme-tool: Allow for symmetric encryption.
37 * src/gpgme-tool.c (gt_sign_encrypt): Pass NULL for recp if no
40 tests: Print auditlog in plain text format.
41 * tests/gpgsm/t-verify.c (show_auditlog): Use plain text format.
43 2013-05-18 Werner Koch <wk@gnupg.org>
45 Improve C++ compatibility of previous patch.
46 * src/gpgme.h.in: Move gpgme_sssize_t and gpgme_off_t typedefs into
49 2013-05-16 Werner Koch <wk@gnupg.org>
51 Make definition of off_t robust against misbehaving w32 toolchains.
52 * configure.ac (NEED__FILE_OFFSET_BITS): Change to define gpgme_off_t
54 (API__OFF_T, API__SSIZE_T): New ac_subst.
55 * src/gpgme.h.in: Replace all ssize_t and off_t by ac_subst macros.
56 * src/assuan-support.c, src/ath-pthread.c, src/ath.c, src/ath.h
57 * src/data-compat.c, src/data-fd.c, src/data-mem.c, src/data-stream.c
58 * src/data-user.c, src/data.c, src/data.h, src/engine-gpgsm.c
59 * src/engine-uiserver.c, src/gpgme-tool.c, src/gpgme.c: Replace off_t
60 by gpgme_off_t and sszie_t by gpgme_ssize_t.
61 * src/ath-pthread.c, src/ath.h: Include gpgme.h.
63 2013-05-11 Werner Koch <wk@gnupg.org>
65 w32: Change the way the I/O threads are cleaned up.
66 * src/w32-io.c (reader_context_s, create_reader)
67 (writer_context_s, create_writer): Rename STOPPED to CLOSE_EV.
68 (reader, writer): Remove setting of STOPPED. Wait for CLOSE_EV and
69 then release the context.
70 (destroy_reader, destroy_writer): Do not wait but set the CLOSE_EV.
71 (kill_reader, kill_writer): Remove.
72 (_gpgme_io_close): Add code from kill_reader and kill_writer.
74 2013-05-08 Werner Koch <wk@gnupg.org>
76 Fix hang in socket closing.
77 * src/w32-io.c (destroy_reader): Call shutdown.
78 (reader): Do not print an error in the shutdown case.
80 Improve debug output of the I/O reader and writer.
81 * src/w32-io.c (reader, writer): Also print file_sock.
83 2013-05-06 Werner Koch <wk@gnupg.org>
85 Simplify a debug code function.
86 * src/debug.c (_gpgme_debug): Remove static space string.
88 2013-05-01 Werner Koch <wk@gnupg.org>
91 * configure.ac: Bump LT version to C20/A9/R1.
93 Disable fd-passing for Apple.
94 * configure.ac: Disable fd-passing by default for Apple.
96 2013-04-30 Werner Koch <wk@gnupg.org>
98 Allow reading of long gpgconf output lines.
99 * src/engine-gpgconf.c (gpgconf_read): Rewrite to allow for line
102 2013-04-29 Werner Koch <wk@gnupg.org>
104 Fix for i686-w64-mingw32.
105 * configure.ac (NEED__FILE_OFFSET_BITS): Do not define under Windows.
107 2013-02-26 Werner Koch <wk@gnupg.org>
110 * configure.ac: Bump LT version to C20/A9/R0.
112 Enable FD passing and thus building of the UI-server.
113 * configure.ac: Make --enable-fd-passing the default.
114 * src/engine-uiserver.c (_gpgme_engine_ops_uiserver): Syntax fix.
116 w32: Hacks for building with 32 bit mingw64.
117 * configure.ac (INSERT__TYPEDEFS_FOR_GPGME_H): Add hacks for 32 bit
119 * src/util.h [W32]: Include winsock2.h before windows to make mingw64
121 * src/w32-util.c (_WIN32_IE): Need to use 5.1 for mingw64.
123 Improve missing libgpg-error reporting in configure.
124 * configure.ac (NEED_GPG_ERROR_VERSION): New. Improve reporting for
125 missing libgpg-error.
127 Change the various version numbers to the new scheme.
128 * configure.ac: Rename my_foo variables to mym4_foo variables to make
129 clear that they are processed by m4.
130 (VERSION_NUMBER): New ac_subst.
131 (AH_BOTTOM): Add CRIGHTBLURB macro.
132 (BUILD_REVISION, BUILD_FILEVERSION, BUILD_TIMESTAMP): Change them to
133 work similar to libgpg-error et al.
134 * src/versioninfo.rc.in: Remove use of BUILD_NUMBER and get it in line
135 with gpg-error et al.
136 * src/version.c (cright_blurb): New.
137 (gpgme_check_version_internal): Add magic to display the above
139 * tests/t-version.c (main): Add option --verbose.
141 Update GnuPG related m4 files.
142 * m4/gpg-error.m4: Update from libgpg-error.
143 * m4/libassuan.m4: Update from libassuan.
145 Update helper scripts.
146 * configure.ac: Use AC_CONFIG_AUX_DIR. Remove args from
147 AM_INIT_AUTOMAKE. Replace AM_CONFIG_HEADER by AC_CONFIG_HEADER.
148 * compile, config.guess, config.sub, depcomp, install-sh, ltmain.sh
149 * mkinstalldirs, texinfo.texi: Move to build-aux/ and update from
151 * build-aux/mdate-sh, build-aux/missing: Install via automake -a -c.
152 Update autogen.sh for changed config dir.
153 * autogen.sh: Adjust for scripts dir change. Update W32 toolprefix
156 2013-02-25 Werner Koch <wk@gnupg.org>
158 Remove included gitlog-to-changelog.
159 * build-aux/gitlog-to-changelog: Remove.
160 * configure.ac (GITLOG_TO_CHANGELOG): Default to just
163 2013-02-12 Werner Koch <wk@gnupg.org>
165 Add macro GPGME_VERSION_NUMBER.
166 * src/gpgme.h.in (GPGME_VERSION_NUMBER): New.
167 * configure.ac (my_version_major, my_version_minor)
168 (my_version_micro): New m4 macros.
169 (my_version): Build from new m4 macros.
170 (VERSION_NUMBER): New ac_subst.
172 Add public function gpgme_get_pinentry_mode.
173 * src/gpgme.c (gpgme_get_pinentry_mode): New.
175 2013-02-07 Werner Koch <wk@gnupg.org>
177 gpgme_tool: Support GPG's new pinentry-mode.
178 * src/gpgme-tool.c (log_error): Do not always print the error source.
179 (gt_set_pinentry_mode): New.
180 (server_passphrase_cb): New.
181 (cmd_pinentry_mode): New.
182 (register_commands): Add cmd_pinentry_mode.
183 (options): Add option --gpg-binary.
184 (struct args): Add field gpg-binary.
185 (parse_options, main): Implement that option.
187 Add public function gpgme_set_pinentry_mode.
188 * src/gpgme.c (gpgme_set_pinentry_mode): New.
189 * src/gpgme.h.in (gpgme_pinentry_t): New.
190 (gpgme_set_pinentry_mode): New.
191 * src/context.h (struct gpgme_context): Add field pinentry_mode.
192 * src/engine-backend.h (struct engine_ops): Add field
194 * src/engine-gpg.c (struct engine_gpg): Add field pinentry_mode.
195 (build_argv): Implement pinentry_mode.
196 (gpg_set_pinentry_mode): New.
197 (_gpgme_engine_ops_gpg): Register gpg_set_pinentry_mode.
199 Add public function gpgme_io_writen.
200 * src/gpgme.c (gpgme_io_read): New.
202 2012-11-16 Werner Koch <wk@gnupg.org>
204 Improve parsing of the GIT revision number.
205 * configure.ac (git_revision): Use git rev-parse.
207 Fix non-portable use of chmod in autogen.sh.
208 * autogen.sh: Remove option -c from chmod.
210 2012-11-15 Werner Koch <wk@gnupg.org>
212 Make _gpgme_encode_percent_string work for memory buffers.
213 * src/conversion.c (D_gpgme_encode_percent_string): Remove stray
214 semicolon. Reported by Xi Wang.
216 2012-10-24 Werner Koch <wk@gnupg.org>
218 Make local variables configure hack more robust.
219 * configure.ac (emacs_local_vars_begin): Use extra m4 quoting so that
220 newer Emscasen won't take it up as Local Variables for this file.
222 Fix ttyname problem on Android.
223 * configure.ac: Define macro and conditional HAVE_ANDROID_SYSTEM.
224 * m4/gnupg-ttyname.m4: Force use of replacement on Android.
225 * src/ttyname_r.c: Ditto.
227 tests: Adhere to the docs and call gpgme_check_version.
228 * tests/t-engine-info.c: Call gpgme_check_version.
230 2012-10-19 Werner Koch <wk@gnupg.org>
232 Trace the use of GPG_ERR_INV_ENGINE.
233 * src/debug.h: Include "gpgme.h"
234 (_gpgme_trace_gpgme_error): New.
235 (trace_gpg_error): New macro. Use it in all files where we return
236 GPG_ERR_INV_ENGINE; also "include debug.h" as needed.
238 Avoid warning about initialized but not used variable.
239 * src/engine-gpgsm.c (gpgsm_set_fd): Do not set DIR if not needed.
241 2012-10-11 Werner Koch <wk@gnupg.org>
243 gpgme-tool: Use membuf functions to build up strings.
244 * src/gpgme-tool.c (clear_membuf, init_membuf, put_membuf)
245 (put_membuf_str, get_membuf, peek_membuf): Add membuf functions.
246 Take from GnuPG master's common/membuf.[ch] and patch for our use.
247 (result_xml_escape): Rewrite using new functions.
249 gpgme-tool: Change license from LPGLv2+ to GPLv3+
250 * src/gpgme-tool.c: Change license notice.
252 2012-10-11 W. Trevor King <wking@tremily.us>
254 gpgme-tool: escape special characters in output XML data (<, >, and &).
256 src/gpgme-tool.c (result_xml_escape_replacement, result_xml_escape):
258 (result_xml_tag_data): Use result_xml_escape() to escape data.
259 (result_add_error): Use unescaped < and >.
261 gpgme-tool: Fix chain_id -> chain-id in KEYLIST XML.
263 src/gpgme-tool.c (cmd_keylist): Use <chain-id> instead of <chain_id>.
265 2012-09-28 W. Trevor King <wking@tremily.us>
267 gpgme-tool: Return more detailed XML from KEYLIST.
268 src/gpgme-tool.c (cmd_keylist): Convert output from a list of
269 to more detailed XML.
270 (xml_preamble1, xml_preamble2, xml_end): Make global.
271 (result_add_protocol, result_add_validity): New functions for
272 generating XML from GPGME types.
273 (result_add_string): Treat NULL strings as "".
274 (result_xml_tag_data): Make 'data' a 'const char' so we can use the
275 value returned by gpgme_get_protocol_name directly.
277 gpgme-tool: Initialize input_fd and output_fd.
278 * src/gpgme-tool.c (gpgme_server): Initialize input_fd and output_fd.
280 2012-09-26 Werner Koch <wk@gnupg.org>
282 gpgme-tool: Fix handling of file descriptors.
283 * src/gpgme-tool.c (server_reset_fds): Use close/CloseHandle instead
284 of the assuan close functions.
285 (_cmd_decrypt_verify, _cmd_sign_encrypt, cmd_verify, cmd_import)
286 (cmd_export, cmd_genkey, cmd_getauditlog): Use SERVER object instead
287 of assuan_get_*_fd functions.
289 2012-09-25 Werner Koch <wk@gnupg.org>
291 Document contribution rules.
292 * doc/HACKING (License policy): New.
294 * AUTHORS: Change maintainer address.
296 Add gpgme_set_global_flag to help debugging.
297 * src/gpgme.c (gpgme_set_global_flag): New.
298 * src/gpgme.h.in (gpgme_set_global_flag): New.
299 * src/gpgme.def, src/libgpgme.vers: Add new public function.
300 * src/debug.c (envvar_override): New.:
301 (_gpgme_debug_set_debug_envvar): New.
302 (debug_init): Take ENVVAR_OVERRIDE in account.
304 2012-07-28 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
306 Add two recent contributors.
308 Fix sign error in position calculation for mem_seek.
309 * data-mem.c (mem_seek): Fix sign error in position calculation.
311 Allow null context on gpgme_set_locale.
312 * gpgme.c (gpgme_set_locale): Allow CTX to be a null pointer.
314 2012-07-13 Werner Koch <wk@gnupg.org>
316 Do not include the removed file status-table.h.
317 * src/engine-uiserver.c: Remove status-table.h which is not anymore
318 built. Fixes bug#1412.
320 Make handling of new conf values more robust (bug#1413).
321 * src/engine-gpgconf.c (arg_to_data): Allow for NULL as value.string.
323 2012-05-02 Werner Koch <wk@gnupg.org>
326 * configure.ac: Bump LT version to C19/A8/R1.
328 * configure.ac (GITLOG_TO_CHANGELOG): Define.
329 * Makefile.am (gen-ChangeLog): Use it.
331 Remove unused pth stuff from gpgme-config.
332 * src/gpgme-config.in: Remove unused pth stuff.
334 Update signature summary for the case of missing X.509 keys.
335 * src/verify.c (gpgme_op_verify_result): Update summary field.
337 2012-04-30 Werner Koch <wk@gnupg.org>
339 Fix timestamp parsing for y2038 hack.
340 * src/conversion.c (_gpgme_parse_timestamp): Set ENDP before year 2038
343 2012-04-20 W. Trevor King <wking@drexel.edu>
345 .gitignore: flesh out rules and add subdirectory-.gitignores.
347 2012-04-13 W. Trevor King <wking@drexel.edu>
349 status-table.c: include string.h for strcmp.
350 * status-table.c: include string.h to avoid `warning: implicit
351 declaration of function 'strcmp'`.
353 2012-04-03 W. Trevor King <wking@drexel.edu>
355 gpgme-tool: add help messages for a number of commands.
356 * src/gpgme-tool.c (hlp_engine, hlp_sub_protocol, hlp_armor, hlp_textmode,
357 hlp_include_certs, hlp_keylist_mode, hlp_input, hlp_output, hlp_message,
358 hlp_recipient, hlp_signer, hlp_signers_clear, hlp_decrypt, hlp_decrypt_verify,
359 hlp_encrypt, hlp_sign_encrypt, hlp_sign, hlp_verify, hlp_import): New strings.
360 (hlp_protocol): Fix typo.
361 (register_commands): Add documentation strings.
362 (doc): Mention Assuan.
364 uiserver.texi: fix decryption -> encryption typo in PREP_ENCRYPT discussion.
365 * doc/uiserver.texi (PREP_ENCRYPT): Fix documentation.
367 Update Werner Koch's distribution signing key in the README.
368 * README: Update signing key.
370 2012-03-12 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
372 Do not rely on glibc name of syscall.
373 * src/ath.c (ath_self): Use __NR_gettid, not SYS_gettid.
375 Update config.guess and config.sub to latest version.
376 * config.guess, config.sub: Update to latest version.
378 2012-02-14 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
380 Rework status table to be less dynamically generated.
381 * src/Makefile.am (EXTRA_DIST): Remove mkstatus.
382 (BUILT_SOURCE, MOSTLYCLEANFILES): Remove.
383 (main_sources): Remove status-table.h, extra-stati.h.
385 (status-table.h): Remove rules for built source.
386 * src/decrypt.c: Don't include extra-stati.h.
387 * src/engine-gpg.c: Don't include status-table.h.
388 (status_cmp): Remove function.
389 (read_status): Use _gpgme_parse_status.
390 * src/engine-gpgsm.c: Don't include status-table.h.
391 (status_cmp, parse_status): Remove function.
392 (gpgsm_assuan_simple_command, status_handler): Use _gpgme_parse_status.
393 * src/engine-uiserver.c: Don't include status-table.h.
394 (status_cmp, parse_status): Remove function.
395 (uiserver_assuan_simple_command, status_handler): Use
397 * src/gpgme.h.in (gpgme_status_code_t): Add
398 GPGME_STATUS_DECRYPTION_INFO.
399 * src/util.h (_gpgme_status_init,_gpgme_parse_status): New declaration.
400 * src/status-table.c: New file.
401 * src/extra-stati.h, src/mkstatus: Files removed.
402 * version.c (do_subsystem_inits): Call _gpgme_status_init.
404 2012-02-08 Marcus Brinkmann <mb@g10code.com>
406 Use gpgme interface for error handling to avoid linking with gpg-error.
407 * tests/t-data.c, tests/run-export.c, tests/run-keylist.c,
408 tests/run-support.h, tests/run-verify.c, tests/gpg/t-decrypt-verify.c,
409 tests/gpg/t-edit.c, tests/gpg/t-eventloop.c, tests/gpg/t-keylist-sig.c,
410 tests/gpg/t-keylist.c, tests/gpg/t-support.h, tests/gpg/t-trustlist.c,
411 tests/gpg/t-verify.c, tests/gpg/t-wait.c, tests/gpgsm/cms-decrypt.c,
412 tests/gpgsm/cms-keylist.c, tests/gpgsm/t-keylist.c,
413 tests/gpgsm/t-support.h, tests/gpgsm/t-verify.c,
414 tests/opassuan/t-command.c: Use gpgme interface for gpg-error functions.
416 Link the thread test to pthread.
417 * tests/gpg/Makefile.am (t_thread1_LDADD): Add -lpthread.
419 Link gpgme-tool directly to libassuan, as it uses its interface.
420 * src/Makefile.am (gpgme_tool_LDADD): Add @LIBASSUAN_LIBS@.
422 2012-01-19 Werner Koch <wk@gnupg.org>
424 Support the mingw-w64 toolchain.
425 * autogen.sh (build-w32): Add i686-w64-mingw32 to the toolprefix.
427 Fix Solaris problems with ttyname_r.
428 * m4/gnupg-ttyname.m4: New. Based on ttyname_r from gnulib.
429 * src/ttyname_r.c (_gpgme_ttyname_r): Rename from ttyname_r.
430 Implement hacks required for Solaris and possible other non-fully
432 * src/util.h: Include unistd.h. Redefine ttyname_r depending on
433 REPLACE_TTYNAME_R and put it into the gpgme name space.
435 Try to make configure.ac a bit smaller.
436 * configure.ac: Move header checks.
438 For W32 use a build number instead of abbreviated commit id.
439 We would need to use a shortened commit id so that it fits into an 16
440 bit Windows variable. Further it is a random number and not something
441 increasing. Thus a build number made up from the day of the year and
442 the hour is much more useful to describe a build number for a specific
444 * configure.ac [W32]: Replace BUILD_REVISION by BUILD_NUMBER.
445 * src/versioninfo.rc.in: Ditto.
447 Adjust configure.ac for modern autoconf.
448 * configure.ac: Minor cleanups.
450 Update to libtool 2.4.2.
451 * ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4,
452 * m4/lt~obsolete.m4: Update.
454 Add ttyname_r check macro from gnulib.
455 * m4/gnupg-ttyname.m4: New. Taken from current gnulib.
457 2011-12-02 Werner Koch <wk@gnupg.org>
459 Generate the ChangeLog from commit logs.
460 * build-aux/gitlog-to-changelog: New script. Taken from gnulib.
461 * build-aux/git-log-fix: New file.
462 * build-aux/git-log-footer: New file.
463 * build-aux/git-hook/commit-msg: New script.
464 * doc/HACKING: New file.
465 * ChangeLog: New file.
466 * Makefile.am (EXTRA_DIST): Add new files.
467 (gen-ChangeLog): New.
468 (dist-hook): Run gen-ChangeLog.
469 * autogen.sh: Install commit-msg hook for git.
471 Rename all ChangeLog files to ChangeLog-2011.
473 2011-12-02 Werner Koch <wk@gnupg.org>
475 NB: Changes done before December 1st, 2011 are described in
476 per directory files named ChangeLog-2011. See doc/HACKING for
480 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
481 2010, 2011, 2012, 2013 g10 Code GmbH
483 Copying and distribution of this file and/or the original GIT
484 commit log messages, with or without modification, are
485 permitted provided the copyright notice and this notice are