From afb26e7df9090a0b765eb294b6efff448f763b6f Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 12 May 2020 14:09:50 +1000 Subject: Add libxkbregistry to query available RMLVO This library is the replacement for clients parsing evdev.xml directly. Instead, they should use the API here so that in the future we may even be able to swap evdev.xml for a more suitable data format. The library parses through evdev.xml (using libxml2) and - if requested - through evdev.extras.xml as well. The merge approach is optimised for the default case where we have a system-installed rules XML and another file in $XDG_CONFIG_DIR that adds a few entries. We load the system file first, then append any custom ones to that. It's not possible to overwrite the MLVO list provided by the system files - if you want to do that, get the change upstream. XML validation is handled through the DTD itself which means we only need to check for a nonempty name, everything else the DTD validation should complain about. The logging system is effectively identical to xkbcommon. Signed-off-by: Peter Hutterer --- PACKAGING | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'PACKAGING') diff --git a/PACKAGING b/PACKAGING index 85488e9..a47be77 100644 --- a/PACKAGING +++ b/PACKAGING @@ -1,5 +1,6 @@ -libxkbcommon consists of two shared libraries, libxkbcommon (the main -library) and libxkbcommon-x11 (an addon library for XCB clients). +libxkbcommon consists of three shared libraries, libxkbcommon (the main +library), libxkbcommon-x11 (an addon library for XCB clients) and libxkbregistry +(a library to list available RMLVO options). The files for libxkbcommon-x11 are: libxkbcommon-x11.a libxkbcommon-x11.so* xkbcommon/xkbcommon-x11.h @@ -8,13 +9,20 @@ The files for libxkbcommon-x11 are: libxkbcommon-x11 can be disabled with -Denable-x11=false (see `meson configure build` for other options/variables). +The files for libxkbregistry are: + libxkbregistry.a libxkbregistry.so* xkbcommon/xkbregistry.h + xkbregistry.map xkbregistry.pc + +libxkbregistry can be disabled with -Denable-xkbregistry=false (see +`meson configure build` for other options/variables). + Dependencies for libxkbcommon: - C compiler, meson, pkg-config, libc, bash, grep, sed. - (build) bison (preferred), win_bison or byacc>=20141006. byacc must be configured with --enable-btyacc. -- (build optional, runtime) xkeyboard-config. +- (build optional, runtime required) xkeyboard-config. During build, for automatically detecting the value of -Dxkb-config-root instead of guessing (/usr/share/X11/xkb). During runtime, not strictly needed, but most users of the library @@ -41,6 +49,16 @@ Dependencies for libxkbcommon-x11 tests: - xkbcomp, Xvfb. If they are not available, the relevant tests are skipped. +Dependencies for libxkbregistry: +- libxkbregistry is a sublibrary of libxkbcommon and cannot be built without + building libxbkcommon. The files produced are otherwise independent. + +- libxml2 + +- (build optional, runtime requirement) xkeyboard-config + During build, for automatically detecting the value of + -Dxkb-config-root instead of guessing (/usr/share/X11/xkb). + Dependencies for Wayland tests: - wayland-client>=1.2.0, wayland-scanner, wayland-protocols>=1.0. To disable, use -Denable-wayland=false. @@ -49,3 +67,7 @@ Unless libxcb is always available as part of the system, it is preferred that libxkbcommon and libxkbcommon-x11 be split into separate packages, such that the main library does not depend on libxcb. This avoids a transitive dependency of Wayland clients on X libraries. + +It is perferred that libxkbregistry be split into a separate packages as most +clients that require libxkbcommon do not require libxkbregistry and clients +requiring libxkbregistry may not need libxkbcommon. -- cgit v1.2.1