nix/NOTES.md

68 lines
1.7 KiB
Markdown
Raw Normal View History

2025-02-24 17:26:11 +01:00
# ToDo's
- Investigate https://crane.dev/examples/quick-start-simple.html for ruszt builds
- https://nix.dev/tutorials/packaging-existing-software
- this looks awesome: https://github.com/erictossell/nixflakes/tree/main
- https://nixos.wiki/wiki/Binary_Cache
- build a good abstraction for systems
- allows setting nixpkgs.localSystem per systems
- should yield a `nixosConfiguration.${hostname} = nixpkgs.lib.nixosSystem {...}`
- example module abstraction
```nix
# TODO think about partitions/hardware/system specific conf
# TODO think about hardware.nix like things
{ config,
inputs,
lib,
...
}: {
home_conf = {
# ...
};
os_conf = {
# ...
};
}
- example mkSystem abstraction
```nix
let opts = {
hostname = "test";
opt = "znver2";
users = {
{ name = "tristand", groups=[..] },
{ name = "tester", groups=[..] },
};
modules = [
./my_module.nix
];
};
in {
mylib.mkSystem opts? #
# take a path? just let the user call import ?
}
```
- example localSystem conf
```nix
# to allow building
nix.extraOptions = ''
system-features = system-features = gccarch-znver2
'';
# to actually build (after rebuilding with the feature before)
localSystem = {
inherit system;
gcc = {
arch = "znver2";
tune = "znver2";
};
};
pkgs-args = {
inherit localSystem overlays;
config = {
# ....
};
};
pkgs = import nixpkgs pkgs-args;
nixpkgs.pkgs = pkgs;
```
- switch from security.sudo.* to security.sudo-rs.*