# Third-party license provenance

Список соответствует runtime из `fallout2-ce` commit
`ad70dbd1de1bebc1248b79796479852cc199be01`, собранному в pinned
`emscripten/emsdk@sha256:af45409f3199d88db4b1b03af0098532c8fb33a375ac257463eeb0a622870d06`
(tag 3.1.74).

| Component | Фактически использованный source | Notice в этом каталоге |
|---|---|---|
| fallout2-ce | `roginvs/fallout2-ce@ad70dbd1de1bebc1248b79796479852cc199be01`, `LICENSE.md` | `fallout2-ce-Sustainable-Use-License-1.0.md` |
| fpattern | `alexbatalov/fpattern@8523173ec252c3b796fcdfca0fcc6329642fbbe3` (pinned в `third_party/fpattern/CMakeLists.txt`), `LICENSE` | `fpattern-LICENSE.txt` |
| LodePNG | vendored `third_party/lodepng/lodepng.cpp` pinned в fallout2-ce commit, `third_party/lodepng/LICENSE` | `lodepng-LICENSE.txt` |
| SDL2 | emsdk port `release-2.30.9`, SHA-512 `00079415bd3aab9ab2cf67c466ca0ab96076ff8b9c8ed6d4e11db15e10f5cf91f49da6356cf3ed9adc91e185c1aada3886baa80d14d421729805adaa98563e36`, `LICENSE.txt` | `SDL2-2.30.9-LICENSE.txt` |
| SDL2_mixer | emsdk port `release-2.8.0`, SHA-512 `494ccd74540f74e717f7e4f1dc7f96398c0f4b1883ab00c4a76b0c7239bd2c185cb4358a35ef47819c49e7c14dac7c37b98a29c7b5237478121571f5e7ac4dfc`, `LICENSE.txt` | `SDL2_mixer-2.8.0-LICENSE.txt` |
| zlib | emsdk port `1.2.13`, SHA-512 `44b834fbfb50cca229209b8dbe1f96b258f19a49f5df23b80970b716371d856a4adf525edb4c6e0e645b180ea949cb90f5365a1d896160f297f56794dd888659`, `LICENSE` | `zlib-1.2.13-LICENSE.txt` |
| libogg | emsdk port `version_1`, SHA-512 `929e8d6003c06ae09593021b83323c8f1f54532b67b8ba189f4aedce52c25dc182bac474de5392c46ad5b0dea5a24928e4ede1492d52f4dd5cd58eea9be4dba7`, `COPYING` | `ogg-version_1-COPYING.txt` |
| libvorbis | emsdk port `version_1`, SHA-512 `99bee75beb662f8520bbb18ad6dbf8590d30eb3a7360899f0ac4764ca72fe8013da37c9df21e525f9d2dc5632827d4b4cea558cbc938e7fbed0c41a29a7a2dc5`, `COPYING` | `vorbis-version_1-COPYING.txt` |
| Pako | npm `pako@2.1.0`; `os/web/pako_inflate.min.js` SHA-256 `fa226c8e1e3556993260e6a5c1fe94e225da59b3418a06811fdc51d308f8bb43` byte-for-byte совпадает с package `dist/pako_inflate.min.js`; package `LICENSE` | `pako-2.1.0-LICENSE.txt` |
| Emscripten JS glue | Emscripten 3.1.74, revision `1092ec30a3fb1d46b1782ff1b4db5094d3d06ae5`, `/emsdk/upstream/emscripten/LICENSE`, SHA-256 `620a78084fc7ca97c0b5dea9abf891f3ffcadfdbf305276f099c9c4e12fc1d86` | `Emscripten-3.1.74-LICENSE.txt` |
| musl libc | Emscripten 3.1.74 snapshot: musl 1.2.5 с перечисленными в `/emsdk/upstream/emscripten/system/lib/libc/README.md` Emscripten-изменениями; `/emsdk/upstream/emscripten/system/lib/libc/musl/COPYRIGHT`, SHA-256 `f9bc4423732350eb0b3f7ed7e91d530298476f8fec0c6c427a1c04ade22655af` | `musl-1.2.5-COPYRIGHT.txt` |
| compiler-rt | LLVM revision `322eb1a92e6d4266184060346616fa0dbe39e731`; `/emsdk/upstream/emscripten/system/lib/compiler-rt/LICENSE.TXT`, SHA-256 `1a8f1058753f1ba890de984e48f0242a3a5c29a6a8f2ed9fd813f36985387e8d` | `compiler-rt-llvm-322eb1a92e6d-LICENSE.txt` |
| libc++ | LLVM revision `322eb1a92e6d4266184060346616fa0dbe39e731`; `/emsdk/upstream/emscripten/system/lib/libcxx/LICENSE.TXT`, SHA-256 `539dd7aed86e8a4f12cbdd0e6c50c189c7d74847e4fecc64ce2c6ee3a01da38b` | `libcxx-llvm-322eb1a92e6d-LICENSE.txt` |
| libc++abi | LLVM revision `322eb1a92e6d4266184060346616fa0dbe39e731`; `/emsdk/upstream/emscripten/system/lib/libcxxabi/LICENSE.TXT`, SHA-256 `e2b35be49f7284a45b7baca8fc7b3ab7440e7902392b2528a457816b5bb2a15c` | `libcxxabi-llvm-322eb1a92e6d-LICENSE.txt` |

