# Recorded resource generation Fcitx 5.1.22 builds Core, Config, Utils and Unicode with the dated patch in `../source/third_party/fcitx/fcitx-resource-paths.patch`. The exact selected CMake options are in `../source/tools/prepare_fcitx.py` and `../source/fcitx.cmake`. The Core uses libuv and excludes server, libuuid, D-Bus, X11/Wayland frontend, enchant, emoji and spell dictionaries. The application supplies separate native physical-state support. ECM 6.29.0 and nlohmann 3.12.0 are captured in the source kit's Fcitx source directory. Their complete hashes are in the source pins. ## Unicode 16.0.0 Extract the pinned Fcitx archive into a disposable directory. Put the captured `unicode-16-UnicodeData.txt`, `unicode-16-NamesList.txt` and `unicode-16-Blocks.txt` into a working directory as `UnicodeData.txt`, `NamesList.txt` and `Blocks.txt`. Extract `Unihan_Readings.txt` from the captured `unicode-16-Unihan.zip` into the same directory. Copy Fcitx's `src/modules/unicode/gen.py` there and run `python3 gen.py`. The resulting `kcharselect-data` becomes `share/fcitx5/unicode/charselectdata`. Its recorded SHA-256 is `82a47500ca9c2918197acbc51ff74e8159bbd91d779cdf7ec483561f86eff841`. Keep the generator's Fcitx/KDE attribution and the Unicode V3 license. ## XKB, ISO metadata and addon descriptions Extract `xkeyboard-archive.tar.xz`, the xkeyboard-config 2.48 source. Run its Meson generators with `-Dcompat-rules=true -Dxorg-rules-symlinks=true`, as in `packaging/xkeyboard-config.PKGBUILD`. Install into a temporary DESTDIR and copy the installed `share/X11/xkb` tree, dereferencing generated rule symlinks, to `share/xkb`. The recorded set has 296 files, including generated compatibility symbols and rules. Retain original per-file comments and upstream COPYING. This number identifies that captured resource set only. `iso-iso_639-3.json` is the unmodified, editable iso-codes 4.20.1 source. Its REUSE annotation and LGPL text are captured. Fcitx's `keyboard.conf` and `unicode.conf` are generated from its addon templates and translations by the pinned Fcitx CMake/gettext recipe. The runtime manifests identify their exact recorded bytes. No host addon descriptions replace these files at runtime. ## Private Fcitx Compose table Extract `libX11-1.8.13.tar.xz`. Apply its `cpprules.in` transformation to `nls/en_US.UTF-8/Compose.pre`, using `cpp -undef -traditional -DWCHAR32=1`. Replace `XCOMM` with `#` and `XHASH` with `#`, remove preprocessor line markers and empty lines. The output is 456,061 bytes with SHA-256 `a3077ce7fdae43776b9a485d8a9689c0bfeb0cd17348a87b7a06818e59554ea1`. It has no include directives. The notices preserve the David Monniaux attribution removed by preprocessing, together with the aggregate libX11 permission text. This table belongs to Fcitx. Local compose uses the recipient's selected host locale/table and include chain. ## Offline X11 helpers `xkbcomp` 1.5.0 and `libxkbfile` 1.2.0 sources and recipes are captured. The compiler's generated Bison parser retains its license and parser exception. The small Console-authored `sources/xcb_rule_components.c` expands rules through public libxkbfile APIs, without opening a Display or uploading a map. Rebuild it with the recorded C compiler and headers: ```sh cc -D_GNU_SOURCE sources/xcb_rule_components.c -o xcb-rule-components \ -lxkbfile -lX11 ``` Install into the copied Fcitx runtime's `bin` directory and refresh its manifest. The owning helper selects the private library directory before launching it. The library closure and source/notice identities are in `converter-source-pins.json`.