summaryrefslogtreecommitdiff
path: root/PACKAGING
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2020-05-12 14:09:50 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2020-07-06 15:15:20 +1000
commitafb26e7df9090a0b765eb294b6efff448f763b6f (patch)
treeed8820db131fde2f5190333e0776aced657629d7 /PACKAGING
parentfe8861338242762da6a3245a106042266280714c (diff)
downloadxorg-lib-libxkbcommon-afb26e7df9090a0b765eb294b6efff448f763b6f.tar.gz
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 <peter.hutterer@who-t.net>
Diffstat (limited to 'PACKAGING')
-rw-r--r--PACKAGING28
1 files changed, 25 insertions, 3 deletions
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.