Files
strans/docs/PROVENANCE.md

4.8 KiB

Data and third-party provenance

This file records what can be established from repository contents and history. It does not assign a license to original strans source code.

Input maps and dictionaries

map/hira.map, map/kata.map, and the original map data entered the history in commit cc157c0b3c33506d1cbf5bd251ddc6a9ca909081, whose subject says the maps came from 9front. That commit does not identify a 9front revision or carry a separate data license. map/telex.map is generated by map/mktelex.py; Vietnamese behavior is retained for compatibility.

map/emoji.dict is generated deterministically from the repository-maintained map/emoji.src by map/mkemoji. No external dataset is required.

map/hanja.src is a single-character subset of libhangul's data/hanja/hanja.txt from release tag libhangul-0.2.0. Its immutable identifiers are:

  • annotated tag object: 20afc38922e3595ee3ed5b186f2ea05afe663763
  • peeled commit: 41c702f5d3581325b646ef6249f1f641b0427ae0
  • input blob: 199cfd70c4b306257ac2e018714a1285f7cf0ed3
  • input SHA-256: dd44dcc856cf542b1022d0f39c2e9b9f8805fdcc5923be80f04849ed97ce0996

map/libhangul2hanja keeps only a one-syllable modern Hangul reading paired with one BMP Hanja rune. It writes one Hanja<TAB>Hangul syllable pair per row in upstream order; word entries are not part of this data. map/mkhanja groups those rows by reading for the runtime dictionary without changing candidate order, retaining the first 32 candidates supported by the engine. Exact import and regeneration commands are in map/README.

The upstream data header is BSD 3-Clause licensed, copyright 2005, 2006 Choe Hwanjin. Its complete license text is in LICENSES/BSD-3-Clause-libhangul-hanja.txt.

map/kanji.dict identifies itself as SKK Medium dictionary version 8.1, May 24, 1995, rearranged for Plan 9 ktrans by Kenji Okamoto on February 17, 2000. Its header names its copyright holders and grants GPL version 2 or later. The complete GPL version 2 text is in LICENSES/GPL-2.0-or-later.txt; the dictionary header supplies the "or later" option. map/README records the exact repository history, repairs made to this copy, and the reproducible procedure for importing a new SKK revision.

Fonts

No font binaries are bundled. The daemon receives one to four font file paths on its command line and tries them in that order; it does not discover fonts by family name or directory contents. font/PROVENANCE retains the exact checksums, source revisions, and license records for the three Noto faces that were formerly stored in the repository.

The Docker renderer tests obtain their fonts from signed Arch packages rather than the source checkout. On August 13, 2026 the tested package contract was:

  • ttf-dejavu 2.37+18+g9b5d1b2f-8, providing /usr/share/fonts/TTF/DejaVuSans.ttf (SHA-256 6038a160b491e121c1f12c7bccb4a9c8730296e3adc1086a059404ed84b7451c);
  • ttf-jigmo 20250912-1, providing /usr/share/fonts/TTF/Jigmo.ttf (SHA-256 c8f295b9bd8f9f117a76b3a454aaaa1bb5b4babc18e254978c6deb88464e40cf) and /usr/share/fonts/TTF/Jigmo2.ttf (SHA-256 5da3582efe77e22073b86b3b86b556d7111148a76b957cfb53318a91da2efff0).

Pacman validates the package checksums and repository signatures. DejaVu Sans supplies ASCII and the monochrome U+1F600 outline in the tests; Jigmo supplies Hangul and BMP CJK, and Jigmo2 supplies U+2000B. Their installed license files are /usr/share/licenses/ttf-dejavu/LICENSE and /usr/share/licenses/ttf-jigmo/LICENSE.txt; the packages identify their terms as the DejaVu custom license and CC0 1.0, respectively. These packages are test fixtures, not names or paths hard-coded into the daemon.

Generated Wayland protocol code

The four checked-in Wayland protocol C/header files were added in commit 7629ec5fe8976812655c9d12b447a62abc8bb671:

  • input-method-unstable-v2-client-protocol.h
  • input-method-unstable-v2-protocol.c
  • virtual-keyboard-unstable-v1-client-protocol.h
  • virtual-keyboard-unstable-v1-protocol.c

Their embedded notices identify the protocols as input-method-unstable-v2 and virtual-keyboard-unstable-v1 and include the applicable MIT-style license terms. The input-method files report generation by wayland-scanner 1.21.0; the virtual-keyboard files report wayland-scanner 1.23.1. The source XML files and their upstream repository revisions were not committed or recorded in history, so these generated files cannot honestly be regenerated byte-for-byte from repository artifacts. Do not edit them manually. A future regeneration should commit the source XML or record its immutable upstream revision and the scanner command/version.

Git submodules

cutest is pinned by the repository as the unit-test framework. XIM uses the system xcb-imdkit and xcb-util libraries at build time; those system libraries are not bundled by this repository.