)]}'
{
  "log": [
    {
      "commit": "50e3189fb21423964d314a5b21b8b0e6017a7e8d",
      "tree": "e62384520bbf665c2e586440a713044ffcc46879",
      "parents": [
        "9720d5cf307089a5e62417fcb3835272d258f668"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Mar 17 13:41:19 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Mar 17 13:41:19 2026 +0100"
      },
      "message": "tests: catch libkeymap round-trip regressions earlier\n\nlibkeymap already has good parser and dump coverage, but it lacked a\ntest for the invariant that matters when both sides evolve together:\na keymap should still describe the same canonical state after\nparse -\u003e dump -\u003e parse.\n\nAdd a dedicated round-trip test over representative parser constructs,\nincluding keymaps ranges, alt_is_meta, strings, compose rules,\nmodifiers, +rvalues and a real file-backed keymap. This protects the\ncanonical dump format against regressions that would not be caught by\nparser-only or dump-only tests.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "9720d5cf307089a5e62417fcb3835272d258f668",
      "tree": "824de9725d93d008e5e11154f446042cf919c5ac",
      "parents": [
        "07e5b4c71c8ee235cf9b332708e4ac11b30cce54"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Mar 16 12:58:32 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Mar 17 11:39:32 2026 +0100"
      },
      "message": "data: Do not compress files twice\n\nLink: https://github.com/legionus/kbd/issues/154\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "07e5b4c71c8ee235cf9b332708e4ac11b30cce54",
      "tree": "a0caa86da7d23bde5f1ca220e08ae3aa17ebd3ea",
      "parents": [
        "bc085c0161d309e2b7e42988250d4843c93ca1a5"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Mar 16 18:13:43 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Mar 17 11:38:23 2026 +0100"
      },
      "message": "CI: report library coverage in workflow summaries\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "bc085c0161d309e2b7e42988250d4843c93ca1a5",
      "tree": "f74741432dfc1f78f3d6a6a23d1eda52654a3c31",
      "parents": [
        "2bfb5cac1afdcf8832b68fecc80e5962604e8336"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Mar 16 17:07:19 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Mar 16 18:04:01 2026 +0100"
      },
      "message": "tests: make expanded library coverage easier to maintain\n\nThe recent coverage work left libkeymap, libkbdfile and libkfont with a\nlong tail of tiny one-off test binaries. That makes the suites harder to\nnavigate, inflates testsuite output with low-signal case names and raises\nthe cost of extending coverage further.\n\nGroup related checks into a smaller set of logical test programs and\nrename the autotest entries to describe the behavior under test rather\nthan historical file numbers. This keeps the extra coverage in place\nwithout letting the unit suites turn into an unmaintainable list of\nsingle-purpose executables.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "2bfb5cac1afdcf8832b68fecc80e5962604e8336",
      "tree": "1007bf58231a4f72119ef46283673164cf396322",
      "parents": [
        "e575698bfc34a2318a32252b0fbaa83f228efc09"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Mar 16 16:34:10 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Mar 16 16:34:40 2026 +0100"
      },
      "message": "tests: libkfont: cover context and kdfontop helpers\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "e575698bfc34a2318a32252b0fbaa83f228efc09",
      "tree": "02597feaa3ade4d5497ce60f633cf56ee056b3b8",
      "parents": [
        "765c70d3259010fe788721f7221e19d16bbf3d40"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Mar 16 16:31:36 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Mar 16 16:34:40 2026 +0100"
      },
      "message": "tests: libkeymap: add unit tests for dump and kernel helpers\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "765c70d3259010fe788721f7221e19d16bbf3d40",
      "tree": "9971a7b0071df8294d4a946d7109a108958126e4",
      "parents": [
        "e2f8cbc04e495ddf1732c3e83e99ac735601bad1"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Mar 16 11:21:50 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Mar 16 11:56:25 2026 +0100"
      },
      "message": "libkfont: add unit tests for psf and console map\n\nAdd libkfont unit tests for the PSF reader and writer paths in\npsffontop.c, including PSF1/PSF2 images, unicode sequences and a set\nof malformed input cases.\n\nAlso cover console map save/load helpers in mapscrn.c for symbolic,\nbinary and failure paths, including direct screen maps, unicode screen\nmaps and save failures when no map or no output file is available.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "e2f8cbc04e495ddf1732c3e83e99ac735601bad1",
      "tree": "33e41a0a9e815e77d88e14e97b1298ddbd717e8e",
      "parents": [
        "31cb1650884910ed00a14eb89969a34b7bc23952"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 11:41:02 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:36 2026 +0100"
      },
      "message": "tests: add parser-focused libkeymap unit coverage\n\nlibkeymap\u0027s parser still had several grammar and semantic corners covered\nonly indirectly through full keymap fixtures, which made it harder to\npin regressions to a specific rule in parser.y.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "31cb1650884910ed00a14eb89969a34b7bc23952",
      "tree": "99489b871345ca1d488ebc72d974215ea7c14a5c",
      "parents": [
        "a554b2ec79f5d97e860a29665f15b0c2f776feea"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 00:02:28 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:36 2026 +0100"
      },
      "message": "build: make coverage-report rebuild and capture reliably\n\nMake coverage-report rebuild the tree before running the tests, reset\ncoverage counters explicitly, and restrict capture to the libkbdfile,\nlibkeymap, libkfont, and tests subtrees.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "a554b2ec79f5d97e860a29665f15b0c2f776feea",
      "tree": "7da242554c0226e85ee38c47bfb334cc0bf5742f",
      "parents": [
        "77f4d91e25fd22b15ab5583afecb16ab7823b550"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 23:51:20 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:36 2026 +0100"
      },
      "message": "build: keep coverage flags in target-specific CFLAGS\n\nMake those per-target CFLAGS append to AM_CFLAGS instead of replacing\nit, so coverage-enabled builds stay consistent across the tree.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "77f4d91e25fd22b15ab5583afecb16ab7823b550",
      "tree": "d7a0334b1cdded1130c49003cb40f9c2145ee9de",
      "parents": [
        "05a55f6676c6ead0d809aa90415b59bc7a115849"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 23:45:35 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:36 2026 +0100"
      },
      "message": "build: add a project-level coverage-report target\n\nAdd an official top-level coverage-report target that resets coverage\ncounters, runs the test suite, and generates the HTML report in one\nplace. Limit capture to the libkbdfile, libkeymap, libkfont, and tests\nsubtrees so the report stays focused on the supported unit-test paths,\nand drop genhtml options that are not accepted by the tool version used\nhere.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "05a55f6676c6ead0d809aa90415b59bc7a115849",
      "tree": "811e01b748793ca6fe27a5d87458b654052ee087",
      "parents": [
        "ea77b671d12213cd21485a5e2520a77008a40074"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 23:25:53 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:36 2026 +0100"
      },
      "message": "tests: cover libkeymap string and compose loading\n\nAdd focused unit tests for both paths so regressions in string clearing\nand compose table loading can be caught without a real console. This\nextends coverage for lk_load_keymap() beyond key bindings and Unicode\nmode handling.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "ea77b671d12213cd21485a5e2520a77008a40074",
      "tree": "9ecb66da8d18030fa202f62b9c5ce4900ac246ba",
      "parents": [
        "0cfc8e9154c46543554d5f62723953338aa867de"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 23:24:39 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:36 2026 +0100"
      },
      "message": "tests: cover libkfont font parsing and screen map loading\n\nAdd focused unit tests for reading a minimal PSF1 font image and for\nloading a symbolic console map into a Unicode screen map. This gives the\nsuite coverage for the PSF parser and for the code that expands sparse\nscreen maps into the default direct-to-font mapping.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "0cfc8e9154c46543554d5f62723953338aa867de",
      "tree": "52492e1e903a3818d6856a961a73c9d260d74269",
      "parents": [
        "0029aa560f6a79b260012d789d2a4a0d415de996"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 23:23:03 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:36 2026 +0100"
      },
      "message": "tests: cover libkbdfile\u0027s lazy dlopen helper\n\nlibkbdfile\u0027s shared-object lookup helper was still uncovered, even\nthough it drives the fallback path for optional decompressors.\n\nAdd a focused unit test that exercises both the successful symbol lookup\npath and the failure path for a missing symbol. This gives the test\nsuite coverage for the lazy loading logic and checks that failed lookups\ndo not leave a leaked library handle behind.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "0029aa560f6a79b260012d789d2a4a0d415de996",
      "tree": "f12caac832661dd6fc32e2e135e5280d1a0a9546",
      "parents": [
        "dda3280c45d14e1adebafdd8065338c2f7b2fb51"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 23:00:45 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:36 2026 +0100"
      },
      "message": "build: link coverage-instrumented binaries with gcov runtime flags\n\nEnabling code coverage was compiling objects with gcov instrumentation\nbut not reliably carrying the same flags into the final link step.\n\nThat leaves references such as __gcov_init unresolved when binaries link\nagainst static archives like libcommon.a. Propagate the coverage link\nflags through the common build rules and the standalone test makefiles so\na coverage-enabled build links successfully across the tree.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "dda3280c45d14e1adebafdd8065338c2f7b2fb51",
      "tree": "f2924ea72fea4c88f7dafbf422ce83727f716d3a",
      "parents": [
        "a48a8f27ecf1c2ca56545481130d91483b7260d2"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 14:40:38 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:36 2026 +0100"
      },
      "message": "tests: reduce libkbdfile unit test boilerplate\n\nFactor that common logic into a shared test helper, keep the individual\nscenarios separate, and add short descriptions to every libkbdfile\nautotest case so failures are easier to interpret.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "a48a8f27ecf1c2ca56545481130d91483b7260d2",
      "tree": "4a84106ffaa64aefe06e1c9ccdce5220e8a07e2b",
      "parents": [
        "d195b1108d2b5dd41ed7660909d688eb2f8821e5"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 13:55:51 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkeymap: cover lk_load_keymap() aborts on KDSKBENT failures\n\nKey loading must stop as soon as KDSKBENT reports a failure that leaves\nthe kernel state unreliable. In particular, permission failures and I/O\nerrors should abort the load instead of falling through to function\nstring or compose table updates.\n\nAdd unit tests that verify lk_load_keymap() stops immediately on EPERM\nand EIO from KDSKBENT and does not continue with later load stages.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "d195b1108d2b5dd41ed7660909d688eb2f8821e5",
      "tree": "8f5beb2a9e7d11ee23e8b592dd4de7c54d1d8e43",
      "parents": [
        "2287db7597e43aa2d7389256fe5fca3c9d3198aa"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 13:49:41 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkeymap: cover Unicode mode switching in lk_load_keymap()\n\nLoading a keymap in Unicode mode depends on temporarily switching the\nkernel keyboard mode before programming keys and restoring the original\nmode afterwards. If the initial mode switch fails, the load must stop\nimmediately instead of continuing with a partially applied state.\n\nAdd unit tests that verify both sides of this contract: the successful\nUnicode-mode load path and the early failure path when KDSKBMODE\nrejects the switch to K_UNICODE.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "2287db7597e43aa2d7389256fe5fca3c9d3198aa",
      "tree": "a7b1cf699c7e8eec97f76eb080116362e80632a0",
      "parents": [
        "bb26c3df2daac31bfbad9192f05fe48addc372ce"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 13:30:21 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkeymap: cover lk_load_keymap() fallback for old kernels\n\nSome kernels reject keymap deallocation through KDSKBENT with EINVAL,\nand libkeymap is expected to recover by clearing the table entry by\nentry instead of failing the load.\n\nAdd a unit test that exercises this path and verifies that lk_load_keymap()\nkeeps going after the deallocation failure by issuing a full manual\nclear.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "bb26c3df2daac31bfbad9192f05fe48addc372ce",
      "tree": "d75ee188429dedd13b290dc6878208b17fd618a3",
      "parents": [
        "33b8ea78709c8baa0f13472354968e73f828ae97"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 13:23:29 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkeymap: clarify libkeymap autotest case names\n\nAdd short behavior-oriented descriptions to every AT_SETUP entry and\nrenumber the later cases so the suite reads consistently from top to\nbottom.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "33b8ea78709c8baa0f13472354968e73f828ae97",
      "tree": "8042ee3a168324da427c55e5659df1b396e7a627",
      "parents": [
        "5eaa6a2c6bb2fc72cd61b28f35e9369d337dcdf0"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 13:15:53 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkeymap: cover libkeymap kernel keymap loading\n\nThis verifies that lk_kernel_keys() imports populated entries, preserves\nholes, and stops scanning tables when the kernel reports K_NOSUCHMAP,\nwithout requiring a real console device.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "5eaa6a2c6bb2fc72cd61b28f35e9369d337dcdf0",
      "tree": "4088fa16091adb5e29a1319003c4dc82a386a4e1",
      "parents": [
        "ca49f1e51783b4f76576933219f073a78a069928"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 13:09:31 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkeymap: add libkeymap coverage for kernel-backed paths\n\nThis covers behavior that was previously awkward to exercise without a\nreal console, including loading accent tables and function key strings,\nwhile keeping the checks deterministic and root-free.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "ca49f1e51783b4f76576933219f073a78a069928",
      "tree": "fdfaa86e08cfbd83b92952cf004103836a4066cd",
      "parents": [
        "827cfea669a0e6de857db9638f5d34bcc153d362"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 13:01:20 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkeymap: allow unit tests to exercise kernel-dependent paths\n\nSome libkeymap behavior is currently only reachable through ioctls to a\nreal console, which leaves important logic covered only by higher-level\ntests and makes failures harder to isolate.\n\nAdd an internal way to replace the ioctl backend so kernel-dependent\ncode can be tested deterministically in unit tests without changing the\nlibrary\u0027s normal runtime behavior.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "827cfea669a0e6de857db9638f5d34bcc153d362",
      "tree": "462a71a6324d362ee3131d63661f8e3ceb45b802",
      "parents": [
        "7f705308276e8e877d06d6b00d47c003cbd37d1d"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 12:54:32 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "libkeymap: make kernel-facing code unit-testable\n\nlibkeymap still has logic that can only be exercised through ioctls to a\nreal console, which makes unit tests awkward and pushes too much\nbehavior into root-only integration coverage.\n\nAdd an internal seam for the ioctl path so kernel-dependent behavior can\nbe tested in isolation while keeping the normal runtime behavior\nunchanged.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "7f705308276e8e877d06d6b00d47c003cbd37d1d",
      "tree": "4c5e51ae9b99fd899ecc9eb5f6afb070adcf7625",
      "parents": [
        "6e994005d5a52b1fd790d349564dbcc266533dc0"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 12:21:36 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkeymap: reduce libkeymap unit test boilerplate\n\nThis removes repeated kbdfile/keymap loading code, fixes a broken file\npath in one failure message, and tightens the compose-table test so it\nfails instead of only warning when expected entries are missing or still\npresent.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "6e994005d5a52b1fd790d349564dbcc266533dc0",
      "tree": "36dd23e9175d862c23f74fc9f80decdd0508a6f1",
      "parents": [
        "ebac2d1dc7b158f956cf3dae1d4a5c0847c8b575"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 12:02:58 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkfont: cover libkfont screen map wrappers\n\nVerify that getscrnmap() fills the caller buffer from GIO_SCRNMAP and\nthat loadscrnmap() passes the original screen map buffer through to\nPIO_SCRNMAP without modifying it.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "ebac2d1dc7b158f956cf3dae1d4a5c0847c8b575",
      "tree": "f76e404e40bc346837fa02127ad23016d064bb42",
      "parents": [
        "7528ba172d71debb4bce7f22e557b190f3992605"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 11:58:32 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkfont: cover kfont_put_unicodemap() clear failures\n\nVerify that kfont_put_unicodemap() stops immediately when PIO_UNIMAPCLR\nfails, does not attempt PIO_UNIMAP afterwards, and keeps the\ncaller-provided descriptors unchanged.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "7528ba172d71debb4bce7f22e557b190f3992605",
      "tree": "448015fab9e4b8f171a5ae97ba15f6e0f4186ad6",
      "parents": [
        "23f748c49f3c80498b25872b564d74e4b42f7464"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 11:45:22 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkfont: cover kfont_put_unicodemap() retry limit\n\nVerify that kfont_put_unicodemap() stops retrying once advised_hashlevel\nreaches the retry limit, returns an error after repeated ENOMEM\nfailures, and keeps the caller-provided descriptors unchanged.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "23f748c49f3c80498b25872b564d74e4b42f7464",
      "tree": "61e6986ef2512c98aa04a211b90468a3022bc584",
      "parents": [
        "4311d70f1f8fef137ef32d60c9eb8014c5cc47c8"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 11:40:47 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:35 2026 +0100"
      },
      "message": "tests: libkfont: cover kfont_put_unicodemap() ENOMEM retries\n\nVerify that kfont_put_unicodemap() retries PIO_UNIMAP after ENOMEM,\nreissues PIO_UNIMAPCLR with an increased advised_hashlevel, and leaves\nthe caller-provided descriptors unchanged.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "4311d70f1f8fef137ef32d60c9eb8014c5cc47c8",
      "tree": "9791f5eca82166a38282b65a325621fbf5df9000",
      "parents": [
        "5192e7524c5334cb301ca3359badad9f0d99b56e"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 11:38:00 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:34 2026 +0100"
      },
      "message": "tests: libkfont: verify kfont_put_uniscrnmap() copies the map\n\nVerify that kfont_put_uniscrnmap() passes a private copy of the screen\nmap to the ioctl so kernel-side modifications cannot alter the caller\u0027s\nbuffer.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "5192e7524c5334cb301ca3359badad9f0d99b56e",
      "tree": "1dedd064b6c02330b81e19382b9415cb98e67ce2",
      "parents": [
        "4f682181f3c7c943d316516ec23feffbf795ccac"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 11:34:44 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:34 2026 +0100"
      },
      "message": "tests: libkfont: cover tall kfont_put_font() requests\n\nVerify that kfont_put_font() switches to KD_FONT_OP_SET_TALL when the\nfont dimensions require a non-default vpitch, forwards the expected\ngeometry unchanged, and leaves the caller buffer untouched.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "4f682181f3c7c943d316516ec23feffbf795ccac",
      "tree": "de82b5522d43f900fd23c9dd95bfd740a98a5a34",
      "parents": [
        "4a592dc1c473853ab47810f2f56cdbd874aabe7a"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 11:23:10 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:34 2026 +0100"
      },
      "message": "tests: libkfont: cover kfont_put_font() ENOSYS handling\n\nVerify that kfont_put_font() returns an error without retrying and\nleaves the caller buffer unchanged when the requested font operation is\nnot supported.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "4a592dc1c473853ab47810f2f56cdbd874aabe7a",
      "tree": "2984a39814335d09a86820e3252c0d25f19ed904",
      "parents": [
        "81639892837e9293d10ceb13d3191dcaeb9a0643"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 11:18:55 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:34 2026 +0100"
      },
      "message": "tests: libkfont: cover kfont_put_font() retry after EINVAL\n\nCover the case where the kernel rejects a non-standard 8-bit font count\nwith EINVAL and verify that kfont_put_font() retries with a 256-glyph\nbuffer, preserves the original glyph data, zero-pads the extra slots,\nand leaves the caller buffer unchanged.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "81639892837e9293d10ceb13d3191dcaeb9a0643",
      "tree": "99c0e1a73d4954cab6c16941f3e3343799ff37b1",
      "parents": [
        "ebc51c4efd62cd63ba7c6cae30ee51f785556cc4"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Mar 14 11:09:43 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:34 2026 +0100"
      },
      "message": "tests: libkfont: cover kfont_get_font() fallback and failure paths\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "ebc51c4efd62cd63ba7c6cae30ee51f785556cc4",
      "tree": "433600ad358287364ba625819b401cd465d546ea",
      "parents": [
        "6a28bd38d37bf78338f40b0623229ef128e47802"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 19:03:56 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:34 2026 +0100"
      },
      "message": "tests: libkfont: add test for KD_FONT_OP_GET_TALL\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "6a28bd38d37bf78338f40b0623229ef128e47802",
      "tree": "df4364dbb93c6b2e8c747b45e65375f95b857d83",
      "parents": [
        "82679584055f23c680ecc22d4d86cf030db14912"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 18:54:48 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:34 2026 +0100"
      },
      "message": "tests: libkfont: cover regular kfont_get_font path\n\nAdd a libkfont unit test for the successful KDFONTOP get-font path.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "82679584055f23c680ecc22d4d86cf030db14912",
      "tree": "611c9c6b024b227657aada8d56681ac3534be681",
      "parents": [
        "8e1b568b2ee3024bf4cdbf42cc7b278027d95e2a"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 18:41:23 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Mar 15 15:43:34 2026 +0100"
      },
      "message": "tests: add libkfont unit test backend\n\nHide libkfont console operations behind context ops and add an internal\nway for tests to replace them.\n\nThis makes it possible to unit test ioctl-driven paths without touching\nthe real console or requiring root privileges. Add the first libkfont\ntest to cover kfont_get_unicodemap() retrying after ENOMEM.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "8e1b568b2ee3024bf4cdbf42cc7b278027d95e2a",
      "tree": "65a60bb8ad81bc4013038bbae6aacb4ad642afb0",
      "parents": [
        "80008c8677d677f060e4be4480bfb50e75f1a52b"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 18:01:34 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 18:01:34 2026 +0100"
      },
      "message": "libkfont: route console syscalls through context ops\n\nPrepare libkfont for unit tests by moving direct ioctl() and sleep()\ncalls behind function pointers stored in kfont_context.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "80008c8677d677f060e4be4480bfb50e75f1a52b",
      "tree": "2185fd60fb5d63782ef2ed51346d8052794d619a",
      "parents": [
        "f5695d3e69ddc9670dc7dd28107327aceda1ec70"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 11:05:03 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 11:05:03 2026 +0100"
      },
      "message": "CI: Update github versions\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "f5695d3e69ddc9670dc7dd28107327aceda1ec70",
      "tree": "31b63a3f723479f68ee2838bbf8bc1918bad4980",
      "parents": [
        "48b557d8092a0cf8fb82346e06802c58d476a223"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 10:38:38 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 10:57:52 2026 +0100"
      },
      "message": "setfont: check whether console is suitable for font operations\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "48b557d8092a0cf8fb82346e06802c58d476a223",
      "tree": "4c3fe28acd0875d9beef9ffcfa6765ac21837e9f",
      "parents": [
        "bb83f844e359248e7aa1d4a8148c42c21c47f68a"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Mar 05 22:58:08 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 10:39:59 2026 +0100"
      },
      "message": "libkbdfile: avoid double formatting in pathname helper\n\nkbdfile_pathname_sprintf() currently formats the same string twice to\ncompute size and then write output. This adds unnecessary work in a\npath-building helper that is used repeatedly during file lookup.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "bb83f844e359248e7aa1d4a8148c42c21c47f68a",
      "tree": "8338f43864bb76d779b7f83617ffc3319e26cf25",
      "parents": [
        "63a915d670e06ad4b35b1ad273cc1fd85ead0623"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Mar 05 17:22:53 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 10:39:59 2026 +0100"
      },
      "message": "libkbdfile: reject NULL input in pathname/file setup\n\nThe libkbdfile setters are callable through public API, but they\ndereference arguments unconditionally. Passing invalid pointers can\ncrash the caller and turn a recoverable input error into process\ntermination.\n\nValidate input in the setters and let kbdfile_open() fail cleanly when\nno filename is provided, so API misuse is reported as an error instead\nof triggering undefined behavior.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "63a915d670e06ad4b35b1ad273cc1fd85ead0623",
      "tree": "5789f306fbbef004d300f72003ac5b58ef362de9",
      "parents": [
        "09e066ca049082204ad7e3ad05bc35231a9e9a86"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Mar 05 17:16:57 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Mar 13 10:39:59 2026 +0100"
      },
      "message": "libkbdfile: guard gzclose() in zlib cleanup path\n\nThe zlib decompressor cleanup path is reached even when gzopen() fails.\nIn that case, gzf is still NULL and closing it relies on implementation\ndetails of gzclose(NULL).\n\nOnly close the handle when it was successfully initialized, so the error\npath remains explicit and robust.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "09e066ca049082204ad7e3ad05bc35231a9e9a86",
      "tree": "5b84da802bdab36d6521cfdcdea212a6a35b7791",
      "parents": [
        "e9ee3f347124887a54bec4bc3a1ca5044dc0765c"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Mar 05 16:24:47 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Mar 05 16:24:47 2026 +0100"
      },
      "message": "libkbdfile: keep .note.dlopen SONAME metadata valid for longer SONAME lists\n\nEnsure the SONAME array macros produce valid metadata when more than\nthree SONAMEs are provided.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "e9ee3f347124887a54bec4bc3a1ca5044dc0765c",
      "tree": "c8a3a3c7f13b179392144eccbbdb4b3a9abf03ca",
      "parents": [
        "5416a193f42bb5e1ba6c1e18f8e9448984fa76ee"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 22 18:24:57 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Feb 23 09:11:19 2026 +0100"
      },
      "message": "tests: Adapt tests to Backtab\n\nAfter commit 5416a193 (\"Add Backtab keysym and update keymaps to use it\nfor Shift+Tab\"), Backtab appeared. This changed the output of utilities\nand broke the tests.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "5416a193f42bb5e1ba6c1e18f8e9448984fa76ee",
      "tree": "8099b93362b0ecb03729fc517b77c69927876475",
      "parents": [
        "8efa53f399adb1902e9f5aadb4d12f190d348c6c"
      ],
      "author": {
        "name": "Nicolas Pitre",
        "email": "nico@fluxnic.net",
        "time": "Fri Feb 20 17:07:56 2026 -0500"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 22 18:24:25 2026 +0100"
      },
      "message": "Add Backtab keysym and update keymaps to use it for Shift+Tab\n\nAdd a new Backtab keysym (KT_FN index 30) that produces the standard\nbacktab escape sequence \\e[Z. This replaces F246 which was unused.\n\nUpdate all keymaps to use Backtab for Shift+Tab instead of Meta_Tab.\nIn most cases the Meta_Tab binding already existed for Alt+Tab; where\nit was missing, it has been added.\n\nThis change affects keymaps across all architectures: i386, amiga,\natari, mac, sun, and pine.\n\nSigned-off-by: Nicolas Pitre \u003cnpitre@baylibre.com\u003e\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "8efa53f399adb1902e9f5aadb4d12f190d348c6c",
      "tree": "ca7d2203a8530a80d808002ef1866ebe2d6ea5ff",
      "parents": [
        "18152e1d5469ad23b1fa4d08077ed8ac2d9c7f70"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 17:09:02 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 17:09:02 2026 +0100"
      },
      "message": "libkeymap: keep array element count consistent on updates\n\nArray metadata must reflect the real number of populated slots,\notherwise callers that rely on count can iterate past valid entries and\noperate on invalid state.\n\nUpdate lk_array_set() to adjust count only when slot occupancy actually\nchanges, instead of incrementing on every write.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "18152e1d5469ad23b1fa4d08077ed8ac2d9c7f70",
      "tree": "b155e037fd2ca5b26032482ac369a52a86491c6c",
      "parents": [
        "70cdc24ec9cb670c3294e779d1d234d14529b49e"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 17:00:44 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 17:00:44 2026 +0100"
      },
      "message": "libkeymap: report array init failures with correct errno text\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "70cdc24ec9cb670c3294e779d1d234d14529b49e",
      "tree": "75093def2e6b2aac1cdf258c840c565b2b48cfaf",
      "parents": [
        "86d25f26a229c16fe5846ee2d21910a44c615d78"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 16:59:03 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 16:59:03 2026 +0100"
      },
      "message": "libkeymap: reject invalid negative indices\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "86d25f26a229c16fe5846ee2d21910a44c615d78",
      "tree": "c5fd1064f41569f9a47e339b4ac526ebe89a9ede",
      "parents": [
        "f18076dbf1b546c84ab7e04af76a26094fd5d8ea"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 14:44:51 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 14:44:51 2026 +0100"
      },
      "message": "libkeymap: fail safely on diacritic/keyline allocation errors\n\nParsing and table updates must not report success after allocation\nfailures, or users can get partial keymap state with silent data loss.\n\nCheck lk_array_set()/lk_array_append() results in diacritic and parser\npaths, free temporary allocations on failure, and propagate OOM as an\nerror immediately.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "f18076dbf1b546c84ab7e04af76a26094fd5d8ea",
      "tree": "61fac812573e3d3fa98d59068c8801a91f72d5e6",
      "parents": [
        "0590d91893afadd69e227e007e2a26b44d893ac8"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 13:48:30 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 13:48:30 2026 +0100"
      },
      "message": "libkeymap: keep function table consistent under memory pressure\n\nFailing a function-string update on OOM must not silently drop the\nprevious binding, otherwise callers can lose state even though the\nupdate did not succeed.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "0590d91893afadd69e227e007e2a26b44d893ac8",
      "tree": "5e00f24c4d0e10f3f703c33e64f3e3c436f2de7c",
      "parents": [
        "d92b7365dc1435f95e03efead3ac36e7d3ee5944"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 13:36:53 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 13:36:53 2026 +0100"
      },
      "message": "libkeymap: avoid undefined behavior when parsing include path from env\n\nKeep include lookup reliable across libc/toolchain variants by avoiding\nwrites to environment storage returned by getenv(), which is not safe to\nmodify.\n\nParse LOADKEYS_INCLUDE_PATH from a private copy instead, preserving the\nexisting search semantics while preventing UB.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "d92b7365dc1435f95e03efead3ac36e7d3ee5944",
      "tree": "453859b252933da2fbd3824328185bff2bf084ae",
      "parents": [
        "58c802a9e6c76535145e076bd91aaaf57e9eabe2"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 13:14:26 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Feb 15 13:14:26 2026 +0100"
      },
      "message": "libkeymap: prevent out-of-bounds access on deep include nesting\n\nLimit ctx-\u003estack scans by MAX_INCLUDE_DEPTH to avoid reading past the\nstack array when include nesting reaches or exceeds the configured depth.\n\nWithout this bound, stack probing relied on a NULL terminator and could\nrun out of bounds on deeply nested includes.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "58c802a9e6c76535145e076bd91aaaf57e9eabe2",
      "tree": "c12969d67acfd1bec1e2b0aa503dfbc38014e348",
      "parents": [
        "06957281fe21c568b307aed4c6edb8061780b836"
      ],
      "author": {
        "name": "Krdyan Areg",
        "email": "areg.krdian@gmail.com",
        "time": "Thu Feb 12 17:13:39 2026 +0300"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Feb 13 11:26:51 2026 +0100"
      },
      "message": "setfont: explicitly initialize ptr to NULL\n\nVariable \u0027ptr\u0027 is declared but not initialized. If an error occurs before\nthe first loop iteration, the error path at \u0027end\u0027 label calls free(ptr)\non an uninitialized pointer.\n\nSigned-off-by: Krdyan Areg \u003careg.krdian@gmail.com\u003e\n"
    },
    {
      "commit": "06957281fe21c568b307aed4c6edb8061780b836",
      "tree": "d7fe3bcb5817ac1221b561cc6047f7355f7ba24d",
      "parents": [
        "cdfb5bcc87a9950962ecdc5faeba2989644586a3"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Jan 24 21:49:08 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Jan 25 12:09:00 2026 +0100"
      },
      "message": "Check buffer boundaries when forming command string\n\nReplace unsafe strcpy() and strcat() calls with snprintf() to prevent\nbuffer overflow when constructing command strings.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "cdfb5bcc87a9950962ecdc5faeba2989644586a3",
      "tree": "03437b8782aac19696b265452b0c4474dae66a58",
      "parents": [
        "2f9a4e56c2ef245fbe840677aad9d5932e17f50d"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Jan 24 21:47:54 2026 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Jan 25 12:00:01 2026 +0100"
      },
      "message": "Use size-bounded string functions\n\nReplace unsafe sprintf() calls with snprintf() to prevent buffer overflow\nin console device file path construction.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "2f9a4e56c2ef245fbe840677aad9d5932e17f50d",
      "tree": "d83c1fdd2ad802d8717a2ebe47ec41393259eeb9",
      "parents": [
        "7aa15f4c44b570a667b4911a2b6db0e6b9145da5"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Dec 08 11:28:24 2025 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Dec 08 11:28:24 2025 +0100"
      },
      "message": "libkbdfile: Fix problem with undeclared sym_gzopen\n\nA compile error occurs on certain systems:\n\nkbdfile-zlib.c: In function \u0027dlopen_note\u0027:\nelf-note.h:27:30: error: \u0027sym_gzopen\u0027 undeclared (first use in this function); did you mean \u0027sym_gzopen64\u0027?\n   27 | #define DLSYM_ARG(symbol__) \u0026sym_##symbol__, STRINGIFY(symbol__),\n\nkbdfile-zlib.c: In function \u0027kbdfile_decompressor_zlib\u0027: kbdfile-zlib.c:61:15: error: implicit declaration of function \u0027sym_gzopen\u0027; did you mean \u0027sym_gzopen64\u0027?\n [-Wimplicit-function-declaration]\n   61 |         gzf \u003d sym_gzopen(file-\u003epathname, \"rb\");\n\nThe problem arises because if -D_FILE_OFFSET_BITS\u003d64 is specified, which\nin zlib ultimately makes gzopen a macro that expands to gzopen64.\nDECLARE_SYM(gzopen) from elf-note.h then expands gzopen to gzopen64,\nresulting in sym_gzopen64 declared. That\u0027s why no sym_gzopen exists.\n\nLink: https://github.com/legionus/kbd/pull/150\nSuggested-by: Jan Čermák \u003csairon@sairon.cz\u003e\nSigned-off-by: Bernd Kuhls \u003cbernd@kuhls.net\u003e\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "7aa15f4c44b570a667b4911a2b6db0e6b9145da5",
      "tree": "6ecd094bb279e67aa3c031e34f0aebfbd12b22e6",
      "parents": [
        "60d9a8aebef1447a7056944a510c2995dd53c92b"
      ],
      "author": {
        "name": "Tommy-Zhang3759",
        "email": "tommyzhang4707@outlook.com",
        "time": "Sat Dec 06 05:18:43 2025 +1100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Dec 07 18:11:22 2025 +0100"
      },
      "message": "setfont: Initialize data pointer when resetting font\n\nWhen resetting the font to default, the `data` field in the\n`console_font_op` structure must be explicitly set to NULL.\n\nPreviously, this field was left uninitialized. The kernel treats a\nnon-NULL `data` pointer as a pointer to a font name string. This caused\nthe ioctl to fail with -EFAULT (Bad address) because it attempted to\nread from a garbage address.\n\nSigned-off-by: Yutao Zhang \u003ctommyzhang4707@outlook.com\u003e\n"
    },
    {
      "commit": "60d9a8aebef1447a7056944a510c2995dd53c92b",
      "tree": "4d359cb423c3ca95e7b61d4591650e233f6c721a",
      "parents": [
        "c5473634bbb653f0b61bd237d0e4bdfc9cfe3650"
      ],
      "author": {
        "name": "Matthias von Arx",
        "email": "matthias.von-arx@gmx.ch",
        "time": "Tue Nov 25 00:12:11 2025 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Fri Nov 28 15:44:49 2025 +0100"
      },
      "message": "Swiss german keyboard adjustements\n\nWhat changed:\n- Removed meta and alt modifier for numbers and punctuation since they are not needed\n  for this layout\n- Moved some keybindings to with the column-style instead of\n  explicitly defining in a separate line - also avoiding duplication\n- Move backslash to the correct position. This was in a wrong position\n  for Mac Swissgerman keyboards\n  shift 7\n- Removed control_g for keycode 40 since that was wrong\n- Include keymap 3 in keymaps since it is needed for the correct backslash keybind\n\nSigned-off-by: Matthias von Arx \u003cmatthias.von-arx@gmx.ch\u003e\n"
    },
    {
      "commit": "c5473634bbb653f0b61bd237d0e4bdfc9cfe3650",
      "tree": "ea011290c7dad165a80abb3b5bc08520e6e9e4cb",
      "parents": [
        "2458ab2797bfd43d4ffc555127856a3cdf49a5db"
      ],
      "author": {
        "name": "Bohai Li",
        "email": "lbhlbhlbh2002@icloud.com",
        "time": "Wed Nov 19 00:31:52 2025 +0800"
      },
      "committer": {
        "name": "Bohai Li",
        "email": "lbhlbhlbh2002@icloud.com",
        "time": "Wed Nov 19 00:42:58 2025 +0800"
      },
      "message": "Fix NULL reference in option parser\n\nIf an option that needs an argument is given, but the argument is\nactually missing, the optind will increase by 1 and return, and if\nthe option is the last option, a NULL reference occurs at\nsetfont.c:290. This bug is fixed by returning \u0027!\u0027 instead of \u0027?\u0027 to\nmain and process this condition separately.\n\nSigned-off-by: Bohai Li \u003clbhlbhlbh2002@icloud.com\u003e\n"
    },
    {
      "commit": "2458ab2797bfd43d4ffc555127856a3cdf49a5db",
      "tree": "6bc6aa3f5d06222fa470e1462dc078f65c96b59c",
      "parents": [
        "51ee1d95fae950323b62d3f31b14dc1e0e436762",
        "80983dcc236050e16be3b5b877e372673201832d"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Nov 13 11:48:47 2025 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Nov 13 11:48:47 2025 +0100"
      },
      "message": "Merge branch \u0027github-pull-146\u0027\n\nAdd a new Norwegian keymap for Apple.\n\n* github-pull-146:\n  Add keymap for Norwegian Apple ISO keyboard (mac-no.map)\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "80983dcc236050e16be3b5b877e372673201832d",
      "tree": "9fbc8ff6123018b6dd150bc733f61ca28a1c405c",
      "parents": [
        "db82eb6f86e6c0b8ac4260e88b88d66e1cd7c077"
      ],
      "author": {
        "name": "Charlie Donovan",
        "email": "git.donovan@offshore.rocks",
        "time": "Tue Oct 21 17:50:10 2025 +0200"
      },
      "committer": {
        "name": "Charlie Donovan",
        "email": "git.donovan@offshore.rocks",
        "time": "Fri Nov 07 14:28:12 2025 +0100"
      },
      "message": "Add keymap for Norwegian Apple ISO keyboard (mac-no.map)\n\nTested on Linux 6.12.48 (Debian 13.1.0) in a VirtualBox 7.1 VM, hosted by MacOS Ventura 13.7.8\nusing a Magic Keyboard with Numeric Keypad and a Macbook Pro keyboard\n\nSigned-off-by: Charlie Donovan \u003cgit.donovan@offshore.rocks\u003e\n"
    },
    {
      "commit": "51ee1d95fae950323b62d3f31b14dc1e0e436762",
      "tree": "d582ef98dce2f04669cfacec848cc906dc4eba60",
      "parents": [
        "e4367620da3bd97111998de1aeec6ad68dbb477c"
      ],
      "author": {
        "name": "Haelwenn (lanodan) Monnier",
        "email": "contact@hacktivis.me",
        "time": "Fri Oct 31 04:44:33 2025 +0100"
      },
      "committer": {
        "name": "Haelwenn (lanodan) Monnier",
        "email": "contact@hacktivis.me",
        "time": "Sun Nov 02 06:56:14 2025 +0100"
      },
      "message": "data/Makefile.am: put `--` between end of option and mode\n\nPOSIX comforming getopt(3) will stop parsing options at the mode argument\n(provided it doesn\u0027t starts with a dash).\nSo prior to this change `--` would be taken as a file argument\nbecause getopt(3) already stopped.\n\nSigned-off-by: Haelwenn (lanodan) Monnier \u003ccontact@hacktivis.me\u003e\n"
    },
    {
      "commit": "e4367620da3bd97111998de1aeec6ad68dbb477c",
      "tree": "85fd303f5b3ddb1975e1a71ade15b85ae40aed21",
      "parents": [
        "ac7a91547cbf40d296d42e87c92c8131e6af630f"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Oct 28 00:49:54 2025 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Oct 28 00:49:54 2025 +0100"
      },
      "message": "CI: Update ubuntu version\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "ac7a91547cbf40d296d42e87c92c8131e6af630f",
      "tree": "1cf7cd16dcd1cdecd2e34909ba772d69bf02e64d",
      "parents": [
        "db82eb6f86e6c0b8ac4260e88b88d66e1cd7c077"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Oct 27 20:33:05 2025 +0100"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Oct 27 20:33:05 2025 +0100"
      },
      "message": "Do not cast the ioctl argument type\n\nType conversion is not required in this case. It simply masks the type\nof the argument.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "db82eb6f86e6c0b8ac4260e88b88d66e1cd7c077",
      "tree": "9b8f7a98606f487477dfb7db5f7f8dfde23eeda0",
      "parents": [
        "5264edbf92ece130d1c559fe72ab04d24045da8f"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Wed Sep 10 10:45:25 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Wed Sep 10 10:45:25 2025 +0200"
      },
      "message": "Preserve only necessary metadata during install\n\n\"cp -a\" tries to preserve all attributes if possible. This implies\npreserving mode, any ACL, xattr permissions, and security context.\n\nIn some cases (such as fakeroot), it is not possible to preserve that\nall attributes are preserved.\n\n  cp: failed to preserve ownership for /tmp/.pkgmk/pkg/usr/share/kbd/keymaps/i386/qwertz/sr-latin.map.gz: Operation not supported\n\nTo avoid this, we will require that only the necessary attributes be\npreserved. It is important for us to preserve the simlinks.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "5264edbf92ece130d1c559fe72ab04d24045da8f",
      "tree": "0dba56923baf854ee21f07dbcc00e807c3f762d7",
      "parents": [
        "9909e921073ad87a55e715e093308a5b2e2bd262"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Sep 04 11:02:18 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Sep 04 11:26:31 2025 +0200"
      },
      "message": "v2.9.0\n\nkeymaps:\n+ Add console keymap for Mac swiss german keyboards.\n\nlibkbdfile:\n+ Detect archive type based on content.\n+ Add support for decompressing files without using utilities. Use\n  ELF_DLOPEN_METADATA if possible.\n\nutils:\n+ loadkeys: Add --tkeymap to dump the keymap as text.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "9909e921073ad87a55e715e093308a5b2e2bd262",
      "tree": "d36087e98cf831f504deaeadb3cbf86308d0316c",
      "parents": [
        "5f532c1c7ce8a8fbba6fb4cc58dff7be84e8b900"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Aug 31 11:32:56 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Sep 01 15:40:37 2025 +0200"
      },
      "message": "Upgrade configure.ac\n\nTo increase portability, configure.ac has been updated:\n\n* Get rid of using shell code directly. Instead, the functions provided\n  by autoconf are used.\n* Use notifications to split configure sections.\n* Add information about dlopen to the summary message.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "5f532c1c7ce8a8fbba6fb4cc58dff7be84e8b900",
      "tree": "f37920077b9a24e0db467ceb9065f7888c6cea82",
      "parents": [
        "ca2124ae693583be8dd041abd85f10fb2e10ead6"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Sep 01 15:40:13 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Sep 01 15:40:37 2025 +0200"
      },
      "message": "Upgrade clang-format configuration\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "ca2124ae693583be8dd041abd85f10fb2e10ead6",
      "tree": "7a352192c0b5315058f733bddcd717e85529802d",
      "parents": [
        "adf884c3a009c677559482c7ac6dca83fa77acb6"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Aug 30 17:11:14 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Aug 30 17:49:29 2025 +0200"
      },
      "message": "CI: Rewrite DCO check\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "adf884c3a009c677559482c7ac6dca83fa77acb6",
      "tree": "a5e81b36710dd86c65a50f834566117234c56dd8",
      "parents": [
        "8affbbad93272ea54347500ae671db2f98a543cd"
      ],
      "author": {
        "name": "Matthias von Arx",
        "email": "matthias.von-arx@gmx.ch",
        "time": "Tue Aug 19 21:57:19 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Aug 24 18:57:13 2025 +0200"
      },
      "message": "kbd: Add console keymap for Mac swiss german keyboards\n\nAdd swiss german Mac keyboard layout with Mac-specific adaptations.\n\nSigned-off-by: Matthias von Arx \u003cmatthias.von-arx@gmx.ch\u003e\n"
    },
    {
      "commit": "8affbbad93272ea54347500ae671db2f98a543cd",
      "tree": "2dfb644ba31d4e4bd9878a0d449d838bdb84d5a4",
      "parents": [
        "4a130e50ee55030b1f0e227eba25a2c06aec23a5"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Wed Aug 20 15:49:02 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Aug 24 18:57:13 2025 +0200"
      },
      "message": "Fix automake warning\n\nAM_DISTCHECK_CONFIGURE_FLAGS should only be added if CODE_COVERAGE_ENABLED\nis true, otherwise automake will issue a warning during generation:\n\n  Makefile.am:9: warning: AM_DISTCHECK_CONFIGURE_FLAGS was already defined in condition CODE_COVERAGE_ENABLED, which is included in condition TRUE ...\n  aminclude_static.am:100: ... \u0027AM_DISTCHECK_CONFIGURE_FLAGS\u0027 previously defined here\n  Makefile.am:6:   \u0027aminclude_static.am\u0027 included from here\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "4a130e50ee55030b1f0e227eba25a2c06aec23a5",
      "tree": "d8e6bb4c77738e004014b75cae69701a14692e5e",
      "parents": [
        "b472a58cefe2a3d18292967941896f52045ed83d"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Wed Aug 20 15:28:02 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Aug 24 18:57:13 2025 +0200"
      },
      "message": "Convert an error about an unsupported lexer to a warning\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "b472a58cefe2a3d18292967941896f52045ed83d",
      "tree": "ed997819577413e5324ad4666001e090aeb7f1fc",
      "parents": [
        "7a17e651b228e0a9dbb7b2f0841ae0ea25e25a6f"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 19 19:15:28 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Aug 24 18:57:13 2025 +0200"
      },
      "message": "tests: Better test tty existance\n\nIt is not enough to use tty to check the terminal. It is necessary to\ncheck whether the terminal points to a real terminal and not a\npseudo-terminal.\n\nTo do this, we use kbdinfo to obtain the terminal mode as a terminal\ncheck. This will allow us to repeat the terminal search algorithm used\nby all utilities in the project.\n\nLink: https://github.com/legionus/kbd/issues/143\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "7a17e651b228e0a9dbb7b2f0841ae0ea25e25a6f",
      "tree": "3e80eef2600146b397a47991aeca9ff2476be1b5",
      "parents": [
        "89f00a77a8a08b7d4f23b0eb1221054f0b7a1c25"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 19 10:33:55 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 19 10:33:55 2025 +0200"
      },
      "message": "Exclude files that had not been installed before\n\nPreviously, a list of directories that needed to be installed was used.\nThis led to problems keeping the list up to date. After refactoring,\neverything we have in data/ is installed.\n\nHowever, regression occurred and elements began to be installed that\nshould not have been included.\n\nLink: https://github.com/legionus/kbd/issues/145\nFixes: f96c3b5c (\"Preserve symlinks to files\")\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "89f00a77a8a08b7d4f23b0eb1221054f0b7a1c25",
      "tree": "915bf58189af117050462c09e9338c4ca0dbcb1e",
      "parents": [
        "eddc753fd9eebc8019e12a8b83c5c431e6c22af7"
      ],
      "author": {
        "name": "Sertonix",
        "email": "sertonix@posteo.net",
        "time": "Sun Aug 17 22:26:09 2025 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 17 22:26:09 2025 +0000"
      },
      "message": "Ignore file mode bits of generated files\n\nThe correct file mode will be set on install and is not relevant for the generated file.\r\n\r\nThis also avoids using the non-portable chmod --reference\n\nSigned-off-by: Sertonix \u003csertonix@posteo.net\u003e"
    },
    {
      "commit": "eddc753fd9eebc8019e12a8b83c5c431e6c22af7",
      "tree": "ba69e89a53fcfce9d9bc0a925dbaedb7c85f1661",
      "parents": [
        "f96c3b5c70ecba891e2e4ef21c584946daa4a39a",
        "46295167a55643e941c8cdcfd2cb76bd138c851c"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Aug 17 18:31:23 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Aug 17 18:31:23 2025 +0200"
      },
      "message": "Merge branch \u0027use-compression-libraries\u0027\n\nIn some configurations, the use of utilities is redundant. Also, popen()\nrequires /bin/sh. However, not all configurations utilize the libz and\nlibbz2 libraries. For example, busybox has its own implementations of\ngzip and bzip2.\n\nA solution that would suit everyone is to add support for\nELF_DLOPEN_METADATA[1]. This will avoid unnecessary dependencies where\nutilities are available and avoid using utilities where libraries are\navailable.\n\n[1] https://github.com/systemd/systemd/blob/main/docs/ELF_DLOPEN_METADATA.md\n\nLink: https://github.com/legionus/kbd/pull/141\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "f96c3b5c70ecba891e2e4ef21c584946daa4a39a",
      "tree": "7f3615d288a24894f34f96ebf2d6dc423d0c9dd0",
      "parents": [
        "54711d6bffe16613696aa668bd7023c1c142fde1"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 12 17:28:41 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Aug 17 14:06:15 2025 +0200"
      },
      "message": "Preserve symlinks to files\n\nWe need to try to preserve links to files to avoid duplicating content.\nWe can do our best to calculate the new target of the symlink.\n\nLink: https://github.com/legionus/kbd/issues/139\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "46295167a55643e941c8cdcfd2cb76bd138c851c",
      "tree": "4a247a8a1b48d17a035b3adfd369e6332d03183a",
      "parents": [
        "964434466e20bf21de324cd6e8f22d5c30c898ab"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 12 10:28:12 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 12 10:35:55 2025 +0200"
      },
      "message": "Add test for libkbdfile with dlopen\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "964434466e20bf21de324cd6e8f22d5c30c898ab",
      "tree": "212a731d229e63e5156db792795403ebce51bc00",
      "parents": [
        "4d1477d2dfef8c71b6f1cecd9fb131869332648c"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Aug 11 21:18:42 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 12 10:35:50 2025 +0200"
      },
      "message": "libkbdfile: Use libzstd to decompress files\n\nUse dynamic loading of libzstd for direct use without direct linking.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "4d1477d2dfef8c71b6f1cecd9fb131869332648c",
      "tree": "453cb499b50d6704386fcf4c5339aea7fc92dbaf",
      "parents": [
        "e58d5cdf8b118141d517ae73e257ec6d2231496b"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Aug 11 16:57:53 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 12 10:35:35 2025 +0200"
      },
      "message": "libkbdfile: Use liblzma to decompress files\n\nUse dynamic loading of liblzma for direct use without direct linking.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "e58d5cdf8b118141d517ae73e257ec6d2231496b",
      "tree": "c1e9563c2274b6baa1771df1521615bb6df684d4",
      "parents": [
        "a2a1bd650654b819c67a68c9e963ac91808762ac"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Aug 07 15:55:12 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 12 10:35:15 2025 +0200"
      },
      "message": "libkbdfile: Use libbz2 to decompress files\n\nUse dynamic loading of libbz2 for direct use without direct linking.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "a2a1bd650654b819c67a68c9e963ac91808762ac",
      "tree": "b1a8320c34706f41b8a966cb752b043fd0b3ef46",
      "parents": [
        "7fdd8debe37ae52812b77d82e08713bd62c607f4"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Aug 07 11:27:00 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 12 10:34:54 2025 +0200"
      },
      "message": "CI: Update musl configuration\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "7fdd8debe37ae52812b77d82e08713bd62c607f4",
      "tree": "8cc95698a9b1fcee40e7fe0bcaee9cdc7c23f6f0",
      "parents": [
        "15420ec757116f4810bd2c2477e852ba0330851c"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Wed Aug 06 17:52:57 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 12 10:34:45 2025 +0200"
      },
      "message": "libkbdfile: Use zlib to decompress files\n\nUse dynamic loading of zlib for direct use without direct linking.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "15420ec757116f4810bd2c2477e852ba0330851c",
      "tree": "7c8ebb0a13d2bf5dc9d1de4c1820a15b9e1e8418",
      "parents": [
        "df7fcc6a0b0f8e28cf2371b2a8d20eaadb578274"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Wed Aug 06 16:56:48 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Aug 11 22:36:39 2025 +0200"
      },
      "message": "libkbdfile: Add support for decompressing files without using utilities\n\nIn some configurations, the use of utilities is redundant. Also, popen()\nrequires /bin/sh. However, not all configurations utilize the libz and\nlibbz2 libraries. For example, busybox has its own implementations of\ngzip and bzip2.\n\nA solution that would suit everyone is to add support for ELF_DLOPEN_METADATA[1].\nThis will avoid unnecessary dependencies where utilities are available\nand avoid using utilities where libraries are available.\n\n[1] https://github.com/systemd/systemd/blob/main/docs/ELF_DLOPEN_METADATA.md\n\nLink: https://github.com/legionus/kbd/issues/138\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "df7fcc6a0b0f8e28cf2371b2a8d20eaadb578274",
      "tree": "bc751f186df51cacb9588601038c5cf309346e03",
      "parents": [
        "4e504ab0cd45ada89f8d197b5e93056c4ee97bf9"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Aug 05 18:23:48 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Aug 07 10:24:00 2025 +0200"
      },
      "message": "libkbdfile: Split PIPE and COMPRESSED flags\n\nCurrently, the PIPE flag indicates that the file is compressed, because\nan external utility gzip/bzip2 is used to unpack the file.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "4e504ab0cd45ada89f8d197b5e93056c4ee97bf9",
      "tree": "3eedecb50cbfd2ce737f9166d0eb5354934742bf",
      "parents": [
        "1b1e4c8e0cc6d61192de1b62127e5aead7e17772"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Aug 04 16:18:43 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Aug 07 10:23:59 2025 +0200"
      },
      "message": "libkbdfile: Detect archive type based on content\n\nA more reliable way to determine the archive type is to use the content.\nFor backward compatibility, archive suffixes are added to filenames, but\nthis is no longer a criteria for selecting a decompressor.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "1b1e4c8e0cc6d61192de1b62127e5aead7e17772",
      "tree": "0f64d9574cea60179a3e961318882df3f5f62787",
      "parents": [
        "47475df5a849c77ff72cdb7ac7faab52c6025453"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Aug 03 17:36:26 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Aug 07 10:23:59 2025 +0200"
      },
      "message": "libkbdfile: Use common function to open file\n\nUse maybe_pipe_open() as a common wrapper to open a file and possibly\nuncompress it. The decompressor is now picked only here.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "47475df5a849c77ff72cdb7ac7faab52c6025453",
      "tree": "eecc221f68cc1a8adac9927a245be49db30f282c",
      "parents": [
        "1feaacc66c6f863de926e090bf2794ae339ea0d3"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat Aug 02 15:28:00 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Aug 07 10:23:59 2025 +0200"
      },
      "message": "libkbdfile: Add wrapper to fill pathname\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "1feaacc66c6f863de926e090bf2794ae339ea0d3",
      "tree": "1e08898085f27d7814dc5272665bb86d8e242887",
      "parents": [
        "be7a6abf74773eddaddebaeacbf6da9c8156c764"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Aug 03 14:02:20 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Aug 07 10:23:59 2025 +0200"
      },
      "message": "tests: Improve libkbdfile tests\n\nAdded archive suffix check, added subdirectory search check.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "be7a6abf74773eddaddebaeacbf6da9c8156c764",
      "tree": "96739e67447b7f9bf9d772fadec897ab101954e2",
      "parents": [
        "a59a197946f79a2b97d2536df0d1d1b3d181f4e5"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Aug 03 13:59:28 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Aug 07 10:23:59 2025 +0200"
      },
      "message": "tests: Fix arch check\n\nFixed a typo in the ppc64el architecture check that was not working as\nintended.\n\nFixes: 38e46e6b (\"tests: disable libkbdfile testcase on ppc64el\")\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "a59a197946f79a2b97d2536df0d1d1b3d181f4e5",
      "tree": "2f03bde35523677be539edbb3cec14864a371c36",
      "parents": [
        "54711d6bffe16613696aa668bd7023c1c142fde1"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Aug 07 10:19:07 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Aug 07 10:23:59 2025 +0200"
      },
      "message": "CI: Disable sparse check\n\nThe sparse utility does not support the code that will be added:\n\n  extern int gzopen(int arg);\n  static typeof(gzopen) *sym_gzopen;\n\n  int main(void)\n  {\n  \tint i \u003d sym_gzopen(1);\n  \treturn 0;\n  }\n\nFor now, we will have to disable this check until support for this\nsyntax is added.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "54711d6bffe16613696aa668bd7023c1c142fde1",
      "tree": "131121b1eb853dcab304b949ace0aab938fb0a62",
      "parents": [
        "38e46e6b655f45e22b4f864c03492a275e44e27e",
        "1eaff6809f26b2984c57051e5e45159e957b840d"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Jul 01 10:49:10 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Tue Jul 01 10:49:10 2025 +0200"
      },
      "message": "Merge branch \u0027github-pull-136\u0027\n\nThere is a non-consistency between reading keymap and dump keymap. Prior\nto the --tkeymap option of loadkeys, this was not noticeable. But now\nthis option has revealed a few problems with the keymap dump.\n\n$ ./loadkeys --tkeymap\u003d8 us | ./loadkeys --tkeymap\u003d8 -\nadding map 3 violates explicit keymaps line\n\nLink: https://github.com/legionus/kbd/issues/135\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "1eaff6809f26b2984c57051e5e45159e957b840d",
      "tree": "131121b1eb853dcab304b949ace0aab938fb0a62",
      "parents": [
        "a374f3b984a9dcf1be0c8849651df968a6038ca7"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Jun 30 18:04:16 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Jun 30 18:30:55 2025 +0200"
      },
      "message": "tests: check parsing and restoration of alt_is_meta\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "a374f3b984a9dcf1be0c8849651df968a6038ca7",
      "tree": "ea44a965e98beb97644cddcdf726828b93cc2632",
      "parents": [
        "dc5cd7f94e0f876e92d40b397b4b512d56e084ce"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Jun 30 17:50:16 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Jun 30 18:30:55 2025 +0200"
      },
      "message": "tests: Optimize utils.at\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "dc5cd7f94e0f876e92d40b397b4b512d56e084ce",
      "tree": "3f551821aba50ff00c01bc01ad3de420d927cd2c",
      "parents": [
        "b8e7eb4b941515e1a44c7b347ee70af495d4b0f5"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Jun 30 10:31:02 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Mon Jun 30 10:31:02 2025 +0200"
      },
      "message": "dump: Drop obsolete comments\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "b8e7eb4b941515e1a44c7b347ee70af495d4b0f5",
      "tree": "efbc3942ef1b2444df9e43ab0492c98956746f1f",
      "parents": [
        "25254ea998033981a1de49b84eaafe3c467b2004"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Jun 29 12:21:41 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Jun 29 13:57:12 2025 +0200"
      },
      "message": "dump: Add a high level wrapper to improve consistency\n\nThe lk_dump_bkeymap() and lk_dump_ctable() add implicit mappings by\ncalling lk_add_constants(). The lk_dump_keymap() does not do this.\n\nTo improve consistency let\u0027s add an additional function that does\nthe same way.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "25254ea998033981a1de49b84eaafe3c467b2004",
      "tree": "f40fd2a7dc83c10700ee3f9b989209754122e3c8",
      "parents": [
        "9190dcb51c004dd8afaef60efe6109aead8e8a77"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Thu Jun 26 15:50:19 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Jun 29 13:57:12 2025 +0200"
      },
      "message": "dump: Show keymaps keyword only if needed\n\nIt is necessary to output keymaps only if there is a range. Otherwise, a\nsyntactically incorrect keymap will be output.\n\nBefore:\n\n$ src/loadkeys --tkeymap - \u003c /dev/null\nkeymaps\n$\n\nAfter:\n\n$ src/loadkeys --tkeymap - \u003c /dev/null\n$\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "9190dcb51c004dd8afaef60efe6109aead8e8a77",
      "tree": "a6aed9d6fd74f37152ed701252873b0bfd339431",
      "parents": [
        "38e46e6b655f45e22b4f864c03492a275e44e27e"
      ],
      "author": {
        "name": "Pierre Le Marre",
        "email": "dev@wismill.eu",
        "time": "Wed Jun 04 15:29:02 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Jun 29 13:57:11 2025 +0200"
      },
      "message": "dump: Fix rountrip\n\nThere are two issues related when dumping a keymap in text format:\n- These is a conflict between skipping the keymaps in `lk_dump_keymaps`\n  and forcing all keymaps in `lk_dump_keys`.\n\n  Fixed by always including all defined keymaps, independently of the\n  `LK_KEYWORD_ALTISMETA` flag.\n- The function `lk_add_constants` is not called, so implicit mappings\n  such as `Ctrl + q \u003d Control_q` are not set.\n\n  Fixed by properly calling `lk_add_constants` before each call of\n  `lk_dump_keymap`. `lk_add_constants` is not added to `lk_dump_keymap`,\n  since it modifies the keymap.\n\n  Note that since it is easy to forget to call `lk_add_constants`, a\n  better fix could be to call `lk_add_constants` just before returning\n  from `lk_parse_keymap`.\n\nSigned-off-by: Pierre Le Marre \u003cdev@wismill.eu\u003e\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    },
    {
      "commit": "38e46e6b655f45e22b4f864c03492a275e44e27e",
      "tree": "cc0ecfd4955e3bbfec128fe049c47a4870f7062f",
      "parents": [
        "c9debc0b7720bf60da7cc35725bb2d6360b133f2"
      ],
      "author": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sat May 31 19:55:08 2025 +0200"
      },
      "committer": {
        "name": "Alexey Gladkov",
        "email": "legion@kernel.org",
        "time": "Sun Jun 01 17:23:21 2025 +0200"
      },
      "message": "tests: disable libkbdfile testcase on ppc64el\n\nSometimes the libkbdfile-test13 fails on ppc64el with an error:\n\n  \u003d\u003d19193\u003d\u003d Command: /tmp/kbd/tests/libkbdfile/.libs/libkbdfile-test13\n  \u003d\u003d19193\u003d\u003d\n\n  vex: priv/host_ppc_defs.c:6712 (chainXDirect_PPC): Assertion `isLoadImm_EXACTLY2or5(p, 30, (Addr)disp_cp_chain_me_EXPECTED, mode64, endness_host)\u0027 failed.\n  vex storage: T total 275633592 bytes allocated\n  vex storage: P total 192 bytes allocated\n\n  valgrind: the \u0027impossible\u0027 happened:\n     LibVEX called failure_exit().\n\n  Thread 1: status \u003d VgTs_Runnable (lwpid 19194)\n  \u003d\u003d19194\u003d\u003d    at 0x48B6D44: memcpy (in /usr/libexec/valgrind/vgpreload_memcheck-ppc64le-linux.so)\n  \u003d\u003d19194\u003d\u003d    by 0x49799B7: memcpy (string_fortified.h:29)\n  \u003d\u003d19194\u003d\u003d    by 0x49799B7: __libc_sigaction (libc_sigaction.c:66)\n  \u003d\u003d19194\u003d\u003d    by 0x4A7508B: __spawni_child (spawni.c:132)\n  \u003d\u003d19194\u003d\u003d    by 0x4A99843: clone (clone.S:107)\n  client stack range: ??????? client SP: 0x492FB70\n  valgrind stack range: [0x1009260000 0x100935FFFF] top usage: 20464 of 1048576\n\nUntil we understand what the problem is and why the test _sometimes_\nfails on this architecture, we will have to turn off the test.\n\nSigned-off-by: Alexey Gladkov \u003clegion@kernel.org\u003e\n"
    }
  ],
  "next": "c9debc0b7720bf60da7cc35725bb2d6360b133f2"
}
