Update NEWS
[platform/upstream/libxkbcommon.git] / NEWS
1 libxkbcommon 0.8.4 - 2019-02-22
2 ==================
3
4 - Fix build of xkbcommon-x11 static library with meson.
5
6 - Fix building using meson from the tarball generated by autotools.
7
8
9 libxkbcommon 0.8.3 - 2019-02-08
10 ==================
11
12 - Fix build of static libraries with meson.
13   (Future note: xkbcommon-x11 was *not* fixed in this release.)
14
15 - New API:
16   XKB_KEY_XF86MonBrightnessCycle
17   XKB_KEY_XF86RotationLockToggle
18
19
20 libxkbcommon 0.8.2 - 2018-08-05
21 ==================
22
23 - Fix various problems found with fuzzing (see commit messages for
24   more details):
25
26     - Fix a few NULL-dereferences, out-of-bounds access and undefined behavior
27       in the XKB text format parser.
28
29
30 libxkbcommon 0.8.1 - 2018-08-03
31 ==================
32
33 - Fix various problems found in the meson build (see commit messages for more
34   details):
35
36     - Fix compilation on Darwin.
37
38     - Fix compilation of the x11 tests and demos when XCB is installed in a
39       non-standard location.
40
41     - Fix xkbcommon-x11.pc missing the Requires specification.
42
43 - Fix various problems found with fuzzing and Coverity (see commit messages for
44   more details):
45
46     - Fix stack overflow in the XKB text format parser when evaluating boolean
47       negation.
48
49     - Fix NULL-dereferences in the XKB text format parser when some unsupported
50       tokens appear (the tokens are still parsed for backward compatibility).
51
52     - Fix NULL-dereference in the XKB text format parser when parsing an
53       xkb_geometry section.
54
55     - Fix an infinite loop in the Compose text format parser on some inputs.
56
57     - Fix an invalid free() when using multiple keysyms.
58
59 - Replace the Unicode characters for the leftanglebracket and rightanglebracket
60   keysyms from the deprecated LEFT/RIGHT-POINTING ANGLE BRACKET to
61   MATHEMATICAL LEFT/RIGHT ANGLE BRACKET.
62
63 - Reject out-of-range Unicode codepoints in xkb_keysym_to_utf8 and
64   xkb_keysym_to_utf32.
65
66
67 libxkbcommon 0.8.0 - 2017-12-15
68 ==================
69
70 - Added xkb_keysym_to_{upper,lower} to perform case-conversion directly on
71   keysyms. This is useful in some odd cases, but working with the Unicode
72   representations should be preferred when possible.
73
74 - Added Unicode conversion rules for the signifblank and permille keysyms.
75
76 - Fixed a bug in the parsing of XKB key type definitions where the number
77   of levels were determined by the number of level *names*. Keymaps which
78   omit level names were hence miscompiled.
79
80   This regressed in version 0.4.3. Keymaps from xkeyboard-config were not
81   affected since they don't omit level names.
82
83 - New API:
84   xkb_keysym_to_upper()
85   xkb_keysym_to_lower()
86
87
88 libxkbcommon 0.7.2 - 2017-08-04
89 ==================
90
91 - Added a Meson build system as an alternative to existing autotools build
92   system.
93
94   The intent is to remove the autotools build in one of the next releases.
95   Please try to convert to it and report any problems.
96
97   See http://mesonbuild.com/Quick-guide.html for basic usage, the
98   meson_options.txt for the project-specific configuration options,
99   and the PACKAGING file for more details.
100
101   There are some noteworthy differences compared to the autotools build:
102
103   - Feature auto-detection is not performed. By default, all features are
104     enabled (currently: docs, x11, wayland). The build fails if any of
105     the required dependencies are not available. To disable a feature,
106     pass -Denable-<feature>=false to meson.
107
108   - The libraries are either installed as shared or static, as specified
109     by the -Ddefault_library=shared/static option. With autotools, both
110     versions are installed by default.
111
112   - xorg-util-macros is not used.
113
114   - A parser generator (bison/byacc) is always required - there is no
115     fallback to pre-generated output bundled in the tarball, as there is
116     in autotools.
117
118 - Removed Android.mk support.
119
120 - Removed the *-uninstalled.pc pkgconfig files.
121
122 - Ported the interactive-wayland demo program to v6 of the xdg-shell
123   protocol.
124
125 - Added new keysym definitions from xproto.
126
127 - New API:
128   XKB_KEY_XF86Keyboard
129   XKB_KEY_XF86WWAN
130   XKB_KEY_XF86RFKill
131   XKB_KEY_XF86AudioPreset
132
133
134 libxkbcommon 0.7.1 - 2017-01-18
135 ==================
136
137 - Fixed various reported problems when the current locale is tr_TR.UTF-8.
138
139   The function xkb_keysym_from_name() used to perform case-insensitive
140   string comparisons in a locale-dependent way, but required it to to
141   work as in the C/ASCII locale (the so called "Turkish i problem").
142
143   The function is now no longer affected by the current locale.
144
145 - Fixed compilation in NetBSD.
146
147
148 libxkbcommon 0.7.0 - 2016-11-11
149 ==================
150
151 - Added support for different "modes" of calculating consumed modifiers.
152   The existing mode, based on the XKB standard, has proven to be
153   unintuitive in various shortcut implementations.
154
155   A new mode, based on the calculation used by the GTK toolkit, is added.
156   This mode is less eager to declare a modifier as consumed.
157
158 - Added a new interactive demo program using the Wayland protocol.
159   See the PACKAGING file for the new (optional) test dependencies.
160
161 - Fixed a compilation error on GNU Hurd.
162
163 - New API:
164   enum xkb_consumed_mode
165   XKB_CONSUMED_MODE_XKB
166   XKB_CONSUMED_MODE_GTK
167   xkb_state_key_get_consumed_mods2
168   xkb_state_mod_index_is_consumed2
169
170
171 libxkbcommon 0.6.1 - 2016-04-08
172 ==================
173
174 - Added LICENSE to distributed files in tarball releases.
175
176 - Minor typo fix in xkb_keymap_get_as_string() documentation.
177
178
179 libxkbcommon 0.6.0 - 2016-03-16
180 ==================
181
182 - If the XKB_CONFIG_ROOT environment variable is set, it is used as the XKB
183   configuration root instead of the path determined at build time.
184
185 - Tests and benchmarks now build correctly on OSX.
186
187 - An XKB keymap provides a name for each key it defines.  Traditionally,
188   these names are limited to at most 4 characters, and are thus somewhat
189   obscure, but might still be useful (xkbcommon lifts the 4 character limit).
190
191   The new functions xkb_keymap_key_get_name() and xkb_keymap_key_by_name()
192   can be used to get the name of a key or find a key by name.  Note that
193   a key may have aliases.
194
195 - Documentation improvements.
196
197 - New API:
198   xkb_keymap_key_by_name()
199   xkb_keymap_key_get_name()
200
201
202 libxkbcommon 0.5.0 - 2014-10-18
203 ==================
204
205 - Added support for Compose/dead keys in a new module (included in
206   libxkbcommon). See the documentation or the
207   xkbcommon/xkbcommon-compose.h header file for more details.
208
209 - Improved and reordered some sections of the documentation.
210
211 - The doxygen HTML pages were made nicer to read.
212
213 - Most tests now run also on non-linux platforms.
214
215 - A warning is emitted by default about RMLVO values which are not used
216   during keymap compilation, which are most often a user misconfiguration.
217   For example, "terminate:ctrl_alt_backspace" instead of
218   "terminate:ctrl_alt_bksp".
219
220 - Added symbol versioning for libxkbcommon and libxkbcommon-x11.
221   Note: binaries compiled against this and future versions will not be
222   able to link against the previous versions of the library.
223
224 - Removed several compatablity symbols from the binary (the API isn't
225   affected). This affects binaries which
226
227   1. Were compiled against a pre-stable (<0.2.0) version of libxkbcommon, and
228   2. Are linked against the this or later version of libxkbcommon.
229
230   Such a scenario is likely to fail already.
231
232 - If Xvfb is not available, the x11comp test is now correctly skipped
233   instead of hanging.
234
235 - Benchmarks were moved to a separate bench/ directory.
236
237 - Build fixes from OpenBSD.
238
239 - Fixed a bug where key type entries such as "map[None] = Level2;" were
240   ignored.
241
242 - New API:
243   XKB_COMPOSE_*
244   xkb_compose_*
245
246
247 libxkbcommon 0.4.3 - 2014-08-19
248 ==================
249
250 - Fixed a bug which caused xkb_x11_keymap_new_from_device() to misrepresent
251   modifiers for some keymaps.
252
253   https://github.com/xkbcommon/libxkbcommon/issues/9
254
255 - Fixed a bug which caused xkb_x11_keymap_new_from_device() to ignore XKB
256   PrivateAction's.
257
258 - Modifiers are now always fully resolved after xkb_state_update_mask().
259   Previously the given state components were used as-is, without
260   considering virtual modifier mappings.
261   Note: this only affects non-standard uses of xkb_state_update_mask().
262
263 - Added a test for xkbcommon-x11, "x11comp". The test uses the system's
264   Xvfb server and xkbcomp. If they do not exist or fail, the test is
265   skipped.
266
267 - Fixed memory leaks after parse errors in the XKB yacc parser.
268   The fix required changes which are currently incompatible with byacc.
269
270
271 libxkbcommon 0.4.2 - 2014-05-15
272 ==================
273
274 - Fixed a bug where explicitly passing "--enable-x11" to ./configure would
275   in fact disable it (regressed in 0.4.1).
276
277 - Added @since version annotations to the API documentation for everything
278   introduced after the initial stable release (0.2.0).
279
280 - Added a section to the documentation about keysym transformations, and
281   clarified which functions perform a given transformation.
282
283 - XKB files which fail to compile during keymap construction can no longer
284   have any effect on the resulting keymap: changes are only applied when
285   the entire compilation succeeds.
286   Note: this was a minor correctness issue inherited from xkbcomp.
287
288 - Fix an out-of-bounds array access in src/x11/util.c:adopt_atoms()
289   error-handling code.
290   Note: it seems impossible to trigger in the current code since the input
291   size cannot exceed the required size.
292
293
294 libxkbcommon 0.4.1 - 2014-03-27
295 ==================
296
297 - Converted README to markdown and added a Quick Guide to the
298   documentation, which breezes through the most common parts of
299   xkbcommon.
300
301 - Added two new functions, xkb_state_key_get_utf{8,32}(). They
302   combine the operations of xkb_state_key_get_syms() and
303   xkb_keysym_to_utf{8,32}(), and provide a nicer interface for it
304   (espcially for multiple-keysyms-per-level).
305
306 - The xkb_state_key_get_utf{8,32}() functions now apply Control
307   transformation: when the Control modifier is active, the string
308   is converted to an appropriate control character.
309   This matches the behavior of libX11's XLookupString(3), and
310   required by the XKB specification:
311   https://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Control_Modifier
312
313   https://bugs.freedesktop.org/show_bug.cgi?id=75892
314
315 - The consumed modifiers for a key are now calculated similarly
316   to libX11. The previous behavior caused a bug where Shift would
317   not cancel an active Caps Lock.
318
319 - Make xkbcommon-x11 work with the keymap reported by the XQuartz
320   X server.
321
322   https://bugs.freedesktop.org/show_bug.cgi?id=75798
323
324 - Reduce memory usage during keymap compilation some more.
325
326 - New API:
327   xkb_state_key_get_consumed_mods()
328   xkb_state_key_get_utf8()
329   xkb_state_key_get_utf32()
330
331 - Deprecated API:
332   XKB_MAP_COMPILE_PLACEHOLDER, XKB_MAP_NO_FLAGS
333     use XKB_KEYMAP_NO_FLAGS instead.
334
335 - Bug fixes.
336
337
338 libxkbcommon 0.4.0 - 2014-02-02
339 ==================
340
341 - Add a new add-on library, xkbcommon-x11, to support creating keymaps
342   with the XKB X11 protocol, by querying the X server directly.
343   See the xkbcommon/xkbcommon-x11.h header file for more details.
344   This library requires libxcb-xkb >= 1.10, and is enabled by default.
345   It can be disabled with the --disable-x11 configure switch.
346   Distributions are encouraged to split the necessary files for this
347   library (libxkbcommon-x11.so, xkbcommon-x11.pc, xkbcommon/xkbcommon-x11.h)
348   to a separate package, such that the main package does not depend on
349   X11 libraries.
350
351 - Fix the keysym <-> name lookup table to not require huge amounts of
352   relocations.
353
354 - Fix a bug in the keysym <-> name lookup, whereby lookup might fail in
355   some rare cases.
356
357 - Reduce memory usage during keymap compilation.
358
359 - New API:
360   New keysyms from xproto 7.0.25 (German T3 layout keysyms).
361   XKB_MOD_NAME_NUM for the usual NumLock modifier.
362   xkb_x11_* types and functions, XKB_X11_* constants.
363
364
365 libxkbcommon 0.3.2 - 2013-11-22
366 ==================
367
368 - Log messages from the library now look like "xkbcommon: ERROR" by
369   default, instead of xkbcomp-like "Error:   ".
370
371 - Apply capitalization transformation on keysyms in
372   xkb_keysym_get_one_sym(), to match the behavior specified in the XKB
373   specification:
374   https://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Lock_Modifier
375
376 - Support byacc for generating the parser, in addition to Bison.
377
378 - New API:
379   XKB_KEY_XF86AudioMicMute keysym from xproto 7.0.24.
380   XKB_KEYSYM_NO_FLAGS
381   XKB_CONTEXT_NO_FLAGS
382   XKB_MAP_COMPILE_NO_FLAGS
383
384 - Bug fixes.
385
386
387 libxkbcommon 0.3.1 - 2013-06-03
388 ==================
389
390 - Replace the flex scanner with a hand-written one. flex is no longer
391   a build requirement.
392
393 - New API:
394   xkb_keymap_min_keycode()
395   xkb_keymap_max_keycode()
396   xkb_keymap_key_for_each()
397
398
399 libxkbcommon 0.3.0 - 2013-04-01
400 ==================
401
402 - Allow passing NULL to *_unref() functions; do nothing instead of
403   crashing.
404
405 - The functions xkb_keymap_num_levels_for_key() and
406   xkb_keymap_get_syms_by_level() now allow out-of-range values for the
407   'layout' parameter. The functions now wrap the value around the number
408   of layouts instead of failing.
409
410 - The function xkb_keysym_get_name() now types unicode keysyms in
411   uppercase and 0-padding, to match the format used by XKeysymToString().
412
413 - Building Linux-specific tests is no longer attempted on non-Linux
414   environments.
415
416 - The function xkb_keymap_new_from_names() now accepts a NULL value for
417   the 'names' parameter, instead of failing. This is equivalent to passing
418   a 'struct xkb_rule_names' with all fields set to NULL.
419
420 - New API:
421   xkb_keymap_new_from_buffer()
422
423 - Bug fixes.