# SPDX-License-Identifier: CC0-1.0 { system, legacyPackages, depot, apps }: let inherit (legacyPackages) callPackage; dhallPackages = legacyPackages.dhallPackages // (callPackage ./dhall { }); 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); buildUpstream = import ./genodelabs { nixpkgs = legacyPackages; inherit apps; }; in rec { inherit (legacyPackages) stdenv; base-hw-pc = buildUpstream { name = "base-hw-pc"; arch = "x86_64"; kernel = "hw"; board = "pc"; targets = [ "bootstrap" "core" "timer" ]; libTargets = [ "ld-hw" ]; postInstall = '' mkdir -p $out/lib mv $out/bin/*.o $out/lib/ mv $out/bin/ld-hw.lib.so $out/lib/ld.lib.so ''; }; bender = legacyPackages.buildPackages.callPackage ./bender { }; dhallGenode = dhallPackages.genode; dhallPrelude = dhallPackages.prelude; genode = import ./genode { nixpkgs = legacyPackages; inherit mkDhallManifest; }; NOVA = legacyPackages.callPackage ./NOVA { }; libc = callPackage' ./libc { inherit depot; }; nic_bus = callPackage ./nic_bus { inherit (genode) base os; }; solo5 = let drv = callPackage' ./solo5 { inherit genode; }; in drv // { tests = addManifest drv.tests // { pname = "solo5-tests"; }; }; sotest-producer = callPackage' ./sotest-producer { stdenv = genode.stdenvGcc; inherit genode; }; stdcxx = callPackage' ./stdcxx { }; }