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