SOURCE / PINNED RELEASE
Made of little things.
Powder Tool V600Billion
- Release
- 142767edcab8…
- Author-recorded commit
- 6d92971effd0…
- License
- LICENSE
- Author’s source reference
- nostr://npub1fllw8kw0thjj55wds0uugcnp5kej2nfxd36eruq39d56wwz8r44q5q78wj/wss%3A%2F%2Fgit.napplet.soy%2F/powder-toy
Archive hash verified: ed7d6a8ea7083197…. The source-to-build association is the author’s claim; it has not been independently rebuilt.
# Third-party notices
## The Powder Toy
By the Powder Toy contributors, GPL-3.0, [source](https://github.com/The-Powder-Toy/The-Powder-Toy).
The built napplet (`dist/index.html`, docked in nappelin.com as
`apps/hangar/public/napplets/powder-toy/index.html`) contains the game built from
upstream's source at tag `v100.1.400` (commit d768aeb89acad986bd252d7e904bf44bb374545f)
for the web without threads (`scripts/build-wasm.sh`; the resulting `powder.js` and
`powder.wasm` are pinned in `upstream.json`), inlined into one file. The changes to
upstream are `patches/the-powder-toy-single-thread.patch` (the single-thread build),
`patches/the-powder-toy-napplet-bridge.patch` (two functions the page's own controls call:
Lua as the game's console runs it, and whether one of the game's dialogs is open) and the
patches to the JavaScript glue (`GLUE_PATCHES` in `scripts/upstream.mjs`): `/powder` is
mounted on a filesystem the page supplies (napplet storage) instead of IDBFS, and the
game's requests, WebSockets and links go to functions the page supplies.
`src/save/elements.js` is a table of element and wall colours generated from upstream's
source at the same tag (`scripts/gen-elements.mjs`).
Everything else in the napplet is the code in this repository, licensed GPL-3.0
(`LICENSE`). The corresponding source of the built file is that upstream tag plus this
repository at the commit named in the docked copy's `provenance.json`. This repository is
private; that source is public in napplet.soy's Git, https://git.napplet.soy/npub1fllw8kw0thjj55wds0uugcnp5kej2nfxd36eruq39d56wwz8r44q5q78wj/powder-toy.git, where the release
of each page carries it as `source/`.
## Libraries the wasm links
As upstream's own web release does, libraries built by upstream's
[tpt-libs](https://github.com/The-Powder-Toy/tpt-libs) recipe (tag `v20251019131007`,
built without threads by `patches/tpt-libs-single-thread.patch`): FFTW 3.3.8
(GPL-2.0-or-later), jsoncpp 1.9.5 (MIT) and Lua 5.2.4 (MIT); and Emscripten 3.1.72's
ports: SDL 2.30.9 (zlib license), zlib 1.2.13 (zlib license), bzip2 1.0.6 (bzip2 license)
and libpng 1.6.39 (libpng license), plus Emscripten's own runtime libraries (MIT and
University of Illinois/NCSA). Sources and commits: `upstream.json`; the license texts:
`licenses/`.
## Build and test tools
Not part of the built file: Vite, `@napplet/vite-plugin`, `fflate` (the page's gzip, done
at build time), `@kehto/shell` and `@napplet/shim` (the preludes the test harness injects,
as the Hangar and napplet.soy do), `nostr-tools` and Playwright, each under its own
license, installed from npm (`package-lock.json`).
