./x11/libxkbcommon, Library to handle keyboard descriptions

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


Branch: CURRENT, Version: 1.0.1, Package name: libxkbcommon-1.0.1, 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:

SHA1: c3eb29be002785f51f74614bbd61fd64fce7812d
RMD160: 2bbad312d88b4b7bc1f89490ef44b62f52634803
Filesize: 422.551 KB

Version history: (Expand)


CVS history: (Expand)


   2020-09-16 09:33:24 by Thomas Klausner | Files touched by this commit (1)
Log message:
libxkbcommon: fix PLIST for Linux

add xkbcli-interactive-evdev to PLIST.Linux
This utility is only built when linux/input.h is available.

From Michael Forney via tech-pkg.
   2020-09-13 11:25:38 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
libxkbcommon: update to 1.0.1.

libxkbcommon 1.0.1 - 2020-09-11
==================

- Fix the tool-option-parsing test failing.

- Remove requirement for pytest in the tool-option-parsing test.

- Make the table output of `xkbcli how-to-type` aligned.

- Some portability and test isolation fixes.

libxkbcommon 1.0.0 - 2020-09-05
==================

Note: this release is API and ABI compatible with previous releases -- the
major version bump is only an indication of stability.

- Add libxkbregistry as configure-time optional library. libxkbregistry is a C
  library that lists available XKB models, layouts and variants for a given
  ruleset. This is a separate library (libxkbregistry.so, pkgconfig file
  xkbregistry.pc) and aimed at tools that provide a listing of available
  keyboard layouts to the user. See the Documentation for details on the API.

  Contributed by Peter Hutterer <@who-t.net>.

- Better support custom user configuration:

    * Allow including XKB files from other paths.

      Previously, a 'symbols/us' file in path A would shadow the same file in
      path B. This is suboptimal, we rarely need to hide the system files - we
      care mostly about *extending* them. By continuing to check other lookup
      paths, we make it possible for a XDG_CONFIG_HOME/xkb/symbols/us file to
      have sections including those from /usr/share/X11/xkb/symbols/us.

      Note that this is not possible for rules files, which need to be manually
      controlled to get the right bits resolved.

    * Add /etc/xkb as extra lookup path for system data files.

      This completes the usual triplet of configuration locations available for
      most processes:
      - vendor-provided data files in /usr/share/X11/xkb
      - system-specific data files in /etc/xkb
      - user-specific data files in $XDG_CONFIG_HOME/xkb

      The default lookup order user, system, vendor, just like everything else
      that uses these conventions.

      For include directives in rules files, the '%E' resolves to that path.

    * Add a new section to the documentation for custom user configuration.

  Contributed by Peter Hutterer <@who-t.net>.

- Add an `xkbcli` command-line utility.

  This tool offers various subcommands for introspection and debugging.
  Currently the available subcommands are:

  list
    List available rules, models, layouts, variants and options

  interactive-wayland
    Interactive debugger for XKB keymaps for Wayland

  interactive-x11
    Interactive debugger for XKB keymaps for X11

  interactive-evdev
    Interactive debugger for XKB keymaps for evdev (Linux)

  compile-keymap
    Compile an XKB keymap

  how-to-type
    See separate entry below.

  See the manpages for usage information.

  Contributed by Peter Hutterer <@who-t.net>.

- Add `xkb_utf32_to_keysym()` to translate a Unicode codepoint to a keysym.
  When a special keysym (`XKB_KEY_` constant) for the codepoint exists, it is
  returned, otherwise the direct encoding is used, if permissible.

  Contributed by Jaroslaw Kubik <@froglogic.com>.

- Add `xkb_keymap_key_get_mods_for_level()` which retrieves sets of modifiers
  which produce a given shift level in a given key+layout.

  Contributed by Jaroslaw Kubik <@froglogic.com>.

