67 lines
1.7 KiB
Markdown
67 lines
1.7 KiB
Markdown
# 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.*
|