Compare commits
12 Commits
9e111f5ea9
...
nix
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1845b1ac30
|
||
|
|
4a772b7276
|
||
|
|
0e231428df
|
||
|
|
27b5c0c9ab
|
||
|
|
54e97da71d
|
||
|
|
58c78c50e6
|
||
|
|
e2ed4013c5
|
||
|
|
3aefe7c0b5
|
||
|
|
a2485dcfe0
|
||
|
|
d4dc7e1f59
|
||
|
|
3c17d56664
|
||
|
|
adff9fcd29 |
@@ -36,6 +36,7 @@ in
|
|||||||
./roles/emacs
|
./roles/emacs
|
||||||
./roles/emulate_isa
|
./roles/emulate_isa
|
||||||
./roles/esim
|
./roles/esim
|
||||||
|
./roles/exfat
|
||||||
./roles/firefox
|
./roles/firefox
|
||||||
./roles/firewall
|
./roles/firewall
|
||||||
./roles/flux
|
./roles/flux
|
||||||
@@ -117,14 +118,14 @@ in
|
|||||||
nix.settings.experimental-features = [
|
nix.settings.experimental-features = [
|
||||||
"nix-command"
|
"nix-command"
|
||||||
"flakes"
|
"flakes"
|
||||||
"ca-derivations"
|
# "ca-derivations"
|
||||||
# "blake3-hashes"
|
# "blake3-hashes"
|
||||||
# "git-hashing"
|
# "git-hashing"
|
||||||
];
|
];
|
||||||
nix.settings.trusted-users = [ "@wheel" ];
|
nix.settings.trusted-users = [ "@wheel" ];
|
||||||
nix.settings.connect-timeout = 5;
|
nix.settings.connect-timeout = 5;
|
||||||
nix.settings.min-free = 128000000;
|
nix.settings.min-free = 5 * 1024 * 1024 * 1024; # Kick off garbage collect if space for nix store is less than 5 GiB
|
||||||
nix.settings.max-free = 1000000000;
|
nix.settings.max-free = 10 * 1024 * 1024 * 1024; # Run that garbage collect until at least 10 GiB are free.
|
||||||
nix.settings.fallback = true;
|
nix.settings.fallback = true;
|
||||||
nix.settings.warn-dirty = false;
|
nix.settings.warn-dirty = false;
|
||||||
nix.settings.fsync-metadata = true;
|
nix.settings.fsync-metadata = true;
|
||||||
|
|||||||
8
nix/configuration/flake.lock
generated
8
nix/configuration/flake.lock
generated
@@ -170,11 +170,11 @@
|
|||||||
"rust-overlay": "rust-overlay_2"
|
"rust-overlay": "rust-overlay_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1785248363,
|
"lastModified": 1786250497,
|
||||||
"narHash": "sha256-hx9Cn1vIa/h54t+s3ObO6+Z3xHSA1zc3YVRWxTZcigc=",
|
"narHash": "sha256-OPhVT5n9OyPDZA3mIO6D5jVVvp/QmG8nT5Trb0gouSs=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "0addf91edf82775a0dc5022a81065ef101305e64",
|
"rev": "0a270dcbdd51baa2895634a3baee29373db8337a",
|
||||||
"revCount": 38,
|
"revCount": 42,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://code.fizz.buzz/talexander/nix_builder.git"
|
"url": "https://code.fizz.buzz/talexander/nix_builder.git"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -4,13 +4,15 @@
|
|||||||
config = {
|
config = {
|
||||||
me.distributed_build.enable = true;
|
me.distributed_build.enable = true;
|
||||||
me.distributed_build.machines.quark = {
|
me.distributed_build.machines.quark = {
|
||||||
enable = false;
|
enable_build = false;
|
||||||
|
enable_substituter = false;
|
||||||
additional_config = {
|
additional_config = {
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
me.distributed_build.machines.hydra = {
|
me.distributed_build.machines.hydra = {
|
||||||
enable = true;
|
enable_build = false;
|
||||||
|
enable_substituter = true;
|
||||||
additional_config = {
|
additional_config = {
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,10 +4,19 @@
|
|||||||
config = {
|
config = {
|
||||||
me.distributed_build.enable = true;
|
me.distributed_build.enable = true;
|
||||||
me.distributed_build.machines.quark = {
|
me.distributed_build.machines.quark = {
|
||||||
enable = true;
|
enable_build = false;
|
||||||
|
enable_substituter = false;
|
||||||
additional_config = {
|
additional_config = {
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
me.distributed_build.machines.hydra = {
|
||||||
|
enable_build = false;
|
||||||
|
enable_substituter = true;
|
||||||
|
additional_config = {
|
||||||
|
speedFactor = 2;
|
||||||
|
};
|
||||||
|
substituter_url = "ssh-ng://nixworker@ns1.fizz.buzz:65122?compress=true&ssh-key=/persist/manual/ssh/root/keys/id_ed25519&remote-store=local?root=/.disk/root";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,6 +94,7 @@
|
|||||||
me.emacs_flavor = "full";
|
me.emacs_flavor = "full";
|
||||||
me.emulate_isa.enable = true;
|
me.emulate_isa.enable = true;
|
||||||
me.esim.enable = true;
|
me.esim.enable = true;
|
||||||
|
me.exfat.enable = true;
|
||||||
me.firefox.enable = true;
|
me.firefox.enable = true;
|
||||||
me.firewall.enable = true;
|
me.firewall.enable = true;
|
||||||
me.flux.enable = true;
|
me.flux.enable = true;
|
||||||
@@ -164,7 +165,7 @@
|
|||||||
me.zrepl.enable = true;
|
me.zrepl.enable = true;
|
||||||
me.zsh.enable = true;
|
me.zsh.enable = true;
|
||||||
|
|
||||||
me.sm64ex.enable = true;
|
me.sm64ex.enable = false;
|
||||||
me.shipwright.enable = false;
|
me.shipwright.enable = false;
|
||||||
me.ship2harkinian.enable = true;
|
me.ship2harkinian.enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,13 +4,15 @@
|
|||||||
config = {
|
config = {
|
||||||
me.distributed_build.enable = true;
|
me.distributed_build.enable = true;
|
||||||
me.distributed_build.machines.quark = {
|
me.distributed_build.machines.quark = {
|
||||||
enable = false;
|
enable_build = true;
|
||||||
|
enable_substituter = false;
|
||||||
additional_config = {
|
additional_config = {
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
me.distributed_build.machines.hydra = {
|
me.distributed_build.machines.hydra = {
|
||||||
enable = true;
|
enable_build = false;
|
||||||
|
enable_substituter = true;
|
||||||
additional_config = {
|
additional_config = {
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,13 +4,15 @@
|
|||||||
config = {
|
config = {
|
||||||
me.distributed_build.enable = true;
|
me.distributed_build.enable = true;
|
||||||
me.distributed_build.machines.quark = {
|
me.distributed_build.machines.quark = {
|
||||||
enable = false;
|
enable_build = false;
|
||||||
|
enable_substituter = false;
|
||||||
additional_config = {
|
additional_config = {
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
me.distributed_build.machines.hydra = {
|
me.distributed_build.machines.hydra = {
|
||||||
enable = true;
|
enable_build = false;
|
||||||
|
enable_substituter = true;
|
||||||
additional_config = {
|
additional_config = {
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -159,7 +159,7 @@
|
|||||||
me.zrepl.enable = true;
|
me.zrepl.enable = true;
|
||||||
me.zsh.enable = true;
|
me.zsh.enable = true;
|
||||||
|
|
||||||
me.sm64ex.enable = true;
|
me.sm64ex.enable = false;
|
||||||
me.shipwright.enable = false;
|
me.shipwright.enable = false;
|
||||||
me.ship2harkinian.enable = true;
|
me.ship2harkinian.enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,8 +3,16 @@
|
|||||||
|
|
||||||
config = {
|
config = {
|
||||||
me.distributed_build.enable = true;
|
me.distributed_build.enable = true;
|
||||||
|
me.distributed_build.machines.quark = {
|
||||||
|
enable_build = false;
|
||||||
|
enable_substituter = false;
|
||||||
|
additional_config = {
|
||||||
|
speedFactor = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
me.distributed_build.machines.hydra = {
|
me.distributed_build.machines.hydra = {
|
||||||
enable = true;
|
enable_build = false;
|
||||||
|
enable_substituter = true;
|
||||||
additional_config = {
|
additional_config = {
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,10 +4,19 @@
|
|||||||
config = {
|
config = {
|
||||||
me.distributed_build.enable = true;
|
me.distributed_build.enable = true;
|
||||||
me.distributed_build.machines.quark = {
|
me.distributed_build.machines.quark = {
|
||||||
enable = true;
|
enable_build = false;
|
||||||
|
enable_substituter = false;
|
||||||
additional_config = {
|
additional_config = {
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
me.distributed_build.machines.hydra = {
|
||||||
|
enable_build = false;
|
||||||
|
enable_substituter = true;
|
||||||
|
additional_config = {
|
||||||
|
speedFactor = 2;
|
||||||
|
};
|
||||||
|
substituter_url = "ssh-ng://nixworker@ns1.fizz.buzz:65122?compress=true&ssh-key=/persist/manual/ssh/root/keys/id_ed25519&remote-store=local?root=/.disk/root";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,14 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
make_machine_config = name: {
|
make_machine_config = name: {
|
||||||
enable = lib.mkOption {
|
enable_build = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = "Whether we want to use the ${name} machine during distributed builds.";
|
||||||
|
};
|
||||||
|
|
||||||
|
enable_substituter = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
example = true;
|
example = true;
|
||||||
@@ -59,11 +66,30 @@ let
|
|||||||
hostName = lib.mkForce "hydra?remote-store=local?root=/.disk/root";
|
hostName = lib.mkForce "hydra?remote-store=local?root=/.disk/root";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
build_machine_list = (
|
||||||
|
map (
|
||||||
|
hostname:
|
||||||
|
(lib.mkIf config.me.distributed_build.machines."${hostname}".enable_build (
|
||||||
|
lib.mkMerge [
|
||||||
|
{
|
||||||
|
hostName = hostname;
|
||||||
|
sshUser = "nixworker";
|
||||||
|
sshKey = "/persist/manual/ssh/root/keys/id_ed25519";
|
||||||
|
maxJobs = 1;
|
||||||
|
supportedFeatures = all_nixos_configs."${hostname}".config.me.optimizations.system_features;
|
||||||
|
protocol = "ssh-ng";
|
||||||
|
}
|
||||||
|
static_host_configs."${hostname}"
|
||||||
|
config.me.distributed_build.machines."${hostname}".additional_config
|
||||||
|
]
|
||||||
|
))
|
||||||
|
) (builtins.attrNames all_nixos_configs)
|
||||||
|
);
|
||||||
substituters_list = (
|
substituters_list = (
|
||||||
map (
|
map (
|
||||||
hostname:
|
hostname:
|
||||||
(lib.mkIf (
|
(lib.mkIf (
|
||||||
config.me.distributed_build.machines."${hostname}".enable
|
config.me.distributed_build.machines."${hostname}".enable_substituter
|
||||||
&& config.me.distributed_build.machines."${hostname}".substituter_url != null
|
&& config.me.distributed_build.machines."${hostname}".substituter_url != null
|
||||||
) (config.me.distributed_build.machines."${hostname}".substituter_url))
|
) (config.me.distributed_build.machines."${hostname}".substituter_url))
|
||||||
) (builtins.attrNames all_nixos_configs)
|
) (builtins.attrNames all_nixos_configs)
|
||||||
@@ -109,28 +135,11 @@ in
|
|||||||
"odowork:zg3UKBAyLy3xtZkL0hMtbxHjxgn5A2QY8NNAgyRT6Yo="
|
"odowork:zg3UKBAyLy3xtZkL0hMtbxHjxgn5A2QY8NNAgyRT6Yo="
|
||||||
"quark:Eb6ygkIiVlcUqb5hOjEVIQcfYLpCz40YVYA3/rxrgBc="
|
"quark:Eb6ygkIiVlcUqb5hOjEVIQcfYLpCz40YVYA3/rxrgBc="
|
||||||
"hydra:1s4Cy9YJLgw4jWx5jdSCfJmIm0hfya7WEy/EwJYI5Ys="
|
"hydra:1s4Cy9YJLgw4jWx5jdSCfJmIm0hfya7WEy/EwJYI5Ys="
|
||||||
|
"garak:8nUS6/aHl+FmF518WZlG4DzDToQ3fSNnpHR+aFQmkqc="
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
nix.buildMachines = (
|
nix.buildMachines = build_machine_list;
|
||||||
map (
|
|
||||||
hostname:
|
|
||||||
(lib.mkIf config.me.distributed_build.machines."${hostname}".enable (
|
|
||||||
lib.mkMerge [
|
|
||||||
{
|
|
||||||
hostName = hostname;
|
|
||||||
sshUser = "nixworker";
|
|
||||||
sshKey = "/persist/manual/ssh/root/keys/id_ed25519";
|
|
||||||
maxJobs = 1;
|
|
||||||
supportedFeatures = all_nixos_configs."${hostname}".config.me.optimizations.system_features;
|
|
||||||
protocol = "ssh-ng";
|
|
||||||
}
|
|
||||||
static_host_configs."${hostname}"
|
|
||||||
config.me.distributed_build.machines."${hostname}".additional_config
|
|
||||||
]
|
|
||||||
))
|
|
||||||
) (builtins.attrNames all_nixos_configs)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
(lib.mkIf has_any_substituters {
|
(lib.mkIf has_any_substituters {
|
||||||
nix.settings.substitute = lib.mkForce true;
|
nix.settings.substitute = lib.mkForce true;
|
||||||
|
|||||||
26
nix/configuration/roles/exfat/default.nix
Normal file
26
nix/configuration/roles/exfat/default.nix
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ ];
|
||||||
|
|
||||||
|
options.me = {
|
||||||
|
exfat.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = "Whether we want to install exfat.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.me.exfat.enable {
|
||||||
|
# boot.supportedFilesystems = [ "exfat" ];
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
exfatprogs
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -61,6 +61,7 @@
|
|||||||
systemd.services."build-cache" =
|
systemd.services."build-cache" =
|
||||||
let
|
let
|
||||||
enabled_targets = [
|
enabled_targets = [
|
||||||
|
"wip"
|
||||||
"odo"
|
"odo"
|
||||||
"odo_update"
|
"odo_update"
|
||||||
"odowork"
|
"odowork"
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
output_directory = "/home/nixworker/persist/nix_builder"
|
output_directory = "/home/nixworker/persist/nix_builder"
|
||||||
|
|
||||||
|
[[targets]]
|
||||||
|
name = "wip"
|
||||||
|
repo = "https://code.fizz.buzz/talexander/machine_setup.git"
|
||||||
|
branch = "wip"
|
||||||
|
path = "nix/configuration"
|
||||||
|
attr = "nixosConfigurations.odo.config.system.build.toplevel"
|
||||||
|
|
||||||
[[targets]]
|
[[targets]]
|
||||||
name = "odo"
|
name = "odo"
|
||||||
repo = "https://code.fizz.buzz/talexander/machine_setup.git"
|
repo = "https://code.fizz.buzz/talexander/machine_setup.git"
|
||||||
@@ -180,10 +187,10 @@ output_directory = "/home/nixworker/persist/nix_builder"
|
|||||||
|
|
||||||
[[targets]]
|
[[targets]]
|
||||||
name = "nixbsd"
|
name = "nixbsd"
|
||||||
repo = "https://github.com/nixos-bsd/nixbsd.git"
|
repo = "https://code.fizz.buzz/talexander/machine_setup.git"
|
||||||
revision = "2b512eda58e6d77378bd20d6027802b158942e24"
|
branch = "nixbsd"
|
||||||
path = "."
|
path = "nix/nixbsd"
|
||||||
attr = "base.vmClosureInfo"
|
attr = "computer.vm"
|
||||||
|
|
||||||
[[targets]]
|
[[targets]]
|
||||||
name = "nix_builder_develop"
|
name = "nix_builder_develop"
|
||||||
|
|||||||
@@ -81,6 +81,10 @@ in
|
|||||||
# Demon's Souls per-game config.
|
# Demon's Souls per-game config.
|
||||||
source = ./files/config_BLUS30443.yml;
|
source = ./files/config_BLUS30443.yml;
|
||||||
};
|
};
|
||||||
|
".config/rpcs3/custom_configs/config_BLUS30421.yml" = {
|
||||||
|
# The Lord of the Rings The War in the North per-game config.
|
||||||
|
source = ./files/config_BLUS30421.yml;
|
||||||
|
};
|
||||||
".config/rpcs3/patches/patch.yml" = {
|
".config/rpcs3/patches/patch.yml" = {
|
||||||
# All of the available patches.
|
# All of the available patches.
|
||||||
source = ./files/patch.yml;
|
source = ./files/patch.yml;
|
||||||
|
|||||||
14
nix/configuration/roles/rpcs3/files/config_BLUS30421.yml
Normal file
14
nix/configuration/roles/rpcs3/files/config_BLUS30421.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Core:
|
||||||
|
SPU Block Size: Safe
|
||||||
|
Video:
|
||||||
|
Write Color Buffers: true
|
||||||
|
Minimum Scalable Dimension: 640
|
||||||
|
Net:
|
||||||
|
Internet enabled: Connected
|
||||||
|
IP address: 0.0.0.0
|
||||||
|
Bind address: 0.0.0.0
|
||||||
|
DNS address: 8.8.8.8
|
||||||
|
IP swap list: ""
|
||||||
|
UPNP Enabled: false
|
||||||
|
PSN status: RPCN
|
||||||
|
PSN Country: us
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
nix.settings.experimental-features = [
|
nix.settings.experimental-features = [
|
||||||
"nix-command"
|
"nix-command"
|
||||||
"flakes"
|
"flakes"
|
||||||
"ca-derivations"
|
# "ca-derivations"
|
||||||
# "blake3-hashes"
|
# "blake3-hashes"
|
||||||
# "git-hashing"
|
# "git-hashing"
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user