evidence · 4.9 KiB

closure-delta.md

Committed at docs/evidence/files-app/closure-delta.md. This is what grounds the requirements that cite it.

Open raw source

System closure delta: Portfolio-only build vs. master

Method

Per coordinator request: not nix path-info -rS (a single aggregate query), but an independent per-path sum: nix-store -q --requisites <path> enumerated, then nix-store -q --size <path> summed over every requisite.

for p in $(nix-store -q --requisites "$path"); do
  nix-store -q --size "$p"
done | awk '{s+=$1} END {print s}'

Inputs compared

Result

requisite pathssummed size
master baseline10413.196 GiB (3,432,123,872 bytes)
Portfolio-only system11143.576 GiB (3,840,008,000 bytes)
delta+73 net+389.0 MiB / +0.380 GiB (+407,884,128 bytes)

The net path delta (+73) is smaller than the raw “new paths present” count (97) because 24 paths were superseded (same conceptual derivation, new hash, because the closure feeding them changed): dbus-1, etc, foot’s wrapper, and this repo’s own k230-foot, k230-handheld-desktop-entries, k230-launcher-action, k230-shell-rust, k230-supervised-keyboard, k230-sway.conf, k230-touch-launcher, xdg-terminal-exec, X-Restart-Triggers-dbus-broker, system-path, system-units, user-units, and five unit-*.service derivations. None of those are new weight; they are the same small wrapper/unit derivations this repo already had, rebuilt because environment.systemPackages (and therefore system-path, and therefore everything that references it) changed hash.

The 73 genuinely new packages (present in the new build, with no same-named predecessor at all) are, almost entirely, not Portfolio-specific — they are GTK4’s own default GStreamer media-backend closure, forced the moment any GTK4 package enters this system, confirming design.md’s “closure weight is intrinsic to GTK4 on this nixpkgs pin, not something either app’s choice changes” with an itemized list instead of an estimate:

What this does not measure