2020-01-16 17:38:23 +01:00
|
|
|
# SPDX-License-Identifier: CC0-1.0
|
2019-09-27 12:38:35 +02:00
|
|
|
|
2020-03-18 12:57:00 +01:00
|
|
|
{ system, legacyPackages, localPackages, depot, apps }:
|
2019-07-30 12:48:01 +02:00
|
|
|
|
2019-11-05 17:38:47 +01:00
|
|
|
let
|
2020-03-18 12:57:00 +01:00
|
|
|
dhallPackages = import ./dhall { inherit (localPackages) callPackage; };
|
2020-01-15 19:28:18 +01:00
|
|
|
|
2020-01-16 18:43:24 +01:00
|
|
|
mkDhallManifest = drv:
|
2020-01-25 17:11:10 +01:00
|
|
|
legacyPackages.runCommand "${drv.name}.dhall" { inherit drv; }
|
|
|
|
"${apps.generate-manifest.program} $drv > $out";
|
2020-01-15 19:28:18 +01:00
|
|
|
|
2020-01-16 17:38:23 +01:00
|
|
|
addManifest = drv: { manifest = mkDhallManifest drv; } // drv;
|
|
|
|
|
2020-01-25 17:11:10 +01:00
|
|
|
callPackage' = path: attrs:
|
2020-03-24 13:47:30 +01:00
|
|
|
addManifest (legacyPackages.callPackage path attrs);
|
2020-01-25 17:11:10 +01:00
|
|
|
|
2020-03-10 13:33:53 +01:00
|
|
|
genodeLabs = import ./genodelabs {
|
|
|
|
nixpkgs = legacyPackages;
|
|
|
|
inherit addManifest;
|
|
|
|
};
|
|
|
|
inherit (genodeLabs) buildUpstream;
|
|
|
|
|
|
|
|
buildWorld = let
|
|
|
|
genodeWorld = legacyPackages.fetchFromGitHub {
|
|
|
|
owner = "genodelabs";
|
|
|
|
repo = "genode-world";
|
|
|
|
rev = "0ed545e55a90c39df23a86eb733961de71d56241";
|
|
|
|
hash = "sha256-sirmUtLmZ5YnfLKrOvOBafnZW3UW+1LtkiGu85Ma820=";
|
|
|
|
};
|
|
|
|
in attrs:
|
|
|
|
buildUpstream (attrs // {
|
|
|
|
postConfigure =
|
|
|
|
"echo REPOSITORIES += ${genodeWorld} >> build/etc/build.conf";
|
|
|
|
});
|
2020-02-18 20:14:29 +01:00
|
|
|
|
2020-03-21 17:08:37 +01:00
|
|
|
genodeTupRules = ./Tuprules.tup;
|
|
|
|
|
2019-11-05 17:38:47 +01:00
|
|
|
in rec {
|
2020-01-16 17:19:42 +01:00
|
|
|
inherit (legacyPackages) stdenv;
|
2020-03-21 17:08:37 +01:00
|
|
|
inherit (genodeLabs) genodeSources; # toolchain;
|
2020-03-07 13:32:58 +01:00
|
|
|
|
2020-02-18 20:14:29 +01:00
|
|
|
base-hw-pc = buildUpstream {
|
|
|
|
name = "base-hw-pc";
|
2020-03-10 13:33:53 +01:00
|
|
|
outputs = [ "out" "coreObj" "bootstrapObj" ];
|
2020-03-01 02:10:11 +01:00
|
|
|
KERNEL = "hw";
|
|
|
|
BOARD = "pc";
|
|
|
|
targets = [ "bootstrap" "core" "timer" "lib/ld" ];
|
2020-02-18 20:14:29 +01:00
|
|
|
postInstall = ''
|
2020-03-10 13:33:53 +01:00
|
|
|
mv $out/core-hw-pc.o $coreObj
|
|
|
|
mv $out/bootstrap-hw-pc.o $bootstrapObj
|
|
|
|
mv $out/ld-hw.lib.so $out/ld.lib.so
|
|
|
|
mv $out/hw_timer_drv $out/timer_drv
|
2020-02-18 20:14:29 +01:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2020-03-01 02:10:11 +01:00
|
|
|
base-linux = buildUpstream {
|
|
|
|
name = "base-linux";
|
|
|
|
KERNEL = "linux";
|
|
|
|
targets = [ "core" "timer" "lib/ld" ];
|
|
|
|
postInstall = ''
|
|
|
|
mkdir -p $out/lib
|
2020-03-10 13:33:53 +01:00
|
|
|
mv $out/ld-linux.lib.so $out/lib/ld.lib.so
|
|
|
|
mv $out/linux_timer_drv $out/timer_drv
|
2020-03-01 02:10:11 +01:00
|
|
|
'';
|
|
|
|
HOST_INC_DIR = legacyPackages.buildPackages.glibc.dev + "/include";
|
|
|
|
};
|
|
|
|
|
2020-02-19 00:23:26 +01:00
|
|
|
base-nova = buildUpstream {
|
|
|
|
name = "base-nova";
|
2020-03-10 13:33:53 +01:00
|
|
|
outputs = [ "out" "coreObj" ];
|
2020-03-01 02:10:11 +01:00
|
|
|
KERNEL = "nova";
|
2020-02-24 14:19:57 +01:00
|
|
|
targets = [ "core" "timer" "lib/ld" ];
|
2020-02-19 00:23:26 +01:00
|
|
|
postInstall = ''
|
2020-03-10 13:33:53 +01:00
|
|
|
mv $out/core-nova.o $coreObj
|
|
|
|
mv $out/ld-nova.lib.so $out/ld.lib.so
|
|
|
|
mv $out/nova_timer_drv $out/timer_drv
|
2020-02-19 00:23:26 +01:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2020-03-10 13:33:53 +01:00
|
|
|
init = genodeSources.make "init";
|
2020-02-27 18:17:14 +01:00
|
|
|
|
2020-03-10 13:33:53 +01:00
|
|
|
ssh_client = buildWorld {
|
|
|
|
name = "ssh_client";
|
|
|
|
targets = [ "app/ssh_client" ];
|
|
|
|
portInputs = with genodeSources.ports; [ libc libssh openssl zlib ];
|
2020-02-24 14:24:36 +01:00
|
|
|
};
|
|
|
|
|
2020-01-16 17:19:42 +01:00
|
|
|
bender = legacyPackages.buildPackages.callPackage ./bender { };
|
2020-01-16 18:43:24 +01:00
|
|
|
|
2020-03-22 06:11:46 +01:00
|
|
|
block_router = let
|
|
|
|
src = legacyPackages.fetchgit {
|
|
|
|
url = "https://git.sr.ht/~ehmry/block_router";
|
|
|
|
rev = "dd78a4824bbc28c5760fda55e9d5dd23cbee8ecf";
|
|
|
|
sha256 = "1444nfgbgqggmyhjh81aac3mwixh7h6m1qmk8ikinf8gnl9mbngx";
|
|
|
|
};
|
|
|
|
in buildUpstream {
|
|
|
|
name = "block_router";
|
|
|
|
targets = [ "block_router" ];
|
|
|
|
postConfigure = ''
|
|
|
|
echo REPOSITORIES += ${src} >> $BUILD_DIR/etc/build.conf
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2019-11-05 17:38:47 +01:00
|
|
|
dhallGenode = dhallPackages.genode;
|
2020-01-16 18:43:24 +01:00
|
|
|
|
|
|
|
NOVA = legacyPackages.callPackage ./NOVA { };
|
|
|
|
|
2020-03-01 02:10:11 +01:00
|
|
|
solo5 = let drv = callPackage' ./solo5 { };
|
2020-01-25 17:11:10 +01:00
|
|
|
in drv // { tests = addManifest drv.tests // { pname = "solo5-tests"; }; };
|
2020-01-16 17:38:23 +01:00
|
|
|
|
2020-03-01 02:10:11 +01:00
|
|
|
sotest-producer = callPackage' ./sotest-producer { };
|
2020-01-16 18:43:24 +01:00
|
|
|
|
2020-01-25 17:11:10 +01:00
|
|
|
stdcxx = callPackage' ./stdcxx { };
|
2020-01-16 18:43:24 +01:00
|
|
|
}
|