# 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"; }); in rec { inherit (legacyPackages) stdenv; inherit (genodeLabs) genodeSources; 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 { }; 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 { }; }