nixos: replace system.build.toplevel
This commit is contained in:
parent
15f122f981
commit
b15c1b6cea
83
flake.nix
83
flake.nix
|
@ -57,13 +57,82 @@
|
||||||
|
|
||||||
lib =
|
lib =
|
||||||
# Local utilities merged with the Nixpkgs lib
|
# Local utilities merged with the Nixpkgs lib
|
||||||
forAllCrossSystems ({ system, localSystem, crossSystem }:
|
nixpkgs.lib.extend (final: prev: {
|
||||||
nixpkgs.lib // (import ./lib {
|
inherit forAllSystems forAllLocalSystems forAllCrossSystems;
|
||||||
inherit system localSystem crossSystem;
|
|
||||||
pkgs = self.legacyPackages.${system};
|
nixosSystem = { modules, ... }@args:
|
||||||
})) // {
|
import "${nixpkgs}/nixos/lib/eval-config.nix" (args // {
|
||||||
inherit forAllSystems forAllLocalSystems forAllCrossSystems;
|
|
||||||
};
|
baseModules =
|
||||||
|
# TODO: do not blacklist modules for the Linux guests
|
||||||
|
with builtins;
|
||||||
|
let
|
||||||
|
isNotModule = suffix:
|
||||||
|
let x = "${nixpkgs}/nixos/modules/${suffix}";
|
||||||
|
in y: x != y;
|
||||||
|
|
||||||
|
filters = map isNotModule
|
||||||
|
(import ./nixos-modules/base-modules-blacklist.nix);
|
||||||
|
|
||||||
|
isCompatible = p:
|
||||||
|
let p' = toString p;
|
||||||
|
in all (f: f p') filters;
|
||||||
|
|
||||||
|
in filter isCompatible
|
||||||
|
(import "${nixpkgs}/nixos/modules/module-list.nix");
|
||||||
|
|
||||||
|
modules = modules ++ [
|
||||||
|
({ config, lib, ... }: {
|
||||||
|
options = with lib; {
|
||||||
|
|
||||||
|
system.boot.loader.id = mkOption {
|
||||||
|
internal = true;
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
system.boot.loader.kernelFile = mkOption {
|
||||||
|
internal = true;
|
||||||
|
default = pkgs.stdenv.hostPlatform.platform.kernelTarget;
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
|
||||||
|
system.boot.loader.initrdFile = mkOption {
|
||||||
|
internal = true;
|
||||||
|
default = "initrd";
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.defaultUnit = mkOption {
|
||||||
|
default = "multi-user.target";
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
|
||||||
|
boot.loader.grub.enable = lib.mkDefault false;
|
||||||
|
|
||||||
|
fileSystems."/" = { };
|
||||||
|
|
||||||
|
networking.enableIPv6 = lib.mkForce false;
|
||||||
|
systemd.network.enable = lib.mkForce false;
|
||||||
|
|
||||||
|
system.nixos.versionSuffix = ".${
|
||||||
|
final.substring 0 8
|
||||||
|
(self.lastModifiedDate or self.lastModified or "19700101")
|
||||||
|
}.${self.shortRev or "dirty"}";
|
||||||
|
|
||||||
|
system.nixos.revision = final.mkIf (self ? rev) self.rev;
|
||||||
|
|
||||||
|
system.build.toplevel = config.system.build.initXml;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
})
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
legacyPackages =
|
legacyPackages =
|
||||||
# The nixpkgs.legacyPackages after overlaying
|
# The nixpkgs.legacyPackages after overlaying
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
[
|
||||||
|
"hardware/openrazer.nix"
|
||||||
|
"hardware/raid/hpsa.nix"
|
||||||
|
"hardware/sensor/iio.nix"
|
||||||
|
"hardware/system-76.nix"
|
||||||
|
"hardware/tuxedo-keyboard.nix"
|
||||||
|
"hardware/video/amdgpu-pro.nix"
|
||||||
|
"hardware/video/ati.nix"
|
||||||
|
"hardware/video/bumblebee.nix"
|
||||||
|
"hardware/video/capture/mwprocapture.nix"
|
||||||
|
"hardware/video/displaylink.nix"
|
||||||
|
"hardware/video/hidpi.nix"
|
||||||
|
"hardware/video/nvidia.nix"
|
||||||
|
"hardware/video/webcam/facetimehd.nix"
|
||||||
|
"hardware/xpadneo.nix"
|
||||||
|
"programs/bcc.nix"
|
||||||
|
"programs/cdemu.nix"
|
||||||
|
"programs/criu.nix"
|
||||||
|
"programs/sysdig.nix"
|
||||||
|
"programs/systemtap.nix"
|
||||||
|
"services/hardware/nvidia-optimus.nix"
|
||||||
|
"services/network-filesystems/nfsd.nix"
|
||||||
|
"services/networking/ntp/chrony.nix"
|
||||||
|
"services/networking/ntp/ntpd.nix"
|
||||||
|
"services/networking/ntp/openntpd.nix"
|
||||||
|
"services/networking/wg-quick.nix"
|
||||||
|
"services/networking/wireguard.nix"
|
||||||
|
"services/x11/desktop-managers/plasma5.nix"
|
||||||
|
"services/x11/hardware/digimend.nix"
|
||||||
|
"system/activation/linux.nix"
|
||||||
|
"system/boot/binfmt.nix"
|
||||||
|
"system/boot/emergency-mode.nix"
|
||||||
|
"system/boot/grow-partition.nix"
|
||||||
|
"system/boot/initrd-network.nix"
|
||||||
|
"system/boot/initrd-openvpn.nix"
|
||||||
|
"system/boot/initrd-ssh.nix"
|
||||||
|
"system/boot/loader/raspberrypi/raspberrypi.nix"
|
||||||
|
"system/boot/loader/systemd-boot/systemd-boot.nix"
|
||||||
|
"system/boot/luksroot.nix"
|
||||||
|
"system/boot/plymouth.nix"
|
||||||
|
"system/boot/tmp.nix"
|
||||||
|
"tasks/bcache.nix"
|
||||||
|
"tasks/encrypted-devices.nix"
|
||||||
|
"tasks/filesystems/bcachefs.nix"
|
||||||
|
"tasks/filesystems/btrfs.nix"
|
||||||
|
"tasks/filesystems/cifs.nix"
|
||||||
|
"tasks/filesystems/ext.nix"
|
||||||
|
"tasks/filesystems/f2fs.nix"
|
||||||
|
"tasks/filesystems/jfs.nix"
|
||||||
|
"tasks/filesystems/nfs.nix"
|
||||||
|
"tasks/filesystems/reiserfs.nix"
|
||||||
|
"tasks/filesystems/unionfs-fuse.nix"
|
||||||
|
"tasks/filesystems/vboxsf.nix"
|
||||||
|
"tasks/filesystems/vfat.nix"
|
||||||
|
"tasks/filesystems/xfs.nix"
|
||||||
|
"tasks/filesystems/zfs.nix"
|
||||||
|
"tasks/lvm.nix"
|
||||||
|
"tasks/swraid.nix"
|
||||||
|
"virtualisation/xen-dom0.nix"
|
||||||
|
]
|
|
@ -12,9 +12,9 @@
|
||||||
./systemd.nix
|
./systemd.nix
|
||||||
];
|
];
|
||||||
nixpkgs = rec {
|
nixpkgs = rec {
|
||||||
localSystem = "x86_64-linux";
|
localSystem.system = "x86_64-linux";
|
||||||
crossSystem = "x86_64-genode";
|
crossSystem.system = "x86_64-genode";
|
||||||
system = localSystem + "-" + crossSystem;
|
system = localSystem.system + "-" + crossSystem.system;
|
||||||
pkgs = flake.legacyPackages.${system};
|
pkgs = flake.legacyPackages.${system};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -191,7 +191,8 @@ in {
|
||||||
in {
|
in {
|
||||||
|
|
||||||
assertions = [{
|
assertions = [{
|
||||||
assertion = builtins.any (s: s == config.nixpkgs.system)
|
assertion = builtins.any (s:
|
||||||
|
s == config.nixpkgs.system || s == config.nixpkgs.crossSystem.system)
|
||||||
config.genode.core.supportedSystems;
|
config.genode.core.supportedSystems;
|
||||||
message = "invalid Genode core for this system";
|
message = "invalid Genode core for this system";
|
||||||
}];
|
}];
|
||||||
|
|
|
@ -27,7 +27,17 @@ let
|
||||||
autoreconfHost = overrideAttrsHost
|
autoreconfHost = overrideAttrsHost
|
||||||
(attrs: { nativeBuildInputs = [ final.autoreconfHook ]; });
|
(attrs: { nativeBuildInputs = [ final.autoreconfHook ]; });
|
||||||
|
|
||||||
in {
|
nullPkgs =
|
||||||
|
# Nullify this packages to find problems early
|
||||||
|
if hostPlatform.isGenode then
|
||||||
|
builtins.listToAttrs (map (name: {
|
||||||
|
inherit name;
|
||||||
|
value = null;
|
||||||
|
}) [ "iproute2" ])
|
||||||
|
else
|
||||||
|
{ };
|
||||||
|
|
||||||
|
in nullPkgs // {
|
||||||
|
|
||||||
bash = overrideAttrsTarget (attrs: {
|
bash = overrideAttrsTarget (attrs: {
|
||||||
configureFlags = attrs.configureFlags
|
configureFlags = attrs.configureFlags
|
||||||
|
@ -103,6 +113,16 @@ in {
|
||||||
libvpx = null;
|
libvpx = null;
|
||||||
} libtoxcore;
|
} libtoxcore;
|
||||||
|
|
||||||
|
linuxPackages = if hostPlatform.isGenode then {
|
||||||
|
extend = _: final.linuxPackages;
|
||||||
|
features = { };
|
||||||
|
kernel.config = {
|
||||||
|
isEnabled = _: false;
|
||||||
|
isYes = _: false;
|
||||||
|
};
|
||||||
|
} else
|
||||||
|
linuxPackages;
|
||||||
|
|
||||||
llvmPackages_11 = callPackage ./llvm-11 ({
|
llvmPackages_11 = callPackage ./llvm-11 ({
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
buildLlvmTools = buildPackages.llvmPackages_11.tools;
|
buildLlvmTools = buildPackages.llvmPackages_11.tools;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ flake, system, localSystem, crossSystem, pkgs }:
|
{ flake, system, localSystem, crossSystem, pkgs }:
|
||||||
|
|
||||||
let
|
let
|
||||||
lib = flake.lib.${system};
|
lib = flake.lib;
|
||||||
nixpkgs = flake.legacyPackages.${system};
|
nixpkgs = flake.legacyPackages.${system};
|
||||||
legacyPackages = flake.legacyPackages.${system};
|
legacyPackages = flake.legacyPackages.${system};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue