Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

dev:patch_glfw_x11_ime.cmake 哈希常量与真实 GLFW 3.4 不符,bundled/fetch 路径配置期 FATAL

Chiusa Adatta ai principianti
#80 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
82/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
cmake
Ambito
build-system

Direzione di ricerca

Inizia da scripts/patch_glfw_x11_ime.cmake e confronta il relativo expected_source_hash e expected_output_hash con gli hash documentati in questa issue. Verifica i percorsi bundled e FetchContent tramite 3rd/dependencies.cmake usando i comandi di configurazione CMake forniti; il lavoro è completato quando entrambi i percorsi GLFW superano la configurazione senza un errore di hash FATAL.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

问题

dev 分支新增的 scripts/patch_glfw_x11_ime.cmake(#78 修复,4691fc0 同提交加入)中 expected_source_hash / expected_output_hash 两个常量与官方 GLFW 3.4 的真实哈希均不符,导致 bundled 与 fetch 两条 GLFW 引入路径在 CMake 配置期直接 FATAL。叠加 auto 模式遇系统 GLFW 3.3 的编译问题(另见配套 issue),dev 分支在 Linux + GLFW 后端下目前三条引入路径都无法构建成功。

环境

项 值
系统 Ubuntu 24.04.5,CMake 3.28.3
EUI-NEO dev 4691fc0a5c1fde6f3e22f1ac454ed87c7a17f722

复现(bundled)

cmake -S . -B build-bundled -DEUI_DEPS_MODE=bundled -DGLFW_BUILD_WAYLAND=OFF
CMake Error at 3rd/dependencies.cmake:291 (message):
  Failed to prepare the GLFW X11 IME fix:
  CMake Error at scripts/patch_glfw_x11_ime.cmake:20 (message):
    Unsupported GLFW X11 source hash
    8CE625AA965D6DA401CE3F4992FDB53AC4ECD34BC00B22BBAEFFAB41F72B0DAE; expected
    bundled GLFW 3.4 BBCBDD40E744D3FD83E439A13E0C03F0EC6256C6C7D19A456C0BA20E1CA36C91
    or patched B1B9E54E20A687EC45E869D0D0E942220D68F087BF0727CB2091C7E9BF56ED12.

(报错里的 8CE625AA... 是当前 dev 捆绑文件——4691fc0 已把 6 行修复直接提交进 3rd/glfw/src/x11_window.c——即脚本认不出自己仓库里的文件。fetch 路径同理失败:脚本下载的正是官方 3.4 zip,其原始 x11_window.c 也不在白名单内。)

哈希取证

文件 实测 SHA256
官方 GLFW 3.4 zip(SHA256 a133ddc3...,与 3rd/dependencies.cmake FetchContent 的 URL_HASH 一致)解出的 src/x11_window.c 7C5A60A507767C5B311437A74E85E547914DF631BE4F74FA75746063762019DA
脚本 expected_source_hash(注释称"bundled GLFW 3.4") BBCBDD40... —— 与官方 3.4 真实文件不符
dev 捆绑文件 3rd/glfw/src/x11_window.c(已含 6 行修复) 8CE625AA965D6DA401CE3F4992FDB53AC4ECD34BC00B22BBAEFFAB41F72B0DAE
按脚本自身的字符串替换逻辑(KeyPress/KeyRelease 两处插入 if (filtered) return;)对官方 3.4 原始文件手工变换的产物 8CE625AA... —— 与 dev 捆绑文件逐位一致
脚本 expected_output_hash B1B9E54E... —— 不对应任何真实文件

结论:expected_output_hash 的正确值应为 8CE625AA...(即补丁变换的真实产物/dev 捆绑文件现状),两个常量目前都匹配不到任何真实文件。

期望(建议修复,任一)

  1. 更新两个哈希常量为实测值(pristine 7C5A60A5...、patched 8CE625AA...);
  2. 或改为按 KeyPress/KeyRelease 上下文匹配做幂等判断,不依赖哈希白名单(对 GLFW 升级更健壮)。

临时绕行(本地验证用)

把 expected_output_hash 改为 8CE625AA965D6DA401CE3F4992FDB53AC4ECD34BC00B22BBAEFFAB41F72B0DAE,脚本即按"已打补丁"COPYONLY 放行,构建产物与上游提交的捆绑文件逐位一致。

Lingua principale
C++
Stelle
2k
Fork
177
Merge medio
19h 58m
PR unite (30g)
9

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sudoevolve/EUI-NEO

Tutte le issue di sudoevolve/EUI-NEO

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.