Imported Upstream version 1.4.2
[platform/upstream/gpgme.git] / ChangeLog
1 2013-05-28  Werner Koch  <wk@gnupg.org>
2
3         Release 1.4.2.
4         * configure.ac: Set LT version to C21/A10/R0.
5
6         Add convenience macro GPGME_PROTOCOL_OPENPGP.
7         * src/gpgme.h.in (GPGME_PROTOCOL_OPENPGP): New.
8
9 2013-05-23  Werner Koch  <wk@gnupg.org>
10
11         w32: Fix installing of .def file.
12         * src/Makefile.am (install-def-file): Create libdir first.
13
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.
18
19 2013-05-22  Werner Koch  <wk@gnupg.org>
20
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.
24
25 2013-05-22  Werner Koch  <wk@gnupg.org>
26             Kyle L. Huff  <g10bts@curetheitch.com>
27
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.
33
34 2013-05-22  Werner Koch  <wk@gnupg.org>
35
36         gpgme-tool: Allow for symmetric encryption.
37         * src/gpgme-tool.c (gt_sign_encrypt): Pass NULL for recp if no
38         recipients are given.
39
40         tests: Print auditlog in plain text format.
41         * tests/gpgsm/t-verify.c (show_auditlog): Use plain text format.
42
43 2013-05-18  Werner Koch  <wk@gnupg.org>
44
45         Improve C++ compatibility of previous patch.
46         * src/gpgme.h.in: Move gpgme_sssize_t and gpgme_off_t typedefs into
47         the extern "C" scope.
48
49 2013-05-16  Werner Koch  <wk@gnupg.org>
50
51         Make definition of off_t robust against misbehaving w32 toolchains.
52         * configure.ac (NEED__FILE_OFFSET_BITS): Change to define gpgme_off_t
53         and gpgme_ssize_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.
62
63 2013-05-11  Werner Koch  <wk@gnupg.org>
64
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.
73
74 2013-05-08  Werner Koch  <wk@gnupg.org>
75
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.
79
80         Improve debug output of the I/O reader and writer.
81         * src/w32-io.c (reader, writer): Also print file_sock.
82
83 2013-05-06  Werner Koch  <wk@gnupg.org>
84
85         Simplify a debug code function.
86         * src/debug.c (_gpgme_debug): Remove static space string.
87
88 2013-05-01  Werner Koch  <wk@gnupg.org>
89
90         Release 1.4.1.
91         * configure.ac: Bump LT version to C20/A9/R1.
92
93         Disable fd-passing for Apple.
94         * configure.ac: Disable fd-passing by default for Apple.
95
96 2013-04-30  Werner Koch  <wk@gnupg.org>
97
98         Allow reading of long gpgconf output lines.
99         * src/engine-gpgconf.c (gpgconf_read): Rewrite to allow for line
100         lengths up to 64k.
101
102 2013-04-29  Werner Koch  <wk@gnupg.org>
103
104         Fix for i686-w64-mingw32.
105         * configure.ac (NEED__FILE_OFFSET_BITS): Do not define under Windows.
106
107 2013-02-26  Werner Koch  <wk@gnupg.org>
108
109         Release 1.4.0.
110         * configure.ac: Bump LT version to C20/A9/R0.
111
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.
115
116         w32: Hacks for building with 32 bit mingw64.
117         * configure.ac (INSERT__TYPEDEFS_FOR_GPGME_H): Add hacks for 32 bit
118         mingw64.
119         * src/util.h [W32]: Include winsock2.h before windows to make mingw64
120         happy.
121         * src/w32-util.c (_WIN32_IE): Need to use 5.1 for mingw64.
122
123         Improve missing libgpg-error reporting in configure.
124         * configure.ac (NEED_GPG_ERROR_VERSION): New.  Improve reporting for
125         missing libgpg-error.
126
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
138         information.
139         * tests/t-version.c (main): Add option --verbose.
140
141         Update GnuPG related m4 files.
142         * m4/gpg-error.m4: Update from libgpg-error.
143         * m4/libassuan.m4: Update from libassuan.
144
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
150         gnulib (c042abf).
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
154         list.
155
156 2013-02-25  Werner Koch  <wk@gnupg.org>
157
158         Remove included gitlog-to-changelog.
159         * build-aux/gitlog-to-changelog: Remove.
160         * configure.ac (GITLOG_TO_CHANGELOG): Default to just
161         gitlog-to-changelog.
162
163 2013-02-12  Werner Koch  <wk@gnupg.org>
164
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.
171
172         Add public function gpgme_get_pinentry_mode.
173         * src/gpgme.c (gpgme_get_pinentry_mode): New.
174
175 2013-02-07  Werner Koch  <wk@gnupg.org>
176
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.
186
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
193         set_pinentry_mode.
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.
198
199         Add public function gpgme_io_writen.
200         * src/gpgme.c (gpgme_io_read): New.
201
202 2012-11-16  Werner Koch  <wk@gnupg.org>
203
204         Improve parsing of the GIT revision number.
205         * configure.ac (git_revision): Use git rev-parse.
206
207         Fix non-portable use of chmod in autogen.sh.
208         * autogen.sh: Remove option -c from chmod.
209
210 2012-11-15  Werner Koch  <wk@gnupg.org>
211
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.
215
216 2012-10-24  Werner Koch  <wk@gnupg.org>
217
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.
221
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.
226
227         tests: Adhere to the docs and call gpgme_check_version.
228         * tests/t-engine-info.c: Call gpgme_check_version.
229
230 2012-10-19  Werner Koch  <wk@gnupg.org>
231
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.
237
238         Avoid warning about initialized but not used variable.
239         * src/engine-gpgsm.c (gpgsm_set_fd): Do not set DIR if not needed.
240
241 2012-10-11  Werner Koch  <wk@gnupg.org>
242
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.
248
249         gpgme-tool: Change license from LPGLv2+ to GPLv3+
250         * src/gpgme-tool.c: Change license notice.
251
252 2012-10-11  W. Trevor King  <wking@tremily.us>
253
254         gpgme-tool: escape special characters in output XML data (<, >, and &).
255
256         src/gpgme-tool.c (result_xml_escape_replacement, result_xml_escape):
257         New.
258         (result_xml_tag_data): Use result_xml_escape() to escape data.
259         (result_add_error): Use unescaped < and >.
260
261         gpgme-tool: Fix chain_id -> chain-id in KEYLIST XML.
262
263         src/gpgme-tool.c (cmd_keylist): Use <chain-id> instead of <chain_id>.
264
265 2012-09-28  W. Trevor King  <wking@tremily.us>
266
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.
276
277         gpgme-tool: Initialize input_fd and output_fd.
278         * src/gpgme-tool.c (gpgme_server): Initialize input_fd and output_fd.
279
280 2012-09-26  Werner Koch  <wk@gnupg.org>
281
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.
288
289 2012-09-25  Werner Koch  <wk@gnupg.org>
290
291         Document contribution rules.
292         * doc/HACKING (License policy): New.
293         * doc/DCO: New.
294         * AUTHORS: Change maintainer address.
295
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.
303
304 2012-07-28  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
305
306         Add two recent contributors.
307
308         Fix sign error in position calculation for mem_seek.
309         * data-mem.c (mem_seek): Fix sign error in position calculation.
310
311         Allow null context on gpgme_set_locale.
312         * gpgme.c (gpgme_set_locale): Allow CTX to be a null pointer.
313
314 2012-07-13  Werner Koch  <wk@gnupg.org>
315
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.
319
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.
322
323 2012-05-02  Werner Koch  <wk@gnupg.org>
324
325         Release 1.3.2.
326         * configure.ac: Bump LT version to C19/A8/R1.
327
328         * configure.ac (GITLOG_TO_CHANGELOG): Define.
329         * Makefile.am (gen-ChangeLog): Use it.
330
331         Remove unused pth stuff from gpgme-config.
332         * src/gpgme-config.in: Remove unused pth stuff.
333
334         Update signature summary for the case of missing X.509 keys.
335         * src/verify.c (gpgme_op_verify_result): Update summary field.
336
337 2012-04-30  Werner Koch  <wk@gnupg.org>
338
339         Fix timestamp parsing for y2038 hack.
340         * src/conversion.c (_gpgme_parse_timestamp): Set ENDP before year 2038
341         check.
342
343 2012-04-20  W. Trevor King  <wking@drexel.edu>
344
345         .gitignore: flesh out rules and add subdirectory-.gitignores.
346
347 2012-04-13  W. Trevor King  <wking@drexel.edu>
348
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'`.
352
353 2012-04-03  W. Trevor King  <wking@drexel.edu>
354
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.
363
364         uiserver.texi: fix decryption -> encryption typo in PREP_ENCRYPT discussion.
365         * doc/uiserver.texi (PREP_ENCRYPT): Fix documentation.
366
367         Update Werner Koch's distribution signing key in the README.
368         * README: Update signing key.
369
370 2012-03-12  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
371
372         Do not rely on glibc name of syscall.
373         * src/ath.c (ath_self): Use __NR_gettid, not SYS_gettid.
374
375         Update config.guess and config.sub to latest version.
376         * config.guess, config.sub: Update to latest version.
377
378 2012-02-14  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
379
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.
384         Add status-table.c.
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
396         _gpgme_parse_status.
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.
403
404 2012-02-08  Marcus Brinkmann  <mb@g10code.com>
405
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.
415
416         Link the thread test to pthread.
417         * tests/gpg/Makefile.am (t_thread1_LDADD): Add -lpthread.
418
419         Link gpgme-tool directly to libassuan, as it uses its interface.
420         * src/Makefile.am (gpgme_tool_LDADD): Add @LIBASSUAN_LIBS@.
421
422 2012-01-19  Werner Koch  <wk@gnupg.org>
423
424         Support the mingw-w64 toolchain.
425         * autogen.sh (build-w32): Add i686-w64-mingw32 to the toolprefix.
426
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
431         Posix systems.
432         * src/util.h: Include unistd.h.  Redefine ttyname_r depending on
433         REPLACE_TTYNAME_R and put it into the gpgme name space.
434
435         Try to make configure.ac a bit smaller.
436         * configure.ac: Move header checks.
437
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
443         revision.
444         * configure.ac [W32]: Replace BUILD_REVISION by BUILD_NUMBER.
445         * src/versioninfo.rc.in: Ditto.
446
447         Adjust configure.ac for modern autoconf.
448         * configure.ac: Minor cleanups.
449
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.
453
454         Add ttyname_r check macro from gnulib.
455         * m4/gnupg-ttyname.m4: New. Taken from current gnulib.
456
457 2011-12-02  Werner Koch  <wk@gnupg.org>
458
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.
470
471         Rename all ChangeLog files to ChangeLog-2011.
472
473 2011-12-02  Werner Koch  <wk@gnupg.org>
474
475         NB: Changes done before December 1st, 2011 are described in
476         per directory files named ChangeLog-2011.  See doc/HACKING for
477         details.
478
479         -----
480         Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
481                       2010, 2011, 2012, 2013 g10 Code GmbH
482
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
486         preserved.