mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 04:19:19 -08:00
feat(aya): qemu-aarch64 builder (disabled)
`binfmt_misc` does not currently work in containers...
This commit is contained in:
parent
0eb9efcd18
commit
767247cc91
3 changed files with 41 additions and 0 deletions
10
modules/extern/nixos/nix.nix
vendored
10
modules/extern/nixos/nix.nix
vendored
|
|
@ -10,6 +10,7 @@
|
|||
inherit (gensokyo-zone.lib) unmerged mkAlmostOptionDefault;
|
||||
cfg = config.gensokyo-zone.nix;
|
||||
nixModule = {
|
||||
lib,
|
||||
gensokyo-zone,
|
||||
nixosConfig,
|
||||
nixosOptions,
|
||||
|
|
@ -17,6 +18,7 @@
|
|||
...
|
||||
}: let
|
||||
inherit (gensokyo-zone.lib) unmerged domain;
|
||||
inherit (lib.modules) mkOptionDefault;
|
||||
inherit (nixosConfig.gensokyo-zone) access;
|
||||
in {
|
||||
options = with lib.types; {
|
||||
|
|
@ -31,6 +33,10 @@
|
|||
};
|
||||
builder = {
|
||||
enable = mkEnableOption "aya nixbld remote builder";
|
||||
cross = {
|
||||
aarch64 = mkEnableOption "qemu-aarch64";
|
||||
armv7l = mkEnableOption "qemu arm";
|
||||
};
|
||||
domain = mkOption {
|
||||
type = str;
|
||||
default = "nixbld.${domain}";
|
||||
|
|
@ -98,6 +104,10 @@
|
|||
})
|
||||
];
|
||||
builder = {
|
||||
systems = mkMerge [
|
||||
(mkIf config.builder.cross.aarch64 (mkOptionDefault [ "aarch64-linux" ]))
|
||||
(mkIf config.builder.cross.armv7l (mkOptionDefault [ "armv7l-linux" ]))
|
||||
];
|
||||
domain = mkMerge [
|
||||
(mkIf access.tail.enabled (mkAlmostOptionDefault "nixbld.tail.${domain}"))
|
||||
(mkIf access.local.enable (mkDefault "nixbld.local.${domain}"))
|
||||
|
|
|
|||
30
nixos/cross/aarch64.nix
Normal file
30
nixos/cross/aarch64.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ pkgs, config, lib, ... }: let
|
||||
inherit (lib.options) mkEnableOption mkPackageOption;
|
||||
inherit (lib.modules) mkIf;
|
||||
cfg = config.boot.binfmt.cross.aarch64;
|
||||
in {
|
||||
options = {
|
||||
boot.binfmt.cross.aarch64 = {
|
||||
enable = mkEnableOption "qemu-aarch64" // {
|
||||
default = true;
|
||||
};
|
||||
package = mkPackageOption pkgs "qemu" { };
|
||||
armv7l = mkEnableOption "arm.cachix.org";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
boot.binfmt = {
|
||||
emulatedSystems = mkIf cfg.enable [ "aarch64-linux" ];
|
||||
registrations.aarch64-linux = mkIf cfg.enable {
|
||||
interpreter = "${cfg.package}/bin/qemu-aarch64";
|
||||
wrapInterpreterInShell = false;
|
||||
};
|
||||
};
|
||||
|
||||
nix.settings = mkIf cfg.armv7l {
|
||||
substituters = [ "https://arm.cachix.org/" ];
|
||||
trusted-public-keys = [ "arm.cachix.org-1:5BZ2kjoL1q6nWhlnrbAl+G7ThY7+HaBRD9PZzqZkbnM=" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@
|
|||
nixos.base
|
||||
nixos.reisen-ct
|
||||
nixos.nixbld
|
||||
#nixos.cross.aarch64
|
||||
nixos.tailscale
|
||||
nixos.github-runner.zone
|
||||
nixos.minecraft.bedrock
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue