{ description = "Cache of pre-built Genode binaries"; edition = 201909; outputs = { self, nixpkgs }: let localSystem = "x86_64-linux"; localPackages = nixpkgs.legacyPackages.${localSystem}; unpack = baseUrl: { name, value }: { inherit name; value = localPackages.stdenvNoCC.mkDerivation { pname = name; inherit (value) version; outputs = [ "out" "manifest" ]; preferLocalBuild = true; src = localPackages.fetchurl { url = "${baseUrl}${name}/${value.version}.tar.xz"; inherit (value) sha256; }; dontConfigure = true; dontBuild = true; installPhase = '' find . -type f | while read FILE; do case $FILE in *.a | *.o) install -Dm444 -t $out/lib $FILE;; *.so) install -Dm555 -t $out/lib $FILE;; *.tar) install -Dm444 -t $out/tar $FILE;; *) install -Dm555 -t $out/bin $FILE;; esac done local drv=$out echo -n '{' >> $manifest if [ -d $drv/bin ]; then echo -n ',bin={' >> $manifest find $drv/bin/ -type f -printf ',%f={mapKey="%f",mapValue="%p"}\n' >> $manifest echo -n '}' >> $manifest fi if [ -d $drv/lib ]; then echo -n ',lib={' >> $manifest find $drv/lib/ -type f -name '*.lib.so' -printf '%f "%p"\n' \ | awk '{print ","gensub(/.lib.so/, "", 1, $1)"={mapKey=\""$1"\",mapValue="$2" }"}'>> $manifest echo -n '}' >> $manifest fi if [ -d $drv/tar ]; then echo -n ',tar={' >> $manifest find $drv/tar/ -type f -name '*.tar' -printf '%f "%p"\n' \ | awk '{print ""gensub(/.tar/, "", 1, $1)"={mapKey=\""$1"\",mapValue="$2"}"}'>> $manifest echo -n '}' >> $manifest fi echo '}' >> $manifest ''; meta = { license = [ "LicenseRef-Genode" ]; downloadPage = "${baseUrl}${name}/"; }; }; }; expand = baseUrl: listing: builtins.listToAttrs (map (unpack baseUrl) listing); nfeske = expand "http://depot.genode.org/nfeske/bin/x86_64/" (import ./nfeske-list.nix); genodelabs = expand "http://depot.genode.org/genodelabs/bin/x86_64/" (import ./genodelabs-list.nix); pkgs = nfeske // genodelabs; in { packages = { x86_64-linux-x86_64-genode = pkgs; x86_64-linux = pkgs; }; checks = self.packages; }; }