forked from DGNum/liminix
6a9b14f965
Sometimes config options get silenty removed because they have dependencies on other options that haven't been enabled. If you add those as attributes here, the kernel build will check they're _still_ present in the config after make oldconfig has run.
35 lines
1.2 KiB
Nix
35 lines
1.2 KiB
Nix
{ device ? (import devices/gl-ar750.nix)
|
|
}:
|
|
|
|
let
|
|
overlay = import ./overlay.nix;
|
|
nixpkgs = import <nixpkgs> ( device.system // {overlays = [overlay]; });
|
|
inherit (nixpkgs.pkgs) callPackage writeText liminix;
|
|
config = (import ./merge-modules.nix) [
|
|
./modules/base.nix
|
|
({ lib, ... } : { config = { inherit (device) kernel; }; })
|
|
<liminix-config>
|
|
./modules/s6
|
|
./modules/users.nix
|
|
] nixpkgs.pkgs;
|
|
squashfs = liminix.builders.squashfs config.filesystem.contents;
|
|
kernel = callPackage ./kernel {
|
|
inherit (config.kernel) config checkedConfig;
|
|
};
|
|
in {
|
|
outputs = {
|
|
inherit squashfs kernel;
|
|
default = nixpkgs.pkgs.runCommand "both-kinds" {} ''
|
|
mkdir $out
|
|
cd $out
|
|
ln -s ${squashfs} squashfs
|
|
ln -s ${kernel.vmlinux} vmlinux
|
|
'';
|
|
# this exists so that you can run "nix-store -q --tree" on it and find
|
|
# out what's in the image, which is nice if it's unexpectedly huge
|
|
manifest = writeText "manifest.json" (builtins.toJSON config.filesystem.contents);
|
|
};
|
|
# this is just here as a convenience, so that we can get a
|
|
# cross-compiling nix-shell for any package we're customizing
|
|
inherit (nixpkgs) pkgs;
|
|
}
|