From 92c92eb2ca7cd8ea0e50bafaea197871250004bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= Date: Tue, 16 Jan 2024 17:58:37 +0000 Subject: [PATCH 01/12] CA-387588: test(forkexecd): fix off by one in test resulting in MSG_CTRUNC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The forkexecd test was always failing on test 63 when ulimit was 1024. This looked like this in strace: ``` 108089 recvmsg(7, {msg_name=0x7fff79ff6910, msg_namelen=110 => 0, msg_iov=[{iov_base="ae797bac-82a0-4482-8f5e-23a1cab08a40", iov_len=36}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[1023]}], msg_controllen=24, msg_flags=0}, 0) = 36 108089 recvmsg(7, {msg_name=0x7fff79ff6910, msg_namelen=110 => 0, msg_iov=[{iov_base="59ab85ec-f59c-b069-3b91-15a4f4b31542", iov_len=36}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CTRUNC}, 0) = 36 ``` Once you notice the '1023' it all starts to make sense: it tried to receive one more file descriptor, but there was no more room for another one (due to 'ulimit -n 1024'), and it thus dropped the ancillary data with MSG_CTRUNC. It also logged this to syslog: ``` fe_main.exe[104568]: [ warn||0 ||forkexecd] 20240116T17:26:08.056Z||104568|Failed to receive an fd associated with the message '61ba0b55-bbee-49b9-4413-d6f3615e5a02'\x0A fe_main.exe[104568]: [ warn||0 ||forkexecd] 20240116T17:26:08.056Z||104568|Caught unexpected exception: Failure("Didn't get an fd")\x0A ``` This is a problem only with the unit tests, which don't estimate the number of available file descriptors correctly. It reserves 11 for the process's own use, but it looks like there is now 1 more file descriptor used up by something. Signed-off-by: Edwin Török --- ocaml/forkexecd/test/fe_test.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocaml/forkexecd/test/fe_test.ml b/ocaml/forkexecd/test/fe_test.ml index a5c21743bd..bb740d94df 100644 --- a/ocaml/forkexecd/test/fe_test.ml +++ b/ocaml/forkexecd/test/fe_test.ml @@ -18,7 +18,7 @@ type config = { let min_fds = 7 -let max_fds = 1024 - 11 (* fe daemon has a bunch for its own use *) +let max_fds = 1024 - 13 (* fe daemon has a bunch for its own use *) let all_combinations fds = let y = From 954f3d33733b65ff0c5716fbb1cb8224bd83a5d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= Date: Fri, 12 Jan 2024 14:47:00 +0000 Subject: [PATCH 02/12] build: set a timeout for the tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We have some non-deterministic timeouts on github actions. Introduce some shorter timeouts that is under our control, and print more information about what is stuck. GH actions take <2m to run the tests, so add 5m as a timeout for the children, and twice that for the parent. Signed-off-by: Edwin Török --- Makefile | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4d155619a5..8f2a2f7228 100644 --- a/Makefile +++ b/Makefile @@ -28,8 +28,41 @@ lint: pylint --disable=line-too-long,too-few-public-methods,unused-argument,no-self-use,invalid-name,broad-except,protected-access,redefined-builtin,too-many-lines,wildcard-import,too-many-branches,too-many-arguments,unused-wildcard-import,raising-format-tuple,too-many-statements,duplicate-code _build/default/xapi-storage/python/xapi/storage/api/v5/*.py pycodestyle --ignore=E501 _build/default/xapi-storage/python/xapi/storage/api/v5/*.py + +# ulimit -S -t +# Set a soft CPU time quota which will kill processes with SIGXCPU +# This will in preference kill children of dune that consume CPU time (e.g. a stuck test), +# and not dune itself (which should consume little CPU time when it just waits for subprocesses) +# However it won't kill idle processes (e.g. a test sleeping and waiting for an event that never arrives) + +# sleep && ps +# Prints a process tree once the timeout is reached to identify any sleeping processes that are stuck +# (if we send 'dune' a SIGINT or SIGTERM it'd kill all subprocesses but won't say which ones were running and since when!) +# -e: prints all processes +# -ww: disables line length restrictions +# -ly: prints additional columns, e.g. WCHAN which shows currently active syscall +# -F: prints process start time and CPU time, useful in identifying which test got started recently, +# and which one was running for a while +# --forest prints a process tree + +# timeout --foreground dune +# Sends a SIGTERM to dune after N seconds. This should print any pending buffered output, but won't tell us which processes were still running +# The timeout used here should be > timeout in ulimit && ps to allow time for subprocesses to terminate first + +# ulimit -n +# By default the ulimit on some systems is very large (e.g. Fedora39 distrobox 1048576) +# which causes some tests to take very long to run (e.g. forkexec tests which loop through and close all fds up to limit) + +TEST_TIMEOUT=600 +TEST_TIMEOUT2=1200 test: - dune runtest --profile=$(PROFILE) --error-reporting=twice -j $(JOBS) + ulimit -S -t $(TEST_TIMEOUT); \ + ulimit -n 1024; \ + (sleep $(TEST_TIMEOUT) && ps -ewwlyF --forest)& \ + PSTREE_SLEEP_PID=$$!; \ + trap "kill $${PSTREE_SLEEP_PID}" SIGINT SIGTERM EXIT; \ + timeout --foreground $(TEST_TIMEOUT2) \ + dune runtest --profile=$(PROFILE) --error-reporting=twice -j $(JOBS) ifneq ($(PY_TEST), NO) dune build @runtest-python --profile=$(PROFILE) endif From d3f5af18152ab88c13462d9cb17af8de90ba55c1 Mon Sep 17 00:00:00 2001 From: Christian Lindig Date: Mon, 13 Nov 2023 13:46:46 +0000 Subject: [PATCH 03/12] CP-46264 deprecate host.bios_strings[hp-rombios] entry The host object maintains a map bios_strings that has an entry for the "hp-rombios key. The value is based on a value read from dom0 memory using /dev/mem. This is incompatible with secure boot and this patch makes the value returned the empty string. The value is patched into a guest's memory so we can't return anything else. We might want to remove the key `hp-rembios` in the future. Signed-off-by: Christian Lindig --- ocaml/xapi/bios_strings.ml | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/ocaml/xapi/bios_strings.ml b/ocaml/xapi/bios_strings.ml index 021bb90688..d0a666e67c 100644 --- a/ocaml/xapi/bios_strings.ml +++ b/ocaml/xapi/bios_strings.ml @@ -186,21 +186,13 @@ let get_oem_strings decode = in standard @ List.mapi convert values -(* Get the HP-specific ROMBIOS OEM string: - * 6 bytes from the memory starting at 0xfffea *) -let get_hp_rombios () = - let hp_rombios = Bytes.make 6 ' ' in - ( try - let mem = Unix.openfile "/dev/mem" [Unix.O_RDONLY] 0 in - Xapi_stdext_pervasives.Pervasiveext.finally - (fun () -> - ignore (Unix.lseek mem 0xfffea Unix.SEEK_SET) ; - ignore (Unix.read mem hp_rombios 0 6) - ) - (fun () -> Unix.close mem) - with _ -> () - ) ; - match Bytes.unsafe_to_string hp_rombios with "COMPAQ" -> "COMPAQ" | _ -> "" +(* CP-46264 - this used to read a string from /dev/mem but we can no + longer support this. It would either find "COMPAQ" and return it, or + return the empty string. We are now always returning the + "". The string is patched into a guest's memory - so it would not be + safe to return an arbitrary string. *) + +let hp_rombios = [("hp-rombios", "")] (* Get host bios strings *) let get_host_bios_strings ~__context = @@ -209,6 +201,4 @@ let get_host_bios_strings ~__context = let system_strings = get_system_strings get_dmidecode_strings in let baseboard_strings = get_baseboard_strings get_dmidecode_strings in let oem_strings = get_oem_strings get_dmidecode_strings in - (* HP-specific ROMBIOS OEM string *) - let hp_rombios = [("hp-rombios", get_hp_rombios ())] in bios_strings @ system_strings @ baseboard_strings @ oem_strings @ hp_rombios From 583994b5ee8e26400d30872e1f2a3b1386f1c775 Mon Sep 17 00:00:00 2001 From: Lunfan Zhang Date: Thu, 18 Jan 2024 06:12:15 +0000 Subject: [PATCH 04/12] Refine the description and units of 'running_vcpus' and 'running_domains' Signed-off-by: Lunfan Zhang --- ocaml/xcp-rrdd/bin/rrdd/xcp_rrdd.ml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ocaml/xcp-rrdd/bin/rrdd/xcp_rrdd.ml b/ocaml/xcp-rrdd/bin/rrdd/xcp_rrdd.ml index 97d8071e61..1979f4ab16 100644 --- a/ocaml/xcp-rrdd/bin/rrdd/xcp_rrdd.ml +++ b/ocaml/xcp-rrdd/bin/rrdd/xcp_rrdd.ml @@ -398,14 +398,14 @@ let dss_hostload xc domains = () ) ; ( Rrd.Host - , Ds.ds_make ~name:"running_vcpus" ~units:"(vcpus)" - ~description:"The total number of running vCPU per host" + , Ds.ds_make ~name:"running_vcpus" ~units:"count" + ~description:"The total number of running vCPUs per host" ~value:(Rrd.VT_Int64 (Int64.of_int load)) ~min:0.0 ~ty:Rrd.Gauge ~default:true () ) ; ( Rrd.Host - , Ds.ds_make ~name:"running_domains" ~units:"(domains)" - ~description:"The total number of running domain per host" + , Ds.ds_make ~name:"running_domains" ~units:"count" + ~description:"The total number of running domains per host" ~value:(Rrd.VT_Int64 (Int64.of_int running_domains)) ~min:0.0 ~ty:Rrd.Gauge ~default:true () ) From 8320d781948c8e251f04e0cb2a67db3bf7615c37 Mon Sep 17 00:00:00 2001 From: Christian Lindig Date: Thu, 18 Jan 2024 15:04:17 +0000 Subject: [PATCH 05/12] CA-387560 add support for more systemd execution types We use systemd to start transient services. So far, we use the Simple type but would like to add oneshot and potentially more. Signed-off-by: Christian Lindig --- ocaml/forkexecd/lib/fe_systemctl.ml | 22 ++++++++++++++++++---- ocaml/forkexecd/lib/fe_systemctl.mli | 24 ++++++++++++++++-------- 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/ocaml/forkexecd/lib/fe_systemctl.ml b/ocaml/forkexecd/lib/fe_systemctl.ml index bd0a5e675d..4dea6378ea 100644 --- a/ocaml/forkexecd/lib/fe_systemctl.ml +++ b/ocaml/forkexecd/lib/fe_systemctl.ml @@ -26,12 +26,25 @@ let action ~service action = in () +(** Systemd execution type *) +module Type = struct + type t = Simple | OneShot | Forking + + let to_string = function + | Simple -> + "simple" + | OneShot -> + "oneshot" + | Forking -> + "forking" +end + let default_env = ["PATH=" ^ String.concat ":" Forkhelpers.default_path] let run_path = "/run/systemd/system/" let start_transient ?(env = Array.of_list default_env) ?(properties = []) - ~service cmd args = + ~exec_ty ~service cmd args = let syslog_key = service in let service = syslog_key ^ ".service" in let destination = Filename.concat run_path service in @@ -47,7 +60,7 @@ let start_transient ?(env = Array.of_list default_env) ?(properties = []) ; ("StandardError", "inherit") ; ("StartLimitInterval", "0") (* no rate-limit, for bootstorms *) ; ("ExecStart", String.concat " " (cmd :: List.map Filename.quote args)) - ; ("Type", "simple") + ; ("Type", Type.to_string exec_ty) (* our systemd is too old, and doesn't support 'exec' *) ; ("Restart", "no") (* can't restart the device-model, it would've lost all state already *) @@ -118,11 +131,12 @@ let is_active ~service = let exists ~service = Sys.file_exists (Filename.concat run_path (service ^ ".service")) -let start_transient ?env ?properties ~service cmd args = +let start_transient ?env ?properties ?(exec_ty = Type.Simple) ~service cmd args + = if exists ~service then (* this can only happen if there is a bug in the caller *) invalid_arg (Printf.sprintf "Tried to start %s twice" service) ; - try start_transient ?env ?properties ~service cmd args + try start_transient ?env ?properties ~exec_ty ~service cmd args with e -> Backtrace.is_important e ; (* If start failed we do not know what state the service is in: diff --git a/ocaml/forkexecd/lib/fe_systemctl.mli b/ocaml/forkexecd/lib/fe_systemctl.mli index 7133d9f4d1..e31665443e 100644 --- a/ocaml/forkexecd/lib/fe_systemctl.mli +++ b/ocaml/forkexecd/lib/fe_systemctl.mli @@ -18,21 +18,29 @@ type status = { ; active_state: string } +module Type : sig + type t = Simple | OneShot | Forking + + val to_string : t -> string +end + val start_transient : ?env:string array -> ?properties:(string * string) list + -> ?exec_ty:Type.t -> service:string -> string -> string list -> unit -(** [start_transient ?env ?properties ~service cmd args] generates and starts a transient systemd - * [service] that will execute [cmd args]. - * stdout/stderr from the service is redirected to syslog with [service] as syslog key. - * Additional [properties] can be specified that are written into the systemd unit file's [Service] - * section. - * By default the service is not auto-restarted when it fails, and there is a 10s timeout between - * SIGTERM and SIGKILL on stop. - * On failure it raises [Spawn_internal_error(stderr, stdout, Unix.process_status)] *) +(** [start_transient ?env ?properties ~service cmd args] generates and + starts a transient systemd [service] that will execute [cmd args]. + stdout/stderr from the service is redirected to syslog with + [service] as syslog key. Additional [properties] can be specified + that are written into the systemd unit file's [Service] section. By + default the service is not auto-restarted when it fails, and there + is a 10s timeout between SIGTERM and SIGKILL on stop. On failure it + raises [Spawn_internal_error(stderr, stdout, Unix.process_status)] + *) val is_active : service:string -> bool (** [is_active ~service] checks whether the [service] is still running *) From d0578783f1fe4dcab458d2d6c69ba301fed91ccf Mon Sep 17 00:00:00 2001 From: Christian Lindig Date: Thu, 18 Jan 2024 15:51:15 +0000 Subject: [PATCH 06/12] fixup! CA-387560 add support for more systemd execution types Signed-off-by: Christian Lindig --- ocaml/forkexecd/lib/fe_systemctl.ml | 6 +++++- ocaml/forkexecd/lib/fe_systemctl.mli | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ocaml/forkexecd/lib/fe_systemctl.ml b/ocaml/forkexecd/lib/fe_systemctl.ml index 4dea6378ea..cd76bede41 100644 --- a/ocaml/forkexecd/lib/fe_systemctl.ml +++ b/ocaml/forkexecd/lib/fe_systemctl.ml @@ -28,7 +28,7 @@ let action ~service action = (** Systemd execution type *) module Type = struct - type t = Simple | OneShot | Forking + type t = Simple | OneShot | Forking | Notify | Idle let to_string = function | Simple -> @@ -37,6 +37,10 @@ module Type = struct "oneshot" | Forking -> "forking" + | Notify -> + "notify" + | Idle -> + "idle" end let default_env = ["PATH=" ^ String.concat ":" Forkhelpers.default_path] diff --git a/ocaml/forkexecd/lib/fe_systemctl.mli b/ocaml/forkexecd/lib/fe_systemctl.mli index e31665443e..5ba44c4e29 100644 --- a/ocaml/forkexecd/lib/fe_systemctl.mli +++ b/ocaml/forkexecd/lib/fe_systemctl.mli @@ -19,7 +19,7 @@ type status = { } module Type : sig - type t = Simple | OneShot | Forking + type t = Simple | OneShot | Forking | Notify | Idle val to_string : t -> string end From da5059dc7c1344c7e629571a9df6fccde219a3ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= Date: Mon, 22 Jan 2024 10:45:52 +0000 Subject: [PATCH 07/12] fix(ci): remove 1024 fd limit for now MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Setting this is useful for speeding up tests (by default my container has 1048576 as ulimit which makes the tests very slow), but there is something non-deterministic in the environment GitHub Actions run in: * the tests pass on a PR, but fail when run as a scheduled CI job on master We probably don't estimate correctly how many file descriptors the parent process uses in the test (GH actions seem to use more than locally). Until we fully understand this revert the 'ulimit -n' part of this change. Fixes: 954f3d337 ("build: set a timeout for the tests") Signed-off-by: Edwin Török --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 8f2a2f7228..913ca93cdf 100644 --- a/Makefile +++ b/Makefile @@ -57,7 +57,6 @@ TEST_TIMEOUT=600 TEST_TIMEOUT2=1200 test: ulimit -S -t $(TEST_TIMEOUT); \ - ulimit -n 1024; \ (sleep $(TEST_TIMEOUT) && ps -ewwlyF --forest)& \ PSTREE_SLEEP_PID=$$!; \ trap "kill $${PSTREE_SLEEP_PID}" SIGINT SIGTERM EXIT; \ From 86fe3d16a245af5359a87767661d3b77e99fa255 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= Date: Mon, 22 Jan 2024 14:54:29 +0000 Subject: [PATCH 08/12] [maintenance]: enable generate_opam_files in dune-project MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use the simplest solution: copy *.opam to *.opam.template so that we get exactly the same opam files as before, and only declare the names in dune-project. This will allow us to merge subprojects that already use dune-project to generate opam files (such as xapi-stdext), and we can gradually move opam files to be generated by dune. However first we should drop the opam files that we do not need, which will be partially done in https://github.com/xapi-project/xen-api/pull/4939 Signed-off-by: Edwin Török --- cohttp-posix.opam | 2 + cohttp-posix.opam.template | 22 +++ dune-project | 254 ++++++++++++++++++++++++- ezxenstore.opam | 2 + ezxenstore.opam.template | 27 +++ forkexec.opam | 2 + forkexec.opam.template | 28 +++ gzip.opam | 2 + gzip.opam.template | 22 +++ http-lib.opam | 2 + http-lib.opam.template | 40 ++++ message-switch-async.opam | 2 + message-switch-async.opam.template | 27 +++ message-switch-cli.opam | 2 + message-switch-cli.opam.template | 27 +++ message-switch-core.opam | 2 + message-switch-core.opam.template | 30 +++ message-switch-lwt.opam | 2 + message-switch-lwt.opam.template | 27 +++ message-switch-unix.opam | 2 + message-switch-unix.opam.template | 27 +++ message-switch.opam | 2 + message-switch.opam.template | 39 ++++ pciutil.opam | 2 + pciutil.opam.template | 22 +++ rrd-transport.opam | 2 + rrd-transport.opam.template | 28 +++ rrd2csv.opam | 2 + rrd2csv.opam.template | 26 +++ rrdd-plugin.opam | 2 + rrdd-plugin.opam.template | 32 ++++ rrdd-plugins.opam | 2 + rrdd-plugins.opam.template | 29 +++ rrddump.opam | 2 + rrddump.opam.template | 14 ++ safe-resources.opam | 2 + safe-resources.opam.template | 29 +++ sexpr.opam | 2 + sexpr.opam.template | 23 +++ stunnel.opam | 2 + stunnel.opam.template | 31 +++ uuid.opam | 2 + uuid.opam.template | 26 +++ varstored-guard.opam | 2 + varstored-guard.opam.template | 22 +++ vhd-format-lwt.opam | 2 + vhd-format-lwt.opam.template | 39 ++++ vhd-format.opam | 2 + vhd-format.opam.template | 34 ++++ vhd-tool.opam | 2 + vhd-tool.opam.template | 40 ++++ wsproxy.opam | 2 + wsproxy.opam.template | 29 +++ xapi-cli-protocol.opam | 2 + xapi-cli-protocol.opam.template | 26 +++ xapi-client.opam | 2 + xapi-client.opam.template | 32 ++++ xapi-compression.opam | 2 + xapi-compression.opam.template | 26 +++ xapi-consts.opam | 2 + xapi-consts.opam.template | 23 +++ xapi-datamodel.opam | 2 + xapi-datamodel.opam.template | 30 +++ xapi-expiry-alerts.opam | 2 + xapi-expiry-alerts.opam.template | 31 +++ xapi-forkexecd.opam | 2 + xapi-forkexecd.opam.template | 30 +++ xapi-idl.opam | 2 + xapi-idl.opam.template | 50 +++++ xapi-log.opam | 2 + xapi-log.opam.template | 24 +++ xapi-nbd.opam | 2 + xapi-nbd.opam.template | 32 ++++ xapi-networkd.opam | 2 + xapi-networkd.opam.template | 35 ++++ xapi-open-uri.opam | 2 + xapi-open-uri.opam.template | 27 +++ xapi-rrd-transport-utils.opam | 2 + xapi-rrd-transport-utils.opam.template | 20 ++ xapi-rrd-transport.opam | 16 ++ xapi-rrd-transport.opam.template | 17 ++ xapi-rrdd-plugin.opam | 16 ++ xapi-rrdd-plugin.opam.template | 15 ++ xapi-rrdd.opam | 2 + xapi-rrdd.opam.template | 40 ++++ xapi-schema.opam | 2 + xapi-schema.opam.template | 25 +++ xapi-squeezed.opam | 3 + xapi-squeezed.opam.template | 37 ++++ xapi-storage-cli.opam | 2 + xapi-storage-cli.opam.template | 26 +++ xapi-storage-script.opam | 2 + xapi-storage-script.opam.template | 40 ++++ xapi-storage.opam | 2 + xapi-storage.opam.template | 26 +++ xapi-tracing.opam | 2 + xapi-tracing.opam.template | 29 +++ xapi-types.opam | 2 + xapi-types.opam.template | 35 ++++ xapi-xenopsd-cli.opam | 2 + xapi-xenopsd-cli.opam.template | 29 +++ xapi-xenopsd-simulator.opam | 2 + xapi-xenopsd-simulator.opam.template | 22 +++ xapi-xenopsd-xc.opam | 2 + xapi-xenopsd-xc.opam.template | 53 ++++++ xapi-xenopsd.opam | 2 + xapi-xenopsd.opam.template | 53 ++++++ xapi.opam | 2 + xapi.opam.template | 84 ++++++++ xe.opam | 2 + xe.opam.template | 30 +++ xen-api-client-async.opam | 2 + xen-api-client-async.opam.template | 32 ++++ xen-api-client-lwt.opam | 2 + xen-api-client-lwt.opam.template | 33 ++++ xen-api-client.opam | 2 + xen-api-client.opam.template | 34 ++++ xen-api-sdk.opam | 2 + xen-api-sdk.opam.template | 20 ++ xml-light2.opam | 2 + xml-light2.opam.template | 22 +++ zstd.opam | 2 + zstd.opam.template | 22 +++ 123 files changed, 2254 insertions(+), 1 deletion(-) create mode 100644 cohttp-posix.opam.template create mode 100644 ezxenstore.opam.template create mode 100644 forkexec.opam.template create mode 100644 gzip.opam.template create mode 100644 http-lib.opam.template create mode 100644 message-switch-async.opam.template create mode 100644 message-switch-cli.opam.template create mode 100644 message-switch-core.opam.template create mode 100644 message-switch-lwt.opam.template create mode 100644 message-switch-unix.opam.template create mode 100644 message-switch.opam.template create mode 100644 pciutil.opam.template create mode 100644 rrd-transport.opam.template create mode 100644 rrd2csv.opam.template create mode 100644 rrdd-plugin.opam.template create mode 100644 rrdd-plugins.opam.template create mode 100644 rrddump.opam.template create mode 100644 safe-resources.opam.template create mode 100644 sexpr.opam.template create mode 100644 stunnel.opam.template create mode 100644 uuid.opam.template create mode 100644 varstored-guard.opam.template create mode 100644 vhd-format-lwt.opam.template create mode 100644 vhd-format.opam.template create mode 100644 vhd-tool.opam.template create mode 100644 wsproxy.opam.template create mode 100644 xapi-cli-protocol.opam.template create mode 100644 xapi-client.opam.template create mode 100644 xapi-compression.opam.template create mode 100644 xapi-consts.opam.template create mode 100644 xapi-datamodel.opam.template create mode 100644 xapi-expiry-alerts.opam.template create mode 100644 xapi-forkexecd.opam.template create mode 100644 xapi-idl.opam.template create mode 100644 xapi-log.opam.template create mode 100644 xapi-nbd.opam.template create mode 100644 xapi-networkd.opam.template create mode 100644 xapi-open-uri.opam.template create mode 100644 xapi-rrd-transport-utils.opam.template create mode 100644 xapi-rrd-transport.opam.template create mode 100644 xapi-rrdd-plugin.opam.template create mode 100644 xapi-rrdd.opam.template create mode 100644 xapi-schema.opam.template create mode 100644 xapi-squeezed.opam.template create mode 100644 xapi-storage-cli.opam.template create mode 100644 xapi-storage-script.opam.template create mode 100644 xapi-storage.opam.template create mode 100644 xapi-tracing.opam.template create mode 100644 xapi-types.opam.template create mode 100644 xapi-xenopsd-cli.opam.template create mode 100644 xapi-xenopsd-simulator.opam.template create mode 100644 xapi-xenopsd-xc.opam.template create mode 100644 xapi-xenopsd.opam.template create mode 100644 xapi.opam.template create mode 100644 xe.opam.template create mode 100644 xen-api-client-async.opam.template create mode 100644 xen-api-client-lwt.opam.template create mode 100644 xen-api-client.opam.template create mode 100644 xen-api-sdk.opam.template create mode 100644 xml-light2.opam.template create mode 100644 zstd.opam.template diff --git a/cohttp-posix.opam b/cohttp-posix.opam index 62e5a3961d..82bd187a84 100644 --- a/cohttp-posix.opam +++ b/cohttp-posix.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/cohttp-posix.opam.template b/cohttp-posix.opam.template new file mode 100644 index 0000000000..62e5a3961d --- /dev/null +++ b/cohttp-posix.opam.template @@ -0,0 +1,22 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] + +available: [ os = "linux" ] +depends: [ + "ocaml" + "dune" + "cohttp" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/dune-project b/dune-project index 78daeb4506..1d7c53c048 100644 --- a/dune-project +++ b/dune-project @@ -1,3 +1,255 @@ (lang dune 2.0) - (formatting (enabled_for ocaml)) + +(generate_opam_files true) + +(source (github xapi-project/xen-api)) +(license "LGPL-2.1-only WITH OCaml-LGPL-linking-exception") +(authors "xen-api@lists.xen.org") +(maintainers "Xapi project maintainers") +(homepage "https://xapi-project.github.io/") + +(package + (name zstd) +) + +(package + (name xapi-rrdd-plugin) +) + +(package + (name xml-light2) +) + +(package + (name xen-api-sdk) +) + +(package + (name xen-api-client-lwt) +) + + +(package + (name xen-api-client-async) +) + +(package + (name xen-api-client) +) + +(package + (name xe) +) + +(package + (name xapi-xenopsd-xc) +) + +(package + (name xapi-xenopsd-simulator) +) + +(package + (name xapi-xenopsd-cli) +) + +(package + (name xapi-xenopsd) +) + +(package + (name xapi-types) +) + +(package + (name xapi-tracing) +) + +(package + (name xapi-storage-script) +) + +(package + (name xapi-storage-cli) +) + +(package + (name xapi-storage) +) + +(package + (name xapi-squeezed) +) + +(package + (name xapi-schema) +) + +(package + (name rrdd-plugin) +) + +(package + (name xapi-rrdd) +) + +(package + (name xapi-rrd-transport-utils) +) + +(package + (name xapi-rrd-transport) +) + +(package + (name xapi-open-uri) +) + +(package + (name xapi-networkd) +) + +(package + (name xapi-nbd) +) + +(package + (name xapi-log) +) + +(package + (name xapi-idl) +) + +(package + (name xapi-forkexecd) +) + +(package + (name xapi-expiry-alerts) +) + +(package + (name xapi-datamodel) +) + +(package + (name xapi-consts) +) + +(package + (name xapi-compression) +) + +(package + (name xapi-client) +) + +(package + (name xapi-cli-protocol) +) + +(package + (name xapi) +) + +(package + (name wsproxy) +) + +(package + (name vhd-tool) +) + +(package + (name vhd-format) +) + +(package + (name vhd-format-lwt) +) + +(package + (name varstored-guard) +) + +(package + (name uuid) +) + +(package + (name stunnel) +) + +(package + (name sexpr) +) + +(package + (name safe-resources) +) + +(package + (name rrddump) +) + +(package + (name rrdd-plugins) +) + +(package + (name rrd2csv) +) + +(package + (name rrd-transport) +) + +(package + (name pciutil) +) + +(package + (name message-switch-async) +) + +(package + (name message-switch-lwt) +) + +(package + (name message-switch-core) +) + +(package + (name message-switch-cli) +) + +(package + (name message-switch-unix) +) + +(package + (name message-switch) +) + +(package + (name http-lib) +) + +(package + (name gzip) +) + +(package + (name forkexec) +) + +(package + (name ezxenstore) +) + +(package + (name cohttp-posix) +) diff --git a/ezxenstore.opam b/ezxenstore.opam index a04230e6f3..8f35598640 100644 --- a/ezxenstore.opam +++ b/ezxenstore.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" maintainer: "xapi project maintainers" authors: ["Jonathan Ludlam"] diff --git a/ezxenstore.opam.template b/ezxenstore.opam.template new file mode 100644 index 0000000000..a04230e6f3 --- /dev/null +++ b/ezxenstore.opam.template @@ -0,0 +1,27 @@ +opam-version: "2.0" +maintainer: "xapi project maintainers" +authors: ["Jonathan Ludlam"] +license: "ISC" +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] +depends: [ + "ocaml" + "dune" {>= "1.4"} + "cmdliner" {with-test & >= "1.1.0"} + "logs" + "uuidm" + "xenctrl" + "xenstore" + "xenstore_transport" +] +synopsis: + "An easy-to-use interface to xenstore" +description: """ +An easy-to-use xenstore library with a simplified interface geared +towards use within a daemon that maintains a single connection to +xenstored.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/forkexec.opam b/forkexec.opam index 6e9cd4df45..c458ac9471 100644 --- a/forkexec.opam +++ b/forkexec.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/forkexec.opam.template b/forkexec.opam.template new file mode 100644 index 0000000000..6e9cd4df45 --- /dev/null +++ b/forkexec.opam.template @@ -0,0 +1,28 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://github.com/xapi-project/" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +tags: [ "org:xapi-project" ] + +build: [[ "dune" "build" "-p" name "-j" jobs ]] + +depends: [ + "ocaml" + "dune" + "base-threads" + "fd-send-recv" + "ppx_deriving_rpc" + "rpclib" + "uuid" + "xapi-log" + "xapi-stdext-pervasives" + "xapi-stdext-unix" +] +synopsis: "Sub-process control service for xapi" +description: + "This daemon creates and manages sub-processes on behalf of xapi." +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/gzip.opam b/gzip.opam index 8e7be0f378..59901c80ee 100644 --- a/gzip.opam +++ b/gzip.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/gzip.opam.template b/gzip.opam.template new file mode 100644 index 0000000000..8e7be0f378 --- /dev/null +++ b/gzip.opam.template @@ -0,0 +1,22 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] + +available: [ os = "linux" ] +depends: [ + "ocaml" + "dune" + "xapi-compression" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/http-lib.opam b/http-lib.opam index 7a09878b4a..cbea47b7d2 100644 --- a/http-lib.opam +++ b/http-lib.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/http-lib.opam.template b/http-lib.opam.template new file mode 100644 index 0000000000..7a09878b4a --- /dev/null +++ b/http-lib.opam.template @@ -0,0 +1,40 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +available: [ os = "linux" | os = "macos" ] +depends: [ + "ocaml" + "dune" + "astring" + "base64" {>= "3.1.0"} + "rpclib" + "safe-resources" + "sha" + "stunnel" + "uuid" + "xapi-backtrace" + "xapi-idl" + "xapi-log" + "xapi-stdext-date" + "xapi-stdext-pervasives" + "xapi-stdext-threads" + "xapi-stdext-unix" + "xapi-tracing" + "xml-light2" + "ounit2" {with-test & >= "2.0.0"} +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/message-switch-async.opam b/message-switch-async.opam index a682867303..1192cb6cb9 100644 --- a/message-switch-async.opam +++ b/message-switch-async.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" name: "message-switch-async" maintainer: "xen-api@lists.xen.org" diff --git a/message-switch-async.opam.template b/message-switch-async.opam.template new file mode 100644 index 0000000000..a682867303 --- /dev/null +++ b/message-switch-async.opam.template @@ -0,0 +1,27 @@ +opam-version: "2.0" +name: "message-switch-async" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +tags: [ "org:xapi-project" ] +build: [ + ["./configure" "--prefix" "%{prefix}%"] + [ "dune" "build" "-p" name "-j" jobs ] +] +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "odoc" {with-doc} + "async" {>= "v0.9.0"} + "cohttp-async" {>= "1.0.2"} + "message-switch-core" +] +synopsis: "A simple store-and-forward message switch" +description: """ +The switch stores messages in queues with well-known names. Clients use +a simple HTTP protocol to enqueue and dequeue messages.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/message-switch-cli.opam b/message-switch-cli.opam index dbf5de7d80..d576f9f3a4 100644 --- a/message-switch-cli.opam +++ b/message-switch-cli.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" name: "message-switch-cli" maintainer: "xen-api@lists.xen.org" diff --git a/message-switch-cli.opam.template b/message-switch-cli.opam.template new file mode 100644 index 0000000000..dbf5de7d80 --- /dev/null +++ b/message-switch-cli.opam.template @@ -0,0 +1,27 @@ +opam-version: "2.0" +name: "message-switch-cli" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +tags: [ "org:xapi-project" ] +build: [ + ["./configure" "--prefix" "%{prefix}%"] + [ "dune" "build" "-p" name "-j" jobs ] +] +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "odoc" {with-doc} + "cmdliner" + "message-switch-unix" + "ppx_deriving_rpc" +] +synopsis: "A simple store-and-forward message switch" +description: """ +The switch stores messages in queues with well-known names. Clients use +a simple HTTP protocol to enqueue and dequeue messages.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/message-switch-core.opam b/message-switch-core.opam index 7ec11e91dc..960934bea5 100644 --- a/message-switch-core.opam +++ b/message-switch-core.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" name: "message-switch-core" maintainer: "xen-api@lists.xen.org" diff --git a/message-switch-core.opam.template b/message-switch-core.opam.template new file mode 100644 index 0000000000..7ec11e91dc --- /dev/null +++ b/message-switch-core.opam.template @@ -0,0 +1,30 @@ +opam-version: "2.0" +name: "message-switch-core" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +tags: [ "org:xapi-project" ] +build: [ + ["./configure" "--prefix" "%{prefix}%"] + [ "dune" "build" "-p" name "-j" jobs ] +] +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "odoc" {with-doc} + "astring" + "cohttp" {>= "0.21.1"} + "ppx_deriving_rpc" + "ppx_sexp_conv" + "rpclib" + "sexplib" +] +synopsis: "A simple store-and-forward message switch" +description: """ +The switch stores messages in queues with well-known names. Clients use +a simple HTTP protocol to enqueue and dequeue messages.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/message-switch-lwt.opam b/message-switch-lwt.opam index 766fbbceaa..a52b3eca12 100644 --- a/message-switch-lwt.opam +++ b/message-switch-lwt.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" name: "message-switch-lwt" maintainer: "xen-api@lists.xen.org" diff --git a/message-switch-lwt.opam.template b/message-switch-lwt.opam.template new file mode 100644 index 0000000000..766fbbceaa --- /dev/null +++ b/message-switch-lwt.opam.template @@ -0,0 +1,27 @@ +opam-version: "2.0" +name: "message-switch-lwt" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +tags: [ "org:xapi-project" ] +build: [ + ["./configure" "--prefix" "%{prefix}%"] + [ "dune" "build" "-p" name "-j" jobs ] +] +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "odoc" {with-doc} + "cohttp-lwt-unix" + "lwt" {>= "3.0.0"} + "message-switch-core" +] +synopsis: "A simple store-and-forward message switch" +description: """ +The switch stores messages in queues with well-known names. Clients use +a simple HTTP protocol to enqueue and dequeue messages.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/message-switch-unix.opam b/message-switch-unix.opam index f21bd6e188..64fd72db24 100644 --- a/message-switch-unix.opam +++ b/message-switch-unix.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" name: "message-switch-unix" maintainer: "xen-api@lists.xen.org" diff --git a/message-switch-unix.opam.template b/message-switch-unix.opam.template new file mode 100644 index 0000000000..f21bd6e188 --- /dev/null +++ b/message-switch-unix.opam.template @@ -0,0 +1,27 @@ +opam-version: "2.0" +name: "message-switch-unix" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +tags: [ "org:xapi-project" ] +build: [ + ["./configure" "--prefix" "%{prefix}%"] + [ "dune" "build" "-p" name "-j" jobs ] +] +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "odoc" {with-doc} + "base-threads" + "message-switch-core" + "ppx_deriving_rpc" +] +synopsis: "A simple store-and-forward message switch" +description: """ +The switch stores messages in queues with well-known names. Clients use +a simple HTTP protocol to enqueue and dequeue messages.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/message-switch.opam b/message-switch.opam index 5322fe9f41..39cf5bea18 100644 --- a/message-switch.opam +++ b/message-switch.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" name: "message-switch" maintainer: "xen-api@lists.xen.org" diff --git a/message-switch.opam.template b/message-switch.opam.template new file mode 100644 index 0000000000..5322fe9f41 --- /dev/null +++ b/message-switch.opam.template @@ -0,0 +1,39 @@ +opam-version: "2.0" +name: "message-switch" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +tags: [ "org:xapi-project" ] +build: [ + ["./configure" "--prefix" "%{prefix}%"] + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "odoc" {with-doc} + "cmdliner" + "cohttp-async" {with-test} + "cohttp-lwt-unix" + "io-page" {>= "2.4.0"} + "lwt_log" + "message-switch-async" {with-test} + "message-switch-lwt" + "message-switch-unix" + "mirage-block-unix" {>= "2.4.0"} + "mtime" {>= "1.0.0"} + "ppx_deriving_rpc" {with-test} + "ppx_sexp_conv" + "sexplib" + "shared-block-ring" {>= "2.3.0"} +] +synopsis: "A simple store-and-forward message switch" +description: """ +The switch stores messages in queues with well-known names. Clients use +a simple HTTP protocol to enqueue and dequeue messages.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/pciutil.opam b/pciutil.opam index fb0823e55c..e4c52c1629 100644 --- a/pciutil.opam +++ b/pciutil.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/pciutil.opam.template b/pciutil.opam.template new file mode 100644 index 0000000000..fb0823e55c --- /dev/null +++ b/pciutil.opam.template @@ -0,0 +1,22 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] + +available: [ os = "linux" ] +depends: [ + "ocaml" + "dune" + "xapi-stdext-unix" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/rrd-transport.opam b/rrd-transport.opam index 11fed3d55c..aa031f2131 100644 --- a/rrd-transport.opam +++ b/rrd-transport.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "John Else" diff --git a/rrd-transport.opam.template b/rrd-transport.opam.template new file mode 100644 index 0000000000..11fed3d55c --- /dev/null +++ b/rrd-transport.opam.template @@ -0,0 +1,28 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "John Else" +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" {build & >= "1.0+beta10"} + "cstruct" + "crc" + "astring" + "yojson" + "xapi-idl" {>= "1.0.0"} + "xapi-rrd" {>= "1.0.0"} + "ounit2" {with-test} +] +synopsis: "Shared-memory protocols for exposing performance counters" +description: """ +VMs running on a Xen host can use this library to expose performance +counters which can be sampled by the xapi performance monitoring daemon.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/rrd2csv.opam b/rrd2csv.opam index 0f59824424..cb36ed57a7 100644 --- a/rrd2csv.opam +++ b/rrd2csv.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" name: "rrd2csv" maintainer: "opam-devel@lists.ocaml.org" diff --git a/rrd2csv.opam.template b/rrd2csv.opam.template new file mode 100644 index 0000000000..0f59824424 --- /dev/null +++ b/rrd2csv.opam.template @@ -0,0 +1,26 @@ +opam-version: "2.0" +name: "rrd2csv" +maintainer: "opam-devel@lists.ocaml.org" +authors: [ "Guillem Rieu" ] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" + "http-lib" + "xapi-client" + "xapi-idl" + "xapi-rrd" + "xapi-stdext-std" + "xapi-stdext-threads" +] +synopsis: "Convert XenServer RRD data into CSV format" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/rrdd-plugin.opam b/rrdd-plugin.opam index 2c889ba1aa..093a8396b3 100644 --- a/rrdd-plugin.opam +++ b/rrdd-plugin.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/rrdd-plugin.opam.template b/rrdd-plugin.opam.template new file mode 100644 index 0000000000..2c889ba1aa --- /dev/null +++ b/rrdd-plugin.opam.template @@ -0,0 +1,32 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" {build & >= "1.0+beta10"} + "astring" + "rpclib" + "xapi-forkexecd" + "xapi-stdext-pervasives" + "xapi-stdext-std" + "xapi-stdext-threads" + "xapi-stdext-unix" + "xapi-idl" + "xapi-rrd-transport" {>= "0.9.0"} + "xenstore_transport" +] +synopsis: "A plugin library for the xapi performance monitoring daemon" +description: """ +This library allows one to expose a datasource which can then be +sampled by the performance monitoring daemon.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/rrdd-plugins.opam b/rrdd-plugins.opam index 9db3f7e4a7..e0a4ac91af 100644 --- a/rrdd-plugins.opam +++ b/rrdd-plugins.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" name: "rrdd-plugins" maintainer: "xs-devel@lists.xenserver.org" diff --git a/rrdd-plugins.opam.template b/rrdd-plugins.opam.template new file mode 100644 index 0000000000..9db3f7e4a7 --- /dev/null +++ b/rrdd-plugins.opam.template @@ -0,0 +1,29 @@ +opam-version: "2.0" +name: "rrdd-plugins" +maintainer: "xs-devel@lists.xenserver.org" +authors: [ "xs-devel@lists.xenserver.org" ] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] +synopsis: "Plugins registering to the RRD daemon and exposing various metrics" +depends: [ + "ocaml" + "dune" + "base-threads" + "base-unix" + "cstruct-unix" + "ezxenstore" + "inotify" + "rrdd-plugin" + "uuid" + "xapi-stdext-std" + "xapi-stdext-unix" + "xenctrl" + "xenstore" + "mtime" +] +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/rrddump.opam b/rrddump.opam index c97c7947e0..b52fb1cb46 100644 --- a/rrddump.opam +++ b/rrddump.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" synopsis: "Tool to dump RRD contents to XML format" description: "Tool to dump RRD contents to XML format" diff --git a/rrddump.opam.template b/rrddump.opam.template new file mode 100644 index 0000000000..c97c7947e0 --- /dev/null +++ b/rrddump.opam.template @@ -0,0 +1,14 @@ +opam-version: "2.0" +synopsis: "Tool to dump RRD contents to XML format" +description: "Tool to dump RRD contents to XML format" +maintainer: "xen-api@lists.xen.org" +authors: "John Else" +tags: "org:xapi-project" +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +depends: ["rrd-transport" "xapi-rrd" "xmlm"] +build: ["dune" "build" "-p" name "-j" jobs] +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/safe-resources.opam b/safe-resources.opam index b02f53a13f..18c9270b96 100644 --- a/safe-resources.opam +++ b/safe-resources.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/safe-resources.opam.template b/safe-resources.opam.template new file mode 100644 index 0000000000..b02f53a13f --- /dev/null +++ b/safe-resources.opam.template @@ -0,0 +1,29 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +available: [ os = "linux" | os = "macos" ] +depends: [ + "ocaml" + "dune" + "fmt" + "logs" + "xapi-backtrace" + "xapi-stdext-pervasives" + "xapi-stdext-threads" + "alcotest" {with-test} +] +synopsis: "Safe resource handling: no double close/leaks" +description: """ +Safe resource handling: protection against double close and file descriptor leaks. +""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/sexpr.opam b/sexpr.opam index 0448d5c4d1..49226ada78 100644 --- a/sexpr.opam +++ b/sexpr.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/sexpr.opam.template b/sexpr.opam.template new file mode 100644 index 0000000000..0448d5c4d1 --- /dev/null +++ b/sexpr.opam.template @@ -0,0 +1,23 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] + +available: [ os = "linux" | os = "macos" ] +depends: [ + "ocaml" + "dune" + "astring" + "xapi-stdext-threads" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/stunnel.opam b/stunnel.opam index 1e96c54c8d..3831cdec07 100644 --- a/stunnel.opam +++ b/stunnel.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/stunnel.opam.template b/stunnel.opam.template new file mode 100644 index 0000000000..1e96c54c8d --- /dev/null +++ b/stunnel.opam.template @@ -0,0 +1,31 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] + +available: [ os = "linux" ] +depends: [ + "ocaml" + "dune" + "astring" + "forkexec" + "safe-resources" + "uuid" + "xapi-consts" + "xapi-log" + "xapi-inventory" + "xapi-stdext-pervasives" + "xapi-stdext-threads" + "xapi-stdext-unix" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/uuid.opam b/uuid.opam index daa9cee8df..fa7da3a731 100644 --- a/uuid.opam +++ b/uuid.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/uuid.opam.template b/uuid.opam.template new file mode 100644 index 0000000000..daa9cee8df --- /dev/null +++ b/uuid.opam.template @@ -0,0 +1,26 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] + +available: [ os = "linux" | os = "macos" ] +depends: [ + "ocaml" + "dune" + "alcotest" {with-test} + "uuidm" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/varstored-guard.opam b/varstored-guard.opam index d58715bcc5..2e794c9309 100644 --- a/varstored-guard.opam +++ b/varstored-guard.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "xen-api@lists.xen.org" ] diff --git a/varstored-guard.opam.template b/varstored-guard.opam.template new file mode 100644 index 0000000000..d58715bcc5 --- /dev/null +++ b/varstored-guard.opam.template @@ -0,0 +1,22 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api" +build: [["dune" "build" "-p" name "-j" jobs]] +run-test: [[ "dune" "runtest" "-p" name "-j" jobs ]] +depends: [ + "cmdliner" + "cohttp-lwt" + "message-switch-lwt" + "rpclib-lwt" + "xapi-idl" + "xen-api-client-lwt" + "alcotest-lwt" {with-test} +] +synopsis: "Supervising daemon for varstored daemons" +description: "" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/vhd-format-lwt.opam b/vhd-format-lwt.opam index 08d4f82498..eac244d61c 100644 --- a/vhd-format-lwt.opam +++ b/vhd-format-lwt.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" name: "vhd-format-lwt" synopsis: "Lwt interface to read/write VHD format data" diff --git a/vhd-format-lwt.opam.template b/vhd-format-lwt.opam.template new file mode 100644 index 0000000000..08d4f82498 --- /dev/null +++ b/vhd-format-lwt.opam.template @@ -0,0 +1,39 @@ +opam-version: "2.0" +name: "vhd-format-lwt" +synopsis: "Lwt interface to read/write VHD format data" +description: """\ +A pure OCaml library to read and write +[vhd](http://en.wikipedia.org/wiki/VHD_(file_format)) format data, plus a +simple command-line tool which allows vhd files to be interrogated, +manipulated, format-converted and streamed to and from files and remote +servers. + +This package provides an Lwt compatible interface to the library.""" +maintainer: "dave@recoil.org" +authors: ["Dave Scott" "Jon Ludlam"] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +tags: ["org:mirage" "org:xapi-project"] +homepage: "https://github.com/mirage/ocaml-vhd" +doc: "https://mirage.github.io/ocaml-vhd/" +bug-reports: "https://github.com/mirage/ocaml-vhd/issues" +depends: [ + "ocaml" {>= "4.02.3" & < "5.0.0"} + "cstruct" {< "6.1.0"} + "lwt" {>= "3.2.0"} + "mirage-block" {>= "2.0.1"} + "ounit2" {with-test} + "vhd-format" {= version} + "dune" {>= "1.0"} + "io-page" {with-test & >= "2.4.0"} +] +available: os = "linux" | os = "macos" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depexts: ["linux-headers"] {os-distribution = "alpine"} +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/vhd-format.opam b/vhd-format.opam index 77a5c6ad58..896d90139a 100644 --- a/vhd-format.opam +++ b/vhd-format.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" name: "vhd-format" synopsis: "Pure OCaml library to read/write VHD format data" diff --git a/vhd-format.opam.template b/vhd-format.opam.template new file mode 100644 index 0000000000..77a5c6ad58 --- /dev/null +++ b/vhd-format.opam.template @@ -0,0 +1,34 @@ +opam-version: "2.0" +name: "vhd-format" +synopsis: "Pure OCaml library to read/write VHD format data" +description: """\ +A pure OCaml library to read and write +[vhd](http://en.wikipedia.org/wiki/VHD_(file_format)) format data, plus a +simple command-line tool which allows vhd files to be interrogated, +manipulated, format-converted and streamed to and from files and remote +servers.""" +maintainer: "dave@recoil.org" +authors: ["Dave Scott" "Jon Ludlam"] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +tags: ["org:mirage" "org:xapi-project"] +homepage: "https://github.com/mirage/ocaml-vhd" +doc: "https://mirage.github.io/ocaml-vhd/" +bug-reports: "https://github.com/mirage/ocaml-vhd/issues" +depends: [ + "ocaml" {>= "4.03.0"} + "cstruct" {>= "1.9" & < "6.1.0"} + "io-page" + "rresult" {>= "0.3.0"} + "uuidm" {>= "0.9.6"} + "stdlib-shims" + "dune" {>= "1.0"} + "ppx_cstruct" {build & >= "3.0.0"} +] +available: os = "linux" | os = "macos" +build: ["dune" "build" "-p" name "-j" jobs] +depexts: ["linux-headers"] {os-distribution = "alpine"} +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/vhd-tool.opam b/vhd-tool.opam index 52cf0e72d4..c1f8135c98 100644 --- a/vhd-tool.opam +++ b/vhd-tool.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "xen-api@lists.xen.org" ] diff --git a/vhd-tool.opam.template b/vhd-tool.opam.template new file mode 100644 index 0000000000..52cf0e72d4 --- /dev/null +++ b/vhd-tool.opam.template @@ -0,0 +1,40 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +tags: [ + "org:mirage" + "org:xapi-project" +] +build: [[ "dune" "build" "-p" name "-j" jobs ] +] +depends: [ + "ocaml" + "dune" + "alcotest-lwt" {with-test} + "cohttp-lwt" + "conf-libssl" + "cstruct" {>= "3.0.0"} + "forkexec" + "io-page" + "lwt" + "nbd-unix" + "ppx_cstruct" + "ppx_deriving_rpc" + "re" + "rpclib" + "sha" + "tar" + "vhd-format" + "vhd-format-lwt" + "xapi-idl" + "xapi-log" + "xenstore" + "xenstore_transport" +] +synopsis: ".vhd file manipulation" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/wsproxy.opam b/wsproxy.opam index 5a5fdd0097..baceb5d55f 100644 --- a/wsproxy.opam +++ b/wsproxy.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" name: "wsproxy" maintainer: "xen-api@lists.xen.org" diff --git a/wsproxy.opam.template b/wsproxy.opam.template new file mode 100644 index 0000000000..5a5fdd0097 --- /dev/null +++ b/wsproxy.opam.template @@ -0,0 +1,29 @@ +opam-version: "2.0" +name: "wsproxy" +maintainer: "xen-api@lists.xen.org" +authors: [ "Jon Ludlam" "Marcello Seri" ] +license: "LGPL-2.0-only WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" + "base64" {>= "3.1.0"} + "fmt" + "logs" + "lwt" {>= "3.0.0"} + "re" + "uuid" + "ounit2" {with-test} + "qcheck" {with-test} +] +tags: [ "org:xapi-project" ] +synopsis: "Websockets proxy for VNC traffic" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-cli-protocol.opam b/xapi-cli-protocol.opam index 65ba997bf4..ba721dfa94 100644 --- a/xapi-cli-protocol.opam +++ b/xapi-cli-protocol.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "xen-api@lists.xen.org" ] diff --git a/xapi-cli-protocol.opam.template b/xapi-cli-protocol.opam.template new file mode 100644 index 0000000000..65ba997bf4 --- /dev/null +++ b/xapi-cli-protocol.opam.template @@ -0,0 +1,26 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "base-threads" + "xapi-consts" + "xapi-datamodel" + "xapi-stdext-std" + "xapi-stdext-unix" +] +synopsis: "The xapi toolstack daemon which implements the XenAPI" +description: """ +This daemon exposes the XenAPI and is used by clients such as 'xe' +and 'XenCenter' to manage clusters of Xen-enabled hosts.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-client.opam b/xapi-client.opam index 090922e0c0..e440122eba 100644 --- a/xapi-client.opam +++ b/xapi-client.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "xen-api@lists.xen.org" ] diff --git a/xapi-client.opam.template b/xapi-client.opam.template new file mode 100644 index 0000000000..090922e0c0 --- /dev/null +++ b/xapi-client.opam.template @@ -0,0 +1,32 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "mtime" + "sexpr" + "base-threads" + "uuid" + "xapi-consts" + "xapi-datamodel" + "xapi-stdext-date" + "xapi-stdext-pervasives" + "xapi-stdext-std" + "xapi-stdext-unix" + "xapi-types" +] +synopsis: "The xapi toolstack daemon which implements the XenAPI" +description: """ +This daemon exposes the XenAPI and is used by clients such as 'xe' +and 'XenCenter' to manage clusters of Xen-enabled hosts.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-compression.opam b/xapi-compression.opam index 6947af885a..5395517c03 100644 --- a/xapi-compression.opam +++ b/xapi-compression.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/xapi-compression.opam.template b/xapi-compression.opam.template new file mode 100644 index 0000000000..6947af885a --- /dev/null +++ b/xapi-compression.opam.template @@ -0,0 +1,26 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] + +available: [ os = "linux" ] +depends: [ + "ocaml" + "dune" + "forkexec" + "safe-resources" + "xapi-log" + "xapi-stdext-pervasives" + "xapi-stdext-unix" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-consts.opam b/xapi-consts.opam index 90271150f6..506569a982 100644 --- a/xapi-consts.opam +++ b/xapi-consts.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "xen-api@lists.xen.org" ] diff --git a/xapi-consts.opam.template b/xapi-consts.opam.template new file mode 100644 index 0000000000..90271150f6 --- /dev/null +++ b/xapi-consts.opam.template @@ -0,0 +1,23 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "dune-build-info" + "xapi-inventory" +] +synopsis: "The xapi toolstack daemon which implements the XenAPI" +description: """ +This daemon exposes the XenAPI and is used by clients such as 'xe' +and 'XenCenter' to manage clusters of Xen-enabled hosts.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-datamodel.opam b/xapi-datamodel.opam index b3ee146ed8..d31a2178b7 100644 --- a/xapi-datamodel.opam +++ b/xapi-datamodel.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "xen-api@lists.xen.org" ] diff --git a/xapi-datamodel.opam.template b/xapi-datamodel.opam.template new file mode 100644 index 0000000000..b3ee146ed8 --- /dev/null +++ b/xapi-datamodel.opam.template @@ -0,0 +1,30 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "mustache" + "ppx_deriving_rpc" + "rpclib" + "base-threads" + "xapi-consts" + "xapi-schema" + "xapi-stdext-date" + "xapi-stdext-std" + "xapi-stdext-unix" +] +synopsis: "The xapi toolstack daemon which implements the XenAPI" +description: """ +This daemon exposes the XenAPI and is used by clients such as 'xe' +and 'XenCenter' to manage clusters of Xen-enabled hosts.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-expiry-alerts.opam b/xapi-expiry-alerts.opam index f952588f23..178652b00d 100644 --- a/xapi-expiry-alerts.opam +++ b/xapi-expiry-alerts.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" name: "xapi-expiry-alerts" synopsis: "A library to send expiration-related alerts and removing outdated ones" diff --git a/xapi-expiry-alerts.opam.template b/xapi-expiry-alerts.opam.template new file mode 100644 index 0000000000..f952588f23 --- /dev/null +++ b/xapi-expiry-alerts.opam.template @@ -0,0 +1,31 @@ +opam-version: "2.0" +name: "xapi-expiry-alerts" +synopsis: "A library to send expiration-related alerts and removing outdated ones" +description: """\ +The interface of this library is 'alert', upon calling this API, any +existing outdated messages will be removed first, and a new message +will be created only if it does not exist in Xapi.Message records +yet.""" +maintainer: "xen-api@lists.xen.org" +authors: [ "Pau Ruiz Safont" "Gang Ji" ] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +depends: [ + "alcotest" {with-test} + "ocaml" + "dune" + "astring" + "xapi-client" + "xapi-consts" + "xapi-types" + "xapi-stdext-date" +] +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-forkexecd.opam b/xapi-forkexecd.opam index 1c81daf10b..51ce3a48d0 100644 --- a/xapi-forkexecd.opam +++ b/xapi-forkexecd.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/xapi-forkexecd.opam.template b/xapi-forkexecd.opam.template new file mode 100644 index 0000000000..1c81daf10b --- /dev/null +++ b/xapi-forkexecd.opam.template @@ -0,0 +1,30 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://github.com/xapi-project/" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +tags: [ "org:xapi-project" ] + +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" + "astring" + "forkexec" + "systemd" {>= "1.2"} + "uuid" + "xapi-stdext-unix" +] +conflicts: [ + "fd-send-recv" {< "2.0.0"} +] +synopsis: "Sub-process control service for xapi" +description: + "This daemon creates and manages sub-processes on behalf of xapi." +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-idl.opam b/xapi-idl.opam index 26a2633527..9364d60514 100644 --- a/xapi-idl.opam +++ b/xapi-idl.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" authors: "Dave Scott" homepage: "https://github.com/xapi-project/xen-api" diff --git a/xapi-idl.opam.template b/xapi-idl.opam.template new file mode 100644 index 0000000000..26a2633527 --- /dev/null +++ b/xapi-idl.opam.template @@ -0,0 +1,50 @@ +opam-version: "2.0" +authors: "Dave Scott" +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +maintainer: "xapi project maintainers" +tags: [ "org:xapi-project" ] +build: [["dune" "build" "-p" name "-j" jobs]] +run-test: [[ "dune" "runtest" "-p" name "-j" jobs ]] +depends: [ + "ocaml" + "dune" + "alcotest" {with-test} + "fmt" {with-test} + "astring" + "cmdliner" + "cohttp" + "fd-send-recv" + "logs" + "lwt" {>= "5.0.0"} + "message-switch-async" {with-test} + "message-switch-core" + "message-switch-unix" + "mtime" + "ppx_deriving_rpc" + "ppx_sexp_conv" + "re" + "xapi-rrd" + "sexplib" + "uri" + "xapi-backtrace" + "xapi-open-uri" + "xapi-stdext-date" + "xapi-stdext-pervasives" + "xapi-stdext-threads" + "xapi-tracing" + "xapi-inventory" + "xmlm" +] +synopsis: "Interface descriptions and common boilerplate for xapi services" +description: """ +The xapi toolstack is a set of communicating services including + - xenopsd: low-level Xen domain management + - networkd: host network configuration + - squeezed: balances memory between domains + - rrdd: manages datasources and records history +plus storage 'plugins'""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-log.opam b/xapi-log.opam index 502e26940c..416fb3894b 100644 --- a/xapi-log.opam +++ b/xapi-log.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/xapi-log.opam.template b/xapi-log.opam.template new file mode 100644 index 0000000000..502e26940c --- /dev/null +++ b/xapi-log.opam.template @@ -0,0 +1,24 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +available: [ os = "linux" ] +depends: [ + "ocaml" + "dune" + "xapi-stdext-pervasives" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-nbd.opam b/xapi-nbd.opam index ef77689eec..b42a11f00e 100644 --- a/xapi-nbd.opam +++ b/xapi-nbd.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: ["dave.scott@citrix.com"] diff --git a/xapi-nbd.opam.template b/xapi-nbd.opam.template new file mode 100644 index 0000000000..ef77689eec --- /dev/null +++ b/xapi-nbd.opam.template @@ -0,0 +1,32 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: ["dave.scott@citrix.com"] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" + "alcotest" {with-test} + "alcotest-lwt" {with-test} + "cmdliner" + "lwt" {>= "3.0.0"} + "lwt_log" + "mirage-block-unix" + "nbd-unix" + "uri" + "uuid" + "xapi-inventory" + "xapi-tracing" + "xen-api-client-lwt" +] +tags: [ "org:mirage" "org:xapi-project" ] +synopsis: "Expose XenServer disks conveniently over NBD" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-networkd.opam b/xapi-networkd.opam index b661773e09..6a3f122d14 100644 --- a/xapi-networkd.opam +++ b/xapi-networkd.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "jonathan.ludlam@eu.citrix.com" diff --git a/xapi-networkd.opam.template b/xapi-networkd.opam.template new file mode 100644 index 0000000000..b661773e09 --- /dev/null +++ b/xapi-networkd.opam.template @@ -0,0 +1,35 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "jonathan.ludlam@eu.citrix.com" +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "astring" + "alcotest" {with-test} + "base-threads" + "forkexec" + "http-lib" + "mtime" + "netlink" + "re" + "rpclib" + "systemd" + "xapi-idl" + "xapi-inventory" + "xapi-stdext-pervasives" + "xapi-stdext-std" + "xapi-stdext-threads" + "xapi-stdext-unix" + "xapi-test-utils" + "xen-api-client" +] +synopsis: "The XCP networking daemon" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-open-uri.opam b/xapi-open-uri.opam index 1542395adc..31da3b4224 100644 --- a/xapi-open-uri.opam +++ b/xapi-open-uri.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/xapi-open-uri.opam.template b/xapi-open-uri.opam.template new file mode 100644 index 0000000000..1542395adc --- /dev/null +++ b/xapi-open-uri.opam.template @@ -0,0 +1,27 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +available: [ os = "linux" | os = "macos" ] +depends: [ + "ocaml" + "cohttp" + "dune" + "stunnel" + "uri" + "xapi-stdext-pervasives" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-rrd-transport-utils.opam b/xapi-rrd-transport-utils.opam index 236e9e439f..08f4738245 100644 --- a/xapi-rrd-transport-utils.opam +++ b/xapi-rrd-transport-utils.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "John Else" diff --git a/xapi-rrd-transport-utils.opam.template b/xapi-rrd-transport-utils.opam.template new file mode 100644 index 0000000000..236e9e439f --- /dev/null +++ b/xapi-rrd-transport-utils.opam.template @@ -0,0 +1,20 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "John Else" +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api" +build: [[ "dune" "build" "-p" name "-j" jobs ]] +depends: [ + "ocaml" + "dune" {build & >= "1.0+beta10"} + "cmdliner" + "xapi-rrd-transport" {>= "2.0.0"} +] +synopsis: "Shared-memory protocols for exposing performance counters" +description: """ +VMs running on a Xen host can use this library to expose performance +counters which can be sampled by the xapi performance monitoring daemon.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-rrd-transport.opam b/xapi-rrd-transport.opam index 0fd8ff4efa..e9882d24b1 100644 --- a/xapi-rrd-transport.opam +++ b/xapi-rrd-transport.opam @@ -1,3 +1,19 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +build: [ + ["dune" "subst"] {pinned} + [ + "dune" + "build" + "-p" + name + "-j" + jobs + "@install" + "@runtest" {with-test} + "@doc" {with-doc} + ] +] opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "John Else" diff --git a/xapi-rrd-transport.opam.template b/xapi-rrd-transport.opam.template new file mode 100644 index 0000000000..0fd8ff4efa --- /dev/null +++ b/xapi-rrd-transport.opam.template @@ -0,0 +1,17 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "John Else" +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api" +depends: [ + "ocaml" + "rrd-transport" {>= "2.0.0"} +] +synopsis: "Shared-memory protocols for exposing performance counters" +description: """ +VMs running on a Xen host can use this library to expose performance +counters which can be sampled by the xapi performance monitoring daemon.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-rrdd-plugin.opam b/xapi-rrdd-plugin.opam index 432db33bc0..68a9ed509c 100644 --- a/xapi-rrdd-plugin.opam +++ b/xapi-rrdd-plugin.opam @@ -1,3 +1,19 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +build: [ + ["dune" "subst"] {pinned} + [ + "dune" + "build" + "-p" + name + "-j" + jobs + "@install" + "@runtest" {with-test} + "@doc" {with-doc} + ] +] opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/xapi-rrdd-plugin.opam.template b/xapi-rrdd-plugin.opam.template new file mode 100644 index 0000000000..432db33bc0 --- /dev/null +++ b/xapi-rrdd-plugin.opam.template @@ -0,0 +1,15 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +depends: ["ocaml" "rrdd-plugin"] +synopsis: "A plugin library for the xapi performance monitoring daemon" +description: """ +This library allows one to expose a datasource which can then be +sampled by the performance monitoring daemon.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-rrdd.opam b/xapi-rrdd.opam index 3fed06195b..cb9849da94 100644 --- a/xapi-rrdd.opam +++ b/xapi-rrdd.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" synopsis: "Performance monitoring daemon for xapi" description: """ diff --git a/xapi-rrdd.opam.template b/xapi-rrdd.opam.template new file mode 100644 index 0000000000..3fed06195b --- /dev/null +++ b/xapi-rrdd.opam.template @@ -0,0 +1,40 @@ +opam-version: "2.0" +synopsis: "Performance monitoring daemon for xapi" +description: """ +This daemon monitors "datasources" i.e. time-varying values such as +performance counters and records the samples in RRD archives. These +archives can be used to examine historical performance trends.""" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +depends: [ + "ocaml" {>= "4.02.0"} + "dune" + "dune-build-info" + "astring" + "gzip" + "http-lib" + "inotify" + "io-page" + "mtime" + "ppx_deriving_rpc" + "rpclib" + "systemd" + "ezxenstore" + "uuid" + "xapi-backtrace" + "xapi-idl" + "xapi-rrd" + "xapi-rrd-transport" + "xapi-stdext-threads" + "xapi-stdext-unix" +] +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-schema.opam b/xapi-schema.opam index 60e1dc71ad..f4303e871a 100644 --- a/xapi-schema.opam +++ b/xapi-schema.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "xen-api@lists.xen.org" ] diff --git a/xapi-schema.opam.template b/xapi-schema.opam.template new file mode 100644 index 0000000000..60e1dc71ad --- /dev/null +++ b/xapi-schema.opam.template @@ -0,0 +1,25 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" + "ppx_sexp_conv" + "sexpr" + "xapi-log" + "xapi-stdext-encodings" +] +synopsis: "The xapi toolstack daemon which implements the XenAPI" +description: """ +This daemon exposes the XenAPI and is used by clients such as 'xe' +and 'XenCenter' to manage clusters of Xen-enabled hosts.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-squeezed.opam b/xapi-squeezed.opam index fc590e1df2..978e98953f 100644 --- a/xapi-squeezed.opam +++ b/xapi-squeezed.opam @@ -1,3 +1,6 @@ +# This file is generated by dune, edit dune-project instead +authors: ["xen-api@lists.xen.org"] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" author: "dave.scott@eu.citrix.com" maintainer: "xen-api@lists.xen.org" diff --git a/xapi-squeezed.opam.template b/xapi-squeezed.opam.template new file mode 100644 index 0000000000..fc590e1df2 --- /dev/null +++ b/xapi-squeezed.opam.template @@ -0,0 +1,37 @@ +opam-version: "2.0" +author: "dave.scott@eu.citrix.com" +maintainer: "xen-api@lists.xen.org" +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "build" "-p" name "-j" jobs "@runtest"] {with-test} +] +depends: [ + "ocaml" + "astring" + "cohttp" {>= "0.11.0"} + "dune" + "re" + "rpclib" + "uri" + "uuid" + "xapi-idl" + "xapi-log" + "xapi-stdext-pervasives" + "xapi-stdext-threads" + "xapi-stdext-unix" + "xapi-types" + "xenctrl" {>= "0.9.20"} + "xenstore" + "xenstore_transport" +] +synopsis: "A memory ballooning daemon for the Xen hypervisor" +description: """ +The squeezed daemon shares host memory among running VMs using the +balloon drivers to move memory.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-storage-cli.opam b/xapi-storage-cli.opam index b8201d62b3..4b9314babe 100644 --- a/xapi-storage-cli.opam +++ b/xapi-storage-cli.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" name: "xapi-storage-cli" maintainer: "xen-api@lists.xen.org" diff --git a/xapi-storage-cli.opam.template b/xapi-storage-cli.opam.template new file mode 100644 index 0000000000..b8201d62b3 --- /dev/null +++ b/xapi-storage-cli.opam.template @@ -0,0 +1,26 @@ +opam-version: "2.0" +name: "xapi-storage-cli" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] +depends: [ + "ocaml" + "dune" + "base-threads" + "re" + "rpclib" + "ppx_deriving_rpc" + "xapi-idl" + "cmdliner" +] +synopsis: "A CLI for xapi storage services" +description: """ +The CLI allows you to directly manipulate virtual disk images, without +them being attached to VMs.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-storage-script.opam b/xapi-storage-script.opam index 01f859d7b3..87fce518a8 100644 --- a/xapi-storage-script.opam +++ b/xapi-storage-script.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" name: "xapi-storage-script" maintainer: "xen-api@lists.xen.org" diff --git a/xapi-storage-script.opam.template b/xapi-storage-script.opam.template new file mode 100644 index 0000000000..01f859d7b3 --- /dev/null +++ b/xapi-storage-script.opam.template @@ -0,0 +1,40 @@ +opam-version: "2.0" +name: "xapi-storage-script" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +tags: [ "org:xapi-project" ] +build: [[ "dune" "build" "-p" name "-j" jobs ]] +depends: [ + "ocaml" + "dune" + "conf-python-3" {with-test} + "xapi-idl" {>= "0.10.0"} + "xapi-storage" + "async" {>= "v0.9.0"} + "async_inotify" + "async_unix" {>= "112.24.00"} + "core" + "message-switch-unix" + "message-switch-async" + "rpclib" + "rpclib-async" + "ppx_deriving_rpc" + "ppx_sexp_conv" + "xapi-stdext-date" +] +# python 2.7 is not enough to ensure the availability of 'python' in these +depexts: [ + ["python"] {os-family = "debian" & with-test} +] +synopsis: "A directory full of scripts can be a Xapi storage implementation" +description: """ +This daemon watches a directory for subdirectories, and when a subdir +is created a storage service is registered.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-storage.opam b/xapi-storage.opam index 91a35266e5..c6d5ae2a08 100644 --- a/xapi-storage.opam +++ b/xapi-storage.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" name: "xapi-storage" maintainer: "xen-api@lists.xen.org" diff --git a/xapi-storage.opam.template b/xapi-storage.opam.template new file mode 100644 index 0000000000..91a35266e5 --- /dev/null +++ b/xapi-storage.opam.template @@ -0,0 +1,26 @@ +opam-version: "2.0" +name: "xapi-storage" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs] +] +depends: [ + "ocaml" + "dune" + "conf-python-3" + "alcotest" {with-test} + "lwt" {with-test} + "rpclib" {with-test} + "ppx_deriving_rpc" + "rpclib" + "xmlm" + "cmdliner" +] +synopsis: "Code and documentation generator for the Xapi storage interface" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-tracing.opam b/xapi-tracing.opam index f1ecf8a4cd..b9bbeff386 100644 --- a/xapi-tracing.opam +++ b/xapi-tracing.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/xapi-tracing.opam.template b/xapi-tracing.opam.template new file mode 100644 index 0000000000..f1ecf8a4cd --- /dev/null +++ b/xapi-tracing.opam.template @@ -0,0 +1,29 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] + +available: [ os = "linux" ] +depends: [ + "ocaml" + "cohttp-posix" + "dune" + "cohttp" + "rpclib" + "xapi-log" + "xapi-open-uri" + "xapi-stdext-threads" + "xapi-stdext-unix" + "zstd" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-types.opam b/xapi-types.opam index c3a998e500..9f69f9d398 100644 --- a/xapi-types.opam +++ b/xapi-types.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "xen-api@lists.xen.org" ] diff --git a/xapi-types.opam.template b/xapi-types.opam.template new file mode 100644 index 0000000000..c3a998e500 --- /dev/null +++ b/xapi-types.opam.template @@ -0,0 +1,35 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] + +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "astring" + "ppx_deriving_rpc" + "rpclib" + "sexpr" + "base-threads" + "uuid" + "xapi-consts" + "xapi-datamodel" + "xapi-stdext-date" + "xapi-stdext-pervasives" + "xapi-stdext-std" + "xapi-stdext-unix" + "xapi-idl" +] +synopsis: "The xapi toolstack daemon which implements the XenAPI" +description: """ +This daemon exposes the XenAPI and is used by clients such as 'xe' +and 'XenCenter' to manage clusters of Xen-enabled hosts.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-xenopsd-cli.opam b/xapi-xenopsd-cli.opam index f516646618..ee20d166b3 100644 --- a/xapi-xenopsd-cli.opam +++ b/xapi-xenopsd-cli.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "xen-api@lists.xen.org" ] diff --git a/xapi-xenopsd-cli.opam.template b/xapi-xenopsd-cli.opam.template new file mode 100644 index 0000000000..f516646618 --- /dev/null +++ b/xapi-xenopsd-cli.opam.template @@ -0,0 +1,29 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" + "base-threads" + "cmdliner" + "re" + "rpclib" + "rresult" + "uuid" + "xapi-idl" + "xenstore_transport" {with-test} +] +synopsis: "A simple command-line tool for interacting with xenopsd" +description: """ +A simple command-line tool for interacting with xenopsd +""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-xenopsd-simulator.opam b/xapi-xenopsd-simulator.opam index af6746862b..1ad22ebd29 100644 --- a/xapi-xenopsd-simulator.opam +++ b/xapi-xenopsd-simulator.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" name: "xapi-xenopsd-simulator" maintainer: "xen-api@lists.xen.org" diff --git a/xapi-xenopsd-simulator.opam.template b/xapi-xenopsd-simulator.opam.template new file mode 100644 index 0000000000..af6746862b --- /dev/null +++ b/xapi-xenopsd-simulator.opam.template @@ -0,0 +1,22 @@ +opam-version: "2.0" +name: "xapi-xenopsd-simulator" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +build: [ + ["./configure"] + [ "dune" "build" "-p" name "-j" jobs ] +] +depends: [ + "ocaml" + "dune" + "base-unix" + "xapi-xenopsd" +] +synopsis: + "Simulation backend allowing testing of the higher-level xenops logic" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-xenopsd-xc.opam b/xapi-xenopsd-xc.opam index a049071287..9a355cd3fb 100644 --- a/xapi-xenopsd-xc.opam +++ b/xapi-xenopsd-xc.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" name: "xapi-xenopsd-xc" maintainer: "xen-api@lists.xen.org" diff --git a/xapi-xenopsd-xc.opam.template b/xapi-xenopsd-xc.opam.template new file mode 100644 index 0000000000..a049071287 --- /dev/null +++ b/xapi-xenopsd-xc.opam.template @@ -0,0 +1,53 @@ +opam-version: "2.0" +name: "xapi-xenopsd-xc" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +build: [ + ["./configure"] + [ "dune" "build" "-p" name "-j" jobs ] + [ "dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" + "astring" + "base-threads" + "base-unix" + "conf-xen" + "ezxenstore" + "fd-send-recv" + "fmt" + "forkexec" + "mtime" + "polly" + "ppx_deriving_rpc" + "ppx_sexp_conv" + "qmp" + "re" + "result" + "rpclib" + "rresult" + "sexplib0" + "uuid" + "xapi-backtrace" + "xapi-idl" + "xapi-rrd" + "xapi-stdext-date" + "xapi-stdext-pervasives" + "xapi-stdext-std" + "xapi-stdext-threads" + "xapi-stdext-unix" + "xapi-xenopsd" + "xenctrl" + "xenstore" + "xenstore_transport" +] +synopsis: + "A xenops plugin which knows how to use xenstore, xenctrl and xenguest to manage" +description: "VMs on a xen host." +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi-xenopsd.opam b/xapi-xenopsd.opam index 1aaf052453..944bf5d1b6 100644 --- a/xapi-xenopsd.opam +++ b/xapi-xenopsd.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" name: "xapi-xenopsd" maintainer: "xen-api@lists.xen.org" diff --git a/xapi-xenopsd.opam.template b/xapi-xenopsd.opam.template new file mode 100644 index 0000000000..1aaf052453 --- /dev/null +++ b/xapi-xenopsd.opam.template @@ -0,0 +1,53 @@ +opam-version: "2.0" +name: "xapi-xenopsd" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +build: [ + ["./configure"] + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" + "base-threads" + "alcotest" {with-test} + "astring" + "cohttp" + "fd-send-recv" + "fmt" { >= "0.8.8" } + "forkexec" + "ppx_deriving_rpc" + "ppx_sexp_conv" + "re" + "result" + "rpclib" + "rresult" + "sexplib" + "sexplib0" + "uri" + "uuid" + "uutf" + "xapi-backtrace" + "xapi-idl" + "xapi-stdext-date" + "xapi-stdext-pervasives" + "xapi-stdext-threads" + "xapi-stdext-unix" + "xapi-tracing" + "xenstore_transport" {with-test} + "xmlm" + "zstd" +] +synopsis: "A single-host domain/VM manager for the Xen hypervisor" +description: """ +The xenopsd daemon allows a set of VMs on a single host to be controlled +via a simple API. The API has been tailored to suit the needs of xapi, +which manages clusters of hosts running Xen, but it can also be used +standalone.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xapi.opam b/xapi.opam index 8f3e119ec9..020358cf4d 100644 --- a/xapi.opam +++ b/xapi.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "xen-api@lists.xen.org" ] diff --git a/xapi.opam.template b/xapi.opam.template new file mode 100644 index 0000000000..8f3e119ec9 --- /dev/null +++ b/xapi.opam.template @@ -0,0 +1,84 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" + "alcotest" # needed to generate the quicktest binary + "angstrom" + "base64" + "cdrom" + "conf-pam" + "crowbar" {with-test} + "ctypes" + "ctypes-foreign" + "domain-name" + "ezxenstore" + "fmt" {with-test} + "http-lib" {with-test} # the public library is only used for testing + "ipaddr" + "mirage-crypto" {with-test} + "mirage-crypto-pk" + "mirage-crypto-rng" {with-test} + "message-switch-unix" + "mtime" + "opentelemetry-client-ocurl" + "pci" + "pciutil" + "ppx_deriving_rpc" + "ppx_sexp_conv" + "ppx_deriving" + "rpclib" + "rrdd-plugin" + "rresult" + "sexpr" + "sha" + "stunnel" + "tar" + "tar-unix" + "base-threads" + "base-unix" + "uuid" + "x509" + "xapi-client" + "xapi-cli-protocol" + "xapi-consts" + "xapi-datamodel" + "xapi-expiry-alerts" + "xapi-stdext-date" + "xapi-stdext-pervasives" + "xapi-stdext-std" + "xapi-stdext-threads" + "xapi-stdext-unix" + "xapi-stdext-zerocheck" + "xapi-test-utils" {with-test} + "xapi-tracing" + "xapi-types" + "xapi-xenopsd" + "xapi-idl" + "xapi-inventory" + "xml-light2" + "yojson" + "zstd" +] +depexts: [ + ["hwdata" "libxxhash-dev" "libxxhash0"] {os-distribution = "debian"} + ["hwdata" "libxxhash-dev" "libxxhash0"] {os-distribution = "ubuntu"} + ["hwdata" "xxhash-devel" "xxhash-libs"] {os-distribution = "centos"} + ["hwdata" "xxhash-devel" "xxhash-libs"] {os-distribution = "fedora"} + ["hwdata" "xxhash-dev" "xxhash"] {os-distribution = "alpine"} +] +synopsis: "The xapi toolstack daemon which implements the XenAPI" +description: """ +This daemon exposes the XenAPI and is used by clients such as 'xe' +and 'XenCenter' to manage clusters of Xen-enabled hosts.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xe.opam b/xe.opam index 8884529da4..eb83012f60 100644 --- a/xe.opam +++ b/xe.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "xen-api@lists.xen.org" ] diff --git a/xe.opam.template b/xe.opam.template new file mode 100644 index 0000000000..8884529da4 --- /dev/null +++ b/xe.opam.template @@ -0,0 +1,30 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [ + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" {build & >= "1.4"} + "fpath" + "stunnel" + "base-threads" + "xapi-cli-protocol" + "xapi-consts" + "xapi-datamodel" + "xapi-stdext-pervasives" + "xapi-stdext-std" + "xapi-stdext-unix" +] +synopsis: "The xapi toolstack daemon which implements the XenAPI" +description: """ +This daemon exposes the XenAPI and is used by clients such as 'xe' +and 'XenCenter' to manage clusters of Xen-enabled hosts.""" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xen-api-client-async.opam b/xen-api-client-async.opam index 6aa8a31205..c53b756b7c 100644 --- a/xen-api-client-async.opam +++ b/xen-api-client-async.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "David Scott" "Anil Madhavapeddy" "Jerome Maloberti" "John Else" "Jon Ludlam" "Thomas Sanders" "Mike McClurg" ] diff --git a/xen-api-client-async.opam.template b/xen-api-client-async.opam.template new file mode 100644 index 0000000000..6aa8a31205 --- /dev/null +++ b/xen-api-client-async.opam.template @@ -0,0 +1,32 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "David Scott" "Anil Madhavapeddy" "Jerome Maloberti" "John Else" "Jon Ludlam" "Thomas Sanders" "Mike McClurg" ] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +tags: [ + "org:xapi-project" +] +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" + "async" {>= "v0.9.0"} + "async_unix" + "base-threads" + "cohttp" {>= "0.22.0"} + "core" + "rpclib" + "uri" + "xen-api-client" + "xmlm" +] +synopsis: + "Xen-API client library for remotely-controlling a xapi host" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xen-api-client-lwt.opam b/xen-api-client-lwt.opam index 81633c40c2..3ac1592eca 100644 --- a/xen-api-client-lwt.opam +++ b/xen-api-client-lwt.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "David Scott" "Anil Madhavapeddy" "Jerome Maloberti" "John Else" "Jon Ludlam" "Thomas Sanders" "Mike McClurg" ] diff --git a/xen-api-client-lwt.opam.template b/xen-api-client-lwt.opam.template new file mode 100644 index 0000000000..81633c40c2 --- /dev/null +++ b/xen-api-client-lwt.opam.template @@ -0,0 +1,33 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "David Scott" "Anil Madhavapeddy" "Jerome Maloberti" "John Else" "Jon Ludlam" "Thomas Sanders" "Mike McClurg" ] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +tags: [ + "org:xapi-project" +] +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" {>= "1.4"} + "cohttp" {>= "0.22.0"} + "cohttp-lwt-unix" + "cstruct" {>= "1.0.1"} + "lwt" {>= "3.0.0"} + "lwt_ssl" + "re" + "rpclib" + "uri" + "xen-api-client" + "xmlm" +] +synopsis: + "Xen-API client library for remotely-controlling a xapi host" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xen-api-client.opam b/xen-api-client.opam index 3b2b8b6f27..0aa625df24 100644 --- a/xen-api-client.opam +++ b/xen-api-client.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: [ "David Scott" "Anil Madhavapeddy" "Jerome Maloberti" "John Else" "Jon Ludlam" "Thomas Sanders" "Mike McClurg" ] diff --git a/xen-api-client.opam.template b/xen-api-client.opam.template new file mode 100644 index 0000000000..3b2b8b6f27 --- /dev/null +++ b/xen-api-client.opam.template @@ -0,0 +1,34 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: [ "David Scott" "Anil Madhavapeddy" "Jerome Maloberti" "John Else" "Jon Ludlam" "Thomas Sanders" "Mike McClurg" ] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/xapi-project/xen-api" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +tags: [ + "org:xapi-project" +] +build: [ + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +depends: [ + "ocaml" + "dune" {>= "2.0"} + "astring" + "cohttp" {>= "0.22.0"} + "re" + "rpclib" + "xapi-rrd" + "uri" + "uuid" + "xapi-client" + "xapi-types" + "xmlm" + "ounit2" {with-test} +] +synopsis: + "Xen-API client library for remotely-controlling a xapi host" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/xen-api-sdk.opam b/xen-api-sdk.opam index ee1ca829e1..588eb1a5a5 100644 --- a/xen-api-sdk.opam +++ b/xen-api-sdk.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead + opam-version: "2.0" name: "xen-api-sdk" synopsis: "Xen API SDK generation code" diff --git a/xen-api-sdk.opam.template b/xen-api-sdk.opam.template new file mode 100644 index 0000000000..ee1ca829e1 --- /dev/null +++ b/xen-api-sdk.opam.template @@ -0,0 +1,20 @@ +opam-version: "2.0" +name: "xen-api-sdk" +synopsis: "Xen API SDK generation code" +maintainer: "xen-api@lists.xen.org" +authors: [ "xen-api@lists.xen.org" ] +license: "BSD-2-Clause" +homepage: "https://github.com/xapi-project/xen-api" +bug-reports: "https://github.com/xapi-project/xen-api/issues" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +url { + src: "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} +tags: [ "org:xapi-project" ] +build: [[ "dune" "build" "-p" name "-j" jobs]] +depends: [ + "dune" + "xapi-datamodel" + "mustache" + "astring" +] diff --git a/xml-light2.opam b/xml-light2.opam index 1c6db3e0ca..da5264648d 100644 --- a/xml-light2.opam +++ b/xml-light2.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/xml-light2.opam.template b/xml-light2.opam.template new file mode 100644 index 0000000000..1c6db3e0ca --- /dev/null +++ b/xml-light2.opam.template @@ -0,0 +1,22 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] + +available: [ os = "linux" ] +depends: [ + "ocaml" + "dune" + "xmlm" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} diff --git a/zstd.opam b/zstd.opam index 8e7be0f378..59901c80ee 100644 --- a/zstd.opam +++ b/zstd.opam @@ -1,3 +1,5 @@ +# This file is generated by dune, edit dune-project instead +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" opam-version: "2.0" maintainer: "xen-api@lists.xen.org" authors: "xen-api@lists.xen.org" diff --git a/zstd.opam.template b/zstd.opam.template new file mode 100644 index 0000000000..8e7be0f378 --- /dev/null +++ b/zstd.opam.template @@ -0,0 +1,22 @@ +opam-version: "2.0" +maintainer: "xen-api@lists.xen.org" +authors: "xen-api@lists.xen.org" +homepage: "https://xapi-project.github.io/" +bug-reports: "https://github.com/xapi-project/xen-api.git" +dev-repo: "git+https://github.com/xapi-project/xen-api.git" +build: [[ "dune" "build" "-p" name "-j" jobs ]] + +available: [ os = "linux" ] +depends: [ + "ocaml" + "dune" + "xapi-compression" +] +synopsis: "Library required by xapi" +description: """ +These libraries are provided for backwards compatibility only. +No new code should use these libraries.""" +url { + src: + "https://github.com/xapi-project/xen-api/archive/master.tar.gz" +} From e3bbedd7dde05384ca667893a51a985d4948e32f Mon Sep 17 00:00:00 2001 From: Christian Lindig Date: Mon, 22 Jan 2024 15:05:17 +0000 Subject: [PATCH 09/12] CA-386920 destroy VTPM at the end of a migration directly (#5379) Co-authored-by: Christian Lindig --- ocaml/xapi/db_gc_util.ml | 3 ++- ocaml/xapi/xapi_vm_migrate.ml | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ocaml/xapi/db_gc_util.ml b/ocaml/xapi/db_gc_util.ml index 3548aef164..3a9d8f7485 100644 --- a/ocaml/xapi/db_gc_util.ml +++ b/ocaml/xapi/db_gc_util.ml @@ -256,7 +256,8 @@ let gc_vtpms ~__context = Db.VTPM.get_all ~__context |> List.iter (fun vtpm -> let is_valid = - valid_ref __context (Db.VTPM.get_VM ~__context ~self:vtpm) + valid_ref __context vtpm + && valid_ref __context (Db.VTPM.get_VM ~__context ~self:vtpm) in if not is_valid then ( diff --git a/ocaml/xapi/xapi_vm_migrate.ml b/ocaml/xapi/xapi_vm_migrate.ml index d89ca3b6d8..f987851400 100644 --- a/ocaml/xapi/xapi_vm_migrate.ml +++ b/ocaml/xapi/xapi_vm_migrate.ml @@ -1632,6 +1632,11 @@ let migrate_send' ~__context ~vm ~dest ~live:_ ~vdi_map ~vif_map ~vgpu_map if (not is_intra_pool) && not copy then ( info "Destroying VM ref=%s uuid=%s" (Ref.string_of vm) vm_uuid ; Xapi_vm_lifecycle.force_state_reset ~__context ~self:vm ~value:`Halted ; + let vtpms = + vm_and_snapshots + |> List.concat_map (fun self -> Db.VM.get_VTPMs ~__context ~self) + in + List.iter (fun self -> Xapi_vtpm.destroy ~__context ~self) vtpms ; List.iter (fun self -> Db.VM.destroy ~__context ~self) vm_and_snapshots ) ; SMPERF.debug "vm.migrate_send exiting vm:%s" vm_uuid ; From 7d65df9e877edcbef94d807250fafba934cb1179 Mon Sep 17 00:00:00 2001 From: Christian Lindig Date: Fri, 19 Jan 2024 16:20:03 +0000 Subject: [PATCH 10/12] CA-387560 swtpm-wrapper: create PID file after socket The toolstack waits for the PID file as a sign that swtpm is ready. Hence, create the socket first and PID file next. Signed-off-by: Christian Lindig --- ocaml/xenopsd/scripts/swtpm-wrapper | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ocaml/xenopsd/scripts/swtpm-wrapper b/ocaml/xenopsd/scripts/swtpm-wrapper index 7853d26718..dfb322e645 100755 --- a/ocaml/xenopsd/scripts/swtpm-wrapper +++ b/ocaml/xenopsd/scripts/swtpm-wrapper @@ -154,10 +154,6 @@ def main(argv): tpm_exe = '/usr/bin/swtpm' uid = pwd.getpwnam('swtpm_base').pw_uid + domid - swtpm_pid_full = os.path.join(tpm_dir, "swtpm-%d.pid" % domid) - open(swtpm_pid_full, 'wb').close() - os.chown(swtpm_pid_full, uid, uid) - if depriv: tpm_args = ["--chroot", tpm_dir, "--runas", str(uid)] @@ -189,9 +185,14 @@ def main(argv): swtpm_sock = os.path.join(tpm_dir, "swtpm-sock") swtpm_pid = os.path.join(tpm_path, "swtpm-%d.pid" % domid) - sock = make_socket(swtpm_sock) + # the PID file is taken by the toolstack as signal that the socket + # is ready + swtpm_pid_full = os.path.join(tpm_dir, "swtpm-%d.pid" % domid) + open(swtpm_pid_full, 'wb').close() + os.chown(swtpm_pid_full, uid, uid) + if (tpm_state_scheme == "dir"): state_param = "dir=%s" % tpm_path else: From 23f7788f416db8bc1f14d47749bb34afbc0fbea1 Mon Sep 17 00:00:00 2001 From: Fei Su Date: Wed, 20 Dec 2023 06:51:06 +0000 Subject: [PATCH 11/12] CP-45970 remove qemu_trad_image.py Signed-off-by: Fei Su --- ocaml/xenopsd/scripts/qemu-wrapper | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/ocaml/xenopsd/scripts/qemu-wrapper b/ocaml/xenopsd/scripts/qemu-wrapper index 367c6df48f..deb8fc7e8d 100644 --- a/ocaml/xenopsd/scripts/qemu-wrapper +++ b/ocaml/xenopsd/scripts/qemu-wrapper @@ -15,7 +15,6 @@ import os import sys import socket -import tempfile import errno import stat import pwd @@ -28,7 +27,6 @@ from resource import getrlimit, RLIMIT_CORE, RLIMIT_FSIZE, setrlimit import xen.lowlevel.xs as xs -import qemu_trad_image # # Constants from Xen's public/hvm/e820.h @@ -248,20 +246,7 @@ def main(argv): if p == "-loadvm": loadvm_path = qemu_args[n+1] - if qemu_trad_image.is_trad_image(loadvm_path): - print("QEMU Traditional image detected. Upgrading...") - - loadvm_file = open(loadvm_path, "rb") - incoming_file = tempfile.TemporaryFile() - upgraded_save_image = qemu_trad_image.convert_file(loadvm_file, - incoming_file, - qemu_args) - loadvm_file.close() - - incoming_file.seek(0) - incoming_fd = os.dup(incoming_file.fileno()) - else: - incoming_fd = os.open(loadvm_path, os.O_RDONLY) + incoming_fd = os.open(loadvm_path, os.O_RDONLY) qemu_args[n] = "-incoming" qemu_args[n+1] = "fd:%d" % incoming_fd open_fds.append(incoming_fd) From cac321ad4ff67be86dd262e23837b96cdd8bdfe5 Mon Sep 17 00:00:00 2001 From: Ashwin Date: Tue, 23 Jan 2024 17:01:25 +0530 Subject: [PATCH 12/12] CP-47043: Port usb_reset.py to python3 shebang changed to python3, made necessary changes to get result as list,function name load_device_ids,fixed ValueError: can't have unbuffered text I/O by using RAW unbuffered I/O. Signed-off-by: Ashwinh --- scripts/usb_reset.py | 51 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/scripts/usb_reset.py b/scripts/usb_reset.py index c0141c84fe..fb263f1549 100755 --- a/scripts/usb_reset.py +++ b/scripts/usb_reset.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (C) Citrix Systems Inc. # @@ -122,7 +122,7 @@ def load_device_ids(device): ids_path = get_ids_path(device) try: with open(ids_path) as f: - uid, gid = map(int, f.readline().split()) + uid, gid = list(map(int, f.readline().split())) except (IOError, ValueError) as e: log.error("Failed to load device ids: {}".format(str(e))) @@ -157,7 +157,7 @@ def dev_path(device): exit(1) -def get_ctl(path, mode): +def get_ctl(path, mode): # type:(str, str) -> str """get the string to control device access for cgroup :param path: the device file path :param mode: either "r" or "rw" @@ -200,7 +200,23 @@ def deny_device(path, domid): _device_ctl(path, domid, False) -def setup_cgroup(domid, pid): +def setup_cgroup(domid, pid): # type:(str, str) -> None + """ + Associate the given process id (pid) with the given Linux kernel control group + and limit it's device access to only /dev/null. + + :param domid (str): The control group ID string (passed on from the command line) + :param pid (str): The process ID string (passed on from the command line) + + If the control group directory does not exist yet, the control group is created. + + - The pid goes into the file "tasks" to associate the process with the cgroup. + - Deny device access by default by writing "a" to devices.deny. + - Grant read-write access to /dev/null, writing it's device IDs to devices.allow. + + If any error occur during the setup process, the error is logged and + the program exits with a status code of 1. + """ cg_dir = get_cg_dir(domid) try: @@ -212,17 +228,32 @@ def setup_cgroup(domid, pid): try: # unbuffered write to ensure each one is flushed immediately - with open(cg_dir + "/tasks", "w", 0) as tasks, \ - open(cg_dir + "/devices.deny", "w", 0) as deny, \ - open(cg_dir + "/devices.allow", "w", 0) as allow: + # to the kernel's control group filesystem: + # + # The order of writes is likely not important, but the writes + # may have to be a single write() system call for the entire string. + # + # Using the unbuffered Raw IO mode, we know the write was done + # in exactly this way by the write function call itself, not later. + # + # With small writes like this , splitting them because of overflowing the + # buffer is not expected to happen. To stay safe and keep using unbuffered I/O + # We have to migrate to binary mode in python3,as python3 supports unbuffered + # raw I/O in binary mode. + # + with open(cg_dir + "/tasks", "wb", 0) as tasks, \ + open(cg_dir + "/devices.deny", "wb", 0) as deny, \ + open(cg_dir + "/devices.allow", "wb", 0) as allow: # deny all - deny.write("a") + deny.write(b"a") + + # To write bytes, we've to encode the strings to bytes below: # grant rw access to /dev/null by default - allow.write(get_ctl("/dev/null", "rw")) + allow.write(get_ctl("/dev/null", "rw").encode()) - tasks.write(str(pid)) + tasks.write(str(pid).encode()) except (IOError, OSError, RuntimeError) as e: log.error("Failed to setup cgroup: {}".format(str(e)))