opam-version: "2.0"
maintainer: "David Kaloper Meršinjak <david@numm.org>"
authors: ["David Kaloper Meršinjak <david@numm.org>"]
homepage: "https://github.com/pqwy/mirage-os-shim"
doc: "https://pqwy.github.io/mirage-os-shim/doc"
license: "ISC"
dev-repo: "git+https://github.com/pqwy/mirage-os-shim.git"
bug-reports: "https://github.com/pqwy/mirage-os-shim/issues"
build: [
  "ocaml" "pkg/pkg.ml" "build"
          "--pinned" "%{pinned}%"
          "--with-mirage-unix" "%{mirage-unix:installed}%"
          "--with-mirage-xen" "%{mirage-xen:installed}%"
          "--with-mirage-solo5" "%{mirage-solo5:installed}%"
]
depends: [
  "ocaml" {>= "4.02.0" & < "4.06.0"}
  "ocamlfind" {build}
  "ocamlbuild" {build}
  "topkg" {build}
  "mirage-unix" {>= "2.4.0"}
]
depopts: [
  "mirage-solo5"
  "mirage-xen"
]
conflicts: [
  "mirage-types" {>= "3.0.0"}
  "mirage-solo5" {>= "0.2.0"}
  "mirage-xen" {>= "3.0.0"}
  "mirage-unix" {>= "3.0.0"}
]
synopsis: "Portable shim for MirageOS APIs"
description: """
mirage-os-shim is the intersection of the Mirage OS APIs exported under the `OS`
modules by various Mirage backends. It shims out this interface under the same
`cmi`, and installs several implementations, that pass through to their
respective backends.

Clients need to be compiled against the common `mirage_OS.cmi`, and use the
module `Mirage_OS`. Final applications need to be linked using `ocamlfind`, and
have to define one of the `ocamlfind` predicates corresponding to the actual
`OS` implementations: `unix`, `xen`, or `solo5`.

When using `ocamlbuild`, this is
`ocamlfind -use-ocamlfind -tag 'predicate(unix)'` or similar.

**WARNING** Direct access to the `OS` interface is largely deprecated. The
interface is pretty volatile. It is highly likely that you, in fact, do not need
this package at all.

mirage-os-shim is distributed under the ISC license."""
url {
  src:
    "https://github.com/pqwy/mirage-os-shim/releases/download/v0.0.1/mirage-os-shim-0.0.1.tbz"
  checksum: "md5=e9fe8b2703a664aa854c82b0a47dd82d"
}
