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