2
0
Fork 0
genodepkgs/packages/default.nix

117 lines
3.2 KiB
Nix

# SPDX-License-Identifier: CC0-1.0
{ system, legacyPackages, localPackages, depot, apps }:
let
dhallPackages = import ./dhall { inherit (localPackages) callPackage; };
mkDhallManifest = drv:
legacyPackages.runCommand "${drv.name}.dhall" { inherit drv; }
"${apps.generate-manifest.program} $drv > $out";
addManifest = drv: { manifest = mkDhallManifest drv; } // drv;
callPackage' = path: attrs:
addManifest (legacyPackages.callPackages path attrs);
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";
});
genodeTupRules = ./Tuprules.tup;
in rec {
inherit (legacyPackages) stdenv;
inherit (genodeLabs) genodeSources; # toolchain;
base-hw-pc = buildUpstream {
name = "base-hw-pc";
outputs = [ "out" "coreObj" "bootstrapObj" ];
KERNEL = "hw";
BOARD = "pc";
targets = [ "bootstrap" "core" "timer" "lib/ld" ];
postInstall = ''
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
'';
};
base-linux = buildUpstream {
name = "base-linux";
KERNEL = "linux";
targets = [ "core" "timer" "lib/ld" ];
postInstall = ''
mkdir -p $out/lib
mv $out/ld-linux.lib.so $out/lib/ld.lib.so
mv $out/linux_timer_drv $out/timer_drv
'';
HOST_INC_DIR = legacyPackages.buildPackages.glibc.dev + "/include";
};
base-nova = buildUpstream {
name = "base-nova";
outputs = [ "out" "coreObj" ];
KERNEL = "nova";
targets = [ "core" "timer" "lib/ld" ];
postInstall = ''
mv $out/core-nova.o $coreObj
mv $out/ld-nova.lib.so $out/ld.lib.so
mv $out/nova_timer_drv $out/timer_drv
'';
};
init = genodeSources.make "init";
ssh_client = buildWorld {
name = "ssh_client";
targets = [ "app/ssh_client" ];
portInputs = with genodeSources.ports; [ libc libssh openssl zlib ];
};
bender = legacyPackages.buildPackages.callPackage ./bender { };
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
'';
};
dhallGenode = dhallPackages.genode;
NOVA = legacyPackages.callPackage ./NOVA { };
libc = callPackage' ./libc { inherit depot; };
solo5 = let drv = callPackage' ./solo5 { };
in drv // { tests = addManifest drv.tests // { pname = "solo5-tests"; }; };
sotest-producer = callPackage' ./sotest-producer { };
stdcxx = callPackage' ./stdcxx { };
}