Files
strans/docs/PROVENANCE.md

84 lines
4.1 KiB
Markdown

# 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 asks Pango and Fontconfig to select
from the user's normal system font set. Pango shapes each complete string and
selects glyph fallback. `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 14, 2026 the tested package contract was:
- `noto-fonts-emoji` `1:2.051-1`, providing
`/usr/share/fonts/noto/NotoColorEmoji.ttf` (SHA-256
`72a635cb3d2f3524c51620cdde406b217204e8a6a06c6a096ff8ed4b5fd6e27b`);
- `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. Noto Color
Emoji supplies the color and shaped-sequence coverage; DejaVu Sans supplies
ASCII, Jigmo supplies Hangul and BMP CJK, and Jigmo2 supplies U+2000B. Their
installed license files are `/usr/share/licenses/noto-fonts-emoji/LICENSE`,
`/usr/share/licenses/ttf-dejavu/LICENSE`, and
`/usr/share/licenses/ttf-jigmo/LICENSE.txt`. The packages identify their terms
as OFL-1.1-no-RFN, the DejaVu custom license, and CC0 1.0, respectively. These
packages are test fixtures, not names or paths hard-coded into the daemon.
## 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.