./x11/libxkbcommon, Library to handle keyboard descriptions

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.7.0, Package name: libxkbcommon-1.7.0, Maintainer: ryoon

xkbcommon is a library to handle keyboard descriptions, including
loading them from disk, parsing them and handling their state. It's
mainly meant for client toolkits, window systems, and other system
applications; currently that includes Wayland, kmscon, GTK+, Qt,
Clutter, and more.


Required to run:
[x11/libxcb] [lang/python37]

Required to build:
[devel/xorg-util-macros] [x11/xkeyboard-config] [x11/xcb-proto] [pkgtools/cwrappers] [x11/xorgproto] [devel/meson]

Master sites:

Filesize: 521.789 KB

Version history: (Expand)


CVS history: (Expand)


   2024-04-06 10:07:18 by Thomas Klausner | Files touched by this commit (1490)
Log message:
* recursive bump for libxkbcommon 1.7.0

Marc Baudoin reported problems with using old binary packages
with the new libkxbcommon, so force everything to 1.7.0
   2024-04-05 12:36:19 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
libxkbcommon: update to 1.7.0.

libxkbcommon 1.7.0 - 2024-03-24
==================

API
---

### New

- Added early detection of invalid encodings and BOM for keymaps, rules & \ 
Compose.
  Also added a hint that the expected encoding must be UTF-8 compatible.

### Fixes

- Updated keysyms using latest [xorgproto] (commit: \ 
`cd33097fc779f280925c6d6bbfbd5150f93ca5bc`):

  For the sake of compatibility, this reintroduces some deleted keysyms and
  postpones the effective deprecation of others, that landed in xkbcommon 1.6.0.

  - Additions (reverted removal):

    - `XKB_KEY_dead_lowline`
    - `XKB_KEY_dead_aboveverticalline`
    - `XKB_KEY_dead_belowverticalline`
    - `XKB_KEY_dead_longsolidusoverlay`

  - The following keysyms names remain deprecated, but are set again (i.e. as
    before xkbcommon 1.6.0) as the reference names for their respective keysyms,
    in order to ensure the transition to the newer names that replace them. This
    affects functions such as `xkb_keymap_key_get_name` and \ 
`xkb_keymap_get_as_string`.

    - `XKB_KEY_masculine`: is deprecated in favor of `XKB_KEY_ordmasculine`
    - `XKB_KEY_guillemotleft`: is deprecated in favor of `XKB_KEY_guillemetleft`
    - `XKB_KEY_guillemotright`: is deprecated in favor of `XKB_KEY_guillemetright`
    - `XKB_KEY_dead_small_schwa`: is deprecated in favor of `XKB_KEY_dead_schwa`
    - `XKB_KEY_dead_capital_schwa`: is deprecated in favor of `XKB_KEY_dead_SCHWA`

  Relevant upstream merge requests: [xorgproto-83], [xorgproto-84].

[xorgproto-83]: \ 
https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/83
[xorgproto-84]: \ 
https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/84

- Keysyms: Fixed inconsistent results in `xkb_keysym_from_name` when used with
  the flag `XKB_KEYSYM_CASE_INSENSITIVE`. In some rare cases it would return a
  keysym with an upper-case name instead of the expected lower-case (e.g.
  `XKB_KEY_dead_A` instead of `XKB_KEY_dead_a`).

- Keysyms: Fixed case mapping for 3 Latin 1 keysyms:

  - `XKB_KEY_ydiaeresis`
  - `XKB_KEY_mu`
  - `XKB_KEY_ssharp`

- Keysyms: Fixed `xkb_keysym_is_modifier` to detect also the following keysyms:

  - `XKB_KEY_ISO_Level5_Shift`
  - `XKB_KEY_ISO_Level5_Latch`
  - `XKB_KEY_ISO_Level5_Lock`

- Prevent recursive includes of keymap components.

- Fixed global default statements `x.y = z;` in wrong scope not raising an error.

  Contributed by Mikhail Gusarov

- Rules: Made newline required after `!include` line.

  Contributed by Mikhail Gusarov.

- Rules: Fixed a bug where variant indexes were ignored with the layout index
  used instead. They are practically always the same, but don't have to be.

  Contributed by @wysiwys.

- Compose: Fixed a segfault with `xkb_compose_table_iterator_next` when used on an
  empty table.

  Contributed by Yuichiro Hanada.

- Compose: Added check to ensure to open only regular files, not e.g. directories.

- Registry: Updated the DTD and always parse the “popularity” attribute.

- Fixed a few memory leaks and keymap symbols parsing.

Tools
-----

### New

