From eaf72c49042984550f927facff48e16aa294c0ae Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Sat, 28 Feb 2015 14:07:25 +0900 Subject: [PATCH 1/4] Allow customisation of the download command (and use wget on macs by default) --- doc/dev-manual/dev-manual.tex | 37 +++++++++++++++++++------- src/client/opamArg.ml | 8 ++++-- src/client/opamClient.ml | 10 ++++--- src/client/opamState.ml | 27 +++++++++++++------ src/core/opamFile.ml | 27 ++++++++++++++++--- src/core/opamFile.mli | 3 +++ src/core/opamGlobals.ml | 49 ++++++++++++++++++++++++++++++++--- src/core/opamGlobals.mli | 12 ++++++++- src/core/opamSystem.ml | 33 ++++++++++++++++------- 9 files changed, 166 insertions(+), 40 deletions(-) diff --git a/doc/dev-manual/dev-manual.tex b/doc/dev-manual/dev-manual.tex index a03deb54817..554a92145ec 100644 --- a/doc/dev-manual/dev-manual.tex +++ b/doc/dev-manual/dev-manual.tex @@ -210,17 +210,36 @@ \subsubsection{Global Configuration File: {\tt config}} opam-version: "1.2" repositories: [ STRING+ ] switch: STRING - cores: INT + ?jobs: INT + ?solver: STRING + ?solver-criteria: STRING + ?solver-upgrade-criteria: STRING + ?solver-fixup-criteria: STRING + ?download-command: [ STRING+ ] + ?download-jobs: INT \end{Verbatim} -The field {\tt opam-version} indicates the current \OPAM\ format. - -The field {\tt repositories} contains the list of \OPAM\ repositories. - -The field {\tt switch} corresponds to the current compiler instance. - -The field {\tt cores} is the number of parallel process that -\OPAM\ will use when trying to build the packages. +\begin{itemize} +\item {\tt opam-version} indicates the current \OPAM\ repository format -- + normally corresponding to the \OPAM\ minor version (\verb+MAJOR.MINOR+) +\item {\tt repositories} contains the names of the currently configured + repositories. +\item {\tt switch} is the name of the currently active \OPAM\ switch. +\item {\tt jobs} is the maximum number of build processes that can be run + simultaneously. +\item {\tt solver} is the external solver to call. \verb+aspcud+ and + \verb+packup+ format arguments are currently supported. +\item {\tt solver-criteria}, {\tt solver-upgrade-criteria} and {\tt + solver-fixup-criteria} are the optimisation criteria provided to the solver + resp. in the default case (install requested packages at their latest version, + minimising the impact on other packages), for global upgrades (minimise + outdated packages) and for fixup (resolve dependencies while minimising + changes). +\item {\tt download-command} will be called to fetch remote files over http(s) + or ftp. +\item {\tt download-jobs} is the maximum number of simultaneous downloads (all + remote hosts included) +\end{itemize} \subsubsection{Package Specification files: {\tt opam}} \label{file:opam} diff --git a/src/client/opamArg.ml b/src/client/opamArg.ml index aebd4adfbd4..9debebec4b5 100644 --- a/src/client/opamArg.ml +++ b/src/client/opamArg.ml @@ -215,11 +215,15 @@ let help_sections = [ `P ("$(i,OPAMCRITERIA) specifies user $(i,preferences) for dependency solving.\ The default value is "^OpamGlobals.default_preferences `Default^". \ See also option --criteria"); - `P "$(i,OPAMCURL) can be used to define an alternative for the 'curl' \ - command-line utility to download files."; + `P "$(i,OPAMCURL) can be used to select a given 'curl' program. See \ + $(i,OPAMFETCH) for more options."; `P "$(i,OPAMDEBUG) see options `--debug' and `--debug-level'."; `P "$(i,OPAMDOWNLOADJOBS) sets the maximum number of simultaneous downloads."; `P "$(i,OPAMEXTERNALSOLVER) see option `--solver'."; + `P "$(i,OPAMFETCH) specifies how to download files: either `wget', `curl' or \ + a custom command where arguments $(b,$url) and $(b,$out) will be \ + replaced. Overrides the 'download-command' value from the main config \ + file."; `P "$(i,OPAMJOBS) sets the maximum number of parallel workers to run."; `P "$(i,OPAMLOCKRETRIES) sets the number of tries after which OPAM gives up \ acquiring its lock and fails. <= 0 means infinite wait."; diff --git a/src/client/opamClient.ml b/src/client/opamClient.ml index d471a0b2936..9027374d49d 100644 --- a/src/client/opamClient.ml +++ b/src/client/opamClient.ml @@ -1238,9 +1238,11 @@ module API = struct (OpamMisc.itemize (OpamGlobals.colorise `bold) missing)); let required_deps = ["curl or wget", - check_external_dep - (OpamMisc.Option.default "curl" OpamGlobals.curl_command) - || check_external_dep "wget"; + check_external_dep OpamGlobals.curl_command || + check_external_dep "wget" || + (match !OpamGlobals.download_tool with + | Some (`Custom (cmd,_)) -> check_external_dep cmd + | _ -> false); "patch", check_external_dep "patch"; "tar", check_external_dep "tar"; "unzip", check_external_dep "unzip" ] @@ -1266,7 +1268,7 @@ module API = struct (* Create ~/.opam/config *) let config = OpamFile.Config.create switch [repo.repo_name] jobs - OpamGlobals.default_dl_jobs + None OpamGlobals.default_dl_jobs in OpamFile.Config.write config_f config; diff --git a/src/client/opamState.ml b/src/client/opamState.ml index 0df11e134b5..5cd2211b20d 100644 --- a/src/client/opamState.ml +++ b/src/client/opamState.ml @@ -1383,13 +1383,7 @@ let upgrade_to_1_1_hook = let upgrade_to_1_2_hook = ref (fun () -> assert false) -let load_state ?(save_cache=true) call_site = - log "LOAD-STATE(%s)" call_site; - let chrono = OpamGlobals.timer () in - !upgrade_to_1_1_hook (); - - let root = OpamPath.root () in - +let load_config root = let config_p = OpamPath.config root in let config = let config = OpamFile.Config.read config_p in @@ -1411,6 +1405,7 @@ let load_state ?(save_cache=true) call_site = ) else config in + (* Set some globals *) OpamGlobals.external_solver := OpamMisc.Option.Op.( !OpamGlobals.external_solver ++ @@ -1429,6 +1424,22 @@ let load_state ?(save_cache=true) call_site = in OpamGlobals.solver_preferences := solver_prefs; + OpamGlobals.download_tool := + OpamMisc.Option.Op.( + !OpamGlobals.download_tool ++ + OpamFile.Config.dl_tool config); + + config + +let load_state ?(save_cache=true) call_site = + log "LOAD-STATE(%s)" call_site; + let chrono = OpamGlobals.timer () in + !upgrade_to_1_1_hook (); + + let root = OpamPath.root () in + + let config = load_config root in + let opams = let file = OpamPath.state_cache root in if OpamFilename.exists file then marshal_from_file file @@ -1470,7 +1481,7 @@ let load_state ?(save_cache=true) call_site = (OpamSwitch.to_string switch) (OpamSwitch.to_string new_switch); let config = OpamFile.Config.with_switch config new_switch in - OpamFile.Config.write config_p config; + OpamFile.Config.write (OpamPath.config root) config; new_switch, new_compiler; ) else OpamGlobals.error_and_exit diff --git a/src/core/opamFile.ml b/src/core/opamFile.ml index b1d599651e1..a7084d36ff1 100644 --- a/src/core/opamFile.ml +++ b/src/core/opamFile.ml @@ -730,6 +730,7 @@ module X = struct repositories : repository_name list ; switch : switch; jobs : int; + dl_tool : OpamGlobals.download_tool option; dl_jobs : int; criteria : (solver_criteria * string) list; solver : string option; @@ -745,13 +746,14 @@ module X = struct let repositories t = t.repositories let switch t = t.switch let jobs t = t.jobs + let dl_tool t = t.dl_tool let dl_jobs t = t.dl_jobs let criteria t = t.criteria let solver t = t.solver - let create switch repositories ?(criteria=[]) ?solver jobs dl_jobs = + let create switch repositories ?(criteria=[]) ?solver jobs dl_tool dl_jobs = { opam_version = OpamVersion.current; - repositories ; switch ; jobs ; dl_jobs ; + repositories ; switch ; jobs ; dl_tool; dl_jobs ; criteria ; solver } let empty = { @@ -759,6 +761,7 @@ module X = struct repositories = []; switch = OpamSwitch.of_string ""; jobs = OpamGlobals.default_jobs; + dl_tool = None; dl_jobs = OpamGlobals.default_dl_jobs; criteria = []; solver = None; @@ -771,6 +774,7 @@ module X = struct let s_switch2 = "ocaml-version" let s_jobs = "jobs" + let s_dl_tool = "download-command" let s_dl_jobs = "download-jobs" let s_criteria = "solver-criteria" let s_upgrade_criteria = "solver-upgrade-criteria" @@ -787,6 +791,7 @@ module X = struct s_repositories; s_switch; s_jobs; + s_dl_tool; s_dl_jobs; s_criteria; s_upgrade_criteria; @@ -838,6 +843,15 @@ module X = struct OpamGlobals.default_jobs in + let dl_tool = + try + match OpamFormat.assoc_option s.file_contents s_dl_tool + OpamFormat.parse_string with + | None -> None + | Some s -> OpamGlobals.download_tool_of_string s + with OpamFormat.Bad_format _ when permissive -> None + in + let dl_jobs = try match OpamFormat.assoc_option s.file_contents s_dl_jobs @@ -864,7 +878,7 @@ module X = struct let solver = OpamFormat.assoc_option s.file_contents s_solver OpamFormat.parse_string in - { opam_version; repositories; switch; jobs; dl_jobs; + { opam_version; repositories; switch; jobs; dl_tool; dl_jobs; criteria; solver } let to_string filename t = @@ -884,6 +898,12 @@ module X = struct | Some s -> [OpamFormat.make_variable (s_solver, OpamFormat.make_string s)] in + let download_tool = match t.dl_tool with + | None -> [] + | Some dlt -> + let s = OpamGlobals.string_of_download_tool dlt in + [OpamFormat.make_variable (s_dl_tool, OpamFormat.make_string s)] + in let s = { file_format = OpamVersion.current; file_name = OpamFilename.to_string filename; @@ -899,6 +919,7 @@ module X = struct OpamFormat.make_variable (s_switch, OpamFormat.make_string (OpamSwitch.to_string t.switch)) ] @ criteria @ solver + @ download_tool } in Syntax.to_string s end diff --git a/src/core/opamFile.mli b/src/core/opamFile.mli index d228be0be7b..a9df920c6ef 100644 --- a/src/core/opamFile.mli +++ b/src/core/opamFile.mli @@ -59,6 +59,7 @@ module Config: sig ?criteria:(OpamTypes.solver_criteria * string) list -> ?solver:string -> int -> + OpamGlobals.download_tool option -> int -> t @@ -87,6 +88,8 @@ module Config: sig (** Return the number of jobs *) val jobs: t -> int + val dl_tool: t -> OpamGlobals.download_tool option + (** Return the number of download jobs *) val dl_jobs: t -> int diff --git a/src/core/opamGlobals.ml b/src/core/opamGlobals.ml index 4528d2b464c..e45ee269dff 100644 --- a/src/core/opamGlobals.ml +++ b/src/core/opamGlobals.ml @@ -27,8 +27,11 @@ let check ?(warn=true) var = ref ( | "1" | "yes" | "true" -> true | v -> if warn then - Printf.eprintf "[WARNING] Invalid value %S for env variable OPAM%s, \ - assumed true.\n" v var; + prerr_endline + (OpamMisc.reformat ~indent:10 + (Printf.sprintf + "[WARNING] Invalid value %S for env variable OPAM%s, assumed \ + true." v var)); true with Not_found -> false ) @@ -101,8 +104,6 @@ let is_self_upgrade = try OpamMisc.getenv "OPAMNOSELFUPGRADE" = self_upgrade_bootstrapping_value with Not_found -> false -let curl_command = try Some (OpamMisc.getenv "OPAMCURL") with Not_found -> None - let jobs = ref ( try Some (int_of_string (OpamMisc.getenv "OPAMJOBS")) with Not_found | Failure _ -> None @@ -170,6 +171,46 @@ let get_external_solver () = let default_repository_name = "default" let default_repository_address = "https://opam.ocaml.org" +type download_tool = [ + | `Wget + | `Curl + | `Custom of string * (string -> string -> string list) + (** command * (fun src dst -> args list) *) +] + +let download_tool_of_string = function + | "curl" -> Some `Curl + | "wget" -> Some `Wget + | s -> + match OpamMisc.split s ' ' with + | cmd::args when List.mem "$url" args -> + Some (`Custom (cmd, (fun src dst -> + List.map (function + | "$url" -> src + | "$out" -> dst + | s -> s) + args))) + | _ -> + prerr_endline + (OpamMisc.reformat ~indent:10 + (Printf.sprintf + "[WARNING] Invalid download command %S, it should be a \ + command-line containing the argument $url, and optionally \ + $dst" + s)); + None + +let string_of_download_tool = function + | `Curl -> "curl" + | `Wget -> "wget" + | `Custom (cmd, argsf) -> String.concat " " (cmd::argsf "$url" "$out") + +let download_tool = + try ref (download_tool_of_string (OpamMisc.getenv "OPAMFETCH")) + with Not_found -> ref None + +let curl_command = try OpamMisc.getenv "OPAMCURL" with Not_found -> "curl" + let search_files = ref ["findlib"] let default_build_command = [ [ "./build.sh" ] ] diff --git a/src/core/opamGlobals.mli b/src/core/opamGlobals.mli index 2391ee6e599..d142b1d2ba7 100644 --- a/src/core/opamGlobals.mli +++ b/src/core/opamGlobals.mli @@ -56,7 +56,6 @@ val all_parens : bool ref val self_upgrade_bootstrapping_value : string val is_self_upgrade : bool -val curl_command : string option val jobs : int option ref val dl_jobs : int option ref val download_retry : int @@ -77,6 +76,17 @@ val default_external_solver : string val external_solver : string option ref val get_external_solver : unit -> string +type download_tool = [ + | `Wget + | `Curl + | `Custom of string * (string -> string -> string list) + (** command * (fun src dst -> args list) *) +] +val download_tool : download_tool option ref +val string_of_download_tool: download_tool -> string +val download_tool_of_string: string -> download_tool option +val curl_command : string + val default_repository_name : string val default_repository_address : string diff --git a/src/core/opamSystem.ml b/src/core/opamSystem.ml index 96f58b7d0fb..daf217c082e 100644 --- a/src/core/opamSystem.ml +++ b/src/core/opamSystem.ml @@ -672,6 +672,20 @@ let system_ocamlc_where = system [ "ocamlc"; "-where" ] let system_ocamlc_version = system [ "ocamlc"; "-version" ] +let choose_download_tool () = + match !OpamGlobals.download_tool with + | Some t -> t + | None -> + if OpamGlobals.os () = OpamGlobals.Darwin && command_exists "wget" + then `Wget + else if command_exists OpamGlobals.curl_command then `Curl + else if command_exists "wget" then `Wget + else + OpamGlobals.error_and_exit + "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." + let download_command = let retry = string_of_int OpamGlobals.download_retry in let wget ~compress:_ dir src = @@ -702,16 +716,17 @@ let download_command = OpamMisc.fatal e; internal_error "curl: code %s while downloading %s" code src in + let custom (cmd,argsf) ~compress:_ dir src = + let dst = Filename.basename src in + make_command ~dir cmd (argsf src dst) @@> fun r -> + raise_on_process_error r; + Done () + in lazy ( - match OpamGlobals.curl_command with - | Some cmd -> curl cmd - | None -> - if command_exists "curl" then - curl "curl" - else if command_exists "wget" then - wget - else - OpamGlobals.error_and_exit "Cannot find curl nor wget." + match choose_download_tool () with + | `Wget -> wget + | `Curl -> curl OpamGlobals.curl_command + | `Custom cust -> custom cust ) let really_download ~overwrite ?(compress=false) ~src ~dst = From 40a29ccb7c37afed37d053183f1b9f71fecc3721 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Sat, 28 Feb 2015 16:38:55 +0900 Subject: [PATCH 2/4] Let's parse commands in /config consistently and if we do it for download commands, let's put all that power to solver commands too --- src/client/opamArg.ml | 10 +++--- src/client/opamClient.ml | 11 ++++--- src/client/opamState.ml | 64 +++++++++++++++++++++++++++++++++----- src/core/opamFile.ml | 47 ++++++++++++++-------------- src/core/opamFile.mli | 10 +++--- src/core/opamFilter.ml | 6 ++++ src/core/opamFilter.mli | 3 ++ src/core/opamFormat.ml | 4 +++ src/core/opamFormat.mli | 4 +++ src/core/opamGlobals.ml | 59 +++++++++++------------------------ src/core/opamGlobals.mli | 15 +++++---- src/core/opamMisc.ml | 4 +-- src/core/opamSystem.ml | 12 ++++--- src/core/opamTypesBase.ml | 7 +++++ src/core/opamTypesBase.mli | 4 +++ src/solver/opamCudf.ml | 54 +++++++++++++++----------------- 16 files changed, 188 insertions(+), 126 deletions(-) diff --git a/src/client/opamArg.ml b/src/client/opamArg.ml index 9debebec4b5..a32bfad6cc8 100644 --- a/src/client/opamArg.ml +++ b/src/client/opamArg.ml @@ -130,11 +130,11 @@ let apply_global_options o = OpamGlobals.yes := !OpamGlobals.yes || o.yes; OpamGlobals.strict := !OpamGlobals.strict || o.strict; OpamGlobals.no_base_packages := !OpamGlobals.no_base_packages || o.no_base_packages; - OpamGlobals.external_solver := - OpamMisc.Option.Op.(o.external_solver ++ !OpamGlobals.external_solver); + OpamGlobals.env_external_solver := + OpamMisc.Option.Op.(o.external_solver ++ !OpamGlobals.env_external_solver); OpamGlobals.use_external_solver := !OpamGlobals.use_external_solver && not o.use_internal_solver && - !OpamGlobals.external_solver <> Some ""; + !OpamGlobals.env_external_solver <> Some ""; OpamGlobals.cudf_file := OpamMisc.Option.Op.(o.cudf_file ++ !OpamGlobals.cudf_file); OpamGlobals.no_self_upgrade := !OpamGlobals.no_self_upgrade || o.no_self_upgrade; @@ -1055,7 +1055,9 @@ let config = print "os" "%s" (OpamGlobals.os_string ()); print "external-solver" "%s" (if OpamCudf.external_solver_available () then - OpamGlobals.get_external_solver () + String.concat " " + (OpamGlobals.external_solver + ~input:"$in" ~output:"$out" ~criteria:"$criteria") else "no"); print "criteria" "%s" (try List.assoc `Default !OpamGlobals.solver_preferences diff --git a/src/client/opamClient.ml b/src/client/opamClient.ml index 9027374d49d..547baa554e6 100644 --- a/src/client/opamClient.ml +++ b/src/client/opamClient.ml @@ -1224,10 +1224,10 @@ module API = struct install the %s command on your system." msg (OpamGlobals.colorise `bold cmd)) unavailable_repos); - if not (check_external_dep (OpamGlobals.get_external_solver())) then + if not (check_external_dep (OpamGlobals.default_external_solver)) then OpamGlobals.warning "Recommended external solver %s not found." - (OpamGlobals.colorise `bold (OpamGlobals.get_external_solver ())); + (OpamGlobals.colorise `bold (OpamGlobals.default_external_solver)); let advised_deps = [!OpamGlobals.makecmd(); "m4"; "cc"] in (match List.filter (not @* check_external_dep) advised_deps with | [] -> () @@ -1241,7 +1241,10 @@ module API = struct check_external_dep OpamGlobals.curl_command || check_external_dep "wget" || (match !OpamGlobals.download_tool with - | Some (`Custom (cmd,_)) -> check_external_dep cmd + | Some (`Custom f) -> + (match f ~url:"" ~out:"-" ~retry:1 ~compress:false with + | cmd::_ -> check_external_dep cmd + | [] -> false) | _ -> false); "patch", check_external_dep "patch"; "tar", check_external_dep "tar"; @@ -1268,7 +1271,7 @@ module API = struct (* Create ~/.opam/config *) let config = OpamFile.Config.create switch [repo.repo_name] jobs - None OpamGlobals.default_dl_jobs + OpamGlobals.default_dl_jobs in OpamFile.Config.write config_f config; diff --git a/src/client/opamState.ml b/src/client/opamState.ml index 5cd2211b20d..bca4ab7e696 100644 --- a/src/client/opamState.ml +++ b/src/client/opamState.ml @@ -1383,6 +1383,8 @@ let upgrade_to_1_1_hook = let upgrade_to_1_2_hook = ref (fun () -> assert false) +(* Loads the global config file and update some global references in + OpamGlobals *) let load_config root = let config_p = OpamPath.config root in let config = @@ -1406,10 +1408,35 @@ let load_config root = config in (* Set some globals *) - OpamGlobals.external_solver := - OpamMisc.Option.Op.( - !OpamGlobals.external_solver ++ - OpamFile.Config.solver config); + let external_solver_command = + let cmd = match !OpamGlobals.env_external_solver with + | Some ("apsucd" | "packup" as s) -> [CIdent s] + | Some s -> simple_command_of_string s + | None -> match OpamFile.Config.solver config with + | Some f -> f + | None -> simple_command_of_string OpamGlobals.default_external_solver + in + let cmd = match cmd with + | [CIdent "aspcud"] -> + [CString "aspcud"; CIdent "input"; CIdent "output"; CIdent "criteria"] + | [CIdent "packup"] -> + [CString "packup"; CIdent "input"; CIdent "output"; + CString "-u"; CIdent "criteria"] + | cmd -> cmd + in + fun ~input ~output ~criteria -> + OpamFilter.simple_command (fun v -> + if not (is_global_conf v) then None else + match OpamVariable.to_string (OpamVariable.Full.variable v) with + | "input" -> Some (S input) + | "output" -> Some (S output) + | "criteria" -> Some (S criteria) + | _ -> None) + cmd + in + + OpamGlobals.external_solver_ref := Some external_solver_command; + let solver_prefs = let config_crit = !OpamGlobals.solver_preferences @ OpamFile.Config.criteria config in @@ -1424,10 +1451,31 @@ let load_config root = in OpamGlobals.solver_preferences := solver_prefs; - OpamGlobals.download_tool := - OpamMisc.Option.Op.( - !OpamGlobals.download_tool ++ - OpamFile.Config.dl_tool config); + let dl_tool = + match !OpamGlobals.download_tool_env with + | Some ("curl" | "wget" as s) -> Some [CIdent s] + | Some s -> Some (simple_command_of_string s) + | None -> OpamFile.Config.dl_tool config + in + let dl_command cmd = + fun ~url ~out ~retry ~compress -> + OpamFilter.simple_command (fun v -> + if not (is_global_conf v) then None else + match OpamVariable.to_string (OpamVariable.Full.variable v) with + | "url" -> Some (S url) + | "out" -> Some (S out) + | "retry" -> Some (S (string_of_int retry)) + | "compress" -> Some (B compress) + | _ -> None) + cmd + in + let download_tool = match dl_tool with + | Some [CIdent "curl"] -> Some `Curl + | Some [CIdent "wget"] -> Some `Wget + | Some cmd -> Some (`Custom (dl_command cmd)) + | None -> None + in + OpamGlobals.download_tool := download_tool; config diff --git a/src/core/opamFile.ml b/src/core/opamFile.ml index a7084d36ff1..3a8e2954dd0 100644 --- a/src/core/opamFile.ml +++ b/src/core/opamFile.ml @@ -730,10 +730,10 @@ module X = struct repositories : repository_name list ; switch : switch; jobs : int; - dl_tool : OpamGlobals.download_tool option; + dl_tool : simple_arg list option; dl_jobs : int; criteria : (solver_criteria * string) list; - solver : string option; + solver : simple_arg list option; } let with_repositories t repositories = { t with repositories } @@ -751,9 +751,9 @@ module X = struct let criteria t = t.criteria let solver t = t.solver - let create switch repositories ?(criteria=[]) ?solver jobs dl_tool dl_jobs = + let create switch repositories ?(criteria=[]) ?solver jobs ?download_tool dl_jobs = { opam_version = OpamVersion.current; - repositories ; switch ; jobs ; dl_tool; dl_jobs ; + repositories ; switch ; jobs ; dl_tool = download_tool; dl_jobs ; criteria ; solver } let empty = { @@ -826,29 +826,26 @@ module X = struct let switch1 = mk_switch s_switch1 in let switch2 = mk_switch s_switch2 in let switch = - match switch, switch1, switch2 with - | Some v, _ , _ - | _ , Some v, _ - | _ , _ , Some v -> v - | None , None , None -> OpamGlobals.error_and_exit - "No current switch defined." in + match OpamMisc.Option.Op.(switch ++ switch1 ++ switch2) with + | Some v -> v + | None -> OpamGlobals.error_and_exit + "No current switch defined in %s." + (OpamFilename.to_string filename) in let jobs = try - let mk str = OpamFormat.assoc_option s.file_contents str OpamFormat.parse_int in - match mk s_jobs, mk s_cores with - | Some i, _ -> i - | _ , Some i -> i - | _ -> 1 + let mk str = + OpamFormat.assoc_option s.file_contents str OpamFormat.parse_int in + match OpamMisc.Option.Op.(mk s_jobs ++ mk s_cores) with + | Some i -> i + | None -> OpamGlobals.default_jobs with OpamFormat.Bad_format _ when permissive -> OpamGlobals.default_jobs in let dl_tool = try - match OpamFormat.assoc_option s.file_contents s_dl_tool - OpamFormat.parse_string with - | None -> None - | Some s -> OpamGlobals.download_tool_of_string s + OpamFormat.assoc_option s.file_contents s_dl_tool + OpamFormat.parse_simple_command with OpamFormat.Bad_format _ when permissive -> None in @@ -876,7 +873,10 @@ module X = struct in let solver = - OpamFormat.assoc_option s.file_contents s_solver OpamFormat.parse_string + try + OpamFormat.assoc_option s.file_contents s_solver + OpamFormat.parse_simple_command + with OpamFormat.Bad_format _ when permissive -> None in { opam_version; repositories; switch; jobs; dl_tool; dl_jobs; criteria; solver } @@ -896,13 +896,14 @@ module X = struct let solver = match t.solver with | None -> [] | Some s -> - [OpamFormat.make_variable (s_solver, OpamFormat.make_string s)] + [OpamFormat.make_variable + (s_solver, OpamFormat.make_simple_command s)] in let download_tool = match t.dl_tool with | None -> [] | Some dlt -> - let s = OpamGlobals.string_of_download_tool dlt in - [OpamFormat.make_variable (s_dl_tool, OpamFormat.make_string s)] + [OpamFormat.make_variable + (s_dl_tool, OpamFormat.make_simple_command dlt)] in let s = { file_format = OpamVersion.current; diff --git a/src/core/opamFile.mli b/src/core/opamFile.mli index a9df920c6ef..646698d1986 100644 --- a/src/core/opamFile.mli +++ b/src/core/opamFile.mli @@ -57,9 +57,9 @@ module Config: sig switch -> repository_name list -> ?criteria:(OpamTypes.solver_criteria * string) list -> - ?solver:string -> + ?solver:(simple_arg list) -> int -> - OpamGlobals.download_tool option -> + ?download_tool:(simple_arg list) -> int -> t @@ -74,7 +74,7 @@ module Config: sig val with_criteria: t -> (solver_criteria * string) list -> t - val with_solver: t -> string option -> t + val with_solver: t -> simple_arg list option -> t (** Return the OPAM version *) val opam_version: t -> opam_version @@ -88,14 +88,14 @@ module Config: sig (** Return the number of jobs *) val jobs: t -> int - val dl_tool: t -> OpamGlobals.download_tool option + val dl_tool: t -> simple_arg list option (** Return the number of download jobs *) val dl_jobs: t -> int val criteria: t -> (solver_criteria * string) list - val solver: t -> string option + val solver: t -> simple_arg list option end diff --git a/src/core/opamFilter.ml b/src/core/opamFilter.ml index a40cf094df2..a6675a500fb 100644 --- a/src/core/opamFilter.ml +++ b/src/core/opamFilter.ml @@ -253,3 +253,9 @@ let command env (l, f) = None let commands env l = OpamMisc.filter_map (command env) l + +let simple_command env l = + List.map (function + | CString s -> expand_string env s + | CIdent i -> value_string (resolve_ident env (filter_ident_of_string i))) + l diff --git a/src/core/opamFilter.mli b/src/core/opamFilter.mli index b0f8822dcf0..f2eb587a542 100644 --- a/src/core/opamFilter.mli +++ b/src/core/opamFilter.mli @@ -93,3 +93,6 @@ val expand_interpolations_in_file: env -> basename -> unit (** Processes filters evaluation in a command list: parameter expansion and conditional filtering *) val commands: env -> command list -> string list list + +(** Process a simpler command, without filters *) +val simple_command: env -> simple_arg list -> string list diff --git a/src/core/opamFormat.ml b/src/core/opamFormat.ml index 95dde77330b..361a2c5ec76 100644 --- a/src/core/opamFormat.ml +++ b/src/core/opamFormat.ml @@ -665,6 +665,8 @@ let make_simple_arg = function | CString s -> make_string s | CIdent s -> make_ident s +let make_simple_command = make_list make_simple_arg + let make_arg = make_option make_simple_arg make_filter @@ -686,6 +688,8 @@ let parse_simple_arg = "string", (parse_string @> fun x -> CString x); ] +let parse_simple_command = parse_list parse_simple_arg + let parse_arg = parse_option parse_simple_arg parse_filter diff --git a/src/core/opamFormat.mli b/src/core/opamFormat.mli index 2371e5fec23..a81e68738a0 100644 --- a/src/core/opamFormat.mli +++ b/src/core/opamFormat.mli @@ -238,6 +238,10 @@ val parse_filter: value list -> filter (** Creation *) val make_filter: filter -> value list +(** Unfiltered argument list *) +val parse_simple_command: value -> simple_arg list +val make_simple_command: simple_arg list -> value + (** Parse a command *) val parse_command: value -> command diff --git a/src/core/opamGlobals.ml b/src/core/opamGlobals.ml index e45ee269dff..2300d0377a1 100644 --- a/src/core/opamGlobals.ml +++ b/src/core/opamGlobals.ml @@ -157,59 +157,36 @@ let get_solver_criteria action = let default_external_solver = "aspcud" -let external_solver = ref( - try Some (OpamMisc.strip (OpamMisc.getenv "OPAMEXTERNALSOLVER")) - with Not_found -> None) +let env_external_solver = + try ref (Some (OpamMisc.strip (OpamMisc.getenv "OPAMEXTERNALSOLVER"))) + with Not_found -> ref None + +let external_solver_ref = ref None let use_external_solver = ref (not (!(check "NOASPCUD") || !(check "USEINTERNALSOLVER") || - !external_solver = Some "")) + !env_external_solver = Some "")) -let get_external_solver () = - OpamMisc.Option.default default_external_solver !external_solver +let external_solver ~input ~output ~criteria = match !external_solver_ref with + | Some f -> f ~input ~output ~criteria + | None -> raise Not_found let default_repository_name = "default" let default_repository_address = "https://opam.ocaml.org" +let download_tool_env = + try ref (Some (OpamMisc.getenv "OPAMFETCH")) + with Not_found -> ref None + +let curl_command = try OpamMisc.getenv "OPAMCURL" with Not_found -> "curl" + type download_tool = [ | `Wget | `Curl - | `Custom of string * (string -> string -> string list) - (** command * (fun src dst -> args list) *) + | `Custom of + url:string -> out:string -> retry:int -> compress:bool -> string list ] - -let download_tool_of_string = function - | "curl" -> Some `Curl - | "wget" -> Some `Wget - | s -> - match OpamMisc.split s ' ' with - | cmd::args when List.mem "$url" args -> - Some (`Custom (cmd, (fun src dst -> - List.map (function - | "$url" -> src - | "$out" -> dst - | s -> s) - args))) - | _ -> - prerr_endline - (OpamMisc.reformat ~indent:10 - (Printf.sprintf - "[WARNING] Invalid download command %S, it should be a \ - command-line containing the argument $url, and optionally \ - $dst" - s)); - None - -let string_of_download_tool = function - | `Curl -> "curl" - | `Wget -> "wget" - | `Custom (cmd, argsf) -> String.concat " " (cmd::argsf "$url" "$out") - -let download_tool = - try ref (download_tool_of_string (OpamMisc.getenv "OPAMFETCH")) - with Not_found -> ref None - -let curl_command = try OpamMisc.getenv "OPAMCURL" with Not_found -> "curl" +let download_tool = ref None let search_files = ref ["findlib"] diff --git a/src/core/opamGlobals.mli b/src/core/opamGlobals.mli index d142b1d2ba7..4ad0241d2fc 100644 --- a/src/core/opamGlobals.mli +++ b/src/core/opamGlobals.mli @@ -72,19 +72,22 @@ val solver_preferences : (solver_criteria * string) list ref (** Get the currently configured solver criteria as a string *) val get_solver_criteria : [ `Default | `Upgrade | `Fixup ] -> string +val env_external_solver : string option ref val default_external_solver : string -val external_solver : string option ref -val get_external_solver : unit -> string + +val external_solver_ref : + (input:string -> output:string -> criteria:string -> string list) option ref +val external_solver : input:string -> output:string -> criteria:string -> string list type download_tool = [ | `Wget | `Curl - | `Custom of string * (string -> string -> string list) - (** command * (fun src dst -> args list) *) + | `Custom of + url:string -> out:string -> retry:int -> compress:bool -> string list ] + +val download_tool_env: string option ref val download_tool : download_tool option ref -val string_of_download_tool: download_tool -> string -val download_tool_of_string: string -> download_tool option val curl_command : string val default_repository_name : string diff --git a/src/core/opamMisc.ml b/src/core/opamMisc.ml index 296b1a6c4d7..7c2e3aa591b 100644 --- a/src/core/opamMisc.ml +++ b/src/core/opamMisc.ml @@ -382,10 +382,10 @@ let contains s c = with Not_found -> false let split s c = - Re_str.split (Re_str.regexp (Printf.sprintf "[%c]" c)) s + Re_str.split (Re_str.regexp (Printf.sprintf "[%c]+" c)) s let split_delim s c = - Re_str.split_delim (Re_str.regexp (Printf.sprintf "[%c]" c)) s + Re_str.split_delim (Re_str.regexp (Printf.sprintf "[%c]+" c)) s let visual_length_substring s ofs len = let rec aux s i = diff --git a/src/core/opamSystem.ml b/src/core/opamSystem.ml index daf217c082e..c18826a69a4 100644 --- a/src/core/opamSystem.ml +++ b/src/core/opamSystem.ml @@ -716,11 +716,15 @@ let download_command = OpamMisc.fatal e; internal_error "curl: code %s while downloading %s" code src in - let custom (cmd,argsf) ~compress:_ dir src = + let custom dl_cmd ~compress dir src = let dst = Filename.basename src in - make_command ~dir cmd (argsf src dst) @@> fun r -> - raise_on_process_error r; - Done () + match dl_cmd ~url:src ~out:dst ~retry:OpamGlobals.download_retry ~compress + with + | cmd::args -> + make_command ~dir cmd args @@> fun r -> + raise_on_process_error r; + Done () + | [] -> internal_error "Empty custom download command" in lazy ( match choose_download_tool () with diff --git a/src/core/opamTypesBase.ml b/src/core/opamTypesBase.ml index ae379b2f7ab..221a6cc75cc 100644 --- a/src/core/opamTypesBase.ml +++ b/src/core/opamTypesBase.ml @@ -283,3 +283,10 @@ let string_of_cause to_string = let map_success f = function | Success x -> Success (f x) | Conflicts c -> Conflicts c + +let simple_command_of_string s = + List.map (fun arg -> + let len = String.length arg in + if len > 0 && arg.[0] = '$' then CIdent (String.sub arg 1 (len-1)) + else CString arg) + (OpamMisc.split s ' ') diff --git a/src/core/opamTypesBase.mli b/src/core/opamTypesBase.mli index 1dfc8ba7e6d..ffd0d91e9af 100644 --- a/src/core/opamTypesBase.mli +++ b/src/core/opamTypesBase.mli @@ -115,3 +115,7 @@ val filter_deps: ?build:bool -> ?test:bool -> ?doc:bool -> ext_formula -> formul (** Map on a solver result *) val map_success: ('a -> 'b) -> ('a,'fail) result -> ('b,'fail) result + +(** Splits string and expands parameters written '$arg' to idents to build a + simple command *) +val simple_command_of_string: string -> simple_arg list diff --git a/src/solver/opamCudf.ml b/src/solver/opamCudf.ml index d5a35d327b6..ba1f11d4294 100644 --- a/src/solver/opamCudf.ml +++ b/src/solver/opamCudf.ml @@ -454,36 +454,31 @@ let to_cudf univ req = ( req_extra = [] } ) +let external_solver_name () = + match OpamGlobals.external_solver ~input:"" ~output:"" ~criteria:"" with + | cmd::_ -> cmd + | [] -> raise Not_found + let external_solver_exists = lazy ( - let ex = OpamSystem.command_exists (OpamGlobals.get_external_solver ()) in - if not ex && !OpamGlobals.use_external_solver && - !OpamGlobals.external_solver <> None - then - OpamGlobals.error_and_exit - "You specified you wanted to use external solver %s, but it cannot be found.\n\ - Fix your installation, your configuration or use '--use-internal-solver'." - (OpamGlobals.get_external_solver ()) - else ex + try + let name = external_solver_name () in + let ex = OpamSystem.command_exists name in + if not ex && !OpamGlobals.use_external_solver && + !OpamGlobals.env_external_solver <> None + then + OpamGlobals.error_and_exit + "Your configuration or environment specifies external solver %s, but \ + it cannot be found. Fix your installation, your configuration or \ + use '--use-internal-solver'." + name + else ex + with Not_found -> false ) let external_solver_available () = !OpamGlobals.use_external_solver && (Lazy.force external_solver_exists) -let external_solver_command ~input ~output ~criteria = - let s = OpamGlobals.get_external_solver () in - match Filename.basename s with - | "packup" -> - [s; - OpamFilename.to_string input; - OpamFilename.to_string output; - "-u"; criteria] - | "aspcud" | _ -> - [s; - OpamFilename.to_string input; - OpamFilename.to_string output; - criteria] - let solver_calls = ref 0 let dump_universe oc univ = @@ -500,10 +495,8 @@ let dump_cudf_request ~extern ~version_map (_, univ,_ as cudf) criteria = let oc = open_out filename in if extern then Printf.fprintf oc "# %s\n" - (String.concat " " ( - external_solver_command - ~input:(OpamFilename.of_string "$in") - ~output:(OpamFilename.of_string "$out") ~criteria)) + (String.concat " " + (OpamGlobals.external_solver ~input:"$in" ~output:"$out" ~criteria)) else Printf.fprintf oc "#internal OPAM solver\n"; Cudf_printer.pp_cudf oc cudf; @@ -544,7 +537,10 @@ let dose_solver_callback ~criteria (_,universe,_ as cudf) = in OpamSystem.command ~verbose:(!OpamGlobals.debug_level >= 2) - (external_solver_command ~input:solver_in ~output:solver_out ~criteria); + (OpamGlobals.external_solver + ~input:(OpamFilename.to_string solver_in) + ~output:(OpamFilename.to_string solver_out) + ~criteria); OpamFilename.remove solver_in; if not (OpamFilename.exists solver_out) then raise (Common.CudfSolver.Error "no output") @@ -580,7 +576,7 @@ let check_cudf_version = (* Run with closed stdin to workaround bug in some solver scripts *) match OpamSystem.read_command_output ~verbose:false ~allow_stdin:false - [OpamGlobals.get_external_solver(); "-v"] + [external_solver_name (); "-v"] with | [] -> log "No response from 'solver -v', using compat criteria"; From ed0c39bece3cde44806a76511820fa73f48575cd Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Sat, 28 Feb 2015 16:46:54 +0900 Subject: [PATCH 3/4] Add filters too ('cause why not) --- src/client/opamState.ml | 40 ++++++++++++++++++++++++-------------- src/core/opamFile.ml | 12 ++++++------ src/core/opamFile.mli | 10 +++++----- src/core/opamFilter.ml | 6 +----- src/core/opamFilter.mli | 2 +- src/core/opamFormat.ml | 8 ++++---- src/core/opamFormat.mli | 4 ++-- src/core/opamTypesBase.ml | 7 ------- src/core/opamTypesBase.mli | 4 ---- 9 files changed, 44 insertions(+), 49 deletions(-) diff --git a/src/client/opamState.ml b/src/client/opamState.ml index bca4ab7e696..37af03c3934 100644 --- a/src/client/opamState.ml +++ b/src/client/opamState.ml @@ -1407,25 +1407,35 @@ let load_config root = ) else config in + let command_of_string s = + List.map (fun s -> CString s, None) (OpamMisc.split s ' ') + in (* Set some globals *) let external_solver_command = let cmd = match !OpamGlobals.env_external_solver with - | Some ("apsucd" | "packup" as s) -> [CIdent s] - | Some s -> simple_command_of_string s + | Some ("aspcud" | "packup" as s) -> [CIdent s, None] + | Some s -> command_of_string s | None -> match OpamFile.Config.solver config with - | Some f -> f - | None -> simple_command_of_string OpamGlobals.default_external_solver + | Some f -> + OpamGlobals.env_external_solver := + Some (OpamMisc.sconcat_map " " + (function (CIdent i,_) -> "%{"^i^"}%" | (CString s,_) -> s) + f); + f + | None -> [CIdent OpamGlobals.default_external_solver, None] in let cmd = match cmd with - | [CIdent "aspcud"] -> - [CString "aspcud"; CIdent "input"; CIdent "output"; CIdent "criteria"] - | [CIdent "packup"] -> - [CString "packup"; CIdent "input"; CIdent "output"; - CString "-u"; CIdent "criteria"] + | [CIdent "aspcud", None] -> + List.map (fun s -> s, None) + [CString "aspcud"; CIdent "input"; CIdent "output"; CIdent "criteria"] + | [CIdent "packup", None] -> + List.map (fun s -> s, None) + [CString "packup"; CIdent "input"; CIdent "output"; + CString "-u"; CIdent "criteria"] | cmd -> cmd in fun ~input ~output ~criteria -> - OpamFilter.simple_command (fun v -> + OpamFilter.single_command (fun v -> if not (is_global_conf v) then None else match OpamVariable.to_string (OpamVariable.Full.variable v) with | "input" -> Some (S input) @@ -1453,13 +1463,13 @@ let load_config root = let dl_tool = match !OpamGlobals.download_tool_env with - | Some ("curl" | "wget" as s) -> Some [CIdent s] - | Some s -> Some (simple_command_of_string s) + | Some ("curl" | "wget" as s) -> Some [CIdent s, None] + | Some s -> Some (command_of_string s) | None -> OpamFile.Config.dl_tool config in let dl_command cmd = fun ~url ~out ~retry ~compress -> - OpamFilter.simple_command (fun v -> + OpamFilter.single_command (fun v -> if not (is_global_conf v) then None else match OpamVariable.to_string (OpamVariable.Full.variable v) with | "url" -> Some (S url) @@ -1470,8 +1480,8 @@ let load_config root = cmd in let download_tool = match dl_tool with - | Some [CIdent "curl"] -> Some `Curl - | Some [CIdent "wget"] -> Some `Wget + | Some [CIdent "curl", None] -> Some `Curl + | Some [CIdent "wget", None] -> Some `Wget | Some cmd -> Some (`Custom (dl_command cmd)) | None -> None in diff --git a/src/core/opamFile.ml b/src/core/opamFile.ml index 3a8e2954dd0..68df90ddb28 100644 --- a/src/core/opamFile.ml +++ b/src/core/opamFile.ml @@ -730,10 +730,10 @@ module X = struct repositories : repository_name list ; switch : switch; jobs : int; - dl_tool : simple_arg list option; + dl_tool : arg list option; dl_jobs : int; criteria : (solver_criteria * string) list; - solver : simple_arg list option; + solver : arg list option; } let with_repositories t repositories = { t with repositories } @@ -845,7 +845,7 @@ module X = struct let dl_tool = try OpamFormat.assoc_option s.file_contents s_dl_tool - OpamFormat.parse_simple_command + OpamFormat.parse_single_command with OpamFormat.Bad_format _ when permissive -> None in @@ -875,7 +875,7 @@ module X = struct let solver = try OpamFormat.assoc_option s.file_contents s_solver - OpamFormat.parse_simple_command + OpamFormat.parse_single_command with OpamFormat.Bad_format _ when permissive -> None in { opam_version; repositories; switch; jobs; dl_tool; dl_jobs; @@ -897,13 +897,13 @@ module X = struct | None -> [] | Some s -> [OpamFormat.make_variable - (s_solver, OpamFormat.make_simple_command s)] + (s_solver, OpamFormat.make_single_command s)] in let download_tool = match t.dl_tool with | None -> [] | Some dlt -> [OpamFormat.make_variable - (s_dl_tool, OpamFormat.make_simple_command dlt)] + (s_dl_tool, OpamFormat.make_single_command dlt)] in let s = { file_format = OpamVersion.current; diff --git a/src/core/opamFile.mli b/src/core/opamFile.mli index 646698d1986..2a82f40767c 100644 --- a/src/core/opamFile.mli +++ b/src/core/opamFile.mli @@ -57,9 +57,9 @@ module Config: sig switch -> repository_name list -> ?criteria:(OpamTypes.solver_criteria * string) list -> - ?solver:(simple_arg list) -> + ?solver:(arg list) -> int -> - ?download_tool:(simple_arg list) -> + ?download_tool:(arg list) -> int -> t @@ -74,7 +74,7 @@ module Config: sig val with_criteria: t -> (solver_criteria * string) list -> t - val with_solver: t -> simple_arg list option -> t + val with_solver: t -> arg list option -> t (** Return the OPAM version *) val opam_version: t -> opam_version @@ -88,14 +88,14 @@ module Config: sig (** Return the number of jobs *) val jobs: t -> int - val dl_tool: t -> simple_arg list option + val dl_tool: t -> arg list option (** Return the number of download jobs *) val dl_jobs: t -> int val criteria: t -> (solver_criteria * string) list - val solver: t -> simple_arg list option + val solver: t -> arg list option end diff --git a/src/core/opamFilter.ml b/src/core/opamFilter.ml index a6675a500fb..5b07ba23987 100644 --- a/src/core/opamFilter.ml +++ b/src/core/opamFilter.ml @@ -254,8 +254,4 @@ let command env (l, f) = let commands env l = OpamMisc.filter_map (command env) l -let simple_command env l = - List.map (function - | CString s -> expand_string env s - | CIdent i -> value_string (resolve_ident env (filter_ident_of_string i))) - l +let single_command env l = OpamMisc.filter_map (arguments env) l diff --git a/src/core/opamFilter.mli b/src/core/opamFilter.mli index f2eb587a542..b88cc01e73c 100644 --- a/src/core/opamFilter.mli +++ b/src/core/opamFilter.mli @@ -95,4 +95,4 @@ val expand_interpolations_in_file: env -> basename -> unit val commands: env -> command list -> string list list (** Process a simpler command, without filters *) -val simple_command: env -> simple_arg list -> string list +val single_command: env -> arg list -> string list diff --git a/src/core/opamFormat.ml b/src/core/opamFormat.ml index 361a2c5ec76..f4766638daf 100644 --- a/src/core/opamFormat.ml +++ b/src/core/opamFormat.ml @@ -665,11 +665,11 @@ let make_simple_arg = function | CString s -> make_string s | CIdent s -> make_ident s -let make_simple_command = make_list make_simple_arg - let make_arg = make_option make_simple_arg make_filter +let make_single_command = make_list make_arg + let make_command = make_option (make_list make_arg) make_filter @@ -688,11 +688,11 @@ let parse_simple_arg = "string", (parse_string @> fun x -> CString x); ] -let parse_simple_command = parse_list parse_simple_arg - let parse_arg = parse_option parse_simple_arg parse_filter +let parse_single_command = parse_list parse_arg + let parse_command = parse_option (parse_list parse_arg) parse_filter diff --git a/src/core/opamFormat.mli b/src/core/opamFormat.mli index a81e68738a0..5a4370c01a2 100644 --- a/src/core/opamFormat.mli +++ b/src/core/opamFormat.mli @@ -239,8 +239,8 @@ val parse_filter: value list -> filter val make_filter: filter -> value list (** Unfiltered argument list *) -val parse_simple_command: value -> simple_arg list -val make_simple_command: simple_arg list -> value +val parse_single_command: value -> arg list +val make_single_command: arg list -> value (** Parse a command *) val parse_command: value -> command diff --git a/src/core/opamTypesBase.ml b/src/core/opamTypesBase.ml index 221a6cc75cc..ae379b2f7ab 100644 --- a/src/core/opamTypesBase.ml +++ b/src/core/opamTypesBase.ml @@ -283,10 +283,3 @@ let string_of_cause to_string = let map_success f = function | Success x -> Success (f x) | Conflicts c -> Conflicts c - -let simple_command_of_string s = - List.map (fun arg -> - let len = String.length arg in - if len > 0 && arg.[0] = '$' then CIdent (String.sub arg 1 (len-1)) - else CString arg) - (OpamMisc.split s ' ') diff --git a/src/core/opamTypesBase.mli b/src/core/opamTypesBase.mli index ffd0d91e9af..1dfc8ba7e6d 100644 --- a/src/core/opamTypesBase.mli +++ b/src/core/opamTypesBase.mli @@ -115,7 +115,3 @@ val filter_deps: ?build:bool -> ?test:bool -> ?doc:bool -> ext_formula -> formul (** Map on a solver result *) val map_success: ('a -> 'b) -> ('a,'fail) result -> ('b,'fail) result - -(** Splits string and expands parameters written '$arg' to idents to build a - simple command *) -val simple_command_of_string: string -> simple_arg list From 7af171862e561cf2ea34657249c7856f9e3df192 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Sat, 28 Feb 2015 17:13:45 +0900 Subject: [PATCH 4/4] Document new OPAMFETCH and download-command, solver --- doc/dev-manual/dev-manual.pdf | Bin 227027 -> 228839 bytes doc/dev-manual/dev-manual.tex | 17 ++++++++++++----- src/client/opamArg.ml | 10 ++++++---- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/doc/dev-manual/dev-manual.pdf b/doc/dev-manual/dev-manual.pdf index 12fc7e2e638649198b8a90b1724a3c194b6b6fe5..c0cd45b3f6fa689fcd0ce674e4ad814606958ce0 100644 GIT binary patch delta 110988 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Ŝ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 delta 109187 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 A`v3p{ diff --git a/doc/dev-manual/dev-manual.tex b/doc/dev-manual/dev-manual.tex index 554a92145ec..e626e207e00 100644 --- a/doc/dev-manual/dev-manual.tex +++ b/doc/dev-manual/dev-manual.tex @@ -211,12 +211,14 @@ \subsubsection{Global Configuration File: {\tt config}} repositories: [ STRING+ ] switch: STRING ?jobs: INT - ?solver: STRING + ?solver: ?solver-criteria: STRING ?solver-upgrade-criteria: STRING ?solver-fixup-criteria: STRING - ?download-command: [ STRING+ ] + ?download-command: ?download-jobs: INT + + := [ ( ?{ })+ ] \end{Verbatim} \begin{itemize} @@ -227,8 +229,10 @@ \subsubsection{Global Configuration File: {\tt config}} \item {\tt switch} is the name of the currently active \OPAM\ switch. \item {\tt jobs} is the maximum number of build processes that can be run simultaneously. -\item {\tt solver} is the external solver to call. \verb+aspcud+ and - \verb+packup+ format arguments are currently supported. +\item {\tt solver} is the external solver to call. The value may be either the + single identifiers \verb+aspcud+ or \verb+packup+, which have built-in + support, or a command. The string variables \verb+input+, \verb+output+ and + \verb+criteria+ (only) are defined when evaluating this field. \item {\tt solver-criteria}, {\tt solver-upgrade-criteria} and {\tt solver-fixup-criteria} are the optimisation criteria provided to the solver resp. in the default case (install requested packages at their latest version, @@ -236,7 +240,10 @@ \subsubsection{Global Configuration File: {\tt config}} outdated packages) and for fixup (resolve dependencies while minimising changes). \item {\tt download-command} will be called to fetch remote files over http(s) - or ftp. + or ftp. The value may be either the single identifiers \verb+curl+ or + \verb+wget+, which have built-in support, or a custom command. Only the + special variables \verb+url+, \verb+out+, \verb+retries+ (strings) and + \verb+compress+ (bool) can be used in this field. \item {\tt download-jobs} is the maximum number of simultaneous downloads (all remote hosts included) \end{itemize} diff --git a/src/client/opamArg.ml b/src/client/opamArg.ml index a32bfad6cc8..8363ea999ab 100644 --- a/src/client/opamArg.ml +++ b/src/client/opamArg.ml @@ -221,9 +221,9 @@ let help_sections = [ `P "$(i,OPAMDOWNLOADJOBS) sets the maximum number of simultaneous downloads."; `P "$(i,OPAMEXTERNALSOLVER) see option `--solver'."; `P "$(i,OPAMFETCH) specifies how to download files: either `wget', `curl' or \ - a custom command where arguments $(b,$url) and $(b,$out) will be \ - replaced. Overrides the 'download-command' value from the main config \ - file."; + a custom command where variables $(b,%{url}%), $(b,%{out}%), \ + $(b,%{retries}%) and $(b,%{compress}%) will be replaced. Overrides the \ + 'download-command' value from the main config file."; `P "$(i,OPAMJOBS) sets the maximum number of parallel workers to run."; `P "$(i,OPAMLOCKRETRIES) sets the number of tries after which OPAM gives up \ acquiring its lock and fails. <= 0 means infinite wait."; @@ -601,7 +601,9 @@ let global_options = let external_solver = mk_opt ~section ["solver"] "CMD" ("Specify the name of the external dependency $(i,solver). \ - The default value is "^OpamGlobals.default_external_solver) + The default value is "^OpamGlobals.default_external_solver^ + ". Either 'aspcud', 'packup' or a custom command that may contain \ + the variables %{input}%, %{output}% and %{criteria}%") Arg.(some string) None in let solver_preferences = mk_opt ~section ["criteria"] "CRITERIA"