mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-04 01:07:14 +08:00
* originally importPath in the unfreeNixpkgs function was not used at all. this commit fixes the issue, allowing the function to work as intended.
98 lines
3.0 KiB
Nix
98 lines
3.0 KiB
Nix
{
|
|
description = "Test flake for nixos-hardware";
|
|
|
|
inputs = {
|
|
nixos-unstable-small.url = "github:NixOS/nixpkgs/nixos-unstable-small";
|
|
nixos-stable.url = "github:NixOS/nixpkgs/nixos-24.05";
|
|
# override in the test
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
flake-parts.inputs.nixpkgs-lib.follows = "nixos-unstable-small";
|
|
};
|
|
|
|
outputs =
|
|
inputs@{ flake-parts, ... }:
|
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
|
systems = [
|
|
"aarch64-linux"
|
|
"x86_64-linux"
|
|
"riscv64-linux"
|
|
];
|
|
perSystem =
|
|
{
|
|
system,
|
|
lib,
|
|
pkgs,
|
|
inputs',
|
|
...
|
|
}:
|
|
let
|
|
blackList = [
|
|
# does import-from-derivation
|
|
"toshiba-swanky"
|
|
# uses custom nixpkgs config
|
|
"raspberry-pi-2"
|
|
|
|
# deprecated profiles
|
|
"framework"
|
|
"asus-zephyrus-ga402x"
|
|
"lenovo-yoga-7-14ARH7"
|
|
];
|
|
|
|
# There are more, but for those we need to force it.
|
|
# In future we should probably already define it in our module.
|
|
aarch64Systems = [
|
|
"raspberry-pi-3"
|
|
"raspberry-pi-4"
|
|
"raspberry-pi-5"
|
|
];
|
|
|
|
matchArch =
|
|
moduleName:
|
|
if builtins.elem moduleName aarch64Systems then
|
|
pkgs.hostPlatform.system == "aarch64-linux"
|
|
else
|
|
# TODO also add riscv64
|
|
pkgs.hostPlatform.system == "x86_64-linux";
|
|
|
|
modules = lib.filterAttrs (
|
|
name: _: !(builtins.elem name blackList || lib.hasPrefix "common-" name) && matchArch name
|
|
) inputs.nixos-hardware.nixosModules;
|
|
buildProfile = import ./build-profile.nix;
|
|
|
|
unfreeNixpkgs =
|
|
importPath:
|
|
import importPath {
|
|
config = {
|
|
allowBroken = true;
|
|
allowUnfree = true;
|
|
nvidia.acceptLicense = true;
|
|
};
|
|
overlays = [ ];
|
|
inherit system;
|
|
};
|
|
nixpkgsUnstable = unfreeNixpkgs inputs.nixos-unstable-small;
|
|
nixpkgsStable = unfreeNixpkgs inputs.nixos-stable;
|
|
|
|
checksForNixpkgs =
|
|
channel: nixpkgs:
|
|
lib.mapAttrs' (
|
|
name: module:
|
|
lib.nameValuePair "${channel}-${name}" (buildProfile {
|
|
pkgs = nixpkgs;
|
|
profile = module;
|
|
})
|
|
) modules;
|
|
in
|
|
{
|
|
_module.args.pkgs = nixpkgsUnstable;
|
|
checks = checksForNixpkgs "nixos-unstable" nixpkgsUnstable // checksForNixpkgs "nixos-stable" nixpkgsStable;
|
|
packages.run = pkgs.writeShellScriptBin "run.py" ''
|
|
#!${pkgs.bash}/bin/bash
|
|
export PATH=${lib.makeBinPath [ pkgs.nix-eval-jobs pkgs.nix-eval-jobs.nix ]}
|
|
exec ${pkgs.python3.interpreter} ${./.}/run.py --nixos-hardware "$@"
|
|
'';
|
|
};
|
|
};
|
|
}
|