diff options
Diffstat (limited to 'nixpkgs/pkgs/development/ocaml-modules/opam-repository')
-rw-r--r-- | nixpkgs/pkgs/development/ocaml-modules/opam-repository/default.nix | 24 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/ocaml-modules/opam-repository/download-tool.patch | 29 |
2 files changed, 53 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/ocaml-modules/opam-repository/default.nix b/nixpkgs/pkgs/development/ocaml-modules/opam-repository/default.nix new file mode 100644 index 00000000000..1801a9e1c86 --- /dev/null +++ b/nixpkgs/pkgs/development/ocaml-modules/opam-repository/default.nix @@ -0,0 +1,24 @@ +{ lib, buildDunePackage, unzip, opam-format, curl }: + +buildDunePackage rec { + pname = "opam-repository"; + + minimumOCamlVersion = "4.02"; + + inherit (opam-format) src version; + + patches = [ ./download-tool.patch ]; + postPatch = '' + substituteInPlace src/repository/opamRepositoryConfig.ml \ + --replace "SUBSTITUTE_NIXOS_CURL_PATH" "\"${curl}/bin/curl\"" + ''; + + nativeBuildInputs = [ unzip ]; + buildInputs = [ curl ]; + propagatedBuildInputs = [ opam-format ]; + + meta = opam-format.meta // { + description = "OPAM repository and remote sources handling, including curl/wget, rsync, git, mercurial, darcs backends"; + maintainers = with lib.maintainers; [ sternenseemann ]; + }; +} diff --git a/nixpkgs/pkgs/development/ocaml-modules/opam-repository/download-tool.patch b/nixpkgs/pkgs/development/ocaml-modules/opam-repository/download-tool.patch new file mode 100644 index 00000000000..5af720adca9 --- /dev/null +++ b/nixpkgs/pkgs/development/ocaml-modules/opam-repository/download-tool.patch @@ -0,0 +1,29 @@ +diff --git a/src/repository/opamRepositoryConfig.ml b/src/repository/opamRepositoryConfig.ml +index c2954c1d..528fc621 100644 +--- a/src/repository/opamRepositoryConfig.ml ++++ b/src/repository/opamRepositoryConfig.ml +@@ -27,23 +27,7 @@ type 'a options_fun = + 'a + + let default = { +- download_tool = lazy ( +- try +- let tools = +- if OpamStd.Sys.(os () = Darwin) +- then ["wget", `Default; "curl", `Curl] +- else ["curl", `Curl; "wget", `Default] +- in +- let cmd, kind = +- List.find (fun (c,_) -> OpamSystem.resolve_command c <> None) tools +- in +- [ CIdent cmd, None ], kind +- with Not_found -> +- OpamConsole.error_and_exit `Configuration_error +- "Could not find a suitable download command. Please make sure you \ +- have either \"curl\" or \"wget\" installed, or specify a custom \ +- command through variable OPAMFETCH." +- ); ++ download_tool = lazy ([ CIdent SUBSTITUTE_NIXOS_CURL_PATH, None ], `Curl); + validation_hook = None; + retries = 3; + force_checksums = None; |