There is 1 open security issue in sid.
There is 1 open security issue in forky.
There is 1 open security issue in bullseye.
commit 79c4c484ed3f1f37aae1e8ed0e156e6a11a071ed
Author: Michael Schutte <michi@debian.org>
Date: Sun Aug 30 15:14:57 2026 +0200
Recount quilt patches
commit b0c2c3dca196340dfb0cf7dfda012fe5513e8e43
Author: Michael Schutte <michi@debian.org>
Date: Sun Aug 30 14:59:32 2026 +0200
Prepare changelog for 2.10.0-1
commit 3581450cf8947b02cf1ec23809daec5439adf135
Merge: b15b473 da7abe1
Author: Michael Schutte <michi@debian.org>
Date: Sun Aug 30 14:59:08 2026 +0200
Merge tag 'upstream/2.10.0' into debian/latest
Upstream version 2.10.0
commit da7abe1bc879bcd29777e7f93fcbde1e8235eb4c
Merge: f1caa93 8eff1ed
Author: Michael Schutte <michi@debian.org>
Date: Sun Aug 30 14:41:41 2026 +0200
New upstream version 2.10.0
commit 8eff1ed9100ed14e455f5438101037d6320474bd
Author: Alexey Gladkov <legion@kernel.org>
Date: Sun May 24 17:32:42 2026 +0200
v2.10.0
utils:
+ openvt: make -u process matching more conservative.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 7ca0bf04622a03eb0398ce88a2a94ea438c5d6f3
Author: Alexey Gladkov <legion@kernel.org>
Date: Sun May 24 17:31:34 2026 +0200
po: Update translations (from translationproject.org)
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 78d5ae119742e87baa7dbe0f5c4107e7533fd698
Author: Alexey Gladkov <legion@kernel.org>
Date: Tue May 12 10:20:50 2026 +0200
openvt: make -u process matching more conservative
The -u mode relies on the current VT owner to decide which user should
be used for the new login session. Make that check stricter by requiring
a matching process owner and controlling terminal instead of relying on
the ownership of an inherited file descriptor.
Also reject root as a pre-authenticated target and document the tighter
behavior in the man page.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 433c3c7f7ec72ddc66860b34b8f0d1f68bd1a184
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat May 9 18:47:28 2026 +0200
v2.10-rc1
keymaps:
+ Add Backtab keysym and update keymaps to use it for Shift+Tab.
+ Add keymap for Norwegian Apple ISO keyboard.
+ Adjust Swiss German keyboard mappings.
libkeymap:
+ Add API to validate keysyms.
+ Add XKB-aware symbol aliases through the normal synonym tables.
+ Fix compose table upload limit handling.
utils:
+ loadkeys: Add support for generating console keymaps from XKB.
+ loadkeys: Add XKB compose import support.
+ loadkeys: Add support for XKB group switching, modifier handling,
virtual console switching and keypad/editing remaps.
+ loadkeys: Add diagnostics for XKB keysym coverage.
contrib:
+ Add an XKB keysym coverage diagnostic tool.
+ Add a VT layout indicator using keyboard LED lock triggers.
build:
+ Add a project-level coverage-report target.
+ Keep coverage flags and gcov runtime linking consistent.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 8dbe02cb90976f565edb7bc381f0d41ff0fc4038
Author: Alexey Gladkov <legion@kernel.org>
Date: Sun May 10 12:37:17 2026 +0200
CI: add packages for xkb tests
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 49ab4915f1220ec029f4e18f7abebe95a4d5618e
Author: Alexey Gladkov <legion@kernel.org>
Date: Sun May 10 11:42:45 2026 +0200
xkb: fix xkbcommon detection
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit dd838555e69c2bfd37d04f7315b8aee9bff075d6
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat May 9 18:45:54 2026 +0200
Update gitignore
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 1e8ae79bc6e408a2092fa24b7b11c4d59eb46457
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat May 9 18:44:35 2026 +0200
fixup! po: Update translations (from translationproject.org)
commit b6d77d6be520d666c666cb5e8df6a4ecdda4f46a
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat May 9 18:30:58 2026 +0200
build: test fortify redefinition under optimization
Some toolchains, including gentoo configurations, define _FORTIFY_SOURCE
through compiler specs only when optimization is enabled.
AX_ADD_FORTIFY_SOURCE checked whether _FORTIFY_SOURCE was already
defined before the project added its normal -O2 flag. That made the
configure test run in a different mode from the real build: the test saw
no existing fortify definition and added -D_FORTIFY_SOURCE=3 to
CPPFLAGS, while the later optimized build also got toolchain-provided
definition. The result was a repeated warning on every compile:
warning: '_FORTIFY_SOURCE' redefined
Run the probe with -O2 and include a system header so compiler-provided
fortify is visible during the check. If the toolchain already defines it
in optimized builds, leave CPPFLAGS unchanged instead of adding another
definition.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit d1a43f29fd29a783b4b044a77ae5bdc86f8484c4
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat May 9 14:33:28 2026 +0200
po: Update translations (from translationproject.org)
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 427e682ff3c976517aec58ed04b9af484feefabd
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat May 9 13:45:08 2026 +0200
tests: fix check without xkb support
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 7719a6e7d81e162d06652eafb3c295043763ba08
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri May 8 18:24:57 2026 +0200
nls: mark libkbdfile and XKB diagnostics for translation
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 32810105f55a289c80ed77a0b7bb756a73d5791d
Merge: 50e3189 3d56314
Author: Alexey Gladkov <legion@kernel.org>
Date: Wed May 6 18:18:33 2026 +0200
Merge branch 'xkb'
Initial support for XKB has been added to loadkeys. The idea is to let
`loadkeys` build a linux console keymap directly from xkb settings such
as model, layout, variant and options.
* xkbcommon-v4: (51 commits)
contrib: add a VT layout indicator driven by keyboard LED locks
xkbsupport: drop noisy keycode range warning
libkeymap: clamp compose uploads below MAX_DIACR
xkbsupport: probe semantic modifier masks across XKB layouts
tests: stress mixed XKB group semantics in one keymap
xkbsupport: simplify compose ordering helpers
tests: cover XKB group select and VT remaps explicitly
xkbsupport: separate semantic actions from VT approximations
xkbsupport: derive semantic modifier masks from the compiled XKB map
tests: add an xkb keyword for xkbsupport coverage
xkbsupport: document why modifier release stays a final pass
xkbsupport: stop folding LevelFive into Alt tables
xkbsupport: ignore prefer-unicode during lexical XKB lookup
tests: refresh XKB snapshots after Shift semantics fix
xkbsupport: guard _GNU_SOURCE against redefinition
xkbsupport: keep Shift release and CapsLock semantics stable
xkbsupport: canonicalize equivalent masks per XKB level
contrib: add an XKB keysym coverage diagnostic tool
xkbsupport: restore semantic handling for Delete keypad aliases
tests: cover multi-symbol XKB levels and renumber autotest cases
...
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 3d56314ce4342cf975978ad2f36c63f8fd81d994
Author: Alexey Gladkov <legion@kernel.org>
Date: Tue Mar 24 10:43:36 2026 +0100
contrib: add a VT layout indicator driven by keyboard LED locks
Debugging XKB-derived console layouts is awkward once group switching is
implemented through the VT lock bits. dumpkeys shows the loaded tables,
but it does not show which group state is active right now, and probing
by typing sample letters is slow and error-prone.
Add a small proof-of-concept helper that infers the current layout from
the kbd-shiftllock and kbd-shiftrlock LED triggers and displays the
result directly on the active virtual console. The helper auto-detects
usable LED devices, binds the required triggers, and restores their
previous settings on exit.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 9de5931e357278ce09623582e423aa970593dd3e
Author: Alexey Gladkov <legion@kernel.org>
Date: Mon Mar 23 15:55:08 2026 +0100
xkbsupport: drop noisy keycode range warning
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 2ff8eac5b6d01b163b0c50f19ae15b3a732c05d5
Author: Alexey Gladkov <legion@kernel.org>
Date: Mon Mar 23 15:46:44 2026 +0100
libkeymap: clamp compose uploads below MAX_DIACR
Both KDSKBDIACR and KDSKBDIACRUC reject counts greater than or equal to
MAX_DIACR, so hitting the limit still turns an oversized compose table
into EINVAL instead of loading the largest acceptable prefix.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 9e419a3320e61eca01d5056e42246a7069d674d4
Author: Alexey Gladkov <legion@kernel.org>
Date: Mon Mar 23 13:54:33 2026 +0100
xkbsupport: probe semantic modifier masks across XKB layouts
The semantic modifier mask discovery code assumed that keys such as
ISO_Level3_Shift would always be visible on layout 0. That is too narrow
for compiled XKB maps.
Some rulesets expose the effective LevelThree chooser only in another
group. In that case xkbsupport failed to find the modifier mask at all,
and later treated reachable third-level symbols as if they had no safe
kernel-table representation.
libxkbcommon does not expose a direct query for "which real modifier
mask implements this semantic keysym in the compiled keymap", so derive
it indirectly by probing candidate keys through xkb_state. Extend that
probe across all layouts, select the probed layout before pressing the
key, and keep the simplest resulting mask as the canonical one.
Add a local XKB fixture and a regression test that places the relevant
LevelThree path in the second group and verifies that third-level
symbols remain reachable after conversion.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 0b0c26ddb7025251e70c9ec0d6a1e03bc4ec9160
Author: Alexey Gladkov <legion@kernel.org>
Date: Sun Mar 22 18:52:48 2026 +0100
tests: stress mixed XKB group semantics in one keymap
The current XKB coverage checks individual layouts and a few two-group
combinations well, but it still leaves a gap around mixed multi-group
maps.
That gap matters because xkbsupport collapses up to four XKB layouts
into the kernel group tables, and failures there are more likely to show
up only when very different symbol families and level semantics coexist
in one import. A regression can keep the simple us,ru cases working
while still dropping late-group symbols, Cyrillic aliases, polytonic
Greek levels, or dead-key bindings once the map grows more diverse.
Add a focused four-layout stress test that combines us(altgr-intl),
ru(srp), gr(polytonic), and de(neo) in one keymap and checks that each
group still keeps a characteristic binding. This gives xkbsupport a
targeted regression test for mixed Latin, Cyrillic, Greek, AltGr, and
dead-key semantics without relying on another large snapshot.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 67ceb3791c54a5b3d9a4948764561946c8d3440b
Author: Alexey Gladkov <legion@kernel.org>
Date: Sun Mar 22 13:43:38 2026 +0100
xkbsupport: simplify compose ordering helpers
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit a2e549aac14fff1f44f4935855f55a8ab8969aa7
Author: Alexey Gladkov <legion@kernel.org>
Date: Sun Mar 22 13:35:58 2026 +0100
tests: cover XKB group select and VT remaps explicitly
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 2388299fec1e6bfd971b9f52639fa38a4836baa5
Author: Alexey Gladkov <legion@kernel.org>
Date: Sun Mar 22 13:28:30 2026 +0100
xkbsupport: separate semantic actions from VT approximations
Not every XKB-only keysym is the same kind of mapping.
Some symbols correspond to direct semantic actions that the kernel
keymap model can represent reasonably well, such as modifiers, level
changes, and group switching. Others are already approximations on the
Linux VT side, such as mapping Delete to Remove, collapsing keypad
navigation aliases to keypad digits, or turning VT switching symbols
into Console_* actions.
Keeping both classes in one flat lookup table makes the intent harder to
review and makes it easier to treat policy decisions as if they were
plain semantic equivalents.
Split the semantic remap table into direct semantic actions and Linux
VT-specific approximations, and document why the semantic path is looked
up first. This keeps the current behavior unchanged while making the
policy boundary in xkbsupport easier to see.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 03376e26135d37adf241ac6ef3a0fc7d7b8c33bc
Author: Alexey Gladkov <legion@kernel.org>
Date: Sun Mar 22 12:26:42 2026 +0100
xkbsupport: derive semantic modifier masks from the compiled XKB map
The XKB importer still treated several modifier semantics as if they
were tied to fixed real ModN bits. That is not a safe assumption.
xkb_keymap_key_get_mods_for_level() reports masks in the compiled
keymap's real modifier encoding, not in a stable semantic namespace.
The usual xkeyboard-config convention often makes it look as if
LevelThree means Mod3 and LevelFive means Mod5, but alternate rulesets
are free to bind those semantics differently. The test XKB data does
exactly that: LevelThree is reachable through one real modifier bit,
while LevelFive uses another.
That meant xkbsupport could interpret a correct level mask with the
wrong kernel meaning. In practice the importer either dropped reachable
third-level symbols or merged them into the wrong kernel tables because
it was decoding the mask by hardcoded Mod3/Mod5 expectations instead of
the compiled keymap's actual modifier bindings.
The failure was visible in the Serbian alias coverage test. The
ru(srp) layout exposes Serbian letters on the third level, for example:
AD01 level 3 -> U+0458
AD06 level 3 -> U+045A
AC08 level 3 -> U+0459
AC09 level 3 -> U+045F
AC10 level 3 -> U+0452
AB02 level 3 -> U+045B
These are expected to land in the same kernel tables that xkbsupport
uses for XKB third-level access. With the hardcoded Mod3/Mod5 decoding,
those bindings disappeared from the imported keymap and
libkeymap-test64 failed with:
Missing keycode 16 in table 8
The same underlying mistake also changed the shape of the exported XKB
dump snapshots. Once the semantic modifier mask was decoded correctly,
the converter again emitted the expected third-level Alt/Shift+Alt
tables, so the stored dump fixtures had to be refreshed as well.
Fix this by deriving semantic modifier masks from the compiled XKB
keymap itself instead of from fixed ModN names:
- Shift, Lock, and Control still use the named real modifiers.
- Alt, LevelThree, and LevelFive are resolved from the effective
modifier state produced by their semantic keys.
This keeps the importer aligned with actual XKB semantics even when a
ruleset binds LevelThree and LevelFive to unexpected real modifiers, and
it restores third-level symbol import for layouts such as ru(srp).
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 31e1397e45a33422d2cbb31f68951ba3ee15fa4c
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 21 23:49:59 2026 +0100
tests: add an xkb keyword for xkbsupport coverage
The XKB conversion tests are useful as a focused regression set, but
they could only be selected indirectly through broader libkeymap
keywords.
Tag the xkbsupport-related tests with a dedicated xkb keyword and
refresh the XKB dump snapshots to match the current converter output
after the recent LevelFive handling change.
This makes `make -C tests check CHECK_KEYWORDS='xkb'` a reliable way to
run the whole XKB import test set without tripping over stale expected
dumps.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 1a8e82a8654c132dc6841a10d0fe8fb1989f0442
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 21 23:35:06 2026 +0100
xkbsupport: document why modifier release stays a final pass
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 10a55ab3d3412cc93f3052c220fe73230d5bd92c
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 21 23:07:48 2026 +0100
xkbsupport: stop folding LevelFive into Alt tables
The Linux VT has no separate modifier state for XKB LevelFive.
Mapping Mod5 and LevelFive to Alt makes the converter silently merge
fifth-level bindings into the Alt tables, which changes the meaning of
the imported layout instead of reporting that the state cannot be
represented. A real LevelFive layout can then look valid in the kernel
dump while producing the wrong bindings.
Treat LevelFive-only masks like the other unsupported XKB modifiers and
skip them during import. Add a regression test with a local eight-level
fixture to make sure fifth-level symbols no longer appear as Alt
bindings.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 2f9b59fea989aa4d18f3dbf5a0fe63615cd7f02c
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 21 22:48:49 2026 +0100
xkbsupport: ignore prefer-unicode during lexical XKB lookup
XKB import needs a stable lookup in the kernel key symbol namespace.
Using TO_AUTO for lexical symbol resolution lets LK_FLAG_PREFER_UNICODE
change how ordinary XKB names are interpreted. That makes the result
depend on parser mode and can turn shifted Latin bindings back into the
wrong symbol class, undoing the recent CapsLock and Shift handling fix.
Resolve lexical XKB names explicitly in the 8-bit kernel code space and
cover that behavior with a regression test that enables
LK_FLAG_PREFER_UNICODE while importing a normal XKB layout.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit e0ebb800895c3d194747c3d79ccb83da63ff879e
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 21 22:46:13 2026 +0100
tests: refresh XKB snapshots after Shift semantics fix
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit f6bc58602d826d37673e38b90467774ac499bc4d
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 21 19:50:00 2026 +0100
xkbsupport: guard _GNU_SOURCE against redefinition
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 9d15ac84518e23332a56d9c39954d6ab56cb66c5
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 21 19:39:58 2026 +0100
xkbsupport: keep Shift release and CapsLock semantics stable
XKB conversion was generating kernel bindings that looked reasonable in
a dump, but still did not match how the Linux VT actually resolves key
state.
For ASCII letters, the lexical lookup path normalized keysyms through
the Unicode conversion path and could turn an explicit shifted Latin
symbol into KT_LETTER. That made dumps come out as "+a +A" and let
CapsLock invert an already-shifted binding. The result was wrong case
handling for ordinary Latin keys.
Modifier keys had a second problem. The VT resolves key release using
the current modifier state, so a modifier key must remain bound in the
tables reachable while it is still active. Leaving pure modifiers
undefined in those tables turns release into VoidSymbol and makes
modifiers such as Shift appear to stick.
Switch lexical XKB lookup to a public libkeymap code-space conversion
API, mark only the non-shifted Latin binding as CapsLock-able, and
mirror pure modifier bindings into already-allocated tables so key
release remains visible to the VT state machine.
This keeps Latin keys at "+a A" instead of "+a +A" and prevents Shift,
Control, and Alt from getting stuck after XKB import.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 0f3fd3c619f514765fac84e12890f6637d806555
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 21 18:22:33 2026 +0100
xkbsupport: canonicalize equivalent masks per XKB level
Older XKB key types can preserve modifiers while still resolving to the
same symbol. That makes libxkbcommon report several equivalent modifier
masks for one level.
The converter used every representable mask it saw. In the kernel keymap
model those masks compete for the same table slots, so a plain function
key could claim Ctrl+Alt before the VT switching level was processed.
With legacy CTRL+ALT types this broke XF86_Switch_VT_* import and moved
or dropped Console_* bindings.
Pick only the simplest representable mask for each XKB level and treat
it as the canonical kernel binding. This keeps Ctrl+Alt+Fn on the VT
switching symbols while leaving the normal function-key levels in their
own tables.
Add a regression test with a local legacy CTRL+ALT type fixture so the
old preserve-modifier behaviour stays covered.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit c7a3ffc9df08c68166f86dfa1c6f2693f6819ad2
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 20 14:39:46 2026 +0100
contrib: add an XKB keysym coverage diagnostic tool
The XKB import path now relies on a layered resolver with separate
semantic, lexical, unicode and hex fallbacks, but there is no simple way
to see which path a given keysym actually takes. That makes cleanup and
review of xkbsupport changes harder than necessary, especially when a
refactor shifts symbols between semantic handling and normal libkeymap
lookup.
Add a small developer tool that scans the libxkbcommon keysym header and
classifies each explicit keysym according to the current xkbsupport
resolution path. This gives a quick coverage report for semantic, name,
unicode, hex and unresolved cases and makes it much easier to spot
unexpected gaps in the converter without reintroducing a separate XKB
translation table.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 9b14fcddb45d97107e0b20cab6f408f684136d0e
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 20 13:59:54 2026 +0100
xkbsupport: restore semantic handling for Delete keypad aliases
The split between lexical aliases and semantic XKB mappings accidentally
dropped a few keys that do not have safe direct ksym equivalents in
libkeymap. That leaves Delete resolving to ASCII DEL instead of the
kernel's Remove action, and it loses the keypad aliases that XKB uses
for the center and delete keys when NumLock is off.
Handle Delete, KP_Begin and KP_Delete on the semantic path so the
converted keymap keeps the expected editing and keypad behavior instead
of falling back to unrelated lexical names. Extend the multi-symbol XKB
regression test to cover those cases directly.
Fixes: 8e91af9d ("xkbsupport: keep lexical aliases off the semantic XKB path")
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 62900d0fa9bca8e428768024d8f7b6d5f991e06d
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 20 13:38:12 2026 +0100
tests: cover multi-symbol XKB levels and renumber autotest cases
The current XKB fixtures never exercise levels that resolve to more than
one keysym, even though libxkbcommon supports that case and xkbsupport
currently handles it by taking the first symbol. Without a dedicated
test, that behavior is easy to change accidentally and any failure would
only show up when an unusual keymap reaches users.
Add a focused XKB test layout with multi-symbol levels and verify that
the converted kernel keymap still comes out usable by keeping the first
keysym for each affected level.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 8e91af9d4cbeca6dd4606c2f7aeac4fbec32a654
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 20 13:27:45 2026 +0100
xkbsupport: keep lexical aliases off the semantic XKB path
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 628370f6006b1ca1b827198c70d72eee0da92ede
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 20 13:00:41 2026 +0100
xkbsupport: drop the external XKB names table
The XKB import path no longer needs a separate xkbtrans dictionary to
translate symbol names before they reach libkeymap. Keeping that extra
data file and its loader around now only preserves a second resolution
path, forces the tests to carry explicit table setup, and leaves install
logic in place for data that is no longer part of the real conversion
model.
Remove the external translation table and resolve XKB names through the
normal libkeymap paths only. Keep the remaining digit aliases in the
synonym layer so Meta_0..9 bindings continue to match the existing
kernel dumps, and simplify the XKB tests to verify import directly
without LK_XKB_TRANSLATION_TABLE.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 5f122796ec3ee6ce56de43ec4a070fddafac6e34
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 20 12:19:06 2026 +0100
libkeymap: fold Greek XKB symbol remnants into synonyms
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 926f5fe364b8010109253793fdf837d8d95f54b6
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 20 12:12:49 2026 +0100
libkeymap: resolve Greek XKB aliases through symbol synonyms
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 07e7b2c2b4dacdf9cfc7e5b585a9c1b3e3b4de5d
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 20 12:04:42 2026 +0100
tests: cover Serbian XKB aliases through Unicode fallback
The XKB names table still carried Serbian_* aliases even though the
current import path can already resolve those symbols from their Unicode
values. Leaving them in the table hides which translations are still
needed and makes the remaining legacy mappings harder to justify.
Drop the Serbian_* rows from data/xkbtrans/names and add a regression
test that removes only those aliases before importing ru(srp). This
keeps the check focused on the current question and verifies that the
existing Unicode-based path still produces the expected kernel symbols
for JE, LJE, NJE, DZE, DJE and TSHE without depending on the external
translation table.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit a1f2323c50d7609a636941f60c06dd63b2a5a33e
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 20 11:53:20 2026 +0100
tests: cover Cyrillic XKB aliases through Unicode fallback
The XKB names table still carried Macedonia_* and Ukrainian_* aliases
even though those symbols no longer need explicit translation entries to
reach the kernel keymap. Keeping them in the table makes it harder to
tell which mappings are still required and which ones already fall
through the normal unicode-based import path.
Drop those aliases from data/xkbtrans/names and add a regression test
that removes only the Macedonia_* and Ukrainian_* rows from the
translation table before importing ru(chu). This verifies that the
current XKB conversion path still resolves those symbols correctly
through libxkbcommon unicode decoding and libkeymap's existing Cyrillic
symbol handling.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 362ececebbf05156f24aeb4a4c5f6120bb721626
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 20 11:35:04 2026 +0100
xkbsupport: cut redundant aliases from the XKB names table
The XKB importer still relied on data/xkbtrans/names for several classes
of symbols whose meaning is already stable enough to resolve directly in
code. Keeping those entries in the external table makes the import path
look more data-driven than it really is and leaves the remaining legacy
aliases harder to distinguish from the mappings that are still required.
Resolve the common semantic keysyms in xkeymap_get_code() first, so
group selectors, Compose, virtual console switches and keypad decimal
stop depending on the translation table. With that builtin coverage in
place, drop the aliases that no longer affect the conversion result,
including the now-redundant Print mapping.
This shrinks the table toward the legacy XKB-to-kbd mismatches that are
still genuinely needed, while keeping the current libkeymap XKB tests
unchanged.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 6842be3b2bb8b28627c73dc9ab152d8ee9725ef0
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 20 11:06:31 2026 +0100
xkbsupport: resolve common XKB symbols without the names table
The XKB import path still relies on data/xkbtrans/names for many symbols
that already have stable, well-known semantics in kbd. Keeping those
lookups in the external table makes the conversion path more fragile
than it needs to be and leaves the translation file responsible for
aliases that can be handled directly in code.
Teach xkeymap_get_code() to resolve a small builtin set of common
non-printing XKB keysyms first, then fall back to direct kbd names, and
only use unicode or raw name parsing when neither name-based path works.
This keeps the existing output stable while letting the importer handle
modifiers, group selectors and keypad navigation aliases without going
through the translation table.
With those aliases resolved internally, drop the redundant entries from
data/xkbtrans/names. The remaining table keeps only the legacy mappings
that are still needed by the current import path.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 1ed93947932f66da5327b470d228b2919a7297e6
Author: Alexey Gladkov <legion@kernel.org>
Date: Thu Mar 19 20:11:15 2026 +0100
xkbsupport: keep compose import in the kernel's code space
XKB compose import should follow the same conversion rules as the rest of
kbd. Appending raw diacritic entries bypasses the normal compose path,
so the imported table no longer reflects the code space selected for the
current keymap context and the tests end up validating an ad hoc dump
format instead of the real library behavior.
Feed imported compose rules through lk_append_compose() and extend the
internal compose test to catch that conversion path. Update the XKB
compose snapshots to use lk_dump_diacs() under preferred-Unicode mode so
they match the way kbd actually stores and reports compose tables.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 2e9c7ef2de41693ad6a715e5ac14018f075d67f2
Author: Alexey Gladkov <legion@kernel.org>
Date: Thu Mar 19 17:35:22 2026 +0100
tests: refresh us,ru XKB dump after group fallback fix
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit f4f33737d4dc07ec44c67346a83bd72a9759e9df
Author: Alexey Gladkov <legion@kernel.org>
Date: Thu Mar 19 17:26:36 2026 +0100
tests: align libkeymap case numbers with test binaries
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit a06b45b67e9ffb03fbed2a94c9d8d149dbc4cac3
Author: Alexey Gladkov <legion@kernel.org>
Date: Thu Mar 19 17:18:33 2026 +0100
xkbsupport: preserve XKB group fallback per key
A key may define fewer groups than the keymap as a whole while XKB still
makes that key reachable in later groups by normalizing out-of-range
group lookups back into range. Restricting the import walk to the groups
explicitly present on each key drops that fallback and leaves otherwise
valid multi-layout mappings incomplete in the kernel table.
Walk every global layout when querying a key and let libxkbcommon apply
its per-key group fallback rules. Add a regression test with a us,empty
layout pair to verify that a key defined only in the first group remains
reachable after switching to the second group.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit b98bf6012f435945b88c0b12c1945305aee3748c
Author: Alexey Gladkov <legion@kernel.org>
Date: Thu Mar 19 16:48:10 2026 +0100
xkbsupport: keep XKB import working without compose data
Missing compose data should not make --xkb-* unusable. The keymap import
itself is still valid when libxkbcommon cannot resolve a compose table
for the selected locale, so treating that lookup failure as fatal breaks
otherwise usable XKB layouts.
Continue without compose support when the locale-specific Compose file
cannot be found and add a regression test for that fallback. The new
test forces compose lookup to fail and verifies that XKB import still
produces a usable kernel keymap without writing to stderr.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit d2a461559bb2890c2b4d0939fb704a741cff9e43
Author: Alexey Gladkov <legion@kernel.org>
Date: Thu Mar 19 11:37:03 2026 +0100
xkbsupport: drop ad-hoc debug paths now that import is test-covered
The temporary debug output in the XKB conversion path was useful while
the import logic was still being shaped, but it has become a liability
now that the behaviour is pinned down by focused unit tests and full
snapshot coverage.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 9eb0afb442ca519c582c48cad738a78f5ae8327d
Author: Alexey Gladkov <legion@kernel.org>
Date: Thu Mar 19 11:30:47 2026 +0100
tests: cover XKB import with a non-Latin compose snapshot
The current XKB compose policy is already constrained by kernel limits
and shaped by Latin dead-key expectations from existing console maps.
Checking it only against us-intl, Czech and German still leaves too much
room for regressions that look fine on Latin layouts while quietly
breaking very different compose behaviour.
Add a Greek XKB snapshot so the import path is exercised on a layout
with a different alphabet and a different compose model. This gives the
tests a way to catch policy changes that accidentally overfit the kernel
subset to Latin accent handling and miss the behaviour users expect from
non-Latin XKB layouts.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit b75e5661b386004f2ec2eca4f2c8f4ee5532ebdf
Author: Alexey Gladkov <legion@kernel.org>
Date: Thu Mar 19 11:14:40 2026 +0100
xkbsupport: bias compose selection toward console-style dead keys
The kernel compose table is far too small for the locale-wide compose
space exposed by XKB, so the converter has to choose which rules are
worth keeping. Ranking only by generic "dead key + letter" heuristics
still leaves too much room for incidental XKB data to displace the
accent combinations users actually expect from established console
keymaps.
Teach the selector to favour the compact dead-key repertoires that
traditional console maps and console-setup keep for Latin layouts. This
makes the limited kernel compose space track long-standing console
behaviour more closely, instead of being shaped by whichever extra XKB
sequences happen to score similarly.
Add a German snapshot alongside the existing XKB compose snapshots so
the policy is exercised on more than one language and does not quietly
drift into being Czech-specific.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 50e3189fb21423964d314a5b21b8b0e6017a7e8d
Author: Alexey Gladkov <legion@kernel.org>
Date: Tue Mar 17 13:41:19 2026 +0100
tests: catch libkeymap round-trip regressions earlier
libkeymap already has good parser and dump coverage, but it lacked a
test for the invariant that matters when both sides evolve together:
a keymap should still describe the same canonical state after
parse -> dump -> parse.
Add a dedicated round-trip test over representative parser constructs,
including keymaps ranges, alt_is_meta, strings, compose rules,
modifiers, +rvalues and a real file-backed keymap. This protects the
canonical dump format against regressions that would not be caught by
parser-only or dump-only tests.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 9720d5cf307089a5e62417fcb3835272d258f668
Author: Alexey Gladkov <legion@kernel.org>
Date: Mon Mar 16 12:58:32 2026 +0100
data: Do not compress files twice
Link: https://github.com/legionus/kbd/issues/154
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 07e5b4c71c8ee235cf9b332708e4ac11b30cce54
Author: Alexey Gladkov <legion@kernel.org>
Date: Mon Mar 16 18:13:43 2026 +0100
CI: report library coverage in workflow summaries
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit bc085c0161d309e2b7e42988250d4843c93ca1a5
Author: Alexey Gladkov <legion@kernel.org>
Date: Mon Mar 16 17:07:19 2026 +0100
tests: make expanded library coverage easier to maintain
The recent coverage work left libkeymap, libkbdfile and libkfont with a
long tail of tiny one-off test binaries. That makes the suites harder to
navigate, inflates testsuite output with low-signal case names and raises
the cost of extending coverage further.
Group related checks into a smaller set of logical test programs and
rename the autotest entries to describe the behavior under test rather
than historical file numbers. This keeps the extra coverage in place
without letting the unit suites turn into an unmaintainable list of
single-purpose executables.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 2bfb5cac1afdcf8832b68fecc80e5962604e8336
Author: Alexey Gladkov <legion@kernel.org>
Date: Mon Mar 16 16:34:10 2026 +0100
tests: libkfont: cover context and kdfontop helpers
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit e575698bfc34a2318a32252b0fbaa83f228efc09
Author: Alexey Gladkov <legion@kernel.org>
Date: Mon Mar 16 16:31:36 2026 +0100
tests: libkeymap: add unit tests for dump and kernel helpers
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 765c70d3259010fe788721f7221e19d16bbf3d40
Author: Alexey Gladkov <legion@kernel.org>
Date: Mon Mar 16 11:21:50 2026 +0100
libkfont: add unit tests for psf and console map
Add libkfont unit tests for the PSF reader and writer paths in
psffontop.c, including PSF1/PSF2 images, unicode sequences and a set
of malformed input cases.
Also cover console map save/load helpers in mapscrn.c for symbolic,
binary and failure paths, including direct screen maps, unicode screen
maps and save failures when no map or no output file is available.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit e2f8cbc04e495ddf1732c3e83e99ac735601bad1
Author: Alexey Gladkov <legion@kernel.org>
Date: Sun Mar 15 11:41:02 2026 +0100
tests: add parser-focused libkeymap unit coverage
libkeymap's parser still had several grammar and semantic corners covered
only indirectly through full keymap fixtures, which made it harder to
pin regressions to a specific rule in parser.y.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 31cb1650884910ed00a14eb89969a34b7bc23952
Author: Alexey Gladkov <legion@kernel.org>
Date: Sun Mar 15 00:02:28 2026 +0100
build: make coverage-report rebuild and capture reliably
Make coverage-report rebuild the tree before running the tests, reset
coverage counters explicitly, and restrict capture to the libkbdfile,
libkeymap, libkfont, and tests subtrees.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit a554b2ec79f5d97e860a29665f15b0c2f776feea
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 23:51:20 2026 +0100
build: keep coverage flags in target-specific CFLAGS
Make those per-target CFLAGS append to AM_CFLAGS instead of replacing
it, so coverage-enabled builds stay consistent across the tree.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 77f4d91e25fd22b15ab5583afecb16ab7823b550
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 23:45:35 2026 +0100
build: add a project-level coverage-report target
Add an official top-level coverage-report target that resets coverage
counters, runs the test suite, and generates the HTML report in one
place. Limit capture to the libkbdfile, libkeymap, libkfont, and tests
subtrees so the report stays focused on the supported unit-test paths,
and drop genhtml options that are not accepted by the tool version used
here.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 05a55f6676c6ead0d809aa90415b59bc7a115849
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 23:25:53 2026 +0100
tests: cover libkeymap string and compose loading
Add focused unit tests for both paths so regressions in string clearing
and compose table loading can be caught without a real console. This
extends coverage for lk_load_keymap() beyond key bindings and Unicode
mode handling.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit ea77b671d12213cd21485a5e2520a77008a40074
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 23:24:39 2026 +0100
tests: cover libkfont font parsing and screen map loading
Add focused unit tests for reading a minimal PSF1 font image and for
loading a symbolic console map into a Unicode screen map. This gives the
suite coverage for the PSF parser and for the code that expands sparse
screen maps into the default direct-to-font mapping.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 0cfc8e9154c46543554d5f62723953338aa867de
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 23:23:03 2026 +0100
tests: cover libkbdfile's lazy dlopen helper
libkbdfile's shared-object lookup helper was still uncovered, even
though it drives the fallback path for optional decompressors.
Add a focused unit test that exercises both the successful symbol lookup
path and the failure path for a missing symbol. This gives the test
suite coverage for the lazy loading logic and checks that failed lookups
do not leave a leaked library handle behind.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 0029aa560f6a79b260012d789d2a4a0d415de996
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 23:00:45 2026 +0100
build: link coverage-instrumented binaries with gcov runtime flags
Enabling code coverage was compiling objects with gcov instrumentation
but not reliably carrying the same flags into the final link step.
That leaves references such as __gcov_init unresolved when binaries link
against static archives like libcommon.a. Propagate the coverage link
flags through the common build rules and the standalone test makefiles so
a coverage-enabled build links successfully across the tree.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit dda3280c45d14e1adebafdd8065338c2f7b2fb51
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 14:40:38 2026 +0100
tests: reduce libkbdfile unit test boilerplate
Factor that common logic into a shared test helper, keep the individual
scenarios separate, and add short descriptions to every libkbdfile
autotest case so failures are easier to interpret.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit a48a8f27ecf1c2ca56545481130d91483b7260d2
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 13:55:51 2026 +0100
tests: libkeymap: cover lk_load_keymap() aborts on KDSKBENT failures
Key loading must stop as soon as KDSKBENT reports a failure that leaves
the kernel state unreliable. In particular, permission failures and I/O
errors should abort the load instead of falling through to function
string or compose table updates.
Add unit tests that verify lk_load_keymap() stops immediately on EPERM
and EIO from KDSKBENT and does not continue with later load stages.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit d195b1108d2b5dd41ed7660909d688eb2f8821e5
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 13:49:41 2026 +0100
tests: libkeymap: cover Unicode mode switching in lk_load_keymap()
Loading a keymap in Unicode mode depends on temporarily switching the
kernel keyboard mode before programming keys and restoring the original
mode afterwards. If the initial mode switch fails, the load must stop
immediately instead of continuing with a partially applied state.
Add unit tests that verify both sides of this contract: the successful
Unicode-mode load path and the early failure path when KDSKBMODE
rejects the switch to K_UNICODE.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 2287db7597e43aa2d7389256fe5fca3c9d3198aa
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 13:30:21 2026 +0100
tests: libkeymap: cover lk_load_keymap() fallback for old kernels
Some kernels reject keymap deallocation through KDSKBENT with EINVAL,
and libkeymap is expected to recover by clearing the table entry by
entry instead of failing the load.
Add a unit test that exercises this path and verifies that lk_load_keymap()
keeps going after the deallocation failure by issuing a full manual
clear.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit bb26c3df2daac31bfbad9192f05fe48addc372ce
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 13:23:29 2026 +0100
tests: libkeymap: clarify libkeymap autotest case names
Add short behavior-oriented descriptions to every AT_SETUP entry and
renumber the later cases so the suite reads consistently from top to
bottom.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 33b8ea78709c8baa0f13472354968e73f828ae97
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 13:15:53 2026 +0100
tests: libkeymap: cover libkeymap kernel keymap loading
This verifies that lk_kernel_keys() imports populated entries, preserves
holes, and stops scanning tables when the kernel reports K_NOSUCHMAP,
without requiring a real console device.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 5eaa6a2c6bb2fc72cd61b28f35e9369d337dcdf0
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 13:09:31 2026 +0100
tests: libkeymap: add libkeymap coverage for kernel-backed paths
This covers behavior that was previously awkward to exercise without a
real console, including loading accent tables and function key strings,
while keeping the checks deterministic and root-free.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit ca49f1e51783b4f76576933219f073a78a069928
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 13:01:20 2026 +0100
tests: libkeymap: allow unit tests to exercise kernel-dependent paths
Some libkeymap behavior is currently only reachable through ioctls to a
real console, which leaves important logic covered only by higher-level
tests and makes failures harder to isolate.
Add an internal way to replace the ioctl backend so kernel-dependent
code can be tested deterministically in unit tests without changing the
library's normal runtime behavior.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 827cfea669a0e6de857db9638f5d34bcc153d362
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 12:54:32 2026 +0100
libkeymap: make kernel-facing code unit-testable
libkeymap still has logic that can only be exercised through ioctls to a
real console, which makes unit tests awkward and pushes too much
behavior into root-only integration coverage.
Add an internal seam for the ioctl path so kernel-dependent behavior can
be tested in isolation while keeping the normal runtime behavior
unchanged.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 7f705308276e8e877d06d6b00d47c003cbd37d1d
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 12:21:36 2026 +0100
tests: libkeymap: reduce libkeymap unit test boilerplate
This removes repeated kbdfile/keymap loading code, fixes a broken file
path in one failure message, and tightens the compose-table test so it
fails instead of only warning when expected entries are missing or still
present.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 6e994005d5a52b1fd790d349564dbcc266533dc0
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 12:02:58 2026 +0100
tests: libkfont: cover libkfont screen map wrappers
Verify that getscrnmap() fills the caller buffer from GIO_SCRNMAP and
that loadscrnmap() passes the original screen map buffer through to
PIO_SCRNMAP without modifying it.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit ebac2d1dc7b158f956cf3dae1d4a5c0847c8b575
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 11:58:32 2026 +0100
tests: libkfont: cover kfont_put_unicodemap() clear failures
Verify that kfont_put_unicodemap() stops immediately when PIO_UNIMAPCLR
fails, does not attempt PIO_UNIMAP afterwards, and keeps the
caller-provided descriptors unchanged.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 7528ba172d71debb4bce7f22e557b190f3992605
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 11:45:22 2026 +0100
tests: libkfont: cover kfont_put_unicodemap() retry limit
Verify that kfont_put_unicodemap() stops retrying once advised_hashlevel
reaches the retry limit, returns an error after repeated ENOMEM
failures, and keeps the caller-provided descriptors unchanged.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 23f748c49f3c80498b25872b564d74e4b42f7464
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 11:40:47 2026 +0100
tests: libkfont: cover kfont_put_unicodemap() ENOMEM retries
Verify that kfont_put_unicodemap() retries PIO_UNIMAP after ENOMEM,
reissues PIO_UNIMAPCLR with an increased advised_hashlevel, and leaves
the caller-provided descriptors unchanged.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 4311d70f1f8fef137ef32d60c9eb8014c5cc47c8
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 11:38:00 2026 +0100
tests: libkfont: verify kfont_put_uniscrnmap() copies the map
Verify that kfont_put_uniscrnmap() passes a private copy of the screen
map to the ioctl so kernel-side modifications cannot alter the caller's
buffer.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 5192e7524c5334cb301ca3359badad9f0d99b56e
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 11:34:44 2026 +0100
tests: libkfont: cover tall kfont_put_font() requests
Verify that kfont_put_font() switches to KD_FONT_OP_SET_TALL when the
font dimensions require a non-default vpitch, forwards the expected
geometry unchanged, and leaves the caller buffer untouched.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 4f682181f3c7c943d316516ec23feffbf795ccac
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 11:23:10 2026 +0100
tests: libkfont: cover kfont_put_font() ENOSYS handling
Verify that kfont_put_font() returns an error without retrying and
leaves the caller buffer unchanged when the requested font operation is
not supported.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 4a592dc1c473853ab47810f2f56cdbd874aabe7a
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 11:18:55 2026 +0100
tests: libkfont: cover kfont_put_font() retry after EINVAL
Cover the case where the kernel rejects a non-standard 8-bit font count
with EINVAL and verify that kfont_put_font() retries with a 256-glyph
buffer, preserves the original glyph data, zero-pads the extra slots,
and leaves the caller buffer unchanged.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 81639892837e9293d10ceb13d3191dcaeb9a0643
Author: Alexey Gladkov <legion@kernel.org>
Date: Sat Mar 14 11:09:43 2026 +0100
tests: libkfont: cover kfont_get_font() fallback and failure paths
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit ebc51c4efd62cd63ba7c6cae30ee51f785556cc4
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 13 19:03:56 2026 +0100
tests: libkfont: add test for KD_FONT_OP_GET_TALL
Signed-off-by: Alexey Gladkov <legion@kernel.org>
commit 6a28bd38d37bf78338f40b0623229ef128e47802
Author: Alexey Gladkov <legion@kernel.org>
Date: Fri Mar 13 18:54:48 2026 +0100
tests: libkfont: cover regular kfont_get_font path
Add a libkfont unit test for the successful KDFONTOP get-font path.
Signed-off-by: Alexey Gladkov <legion@kernel.org>
There is 1 open security issue in trixie.
You can find information about how to handle this issue in the security team's documentation.
Among the 4 debian patches available in version 2.9.0-1 of the package, we noticed the following issues: