Unverified Commit 027419d2 authored by Alois Wohlschlager's avatar Alois Wohlschlager
Browse files

treewide: fix inappropriate usage of rust.envVars.setEnv

It was designed for the Cargo build hook, which goes into `nativeBuildInputs`.
Direct usage leads to an incorrect platform offset, which can for example be
observed by the package `pkgsStatic.buildPackages` differing from the native
one due to accidentally receiving the wrong environment variables. Fix the
issue by using `buildPackages` as `nativeBuildInputs` would.
parent 94def634
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  rust,
  buildPackages,
  rustPlatform,
  hdr10plus_tool,
  fetchFromGitHub,
@@ -11,7 +11,7 @@

let
  inherit (lib) optionals concatStringsSep;
  inherit (rust.envVars) setEnv;
  inherit (buildPackages.rust.envVars) setEnv;
in
rustPlatform.buildRustPackage (finalAttrs: {
  __structuredAttrs = true;
+4 −4
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
  rustPlatform,
  fetchCrate,
  cargo-c,
  rust,
  buildPackages,
  stdenv,
}:

@@ -27,19 +27,19 @@ rustPlatform.buildRustPackage rec {

  buildPhase = ''
    runHook preBuild
    ${rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    ${buildPackages.rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    runHook postBuild
  '';

  installPhase = ''
    runHook preInstall
    ${rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    ${buildPackages.rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    runHook postInstall
  '';

  checkPhase = ''
    runHook preCheck
    ${rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    ${buildPackages.rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    runHook postCheck
  '';

+3 −3
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
  lib,
  stdenv,
  fetchFromGitHub,
  rust,
  buildPackages,
  rustPlatform,
  cargo-c,
  python3,
@@ -37,13 +37,13 @@ rustPlatform.buildRustPackage rec {

  postBuild = ''
    pushd imagequant-sys
    ${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    ${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    popd
  '';

  postInstall = ''
    pushd imagequant-sys
    ${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    ${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    popd
  '';

+3 −3
Original line number Diff line number Diff line
{
  lib,
  rust,
  buildPackages,
  stdenv,
  rustPlatform,
  fetchCrate,
@@ -43,11 +43,11 @@ rustPlatform.buildRustPackage rec {
  checkType = "debug";

  postBuild = ''
    ${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    ${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
  '';

  postInstall = ''
    ${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    ${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
  '';

  passthru = {
+4 −4
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
  rustPlatform,
  cargo-c,
  validatePkgConfig,
  rust,
  buildPackages,
  libiconv,
  curl,
  apacheHttpd,
@@ -42,19 +42,19 @@ stdenv.mkDerivation (finalAttrs: {

  buildPhase = ''
    runHook preBuild
    ${rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    ${buildPackages.rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    runHook postBuild
  '';

  installPhase = ''
    runHook preInstall
    ${rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    ${buildPackages.rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    runHook postInstall
  '';

  checkPhase = ''
    runHook preCheck
    ${rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    ${buildPackages.rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
    runHook postCheck
  '';

Loading