git.delta.rocks / fleet / refs/commits / 2438e2b594b6

difftreelog

source

pkgs/remowt-agents-bundle.nix1.7 KiBsourcehistory
1{2  craneLib,3  lib,4  pkgs,5  runCommandLocal,6}:7let8  crateName = "remowt-agent";910  buildFor =11    {12      target,13      crossPkgs,14    }:15    let16      cc = crossPkgs.stdenv.cc;17      ccBin = "${cc}/bin/${cc.targetPrefix}";18      ut = builtins.replaceStrings [ "-" ] [ "_" ] target;19      linkerEnv = "CARGO_TARGET_${lib.toUpper ut}_LINKER";20    in21    craneLib.buildPackage (22      {23        src = craneLib.cleanCargoSource ../.;24        pname = "${crateName}-${target}";2526        cargoExtraArgs = "--locked -p ${crateName}";2728        CARGO_BUILD_TARGET = target;29        CARGO_BUILD_RUSTFLAGS = "-C target-feature=+crt-static";3031        depsBuildBuild = [ cc ];32        doCheck = false;33      }34      // {35        ${linkerEnv} = "${ccBin}cc";36        "CC_${ut}" = "${ccBin}cc";37        "CXX_${ut}" = "${ccBin}c++";38        "AR_${ut}" = "${ccBin}ar";39      }40    );41  x86_64 = buildFor {42    target = "x86_64-unknown-linux-musl";43    crossPkgs = pkgs;44  };45  aarch64 = buildFor {46    target = "aarch64-unknown-linux-musl";47    crossPkgs = pkgs.pkgsCross.aarch64-multiplatform-musl;48  };49  armv7l = buildFor {50    target = "armv7-unknown-linux-musleabihf";51    crossPkgs = pkgs.pkgsCross.armv7l-hf-multiplatform.pkgsMusl;52  };53in54runCommandLocal "remowt-agents-bundle"55  {56    passthru = {57      perArch = {58        inherit x86_64 aarch64 armv7l;59      };60    };61  }62  ''63    mkdir -p $out64    cp ${x86_64}/bin/remowt-agent  $out/remowt-agent-x86_6465    cp ${aarch64}/bin/remowt-agent $out/remowt-agent-aarch6466    cp ${armv7l}/bin/remowt-agent  $out/remowt-agent-armv7l67    chmod +w $out/remowt-agent-*6869    for arch in x86_64 aarch64 armv7l; do70      hash=$(sha256sum "$out/remowt-agent-$arch" | cut -d' ' -f1)71      printf '%s %s\n' "$arch" "$hash" >> $out/hashes72    done73  ''