nixos-config/config/nix.nix
Charlotte 🦝 Delenk 5d5cb7c6d1
All checks were successful
Hydra packages.aarch64-linux.python-tulir-telethon Hydra build #28773 of nixos-config:pr633:packages.aarch64-linux.python-tulir-telethon
Hydra packages.aarch64-linux.plover-plugin-emoji Hydra build #28757 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-emoji
Hydra packages.x86_64-linux.mautrix-whatsapp Hydra build #28803 of nixos-config:pr633:packages.x86_64-linux.mautrix-whatsapp
Hydra packages.aarch64-linux.bsnes-plus Hydra build #28722 of nixos-config:pr633:packages.aarch64-linux.bsnes-plus
Hydra packages.aarch64-linux.fairfax Hydra build #28740 of nixos-config:pr633:packages.aarch64-linux.fairfax
Hydra packages.aarch64-linux.plover-plugin-last-translation Hydra build #28759 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-last-translation
Hydra packages.aarch64-linux.plover-plugin-stenotype-extended Hydra build #28764 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-stenotype-extended
Hydra packages.aarch64-linux.emoji-raccoon Hydra build #28726 of nixos-config:pr633:packages.aarch64-linux.emoji-raccoon
Hydra packages.x86_64-linux.kreative-square Hydra build #28797 of nixos-config:pr633:packages.x86_64-linux.kreative-square
Hydra packages.aarch64-linux.plover-plugin-dotool-output Hydra build #28756 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-dotool-output
Hydra packages.aarch64-linux.mautrix-whatsapp Hydra build #28748 of nixos-config:pr633:packages.aarch64-linux.mautrix-whatsapp
Hydra packages.aarch64-linux.constructium Hydra build #28723 of nixos-config:pr633:packages.aarch64-linux.constructium
Hydra packages.aarch64-linux.emoji-volpeon-neofox Hydra build #28737 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-neofox
Hydra packages.x86_64-linux.python-plover-stroke Hydra build #28825 of nixos-config:pr633:packages.x86_64-linux.python-plover-stroke
Hydra packages.x86_64-linux.emoji-raccoon Hydra build #28781 of nixos-config:pr633:packages.x86_64-linux.emoji-raccoon
Hydra packages.aarch64-linux.mautrix-telegram Hydra build #28747 of nixos-config:pr633:packages.aarch64-linux.mautrix-telegram
Hydra packages.aarch64-linux.python-plover-stroke Hydra build #28770 of nixos-config:pr633:packages.aarch64-linux.python-plover-stroke
Hydra packages.aarch64-linux.mautrix-slack Hydra build #28746 of nixos-config:pr633:packages.aarch64-linux.mautrix-slack
Hydra packages.x86_64-linux.emoji-volpeon-vlpn Hydra build #28794 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-vlpn
Hydra packages.aarch64-linux.emoji-lotte Hydra build #28725 of nixos-config:pr633:packages.aarch64-linux.emoji-lotte
Hydra packages.aarch64-linux.python-simplefuzzyset Hydra build #28772 of nixos-config:pr633:packages.aarch64-linux.python-simplefuzzyset
Hydra packages.aarch64-linux.plover-plugins-manager Hydra build #28768 of nixos-config:pr633:packages.aarch64-linux.plover-plugins-manager
Hydra packages.aarch64-linux.lotte-art Hydra build #28743 of nixos-config:pr633:packages.aarch64-linux.lotte-art
Hydra packages.x86_64-linux.emoji-volpeon-bunhd Hydra build #28785 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-bunhd
Hydra packages.aarch64-linux.plover-plugin-rkb1-hid Hydra build #28763 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-rkb1-hid
Hydra packages.aarch64-linux.python-mautrix Hydra build #28769 of nixos-config:pr633:packages.aarch64-linux.python-mautrix
Hydra packages.x86_64-linux.plover-plugin-machine-hid Hydra build #28815 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-machine-hid
Hydra devShell.x86_64-linux Hydra build #28719 of nixos-config:pr633:devShell.x86_64-linux
Hydra packages.aarch64-linux.kreative-square Hydra build #28742 of nixos-config:pr633:packages.aarch64-linux.kreative-square
Hydra packages.x86_64-linux.emoji-rosaflags Hydra build #28782 of nixos-config:pr633:packages.x86_64-linux.emoji-rosaflags
Hydra packages.x86_64-linux.alco-sans Hydra build #28775 of nixos-config:pr633:packages.x86_64-linux.alco-sans
Hydra packages.aarch64-linux.emoji-caro Hydra build #28724 of nixos-config:pr633:packages.aarch64-linux.emoji-caro
Hydra packages.x86_64-linux.mautrix-slack Hydra build #28801 of nixos-config:pr633:packages.x86_64-linux.mautrix-slack
Hydra packages.aarch64-linux.miifox-net Hydra build #28750 of nixos-config:pr633:packages.aarch64-linux.miifox-net
Hydra packages.x86_64-linux.emoji-volpeon-fox Hydra build #28789 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-fox
Hydra packages.x86_64-linux.yiffstash Hydra build #28829 of nixos-config:pr633:packages.x86_64-linux.yiffstash
Hydra packages.aarch64-linux.emoji-volpeon-fox Hydra build #28734 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-fox
Hydra packages.aarch64-linux.emoji-volpeon-raccoon Hydra build #28738 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-raccoon
Hydra packages.aarch64-linux.emoji-volpeon-blobfox Hydra build #28728 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-blobfox
Hydra packages.aarch64-linux.plover-plugin-modal-dictionary Hydra build #28761 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-modal-dictionary
Hydra packages.aarch64-linux.plover-plugin-machine-hid Hydra build #28760 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-machine-hid
Hydra packages.x86_64-linux.plover-plugin-dict-commands Hydra build #28810 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-dict-commands
Hydra packages.aarch64-linux.emoji-volpeon-vlpn Hydra build #28739 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-vlpn
Hydra packages.x86_64-linux.plover-plugin-python-dictionary Hydra build #28817 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-python-dictionary
Hydra packages.x86_64-linux.plover-plugin-dotool-output Hydra build #28811 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-dotool-output
Hydra packages.x86_64-linux.python-rtf-tokenize Hydra build #28826 of nixos-config:pr633:packages.x86_64-linux.python-rtf-tokenize
Hydra packages.aarch64-linux.yiffstash Hydra build #28774 of nixos-config:pr633:packages.aarch64-linux.yiffstash
Hydra packages.x86_64-linux.fairfax Hydra build #28795 of nixos-config:pr633:packages.x86_64-linux.fairfax
Hydra packages.aarch64-linux.plover-plugin-python-dictionary Hydra build #28762 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-python-dictionary
Hydra packages.aarch64-linux.emoji-volpeon-bunhd-flip Hydra build #28731 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-bunhd-flip
Hydra packages.aarch64-linux.fairfax-hd Hydra build #28741 of nixos-config:pr633:packages.aarch64-linux.fairfax-hd
Hydra packages.x86_64-linux.python-tulir-telethon Hydra build #28828 of nixos-config:pr633:packages.x86_64-linux.python-tulir-telethon
Hydra packages.x86_64-linux.plover-plugin-emoji Hydra build #28812 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-emoji
Hydra packages.x86_64-linux.mautrix-telegram Hydra build #28802 of nixos-config:pr633:packages.x86_64-linux.mautrix-telegram
Hydra packages.x86_64-linux.lotte-art Hydra build #28798 of nixos-config:pr633:packages.x86_64-linux.lotte-art
Hydra packages.aarch64-linux.plover-dict-didoesdigital Hydra build #28754 of nixos-config:pr633:packages.aarch64-linux.plover-dict-didoesdigital
Hydra packages.x86_64-linux.constructium Hydra build #28778 of nixos-config:pr633:packages.x86_64-linux.constructium
Hydra packages.aarch64-linux.plover Hydra build #28753 of nixos-config:pr633:packages.aarch64-linux.plover
Hydra packages.x86_64-linux.papermc Hydra build #28807 of nixos-config:pr633:packages.x86_64-linux.papermc
Hydra packages.aarch64-linux.plover-plugin-stitching Hydra build #28765 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-stitching
Hydra packages.aarch64-linux.emoji-volpeon-drgn Hydra build #28732 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-drgn
Hydra packages.x86_64-linux.nasin-nanpa Hydra build #28806 of nixos-config:pr633:packages.x86_64-linux.nasin-nanpa
Hydra packages.x86_64-linux.plover-plugin-modal-dictionary Hydra build #28816 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-modal-dictionary
Hydra packages.x86_64-linux.plover-plugin-last-translation Hydra build #28814 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-last-translation
Hydra packages.aarch64-linux.plover-plugin-tapey-tape Hydra build #28766 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-tapey-tape
Hydra packages.aarch64-linux.plover-plugin-yaml-dictionary Hydra build #28767 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-yaml-dictionary
Hydra packages.x86_64-linux.bsnes-plus Hydra build #28777 of nixos-config:pr633:packages.x86_64-linux.bsnes-plus
Hydra packages.x86_64-linux.emoji-volpeon-raccoon Hydra build #28793 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-raccoon
Hydra packages.x86_64-linux.plover-plugin-tapey-tape Hydra build #28821 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-tapey-tape
Hydra packages.x86_64-linux.plover-plugin-lapwing-aio Hydra build #28813 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-lapwing-aio
Hydra packages.x86_64-linux.plover Hydra build #28808 of nixos-config:pr633:packages.x86_64-linux.plover
Hydra packages.aarch64-linux.plover-plugin-dict-commands Hydra build #28755 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-dict-commands
Hydra packages.aarch64-linux.emoji-volpeon-blobfox-flip Hydra build #28729 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-blobfox-flip
Hydra packages.x86_64-linux.emoji-volpeon-gphn Hydra build #28790 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-gphn
Hydra packages.x86_64-linux.mautrix-discord Hydra build #28800 of nixos-config:pr633:packages.x86_64-linux.mautrix-discord
Hydra packages.aarch64-linux.nasin-nanpa Hydra build #28751 of nixos-config:pr633:packages.aarch64-linux.nasin-nanpa
Hydra packages.x86_64-linux.emoji-volpeon-bunhd-flip Hydra build #28786 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-bunhd-flip
Hydra packages.x86_64-linux.matrix-media-repo Hydra build #28799 of nixos-config:pr633:packages.x86_64-linux.matrix-media-repo
Hydra packages.x86_64-linux.miifox-net Hydra build #28805 of nixos-config:pr633:packages.x86_64-linux.miifox-net
Hydra packages.x86_64-linux.emoji-volpeon-blobfox-flip Hydra build #28784 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-blobfox-flip
Hydra packages.x86_64-linux.plover-plugin-stenotype-extended Hydra build #28819 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-stenotype-extended
Hydra packages.x86_64-linux.asar-asm Hydra build #28776 of nixos-config:pr633:packages.x86_64-linux.asar-asm
Hydra packages.x86_64-linux.plover-plugin-stitching Hydra build #28820 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-stitching
Hydra packages.aarch64-linux.emoji-rosaflags Hydra build #28727 of nixos-config:pr633:packages.aarch64-linux.emoji-rosaflags
Hydra packages.x86_64-linux.plover-dict-didoesdigital Hydra build #28809 of nixos-config:pr633:packages.x86_64-linux.plover-dict-didoesdigital
Hydra packages.x86_64-linux.plover-plugins-manager Hydra build #28823 of nixos-config:pr633:packages.x86_64-linux.plover-plugins-manager
Hydra packages.x86_64-linux.python-mautrix Hydra build #28824 of nixos-config:pr633:packages.x86_64-linux.python-mautrix
Hydra packages.aarch64-linux.emoji-volpeon-neocat Hydra build #28736 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-neocat
Hydra packages.aarch64-linux.matrix-media-repo Hydra build #28744 of nixos-config:pr633:packages.aarch64-linux.matrix-media-repo
Hydra packages.x86_64-linux.plover-plugin-yaml-dictionary Hydra build #28822 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-yaml-dictionary
Hydra packages.aarch64-linux.emoji-volpeon-floof Hydra build #28733 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-floof
Hydra packages.aarch64-linux.emoji-volpeon-bunhd Hydra build #28730 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-bunhd
Hydra nas.x86_64-linux Hydra build #28831 of nixos-config:pr633:nas.x86_64-linux
Hydra packages.aarch64-linux.plover-plugin-lapwing-aio Hydra build #28758 of nixos-config:pr633:packages.aarch64-linux.plover-plugin-lapwing-aio
Hydra packages.aarch64-linux.papermc Hydra build #28752 of nixos-config:pr633:packages.aarch64-linux.papermc
Hydra packages.x86_64-linux.mgba-dev Hydra build #28804 of nixos-config:pr633:packages.x86_64-linux.mgba-dev
Hydra packages.aarch64-linux.mgba-dev Hydra build #28749 of nixos-config:pr633:packages.aarch64-linux.mgba-dev
Hydra packages.aarch64-linux.mautrix-discord Hydra build #28745 of nixos-config:pr633:packages.aarch64-linux.mautrix-discord
Hydra packages.x86_64-linux.emoji-volpeon-floof Hydra build #28788 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-floof
Hydra packages.x86_64-linux.emoji-volpeon-neofox Hydra build #28792 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-neofox
Hydra packages.x86_64-linux.emoji-volpeon-drgn Hydra build #28787 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-drgn
Hydra packages.x86_64-linux.emoji-volpeon-blobfox Hydra build #28783 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-blobfox
Hydra packages.x86_64-linux.emoji-lotte Hydra build #28780 of nixos-config:pr633:packages.x86_64-linux.emoji-lotte
Hydra packages.x86_64-linux.emoji-volpeon-neocat Hydra build #28791 of nixos-config:pr633:packages.x86_64-linux.emoji-volpeon-neocat
Hydra packages.aarch64-linux.asar-asm Hydra build #28721 of nixos-config:pr633:packages.aarch64-linux.asar-asm
Hydra packages.aarch64-linux.alco-sans Hydra build #28720 of nixos-config:pr633:packages.aarch64-linux.alco-sans
Hydra packages.x86_64-linux.python-simplefuzzyset Hydra build #28827 of nixos-config:pr633:packages.x86_64-linux.python-simplefuzzyset
Hydra packages.x86_64-linux.plover-plugin-rkb1-hid Hydra build #28818 of nixos-config:pr633:packages.x86_64-linux.plover-plugin-rkb1-hid
Hydra packages.x86_64-linux.emoji-caro Hydra build #28779 of nixos-config:pr633:packages.x86_64-linux.emoji-caro
Hydra packages.aarch64-linux.python-rtf-tokenize Hydra build #28771 of nixos-config:pr633:packages.aarch64-linux.python-rtf-tokenize
Hydra packages.aarch64-linux.emoji-volpeon-gphn Hydra build #28735 of nixos-config:pr633:packages.aarch64-linux.emoji-volpeon-gphn
Hydra packages.x86_64-linux.fairfax-hd Hydra build #28796 of nixos-config:pr633:packages.x86_64-linux.fairfax-hd
Hydra instance-20221213-1915.aarch64-linux Hydra build #28830 of nixos-config:pr633:instance-20221213-1915.aarch64-linux
Hydra nixos-8gb-fsn1-1.x86_64-linux Hydra build #28832 of nixos-config:pr633:nixos-8gb-fsn1-1.x86_64-linux
update
2024-12-01 13:52:58 +01:00

