diff --git a/pkgs/by-name/un/unison/fix-ocamlfind-env.patch b/pkgs/by-name/un/unison/fix-ocamlfind-env.patch new file mode 100644 index 000000000000..7e1a594cc339 --- /dev/null +++ b/pkgs/by-name/un/unison/fix-ocamlfind-env.patch @@ -0,0 +1,14 @@ +diff --git a/src/make_tools.ml b/src/make_tools.ml +index a5792b6..4f4d037 100644 +--- a/src/make_tools.ml ++++ b/src/make_tools.ml +@@ -475,7 +475,7 @@ let shell_internal ?(err_null = false) ?exit_status ?(input_str = "") cmd = + Unix.handle_unix_error (fun () -> + if err_null || input_str <> "" then + let (sh_out, sh_in, _) as sh_full = +- Unix.open_process_full cmd [|"PATH=" ^ env.$("PATH")|] in ++ Unix.open_process_full cmd (Array.append (Unix.environment ()) [|"PATH=" ^ env.$("PATH")|]) in + if input_str <> "" then begin + output_string sh_in input_str; + flush sh_in + diff --git a/pkgs/by-name/un/unison/package.nix b/pkgs/by-name/un/unison/package.nix index 0907a7faca36..67cdcf72c012 100644 --- a/pkgs/by-name/un/unison/package.nix +++ b/pkgs/by-name/un/unison/package.nix @@ -21,6 +21,9 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-ynsu9jLGFtjlzmHZtOdLEH5G6eXFAhZs9UayYrmKqp0="; }; + # Allow the build scripts to correctly call ocamlfind & detect dependencies + patches = [ ./fix-ocamlfind-env.patch ]; + strictDeps = true; nativeBuildInputs = [