| 29 Jul 2025 |
emily | I think that probably putting a program in a separate output doesn't incur repeated ongoing maintenance costs in most cases | 17:48:46 |
emily | same way that make-initrd-ng itself doesn't much | 17:48:53 |
emily | people do closure size minimization work for other reasons, so it's not like it would be burden solely for initrd | 17:49:18 |
ElvishJerricco | Well if you want to give it a try, it shouldn't be too hard to swap makeInitrdNG for makeInitrd and start slashing away | 17:50:32 |
ElvishJerricco | (oof, a stock systemd initrd is 21M. not great, but acceptable) | 17:52:20 |
emily | yeah I might | 18:04:03 |
emily | even just looking at the diff of the closure would probably make it obvious where to start | 18:04:16 |
emily | (I thought makeInitrd screws up the store paths or something though) | 18:05:04 |
ElvishJerricco | no, makeInitrd just does plain ole closures | 18:05:41 |
ElvishJerricco | it's the extraUtils derivation that does the screwing with binaries so the closure is small | 18:05:58 |
emily | ah | 18:07:49 |
@marcel:envs.net | Is this a crime?
storePaths =
let
closure = pkgs.closureInfo { rootPaths = [ initrdCfg.package ]; };
closurePaths = lib.filter (path: path != "") (lib.splitString "\n" (builtins.readFile "${closure}/store-paths")) ;
in
closurePaths ++
[
config.environment.etc."ifstate/config.initrd.yml".source
];
now i only have to work on reducing the closure size.
| 19:57:37 |
@marcel:envs.net | * Is this a crime?
storePaths =
let
closure = pkgs.closureInfo { rootPaths = [ initrdCfg.package ]; };
closurePaths = lib.filter (path: path != "") (lib.splitString "\n" (builtins.readFile "${closure}/store-paths")) ;
in
closurePaths ++
[
config.environment.etc."ifstate/config.initrd.yml".source
];
now i only have to work on reducing the closure size.
| 19:58:08 |
emily | IFD | 19:58:51 |
emily | so criminal we have a name and a flag for the specific type of crime :) | 19:59:17 |
emily | it would break on Hydra | 19:59:19 |