aboutsummaryrefslogtreecommitdiffhomepage
path: root/derivation.nix
Commit message (Collapse)AuthorAgeFilesLines
* 0.25.1sisudoc-spine_v0.25.1Ralph Amissah11 days1-1/+1
|
* 0.25.0sisudoc-spine_v0.25.0Ralph Amissah2026-09-231-1/+1
|
* pod: read when zstd-wrappedRalph Amissah2026-09-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sisupod using zstd compression recognised by first bytes. <doc>.sisupod: spine reads one before it writes one, so when the name changes (from .zip to .ssiupod) every pod already published stays readable. A .sisupod is one zstd frame wrapping the archive spine already builds. The reader unwraps the bytes and hands the same archive to the same parser, so every guard downstream is untouched: entry names, per-entry and total size, path depth, escape and symlinks. Which container it is comes from the first four bytes (rather than the name). A pod published as a plain .zip reads as it always did, a .sisupod reads, and either one renamed reads too. The suffix is still recognised, both spellings, for the argument and for a url. libzstd is declared rather than bound: provides the whole surface of fifteen extern C prototypes (there is nothing to generate and no upstream tree to track, which is the arrangement sqlite3 already has). dub links it with "libs": [ "zstd" ]; nix needs zstd.out rather than zstd, whose default output is the binaries and carries no library at all. A frame declares its uncompressed size in its own header, and for a pod fetched over https that number is attacker controlled. The declared size is checked against a ceiling before a buffer is asked for, a frame that will not declare one is refused, and what comes out is checked against what was promised. The ceiling is the extraction limit the archive reader already applies, so the two bounds agree. Measured: output built from a .sisupod is byte identical to output built from the same pod's .zip, 359 files over text, html, epub, odt and .ssp for three documents, live-manual's ten languages included. A truncated frame is refused and the document skipped. free_culture 2863504 -> 1099736 2.60x the_wealth_of_networks 4294022 -> 1172649 3.66x live-manual 6972418 -> 675970 10.31x (assisted by Claude-Code)
* 0.24.1sisudoc-spine_v0.24.1Ralph Amissah2026-09-141-1/+1
|
* 0.24.0sisudoc-spine_v0.24.0Ralph Amissah2026-09-121-1/+1
|
* 0.23.0sisudoc-spine_v0.23.0Ralph Amissah2026-09-101-1/+1
|
* 0.22.0sisudoc-spine_v0.22.0-devRalph Amissah2026-05-241-1/+1
|
* 0.21.0sisudoc-spine_v0.21.0-devRalph Amissah2026-05-231-1/+1
|
* 0.20.0sisudoc-spine_v0.20.0-devRalph Amissah2026-05-211-1/+1
|
* 0.19.0sisudoc-spine_v0.19.0-devRalph Amissah2026-04-221-1/+1
|
* nix keeping: nix-shell, nix-build derivation.nixRalph Amissah2026-04-111-0/+1
|
* 0.18.0sisudoc-spine_v0.18.0-devRalph Amissah2025-02-211-1/+1
|
* nix build houskeeping, version updates, incl. dmd & dubRalph Amissah2024-12-021-1/+1
|
* 0.17.0sisudoc-spine_v0.17.0-devRalph Amissah2024-06-291-1/+1
|
* dub (dlang) prefer dub run to dub buildRalph Amissah2024-05-071-1/+1
|
* work on more generic install + instructionsRalph Amissah2024-05-061-1/+0
|
* set nixVersions.nix_2_21Ralph Amissah2024-05-031-1/+1
|
* comment out nixpkg nixVersions.unstableRalph Amissah2024-05-021-1/+1
| | | | - nixVersions.unstable no longer available
* 0.16.0 sisudoc (src/sisudoc sisudoc spine)sisudoc-spine_v0.16.0-devRalph Amissah2024-04-101-1/+1
| | | | | - src/sisudoc (replaces src/doc_reform) - sisudoc spine (used more)
* 0.15.0doc-reform_v0.15.0Ralph Amissah2024-04-101-1/+1
|
* 0.14.0sisudoc-spine_v0.14.0-devRalph Amissah2023-11-201-1/+1
|
* 0.13.0sisudoc-spine_v0.13.0-devRalph Amissah2023-11-151-1/+1
|
* nix run alejandra formatter, decided to go with itRalph Amissah2023-04-101-81/+91
|
* nix flake & build, devShells etc.Ralph Amissah2023-02-101-2/+2
|
* nix and build housekeepingRalph Amissah2022-12-311-1/+1
|
* 0.12.0sisudoc-spine_v0.12.0-devRalph Amissah2022-12-231-1/+1
|
* org nix cosmeticRalph Amissah2022-11-111-12/+4
|
* org nixRalph Amissah2022-10-031-1/+1
|
* build related, mostly nix flakesRalph Amissah2022-06-141-28/+25
|
* housekeepingRalph Amissah2022-05-271-1/+1
|
* nix setup related but messyRalph Amissah2021-12-231-1/+8
|
* dlang dub & nix build related, includes dep updateRalph Amissah2021-11-271-0/+99
- nix-shell --pure - nix-build - dub build --compiler=ldc2 --build=release --force