`SDL2_mixer` активирован linker flag `--use-port=sdl2_mixer`; его emsdk port
собирает Ogg/Vorbis, поэтому их notices включены даже при отсутствии отдельного
упоминания в корневом `CMakeLists.txt`.

Toolchain provenance проверен непосредственно в указанном image digest. В нём
`emcc --version` сообщает Emscripten 3.1.74 revision
`1092ec30a3fb1d46b1782ff1b4db5094d3d06ae5`, а `clang --version` — LLVM
revision `322eb1a92e6d4266184060346616fa0dbe39e731`. Release manifest образа
связывает 3.1.74 с emscripten-releases commit
`c2655005234810c7c42e02a18e4696554abe0352`.

## Локальные security/gameplay overlays

Upstream `os/web/mainmenu.mjs` имеет SHA-256
`0cedbbf74c83db73a96959aa56e18d068e91fcb399d0257a6aaea11d535765bc` на
зафиксированном commit. Packaging применяет к этому точному файлу
`patches/fallout2-ce-mainmenu-save-name-xss.patch` и добавляет локальный
`web/safe-game-slot.mjs`: недоверенное имя импортированного сохранения попадает
в DOM только через `textContent`. После проверки SHA-256 этого промежуточного
файла packaging применяет `patches/fallout2-ce-gameplay-safety.patch` и
`web/gameplay-safety.mjs`: удаляет cross-game fallback на отсутствующую
английскую сборку Nevada, не добавляет отсутствующие `HR_IFACE_*` в игровые индексы,
задаёт режим интерфейса без внешнего hi-res artwork и проверяет HTTP 2xx до
inflate. Cache schema поднята до `v5`, чтобы клиенты не смешивали этот runtime с
предыдущими версиями overlays.

`dist/fallout2-ce.wasm.map` подтверждает реально попавшие в WASM toolchain
source trees: 205 source entries из musl, 28 из compiler-rt, 22 из libc++ и 9
из libc++abi. Emscripten указан отдельно, потому что `fallout2-ce.js` является
сгенерированным `emcc` JS glue и генератор закономерно не входит в WASM source
map. Все три LLVM `LICENSE.TXT` уже содержат полный текст Apache License 2.0 и
раздел `LLVM Exceptions to the Apache 2.0 License`; отдельного файла exception
в pinned image нет, поэтому notice не реконструировался из внешнего источника.
