2
0
Fork 0

Use cross-compliation pairs in Flake

This commit is contained in:
Ehmry - 2019-12-02 16:39:52 +01:00
parent 15360a0ff5
commit 53a18acd08
7 changed files with 52 additions and 44 deletions

View File

@ -23,33 +23,33 @@
"inputs": { "inputs": {
"nixpkgs": { "nixpkgs": {
"inputs": {}, "inputs": {},
"narHash": "sha256-HYX9rCn1dweN+L3ecNy4BiCGw4WEt1zgdIiAeYNY5GM=", "narHash": "sha256-/9hMb9pgV8awDYYchUueplyKF6bz23b7z5gqQ999nro=",
"originalUrl": "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode", "originalUrl": "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode",
"url": "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode&rev=12e31ac07c6d337760b3f59dc64c03f26cdd2009" "url": "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode&rev=d63ee96d86672a9cb23d83d50ee02687eded2818"
} }
}, },
"narHash": "sha256-9/RR/CwvB1M2VSR7CrSVexYXN1YSSSE4WG4siDh0LE0=", "narHash": "sha256-7X6XqNVzCzMRqq0LV+NLdfS1h7gWi+psnRNl4mwdPCY=",
"originalUrl": "git+https://gitea.c3d2.de/ehmry/genode.git", "originalUrl": "git+https://gitea.c3d2.de/ehmry/genode.git",
"url": "git+https://gitea.c3d2.de/ehmry/genode.git?ref=master&rev=2a9178fced42cac986de07b6944afd4422d28976" "url": "git+https://gitea.c3d2.de/ehmry/genode.git?ref=master&rev=32f8b603cb09bd85b8ad9092b55b4f3869da19d5"
}, },
"genode-depot": { "genode-depot": {
"inputs": { "inputs": {
"nixpkgs": { "nixpkgs": {
"inputs": {}, "inputs": {},
"narHash": "sha256-HYX9rCn1dweN+L3ecNy4BiCGw4WEt1zgdIiAeYNY5GM=", "narHash": "sha256-/9hMb9pgV8awDYYchUueplyKF6bz23b7z5gqQ999nro=",
"originalUrl": "nixpkgs", "originalUrl": "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode",
"url": "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode&rev=12e31ac07c6d337760b3f59dc64c03f26cdd2009" "url": "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode&rev=d63ee96d86672a9cb23d83d50ee02687eded2818"
} }
}, },
"narHash": "sha256-be9whulZ8unz1sq9PiFr+tuUAXlwiPEhIe0Z6jmfZiU=", "narHash": "sha256-uTHTwa05KzSmRETVBhpHw2CD+cMicqunaaknYsrxAfY=",
"originalUrl": "git+https://gitea.c3d2.de/ehmry/genode-depot.git", "originalUrl": "git+https://gitea.c3d2.de/ehmry/genode-depot.git",
"url": "git+https://gitea.c3d2.de/ehmry/genode-depot.git?ref=master&rev=2f3162d88220bd6fa6b6fbc7c6d9fed68533a761" "url": "git+https://gitea.c3d2.de/ehmry/genode-depot.git?ref=master&rev=ac11a14f9ba10685ae68ab5a050baf546ae702d2"
}, },
"nixpkgs": { "nixpkgs": {
"inputs": {}, "inputs": {},
"narHash": "sha256-HYX9rCn1dweN+L3ecNy4BiCGw4WEt1zgdIiAeYNY5GM=", "narHash": "sha256-/9hMb9pgV8awDYYchUueplyKF6bz23b7z5gqQ999nro=",
"originalUrl": "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode", "originalUrl": "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode",
"url": "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode&rev=12e31ac07c6d337760b3f59dc64c03f26cdd2009" "url": "git+https://gitea.c3d2.de/ehmry/nixpkgs.git?ref=genode&rev=d63ee96d86672a9cb23d83d50ee02687eded2818"
} }
}, },
"version": 3 "version": 3

View File

@ -19,24 +19,33 @@
in { in {
lib = import ./lib { lib = nixpkgs.lib.forAllCrossSystems
genodepkgs = self; ({ system, localSystem, crossSystem }:
inherit nixpkgs dhall-haskell genode-depot; nixpkgs.lib // (import ./lib {
}; inherit system localSystem crossSystem nixpkgs dhall-haskell
genode-depot;
genodepkgs = self;
}));
packages = forAllSystems (system: packages = nixpkgs.lib.forAllCrossSystems
let thisSystem = builtins.getAttr system; ({ system, localSystem, crossSystem }:
in import ./packages.nix { let thisSystem = builtins.getAttr system;
inherit system nixpkgs; in import ./packages.nix {
depot = thisSystem genode-depot.packages; inherit system nixpkgs;
genode = thisSystem genode.packages; depot = thisSystem genode-depot.packages;
} // builtins.getAttr system genode.packages); genode = thisSystem genode.packages;
} // builtins.getAttr system genode.packages);
checks = forAllSystems (system: checks = nixpkgs.lib.forAllCrossSystems
import ./tests { ({ system, localSystem, crossSystem }:
inherit self nixpkgs dhall-haskell genode-depot; import ./tests {
genodepkgs = builtins.getAttr system self.packages; inherit self system localSystem crossSystem nixpkgs dhall-haskell
}); genode-depot;
genodepkgs = builtins.getAttr system self.packages;
lib = builtins.getAttr system self.lib;
}) // {
x86_64-linux = self.checks.x86_64-linux-x86_64-genode;
};
}; };
} }