- `xkbcli compile-compose`: added new CLI utility to test Compose files.
- `xkbcli interactive-evdev`: added `--verbose` option.
- `xkbcli interactive-x11`: added support for Compose.
- `xkbcli interactive-wayland`: added support for Compose.

### Fixes

- Bash completion: Fixed completion in some corner cases.

Build system
------------

- Fix building with clang when using `-Wl,--gc-sections`.

  Contributed by ppw0.

- Fixed linking using `lld 1.17`.

  Contributed by Baptiste Daroussin.

- Fix building X11 tests on macOS.

- Documentation is no longer built by default; it requires `-Denable-docs=true`.
   2023-11-08 14:21:43 by Thomas Klausner | Files touched by this commit (2377)
Log message:
*: recursive bump for icu 74.1
   2023-10-19 16:57:08 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
libxkbcommon: update to 1.6.0.

libxkbcommon 1.6.0 - 2023-10-08
==================

API
---

### Breaking changes

- *Remove* keysyms that were intended for German T3 layout but are unused:

  - `XKB_KEY_dead_lowline`
  - `XKB_KEY_dead_aboveverticalline`
  - `XKB_KEY_dead_belowverticalline`
  - `XKB_KEY_dead_longsolidusoverlay`

  See the upstream [`xorgproto` \ 
MR](https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/70). \ 
See hereinafter for further changes related to keysyms.

### New

- Add Compose iterator API to iterate the entries in a compose table:

  - `xkb_compose_table_entry_sequence`
  - `xkb_compose_table_entry_keysym`
  - `xkb_compose_table_entry_utf8`
  - `xkb_compose_table_iterator_new`
  - `xkb_compose_table_iterator_free`
  - `xkb_compose_table_iterator_next`

- *Structured log messages* with a message registry. There is an *ongoing* work
  to assign unique identifiers to log messages and add a corresponding error
  index documentation page:

  - The log entries are preceded with an identifier in the form `XKB-NNN`, where
    `NNN` is a decimal number.

  - The log entries can then be parsed with third-party tools, to check for
    specific identifiers.

  - The new documentation page “**Error index**” lists all the kind of error \ 
messages
    with their identifiers. The aim is that each entry could present detailed
    information on the error and how to fix it.

- Add a new warning for numeric keysyms references in XKB files: the preferred
  keysym reference form is its name or its Unicode value, if relevant.

- Add the upper bound `XKB_KEYSYM_MAX` to check valid keysyms.

- Add a warning when loading a keymap using RMLVO with no layout but with the
  variant set. The variant is actually discarded and both layout and variant are
  set to default values, but this was done previously with no warning, confusing
  end users.

- Add support for `modifier_map None { … }`. This feature is missing compared to
  the X11 implementation. It allows to reset the modifier map of a key.

- Update keysyms using latest [xorgproto] (commit: \ 
`1c8128d72df22843a2022576850bc5ab5e3a46ea`):

  - Additions:

    - `XKB_KEY_ordmasculine` ([xorgproto-68])
    - `XKB_KEY_guillemetleft` ([xorgproto-68])
    - `XKB_KEY_guillemetright` ([xorgproto-68])
    - `XKB_KEY_dead_schwa` ([xorgproto-78])
    - `XKB_KEY_dead_SCHWA` ([xorgproto-78])
    - `XKB_KEY_dead_hamza` ([xorgproto-71])
    - `XKB_KEY_XF86EmojiPicker` ([xorgproto-44])
    - `XKB_KEY_XF86Dictate` ([xorgproto-49])
    - `XKB_KEY_XF86CameraAccessEnable` ([xorgproto-82])
    - `XKB_KEY_XF86CameraAccessDisable` ([xorgproto-82])
    - `XKB_KEY_XF86CameraAccessToggle` ([xorgproto-82])
    - `XKB_KEY_XF86NextElement` ([xorgproto-82])
    - `XKB_KEY_XF86PreviousElement` ([xorgproto-82])
    - `XKB_KEY_XF86AutopilotEngageToggle` ([xorgproto-82])
    - `XKB_KEY_XF86MarkWaypoint` ([xorgproto-82])
    - `XKB_KEY_XF86Sos` ([xorgproto-82])
    - `XKB_KEY_XF86NavChart` ([xorgproto-82])
    - `XKB_KEY_XF86FishingChart` ([xorgproto-82])
    - `XKB_KEY_XF86SingleRangeRadar` ([xorgproto-82])
    - `XKB_KEY_XF86DualRangeRadar` ([xorgproto-82])
    - `XKB_KEY_XF86RadarOverlay` ([xorgproto-82])
    - `XKB_KEY_XF86TraditionalSonar` ([xorgproto-82])
    - `XKB_KEY_XF86ClearvuSonar` ([xorgproto-82])
    - `XKB_KEY_XF86SidevuSonar` ([xorgproto-82])
    - `XKB_KEY_XF86NavInfo` ([xorgproto-82])

  - Deprecations:

    - `XKB_KEY_masculine`: use `XKB_KEY_ordmasculine` instead ([xorgproto-68])
    - `XKB_KEY_guillemotleft`: use `XKB_KEY_guillemetleft` instead ([xorgproto-68])
    - `XKB_KEY_guillemotright`: use `XKB_KEY_guillemetright` instead ([xorgproto-68])
    - `XKB_KEY_dead_small_schwa`: use `XKB_KEY_dead_schwa` instead ([xorgproto-78])
    - `XKB_KEY_dead_capital_schwa`: use `XKB_KEY_dead_SCHWA` instead ([xorgproto-78])

  [xorgproto]: https://gitlab.freedesktop.org/xorg/proto/xorgproto
  [xorgproto-44]: \ 