- Add `xkbcli how-to-type` command, which, using `xkb_utf32_to_keysym()`
  and `xkb_keymap_key_get_mods_for_level()` and other APIs, prints out all
  the ways to produce a given keysym.

  For example, how to type `?` (codepoint 63) in a us,de keymap?

    $ xkbcli how-to-type --layout us,de 63 | column -ts $'\t'
    keysym: question (0x3f)
    KEYCODE  KEY NAME  LAYOUT#  LAYOUT NAME   LEVEL#  MODIFIERS
    20       AE11      2        German        2       [ Shift ]
    20       AE11      2        German        2       [ Shift Lock ]
    61       AB10      1        English (US)  2       [ Shift ]

- Add a new section to the documentation describing the format of the XKB
  rules file.

- Search for Compose in $XDG_CONFIG_HOME/XCompose (fallback to
  ~/.config/XCompose) before trying $HOME/.XCompose.

  Note that libX11 still only searches in $HOME/.XCompose.

  Contributed by Emmanuel Gil Peyrot <@linkmauve.fr>.

- Bump meson requirement to >= 0.49.0.

- Fix build with byacc.

- Fix building X11 tests on PE targets.

  Contributed by Jon Turney <@dronecode.org.uk>

- The tests no longer rely on bash, only Python (which is already used by
  meson).

- New API:
  xkb_utf32_to_keysym
  xkb_keymap_key_get_mods_for_level
  XKB_KEY_XF86FullScreen
   2020-01-27 11:53:28 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
libxkbcommon: update to 0.10.0.

libxkbcommon 0.10.0 - 2020-01-18
===================

- (security) Fix quadratic complexity in the XKB file parser. See commit
  message 7c42945e04a2107827a057245298dedc0475cc88 for details.

- Add $XDG_CONFIG_HOME/xkb to the default search path. If $XDG_CONFIG_HOME
  is not set, $HOME/.config/xkb is used. If $HOME is not set, the path is not
  added.

  The XDG path is looked up before the existing default search path $HOME/.xkb.

  Contributed by Peter Hutterer <@who-t.net>.

- Add support for include statements in XKB rules files.

  This is a step towards making local XKB customizations more tenable and
  convenient, without modifying system files.

  You can now include other rules files like this:

      ! include %S/evdev

  Two directives are supported, %H to $HOME and %S for the system-installed
  rules directory (usually /usr/share/X11/xkb/rules).

  See commit message ca033a29d2ca910fd17b1ae287cb420205bdddc8 and
  doc/rules-format.txt in the xkbcommon source code for more information.

  Contributed by Peter Hutterer <@who-t.net>.

- Downgrade "Symbol added to modifier map for multiple modifiers" log to a
  warning.

  This error message was too annoying to be shown by default. When working on
  keymaps, set `XKB_LOG_LEVEL=debug XKB_LOG_VERBOSITY=10` to see all possible
  messages.

- Support building on Windows using the meson MSVC backend.

  Contributed by Adrian Perez de Castro <@igalia.com>.

- Fix bug where the merge mode only applied to the first vmod in a
  `virtual_modifiers` statement. Given

      augment virtual_modifiers NumLock,Alt,LevelThree

  Previously it was incorrectly treated as

      augment virtual_modifiers NumLock;
      virtual_modifiers Alt;
      virtual_modifiers LevelThree;

  Now it is treated as

      augment virtual_modifiers NumLock;
      augment virtual_modifiers Alt;
      augment virtual_modifiers LevelThree;

- Reject interpret modifier predicate with more than one value. Given

      interpret ISO_Level3_Shift+AnyOf(all,extraneous) { ... };

  Previously, extraneous (and further) was ignored. Now it's rejected.

- Correctly handle capitalization of the ssharp keysym.

- Speed up and improve the internal `xkeyboard-config` tool. This tool
  compiles all layout/variant combinations in the xkeyboard-config dataset
  and reports any issues it finds.

  Contributed by Peter Hutterer <@who-t.net>.

- Speed up "atoms" (string interning). This code goes back at least to \ 
X11R1
  (released 1987).
   2019-11-06 13:51:55 by Thomas Klausner | Files touched by this commit (4) | Package updated
Log message:
libxkbcommon: update to 0.9.1.