View File

@ -1,12 +1,13 @@
{ genodepkgs, nixpkgs, dhall-haskell, genode-depot }: { system, localSystem, crossSystem, genodepkgs, nixpkgs, dhall-haskell, genode-depot }:
let let
hostPkgs = import nixpkgs { hostPkgs = import nixpkgs {
system = "x86_64-linux"; system = localSystem;
overlays = [ (self: super: { inherit (dhall-haskell.packages) dhall; }) ]; overlays = [ (self: super: { inherit (dhall-haskell.packages) dhall; }) ];
}; };
testPkgs = genodepkgs.packages.x86_64-genode; thisSystem = builtins.getAttr system;
depot = genode-depot.packages.x86_64-genode; testPkgs = thisSystem genodepkgs.packages;
depot = thisSystem genode-depot.packages;
in { in {
dhallText = name: source: dhallText = name: source:
@ -37,7 +38,7 @@ in {
xmllint --noout $out xmllint --noout $out
''; '';
x86_64-genode.buildNovaIso = { name, rom }: buildNovaIso = { name, rom }:
let let
inherit (hostPkgs) cdrkit syslinux; inherit (hostPkgs) cdrkit syslinux;

View File

@ -15,11 +15,11 @@ let
dhallPackages = super.dhallPackages // (callPackage ./dhall { }); dhallPackages = super.dhallPackages // (callPackage ./dhall { });
in rec { in rec {
inherit (super) stdenv; inherit (super) stdenv;
libc = callPackage ./pkgs/libc { inherit depot; };
stdcxx = callPackage ./pkgs/stdcxx { };
nic_bus = callPackage ./pkgs/nic_bus { inherit (genode) base os; };
dhallGenode = dhallPackages.genode; dhallGenode = dhallPackages.genode;
dhallPrelude = dhallPackages.prelude; dhallPrelude = dhallPackages.prelude;
libc = callPackage ./pkgs/libc { inherit depot; };
nic_bus = callPackage ./pkgs/nic_bus { inherit (genode) base os; };
nova = callPackage ./NOVA { }; nova = callPackage ./NOVA { };
solo5 = callPackage ./pkgs/solo5 { inherit (genode) base os; }; solo5 = callPackage ./pkgs/solo5 { inherit (genode) base os; };
stdcxx = callPackage ./pkgs/stdcxx { };
} }

View File

@ -11,25 +11,23 @@ let
# solo5 = call ./solo5 { }; # solo5 = call ./solo5 { };
}; };
in { self, genodepkgs, nixpkgs, dhall-haskell, genode-depot }: in { self, system, localSystem, crossSystem, genodepkgs, nixpkgs, dhall-haskell, genode-depot, lib }:
let let
hostPkgs = import nixpkgs { hostPkgs = import nixpkgs {
system = "x86_64-linux"; system = localSystem;
overlays = [ (self: super: { inherit (dhall-haskell.packages) dhall; }) ]; overlays = [ (self: super: { inherit (dhall-haskell.packages) dhall; }) ];
}; };
depot = genode-depot.packages.x86_64-genode; depot = builtins.getAttr crossSystem genode-depot.packages;
testPkgs = genodepkgs; testPkgs = genodepkgs;
lib = hostPkgs.lib // self.lib;
linux = tests (import ./driver-linux.nix { linux = tests (import ./driver-linux.nix {
inherit testPkgs hostPkgs lib depot; inherit testPkgs hostPkgs lib depot;
}).callTest; }).callTest;
nova = (call: ((tests call) // { pci = call ./pci.nix { }; })) nova = (call: ((tests call) // { pci = call ./pci.nix { }; }))
(import ./driver-nova.nix { (import ./driver-nova.nix {
inherit testPkgs hostPkgs lib depot; inherit system testPkgs hostPkgs lib depot;
}).callTest; }).callTest;
testsToList = tests: testsToList = tests:

View File

@ -44,7 +44,7 @@ let
config = ./driver-config.xml; config = ./driver-config.xml;
core = "${base-linux}/bin/core-linux"; core = "${base-linux}/bin/core-linux";
init = "${os}/bin/init"; init = "${os}/bin/init";
"ld.lib.so" = "${depot.base-linux}/lib/ld.lib.so"; "ld.lib.so" = "${base-linux}/bin/ld-linux.lib.so";
timer = "${base-linux}/bin/linux_timer_drv"; timer = "${base-linux}/bin/linux_timer_drv";
} // bootModules; } // bootModules;

View File

@ -2,7 +2,7 @@
# #
# SPDX-License-Identifier: LicenseRef-Hippocratic-1.1 # SPDX-License-Identifier: LicenseRef-Hippocratic-1.1
{ testPkgs, hostPkgs, lib, depot }: { system, testPkgs, hostPkgs, lib, depot }:
let let
testDriver = with hostPkgs; testDriver = with hostPkgs;
@ -45,7 +45,7 @@ let
config = ./driver-config.xml; config = ./driver-config.xml;
} // bootModules); } // bootModules);
iso = lib.x86_64-genode.buildNovaIso { iso = lib.buildNovaIso {
inherit name; inherit name;
rom = bootModules'; rom = bootModules';
}; };