https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/44
  [xorgproto-49]: \ 
https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/49
  [xorgproto-68]: \ 
https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/68
  [xorgproto-71]: \ 
https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/71
  [xorgproto-78]: \ 
https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/78
  [xorgproto-82]: \ 
https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/82

- Ongoing work to improve the documentation about XKB and its V1 format.

### Fixes

- Prevent `xkb_keysym_from_name` to parse out-of-range hexadecimal keysyms.

- Disallow producing NULL character with escape sequences `\0` and `\x0`.

- Prevent overflow of octal escape sequences by making `\400..\777` invalid.

- Prevent interpreting and emitting invalid Unicode encoding forms: surrogates
  are invalid in both UTF-32 and UTF-8.

- `xkb_keymap_new_from_buffer`: Allow for a NULL-terminated keymap string.

- Compose: Increase the limit of possible entries to handle huge Compose files.

Tools
-----

### New

- Add bash completions for `xkbcli` and its subcommands.

- `xkbcli interactive-*`: Add options `--short` to hide some fields.

- `xkbcli interactive-evdev`: Add `--includes` and `--include-defaults` options.

- Add `xkb-check-messages` *experimental* tool (not installed).
  It checks whether given log messages identifiers are supported.

### Fixes

- `xkbcli compile-keymap`: Allow to use without arguments.

- `xkbcli interactive-*`: Always print keycode.

- `xkbcli interactive-*`: Escape control characters for Unicode output, instead of
  printing them as-is, messing the output.

Build system
------------

- Bump required meson to 0.52.0.

- Allow `xkbcommon` to be used as a subproject.

- Improve Windows compilation.
   2023-08-14 07:25:36 by Thomas Klausner | Files touched by this commit (1247)
Log message:
*: recursive bump for Python 3.11 as new default
   2023-06-06 14:42:56 by Taylor R Campbell | Files touched by this commit (1319)
Log message:
Mass-change BUILD_DEPENDS to TOOL_DEPENDS outside mk/.

Almost all uses, if not all of them, are wrong, according to the
semantics of BUILD_DEPENDS (packages built for target available for
use _by_ tools at build-time) and TOOL_DEPEPNDS (packages built for
host available for use _as_ tools at build-time).

No change to BUILD_DEPENDS as used correctly inside buildlink3.

As proposed on tech-pkg:
https://mail-index.netbsd.org/tech-pkg/2023/06/03/msg027632.html
   2023-04-19 10:12:01 by Adam Ciarcinski | Files touched by this commit (2359) | Package updated
Log message:
revbump after textproc/icu update
   2023-01-09 14:20:34 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
libxkbcommon: update to 1.5.0.

libxkbcommon 1.5.0 - 2023-01-02
==================

- Add `xkb_context` flag `XKB_CONTEXT_NO_SECURE_GETENV` and `rxkb_context` flag
  `RXKB_CONTEXT_NO_SECURE_GETENV`.

  xkbcommon uses `getenv_secure()` to obtain environment variables. This flag
  makes xkbcommon use `getenv()` instead.

  This is useful for some clients that have relatively benign capabilities set,
  like CAP_SYS_NICE, that also want to use e.g. the XKB configuration from the
  environment and user configs in XDG_CONFIG_HOME.

  Contributed by Ronan Pigott.

- Fix crash in `xkbcli interactive-wayland` under a compositor which supports
  new versions of the xdg-shell protocol.

  Contributed by Jan Alexander Steffens (heftig).

- Fix some MSVC build issues.

- Fix some issues when including xkbcommon as a meson subproject.

- meson>=0.51 is now required.