!tCyGickeVqkHsYjWnh:nixos.org

NixOS Networking

896 Members
Declaratively manage your switching, routing, wireless, tunneling and more.261 Servers

Load older messages


SenderMessageTime
29 Jul 2025
@elvishjerricco:matrix.orgElvishJerricco no, makeInitrd just does plain ole closures 18:05:41
@elvishjerricco:matrix.orgElvishJerricco it's the extraUtils derivation that does the screwing with binaries so the closure is small 18:05:58
@emilazy:matrix.orgemilyah18:07:49
@marcel:envs.netMarcel

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.netMarcel *

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
@emilazy:matrix.orgemilyIFD19:58:51
@emilazy:matrix.orgemilyso criminal we have a name and a flag for the specific type of crime :)19:59:17
@emilazy:matrix.orgemilyit would break on Hydra19:59:19
@marcel:envs.netMarcelahh ok19:59:56
@marcel:envs.netMarcelat least my vm test works now ;D20:00:47
@elvishjerricco:matrix.orgElvishJerricco

Marcel: yea if you want to do closureinfo stuff to get full closures into systemd initrd I was thinking of something like this:

{
  boot.initrd.systemd.storePaths = [
    (runCommand "x"
      {
        info = closureInfo { rootPaths = [ hello ]; };
      }
      ''
        mkdir $out
        cat "$info"/store-paths | while read path; do
          ln -s "$path" "$out/$(basename "$path")"
        done
      ''
    )
  ];
}
20:03:53
@elvishjerricco:matrix.orgElvishJerricco *

Marcel: yea if you want to do closureinfo stuff to get full closures into systemd initrd I was thinking of something like this:

{
  boot.initrd.systemd.storePaths = [
    (runCommand "x"
      {
        info = closureInfo { rootPaths = [ hello ]; };
      }
      ''
        mkdir $out
        cat "$info"/store-paths | while read path; do
          ln -s "$path" "$out/$(basename "$path")"
        done
      ''
    )
  ];
}
20:03:57
@elvishjerricco:matrix.orgElvishJerricco but it'd probably be better to just have a make-initrd-ng feature for this 20:04:21
@elvishjerricco:matrix.orgElvishJerricco something like storePaths = [ { source = hello; closure = true; } ]; 20:04:47
@emilazy:matrix.orgemily if I clear my backlog for today I'm going to diff the closure of make-initrd{,-ng} 20:04:56
@emilazy:matrix.orgemilyand my rampage will begin :P20:05:02
@marcel:envs.netMarcelno pressure - when ifstate releases i will just create an PR without initrd support and keep that initrd stuff localy untill we've figured something out20:08:17
@marcel:envs.netMarcel
In reply to @elvishjerricco:matrix.org

Marcel: yea if you want to do closureinfo stuff to get full closures into systemd initrd I was thinking of something like this:

{
  boot.initrd.systemd.storePaths = [
    (runCommand "x"
      {
        info = closureInfo { rootPaths = [ hello ]; };
      }
      ''
        mkdir $out
        cat "$info"/store-paths | while read path; do
          ln -s "$path" "$out/$(basename "$path")"
        done
      ''
    )
  ];
}
thx
20:16:15
30 Jul 2025
@yan:we2.eeyan 💕 joined the room.01:42:17
@sandro:supersandro.deSandro 🐧re: ifstate: speaks something against static compilation?18:34:31
@marie:marie.cologneMarieit's python18:37:51
@denkn:denkn.atDenKnit should be also possible to compile python static. but you are only able to load libs written in plain python.19:03:12
@denkn:denkn.atDenKnbut why python in initrd?19:04:12
@marie:marie.cologneMarieto run ifstate19:08:11
@denkn:denkn.atDenKnfor configure network, you do not need ifstate. you can do anything with iproute2 except wg, sysctl, ...19:28:37
@marcel:envs.netMarcelyeah, I don't need it, but I am not interested in defining my configuration in tow different formats twice, other than just reusing the configuration from the stage 2 system19:30:12
@marcel:envs.netMarcel (this is about packaging ifstate, everything works already, also initrd, its just about reducing it's addition to the initrd) 19:31:00
@denkn:denkn.atDenKnso you need network in initrd?19:31:08
@marcel:envs.netMarcelif you have an encrypted systemd which is not directly accessable (e.g. a server in a datancenter) and you wan't to reboot it you someshow need to enter the password - i know. there are thinkgs like ipmi but you cloud also start an sshd in the initrd and connect to it in order to enter the password19:32:27
@marcel:envs.netMarcelsee https://wiki.nixos.org/wiki/Remote_disk_unlocking for some background info19:33:07

Show newer messages


Back to Room ListRoom Version: 6