diff --git a/pkgs/by-name/ma/matrix-authentication-service/package.nix b/pkgs/by-name/ma/matrix-authentication-service/package.nix index 0c5aaf652560..5fb3113b66b5 100644 --- a/pkgs/by-name/ma/matrix-authentication-service/package.nix +++ b/pkgs/by-name/ma/matrix-authentication-service/package.nix @@ -14,6 +14,7 @@ cctools, nix-update-script, versionCheckHook, + buildPackages, }: rustPlatform.buildRustPackage (finalAttrs: { @@ -52,6 +53,8 @@ rustPlatform.buildRustPackage (finalAttrs: { zstd ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + env = { ZSTD_SYS_USE_PKG_CONFIG = true; VERGEN_GIT_DESCRIBE = finalAttrs.version; @@ -74,23 +77,16 @@ rustPlatform.buildRustPackage (finalAttrs: { preBuild = let - rustTarget = stdenv.hostPlatform.rust.rustcTarget; - rustTargetUnderscore = builtins.replaceStrings [ "-" ] [ "_" ] rustTarget; + buildTarget = stdenv.buildPlatform.rust.rustcTarget; + buildTargetUnderscore = lib.replaceString "-" "_" buildTarget; in '' make -C policies (cd "$npmRoot" && npm run build) - # Fix aws-lc-sys cross-compilation: - # The cc crate looks for "aarch64-linux-gnu-gcc") - # when CC is unset and TARGET != HOST, but Nix's cross-compiler is - # named "aarch64-unknown-linux-gnu-gcc" (with vendor). - # We set the target-specific CC_ variable so the cc crate - # and aws-lc-sys find the correct cross-compiler, then unset the - # generic CC so aws-lc-sys doesn't misassign it. - export CC_${rustTargetUnderscore}=$CC - export CXX_${rustTargetUnderscore}=$CXX - unset CC CXX + # Fix aws-lc-sys cross-compilation + export CC_${buildTargetUnderscore}=$CC_FOR_BUILD + export CXX_${buildTargetUnderscore}=$CXX_FOR_BUILD ''; # Adapted from https://github.com/element-hq/matrix-authentication-service/blob/v0.20.0/.github/workflows/build.yaml#L75-L84