| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | pod: read when zstd-wrapped | Ralph Amissah | 2026-09-22 | 1 | -0/+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) | ||||
| * | nix keeping: nix-shell, nix-build derivation.nix | Ralph Amissah | 2026-04-11 | 1 | -40/+56 |
| | | |||||
| * | nix cleanup flake.nix and shell.nix | Ralph Amissah | 2026-04-07 | 1 | -1/+8 |
| | | |||||
| * | package housekeeping, minor | Ralph Amissah | 2026-03-19 | 1 | -0/+1 |
| | | |||||
| * | flake.nix po4a perl deps | Ralph Amissah | 2026-01-08 | 1 | -1/+1 |
| | | |||||
| * | nix build houskeeping, version updates, incl. dmd & dub | Ralph Amissah | 2024-12-02 | 1 | -2/+2 |
| | | |||||
| * | nix minor | Ralph Amissah | 2024-06-29 | 1 | -0/+2 |
| | | |||||
| * | nix flake and envrc-nix minor | Ralph Amissah | 2024-05-17 | 1 | -0/+1 |
| | | |||||
| * | set nixVersions.nix_2_21 | Ralph Amissah | 2024-05-03 | 1 | -1/+1 |
| | | |||||
| * | comment out nixpkg nixVersions.unstable | Ralph Amissah | 2024-05-02 | 1 | -1/+1 |
| | | | | | - nixVersions.unstable no longer available | ||||
| * | nix flake & env upkeep | Ralph Amissah | 2024-03-10 | 1 | -6/+7 |
| | | |||||
| * | updates incl. ldc-1.35.0, direnv-2.4.0 | Ralph Amissah | 2023-10-15 | 1 | -1/+1 |
| | | |||||
| * | housekeeping, updates incl. ldc-1.34.0, dub-1.34.0 | Ralph Amissah | 2023-09-05 | 1 | -1/+1 |
| | | |||||
| * | nix configure | Ralph Amissah | 2023-06-23 | 1 | -16/+0 |
| | | |||||
| * | nix dev + update direnv 2.2.1 => 2.3.0 | Ralph Amissah | 2023-04-29 | 1 | -3/+0 |
| | | |||||
| * | nix org cleaning | Ralph Amissah | 2023-04-10 | 1 | -0/+2 |
| | | |||||
| * | nix run alejandra formatter, decided to go with it | Ralph Amissah | 2023-04-10 | 1 | -65/+66 |
| | | |||||
| * | nix flake & build, temp. remove gdc | Ralph Amissah | 2023-02-28 | 1 | -58/+26 |
| | | |||||
| * | nix flake & build, devShells etc. | Ralph Amissah | 2023-02-10 | 1 | -6/+4 |
| | | |||||
| * | nix & build housekeeping, alternative D compilers | Ralph Amissah | 2023-01-25 | 1 | -0/+8 |
| | | | | | | | | | | - compilation status - dmd (@D2.100) ok, & has been fine - ldc (@D2.100) ok, & has been fine - gdc11 available in nixpkgs does not compile awaiting gdc12 (which would also be based on @D2.100 & just might) | ||||
| * | nix and build housekeeping | Ralph Amissah | 2022-12-31 | 1 | -3/+3 |
| | | |||||
| * | gitignore & things nix | Ralph Amissah | 2022-12-23 | 1 | -7/+9 |
| | | |||||
| * | 0.12.0sisudoc-spine_v0.12.0-dev | Ralph Amissah | 2022-12-23 | 1 | -20/+29 |
| | | |||||
| * | configs housekeeping, minor | Ralph Amissah | 2022-11-21 | 1 | -1/+1 |
| | | |||||
| * | org nix | Ralph Amissah | 2022-10-03 | 1 | -49/+39 |
| | | |||||
| * | org nix adjust | Ralph Amissah | 2022-08-03 | 1 | -1/+44 |
| | | |||||
| * | build related, mostly nix flakes | Ralph Amissah | 2022-06-14 | 1 | -0/+1 |
| | | |||||
| * | nix setup related but messy | Ralph Amissah | 2021-12-23 | 1 | -8/+17 |
| | | |||||
| * | dlang dub & nix build related, includes dep update | Ralph Amissah | 2021-11-27 | 1 | -7/+7 |
| | | | | | | | - nix-shell --pure - nix-build - dub build --compiler=ldc2 --build=release --force | ||||
| * | nix related config, direnv else minor | Ralph Amissah | 2021-10-22 | 1 | -32/+34 |
| | | |||||
| * | org latex organize | Ralph Amissah | 2021-09-09 | 1 | -0/+5 |
| | | |||||
| * | xmls, epub3 toc_nav.xhtml toc.ncx | Ralph Amissah | 2021-09-09 | 1 | -0/+10 |
| | | |||||
| * | config nix | Ralph Amissah | 2021-09-09 | 1 | -4/+8 |
| | | |||||
| * | dir rename ./sundry (from ./misc) | Ralph Amissah | 2021-08-01 | 1 | -15/+14 |
| | | |||||
| * | nix-build cleanup, external sources localized | Ralph Amissah | 2021-05-15 | 1 | -1/+13 |
| | | | | | | | - clean up as external sources kept locally, in ./src/ext_depends/ - remove dub2nix dependency, no longer needed/used | ||||
| * | cleaning | Ralph Amissah | 2021-03-05 | 1 | -3/+0 |
| | | |||||
| * | shell_spine.nix added | Ralph Amissah | 2021-02-04 | 1 | -1/+3 |
| | | |||||
| * | nix build -f default.nix, experimental | Ralph Amissah | 2021-01-28 | 1 | -2/+2 |
| | | |||||
| * | shell.nix project.nix spine.nix mkDub.nix | Ralph Amissah | 2021-01-27 | 1 | -1/+2 |
| | | |||||
| * | nix, work on build | Ralph Amissah | 2021-01-23 | 1 | -1/+11 |
| | | |||||
| * | directory nixEnv (renamed from nixDevEnv) | Ralph Amissah | 2020-11-28 | 1 | -1/+1 |
| | | |||||
| * | nix derivation, dub & dub2nix using ldc2 1.24.0 ok | Ralph Amissah | 2020-11-28 | 1 | -1/+1 |
| | | | | | | | | | - dmd 2.091.1 & dub 1.14.0 broken in nix unstable - dmd 2.094.2 & dub 1.23.0 current dlang - built using modified local nixpkgs dub modified to use ldc (without calls to dmd) - provide overlay for current( dub using ldc ) | ||||
| * | project nix shell(s) | Ralph Amissah | 2020-10-20 | 1 | -21/+1 |
| | | |||||
| * | build nix derivation (using dub2nix helper tool) | Ralph Amissah | 2020-10-19 | 1 | -10/+14 |
| | | | | | | | | | | | - nix-shell - nix-build - dub2nix (dub to nix helper tool) - Lionello Lunesu - MIT License - https://github.com/lionello/dub2nix | ||||
| * | nixify step | Ralph Amissah | 2020-10-19 | 1 | -17/+15 |
| | | |||||
| * | shell.nix | Ralph Amissah | 2020-10-19 | 1 | -0/+19 |
