Skip to content

app-i18n/fcitx: switch to nlohmann_json, add system-yoga USE#11052

Open
Zakkaus wants to merge 3 commits into
gentoo-zh:masterfrom
Zakkaus:qa-fcitx-nlohmann
Open

app-i18n/fcitx: switch to nlohmann_json, add system-yoga USE#11052
Zakkaus wants to merge 3 commits into
gentoo-zh:masterfrom
Zakkaus:qa-fcitx-nlohmann

Conversation

@Zakkaus

@Zakkaus Zakkaus commented Jul 16, 2026

Copy link
Copy Markdown
Member

修复 #11042。fcitx-9999 两处:

  1. json-c → nlohmann_json + system-yoga USE:上游 master 把构建依赖从 json-c 换成 nlohmann_json、yoga 走 third_party 子模块。keyboard 依赖 json-c:=dev-cpp/nlohmann_json(header-only、SLOT=0、无 :=);加 system-yoga USE(默认关走自带子模块,开则用 dev-libs/yoga),-DUSE_SYSTEM_YOGA 与上游一致。
  2. 修 CI 一直红的 spell-en-download:fcitx5 build 时用 cmake file(DOWNLOAD)en_dict-20121020.tar.gz,被 network-sandbox 挡。把这个 pinned 字典加进 SRC_URI、在 src_prepare 放进 ${S}/src/modules/spell/(和上游 *_dict release tarball 同位置),cmake 的 EXISTS+SHA256 短路即跳过下载、拼写字典照常保留。这跟 ::gentoo release fcitx 同款机制;live ebuild 带 pinned SRC_URI distfile 也有约 20 个 in-tree 先例(glibc / libpinyin-9999 / svt-av1 等)。

测试:build box 实测 emerge fcitx-9999 完整 build+install 通过。已 rebase 到最新 master。

Closes #11042


Please check all the boxes that apply:

  • I have run pkgcheck scan --commits --net to check for issues with my commits.

Please note that all boxes must be checked for the pull request to be merged.

@Zakkaus
Zakkaus marked this pull request as draft July 17, 2026 06:53
@Zakkaus Zakkaus closed this Jul 18, 2026
@Zakkaus Zakkaus reopened this Jul 18, 2026
@Zakkaus
Zakkaus requested a review from liangyongxiang July 18, 2026 12:27
@liangyongxiang

Copy link
Copy Markdown
Contributor

CI出错了,你有时间看看怎么修复吗?
fcitx 5的 live package 和 release版本是有差异的,主要是release版本下载的包含了dict了。

Zakkaus added 2 commits July 19, 2026 08:33
Upstream fcitx5 master migrated its build dependency from json-c to
nlohmann_json and vendors yoga as the third_party/yoga submodule. Replace
dev-libs/json-c with dev-cpp/nlohmann_json under the keyboard USE, and add a
system-yoga USE flag (dev-libs/yoga, bundled submodule by default) wired to
-DUSE_SYSTEM_YOGA. Fixes the fcitx-9999 configure failure.

Closes: gentoo-zh#11042
Signed-off-by: Zakk <zakk@gentoozh.org>
fcitx5's spell module downloads en_dict-20121020.tar.gz during the build via a
cmake file(DOWNLOAD), which the network sandbox blocks (CI red). Add the pinned
tarball to SRC_URI and drop it into ${S}/src/modules/spell in src_prepare, the
same place upstream's *_dict release tarball ships it; cmake's EXISTS+SHA256
guard then skips the fetch. Build-tested on the amd64 box.
@Zakkaus
Zakkaus force-pushed the qa-fcitx-nlohmann branch from 9940c8e to bc82ef0 Compare July 18, 2026 22:59
@Zakkaus

Zakkaus commented Jul 18, 2026

Copy link
Copy Markdown
Member Author

CI出錯了,有時間看看怎麼修復嗎? fcitx 5的live package和release版本是有差異的,主要是release版本下載的包含了dict了。
只能這樣先了
SRC_URI="https://download.fcitx-im.org/data/en_dict-20121020.tar.gz"

@Zakkaus
Zakkaus marked this pull request as ready for review July 18, 2026 23:03
fcitx5's top-level CMakeLists still requires only cmake 3.13, so ECM emits the
CMake < 3.16 compatibility QA notice, which trips the elog gate. This is
upstream's to bump and is not patchable on a live ebuild, so set
CMAKE_QA_COMPAT_SKIP (same as media-libs/libsdl3 and games-arcade/supertux-9999).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

app-i18n/fcitx: 9999 配置失败,上游改用 nlohmann_json

2 participants