220 lines
6.1 KiB
Nix

{
pkgs,
lib,
config,
system,
attic,
...
}: {
imports = [
./workarounds
];
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
sandbox = true;
trusted-users = [
"@wheel"
"remote-build"
];
require-sigs = true;
substituters = [
"https://attic.chir.rs/chir-rs/"
"https://hydra.int.chir.rs"
];
trusted-public-keys = [
"nixcache:8KKuGz95Pk4UJ5W/Ni+pN+v+LDTkMMFV4yrGmAYgkDg="
"hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs="
"chir-rs:rzK1Czm3RqBbZLnXYrLM6JyOhfr6Z/8lhACIPO/LNFQ="
];
auto-optimise-store = true;
};
extraOptions = ''
experimental-features = nix-command flakes ca-derivations
'';
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
buildMachines = with lib;
mkMerge [
(mkIf (config.networking.hostName != "instance-20221213-1915") [
{
hostName = "build-aarch64";
systems = [
"aarch64-linux"
"riscv32-linux"
"riscv64-linux"
];
maxJobs = 4;
speedFactor = 1;
supportedFeatures = [
"nixos-test"
"benchmark"
"ca-derivations"
"gccarch-armv8-a"
"gccarch-armv8.1-a"
"gccarch-armv8.2-a"
"big-parallel"
];
}
])
(mkIf (config.networking.hostName != "nas") [
{
hostName = "build-nas";
systems = [
"i686-linux"
"x86_64-linux"
"armv7l-linux"
"powerpc-linux"
"powerpc64-linux"
"powerpc64le-linux"
"wasm32-wasi"
"riscv32-linux"
"riscv64-linux"
];
maxJobs = 12;
speedFactor = 1;
supportedFeatures = [
"kvm"
"nixos-test"
"big-parallel"
"benchmark"
"gccarch-znver1"
"gccarch-skylake"
"ca-derivations"
];
}
])
(mkIf (config.networking.hostName != "rainbow-resort") [
{
hostName = "build-rainbow-resort";
systems = [
"i686-linux"
"x86_64-linux"
"armv7l-linux"
"powerpc-linux"
"powerpc64-linux"
"powerpc64le-linux"
"wasm32-wasi"
"riscv32-linux"
"riscv64-linux"
];
maxJobs = 16;
speedFactor = 1;
supportedFeatures = [
"kvm"
"nixos-test"
"big-parallel"
"benchmark"
"gccarch-skylake-avx512"
"gccarch-znver4"
"gccarch-znver3"
"gccarch-znver2"
"gccarch-znver1"
"gccarch-skylake"
"ca-derivations"
];
}
])
(mkIf (config.networking.hostName != "vf2") [
{
hostName = "build-riscv";
systems = [
"riscv32-linux"
"riscv64-linux"
];
maxJobs = 4;
speedFactor = 2;
supportedFeatures = [
"nixos-test"
"big-parallel"
"benchmark"
"ca-derivations"
# There are many more combinations but i simply do not care lol
"gccarch-rv64gc_zba_zbb"
"gccarch-rv64gc_zba"
"gccarch-rv64gc_zbb"
"gccarch-rv64gc"
"gccarch-rv32gc_zba_zbb"
"gccarch-rv32gc_zba"
"gccarch-rv32gc_zbb"
"gccarch-rv32gc"
"native-riscv"
];
}
])
];
distributedBuilds = true;
};
systemd.services.nix-daemon.environment.TMPDIR = "/build";
systemd.services.nixos-upgrade = {
description = "NixOS Upgrade";
restartIfChanged = false;
unitConfig.X-StopOnRemoval = false;
serviceConfig.Type = "oneshot";
path = with pkgs; [
coreutils
gnutar
xz.bin
gzip
gitMinimal
config.nix.package.out
config.programs.ssh.package
jq
curl
];
script = lib.mkDefault ''
#!${pkgs.bash}/bin/bash
set -ex
builds=$(${pkgs.curl}/bin/curl -H 'accept: application/json' https://hydra.int.chir.rs/jobset/flakes/${
if config.networking.hostName != "vf2"
then "nixos-config"
else "nixos-config-riscv"
}/evals | ${pkgs.jq}/bin/jq -r '.evals[0].builds[]')
for build in $builds; do
doc=$(${pkgs.curl}/bin/curl -H 'accept: application/json' https://hydra.int.chir.rs/build/$build)
jobname=$(echo $doc | ${pkgs.jq}/bin/jq -r '.job')
if [ "$jobname" = "${config.networking.hostName}.${system}" ]; then
drvname=$(echo $doc | ${pkgs.jq}/bin/jq -r '.drvpath')
output=$(${pkgs.nix}/bin/nix-store -r $drvname)
${pkgs.nix}/bin/nix-env -p /nix/var/nix/profiles/system --set $output
${
if config.networking.hostName != "nixos-8gb-fsn1-1"
then ''
$output/bin/switch-to-configuration boot
booted="$(${pkgs.coreutils}/bin/readlink /run/booted-system/{initrd,kernel,kernel-modules})"
built="$(${pkgs.coreutils}/bin/readlink $output/{initrd,kernel,kernel-modules})"
if [ "$booted" = "$built" ]; then
$output/bin/switch-to-configuration switch
else
${pkgs.systemd}/bin/shutdown -r +1
fi
exit
''
else "$output/bin/switch-to-configuration switch"
}
fi
done
'';
after = ["network-online.target"];
wants = ["network-online.target"];
};
systemd.timers.nixos-upgrade = {
enable = true;
description = "Automatically update nixos";
requires = ["nixos-upgrade.service"];
wantedBy = ["multi-user.target"];
timerConfig = {
OnUnitActiveSec = "30min";
RandomizedDelaySec = "1h";
};
};
}