Commit af79fd2
authored
feat(libinput): 让输入链的顶端第一次真的被编译 (#298)
* feat(libinput): 让输入链的顶端第一次真的被编译
compat.libinput 随 #294 进了索引,而它从未被编译过——没有测试成员消费它,
而没人编译的包不会编译失败。加上 tests/examples/libinput 之后一次构建暴露出
四类问题,都是"上游用 meson,我们不用"才会有的:
1. 缺 libinput-version.h。meson 从 .h.in 生成,libinput-private.h:45 无条件
include 它,所以 40 个源文件全挂。补成 generated_files。
2. config.h 只写了一半。HTTP_DOC_LINK / LIBINPUT_QUIRKS_OVERRIDE_FILE /
LIBINPUT_PLUGIN_{LIB,ETC}DIR / HAVE_VERSIONSORT / HAVE_MTDEV 都缺。
HAVE_VERSIONSORT 尤其关键:不定义它,libinput-versionsort.h 会给出自己的
static strverscmp,而 glibc 已经 extern 声明过——是硬错误不是遮蔽。
3. include_dirs 少了包根。全树只有 libinput-plugin-mouse-wheel-lowres.c:31
写 `#include "src/evdev-frame.h"`,上游因为从项目根编译而免费拿到这个拼法。
4. typeof。util-mem.h:180 的 (typeof(*ptr_))_steal(ptr_) 是 GNU 关键字,
-std=c11 下被当成未声明函数调用,cast 塌成 int,伤害落在十几个根本没提
typeof 的文件里,报成 -Wint-conversion。
c_standard = "gnu11" 不是解法:mcpp 收下这个字符串,仍然发 -std=c11。
这次是实测的——设过 gnu11,上面这些错误原样还在。所以走 -Dtypeof=__typeof__。
测试成员断言的是四包交接处(libudev 起 context、udev 枚举 seat、dispatch、
可 poll 的 fd),不断言能打开 /dev/input/event*——那需要权限,设
MCPP_RUN_INPUT_DEVICES=1 才要求。6 项全过。
顺带把 quirks 那段注释改准:LIBINPUT_QUIRKS_DIR 是有环境变量出口的
(libinput.c:1911),和 GBM_BACKENDS_PATH 同一形状,缺的是提供方而不是机制。
* docs: 记录 xkeyboard-config 跨索引闭环与 libinput 的四个 bug
§10.9.1 xkeyboard-config 已落地(xim-pkgindex#732),含实现中改的两处 discovery
形状:XKB_CONFIG_ROOT 是标量所以用 op=set(表里第一个非列表项),以及
declare_xkb —— 声明变量和放置内容是两件事,只声明的那一版让变量指向不存在的目录。
§10.9.2 新增:libinput quirks 是同一形状的第三处。之前注释里写的「编译期路径」
不准确,libinput.c:1911 是 getenv 优先。所以不是死路,是缺提供方。
§10.10 G5 从「待接上」改为已做,并把测试成员抓出的四个 bug 列出来——它们全都是
「包进了索引但从没被编译过」造成的。另加一张发现变量总表,标出哪两行仍是空的。
* docs(libinput): 对齐两处与改动后不符的注释
c_standard 从 gnu11 改回 c11 之后,config.h 里 HAVE_C23_AUTO 那段还写着
「builds as gnu11」。
以及 config.h 顶部对 LIBINPUT_QUIRKS_DIR 的说明还停在「编译期路径」,
与文件头已改准的版本不一致——libinput.c:1911 是 getenv 优先、编译期值兜底。
* docs: 补记从已发布索引的复验,以及它抓到的 store 撞名陷阱
合并 xim#732 后又从「已发布索引 + 全新 subos + 沙箱」复验一遍——上一次用的是
--add-xpkg 的本地副本,证明力不同。
第一次复验数据没放进去,差点得出「包坏了」。真因是 store 里还留着本地验证时的
local:xkeyboard-config@2.48,而 store 查找忽略 namespace,(name, version) 撞上
就把 install() 静默跳过、payload 为空,config() 照常跑。
顺带记下:declare_xkb 的 os.isdir 守卫确实触发了,但那条 log.warn 在 install
输出里没出现(同一次输出里 xlings 自己的 [warn] 是打出来的)。所以 declare_dri /
declare_gbm / declare_xkb 的警告都不能当诊断依赖。1 parent 3f5a31f commit af79fd2
5 files changed
Lines changed: 316 additions & 20 deletions
File tree
- .agents/docs
- pkgs/c
- tests/examples
- libinput
- libxkbcommon/tests
Lines changed: 131 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
600 | 600 | | |
601 | 601 | | |
602 | 602 | | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
603 | 687 | | |
604 | 688 | | |
605 | 689 | | |
606 | 690 | | |
607 | | - | |
608 | | - | |
609 | | - | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
610 | 717 | | |
611 | 718 | | |
612 | 719 | | |
613 | | - | |
614 | | - | |
615 | | - | |
616 | | - | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| 92 | + | |
92 | 93 | | |
93 | 94 | | |
94 | 95 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
41 | 53 | | |
42 | 54 | | |
43 | 55 | | |
| |||
62 | 74 | | |
63 | 75 | | |
64 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
65 | 81 | | |
66 | 82 | | |
67 | | - | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
68 | 91 | | |
69 | 92 | | |
70 | 93 | | |
71 | 94 | | |
72 | 95 | | |
73 | 96 | | |
74 | 97 | | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
80 | 105 | | |
81 | 106 | | |
82 | 107 | | |
83 | 108 | | |
84 | 109 | | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
85 | 127 | | |
86 | 128 | | |
87 | 129 | | |
88 | 130 | | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
89 | 174 | | |
90 | 175 | | |
91 | 176 | | |
| |||
144 | 229 | | |
145 | 230 | | |
146 | 231 | | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
147 | 253 | | |
148 | 254 | | |
149 | 255 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
0 commit comments