Compare commits
5 Commits
wip-emulat
...
wip-emulat
Author | SHA1 | Date | |
---|---|---|---|
d86be97ced | |||
44388b132a | |||
cd6b112d33 | |||
8eb6be863a | |||
3b5ff938ce |
18
flake.nix
18
flake.nix
@@ -94,7 +94,17 @@
|
||||
evalHost = { name, local, target }: nixpkgs.lib.nixosSystem {
|
||||
system = target;
|
||||
modules = [
|
||||
(import ./hosts/instantiate.nix { localSystem = local; hostName = name; })
|
||||
{
|
||||
nixpkgs = (if (local != null) then {
|
||||
buildPlatform = local;
|
||||
} else {}) // {
|
||||
# TODO: does the earlier `system` arg to nixosSystem make its way here?
|
||||
hostPlatform.system = target;
|
||||
};
|
||||
# nixpkgs.buildPlatform = local; # set by instantiate.nix instead
|
||||
# nixpkgs.config.replaceStdenv = { pkgs }: pkgs.ccacheStdenv;
|
||||
}
|
||||
(import ./hosts/instantiate.nix { hostName = name; })
|
||||
self.nixosModules.default
|
||||
self.nixosModules.passthru
|
||||
{
|
||||
@@ -103,12 +113,6 @@
|
||||
self.overlays.sane-all
|
||||
];
|
||||
}
|
||||
({ lib, ... }: {
|
||||
# TODO: does the earlier `system` arg to nixosSystem make its way here?
|
||||
nixpkgs.hostPlatform.system = target;
|
||||
# nixpkgs.buildPlatform = local; # set by instantiate.nix instead
|
||||
# nixpkgs.config.replaceStdenv = { pkgs }: pkgs.ccacheStdenv;
|
||||
})
|
||||
];
|
||||
};
|
||||
in {
|
||||
|
@@ -1,10 +1,10 @@
|
||||
# trampoline from flake.nix into the specific host definition, while doing a tiny bit of common setup
|
||||
|
||||
# args from flake-level `import`
|
||||
{ hostName, localSystem }:
|
||||
{ hostName }:
|
||||
|
||||
# module args
|
||||
{ lib, ... }:
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
@@ -14,5 +14,4 @@
|
||||
];
|
||||
|
||||
networking.hostName = hostName;
|
||||
nixpkgs.buildPlatform = lib.mkIf (localSystem != null) localSystem;
|
||||
}
|
||||
|
@@ -15,9 +15,15 @@
|
||||
patchedFlakeFor = system: import "${patchedPkgsFor system}/flake.nix";
|
||||
patchedFlakeOutputsFor = system:
|
||||
(patchedFlakeFor system).outputs { inherit self; };
|
||||
|
||||
extractBuildPlatform = nixosSystemArgs:
|
||||
let
|
||||
firstMod = builtins.head nixosSystemArgs.modules;
|
||||
in
|
||||
firstMod.nixpkgs.buildPlatform or nixosSystemArgs.system;
|
||||
in
|
||||
{
|
||||
lib.nixosSystem = args: (patchedFlakeOutputsFor args.system).lib.nixosSystem args;
|
||||
lib.nixosSystem = args: (patchedFlakeOutputsFor (extractBuildPlatform args)).lib.nixosSystem args;
|
||||
|
||||
legacyPackages = builtins.mapAttrs
|
||||
(system: _:
|
||||
|
@@ -89,7 +89,7 @@ let
|
||||
# so hack its components into something which *does* handle cross compilation
|
||||
lib.overrideDerivation binfmtDeriv ({ builder, args, ... }: {
|
||||
builder = "${final.buildPackages.bash}/bin/sh";
|
||||
args = ["-e" (final.vmTools.vmRunCommand qemuCommandLinux)];
|
||||
args = ["-e" (final.buildPackages.vmTools.vmRunCommand qemuCommandLinux)];
|
||||
# orig{Builder,Args} gets used by the vmRunCommand script:
|
||||
origBuilder = builder;
|
||||
origArgs = args;
|
||||
@@ -718,7 +718,11 @@ in {
|
||||
};
|
||||
koreader = (prev.koreader.override {
|
||||
# fixes runtime error: luajit: ./ffi/util.lua:757: attempt to call field 'pack' (a nil value)
|
||||
inherit (emulated) luajit;
|
||||
# inherit (emulated) luajit;
|
||||
luajit = final.luajit.override {
|
||||
inherit (emulated) stdenv;
|
||||
buildPackages.stdenv = emulated.stdenv; # it uses buildPackages.stdenv for HOST_CC
|
||||
};
|
||||
}).overrideAttrs (upstream: {
|
||||
nativeBuildInputs = upstream.nativeBuildInputs ++ [
|
||||
final.autoPatchelfHook
|
||||
@@ -726,7 +730,11 @@ in {
|
||||
});
|
||||
koreader-from-src = prev.koreader-from-src.override {
|
||||
# fixes runtime error: luajit: ./ffi/util.lua:757: attempt to call field 'pack' (a nil value)
|
||||
inherit (emulated) luajit;
|
||||
# inherit (emulated) luajit;
|
||||
luajit = final.luajit.override {
|
||||
inherit (emulated) stdenv;
|
||||
buildPackages.stdenv = emulated.stdenv; # it uses buildPackages.stdenv for HOST_CC
|
||||
};
|
||||
};
|
||||
# libgweather = rmNativeInputs [ final.glib ] (prev.libgweather.override {
|
||||
# # alternative to emulating python3 is to specify it in `buildInputs` instead of `nativeBuildInputs` (upstream),
|
||||
|
Reference in New Issue
Block a user