From 5809830ee6ab5b40a1eaf73f8613747b0ca726f3 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 16 Jul 2024 13:08:33 +0300 Subject: [PATCH] openmpi: replace sed cross compilation fixes with substituteInPlace Using substituteInPlace (with `--replace-fail`) is much safer. --- .../development/libraries/openmpi/default.nix | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix index 9feb2b7999fa..121d212b959d 100644 --- a/pkgs/development/libraries/openmpi/default.nix +++ b/pkgs/development/libraries/openmpi/default.nix @@ -145,22 +145,30 @@ stdenv.mkDerivation (finalAttrs: { # compilers at build time echo "''${!outputDev}/share/openmpi/mpicc-wrapper-data.txt" - sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \ - ''${!outputDev}/share/openmpi/mpicc-wrapper-data.txt + substituteInPlace ''${!outputDev}/share/openmpi/mpicc-wrapper-data.txt \ + --replace-fail \ + compiler=gcc \ + compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc echo "''${!outputDev}/share/openmpi/ortecc-wrapper-data.txt" - sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \ - ''${!outputDev}/share/openmpi/ortecc-wrapper-data.txt + substituteInPlace ''${!outputDev}/share/openmpi/ortecc-wrapper-data.txt \ + --replace-fail \ + compiler=gcc \ + compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc echo "''${!outputDev}/share/openmpi/mpic++-wrapper-data.txt" - sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++:' \ - ''${!outputDev}/share/openmpi/mpic++-wrapper-data.txt + substituteInPlace ''${!outputDev}/share/openmpi/mpic++-wrapper-data.txt \ + --replace-fail \ + compiler=g++ \ + compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++ '' + lib.optionalString fortranSupport '' echo "''${!outputDev}/share/openmpi/mpifort-wrapper-data.txt" - sed -i 's:compiler=.*:compiler=${gfortran}/bin/${gfortran.targetPrefix}gfortran:' \ - ''${!outputDev}/share/openmpi/mpifort-wrapper-data.txt + substituteInPlace ''${!outputDev}/share/openmpi/mpifort-wrapper-data.txt \ + --replace-fail \ + compiler=gfortran \ + compiler=${gfortran}/bin/${gfortran.targetPrefix}gfortran '';