From 5377640490d1c02cb06a555dd0f08ab2cdee6d89 Mon Sep 17 00:00:00 2001 From: Taylor Viti Date: Tue, 5 May 2020 15:12:02 -1000 Subject: [PATCH] nco: Patch hardcoded paths cp and mv Commit b83ed3efe81525302469a3052982f41393a616e0 in the nco source repo, hard-coded the paths to cp and mv, so as to point to their FHS locations, which resulted in ncrename throwing a "file not found" error when invoked outside of an FHS sandbox. This nixpkgs commit patches the src/nco_fl_utl.c to instead point the associated nixpkgs.coreutils locations. The hard-coded paths actually occur in a number of other locations, but this is enough to quash the error w/ ncrename (and presumably the other CLI nco tooling, although this isn't tested). --- pkgs/development/libraries/nco/default.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/nco/default.nix b/pkgs/development/libraries/nco/default.nix index 321e4e0560d..629c064404b 100644 --- a/pkgs/development/libraries/nco/default.nix +++ b/pkgs/development/libraries/nco/default.nix @@ -1,17 +1,24 @@ -{ stdenv, fetchzip, netcdf, netcdfcxx4, gsl, udunits, antlr, which, curl, flex }: +{ stdenv, fetchzip, netcdf, netcdfcxx4, gsl, udunits, antlr, which, curl, flex, coreutils }: stdenv.mkDerivation rec { version = "4.9.2"; pname = "nco"; nativeBuildInputs = [ flex which ]; - buildInputs = [ netcdf netcdfcxx4 gsl udunits antlr curl ]; + buildInputs = [ netcdf netcdfcxx4 gsl udunits antlr curl coreutils ]; src = fetchzip { url = "https://github.com/nco/nco/archive/${version}.tar.gz"; sha256 = "0nip9dmdx3d5nc30bz1d2w9his1dph136l53r160aa3bmb29xwqn"; }; + prePatch = '' + substituteInPlace src/nco/nco_fl_utl.c \ + --replace "/bin/cp" "${coreutils}/bin/cp" + substituteInPlace src/nco/nco_fl_utl.c \ + --replace "/bin/mv" "${coreutils}/bin/mv" + ''; + meta = { description = "NetCDF Operator toolkit"; longDescription = "The NCO (netCDF Operator) toolkit manipulates and analyzes data stored in netCDF-accessible formats, including DAP, HDF4, and HDF5";