forked from DGNum/liminix
shell-customization #4
7 changed files with 79 additions and 27 deletions
22
ci.nix
22
ci.nix
|
@ -1,21 +1,15 @@
|
||||||
{
|
{
|
||||||
nixpkgs
|
sources ? import ./lon.nix
|
||||||
, unstable
|
, nixpkgs ? sources.nixpkgs
|
||||||
, liminix
|
, unstable ? nixpkgs
|
||||||
|
, liminix ? ./.
|
||||||
, ... }:
|
, ... }:
|
||||||
let
|
let
|
||||||
inherit (builtins) map;
|
pkgs = (import nixpkgs { });
|
||||||
pkgs = (import nixpkgs {});
|
|
||||||
borderVmConf = ./bordervm.conf-example.nix;
|
borderVmConf = ./bordervm.conf-example.nix;
|
||||||
inherit (pkgs.lib.attrsets) genAttrs;
|
inherit (pkgs.lib.attrsets) genAttrs;
|
||||||
devices = [
|
devices = [
|
||||||
"gl-ar750"
|
|
||||||
"gl-mt300a"
|
|
||||||
"gl-mt300n-v2"
|
|
||||||
"qemu"
|
"qemu"
|
||||||
"qemu-aarch64"
|
|
||||||
"qemu-armv7l"
|
|
||||||
"tp-archer-ax23"
|
|
||||||
"zyxel-nwa50ax"
|
"zyxel-nwa50ax"
|
||||||
];
|
];
|
||||||
vanilla = ./vanilla-configuration.nix;
|
vanilla = ./vanilla-configuration.nix;
|
||||||
|
@ -44,12 +38,6 @@ let
|
||||||
imports = [ ./modules/all-modules.nix ];
|
imports = [ ./modules/all-modules.nix ];
|
||||||
};
|
};
|
||||||
}).outputs.optionsJson;
|
}).outputs.optionsJson;
|
||||||
installers = map (f: "system.outputs.${f}") [
|
|
||||||
"vmroot"
|
|
||||||
"mtdimage"
|
|
||||||
"ubimage"
|
|
||||||
];
|
|
||||||
inherit (pkgs.lib) concatStringsSep;
|
|
||||||
in pkgs.stdenv.mkDerivation {
|
in pkgs.stdenv.mkDerivation {
|
||||||
name = "liminix-doc";
|
name = "liminix-doc";
|
||||||
nativeBuildInputs = with pkgs; [
|
nativeBuildInputs = with pkgs; [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# This "device" generates images that can be used with the QEMU
|
# This "device" generates images that can be used with the QEMU
|
||||||
# emulator. The default output is a directory containing separate
|
# emulator. The default output is a directory containing separate
|
||||||
# kernel (uncompressed vmlinux) and initrd (squashfs) images
|
# kernel (uncompressed vmlinux) and initrd (squashfs) images
|
||||||
{
|
rec {
|
||||||
system = {
|
system = {
|
||||||
crossSystem = {
|
crossSystem = {
|
||||||
config = "mips-unknown-linux-musl";
|
config = "mips-unknown-linux-musl";
|
||||||
|
@ -41,6 +41,9 @@
|
||||||
../../modules/arch/mipseb.nix
|
../../modules/arch/mipseb.nix
|
||||||
../families/qemu.nix
|
../families/qemu.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = system.crossSystem;
|
||||||
|
|
||||||
kernel = {
|
kernel = {
|
||||||
config = {
|
config = {
|
||||||
MIPS_MALTA= "y";
|
MIPS_MALTA= "y";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
rec {
|
||||||
system = {
|
system = {
|
||||||
crossSystem = {
|
crossSystem = {
|
||||||
config = "mipsel-unknown-linux-musl";
|
config = "mipsel-unknown-linux-musl";
|
||||||
|
@ -135,6 +135,8 @@
|
||||||
../../modules/zyxel-dual-image
|
../../modules/zyxel-dual-image
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = system.crossSystem;
|
||||||
|
|
||||||
filesystem = dir {
|
filesystem = dir {
|
||||||
lib = dir {
|
lib = dir {
|
||||||
firmware = dir {
|
firmware = dir {
|
||||||
|
|
15
lon.lock
Normal file
15
lon.lock
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"version": "1",
|
||||||
|
"sources": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"type": "GitHub",
|
||||||
|
"fetchType": "tarball",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"branch": "nixos-unstable-small",
|
||||||
|
"revision": "b6227cadb5123c7e4cb159bf6f9f5705ae081a47",
|
||||||
|
"url": "https://github.com/nixos/nixpkgs/archive/b6227cadb5123c7e4cb159bf6f9f5705ae081a47.tar.gz",
|
||||||
|
"hash": "sha256-KFR30GNFhjzXl0kVEn+KK4xrFr0gggb1NBroP8ukbxY="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
41
lon.nix
Normal file
41
lon.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
# Generated by lon. Do not modify!
|
||||||
|
let
|
||||||
|
|
||||||
|
lock = builtins.fromJSON (builtins.readFile ./lon.lock);
|
||||||
|
|
||||||
|
# Override with a path defined in an environment variable. If no variable is
|
||||||
|
# set, the original path is used.
|
||||||
|
overrideFromEnv =
|
||||||
|
name: path:
|
||||||
|
let
|
||||||
|
replacement = builtins.getEnv "LON_OVERRIDE_${name}";
|
||||||
|
in
|
||||||
|
if replacement == "" then
|
||||||
|
path
|
||||||
|
else
|
||||||
|
# this turns the string into an actual Nix path (for both absolute and
|
||||||
|
# relative paths)
|
||||||
|
if builtins.substring 0 1 replacement == "/" then
|
||||||
|
/. + replacement
|
||||||
|
else
|
||||||
|
/. + builtins.getEnv "PWD" + "/${replacement}";
|
||||||
|
|
||||||
|
fetchSource =
|
||||||
|
args@{ fetchType, ... }:
|
||||||
|
if fetchType == "git" then
|
||||||
|
builtins.fetchGit {
|
||||||
|
url = args.url;
|
||||||
|
ref = args.branch;
|
||||||
|
rev = args.revision;
|
||||||
|
narHash = args.hash;
|
||||||
|
}
|
||||||
|
else if fetchType == "tarball" then
|
||||||
|
builtins.fetchTarball {
|
||||||
|
url = args.url;
|
||||||
|
sha256 = args.hash;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
builtins.throw "Unsupported source type ${fetchType}";
|
||||||
|
|
||||||
|
in
|
||||||
|
builtins.mapAttrs (name: args: overrideFromEnv name (fetchSource args)) lock.sources
|
|
@ -69,6 +69,14 @@ in {
|
||||||
default = "uimage";
|
default = "uimage";
|
||||||
};
|
};
|
||||||
tftp = {
|
tftp = {
|
||||||
|
commandLine = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = config.boot.commandLine;
|
||||||
|
description = ''
|
||||||
|
TFTP-specific command line.
|
||||||
|
Defaults to the classical one if unset.
|
||||||
|
'';
|
||||||
|
};
|
||||||
loadAddress = mkOption {
|
loadAddress = mkOption {
|
||||||
type = types.ints.unsigned;
|
type = types.ints.unsigned;
|
||||||
description = ''
|
description = ''
|
||||||
|
@ -98,6 +106,9 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
|
# By default, we enable cross-compilation support.
|
||||||
|
nixpkgs.buildPlatform = lib.mkDefault builtins.currentSystem;
|
||||||
|
|
||||||
defaultProfile.packages = with pkgs;
|
defaultProfile.packages = with pkgs;
|
||||||
[ s6 s6-init-bin execline s6-linux-init s6-rc ];
|
[ s6 s6-init-bin execline s6-linux-init s6-rc ];
|
||||||
|
|
||||||
|
|
|
@ -41,14 +41,6 @@ in {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
};
|
};
|
||||||
commandLine = mkOption {
|
|
||||||
type = types.listOf types.str;
|
|
||||||
default = config.boot.commandLine;
|
|
||||||
description = ''
|
|
||||||
TFTP-specific command line.
|
|
||||||
Defaults to the classical one if unset.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
options.system.outputs = {
|
options.system.outputs = {
|
||||||
tftpboot = mkOption {
|
tftpboot = mkOption {
|
||||||
|
|
Loading…
Reference in a new issue