89e1c67006
--filesystem-size previously just echoed config.general.filesystem_size (or 0), so every target hardcoded a magic image size that either wasted space or overflowed (ENOSPC / os error 28) as the package set changed. Add compute_filesystem_size_mb(): when filesystem_size is not pinned, size the RedoxFS image from the ACTUAL package contents — walk the transitive package closure (config [packages] + each pkgar's `depends`), do per-file block accounting (ceil(size/BLOCK_SIZE) data blocks + one node block per entry), add record-tree/header structural overhead and a free-space margin so the live/ writable filesystem is usable. An explicit filesystem_size still overrides. Identical logic for mini/full/bare/grub/any config. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>