libxkbcommon 0.9.1 - 2019-10-19
==================

- Fix context creation failing when run in privileged processes as defined by
  `secure_getenv(3)`, e.g. GDM.

libxkbcommon 0.9.0 - 2019-10-19
==================

- Move ~/.xkb to before XKB_CONFIG_ROOT (the system XKB path, usually
  /usr/share/X11/xkb) in the default include path. This enables the user
  to have full control of the keymap definitions, instead of only augmenting
  them.

- Remove the Autotools build system. Use the meson build system instead.

- Fix invalid names used for levels above 8 when dumping keymaps. Previously,
  e.g. "Level20" was dumped, but only up to "Level8" is \ 
accepted by the
  parser. Now "20" is dumped.

- Change level references to always be dumped as e.g. "5" instead of \ 
"Level5".

  Change group references to always be dumped capitalized e.g. \ 
"Group3" instead
  of "group3". Previously it was inconsistent.

  These changes affect the output of xkb_keymap_get_as_string().

- Fix several build issues on macOS/Darwin, Solaris, NetBSD, cross compilation.

- Port the interactive-wayland test program to the stable version of xdg-shell.
   2019-02-24 15:59:07 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
libxkbcommon: update to 0.8.4.

libxkbcommon 0.8.4 - 2019-02-22
==================

- Fix build of xkbcommon-x11 static library with meson.

- Fix building using meson from the tarball generated by autotools.
   2019-02-13 23:24:57 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
libxkbcommon: update to 0.8.3.

libxkbcommon 0.8.3 - 2019-02-08
==================

- Fix build of static libraries with meson.

- New API:
  XKB_KEY_XF86MonBrightnessCycle
  XKB_KEY_XF86RotationLockToggle
   2018-08-16 14:21:44 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
libxkbcommon: update to 0.8.2.

libxkbcommon 0.8.2 - 2018-08-05
==================

- Fix various problems found with fuzzing (see commit messages for
  more details):

    - Fix a few NULL-dereferences, out-of-bounds access and undefined behavior
      in the XKB text format parser.

libxkbcommon 0.8.1 - 2018-08-03
==================

- Fix various problems found in the meson build (see commit messages for more
  details):

    - Fix compilation on Darwin.

    - Fix compilation of the x11 tests and demos when XCB is installed in a
      non-standard location.

    - Fix xkbcommon-x11.pc missing the Requires specification.

- Fix various problems found with fuzzing and Coverity (see commit messages for
  more details):

    - Fix stack overflow in the XKB text format parser when evaluating boolean
      negation.

    - Fix NULL-dereferences in the XKB text format parser when some unsupported
      tokens appear (the tokens are still parsed for backward compatibility).

    - Fix NULL-dereference in the XKB text format parser when parsing an
      xkb_geometry section.

    - Fix an infinite loop in the Compose text format parser on some inputs.

    - Fix an invalid free() when using multiple keysyms.

- Replace the Unicode characters for the leftanglebracket and rightanglebracket
  keysyms from the deprecated LEFT/RIGHT-POINTING ANGLE BRACKET to
  MATHEMATICAL LEFT/RIGHT ANGLE BRACKET.

- Reject out-of-range Unicode codepoints in xkb_keysym_to_utf8 and
  xkb_keysym_to_utf32.
   2018-01-10 11:43:27 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
libxkbcommon: update to 0.8.0.

libxkbcommon 0.8.0 - 2017-12-15
==================

- Added xkb_keysym_to_{upper,lower} to perform case-conversion directly on
  keysyms. This is useful in some odd cases, but working with the Unicode
  representations should be preferred when possible.

- Added Unicode conversion rules for the signifblank and permille keysyms.

- Fixed a bug in the parsing of XKB key type definitions where the number
  of levels were determined by the number of level *names*. Keymaps which
  omit level names were hence miscompiled.

  This regressed in version 0.4.3. Keymaps from xkeyboard-config were not
  affected since they don't omit level names.

- New API:
  xkb_keysym_to_upper()
  xkb_keysym_to_lower()