# SPDX-FileCopyrightText: Emery Hemingway # # SPDX-License-Identifier: LicenseRef-Hippocratic-1.1 { system, nixpkgs, depot, genode, dhallApps }: let legacyPackages = builtins.getAttr system nixpkgs.legacyPackages; inherit (legacyPackages) callPackage; dhallPackages = legacyPackages.dhallPackages // (callPackage ./dhall { }); genode' = with builtins; let mkDhallManifest = drv: legacyPackages.runCommand "${drv.name}.dhall" { inherit drv; dhall = dhallApps.dhall.program; } '' echo '{' >> manifest.tmp if [ -d $drv/bin ]; then echo ', bin = {' >> manifest.tmp find $drv/bin/ -type f -printf '%f "%p"\n' \ | awk '{print ", "gensub(/\..*/, "", 1, $1)" = { mapKey = \""$1"\", mapValue = "$2" }" }'>> manifest.tmp echo '}' >> manifest.tmp fi if [ -d $drv/lib ]; then echo ', lib = {' >> manifest.tmp find $drv/lib/ -type f -name '*.lib.so' -printf '%f "%p"\n' \ | awk '{print ", "gensub(/\..*/, "", 1, $1)" = { mapKey = \""$1"\", mapValue = "$2" }" }'>> manifest.tmp echo '}' >> manifest.tmp fi if [ -d $drv/tar ]; then echo ', tar = {' >> manifest.tmp find $drv/tar/ -type f -name '*.tar' -printf '%f "%p"\n' \ | awk '{print ""gensub(/\..*/, "", 1, $1)" = { mapKey = \""$1"\", mapValue = "$2" }" }'>> manifest.tmp echo '}' >> manifest.tmp fi echo '}' >> manifest.tmp $dhall < manifest.tmp > $out ''; genodeRepoNames = attrNames genode; f = name: let drv = getAttr name genode; in { inherit name; value = drv // { manifest = mkDhallManifest drv; }; }; list = map f genodeRepoNames; attrs = listToAttrs list; in attrs; in rec { inherit (legacyPackages) stdenv; bender = legacyPackages.buildPackages.callPackage ./bender { }; dhallGenode = dhallPackages.genode; dhallPrelude = dhallPackages.prelude; libc = callPackage ./libc { inherit depot; }; nic_bus = callPackage ./nic_bus { inherit (genode) base os; }; solo5 = callPackage ./solo5 { inherit (genode) base os; }; stdcxx = callPackage ./stdcxx { }; } // genode'