From 9023077e071b2224fbf83933048006f8bad332d6 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Thu, 3 Aug 2017 11:55:24 +0200 Subject: [PATCH 01/32] Update opam dependencies Signed-off-by: Thomas Gazagnaire --- vpnkit.opam | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/vpnkit.opam b/vpnkit.opam index 79ae9e3a8..9e15b3185 100644 --- a/vpnkit.opam +++ b/vpnkit.opam @@ -31,39 +31,39 @@ depends: [ "jbuilder" {build} "alcotest" {test} "result" - "tar-format" {= "0.6.1"} + "tar" {>= "0.8.0"} "ipaddr" - "lwt" { >= "2.7.0" } - "uwt" { >= "0.0.4" } - "tcpip" { = "999" } - "pcap-format" - "dns" { = "999" } - "dnssd" { >= "0.2" } + "lwt" {>= "2.7.0"} + "uwt" {>= "0.0.4"} + "tcpip" {>= "3.1.4"} + "dns" {>= "0.19.1"} + "dnssd" {>= "0.2"} "dns-forward" - "datakit-server" - "hashcons" {= "1.0.1"} - "pcap-format" { >= "0.4.0" } + "cstruct-lwt" {>= "3.0.0"} + "datakit-server" {>= "0.11.0"} + "datakit-server-9p" {>= "0.11.0"} + "hashcons" {>= "1.0.1"} + "pcap-format" {>= "0.4.0"} "cmdliner" - "charrua-core" { >= "0.3" } - "named-pipe" { >= "0.4.0" } - "hvsock" { >= "0.13.0" } + "charrua-core" {>= "0.3"} + "named-pipe" {>= "0.4.0"} + "hvsock" {>= "0.13.0"} "asl" "win-eventlog" - "fd-send-recv" + "fd-send-recv" {>= "1.0.3"} "logs" "fmt" "astring" - "mirage-flow" { = "1.1.0" } + "mirage-flow-lwt" {>= "1.4.0"} + "mirage-time-lwt" {>= "1.1.0"} + "mirage-protocols" {>= "1.1.0"} + "mirage-channel" {>= "3.0.1"} + "mirage-console-unix" + "mirage-clock-unix" "mirage-http" - "cohttp" - "channel" - "mirage-types-lwt" { = "2.8.999" } - "protocol-9p" { = "0.8.0" } - "cstruct" {< "3.0.0"} - "ounit" {test} - "alcotest" {test} - "mirage-vnetif" { = "0.2.0" } - "mirage-conduit" { = "2.2.0" } + "cohttp" {>= "0.22.0"} + "protocol-9p-unix" {>= "0.11.2"} + "mirage-vnetif" {>= "0.4.0"} "uuidm" "ezjsonm" ] From 27050643da15da43901cc8e4ca61e384080fddaf Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Mon, 24 Jul 2017 15:06:25 +0200 Subject: [PATCH 02/32] Update dev dependencies Remove the ones which have been released and add new ones Signed-off-by: Thomas Gazagnaire --- repo/darwin/packages/dev/channel.1.1.0/descr | 3 - repo/darwin/packages/dev/channel.1.1.0/opam | 32 --------- repo/darwin/packages/dev/channel.1.1.0/url | 2 - .../packages/dev/charrua-core.999/descr | 36 ---------- .../darwin/packages/dev/charrua-core.999/opam | 24 ------- repo/darwin/packages/dev/charrua-core.999/url | 1 - .../darwin/packages/dev/charrua-core.dev/opam | 34 ++++++++++ repo/darwin/packages/dev/charrua-core.dev/url | 1 + .../packages/dev/dns-forward.0.8.4/descr | 7 -- .../packages/dev/dns-forward.0.8.4/findlib | 2 - .../packages/dev/dns-forward.0.8.4/opam | 33 --------- .../darwin/packages/dev/dns-forward.0.8.4/url | 2 - repo/darwin/packages/dev/dns.999/descr | 5 -- repo/darwin/packages/dev/dns.999/opam | 67 ------------------- repo/darwin/packages/dev/dns.999/url | 1 - repo/darwin/packages/dev/dnssd.0.4/descr | 8 --- repo/darwin/packages/dev/dnssd.0.4/findlib | 1 - repo/darwin/packages/dev/dnssd.0.4/opam | 26 ------- repo/darwin/packages/dev/dnssd.0.4/url | 2 - .../packages/dev/fd-send-recv.1.0.3/descr | 1 - .../packages/dev/fd-send-recv.1.0.3/findlib | 1 - .../packages/dev/fd-send-recv.1.0.3/opam | 18 ----- .../packages/dev/fd-send-recv.1.0.3/url | 2 - repo/darwin/packages/dev/hvsock.0.13.0/descr | 5 -- .../darwin/packages/dev/hvsock.0.13.0/findlib | 3 - repo/darwin/packages/dev/hvsock.0.13.0/opam | 36 ---------- repo/darwin/packages/dev/hvsock.0.13.0/url | 2 - .../dev/mirage-types-lwt.2.8.999/descr | 14 ---- .../dev/mirage-types-lwt.2.8.999/opam | 16 ----- .../packages/dev/mirage-types.2.8.999/descr | 1 - .../packages/dev/mirage-types.2.8.999/opam | 20 ------ .../packages/dev/mirage-types.2.8.999/url | 1 - repo/darwin/packages/dev/tcpip.999/descr | 5 -- repo/darwin/packages/dev/tcpip.999/opam | 55 --------------- repo/darwin/packages/dev/tcpip.999/url | 1 - repo/darwin/packages/dev/tcpip.dev/opam | 52 ++++++++++++++ repo/darwin/packages/dev/tcpip.dev/url | 1 + repo/win32/packages/dev/channel.1.1.0 | 1 - repo/win32/packages/dev/charrua-core.999 | 1 - repo/win32/packages/dev/charrua-core.dev | 1 + repo/win32/packages/dev/dns-forward.0.8.4 | 1 - repo/win32/packages/dev/dns.999 | 1 - repo/win32/packages/dev/dnssd.0.4 | 1 - repo/win32/packages/dev/fd-send-recv.1.0.3 | 1 - repo/win32/packages/dev/hvsock.0.13.0 | 1 - repo/win32/packages/dev/io-page.1.6.1/descr | 1 - repo/win32/packages/dev/io-page.1.6.1/opam | 29 -------- repo/win32/packages/dev/io-page.1.6.1/url | 2 - .../packages/dev/mirage-types-lwt.2.8.999 | 1 - repo/win32/packages/dev/mirage-types.2.8.999 | 1 - repo/win32/packages/dev/tcpip.999 | 1 - repo/win32/packages/dev/tcpip.dev | 1 + 52 files changed, 90 insertions(+), 475 deletions(-) delete mode 100644 repo/darwin/packages/dev/channel.1.1.0/descr delete mode 100644 repo/darwin/packages/dev/channel.1.1.0/opam delete mode 100644 repo/darwin/packages/dev/channel.1.1.0/url delete mode 100644 repo/darwin/packages/dev/charrua-core.999/descr delete mode 100644 repo/darwin/packages/dev/charrua-core.999/opam delete mode 100644 repo/darwin/packages/dev/charrua-core.999/url create mode 100644 repo/darwin/packages/dev/charrua-core.dev/opam create mode 100644 repo/darwin/packages/dev/charrua-core.dev/url delete mode 100644 repo/darwin/packages/dev/dns-forward.0.8.4/descr delete mode 100644 repo/darwin/packages/dev/dns-forward.0.8.4/findlib delete mode 100644 repo/darwin/packages/dev/dns-forward.0.8.4/opam delete mode 100644 repo/darwin/packages/dev/dns-forward.0.8.4/url delete mode 100644 repo/darwin/packages/dev/dns.999/descr delete mode 100644 repo/darwin/packages/dev/dns.999/opam delete mode 100644 repo/darwin/packages/dev/dns.999/url delete mode 100644 repo/darwin/packages/dev/dnssd.0.4/descr delete mode 100644 repo/darwin/packages/dev/dnssd.0.4/findlib delete mode 100644 repo/darwin/packages/dev/dnssd.0.4/opam delete mode 100644 repo/darwin/packages/dev/dnssd.0.4/url delete mode 100644 repo/darwin/packages/dev/fd-send-recv.1.0.3/descr delete mode 100644 repo/darwin/packages/dev/fd-send-recv.1.0.3/findlib delete mode 100644 repo/darwin/packages/dev/fd-send-recv.1.0.3/opam delete mode 100644 repo/darwin/packages/dev/fd-send-recv.1.0.3/url delete mode 100644 repo/darwin/packages/dev/hvsock.0.13.0/descr delete mode 100644 repo/darwin/packages/dev/hvsock.0.13.0/findlib delete mode 100644 repo/darwin/packages/dev/hvsock.0.13.0/opam delete mode 100644 repo/darwin/packages/dev/hvsock.0.13.0/url delete mode 100644 repo/darwin/packages/dev/mirage-types-lwt.2.8.999/descr delete mode 100644 repo/darwin/packages/dev/mirage-types-lwt.2.8.999/opam delete mode 100644 repo/darwin/packages/dev/mirage-types.2.8.999/descr delete mode 100644 repo/darwin/packages/dev/mirage-types.2.8.999/opam delete mode 100644 repo/darwin/packages/dev/mirage-types.2.8.999/url delete mode 100644 repo/darwin/packages/dev/tcpip.999/descr delete mode 100644 repo/darwin/packages/dev/tcpip.999/opam delete mode 100644 repo/darwin/packages/dev/tcpip.999/url create mode 100644 repo/darwin/packages/dev/tcpip.dev/opam create mode 100644 repo/darwin/packages/dev/tcpip.dev/url delete mode 120000 repo/win32/packages/dev/channel.1.1.0 delete mode 120000 repo/win32/packages/dev/charrua-core.999 create mode 120000 repo/win32/packages/dev/charrua-core.dev delete mode 120000 repo/win32/packages/dev/dns-forward.0.8.4 delete mode 120000 repo/win32/packages/dev/dns.999 delete mode 120000 repo/win32/packages/dev/dnssd.0.4 delete mode 120000 repo/win32/packages/dev/fd-send-recv.1.0.3 delete mode 120000 repo/win32/packages/dev/hvsock.0.13.0 delete mode 100644 repo/win32/packages/dev/io-page.1.6.1/descr delete mode 100644 repo/win32/packages/dev/io-page.1.6.1/opam delete mode 100644 repo/win32/packages/dev/io-page.1.6.1/url delete mode 120000 repo/win32/packages/dev/mirage-types-lwt.2.8.999 delete mode 120000 repo/win32/packages/dev/mirage-types.2.8.999 delete mode 120000 repo/win32/packages/dev/tcpip.999 create mode 120000 repo/win32/packages/dev/tcpip.dev diff --git a/repo/darwin/packages/dev/channel.1.1.0/descr b/repo/darwin/packages/dev/channel.1.1.0/descr deleted file mode 100644 index d099343d8..000000000 --- a/repo/darwin/packages/dev/channel.1.1.0/descr +++ /dev/null @@ -1,3 +0,0 @@ -MirageOS channels - -An implementation of MirageOS' V1.CHANNEL using page aligned buffers. diff --git a/repo/darwin/packages/dev/channel.1.1.0/opam b/repo/darwin/packages/dev/channel.1.1.0/opam deleted file mode 100644 index d373f7afe..000000000 --- a/repo/darwin/packages/dev/channel.1.1.0/opam +++ /dev/null @@ -1,32 +0,0 @@ -opam-version: "1.2" -maintainer: "Thomas Gazagnaire " -authors: "Thomas Gazagnaire " -homepage: "https://github.com/mirage/mirage-channel" -bug-reports: "https://github.com/mirage/mirage-channel/issues" -license: "ISC" -dev-repo: "https://github.com/mirage/mirage-channel.git" - -build: [ - ["./configure" "--prefix" prefix] - [make] -] -build-test: [ - ["./configure" "--enable-tests"] - [make "test"] -] -install: [make "install"] -remove: ["ocamlfind" "remove" "channel"] - -depends: [ - "ocamlfind" {build} - "mirage-types-lwt" - "io-page" - "lwt" {>= "2.4.7"} - "cstruct" - "logs" - "alcotest" {test} - "ounit" {test} - "mirage-flow" {test} - "ocamlbuild" {build} -] -conflicts: [ "tcpip" {<"2.5.0"} ] diff --git a/repo/darwin/packages/dev/channel.1.1.0/url b/repo/darwin/packages/dev/channel.1.1.0/url deleted file mode 100644 index c432c9388..000000000 --- a/repo/darwin/packages/dev/channel.1.1.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/mirage-channel/archive/v1.1.0.tar.gz" -checksum: "1e68eb89a3a3872068377a0e5567b192" diff --git a/repo/darwin/packages/dev/charrua-core.999/descr b/repo/darwin/packages/dev/charrua-core.999/descr deleted file mode 100644 index 65681c238..000000000 --- a/repo/darwin/packages/dev/charrua-core.999/descr +++ /dev/null @@ -1,36 +0,0 @@ -Charrua DHCP core library. - -[charrua-core](http://www.github.com/haesbaert/charrua-core) is an -_ISC-licensed_ DHCP library implementation in ocaml. - -It provides basically two modules, a `Dhcp` responsible for parsing and -constructing DHCP messages and a `Dhcp_server` module used for constructing DHCP -servers. - -[charrua-unix](http://www.github.com/haesbaert/charrua-unix) is a Unix DHCP -server based on charrua-core. - -[mirage](https://github.com/mirage/mirage-skeleton/tree/master/dhcp) is a Mirage -DHCP unikernel server based on charrua-core. - -You can browse the API for [charrua-core] at -http://haesbaert.github.io/charrua-core/api - -Features - -* Dhcp_server supports a stripped down ISC dhcpd.conf, so you can probably just - use your old dhcpd.conf, it also supports manual configuration building in - ocaml. -* Logic/sequencing is agnostic of IO and platform, so it can run on Unix as a - process, as a Mirage unikernel or anything else. -* Dhcp_wire provides marshalling and unmarshalling utilities for DHCP, it is the - base for Dhcp_server. -* All DHCP options are supported at the time of this writing. -* Code is purely applicative. -* It's in ocaml, so it's pretty cool. - -The name `charrua` is a reference to the, now extinct, semi-nomadic people of -southern South America. - -This project became one of the [Mirage Pioneer] -(https://github.com/mirage/mirage-www/wiki/Pioneer-Projects) projects. diff --git a/repo/darwin/packages/dev/charrua-core.999/opam b/repo/darwin/packages/dev/charrua-core.999/opam deleted file mode 100644 index a6240a9c6..000000000 --- a/repo/darwin/packages/dev/charrua-core.999/opam +++ /dev/null @@ -1,24 +0,0 @@ -opam-version: "1.2" -name: "charrua-core" -version: "0.3" -maintainer: "Christiano F. Haesbaert " -authors: "Christiano F. Haesbaert " -homepage: "https://github.com/haesbaert/charrua-core" -bug-reports: "https://github.com/haesbaert/charrua-core/issues" -license: "ISC" -dev-repo: "https://github.com/haesbaert/charrua-core.git" -available: [ocaml-version >= "4.01" & opam-version >= "1.2"] -build: [ - ["sh" "build.sh"] -] -depends: [ - "ocamlfind" - {build} - "ppx_sexp_conv" - "ppx_type_conv" - "cstruct" {>= "1.9"} - "sexplib" - "menhir" - "ipaddr" - "tcpip" -] diff --git a/repo/darwin/packages/dev/charrua-core.999/url b/repo/darwin/packages/dev/charrua-core.999/url deleted file mode 100644 index 200293347..000000000 --- a/repo/darwin/packages/dev/charrua-core.999/url +++ /dev/null @@ -1 +0,0 @@ -git: "https://github.com/djs55/charrua-core.git#singleton-lease" diff --git a/repo/darwin/packages/dev/charrua-core.dev/opam b/repo/darwin/packages/dev/charrua-core.dev/opam new file mode 100644 index 000000000..fd5af259a --- /dev/null +++ b/repo/darwin/packages/dev/charrua-core.dev/opam @@ -0,0 +1,34 @@ +opam-version: "1.2" +name: "charrua-core" +maintainer: "Christiano F. Haesbaert " +authors: "Christiano F. Haesbaert " +license: "ISC" +homepage: "https://github.com/mirage/charrua-core" +bug-reports: "https://github.com/mirage/charrua-core/issues" +dev-repo: "https://github.com/mirage/charrua-core.git" +doc: "https://mirage.github.io/charrua-core/api" + +available: [ocaml-version >= "4.03" & opam-version >= "1.2"] + +build: [ + ["jbuilder" "subst" "-n" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +build-test: [ + ["jbuilder" "runtest" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "ppx_sexp_conv" {build} + "ppx_cstruct" {build} + "menhir" {build} + "cstruct" {>= "3.0.1"} + "sexplib" + "ipaddr" {>= "2.5.0"} + "tcpip" {>= "3.1.0"} + "rresult" + "io-page-unix" {test} + "cstruct-unix" {test} +] diff --git a/repo/darwin/packages/dev/charrua-core.dev/url b/repo/darwin/packages/dev/charrua-core.dev/url new file mode 100644 index 000000000..dc4e37317 --- /dev/null +++ b/repo/darwin/packages/dev/charrua-core.dev/url @@ -0,0 +1 @@ +git: "https://github.com/mirage/charrua-core.git" diff --git a/repo/darwin/packages/dev/dns-forward.0.8.4/descr b/repo/darwin/packages/dev/dns-forward.0.8.4/descr deleted file mode 100644 index 7f2a0386b..000000000 --- a/repo/darwin/packages/dev/dns-forward.0.8.4/descr +++ /dev/null @@ -1,7 +0,0 @@ -DNS resolution and forwarding - -A library to help the construction of DNS resolvers or forwarding servers. -Given a configuration which names upstream resolvers and policy (e.g. only -use these servers for names within this domain), allow the creation of -Resolvers which answer DNS questions and of forwarding servers which listen -for requests and forward them appropriately. diff --git a/repo/darwin/packages/dev/dns-forward.0.8.4/findlib b/repo/darwin/packages/dev/dns-forward.0.8.4/findlib deleted file mode 100644 index d1712a9b1..000000000 --- a/repo/darwin/packages/dev/dns-forward.0.8.4/findlib +++ /dev/null @@ -1,2 +0,0 @@ -dns-forward -dns-forward.lwt-unix diff --git a/repo/darwin/packages/dev/dns-forward.0.8.4/opam b/repo/darwin/packages/dev/dns-forward.0.8.4/opam deleted file mode 100644 index 34c040ad9..000000000 --- a/repo/darwin/packages/dev/dns-forward.0.8.4/opam +++ /dev/null @@ -1,33 +0,0 @@ -opam-version: "1.2" -maintainer: "dave@recoil.org" -authors: ["David Scott"] -license: "ISC" -homepage: "https://github.com/djs55/ocaml-dns-forward" -bug-reports: "https://github.com/djs55/ocaml-dns-forward" -dev-repo: "https://github.com/djs55/ocaml-dns-forward" -doc: "https://github.com/djs55/ocaml-dns-forward" - -build: [ - make -] -build-test: [ - make "test" -] - -depends: [ - "ocamlfind" {build} - "jbuilder" {build} - "mirage-flow" {<= "1.1.0"} - "channel" - "dns" - "rresult" "astring" "fmt" - "cstruct" {>= "2.2"} - "result" - "lwt" {>= "2.6.0"} - "logs" {>= "0.5.0"} - "mtime" - "sexplib" - "ipaddr" - "alcotest" {test} -] -available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/dev/dns-forward.0.8.4/url b/repo/darwin/packages/dev/dns-forward.0.8.4/url deleted file mode 100644 index 006d0b129..000000000 --- a/repo/darwin/packages/dev/dns-forward.0.8.4/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/djs55/ocaml-dns-forward/archive/v0.8.4.tar.gz" -checksum: "4b675bfdf71f004aaf9c6b604e0335b9" diff --git a/repo/darwin/packages/dev/dns.999/descr b/repo/darwin/packages/dev/dns.999/descr deleted file mode 100644 index df82d585f..000000000 --- a/repo/darwin/packages/dev/dns.999/descr +++ /dev/null @@ -1,5 +0,0 @@ -DNS client and server implementation - -This is a pure OCaml implementation of the DNS protocol. It is intended to be a -reasonably high-performance implementation, but clarity is preferred rather -than low-level performance hacks. diff --git a/repo/darwin/packages/dev/dns.999/opam b/repo/darwin/packages/dev/dns.999/opam deleted file mode 100644 index dd83e70c7..000000000 --- a/repo/darwin/packages/dev/dns.999/opam +++ /dev/null @@ -1,67 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: [ - "Anil Madhavapeddy" - "Tim Deegan" - "Richard Mortier" - "Haris Rotsos" - "David Sheets" - "Thomas Gazagnaire" - "Luke Dunstan" - "David Scott" -] -homepage: "https://github.com/mirage/ocaml-dns" -bug-reports: "https://github.com/mirage/ocaml-dns/issues" -license: "ISC" -tags: ["org:mirage" "org:xapi-project"] -dev-repo: "https://github.com/mirage/ocaml-dns.git" -build: [ - [ - "ocaml" - "setup.ml" - "-configure" - "--prefix" - prefix - "--%{base-unix:enable}%-lwt" - "--%{mirage-types:enable}%-mirage" - ] - ["ocaml" "setup.ml" "-build"] -] -install: ["ocaml" "setup.ml" "-install"] -build-test: [ - [ - "ocaml" - "setup.ml" - "-configure" - "--prefix" - prefix - "--%{base-unix:enable}%-lwt" - "--%{mirage-types:enable}%-mirage" - "--enable-tests" - ] - ["ocaml" "setup.ml" "-build"] - ["ocaml" "setup.ml" "-test" "-runner" "sequential"] -] -remove: ["ocamlfind" "remove" "dns"] -depends: [ - "ocamlfind" {build} - "base-bytes" - "lwt" {>= "2.4.7"} - "cstruct" {>= "1.0.1"} - "ppx_tools" - "re" - "cmdliner" - "ipaddr" {>= "2.6.0"} - "uri" {>= "1.7.0"} - "base64" {>= "2.0.0"} - "mirage-profile" - "hashcons" - "ounit" {test} - "pcap-format" {test} -] -depopts: ["async" "base-unix" "mirage-types"] -conflicts: [ - "mirage-types" {< "1.2.0"} - "async" {< "112.24.00"} -] -available: [ocaml-version >= "4.02.0"] diff --git a/repo/darwin/packages/dev/dns.999/url b/repo/darwin/packages/dev/dns.999/url deleted file mode 100644 index 39fb5016e..000000000 --- a/repo/darwin/packages/dev/dns.999/url +++ /dev/null @@ -1 +0,0 @@ -git: "https://github.com/djs55/ocaml-dns.git#v0.18.1-parse-fixes" diff --git a/repo/darwin/packages/dev/dnssd.0.4/descr b/repo/darwin/packages/dev/dnssd.0.4/descr deleted file mode 100644 index 66c2a4f22..000000000 --- a/repo/darwin/packages/dev/dnssd.0.4/descr +++ /dev/null @@ -1,8 +0,0 @@ -OCaml DNS Service Discovery for macOS - -This library contains bindings to the functions in `dns_sd.h`, which -are used to perform generic DNS queries using the macOS resolver. -This is the best way to ensure that the query results match the -results obtained by other apps on OSX. - - diff --git a/repo/darwin/packages/dev/dnssd.0.4/findlib b/repo/darwin/packages/dev/dnssd.0.4/findlib deleted file mode 100644 index 6b2c0b0b6..000000000 --- a/repo/darwin/packages/dev/dnssd.0.4/findlib +++ /dev/null @@ -1 +0,0 @@ -dnssd diff --git a/repo/darwin/packages/dev/dnssd.0.4/opam b/repo/darwin/packages/dev/dnssd.0.4/opam deleted file mode 100644 index 52574922f..000000000 --- a/repo/darwin/packages/dev/dnssd.0.4/opam +++ /dev/null @@ -1,26 +0,0 @@ -opam-version: "1.2" -maintainer: "dave@recoil.org" -authors: ["David Scott"] -license: "ISC" -homepage: "https://github.com/djs55/ocaml-osx-dnssd" -dev-repo: "https://github.com/djs55/ocaml-osx-dnssd.git" -bug-reports: "https://github.com/djs55/ocaml-osx-dnssd/issues" -tags: [ - "org:mirage" -] - -depends: [ - "dns" - "lwt" - "logs" - "fmt" - "ocamlfind" {build} - "jbuilder" {build} - "alcotest" {test} -] - -build: [ - [ make "build" ] -] - -available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/dev/dnssd.0.4/url b/repo/darwin/packages/dev/dnssd.0.4/url deleted file mode 100644 index cf1bdf5f4..000000000 --- a/repo/darwin/packages/dev/dnssd.0.4/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/djs55/ocaml-osx-dnssd/archive/v0.4.tar.gz" -checksum: "ddc52f43bdac1140cfbe8a0780318ab9" diff --git a/repo/darwin/packages/dev/fd-send-recv.1.0.3/descr b/repo/darwin/packages/dev/fd-send-recv.1.0.3/descr deleted file mode 100644 index 6aa8713d1..000000000 --- a/repo/darwin/packages/dev/fd-send-recv.1.0.3/descr +++ /dev/null @@ -1 +0,0 @@ -Bindings for sendmsg/recvmsg that allow Unix.file_descrs to be sent and received over Unix domain sockets diff --git a/repo/darwin/packages/dev/fd-send-recv.1.0.3/findlib b/repo/darwin/packages/dev/fd-send-recv.1.0.3/findlib deleted file mode 100644 index a3ec98d05..000000000 --- a/repo/darwin/packages/dev/fd-send-recv.1.0.3/findlib +++ /dev/null @@ -1 +0,0 @@ -fd-send-recv diff --git a/repo/darwin/packages/dev/fd-send-recv.1.0.3/opam b/repo/darwin/packages/dev/fd-send-recv.1.0.3/opam deleted file mode 100644 index ec9073847..000000000 --- a/repo/darwin/packages/dev/fd-send-recv.1.0.3/opam +++ /dev/null @@ -1,18 +0,0 @@ -opam-version: "1.2" -maintainer: "dave@recoil.org" -authors: [ "David Scott" "David Sheets" "Vincent Bernardoff" "Euan Harris"] -license: "LGPL-2.1+ with OCaml linking exception" -homepage: "https://github.com/djs55/ocaml-fd-send-recv" -bug-reports: "https://github.com/djs55/ocaml-fd-send-recv/issues" -tags: [ - "org:mirage" - "org:xapi-project" -] -build: make -remove: [["ocamlfind" "remove" "fd-send-recv"]] -depends: [ - "ocamlfind" - "ocamlbuild" {build} -] -dev-repo: "git://github.com/xen-org/ocaml-fd-send-recv" -install: [make "install"] diff --git a/repo/darwin/packages/dev/fd-send-recv.1.0.3/url b/repo/darwin/packages/dev/fd-send-recv.1.0.3/url deleted file mode 100644 index 80756a2f0..000000000 --- a/repo/darwin/packages/dev/fd-send-recv.1.0.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/djs55/ocaml-fd-send-recv/archive/v1.0.3.tar.gz" -checksum: "d12d68eac374dd2f578cf60bfa25f566" diff --git a/repo/darwin/packages/dev/hvsock.0.13.0/descr b/repo/darwin/packages/dev/hvsock.0.13.0/descr deleted file mode 100644 index cd2f2faf7..000000000 --- a/repo/darwin/packages/dev/hvsock.0.13.0/descr +++ /dev/null @@ -1,5 +0,0 @@ -Bindings to Hyper-V AF_HVSOCK - -AF_HVSOCK sockets allow host <-> VM communication on Hyper-V hosts. A typical -use is to run some kind of agent in a VM, and connect to it from software -running on the host. AF_HVSOCK is similar to AF_VSOCK as used by virtio-vsock. diff --git a/repo/darwin/packages/dev/hvsock.0.13.0/findlib b/repo/darwin/packages/dev/hvsock.0.13.0/findlib deleted file mode 100644 index e49012080..000000000 --- a/repo/darwin/packages/dev/hvsock.0.13.0/findlib +++ /dev/null @@ -1,3 +0,0 @@ -hvsock -hvsock.lwt -hvsock.lwt-unix diff --git a/repo/darwin/packages/dev/hvsock.0.13.0/opam b/repo/darwin/packages/dev/hvsock.0.13.0/opam deleted file mode 100644 index 4054aa504..000000000 --- a/repo/darwin/packages/dev/hvsock.0.13.0/opam +++ /dev/null @@ -1,36 +0,0 @@ -opam-version: "1.2" -maintainer: "dave@recoil.org" -authors: [ "David Scott" "Rolf Neugebauer" "Anil Madhavapeddy" "Simon Ferquel"] -license: "ISC" -homepage: "https://github.com/mirage/ocaml-hvsock" -dev-repo: "https://github.com/mirage/ocaml-hvsock.git" -bug-reports: "https://github.com/mirage/ocaml-hvsock/issues" - -build: [ - ["ocaml" "setup.ml" "-configure" "--%{alcotest:enable}%-tests" ] - [make] -] - -build-test:[ - [make "test"] -] -install: [make "install"] -remove: ["ocamlfind" "remove" "hvsock"] - -depends: [ - "base-bytes" - "lwt" {>= "2.4.7"} - "logs" - "fmt" - "base-unix" - "cmdliner" - "mirage-types-lwt" {>= "2.0" & <"3.0"} - "mirage-flow" - "cstruct" - "duration" - "ocamlfind" {build} - "ocamlbuild" {build} - "alcotest" {test & >= "0.4.0"} -] - -available: [ ocaml-version >= "4.02.3" ] diff --git a/repo/darwin/packages/dev/hvsock.0.13.0/url b/repo/darwin/packages/dev/hvsock.0.13.0/url deleted file mode 100644 index fa5595208..000000000 --- a/repo/darwin/packages/dev/hvsock.0.13.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-hvsock/archive/v0.13.0.tar.gz" -checksum: "c8a791e9aeaabf9378c6259adc24a15b" diff --git a/repo/darwin/packages/dev/mirage-types-lwt.2.8.999/descr b/repo/darwin/packages/dev/mirage-types-lwt.2.8.999/descr deleted file mode 100644 index 9cd7a3917..000000000 --- a/repo/darwin/packages/dev/mirage-types-lwt.2.8.999/descr +++ /dev/null @@ -1,14 +0,0 @@ -Lwt module type definitions for Mirage-compatible applications - -This is a virtual package that pulls in all the concrete -dependencies required for the `mirage-types.lwt` ocamlfind -package to become available. - -The purpose of this library is to provide concrete types -for several that are left abstract in `mirage-types`: - -- `type 'a io = 'a Lwt.t` -- `type page_aligned_buffer = Io_page.t` -- `type buffer = Cstruct.t` -- `type macaddr = Macaddr.t` -- `type ipv4addr = Ipaddr.V4.t` diff --git a/repo/darwin/packages/dev/mirage-types-lwt.2.8.999/opam b/repo/darwin/packages/dev/mirage-types-lwt.2.8.999/opam deleted file mode 100644 index 8cfbab2a2..000000000 --- a/repo/darwin/packages/dev/mirage-types-lwt.2.8.999/opam +++ /dev/null @@ -1,16 +0,0 @@ -opam-version: "1.2" -maintainer: ["anil@recoil.org" "thomas@gazagnaire.org"] -authors: "The MirageOS team" -homepage: "https://github.com/mirage/mirage" -bug-reports: "https://github.com/mirage/mirage/issues/" -dev-repo: "https://github.com/mirage/mirage.git" -tags: ["org:mirage" "org:xapi-project"] - -depends: [ - "ocamlfind" - "lwt" - "cstruct" {>="1.4.0"} - "io-page" {>="1.4.0"} - "ipaddr" - "mirage-types" {="2.8.999"} -] diff --git a/repo/darwin/packages/dev/mirage-types.2.8.999/descr b/repo/darwin/packages/dev/mirage-types.2.8.999/descr deleted file mode 100644 index 7eeed4bc3..000000000 --- a/repo/darwin/packages/dev/mirage-types.2.8.999/descr +++ /dev/null @@ -1 +0,0 @@ -Module type definitions for Mirage-compatible applications diff --git a/repo/darwin/packages/dev/mirage-types.2.8.999/opam b/repo/darwin/packages/dev/mirage-types.2.8.999/opam deleted file mode 100644 index 9045c3e1f..000000000 --- a/repo/darwin/packages/dev/mirage-types.2.8.999/opam +++ /dev/null @@ -1,20 +0,0 @@ -opam-version: "1.2" -maintainer: ["anil@recoil.org" "thomas@gazagnaire.org"] -authors: "The MirageOS team" -homepage: "https://github.com/mirage/mirage" -bug-reports: "https://github.com/mirage/mirage/issues/" -dev-repo: "https://github.com/mirage/mirage.git" -tags: ["org:mirage" "org:xapi-project"] - -build: [make "build-types"] -install: [make "install-types"] -remove: ["ocamlfind" "remove" "mirage-types"] - -depends: [ - "ocamlfind" - "ocamlbuild" {build} -] -depopts: ["lwt" "cstruct" "io-page" "ipaddr"] -conflicts: ["ipaddr" {< "2.0.0"}] - -available: [ocaml-version >= "4.01.0"] diff --git a/repo/darwin/packages/dev/mirage-types.2.8.999/url b/repo/darwin/packages/dev/mirage-types.2.8.999/url deleted file mode 100644 index b8db7e33c..000000000 --- a/repo/darwin/packages/dev/mirage-types.2.8.999/url +++ /dev/null @@ -1 +0,0 @@ -git: "git://github.com/djs55/mirage#2.8.0-mtu" diff --git a/repo/darwin/packages/dev/tcpip.999/descr b/repo/darwin/packages/dev/tcpip.999/descr deleted file mode 100644 index 393ad9475..000000000 --- a/repo/darwin/packages/dev/tcpip.999/descr +++ /dev/null @@ -1,5 +0,0 @@ -Userlevel TCP/IP stack - -The library provides a networking stack for the MirageOS -library operating system that supports IPv4, IPv6, ARPv4, -DHCPv4 and TCP/IP. diff --git a/repo/darwin/packages/dev/tcpip.999/opam b/repo/darwin/packages/dev/tcpip.999/opam deleted file mode 100644 index e7563902a..000000000 --- a/repo/darwin/packages/dev/tcpip.999/opam +++ /dev/null @@ -1,55 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -homepage: "https://github.com/mirage/mirage-tcpip" -dev-repo: "https://github.com/mirage/mirage-tcpip.git" -bug-reports: "https://github.com/mirage/mirage-tcpip/issues" -authors: [ - "Anil Madhavapeddy" - "Balraj Singh" - "Richard Mortier" - "Nicolas Ojeda Bar" - "Thomas Gazagnaire" - "Vincent Bernardoff" - "Magnus Skjegstad" - "Mindy Preston" - "Thomas Leonard" -] -tags: ["org:mirage"] - -build: [ - ["./configure" "--prefix" prefix - "--%{mirage-xen:enable}%-xen" - "--%{mirage-net-unix:enable}%-unix" - ] - [make] -] -build-test: [ - ["./configure" "--enable-tests"] - [make "test" "TESTFLAGS=-v"] -] - -install: [make "install"] -remove: ["ocamlfind" "remove" "tcpip"] -depends: [ - "ocamlfind" {build} - "cstruct" {>= "1.9.0" } - "channel" - "mirage-types" {< "3.0.0"} - "mirage-unix" {>= "1.1.0"} - "mirage-console" - "mirage-clock-unix" {>= "1.0.0"} - "ipaddr" {>= "2.2.0"} - "mirage-profile" {>= "0.5"} - "mirage-flow" {test} - "mirage-vnetif" {test} - "alcotest" {test} - "pcap-format" {test} - "lwt" {>= "2.4.7"} - "ocamlbuild" {build} -] -depopts: [ - "mirage-xen" - "mirage-net-unix" -] -available: [ocaml-version >= "4.01.0"] -conflicts: [< "1.1.0"] diff --git a/repo/darwin/packages/dev/tcpip.999/url b/repo/darwin/packages/dev/tcpip.999/url deleted file mode 100644 index fcac8a136..000000000 --- a/repo/darwin/packages/dev/tcpip.999/url +++ /dev/null @@ -1 +0,0 @@ -git: "git://github.com/djs55/mirage-tcpip#3.0.0-beta11" diff --git a/repo/darwin/packages/dev/tcpip.dev/opam b/repo/darwin/packages/dev/tcpip.dev/opam new file mode 100644 index 000000000..b828fe435 --- /dev/null +++ b/repo/darwin/packages/dev/tcpip.dev/opam @@ -0,0 +1,52 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-tcpip" +dev-repo: "https://github.com/mirage/mirage-tcpip.git" +bug-reports: "https://github.com/mirage/mirage-tcpip/issues" +authors: [ + "Anil Madhavapeddy" "Balraj Singh" "Richard Mortier" "Nicolas Ojeda Bar" + "Thomas Gazagnaire" "Vincent Bernardoff" "Magnus Skjegstad" "Mindy Preston" + "Thomas Leonard" "David Scott" "Gabor Pali" "Hannes Mehnert" "Haris Rotsos" + "Kia" "Luke Dunstan" "Pablo Polvorin" "Tim Cuthbertson" "lnmx" "pqwy" ] +license: "ISC" +tags: ["org:mirage"] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: [ + ["jbuilder" "runtest" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "configurator" {build} + "rresult" + "cstruct" {>= "3.0.2"} + "cstruct-lwt" + "mirage-net" {>= "1.0.0"} + "mirage-net-lwt" {>= "1.0.0"} + "mirage-clock" {>= "1.2.0"} + "mirage-random" {>= "1.0.0"} + "mirage-clock-lwt" {>= "1.2.0"} + "mirage-stack-lwt" {>= "1.0.0"} + "mirage-protocols" {>= "1.1.0"} + "mirage-protocols-lwt" {>= "1.1.0"} + "mirage-time-lwt" {>= "1.0.0"} + "ipaddr" {>= "2.2.0"} + "mirage-profile" {>= "0.5"} + "mirage-flow" {test & >= "1.2.0"} + "mirage-vnetif" {test & >= "0.4.0"} + "alcotest" {test & >="0.7.0"} + "ounit" {test} + "pcap-format" {test} + "mirage-clock-unix" {test & >= "1.2.0"} + "fmt" + "lwt" {>= "2.7.0"} + "logs" {>= "0.6.0"} + "duration" + "io-page-unix" + "randomconv" +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/dev/tcpip.dev/url b/repo/darwin/packages/dev/tcpip.dev/url new file mode 100644 index 000000000..99169623e --- /dev/null +++ b/repo/darwin/packages/dev/tcpip.dev/url @@ -0,0 +1 @@ +git: "https://github.com/mirage/mirage-tcpip.git" diff --git a/repo/win32/packages/dev/channel.1.1.0 b/repo/win32/packages/dev/channel.1.1.0 deleted file mode 120000 index 5048f0fa8..000000000 --- a/repo/win32/packages/dev/channel.1.1.0 +++ /dev/null @@ -1 +0,0 @@ -../../../darwin/packages/dev/channel.1.1.0 \ No newline at end of file diff --git a/repo/win32/packages/dev/charrua-core.999 b/repo/win32/packages/dev/charrua-core.999 deleted file mode 120000 index 420838c2f..000000000 --- a/repo/win32/packages/dev/charrua-core.999 +++ /dev/null @@ -1 +0,0 @@ -../../../darwin/packages/dev/charrua-core.999 \ No newline at end of file diff --git a/repo/win32/packages/dev/charrua-core.dev b/repo/win32/packages/dev/charrua-core.dev new file mode 120000 index 000000000..f9d6cbdb9 --- /dev/null +++ b/repo/win32/packages/dev/charrua-core.dev @@ -0,0 +1 @@ +../../../darwin/packages/dev/charrua-core.dev \ No newline at end of file diff --git a/repo/win32/packages/dev/dns-forward.0.8.4 b/repo/win32/packages/dev/dns-forward.0.8.4 deleted file mode 120000 index 42eddcfdb..000000000 --- a/repo/win32/packages/dev/dns-forward.0.8.4 +++ /dev/null @@ -1 +0,0 @@ -../../../darwin/packages/dev/dns-forward.0.8.4 \ No newline at end of file diff --git a/repo/win32/packages/dev/dns.999 b/repo/win32/packages/dev/dns.999 deleted file mode 120000 index 20330c3e2..000000000 --- a/repo/win32/packages/dev/dns.999 +++ /dev/null @@ -1 +0,0 @@ -../../../darwin/packages/dev/dns.999 \ No newline at end of file diff --git a/repo/win32/packages/dev/dnssd.0.4 b/repo/win32/packages/dev/dnssd.0.4 deleted file mode 120000 index 0c7dad768..000000000 --- a/repo/win32/packages/dev/dnssd.0.4 +++ /dev/null @@ -1 +0,0 @@ -../../../darwin/packages/dev/dnssd.0.4 \ No newline at end of file diff --git a/repo/win32/packages/dev/fd-send-recv.1.0.3 b/repo/win32/packages/dev/fd-send-recv.1.0.3 deleted file mode 120000 index 306807746..000000000 --- a/repo/win32/packages/dev/fd-send-recv.1.0.3 +++ /dev/null @@ -1 +0,0 @@ -../../../darwin/packages/dev/fd-send-recv.1.0.3 \ No newline at end of file diff --git a/repo/win32/packages/dev/hvsock.0.13.0 b/repo/win32/packages/dev/hvsock.0.13.0 deleted file mode 120000 index 14580ef94..000000000 --- a/repo/win32/packages/dev/hvsock.0.13.0 +++ /dev/null @@ -1 +0,0 @@ -../../../darwin/packages/dev/hvsock.0.13.0 \ No newline at end of file diff --git a/repo/win32/packages/dev/io-page.1.6.1/descr b/repo/win32/packages/dev/io-page.1.6.1/descr deleted file mode 100644 index 396d0e049..000000000 --- a/repo/win32/packages/dev/io-page.1.6.1/descr +++ /dev/null @@ -1 +0,0 @@ -Allocate memory pages suitable for aligned I/O diff --git a/repo/win32/packages/dev/io-page.1.6.1/opam b/repo/win32/packages/dev/io-page.1.6.1/opam deleted file mode 100644 index 744395e2d..000000000 --- a/repo/win32/packages/dev/io-page.1.6.1/opam +++ /dev/null @@ -1,29 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -homepage: "https://github.com/mirage/io-page" -dev-repo: "https://github.com/mirage/io-page.git" -bug-reports: "https://github.com/mirage/io-page/issues" -authors: [ - "Anil Madhavapeddy" - "Dave Scott" - "Thomas Gazagnaire" -] -tags: ["org:mirage"] -build: [ - [ "./configure" "--prefix" prefix - "--%{mirage-xen-ocaml:enable}%-xen" - ] - [make] -] -install: [make "install"] -remove: ["ocamlfind" "remove" "io-page"] -depends: [ - "ocamlfind" - "cstruct" {>= "1.1.0"} - "ounit" {test} - "ocamlbuild" {build} -] -depopts: [ - "mirage-xen-ocaml" -] -available: [ocaml-version >= "4.00.0"] diff --git a/repo/win32/packages/dev/io-page.1.6.1/url b/repo/win32/packages/dev/io-page.1.6.1/url deleted file mode 100644 index 435df0c87..000000000 --- a/repo/win32/packages/dev/io-page.1.6.1/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/io-page/archive/v1.6.1.tar.gz" -checksum: "9e5527b5e44b111ee0fff05e1389296b" diff --git a/repo/win32/packages/dev/mirage-types-lwt.2.8.999 b/repo/win32/packages/dev/mirage-types-lwt.2.8.999 deleted file mode 120000 index a0a4d3a46..000000000 --- a/repo/win32/packages/dev/mirage-types-lwt.2.8.999 +++ /dev/null @@ -1 +0,0 @@ -../../../darwin/packages/dev/mirage-types-lwt.2.8.999 \ No newline at end of file diff --git a/repo/win32/packages/dev/mirage-types.2.8.999 b/repo/win32/packages/dev/mirage-types.2.8.999 deleted file mode 120000 index bb42f5fee..000000000 --- a/repo/win32/packages/dev/mirage-types.2.8.999 +++ /dev/null @@ -1 +0,0 @@ -../../../darwin/packages/dev/mirage-types.2.8.999/ \ No newline at end of file diff --git a/repo/win32/packages/dev/tcpip.999 b/repo/win32/packages/dev/tcpip.999 deleted file mode 120000 index b26bc1270..000000000 --- a/repo/win32/packages/dev/tcpip.999 +++ /dev/null @@ -1 +0,0 @@ -../../../darwin/packages/dev/tcpip.999 \ No newline at end of file diff --git a/repo/win32/packages/dev/tcpip.dev b/repo/win32/packages/dev/tcpip.dev new file mode 120000 index 000000000..8e263d593 --- /dev/null +++ b/repo/win32/packages/dev/tcpip.dev @@ -0,0 +1 @@ +../../../darwin/packages/dev/tcpip.dev \ No newline at end of file From dcf7d509a92e71e4fa800d1170f5f959514d82ff Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Mon, 31 Jul 2017 22:45:49 +0200 Subject: [PATCH 03/32] AUTO: Update upstream packages Signed-off-by: Thomas Gazagnaire --- .../packages/upstream/asetmap.0.8.1/descr | 8 + .../packages/upstream/asetmap.0.8.1/opam | 18 + .../packages/upstream/asetmap.0.8.1/url | 2 + .../upstream/asn1-combinators.0.1.3/descr | 10 + .../upstream/asn1-combinators.0.1.3/opam | 27 + .../upstream/asn1-combinators.0.1.3/url | 2 + .../packages/upstream/base-bigarray.base/opam | 2 +- .../packages/upstream/base-num.base/descr | 1 + .../packages/upstream/base-num.base/opam | 4 + .../packages/upstream/base-threads.base/opam | 2 +- .../packages/upstream/base-unix.base/opam | 2 +- repo/darwin/packages/upstream/base.v0.9.2/url | 2 - .../{base.v0.9.2 => base.v0.9.3}/descr | 0 .../{base.v0.9.2 => base.v0.9.3}/opam | 16 +- repo/darwin/packages/upstream/base.v0.9.3/url | 2 + .../packages/upstream/base64.2.1.2/descr | 10 - .../darwin/packages/upstream/base64.2.1.2/url | 2 - .../packages/upstream/base64.2.2.0/descr | 26 + .../packages/upstream/base64.2.2.0}/opam | 12 +- .../darwin/packages/upstream/base64.2.2.0/url | 2 + .../packages/upstream/cohttp-lwt.0.99.0/descr | 27 + .../packages/upstream/cohttp-lwt.0.99.0/opam | 31 + .../packages/upstream/cohttp-lwt.0.99.0/url | 2 + .../packages/upstream/cohttp.0.22.0/descr | 9 - .../packages/upstream/cohttp.0.22.0/opam | 53 - .../packages/upstream/cohttp.0.22.0/url | 2 - .../packages/upstream/cohttp.0.99.0/descr | 27 + .../packages/upstream/cohttp.0.99.0/opam | 40 + .../packages/upstream/cohttp.0.99.0/url | 2 + .../packages/upstream/conduit-lwt.1.0.0/descr | 37 + .../packages/upstream/conduit-lwt.1.0.0/opam | 20 + .../packages/upstream/conduit-lwt.1.0.0/url | 2 + .../packages/upstream/conduit.0.14.5/descr | 15 - .../packages/upstream/conduit.0.14.5/opam | 53 - .../packages/upstream/conduit.0.14.5/url | 2 - .../packages/upstream/conduit.1.0.0/descr | 37 + .../packages/upstream/conduit.1.0.0/opam | 24 + .../packages/upstream/conduit.1.0.0/url | 2 + .../packages/upstream/conf-autoconf.0.1/descr | 3 + .../packages/upstream/conf-autoconf.0.1/opam | 29 + .../darwin/packages/upstream/conf-gmp.1/descr | 2 + .../packages/upstream/conf-gmp.1/files/test.c | 8 + repo/darwin/packages/upstream/conf-gmp.1/opam | 22 + .../packages/upstream/conf-perl.1/descr | 2 + .../darwin/packages/upstream/conf-perl.1/opam | 15 + .../packages/upstream/conf-which.1/opam | 7 +- .../upstream/configurator.v0.9.1/descr | 11 + .../upstream/configurator.v0.9.1/opam | 19 + .../packages/upstream/configurator.v0.9.1/url | 2 + .../packages/upstream/cppo.1.5.0/findlib | 1 - .../packages/upstream/cpuid.0.1.1/descr | 26 + .../darwin/packages/upstream/cpuid.0.1.1/opam | 19 + repo/darwin/packages/upstream/cpuid.0.1.1/url | 2 + .../packages/upstream/cstruct-lwt.0/descr | 4 - .../packages/upstream/cstruct-lwt.3.1.1/descr | 5 + .../packages/upstream/cstruct-lwt.3.1.1}/opam | 13 +- .../packages/upstream/cstruct-lwt.3.1.1/url | 2 + .../upstream/cstruct-unix.3.1.1/descr | 5 + .../upstream/cstruct-unix.3.1.1}/opam | 15 +- .../packages/upstream/cstruct-unix.3.1.1/url | 2 + .../packages/upstream/cstruct.2.4.1/descr | 22 - .../packages/upstream/cstruct.2.4.1/opam | 61 - .../packages/upstream/cstruct.2.4.1/url | 2 - .../packages/upstream/cstruct.3.1.1/descr | 5 + .../packages/upstream/cstruct.3.1.1/opam | 24 + .../packages/upstream/cstruct.3.1.1/url | 2 + .../upstream/datakit-server-9p.0.11.0/descr | 12 + .../upstream/datakit-server-9p.0.11.0/opam | 19 + .../upstream/datakit-server-9p.0.11.0/url | 2 + .../descr | 0 .../upstream/datakit-server.0.11.0/opam | 21 + .../upstream/datakit-server.0.11.0/url | 2 + .../upstream/datakit-server.0.9.0/opam | 25 - .../upstream/datakit-server.0.9.0/url | 2 - .../darwin/packages/upstream/depext.1.0.4/url | 3 - .../{depext.1.0.4 => depext.1.0.5}/descr | 0 .../{depext.1.0.4 => depext.1.0.5}/opam | 0 .../darwin/packages/upstream/depext.1.0.5/url | 2 + .../packages/upstream/dns-forward.0.9.0/descr | 8 + .../packages/upstream/dns-forward.0.9.0/opam | 35 + .../packages/upstream/dns-forward.0.9.0/url | 2 + .../packages/upstream/dns-lwt.1.0.0/descr | 29 + .../packages/upstream/dns-lwt.1.0.0/opam | 25 + .../packages/upstream/dns-lwt.1.0.0/url | 2 + repo/darwin/packages/upstream/dns.1.0.0/descr | 29 + repo/darwin/packages/upstream/dns.1.0.0/opam | 32 + repo/darwin/packages/upstream/dns.1.0.0/url | 2 + .../packages/upstream/dnssd.0.5.0/descr | 19 + .../darwin/packages/upstream/dnssd.0.5.0/opam | 32 + repo/darwin/packages/upstream/dnssd.0.5.0/url | 2 + .../packages/upstream/duration.0.1.0/opam | 2 +- .../upstream/fd-send-recv.1.0.4/descr | 1 + .../packages/upstream/fd-send-recv.1.0.4/opam | 25 + .../packages/upstream/fd-send-recv.1.0.4/url | 2 + repo/darwin/packages/upstream/fmt.0.8.3/url | 2 - .../upstream/{fmt.0.8.3 => fmt.0.8.4}/descr | 0 .../upstream/{fmt.0.8.3 => fmt.0.8.4}/opam | 0 repo/darwin/packages/upstream/fmt.0.8.4/url | 2 + .../packages/upstream/hashcons.1.0.1/url | 2 - .../{hashcons.1.0.1 => hashcons.1.2}/descr | 0 .../{hashcons.1.0.1 => hashcons.1.2}/opam | 2 + .../darwin/packages/upstream/hashcons.1.2/url | 3 + repo/darwin/packages/upstream/hex.1.1.0/url | 2 - .../upstream/{hex.1.1.0 => hex.1.1.1}/descr | 0 .../packages/upstream/hex.1.1.1}/opam | 8 +- repo/darwin/packages/upstream/hex.1.1.1/url | 2 + .../packages/upstream/hvsock.1.0.0/descr | 13 + .../packages/upstream/hvsock.1.0.0/opam | 37 + .../darwin/packages/upstream/hvsock.1.0.0/url | 2 + .../descr | 0 .../opam | 22 +- .../packages/upstream/io-page-unix.2.0.0/url | 2 + .../packages/upstream/io-page.1.6.1/url | 2 - .../packages/upstream/io-page.2.0.0/descr | 1 + .../packages/upstream/io-page.2.0.0/opam | 23 + .../packages/upstream/io-page.2.0.0/url | 2 + .../darwin/packages/upstream/ipaddr.2.7.2/url | 2 - .../{ipaddr.2.7.2 => ipaddr.2.8.0}/descr | 0 .../packages/upstream/ipaddr.2.8.0}/opam | 20 +- .../darwin/packages/upstream/ipaddr.2.8.0/url | 2 + .../descr | 0 .../opam | 0 .../packages/upstream/jbuilder.1.0+beta11/url | 2 + .../packages/upstream/jbuilder.1.0+beta9/url | 2 - .../upstream/lwt.2.7.1/files/lwt.install | 6 - repo/darwin/packages/upstream/lwt.2.7.1/url | 2 - .../packages/upstream/lwt.3.1.0}/descr | 2 +- .../upstream/{lwt.2.7.1 => lwt.3.1.0}/opam | 55 +- repo/darwin/packages/upstream/lwt.3.1.0/url | 2 + .../packages/upstream/magic-mime.1.0.1/url | 2 - .../packages/upstream/magic-mime.1.1.0}/descr | 15 +- .../packages/upstream/magic-mime.1.1.0}/opam | 6 +- .../packages/upstream/magic-mime.1.1.0/url | 2 + .../packages/upstream/menhir.20170509/findlib | 2 - .../packages/upstream/menhir.20170509/url | 2 - .../descr | 0 .../{menhir.20170509 => menhir.20170712}/opam | 0 .../packages/upstream/menhir.20170712/url | 2 + .../upstream/mirage-block-unix.2.8.2/descr | 1 - .../upstream/mirage-block-unix.2.8.2/opam | 36 - .../upstream/mirage-block-unix.2.8.2/url | 2 - .../upstream/mirage-channel-lwt.3.1.0/descr | 29 + .../upstream/mirage-channel-lwt.3.1.0/opam | 32 + .../upstream/mirage-channel-lwt.3.1.0/url | 2 + .../upstream/mirage-channel.3.1.0/descr | 29 + .../upstream/mirage-channel.3.1.0/opam | 22 + .../upstream/mirage-channel.3.1.0/url | 2 + .../upstream/mirage-clock-lwt.1.3.0/descr | 15 + .../upstream/mirage-clock-lwt.1.3.0/opam | 19 + .../upstream/mirage-clock-lwt.1.3.0/url | 2 + .../upstream/mirage-clock-unix.1.0.0/descr | 1 - .../upstream/mirage-clock-unix.1.0.0/findlib | 1 - .../upstream/mirage-clock-unix.1.0.0/opam | 14 - .../upstream/mirage-clock-unix.1.0.0/url | 2 - .../upstream/mirage-clock-unix.1.4.0/descr | 15 + .../upstream/mirage-clock-unix.1.4.0/opam | 22 + .../upstream/mirage-clock-unix.1.4.0/url | 2 + .../upstream/mirage-clock.1.3.0/descr | 15 + .../packages/upstream/mirage-clock.1.3.0/opam | 17 + .../packages/upstream/mirage-clock.1.3.0/url | 2 + .../upstream/mirage-conduit.2.2.0/descr | 1 - .../upstream/mirage-conduit.2.2.0/opam | 19 - .../upstream/mirage-conduit.3.0.1/descr | 35 + .../upstream/mirage-conduit.3.0.1/opam | 25 + .../upstream/mirage-conduit.3.0.1/url | 2 + .../upstream/mirage-console-lwt.2.3.5/descr | 40 + .../upstream/mirage-console-lwt.2.3.5/opam | 23 + .../upstream/mirage-console-lwt.2.3.5/url | 2 + .../upstream/mirage-console-unix.2.3.5/descr | 40 + .../upstream/mirage-console-unix.2.3.5/opam | 23 + .../upstream/mirage-console-unix.2.3.5/url | 2 + .../upstream/mirage-console.2.1.3/descr | 1 - .../upstream/mirage-console.2.1.3/opam | 36 - .../upstream/mirage-console.2.1.3/url | 2 - .../upstream/mirage-console.2.3.5/descr | 40 + .../upstream/mirage-console.2.3.5/opam | 21 + .../upstream/mirage-console.2.3.5/url | 2 + .../packages/upstream/mirage-device.1.0.0/url | 2 - .../descr | 0 .../opam | 11 +- .../packages/upstream/mirage-device.1.1.0/url | 2 + .../packages/upstream/mirage-dns.2.5.0/descr | 1 - .../packages/upstream/mirage-dns.2.5.0/opam | 25 - .../packages/upstream/mirage-dns.3.0.0/descr | 29 + .../packages/upstream/mirage-dns.3.0.0/opam | 24 + .../packages/upstream/mirage-dns.3.0.0/url | 2 + .../upstream/mirage-flow-lwt.1.4.0/descr | 1 + .../upstream/mirage-flow-lwt.1.4.0/opam | 24 + .../upstream/mirage-flow-lwt.1.4.0/url | 2 + .../packages/upstream/mirage-flow.1.1.0/descr | 5 - .../upstream/mirage-flow.1.1.0/findlib | 1 - .../packages/upstream/mirage-flow.1.1.0/opam | 29 - .../packages/upstream/mirage-flow.1.1.0/url | 2 - .../packages/upstream/mirage-flow.1.3.0/descr | 10 + .../packages/upstream/mirage-flow.1.3.0/opam | 19 + .../packages/upstream/mirage-flow.1.3.0/url | 2 + .../upstream/mirage-fs-lwt.1.1.1/descr | 9 + .../upstream/mirage-fs-lwt.1.1.1/opam | 25 + .../packages/upstream/mirage-fs-lwt.1.1.1/url | 2 + .../packages/upstream/mirage-fs.1.1.1/descr | 9 + .../packages/upstream/mirage-fs.1.1.1/opam | 22 + .../packages/upstream/mirage-fs.1.1.1/url | 2 + .../packages/upstream/mirage-http.2.5.3/descr | 1 - .../packages/upstream/mirage-http.2.5.3/opam | 21 - .../packages/upstream/mirage-http.2.5.3/url | 2 - .../packages/upstream/mirage-http.3.2.0/descr | 27 + .../packages/upstream/mirage-http.3.2.0/opam | 30 + .../packages/upstream/mirage-http.3.2.0/url | 2 + .../upstream/mirage-kv-lwt.1.1.0/descr | 1 + .../upstream/mirage-kv-lwt.1.1.0/opam | 23 + .../packages/upstream/mirage-kv-lwt.1.1.0/url | 2 + .../packages/upstream/mirage-kv.1.1.1/descr | 9 + .../packages/upstream/mirage-kv.1.1.1/opam | 22 + .../packages/upstream/mirage-kv.1.1.1/url | 2 + .../upstream/mirage-net-lwt.1.1.0/descr | 1 + .../upstream/mirage-net-lwt.1.1.0/opam | 23 + .../upstream/mirage-net-lwt.1.1.0/url | 2 + .../packages/upstream/mirage-net.1.1.1/descr | 22 + .../packages/upstream/mirage-net.1.1.1/opam | 23 + .../packages/upstream/mirage-net.1.1.1/url | 2 + .../packages/upstream/mirage-no-solo5.1/descr | 1 + .../packages/upstream/mirage-no-solo5.1/opam | 6 + .../packages/upstream/mirage-no-xen.1/descr | 1 + .../packages/upstream/mirage-no-xen.1/opam | 6 + .../upstream/mirage-profile.0.7.0/descr | 6 - .../upstream/mirage-profile.0.7.0/opam | 32 - .../upstream/mirage-profile.0.7.0/url | 2 - .../upstream/mirage-profile.0.8.1/descr | 3 + .../upstream/mirage-profile.0.8.1/opam | 22 + .../upstream/mirage-profile.0.8.1/url | 2 + .../upstream/mirage-protocols-lwt.1.2.0/descr | 14 + .../upstream/mirage-protocols-lwt.1.2.0/opam | 24 + .../upstream/mirage-protocols-lwt.1.2.0/url | 2 + .../upstream/mirage-protocols.1.2.0/descr | 14 + .../upstream/mirage-protocols.1.2.0/opam | 23 + .../upstream/mirage-protocols.1.2.0/url | 2 + .../upstream/mirage-random.1.1.0/descr | 25 + .../upstream/mirage-random.1.1.0/opam | 21 + .../packages/upstream/mirage-random.1.1.0/url | 2 + .../upstream/mirage-stack-lwt.1.1.0/descr | 12 + .../upstream/mirage-stack-lwt.1.1.0/opam | 24 + .../upstream/mirage-stack-lwt.1.1.0/url | 2 + .../upstream/mirage-stack.1.1.0/descr | 12 + .../packages/upstream/mirage-stack.1.1.0/opam | 23 + .../packages/upstream/mirage-stack.1.1.0/url | 2 + .../upstream/mirage-time-lwt.1.1.0/descr | 22 + .../upstream/mirage-time-lwt.1.1.0/opam | 22 + .../upstream/mirage-time-lwt.1.1.0/url | 2 + .../upstream/mirage-time-unix.1.2.0/descr | 1 + .../upstream/mirage-time-unix.1.2.0/opam | 22 + .../upstream/mirage-time-unix.1.2.0/url | 2 + .../packages/upstream/mirage-time.1.1.0/descr | 22 + .../packages/upstream/mirage-time.1.1.0/opam | 21 + .../packages/upstream/mirage-time.1.1.0/url | 2 + .../upstream/mirage-types-lwt.3.0.0/descr | 14 + .../upstream/mirage-types-lwt.3.0.0/opam | 31 + .../upstream/mirage-types-lwt.3.0.0/url | 2 + .../upstream/mirage-types.3.0.0/descr | 1 + .../packages/upstream/mirage-types.3.0.0/opam | 28 + .../packages/upstream/mirage-types.3.0.0/url | 2 + .../packages/upstream/mirage-unix.2.6.0/descr | 1 - .../packages/upstream/mirage-unix.2.6.0/opam | 23 - .../packages/upstream/mirage-unix.2.6.0/url | 2 - .../upstream/mirage-vnetif.0.2.0/descr | 6 - .../upstream/mirage-vnetif.0.2.0/opam | 19 - .../packages/upstream/mirage-vnetif.0.2.0/url | 2 - .../upstream/mirage-vnetif.0.4.0/descr | 89 + .../upstream/mirage-vnetif.0.4.0/opam | 30 + .../packages/upstream/mirage-vnetif.0.4.0/url | 2 + repo/darwin/packages/upstream/mtime.1.0.0/url | 2 - .../{mtime.1.0.0 => mtime.1.1.0}/descr | 0 .../{mtime.1.0.0 => mtime.1.1.0}/opam | 0 repo/darwin/packages/upstream/mtime.1.1.0/url | 2 + .../packages/upstream/nocrypto.0.5.4/descr | 9 + .../packages/upstream/nocrypto.0.5.4/opam | 41 + .../packages/upstream/nocrypto.0.5.4/url | 2 + repo/darwin/packages/upstream/num.0/descr | 1 + repo/darwin/packages/upstream/num.0/opam | 16 + .../packages/upstream/oasis.0.4.10/descr | 23 + .../upstream/oasis.0.4.10/files/oasis.install | 5 + .../packages/upstream/oasis.0.4.10/opam | 32 + .../darwin/packages/upstream/oasis.0.4.10/url | 2 + .../descr | 0 .../opam | 12 +- .../ocaml-migrate-parsetree.1.0.1/url | 3 + .../upstream/ocaml-migrate-parsetree.1.0/url | 3 - .../packages/upstream/ocamlfind.1.7.2/findlib | 13 - .../packages/upstream/ocamlfind.1.7.2/url | 2 - .../descr | 0 .../files/ocaml-stub | 0 .../files/ocamlfind.install | 0 .../{ocamlfind.1.7.2 => ocamlfind.1.7.3}/opam | 0 .../packages/upstream/ocamlfind.1.7.3/url | 2 + .../packages/upstream/ocamlify.0.0.1/descr | 5 + .../ocamlify.0.0.1/files/ocamlify.install | 1 + .../packages/upstream/ocamlify.0.0.1/opam | 11 + .../packages/upstream/ocamlify.0.0.1/url | 2 + .../packages/upstream/ocamlmod.0.0.8/descr | 1 + .../ocamlmod.0.0.8/files/_oasis_remove_.ml | 7 + .../ocamlmod.0.0.8/files/ocamlmod.install | 6 + .../packages/upstream/ocamlmod.0.0.8/opam | 25 + .../packages/upstream/ocamlmod.0.0.8/url | 2 + .../packages/upstream/octavius.1.1.0/descr | 3 + .../packages/upstream/octavius.1.1.0/opam | 22 + .../packages/upstream/octavius.1.1.0/url | 2 + .../packages/upstream/ounit.2.0.0/findlib | 2 - .../darwin/packages/upstream/ounit.2.0.0/opam | 2 +- .../packages/upstream/ppx_base.v0.9.0/descr | 6 + .../packages/upstream/ppx_base.v0.9.0/opam | 22 + .../packages/upstream/ppx_base.v0.9.0/url | 2 + .../upstream/ppx_compare.v0.9.0/descr | 3 + .../packages/upstream/ppx_compare.v0.9.0/opam | 20 + .../packages/upstream/ppx_compare.v0.9.0/url | 2 + .../packages/upstream/ppx_cstruct.0/descr | 4 - .../packages/upstream/ppx_cstruct.3.1.1/descr | 5 + .../packages/upstream/ppx_cstruct.3.1.1/opam | 28 + .../packages/upstream/ppx_cstruct.3.1.1/url | 2 + .../upstream/ppx_enumerate.v0.9.0/descr | 3 + .../upstream/ppx_enumerate.v0.9.0/opam | 19 + .../upstream/ppx_enumerate.v0.9.0/url | 2 + .../packages/upstream/ppx_hash.v0.9.0/descr | 3 + .../packages/upstream/ppx_hash.v0.9.0/opam | 22 + .../packages/upstream/ppx_hash.v0.9.0/url | 2 + .../upstream/ppx_js_style.v0.9.0/descr | 6 + .../upstream/ppx_js_style.v0.9.0/opam | 19 + .../packages/upstream/ppx_js_style.v0.9.0/url | 2 + .../upstream/ppx_tools.5.0+4.03.0/findlib | 1 - .../packages/upstream/prometheus.0.3/descr | 72 + .../packages/upstream/prometheus.0.3/opam | 24 + .../packages/upstream/prometheus.0.3/url | 2 + .../upstream/protocol-9p-unix.0.11.2/descr | 2 + .../opam | 34 +- .../upstream/protocol-9p-unix.0.11.2/url | 2 + .../descr | 4 +- .../upstream/protocol-9p.0.11.2}/opam | 31 +- .../packages/upstream/protocol-9p.0.11.2/url | 2 + .../packages/upstream/protocol-9p.0.8.0/url | 2 - .../packages/upstream/ptime.0.8.3/descr | 20 + .../darwin/packages/upstream/ptime.0.8.3/opam | 21 + repo/darwin/packages/upstream/ptime.0.8.3/url | 2 + .../packages/upstream/qcheck.0.5.3.1/url | 2 - .../{qcheck.0.5.3.1 => qcheck.0.6}/descr | 0 .../{qcheck.0.5.3.1 => qcheck.0.6}/opam | 0 repo/darwin/packages/upstream/qcheck.0.6/url | 2 + .../packages/upstream/randomconv.0.1.0/descr | 5 + .../packages/upstream/randomconv.0.1.0/opam | 19 + .../packages/upstream/randomconv.0.1.0/url | 2 + .../packages/upstream/sexplib.v0.9.1/url | 2 - .../{sexplib.v0.9.1 => sexplib.v0.9.2}/descr | 0 .../{sexplib.v0.9.1 => sexplib.v0.9.2}/opam | 6 +- .../packages/upstream/sexplib.v0.9.2/url | 2 + .../upstream/shared-memory-ring.1.3.0/descr | 3 - .../upstream/shared-memory-ring.1.3.0/findlib | 1 - .../upstream/shared-memory-ring.1.3.0/opam | 26 - .../upstream/shared-memory-ring.1.3.0/url | 2 - .../packages/upstream/tar-format.0.6.1/descr | 8 - .../upstream/tar-format.0.6.1/findlib | 1 - .../packages/upstream/tar-format.0.6.1/opam | 37 - .../packages/upstream/tar-format.0.6.1/url | 2 - repo/darwin/packages/upstream/tar.0.8.0/descr | 6 + repo/darwin/packages/upstream/tar.0.8.0/opam | 27 + repo/darwin/packages/upstream/tar.0.8.0/url | 2 + repo/darwin/packages/upstream/tls.0.8.0/descr | 15 + repo/darwin/packages/upstream/tls.0.8.0/opam | 55 + repo/darwin/packages/upstream/tls.0.8.0/url | 2 + .../{uchar.0.0.1 => uchar.0.0.2}/descr | 0 .../{uchar.0.0.1 => uchar.0.0.2}/opam | 4 +- .../upstream/{uchar.0.0.1 => uchar.0.0.2}/url | 4 +- repo/darwin/packages/upstream/uri.1.9.2/url | 2 - .../upstream/{uri.1.9.2 => uri.1.9.4}/descr | 0 .../packages/upstream/uri.1.9.4}/opam | 30 +- repo/darwin/packages/upstream/uri.1.9.4/url | 2 + .../darwin/packages/upstream/uuidm.0.9.6/opam | 1 + repo/darwin/packages/upstream/uwt.0.2.0/url | 3 - .../upstream/{uwt.0.2.0 => uwt.0.2.1}/descr | 0 .../upstream/{uwt.0.2.0 => uwt.0.2.1}/opam | 0 repo/darwin/packages/upstream/uwt.0.2.1/url | 3 + .../packages/upstream/vchan.3.0.0/descr | 4 + .../darwin/packages/upstream/vchan.3.0.0/opam | 37 + repo/darwin/packages/upstream/vchan.3.0.0/url | 2 + .../packages/upstream/win-error.0.2/findlib | 1 - .../upstream/win-eventlog.0.1/findlib | 1 - .../darwin/packages/upstream/x509.0.5.3/descr | 4 + repo/darwin/packages/upstream/x509.0.5.3/opam | 40 + repo/darwin/packages/upstream/x509.0.5.3/url | 2 + .../packages/upstream/xenstore.1.4.0/descr | 1 + .../packages/upstream/xenstore.1.4.0/opam | 29 + .../packages/upstream/xenstore.1.4.0/url | 2 + .../upstream/xenstore_transport.0.9.6/descr | 6 + .../upstream/xenstore_transport.0.9.6/opam | 35 + .../upstream/xenstore_transport.0.9.6/url | 2 + .../darwin/packages/upstream/zarith.1.5/descr | 5 + repo/darwin/packages/upstream/zarith.1.5/opam | 21 + repo/darwin/packages/upstream/zarith.1.5/url | 2 + .../packages/upstream/asetmap.0.8.1/descr | 8 + .../packages/upstream/asetmap.0.8.1/opam | 18 + .../win32/packages/upstream/asetmap.0.8.1/url | 2 + .../upstream/asn1-combinators.0.1.3/descr | 10 + .../upstream/asn1-combinators.0.1.3/opam | 26 + .../upstream/asn1-combinators.0.1.3/url | 2 + .../packages/upstream/base-bigarray.base/opam | 2 +- .../packages/upstream/base-num.base/descr | 1 + .../packages/upstream/base-num.base/opam | 4 + .../packages/upstream/base-threads.base/opam | 2 +- .../packages/upstream/base-unix.base/opam | 2 +- repo/win32/packages/upstream/base.v0.9.2/url | 2 - .../{base.v0.9.2 => base.v0.9.3}/descr | 0 .../files/base-0.9.3.patch} | 11 + .../{base.v0.9.2 => base.v0.9.3}/opam | 18 +- repo/win32/packages/upstream/base.v0.9.3/url | 2 + .../packages/upstream/base64.2.1.2/descr | 10 - repo/win32/packages/upstream/base64.2.1.2/url | 2 - .../packages/upstream/base64.2.2.0/descr | 26 + .../packages/upstream/base64.2.2.0}/opam | 12 +- repo/win32/packages/upstream/base64.2.2.0/url | 2 + .../packages/upstream/cohttp-lwt.0.99.0/descr | 27 + .../packages/upstream/cohttp-lwt.0.99.0/opam | 31 + .../packages/upstream/cohttp-lwt.0.99.0/url | 2 + .../packages/upstream/cohttp.0.22.0/descr | 9 - .../files/ocaml-cohttp-0.22.0.patch | 64 - .../packages/upstream/cohttp.0.22.0/opam | 54 - .../win32/packages/upstream/cohttp.0.22.0/url | 2 - .../packages/upstream/cohttp.0.99.0/descr | 27 + .../packages/upstream/cohttp.0.99.0/opam | 40 + .../win32/packages/upstream/cohttp.0.99.0/url | 2 + .../packages/upstream/conduit-lwt.1.0.0/descr | 37 + .../packages/upstream/conduit-lwt.1.0.0/opam | 20 + .../packages/upstream/conduit-lwt.1.0.0/url | 2 + .../packages/upstream/conduit.0.14.5/descr | 15 - .../packages/upstream/conduit.0.14.5/opam | 53 - .../packages/upstream/conduit.0.14.5/url | 2 - .../packages/upstream/conduit.1.0.0/descr | 37 + .../packages/upstream/conduit.1.0.0/opam | 24 + .../win32/packages/upstream/conduit.1.0.0/url | 2 + .../packages/upstream/conf-autoconf.0.1/descr | 3 + .../packages/upstream/conf-autoconf.0.1/opam | 30 + repo/win32/packages/upstream/conf-gmp.1/descr | 2 + .../upstream/conf-gmp.1/files/test-win.sh | 4 + .../packages/upstream/conf-gmp.1/files/test.c | 8 + repo/win32/packages/upstream/conf-gmp.1/opam | 24 + .../win32/packages/upstream/conf-perl.1/descr | 2 + repo/win32/packages/upstream/conf-perl.1/opam | 15 + .../win32/packages/upstream/conf-which.1/opam | 7 +- .../packages/upstream/config-file.1.2/findlib | 1 - .../upstream/configurator.v0.9.1/descr | 11 + .../upstream/configurator.v0.9.1/opam | 19 + .../packages/upstream/configurator.v0.9.1/url | 2 + .../packages/upstream/cppo.1.5.0/findlib | 1 - .../win32/packages/upstream/cpuid.0.1.1/descr | 26 + repo/win32/packages/upstream/cpuid.0.1.1/opam | 19 + repo/win32/packages/upstream/cpuid.0.1.1/url | 2 + .../packages/upstream/cstruct-lwt.0/descr | 4 - .../packages/upstream/cstruct-lwt.3.1.1/descr | 5 + .../packages/upstream/cstruct-lwt.3.1.1}/opam | 13 +- .../packages/upstream/cstruct-lwt.3.1.1/url | 2 + .../upstream/cstruct-unix.3.1.1/descr | 5 + .../upstream/cstruct-unix.3.1.1}/opam | 15 +- .../packages/upstream/cstruct-unix.3.1.1/url | 2 + .../packages/upstream/cstruct.2.4.1/descr | 22 - .../files/ocaml-cstruct-2.4.1.patch | 38 - .../files/patch-oasis-cstruct.2.4.1 | 996 ------- .../packages/upstream/cstruct.2.4.1/opam | 65 - .../win32/packages/upstream/cstruct.2.4.1/url | 2 - .../packages/upstream/cstruct.3.1.1/descr | 5 + .../packages/upstream/cstruct.3.1.1/opam | 24 + .../win32/packages/upstream/cstruct.3.1.1/url | 2 + .../packages/upstream/cygwinpath.0.1.2/url | 2 - .../descr | 0 .../opam | 0 .../packages/upstream/cygwinpath.0.1.3/url | 2 + .../upstream/datakit-server-9p.0.11.0/descr | 12 + .../upstream/datakit-server-9p.0.11.0/opam | 19 + .../upstream/datakit-server-9p.0.11.0/url | 2 + .../descr | 0 .../upstream/datakit-server.0.11.0/opam | 21 + .../upstream/datakit-server.0.11.0/url | 2 + .../upstream/datakit-server.0.9.0/opam | 25 - .../upstream/datakit-server.0.9.0/url | 2 - repo/win32/packages/upstream/depext.1.0.4/url | 3 - .../{depext.1.0.4 => depext.1.0.5}/descr | 0 .../files/opam-depext-1.0.5.patch} | 4 +- .../{depext.1.0.4 => depext.1.0.5}/opam | 2 +- repo/win32/packages/upstream/depext.1.0.5/url | 2 + .../packages/upstream/dns-forward.0.9.0/descr | 8 + .../packages/upstream/dns-forward.0.9.0/opam | 35 + .../packages/upstream/dns-forward.0.9.0/url | 2 + .../packages/upstream/dns-lwt.1.0.0/descr | 29 + .../packages/upstream/dns-lwt.1.0.0/opam | 25 + .../win32/packages/upstream/dns-lwt.1.0.0/url | 2 + repo/win32/packages/upstream/dns.1.0.0/descr | 29 + repo/win32/packages/upstream/dns.1.0.0/opam | 32 + repo/win32/packages/upstream/dns.1.0.0/url | 2 + .../win32/packages/upstream/dnssd.0.5.0/descr | 19 + repo/win32/packages/upstream/dnssd.0.5.0/opam | 32 + repo/win32/packages/upstream/dnssd.0.5.0/url | 2 + .../packages/upstream/duration.0.1.0/opam | 2 +- .../upstream/fd-send-recv.1.0.4/descr | 1 + .../packages/upstream/fd-send-recv.1.0.4/opam | 25 + .../packages/upstream/fd-send-recv.1.0.4/url | 2 + repo/win32/packages/upstream/fmt.0.8.3/url | 2 - .../upstream/{fmt.0.8.3 => fmt.0.8.4}/descr | 0 .../upstream/{fmt.0.8.3 => fmt.0.8.4}/opam | 0 repo/win32/packages/upstream/fmt.0.8.4/url | 2 + .../packages/upstream/hashcons.1.0.1/url | 2 - .../{hashcons.1.0.1 => hashcons.1.2}/descr | 0 .../{hashcons.1.0.1 => hashcons.1.2}/opam | 2 + repo/win32/packages/upstream/hashcons.1.2/url | 3 + repo/win32/packages/upstream/hex.1.1.0/url | 2 - .../upstream/{hex.1.1.0 => hex.1.1.1}/descr | 0 .../packages/upstream/hex.1.1.1}/opam | 8 +- repo/win32/packages/upstream/hex.1.1.1/url | 2 + .../packages/upstream/hvsock.1.0.0/descr | 13 + .../win32/packages/upstream/hvsock.1.0.0/opam | 37 + repo/win32/packages/upstream/hvsock.1.0.0/url | 2 + .../upstream/io-page-unix.2.0.0/descr | 1 + .../packages/upstream/io-page-unix.2.0.0/opam | 25 + .../packages/upstream/io-page-unix.2.0.0/url | 2 + .../packages/upstream/io-page.2.0.0/descr | 1 + .../packages/upstream/io-page.2.0.0/opam | 23 + .../win32/packages/upstream/io-page.2.0.0/url | 2 + repo/win32/packages/upstream/ipaddr.2.7.2/url | 2 - .../{ipaddr.2.7.2 => ipaddr.2.8.0}/descr | 0 .../packages/upstream/ipaddr.2.8.0}/opam | 20 +- repo/win32/packages/upstream/ipaddr.2.8.0/url | 2 + .../descr | 0 .../opam | 1 - .../packages/upstream/jbuilder.1.0+beta11/url | 2 + .../files/jbuilder-1.0+beta9.patch | 51 - .../packages/upstream/jbuilder.1.0+beta9/url | 2 - .../upstream/lwt.2.7.1/files/lwt-2.7.1.patch | 994 ------- .../upstream/lwt.2.7.1/files/lwt.install | 6 - repo/win32/packages/upstream/lwt.2.7.1/url | 2 - .../packages/upstream/lwt.3.1.0}/descr | 2 +- .../upstream/lwt.3.1.0/files/lwt-3.1.0.patch | 18 + .../upstream/{lwt.2.7.1 => lwt.3.1.0}/opam | 55 +- repo/win32/packages/upstream/lwt.3.1.0/url | 2 + .../packages/upstream/magic-mime.1.0.1/url | 2 - .../packages/upstream/magic-mime.1.1.0}/descr | 15 +- .../packages/upstream/magic-mime.1.1.0}/opam | 6 +- .../packages/upstream/magic-mime.1.1.0/url | 2 + .../packages/upstream/menhir.20170509/findlib | 2 - .../packages/upstream/menhir.20170509/url | 2 - .../descr | 0 .../files/menhir-20170712.patch} | 0 .../{menhir.20170509 => menhir.20170712}/opam | 2 +- .../packages/upstream/menhir.20170712/url | 2 + .../upstream/mirage-block-unix.2.8.2/descr | 1 - .../upstream/mirage-block-unix.2.8.2/opam | 36 - .../upstream/mirage-block-unix.2.8.2/url | 2 - .../upstream/mirage-channel-lwt.3.1.0/descr | 29 + .../upstream/mirage-channel-lwt.3.1.0/opam | 32 + .../upstream/mirage-channel-lwt.3.1.0/url | 2 + .../upstream/mirage-channel.3.1.0/descr | 29 + .../upstream/mirage-channel.3.1.0/opam | 22 + .../upstream/mirage-channel.3.1.0/url | 2 + .../upstream/mirage-clock-lwt.1.3.0/descr | 15 + .../upstream/mirage-clock-lwt.1.3.0/opam | 19 + .../upstream/mirage-clock-lwt.1.3.0/url | 2 + .../upstream/mirage-clock-unix.1.0.0/descr | 1 - .../upstream/mirage-clock-unix.1.0.0/findlib | 1 - .../upstream/mirage-clock-unix.1.0.0/opam | 14 - .../upstream/mirage-clock-unix.1.0.0/url | 2 - .../upstream/mirage-clock-unix.1.4.0/descr | 15 + .../upstream/mirage-clock-unix.1.4.0/opam | 22 + .../upstream/mirage-clock-unix.1.4.0/url | 2 + .../upstream/mirage-clock.1.3.0/descr | 15 + .../packages/upstream/mirage-clock.1.3.0/opam | 17 + .../packages/upstream/mirage-clock.1.3.0/url | 2 + .../upstream/mirage-conduit.2.2.0/descr | 1 - .../upstream/mirage-conduit.2.2.0/opam | 19 - .../upstream/mirage-conduit.3.0.1/descr | 35 + .../upstream/mirage-conduit.3.0.1/opam | 25 + .../upstream/mirage-conduit.3.0.1/url | 2 + .../upstream/mirage-console-lwt.2.3.5/descr | 40 + .../upstream/mirage-console-lwt.2.3.5/opam | 23 + .../upstream/mirage-console-lwt.2.3.5/url | 2 + .../upstream/mirage-console-unix.2.3.5/descr | 40 + .../upstream/mirage-console-unix.2.3.5/opam | 23 + .../upstream/mirage-console-unix.2.3.5/url | 2 + .../upstream/mirage-console.2.1.3/descr | 1 - .../upstream/mirage-console.2.1.3/opam | 36 - .../upstream/mirage-console.2.1.3/url | 2 - .../upstream/mirage-console.2.3.5/descr | 40 + .../upstream/mirage-console.2.3.5/opam | 21 + .../upstream/mirage-console.2.3.5/url | 2 + .../packages/upstream/mirage-device.1.0.0/url | 2 - .../descr | 0 .../opam | 11 +- .../packages/upstream/mirage-device.1.1.0/url | 2 + .../packages/upstream/mirage-dns.2.5.0/descr | 1 - .../packages/upstream/mirage-dns.2.5.0/opam | 25 - .../packages/upstream/mirage-dns.3.0.0/descr | 29 + .../packages/upstream/mirage-dns.3.0.0/opam | 24 + .../packages/upstream/mirage-dns.3.0.0/url | 2 + .../upstream/mirage-flow-lwt.1.4.0/descr | 1 + .../upstream/mirage-flow-lwt.1.4.0/opam | 24 + .../upstream/mirage-flow-lwt.1.4.0/url | 2 + .../packages/upstream/mirage-flow.1.1.0/descr | 5 - .../upstream/mirage-flow.1.1.0/findlib | 1 - .../packages/upstream/mirage-flow.1.1.0/opam | 29 - .../packages/upstream/mirage-flow.1.1.0/url | 2 - .../packages/upstream/mirage-flow.1.3.0/descr | 10 + .../packages/upstream/mirage-flow.1.3.0/opam | 19 + .../packages/upstream/mirage-flow.1.3.0/url | 2 + .../upstream/mirage-fs-lwt.1.1.1/descr | 9 + .../upstream/mirage-fs-lwt.1.1.1/opam | 25 + .../packages/upstream/mirage-fs-lwt.1.1.1/url | 2 + .../packages/upstream/mirage-fs.1.1.1/descr | 9 + .../packages/upstream/mirage-fs.1.1.1/opam | 22 + .../packages/upstream/mirage-fs.1.1.1/url | 2 + .../packages/upstream/mirage-http.2.5.3/descr | 1 - .../packages/upstream/mirage-http.2.5.3/opam | 21 - .../packages/upstream/mirage-http.2.5.3/url | 2 - .../packages/upstream/mirage-http.3.2.0/descr | 27 + .../packages/upstream/mirage-http.3.2.0/opam | 30 + .../packages/upstream/mirage-http.3.2.0/url | 2 + .../upstream/mirage-kv-lwt.1.1.0/descr | 1 + .../upstream/mirage-kv-lwt.1.1.0/opam | 23 + .../packages/upstream/mirage-kv-lwt.1.1.0/url | 2 + .../packages/upstream/mirage-kv.1.1.1/descr | 9 + .../packages/upstream/mirage-kv.1.1.1/opam | 22 + .../packages/upstream/mirage-kv.1.1.1/url | 2 + .../upstream/mirage-net-lwt.1.1.0/descr | 1 + .../upstream/mirage-net-lwt.1.1.0/opam | 23 + .../upstream/mirage-net-lwt.1.1.0/url | 2 + .../packages/upstream/mirage-net.1.1.1/descr | 22 + .../packages/upstream/mirage-net.1.1.1/opam | 23 + .../packages/upstream/mirage-net.1.1.1/url | 2 + .../packages/upstream/mirage-no-solo5.1/descr | 1 + .../packages/upstream/mirage-no-solo5.1/opam | 6 + .../packages/upstream/mirage-no-xen.1/descr | 1 + .../packages/upstream/mirage-no-xen.1/opam | 6 + .../upstream/mirage-profile.0.7.0/descr | 6 - .../upstream/mirage-profile.0.7.0/opam | 32 - .../upstream/mirage-profile.0.7.0/url | 2 - .../upstream/mirage-profile.0.8.1/descr | 3 + .../upstream/mirage-profile.0.8.1/opam | 22 + .../upstream/mirage-profile.0.8.1/url | 2 + .../upstream/mirage-protocols-lwt.1.2.0/descr | 14 + .../upstream/mirage-protocols-lwt.1.2.0/opam | 24 + .../upstream/mirage-protocols-lwt.1.2.0/url | 2 + .../upstream/mirage-protocols.1.2.0/descr | 14 + .../upstream/mirage-protocols.1.2.0/opam | 23 + .../upstream/mirage-protocols.1.2.0/url | 2 + .../upstream/mirage-random.1.1.0/descr | 25 + .../upstream/mirage-random.1.1.0/opam | 21 + .../packages/upstream/mirage-random.1.1.0/url | 2 + .../upstream/mirage-stack-lwt.1.1.0/descr | 12 + .../upstream/mirage-stack-lwt.1.1.0/opam | 24 + .../upstream/mirage-stack-lwt.1.1.0/url | 2 + .../upstream/mirage-stack.1.1.0/descr | 12 + .../packages/upstream/mirage-stack.1.1.0/opam | 23 + .../packages/upstream/mirage-stack.1.1.0/url | 2 + .../upstream/mirage-time-lwt.1.1.0/descr | 22 + .../upstream/mirage-time-lwt.1.1.0/opam | 22 + .../upstream/mirage-time-lwt.1.1.0/url | 2 + .../upstream/mirage-time-unix.1.2.0/descr | 1 + .../upstream/mirage-time-unix.1.2.0/opam | 22 + .../upstream/mirage-time-unix.1.2.0/url | 2 + .../packages/upstream/mirage-time.1.1.0/descr | 22 + .../packages/upstream/mirage-time.1.1.0/opam | 21 + .../packages/upstream/mirage-time.1.1.0/url | 2 + .../upstream/mirage-types-lwt.3.0.0/descr | 14 + .../upstream/mirage-types-lwt.3.0.0/opam | 31 + .../upstream/mirage-types-lwt.3.0.0/url | 2 + .../upstream/mirage-types.3.0.0/descr | 1 + .../packages/upstream/mirage-types.3.0.0/opam | 28 + .../packages/upstream/mirage-types.3.0.0/url | 2 + .../packages/upstream/mirage-unix.2.6.0/descr | 1 - .../packages/upstream/mirage-unix.2.6.0/opam | 23 - .../packages/upstream/mirage-unix.2.6.0/url | 2 - .../upstream/mirage-vnetif.0.2.0/descr | 6 - .../upstream/mirage-vnetif.0.2.0/opam | 19 - .../packages/upstream/mirage-vnetif.0.2.0/url | 2 - .../upstream/mirage-vnetif.0.4.0/descr | 89 + .../upstream/mirage-vnetif.0.4.0/opam | 30 + .../packages/upstream/mirage-vnetif.0.4.0/url | 2 + repo/win32/packages/upstream/mtime.1.0.0/url | 2 - .../{mtime.1.0.0 => mtime.1.1.0}/descr | 0 .../files/mtime-1.1.0.patch} | 0 .../{mtime.1.0.0 => mtime.1.1.0}/opam | 2 +- repo/win32/packages/upstream/mtime.1.1.0/url | 2 + .../packages/upstream/nocrypto.0.5.4/descr | 9 + .../packages/upstream/nocrypto.0.5.4/opam | 41 + .../packages/upstream/nocrypto.0.5.4/url | 2 + repo/win32/packages/upstream/num.0/descr | 1 + repo/win32/packages/upstream/num.0/opam | 16 + .../packages/upstream/oasis.0.4.10/descr | 23 + .../oasis.0.4.10/files/oasis-0.4.10.patch | 2417 +++++++++++++++++ .../upstream/oasis.0.4.10/files/oasis.install | 5 + .../win32/packages/upstream/oasis.0.4.10/opam | 33 + repo/win32/packages/upstream/oasis.0.4.10/url | 2 + .../descr | 0 .../opam | 12 +- .../ocaml-migrate-parsetree.1.0.1/url | 3 + .../upstream/ocaml-migrate-parsetree.1.0/url | 3 - .../packages/upstream/ocamlfind.1.7.2/findlib | 12 - .../packages/upstream/ocamlfind.1.7.2/url | 2 - .../descr | 0 .../files/findlib-1.7.3.patch} | 6 +- .../{ocamlfind.1.7.2 => ocamlfind.1.7.3}/opam | 2 +- .../packages/upstream/ocamlfind.1.7.3/url | 2 + .../packages/upstream/ocamlify.0.0.1/descr | 5 + .../ocamlify.0.0.1/files/ocamlify.install | 1 + .../packages/upstream/ocamlify.0.0.1/opam | 11 + .../packages/upstream/ocamlify.0.0.1/url | 2 + .../packages/upstream/ocamlmod.0.0.8/descr | 1 + .../ocamlmod.0.0.8/files/_oasis_remove_.ml | 7 + .../ocamlmod.0.0.8/files/ocamlmod.install | 6 + .../packages/upstream/ocamlmod.0.0.8/opam | 26 + .../packages/upstream/ocamlmod.0.0.8/url | 2 + .../packages/upstream/octavius.1.1.0/descr | 3 + .../packages/upstream/octavius.1.1.0/opam | 22 + .../packages/upstream/octavius.1.1.0/url | 2 + .../packages/upstream/ounit.2.0.0/findlib | 2 - repo/win32/packages/upstream/ounit.2.0.0/opam | 2 +- .../packages/upstream/ppx_base.v0.9.0/descr | 6 + .../packages/upstream/ppx_base.v0.9.0/opam | 22 + .../packages/upstream/ppx_base.v0.9.0/url | 2 + .../upstream/ppx_compare.v0.9.0/descr | 3 + .../packages/upstream/ppx_compare.v0.9.0/opam | 20 + .../packages/upstream/ppx_compare.v0.9.0/url | 2 + .../packages/upstream/ppx_cstruct.0/descr | 4 - .../packages/upstream/ppx_cstruct.3.1.1/descr | 5 + .../packages/upstream/ppx_cstruct.3.1.1/opam | 28 + .../packages/upstream/ppx_cstruct.3.1.1/url | 2 + .../upstream/ppx_enumerate.v0.9.0/descr | 3 + .../upstream/ppx_enumerate.v0.9.0/opam | 19 + .../upstream/ppx_enumerate.v0.9.0/url | 2 + .../packages/upstream/ppx_hash.v0.9.0/descr | 3 + .../packages/upstream/ppx_hash.v0.9.0/opam | 22 + .../packages/upstream/ppx_hash.v0.9.0/url | 2 + .../upstream/ppx_js_style.v0.9.0/descr | 6 + .../upstream/ppx_js_style.v0.9.0/opam | 19 + .../packages/upstream/ppx_js_style.v0.9.0/url | 2 + .../upstream/ppx_tools.5.0+4.03.0/findlib | 1 - .../packages/upstream/prometheus.0.3/descr | 72 + .../packages/upstream/prometheus.0.3/opam | 24 + .../packages/upstream/prometheus.0.3/url | 2 + .../upstream/protocol-9p-unix.0.11.2/descr | 2 + .../upstream/protocol-9p-unix.0.11.2/opam | 41 + .../upstream/protocol-9p-unix.0.11.2/url | 2 + .../descr | 4 +- .../packages/upstream/protocol-9p.0.11.2/opam | 38 + .../packages/upstream/protocol-9p.0.11.2/url | 2 + .../packages/upstream/protocol-9p.0.8.0/url | 2 - .../win32/packages/upstream/ptime.0.8.3/descr | 20 + repo/win32/packages/upstream/ptime.0.8.3/opam | 21 + repo/win32/packages/upstream/ptime.0.8.3/url | 2 + .../packages/upstream/randomconv.0.1.0/descr | 5 + .../packages/upstream/randomconv.0.1.0/opam | 19 + .../packages/upstream/randomconv.0.1.0/url | 2 + .../packages/upstream/sexplib.v0.9.1/url | 2 - .../{sexplib.v0.9.1 => sexplib.v0.9.2}/descr | 0 .../files/winconfigure | 2 +- .../{sexplib.v0.9.1 => sexplib.v0.9.2}/opam | 6 +- .../packages/upstream/sexplib.v0.9.2/url | 2 + .../upstream/shared-memory-ring.1.3.0/descr | 3 - .../upstream/shared-memory-ring.1.3.0/findlib | 1 - .../upstream/shared-memory-ring.1.3.0/opam | 26 - .../upstream/shared-memory-ring.1.3.0/url | 2 - .../packages/upstream/tar-format.0.6.1/descr | 8 - .../upstream/tar-format.0.6.1/findlib | 1 - .../packages/upstream/tar-format.0.6.1/opam | 37 - .../packages/upstream/tar-format.0.6.1/url | 2 - repo/win32/packages/upstream/tar.0.8.0/descr | 6 + repo/win32/packages/upstream/tar.0.8.0/opam | 27 + repo/win32/packages/upstream/tar.0.8.0/url | 2 + repo/win32/packages/upstream/tls.0.8.0/descr | 15 + repo/win32/packages/upstream/tls.0.8.0/opam | 55 + repo/win32/packages/upstream/tls.0.8.0/url | 2 + .../{uchar.0.0.1 => uchar.0.0.2}/descr | 0 .../{uchar.0.0.1 => uchar.0.0.2}/opam | 4 +- .../upstream/{uchar.0.0.1 => uchar.0.0.2}/url | 4 +- repo/win32/packages/upstream/uri.1.9.2/url | 2 - .../upstream/{uri.1.9.2 => uri.1.9.4}/descr | 0 .../packages/upstream/uri.1.9.4}/opam | 30 +- repo/win32/packages/upstream/uri.1.9.4/url | 2 + repo/win32/packages/upstream/uuidm.0.9.6/opam | 1 + repo/win32/packages/upstream/uwt.0.2.0/url | 3 - .../upstream/{uwt.0.2.0 => uwt.0.2.1}/descr | 0 .../upstream/{uwt.0.2.0 => uwt.0.2.1}/opam | 0 repo/win32/packages/upstream/uwt.0.2.1/url | 3 + .../win32/packages/upstream/vchan.3.0.0/descr | 4 + repo/win32/packages/upstream/vchan.3.0.0/opam | 37 + repo/win32/packages/upstream/vchan.3.0.0/url | 2 + .../packages/upstream/win-error.0.2/findlib | 1 - .../upstream/win-eventlog.0.1/findlib | 1 - repo/win32/packages/upstream/x509.0.5.3/descr | 4 + repo/win32/packages/upstream/x509.0.5.3/opam | 40 + repo/win32/packages/upstream/x509.0.5.3/url | 2 + .../packages/upstream/xenstore.1.4.0/descr | 1 + .../packages/upstream/xenstore.1.4.0/opam | 29 + .../packages/upstream/xenstore.1.4.0/url | 2 + .../upstream/xenstore_transport.0.9.6/descr | 6 + .../upstream/xenstore_transport.0.9.6/opam | 35 + .../upstream/xenstore_transport.0.9.6/url | 2 + repo/win32/packages/upstream/zarith.1.5/descr | 5 + .../zarith.1.5/files/Zarith-release-1.5.patch | 236 ++ repo/win32/packages/upstream/zarith.1.5/opam | 22 + repo/win32/packages/upstream/zarith.1.5/url | 2 + 801 files changed, 9566 insertions(+), 3906 deletions(-) create mode 100644 repo/darwin/packages/upstream/asetmap.0.8.1/descr create mode 100644 repo/darwin/packages/upstream/asetmap.0.8.1/opam create mode 100644 repo/darwin/packages/upstream/asetmap.0.8.1/url create mode 100644 repo/darwin/packages/upstream/asn1-combinators.0.1.3/descr create mode 100644 repo/darwin/packages/upstream/asn1-combinators.0.1.3/opam create mode 100644 repo/darwin/packages/upstream/asn1-combinators.0.1.3/url create mode 100644 repo/darwin/packages/upstream/base-num.base/descr create mode 100644 repo/darwin/packages/upstream/base-num.base/opam delete mode 100644 repo/darwin/packages/upstream/base.v0.9.2/url rename repo/darwin/packages/upstream/{base.v0.9.2 => base.v0.9.3}/descr (100%) rename repo/darwin/packages/upstream/{base.v0.9.2 => base.v0.9.3}/opam (55%) create mode 100644 repo/darwin/packages/upstream/base.v0.9.3/url delete mode 100644 repo/darwin/packages/upstream/base64.2.1.2/descr delete mode 100644 repo/darwin/packages/upstream/base64.2.1.2/url create mode 100644 repo/darwin/packages/upstream/base64.2.2.0/descr rename repo/{win32/packages/upstream/base64.2.1.2 => darwin/packages/upstream/base64.2.2.0}/opam (65%) create mode 100644 repo/darwin/packages/upstream/base64.2.2.0/url create mode 100644 repo/darwin/packages/upstream/cohttp-lwt.0.99.0/descr create mode 100644 repo/darwin/packages/upstream/cohttp-lwt.0.99.0/opam create mode 100644 repo/darwin/packages/upstream/cohttp-lwt.0.99.0/url delete mode 100644 repo/darwin/packages/upstream/cohttp.0.22.0/descr delete mode 100644 repo/darwin/packages/upstream/cohttp.0.22.0/opam delete mode 100644 repo/darwin/packages/upstream/cohttp.0.22.0/url create mode 100644 repo/darwin/packages/upstream/cohttp.0.99.0/descr create mode 100644 repo/darwin/packages/upstream/cohttp.0.99.0/opam create mode 100644 repo/darwin/packages/upstream/cohttp.0.99.0/url create mode 100644 repo/darwin/packages/upstream/conduit-lwt.1.0.0/descr create mode 100644 repo/darwin/packages/upstream/conduit-lwt.1.0.0/opam create mode 100644 repo/darwin/packages/upstream/conduit-lwt.1.0.0/url delete mode 100644 repo/darwin/packages/upstream/conduit.0.14.5/descr delete mode 100644 repo/darwin/packages/upstream/conduit.0.14.5/opam delete mode 100644 repo/darwin/packages/upstream/conduit.0.14.5/url create mode 100644 repo/darwin/packages/upstream/conduit.1.0.0/descr create mode 100644 repo/darwin/packages/upstream/conduit.1.0.0/opam create mode 100644 repo/darwin/packages/upstream/conduit.1.0.0/url create mode 100644 repo/darwin/packages/upstream/conf-autoconf.0.1/descr create mode 100644 repo/darwin/packages/upstream/conf-autoconf.0.1/opam create mode 100644 repo/darwin/packages/upstream/conf-gmp.1/descr create mode 100644 repo/darwin/packages/upstream/conf-gmp.1/files/test.c create mode 100644 repo/darwin/packages/upstream/conf-gmp.1/opam create mode 100644 repo/darwin/packages/upstream/conf-perl.1/descr create mode 100644 repo/darwin/packages/upstream/conf-perl.1/opam create mode 100644 repo/darwin/packages/upstream/configurator.v0.9.1/descr create mode 100644 repo/darwin/packages/upstream/configurator.v0.9.1/opam create mode 100644 repo/darwin/packages/upstream/configurator.v0.9.1/url delete mode 100644 repo/darwin/packages/upstream/cppo.1.5.0/findlib create mode 100644 repo/darwin/packages/upstream/cpuid.0.1.1/descr create mode 100644 repo/darwin/packages/upstream/cpuid.0.1.1/opam create mode 100644 repo/darwin/packages/upstream/cpuid.0.1.1/url delete mode 100644 repo/darwin/packages/upstream/cstruct-lwt.0/descr create mode 100644 repo/darwin/packages/upstream/cstruct-lwt.3.1.1/descr rename repo/{win32/packages/upstream/cstruct-lwt.0 => darwin/packages/upstream/cstruct-lwt.3.1.1}/opam (62%) create mode 100644 repo/darwin/packages/upstream/cstruct-lwt.3.1.1/url create mode 100644 repo/darwin/packages/upstream/cstruct-unix.3.1.1/descr rename repo/{win32/packages/upstream/ppx_cstruct.0 => darwin/packages/upstream/cstruct-unix.3.1.1}/opam (62%) create mode 100644 repo/darwin/packages/upstream/cstruct-unix.3.1.1/url delete mode 100644 repo/darwin/packages/upstream/cstruct.2.4.1/descr delete mode 100644 repo/darwin/packages/upstream/cstruct.2.4.1/opam delete mode 100644 repo/darwin/packages/upstream/cstruct.2.4.1/url create mode 100644 repo/darwin/packages/upstream/cstruct.3.1.1/descr create mode 100644 repo/darwin/packages/upstream/cstruct.3.1.1/opam create mode 100644 repo/darwin/packages/upstream/cstruct.3.1.1/url create mode 100644 repo/darwin/packages/upstream/datakit-server-9p.0.11.0/descr create mode 100644 repo/darwin/packages/upstream/datakit-server-9p.0.11.0/opam create mode 100644 repo/darwin/packages/upstream/datakit-server-9p.0.11.0/url rename repo/darwin/packages/upstream/{datakit-server.0.9.0 => datakit-server.0.11.0}/descr (100%) create mode 100644 repo/darwin/packages/upstream/datakit-server.0.11.0/opam create mode 100644 repo/darwin/packages/upstream/datakit-server.0.11.0/url delete mode 100644 repo/darwin/packages/upstream/datakit-server.0.9.0/opam delete mode 100644 repo/darwin/packages/upstream/datakit-server.0.9.0/url delete mode 100644 repo/darwin/packages/upstream/depext.1.0.4/url rename repo/darwin/packages/upstream/{depext.1.0.4 => depext.1.0.5}/descr (100%) rename repo/darwin/packages/upstream/{depext.1.0.4 => depext.1.0.5}/opam (100%) create mode 100644 repo/darwin/packages/upstream/depext.1.0.5/url create mode 100644 repo/darwin/packages/upstream/dns-forward.0.9.0/descr create mode 100644 repo/darwin/packages/upstream/dns-forward.0.9.0/opam create mode 100644 repo/darwin/packages/upstream/dns-forward.0.9.0/url create mode 100644 repo/darwin/packages/upstream/dns-lwt.1.0.0/descr create mode 100644 repo/darwin/packages/upstream/dns-lwt.1.0.0/opam create mode 100644 repo/darwin/packages/upstream/dns-lwt.1.0.0/url create mode 100644 repo/darwin/packages/upstream/dns.1.0.0/descr create mode 100644 repo/darwin/packages/upstream/dns.1.0.0/opam create mode 100644 repo/darwin/packages/upstream/dns.1.0.0/url create mode 100644 repo/darwin/packages/upstream/dnssd.0.5.0/descr create mode 100644 repo/darwin/packages/upstream/dnssd.0.5.0/opam create mode 100644 repo/darwin/packages/upstream/dnssd.0.5.0/url create mode 100644 repo/darwin/packages/upstream/fd-send-recv.1.0.4/descr create mode 100644 repo/darwin/packages/upstream/fd-send-recv.1.0.4/opam create mode 100644 repo/darwin/packages/upstream/fd-send-recv.1.0.4/url delete mode 100644 repo/darwin/packages/upstream/fmt.0.8.3/url rename repo/darwin/packages/upstream/{fmt.0.8.3 => fmt.0.8.4}/descr (100%) rename repo/darwin/packages/upstream/{fmt.0.8.3 => fmt.0.8.4}/opam (100%) create mode 100644 repo/darwin/packages/upstream/fmt.0.8.4/url delete mode 100644 repo/darwin/packages/upstream/hashcons.1.0.1/url rename repo/darwin/packages/upstream/{hashcons.1.0.1 => hashcons.1.2}/descr (100%) rename repo/darwin/packages/upstream/{hashcons.1.0.1 => hashcons.1.2}/opam (92%) create mode 100644 repo/darwin/packages/upstream/hashcons.1.2/url delete mode 100644 repo/darwin/packages/upstream/hex.1.1.0/url rename repo/darwin/packages/upstream/{hex.1.1.0 => hex.1.1.1}/descr (100%) rename repo/{win32/packages/upstream/hex.1.1.0 => darwin/packages/upstream/hex.1.1.1}/opam (75%) create mode 100644 repo/darwin/packages/upstream/hex.1.1.1/url create mode 100644 repo/darwin/packages/upstream/hvsock.1.0.0/descr create mode 100644 repo/darwin/packages/upstream/hvsock.1.0.0/opam create mode 100644 repo/darwin/packages/upstream/hvsock.1.0.0/url rename repo/darwin/packages/upstream/{io-page.1.6.1 => io-page-unix.2.0.0}/descr (100%) rename repo/darwin/packages/upstream/{io-page.1.6.1 => io-page-unix.2.0.0}/opam (54%) create mode 100644 repo/darwin/packages/upstream/io-page-unix.2.0.0/url delete mode 100644 repo/darwin/packages/upstream/io-page.1.6.1/url create mode 100644 repo/darwin/packages/upstream/io-page.2.0.0/descr create mode 100644 repo/darwin/packages/upstream/io-page.2.0.0/opam create mode 100644 repo/darwin/packages/upstream/io-page.2.0.0/url delete mode 100644 repo/darwin/packages/upstream/ipaddr.2.7.2/url rename repo/darwin/packages/upstream/{ipaddr.2.7.2 => ipaddr.2.8.0}/descr (100%) rename repo/{win32/packages/upstream/ipaddr.2.7.2 => darwin/packages/upstream/ipaddr.2.8.0}/opam (57%) create mode 100644 repo/darwin/packages/upstream/ipaddr.2.8.0/url rename repo/darwin/packages/upstream/{jbuilder.1.0+beta9 => jbuilder.1.0+beta11}/descr (100%) rename repo/darwin/packages/upstream/{jbuilder.1.0+beta9 => jbuilder.1.0+beta11}/opam (100%) create mode 100644 repo/darwin/packages/upstream/jbuilder.1.0+beta11/url delete mode 100644 repo/darwin/packages/upstream/jbuilder.1.0+beta9/url delete mode 100644 repo/darwin/packages/upstream/lwt.2.7.1/files/lwt.install delete mode 100644 repo/darwin/packages/upstream/lwt.2.7.1/url rename repo/{win32/packages/upstream/lwt.2.7.1 => darwin/packages/upstream/lwt.3.1.0}/descr (91%) rename repo/darwin/packages/upstream/{lwt.2.7.1 => lwt.3.1.0}/opam (55%) create mode 100644 repo/darwin/packages/upstream/lwt.3.1.0/url delete mode 100644 repo/darwin/packages/upstream/magic-mime.1.0.1/url rename repo/{win32/packages/upstream/magic-mime.1.0.1 => darwin/packages/upstream/magic-mime.1.1.0}/descr (50%) rename repo/{win32/packages/upstream/magic-mime.1.0.1 => darwin/packages/upstream/magic-mime.1.1.0}/opam (80%) create mode 100644 repo/darwin/packages/upstream/magic-mime.1.1.0/url delete mode 100644 repo/darwin/packages/upstream/menhir.20170509/findlib delete mode 100644 repo/darwin/packages/upstream/menhir.20170509/url rename repo/darwin/packages/upstream/{menhir.20170509 => menhir.20170712}/descr (100%) rename repo/darwin/packages/upstream/{menhir.20170509 => menhir.20170712}/opam (100%) create mode 100644 repo/darwin/packages/upstream/menhir.20170712/url delete mode 100644 repo/darwin/packages/upstream/mirage-block-unix.2.8.2/descr delete mode 100644 repo/darwin/packages/upstream/mirage-block-unix.2.8.2/opam delete mode 100644 repo/darwin/packages/upstream/mirage-block-unix.2.8.2/url create mode 100644 repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/url create mode 100644 repo/darwin/packages/upstream/mirage-channel.3.1.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-channel.3.1.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-channel.3.1.0/url create mode 100644 repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/url delete mode 100644 repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/descr delete mode 100644 repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/findlib delete mode 100644 repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/opam delete mode 100644 repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/url create mode 100644 repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/url create mode 100644 repo/darwin/packages/upstream/mirage-clock.1.3.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-clock.1.3.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-clock.1.3.0/url delete mode 100644 repo/darwin/packages/upstream/mirage-conduit.2.2.0/descr delete mode 100644 repo/darwin/packages/upstream/mirage-conduit.2.2.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-conduit.3.0.1/descr create mode 100644 repo/darwin/packages/upstream/mirage-conduit.3.0.1/opam create mode 100644 repo/darwin/packages/upstream/mirage-conduit.3.0.1/url create mode 100644 repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/descr create mode 100644 repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/opam create mode 100644 repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/url create mode 100644 repo/darwin/packages/upstream/mirage-console-unix.2.3.5/descr create mode 100644 repo/darwin/packages/upstream/mirage-console-unix.2.3.5/opam create mode 100644 repo/darwin/packages/upstream/mirage-console-unix.2.3.5/url delete mode 100644 repo/darwin/packages/upstream/mirage-console.2.1.3/descr delete mode 100644 repo/darwin/packages/upstream/mirage-console.2.1.3/opam delete mode 100644 repo/darwin/packages/upstream/mirage-console.2.1.3/url create mode 100644 repo/darwin/packages/upstream/mirage-console.2.3.5/descr create mode 100644 repo/darwin/packages/upstream/mirage-console.2.3.5/opam create mode 100644 repo/darwin/packages/upstream/mirage-console.2.3.5/url delete mode 100644 repo/darwin/packages/upstream/mirage-device.1.0.0/url rename repo/darwin/packages/upstream/{mirage-device.1.0.0 => mirage-device.1.1.0}/descr (100%) rename repo/darwin/packages/upstream/{mirage-device.1.0.0 => mirage-device.1.1.0}/opam (80%) create mode 100644 repo/darwin/packages/upstream/mirage-device.1.1.0/url delete mode 100644 repo/darwin/packages/upstream/mirage-dns.2.5.0/descr delete mode 100644 repo/darwin/packages/upstream/mirage-dns.2.5.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-dns.3.0.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-dns.3.0.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-dns.3.0.0/url create mode 100644 repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/url delete mode 100644 repo/darwin/packages/upstream/mirage-flow.1.1.0/descr delete mode 100644 repo/darwin/packages/upstream/mirage-flow.1.1.0/findlib delete mode 100644 repo/darwin/packages/upstream/mirage-flow.1.1.0/opam delete mode 100644 repo/darwin/packages/upstream/mirage-flow.1.1.0/url create mode 100644 repo/darwin/packages/upstream/mirage-flow.1.3.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-flow.1.3.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-flow.1.3.0/url create mode 100644 repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/descr create mode 100644 repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/opam create mode 100644 repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/url create mode 100644 repo/darwin/packages/upstream/mirage-fs.1.1.1/descr create mode 100644 repo/darwin/packages/upstream/mirage-fs.1.1.1/opam create mode 100644 repo/darwin/packages/upstream/mirage-fs.1.1.1/url delete mode 100644 repo/darwin/packages/upstream/mirage-http.2.5.3/descr delete mode 100644 repo/darwin/packages/upstream/mirage-http.2.5.3/opam delete mode 100644 repo/darwin/packages/upstream/mirage-http.2.5.3/url create mode 100644 repo/darwin/packages/upstream/mirage-http.3.2.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-http.3.2.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-http.3.2.0/url create mode 100644 repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/url create mode 100644 repo/darwin/packages/upstream/mirage-kv.1.1.1/descr create mode 100644 repo/darwin/packages/upstream/mirage-kv.1.1.1/opam create mode 100644 repo/darwin/packages/upstream/mirage-kv.1.1.1/url create mode 100644 repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/url create mode 100644 repo/darwin/packages/upstream/mirage-net.1.1.1/descr create mode 100644 repo/darwin/packages/upstream/mirage-net.1.1.1/opam create mode 100644 repo/darwin/packages/upstream/mirage-net.1.1.1/url create mode 100644 repo/darwin/packages/upstream/mirage-no-solo5.1/descr create mode 100644 repo/darwin/packages/upstream/mirage-no-solo5.1/opam create mode 100644 repo/darwin/packages/upstream/mirage-no-xen.1/descr create mode 100644 repo/darwin/packages/upstream/mirage-no-xen.1/opam delete mode 100644 repo/darwin/packages/upstream/mirage-profile.0.7.0/descr delete mode 100644 repo/darwin/packages/upstream/mirage-profile.0.7.0/opam delete mode 100644 repo/darwin/packages/upstream/mirage-profile.0.7.0/url create mode 100644 repo/darwin/packages/upstream/mirage-profile.0.8.1/descr create mode 100644 repo/darwin/packages/upstream/mirage-profile.0.8.1/opam create mode 100644 repo/darwin/packages/upstream/mirage-profile.0.8.1/url create mode 100644 repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/url create mode 100644 repo/darwin/packages/upstream/mirage-protocols.1.2.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-protocols.1.2.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-protocols.1.2.0/url create mode 100644 repo/darwin/packages/upstream/mirage-random.1.1.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-random.1.1.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-random.1.1.0/url create mode 100644 repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/url create mode 100644 repo/darwin/packages/upstream/mirage-stack.1.1.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-stack.1.1.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-stack.1.1.0/url create mode 100644 repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/url create mode 100644 repo/darwin/packages/upstream/mirage-time-unix.1.2.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-time-unix.1.2.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-time-unix.1.2.0/url create mode 100644 repo/darwin/packages/upstream/mirage-time.1.1.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-time.1.1.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-time.1.1.0/url create mode 100644 repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/url create mode 100644 repo/darwin/packages/upstream/mirage-types.3.0.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-types.3.0.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-types.3.0.0/url delete mode 100644 repo/darwin/packages/upstream/mirage-unix.2.6.0/descr delete mode 100644 repo/darwin/packages/upstream/mirage-unix.2.6.0/opam delete mode 100644 repo/darwin/packages/upstream/mirage-unix.2.6.0/url delete mode 100644 repo/darwin/packages/upstream/mirage-vnetif.0.2.0/descr delete mode 100644 repo/darwin/packages/upstream/mirage-vnetif.0.2.0/opam delete mode 100644 repo/darwin/packages/upstream/mirage-vnetif.0.2.0/url create mode 100644 repo/darwin/packages/upstream/mirage-vnetif.0.4.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-vnetif.0.4.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-vnetif.0.4.0/url delete mode 100644 repo/darwin/packages/upstream/mtime.1.0.0/url rename repo/darwin/packages/upstream/{mtime.1.0.0 => mtime.1.1.0}/descr (100%) rename repo/darwin/packages/upstream/{mtime.1.0.0 => mtime.1.1.0}/opam (100%) create mode 100644 repo/darwin/packages/upstream/mtime.1.1.0/url create mode 100644 repo/darwin/packages/upstream/nocrypto.0.5.4/descr create mode 100644 repo/darwin/packages/upstream/nocrypto.0.5.4/opam create mode 100644 repo/darwin/packages/upstream/nocrypto.0.5.4/url create mode 100644 repo/darwin/packages/upstream/num.0/descr create mode 100644 repo/darwin/packages/upstream/num.0/opam create mode 100644 repo/darwin/packages/upstream/oasis.0.4.10/descr create mode 100644 repo/darwin/packages/upstream/oasis.0.4.10/files/oasis.install create mode 100644 repo/darwin/packages/upstream/oasis.0.4.10/opam create mode 100644 repo/darwin/packages/upstream/oasis.0.4.10/url rename repo/darwin/packages/upstream/{ocaml-migrate-parsetree.1.0 => ocaml-migrate-parsetree.1.0.1}/descr (100%) rename repo/darwin/packages/upstream/{ocaml-migrate-parsetree.1.0 => ocaml-migrate-parsetree.1.0.1}/opam (81%) create mode 100644 repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/url delete mode 100644 repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0/url delete mode 100644 repo/darwin/packages/upstream/ocamlfind.1.7.2/findlib delete mode 100644 repo/darwin/packages/upstream/ocamlfind.1.7.2/url rename repo/darwin/packages/upstream/{ocamlfind.1.7.2 => ocamlfind.1.7.3}/descr (100%) rename repo/darwin/packages/upstream/{ocamlfind.1.7.2 => ocamlfind.1.7.3}/files/ocaml-stub (100%) rename repo/darwin/packages/upstream/{ocamlfind.1.7.2 => ocamlfind.1.7.3}/files/ocamlfind.install (100%) rename repo/darwin/packages/upstream/{ocamlfind.1.7.2 => ocamlfind.1.7.3}/opam (100%) create mode 100644 repo/darwin/packages/upstream/ocamlfind.1.7.3/url create mode 100644 repo/darwin/packages/upstream/ocamlify.0.0.1/descr create mode 100644 repo/darwin/packages/upstream/ocamlify.0.0.1/files/ocamlify.install create mode 100644 repo/darwin/packages/upstream/ocamlify.0.0.1/opam create mode 100644 repo/darwin/packages/upstream/ocamlify.0.0.1/url create mode 100644 repo/darwin/packages/upstream/ocamlmod.0.0.8/descr create mode 100644 repo/darwin/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml create mode 100644 repo/darwin/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install create mode 100644 repo/darwin/packages/upstream/ocamlmod.0.0.8/opam create mode 100644 repo/darwin/packages/upstream/ocamlmod.0.0.8/url create mode 100644 repo/darwin/packages/upstream/octavius.1.1.0/descr create mode 100644 repo/darwin/packages/upstream/octavius.1.1.0/opam create mode 100644 repo/darwin/packages/upstream/octavius.1.1.0/url delete mode 100644 repo/darwin/packages/upstream/ounit.2.0.0/findlib create mode 100644 repo/darwin/packages/upstream/ppx_base.v0.9.0/descr create mode 100644 repo/darwin/packages/upstream/ppx_base.v0.9.0/opam create mode 100644 repo/darwin/packages/upstream/ppx_base.v0.9.0/url create mode 100644 repo/darwin/packages/upstream/ppx_compare.v0.9.0/descr create mode 100644 repo/darwin/packages/upstream/ppx_compare.v0.9.0/opam create mode 100644 repo/darwin/packages/upstream/ppx_compare.v0.9.0/url delete mode 100644 repo/darwin/packages/upstream/ppx_cstruct.0/descr create mode 100644 repo/darwin/packages/upstream/ppx_cstruct.3.1.1/descr create mode 100644 repo/darwin/packages/upstream/ppx_cstruct.3.1.1/opam create mode 100644 repo/darwin/packages/upstream/ppx_cstruct.3.1.1/url create mode 100644 repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/descr create mode 100644 repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/opam create mode 100644 repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/url create mode 100644 repo/darwin/packages/upstream/ppx_hash.v0.9.0/descr create mode 100644 repo/darwin/packages/upstream/ppx_hash.v0.9.0/opam create mode 100644 repo/darwin/packages/upstream/ppx_hash.v0.9.0/url create mode 100644 repo/darwin/packages/upstream/ppx_js_style.v0.9.0/descr create mode 100644 repo/darwin/packages/upstream/ppx_js_style.v0.9.0/opam create mode 100644 repo/darwin/packages/upstream/ppx_js_style.v0.9.0/url delete mode 100644 repo/darwin/packages/upstream/ppx_tools.5.0+4.03.0/findlib create mode 100644 repo/darwin/packages/upstream/prometheus.0.3/descr create mode 100644 repo/darwin/packages/upstream/prometheus.0.3/opam create mode 100644 repo/darwin/packages/upstream/prometheus.0.3/url create mode 100644 repo/darwin/packages/upstream/protocol-9p-unix.0.11.2/descr rename repo/darwin/packages/upstream/{protocol-9p.0.8.0 => protocol-9p-unix.0.11.2}/opam (54%) create mode 100644 repo/darwin/packages/upstream/protocol-9p-unix.0.11.2/url rename repo/darwin/packages/upstream/{protocol-9p.0.8.0 => protocol-9p.0.11.2}/descr (92%) rename repo/{win32/packages/upstream/protocol-9p.0.8.0 => darwin/packages/upstream/protocol-9p.0.11.2}/opam (54%) create mode 100644 repo/darwin/packages/upstream/protocol-9p.0.11.2/url delete mode 100644 repo/darwin/packages/upstream/protocol-9p.0.8.0/url create mode 100644 repo/darwin/packages/upstream/ptime.0.8.3/descr create mode 100644 repo/darwin/packages/upstream/ptime.0.8.3/opam create mode 100644 repo/darwin/packages/upstream/ptime.0.8.3/url delete mode 100644 repo/darwin/packages/upstream/qcheck.0.5.3.1/url rename repo/darwin/packages/upstream/{qcheck.0.5.3.1 => qcheck.0.6}/descr (100%) rename repo/darwin/packages/upstream/{qcheck.0.5.3.1 => qcheck.0.6}/opam (100%) create mode 100644 repo/darwin/packages/upstream/qcheck.0.6/url create mode 100644 repo/darwin/packages/upstream/randomconv.0.1.0/descr create mode 100644 repo/darwin/packages/upstream/randomconv.0.1.0/opam create mode 100644 repo/darwin/packages/upstream/randomconv.0.1.0/url delete mode 100644 repo/darwin/packages/upstream/sexplib.v0.9.1/url rename repo/darwin/packages/upstream/{sexplib.v0.9.1 => sexplib.v0.9.2}/descr (100%) rename repo/darwin/packages/upstream/{sexplib.v0.9.1 => sexplib.v0.9.2}/opam (75%) create mode 100644 repo/darwin/packages/upstream/sexplib.v0.9.2/url delete mode 100644 repo/darwin/packages/upstream/shared-memory-ring.1.3.0/descr delete mode 100644 repo/darwin/packages/upstream/shared-memory-ring.1.3.0/findlib delete mode 100644 repo/darwin/packages/upstream/shared-memory-ring.1.3.0/opam delete mode 100644 repo/darwin/packages/upstream/shared-memory-ring.1.3.0/url delete mode 100644 repo/darwin/packages/upstream/tar-format.0.6.1/descr delete mode 100644 repo/darwin/packages/upstream/tar-format.0.6.1/findlib delete mode 100644 repo/darwin/packages/upstream/tar-format.0.6.1/opam delete mode 100644 repo/darwin/packages/upstream/tar-format.0.6.1/url create mode 100644 repo/darwin/packages/upstream/tar.0.8.0/descr create mode 100644 repo/darwin/packages/upstream/tar.0.8.0/opam create mode 100644 repo/darwin/packages/upstream/tar.0.8.0/url create mode 100644 repo/darwin/packages/upstream/tls.0.8.0/descr create mode 100644 repo/darwin/packages/upstream/tls.0.8.0/opam create mode 100644 repo/darwin/packages/upstream/tls.0.8.0/url rename repo/darwin/packages/upstream/{uchar.0.0.1 => uchar.0.0.2}/descr (100%) rename repo/darwin/packages/upstream/{uchar.0.0.1 => uchar.0.0.2}/opam (94%) rename repo/darwin/packages/upstream/{uchar.0.0.1 => uchar.0.0.2}/url (50%) delete mode 100644 repo/darwin/packages/upstream/uri.1.9.2/url rename repo/darwin/packages/upstream/{uri.1.9.2 => uri.1.9.4}/descr (100%) rename repo/{win32/packages/upstream/uri.1.9.2 => darwin/packages/upstream/uri.1.9.4}/opam (51%) create mode 100644 repo/darwin/packages/upstream/uri.1.9.4/url delete mode 100644 repo/darwin/packages/upstream/uwt.0.2.0/url rename repo/darwin/packages/upstream/{uwt.0.2.0 => uwt.0.2.1}/descr (100%) rename repo/darwin/packages/upstream/{uwt.0.2.0 => uwt.0.2.1}/opam (100%) create mode 100644 repo/darwin/packages/upstream/uwt.0.2.1/url create mode 100644 repo/darwin/packages/upstream/vchan.3.0.0/descr create mode 100644 repo/darwin/packages/upstream/vchan.3.0.0/opam create mode 100644 repo/darwin/packages/upstream/vchan.3.0.0/url delete mode 100644 repo/darwin/packages/upstream/win-error.0.2/findlib delete mode 100644 repo/darwin/packages/upstream/win-eventlog.0.1/findlib create mode 100644 repo/darwin/packages/upstream/x509.0.5.3/descr create mode 100644 repo/darwin/packages/upstream/x509.0.5.3/opam create mode 100644 repo/darwin/packages/upstream/x509.0.5.3/url create mode 100644 repo/darwin/packages/upstream/xenstore.1.4.0/descr create mode 100644 repo/darwin/packages/upstream/xenstore.1.4.0/opam create mode 100644 repo/darwin/packages/upstream/xenstore.1.4.0/url create mode 100644 repo/darwin/packages/upstream/xenstore_transport.0.9.6/descr create mode 100644 repo/darwin/packages/upstream/xenstore_transport.0.9.6/opam create mode 100644 repo/darwin/packages/upstream/xenstore_transport.0.9.6/url create mode 100644 repo/darwin/packages/upstream/zarith.1.5/descr create mode 100644 repo/darwin/packages/upstream/zarith.1.5/opam create mode 100644 repo/darwin/packages/upstream/zarith.1.5/url create mode 100644 repo/win32/packages/upstream/asetmap.0.8.1/descr create mode 100644 repo/win32/packages/upstream/asetmap.0.8.1/opam create mode 100644 repo/win32/packages/upstream/asetmap.0.8.1/url create mode 100644 repo/win32/packages/upstream/asn1-combinators.0.1.3/descr create mode 100644 repo/win32/packages/upstream/asn1-combinators.0.1.3/opam create mode 100644 repo/win32/packages/upstream/asn1-combinators.0.1.3/url create mode 100644 repo/win32/packages/upstream/base-num.base/descr create mode 100644 repo/win32/packages/upstream/base-num.base/opam delete mode 100644 repo/win32/packages/upstream/base.v0.9.2/url rename repo/win32/packages/upstream/{base.v0.9.2 => base.v0.9.3}/descr (100%) rename repo/win32/packages/upstream/{base.v0.9.2/files/base-0.9.2.patch => base.v0.9.3/files/base-0.9.3.patch} (76%) rename repo/win32/packages/upstream/{base.v0.9.2 => base.v0.9.3}/opam (51%) create mode 100644 repo/win32/packages/upstream/base.v0.9.3/url delete mode 100644 repo/win32/packages/upstream/base64.2.1.2/descr delete mode 100644 repo/win32/packages/upstream/base64.2.1.2/url create mode 100644 repo/win32/packages/upstream/base64.2.2.0/descr rename repo/{darwin/packages/upstream/base64.2.1.2 => win32/packages/upstream/base64.2.2.0}/opam (65%) create mode 100644 repo/win32/packages/upstream/base64.2.2.0/url create mode 100644 repo/win32/packages/upstream/cohttp-lwt.0.99.0/descr create mode 100644 repo/win32/packages/upstream/cohttp-lwt.0.99.0/opam create mode 100644 repo/win32/packages/upstream/cohttp-lwt.0.99.0/url delete mode 100644 repo/win32/packages/upstream/cohttp.0.22.0/descr delete mode 100644 repo/win32/packages/upstream/cohttp.0.22.0/files/ocaml-cohttp-0.22.0.patch delete mode 100644 repo/win32/packages/upstream/cohttp.0.22.0/opam delete mode 100644 repo/win32/packages/upstream/cohttp.0.22.0/url create mode 100644 repo/win32/packages/upstream/cohttp.0.99.0/descr create mode 100644 repo/win32/packages/upstream/cohttp.0.99.0/opam create mode 100644 repo/win32/packages/upstream/cohttp.0.99.0/url create mode 100644 repo/win32/packages/upstream/conduit-lwt.1.0.0/descr create mode 100644 repo/win32/packages/upstream/conduit-lwt.1.0.0/opam create mode 100644 repo/win32/packages/upstream/conduit-lwt.1.0.0/url delete mode 100644 repo/win32/packages/upstream/conduit.0.14.5/descr delete mode 100644 repo/win32/packages/upstream/conduit.0.14.5/opam delete mode 100644 repo/win32/packages/upstream/conduit.0.14.5/url create mode 100644 repo/win32/packages/upstream/conduit.1.0.0/descr create mode 100644 repo/win32/packages/upstream/conduit.1.0.0/opam create mode 100644 repo/win32/packages/upstream/conduit.1.0.0/url create mode 100644 repo/win32/packages/upstream/conf-autoconf.0.1/descr create mode 100644 repo/win32/packages/upstream/conf-autoconf.0.1/opam create mode 100644 repo/win32/packages/upstream/conf-gmp.1/descr create mode 100755 repo/win32/packages/upstream/conf-gmp.1/files/test-win.sh create mode 100644 repo/win32/packages/upstream/conf-gmp.1/files/test.c create mode 100644 repo/win32/packages/upstream/conf-gmp.1/opam create mode 100644 repo/win32/packages/upstream/conf-perl.1/descr create mode 100644 repo/win32/packages/upstream/conf-perl.1/opam delete mode 100644 repo/win32/packages/upstream/config-file.1.2/findlib create mode 100644 repo/win32/packages/upstream/configurator.v0.9.1/descr create mode 100644 repo/win32/packages/upstream/configurator.v0.9.1/opam create mode 100644 repo/win32/packages/upstream/configurator.v0.9.1/url delete mode 100644 repo/win32/packages/upstream/cppo.1.5.0/findlib create mode 100644 repo/win32/packages/upstream/cpuid.0.1.1/descr create mode 100644 repo/win32/packages/upstream/cpuid.0.1.1/opam create mode 100644 repo/win32/packages/upstream/cpuid.0.1.1/url delete mode 100644 repo/win32/packages/upstream/cstruct-lwt.0/descr create mode 100644 repo/win32/packages/upstream/cstruct-lwt.3.1.1/descr rename repo/{darwin/packages/upstream/cstruct-lwt.0 => win32/packages/upstream/cstruct-lwt.3.1.1}/opam (62%) create mode 100644 repo/win32/packages/upstream/cstruct-lwt.3.1.1/url create mode 100644 repo/win32/packages/upstream/cstruct-unix.3.1.1/descr rename repo/{darwin/packages/upstream/ppx_cstruct.0 => win32/packages/upstream/cstruct-unix.3.1.1}/opam (62%) create mode 100644 repo/win32/packages/upstream/cstruct-unix.3.1.1/url delete mode 100644 repo/win32/packages/upstream/cstruct.2.4.1/descr delete mode 100644 repo/win32/packages/upstream/cstruct.2.4.1/files/ocaml-cstruct-2.4.1.patch delete mode 100644 repo/win32/packages/upstream/cstruct.2.4.1/files/patch-oasis-cstruct.2.4.1 delete mode 100644 repo/win32/packages/upstream/cstruct.2.4.1/opam delete mode 100644 repo/win32/packages/upstream/cstruct.2.4.1/url create mode 100644 repo/win32/packages/upstream/cstruct.3.1.1/descr create mode 100644 repo/win32/packages/upstream/cstruct.3.1.1/opam create mode 100644 repo/win32/packages/upstream/cstruct.3.1.1/url delete mode 100644 repo/win32/packages/upstream/cygwinpath.0.1.2/url rename repo/win32/packages/upstream/{cygwinpath.0.1.2 => cygwinpath.0.1.3}/descr (100%) rename repo/win32/packages/upstream/{cygwinpath.0.1.2 => cygwinpath.0.1.3}/opam (100%) create mode 100644 repo/win32/packages/upstream/cygwinpath.0.1.3/url create mode 100644 repo/win32/packages/upstream/datakit-server-9p.0.11.0/descr create mode 100644 repo/win32/packages/upstream/datakit-server-9p.0.11.0/opam create mode 100644 repo/win32/packages/upstream/datakit-server-9p.0.11.0/url rename repo/win32/packages/upstream/{datakit-server.0.9.0 => datakit-server.0.11.0}/descr (100%) create mode 100644 repo/win32/packages/upstream/datakit-server.0.11.0/opam create mode 100644 repo/win32/packages/upstream/datakit-server.0.11.0/url delete mode 100644 repo/win32/packages/upstream/datakit-server.0.9.0/opam delete mode 100644 repo/win32/packages/upstream/datakit-server.0.9.0/url delete mode 100644 repo/win32/packages/upstream/depext.1.0.4/url rename repo/win32/packages/upstream/{depext.1.0.4 => depext.1.0.5}/descr (100%) rename repo/win32/packages/upstream/{depext.1.0.4/files/opam-depext-1.0.4.patch => depext.1.0.5/files/opam-depext-1.0.5.patch} (99%) rename repo/win32/packages/upstream/{depext.1.0.4 => depext.1.0.5}/opam (90%) create mode 100644 repo/win32/packages/upstream/depext.1.0.5/url create mode 100644 repo/win32/packages/upstream/dns-forward.0.9.0/descr create mode 100644 repo/win32/packages/upstream/dns-forward.0.9.0/opam create mode 100644 repo/win32/packages/upstream/dns-forward.0.9.0/url create mode 100644 repo/win32/packages/upstream/dns-lwt.1.0.0/descr create mode 100644 repo/win32/packages/upstream/dns-lwt.1.0.0/opam create mode 100644 repo/win32/packages/upstream/dns-lwt.1.0.0/url create mode 100644 repo/win32/packages/upstream/dns.1.0.0/descr create mode 100644 repo/win32/packages/upstream/dns.1.0.0/opam create mode 100644 repo/win32/packages/upstream/dns.1.0.0/url create mode 100644 repo/win32/packages/upstream/dnssd.0.5.0/descr create mode 100644 repo/win32/packages/upstream/dnssd.0.5.0/opam create mode 100644 repo/win32/packages/upstream/dnssd.0.5.0/url create mode 100644 repo/win32/packages/upstream/fd-send-recv.1.0.4/descr create mode 100644 repo/win32/packages/upstream/fd-send-recv.1.0.4/opam create mode 100644 repo/win32/packages/upstream/fd-send-recv.1.0.4/url delete mode 100644 repo/win32/packages/upstream/fmt.0.8.3/url rename repo/win32/packages/upstream/{fmt.0.8.3 => fmt.0.8.4}/descr (100%) rename repo/win32/packages/upstream/{fmt.0.8.3 => fmt.0.8.4}/opam (100%) create mode 100644 repo/win32/packages/upstream/fmt.0.8.4/url delete mode 100644 repo/win32/packages/upstream/hashcons.1.0.1/url rename repo/win32/packages/upstream/{hashcons.1.0.1 => hashcons.1.2}/descr (100%) rename repo/win32/packages/upstream/{hashcons.1.0.1 => hashcons.1.2}/opam (92%) create mode 100644 repo/win32/packages/upstream/hashcons.1.2/url delete mode 100644 repo/win32/packages/upstream/hex.1.1.0/url rename repo/win32/packages/upstream/{hex.1.1.0 => hex.1.1.1}/descr (100%) rename repo/{darwin/packages/upstream/hex.1.1.0 => win32/packages/upstream/hex.1.1.1}/opam (75%) create mode 100644 repo/win32/packages/upstream/hex.1.1.1/url create mode 100644 repo/win32/packages/upstream/hvsock.1.0.0/descr create mode 100644 repo/win32/packages/upstream/hvsock.1.0.0/opam create mode 100644 repo/win32/packages/upstream/hvsock.1.0.0/url create mode 100644 repo/win32/packages/upstream/io-page-unix.2.0.0/descr create mode 100644 repo/win32/packages/upstream/io-page-unix.2.0.0/opam create mode 100644 repo/win32/packages/upstream/io-page-unix.2.0.0/url create mode 100644 repo/win32/packages/upstream/io-page.2.0.0/descr create mode 100644 repo/win32/packages/upstream/io-page.2.0.0/opam create mode 100644 repo/win32/packages/upstream/io-page.2.0.0/url delete mode 100644 repo/win32/packages/upstream/ipaddr.2.7.2/url rename repo/win32/packages/upstream/{ipaddr.2.7.2 => ipaddr.2.8.0}/descr (100%) rename repo/{darwin/packages/upstream/ipaddr.2.7.2 => win32/packages/upstream/ipaddr.2.8.0}/opam (57%) create mode 100644 repo/win32/packages/upstream/ipaddr.2.8.0/url rename repo/win32/packages/upstream/{jbuilder.1.0+beta9 => jbuilder.1.0+beta11}/descr (100%) rename repo/win32/packages/upstream/{jbuilder.1.0+beta9 => jbuilder.1.0+beta11}/opam (94%) create mode 100644 repo/win32/packages/upstream/jbuilder.1.0+beta11/url delete mode 100644 repo/win32/packages/upstream/jbuilder.1.0+beta9/files/jbuilder-1.0+beta9.patch delete mode 100644 repo/win32/packages/upstream/jbuilder.1.0+beta9/url delete mode 100644 repo/win32/packages/upstream/lwt.2.7.1/files/lwt-2.7.1.patch delete mode 100644 repo/win32/packages/upstream/lwt.2.7.1/files/lwt.install delete mode 100644 repo/win32/packages/upstream/lwt.2.7.1/url rename repo/{darwin/packages/upstream/lwt.2.7.1 => win32/packages/upstream/lwt.3.1.0}/descr (91%) create mode 100644 repo/win32/packages/upstream/lwt.3.1.0/files/lwt-3.1.0.patch rename repo/win32/packages/upstream/{lwt.2.7.1 => lwt.3.1.0}/opam (54%) create mode 100644 repo/win32/packages/upstream/lwt.3.1.0/url delete mode 100644 repo/win32/packages/upstream/magic-mime.1.0.1/url rename repo/{darwin/packages/upstream/magic-mime.1.0.1 => win32/packages/upstream/magic-mime.1.1.0}/descr (50%) rename repo/{darwin/packages/upstream/magic-mime.1.0.1 => win32/packages/upstream/magic-mime.1.1.0}/opam (80%) create mode 100644 repo/win32/packages/upstream/magic-mime.1.1.0/url delete mode 100644 repo/win32/packages/upstream/menhir.20170509/findlib delete mode 100644 repo/win32/packages/upstream/menhir.20170509/url rename repo/win32/packages/upstream/{menhir.20170509 => menhir.20170712}/descr (100%) rename repo/win32/packages/upstream/{menhir.20170509/files/menhir-20170509.patch => menhir.20170712/files/menhir-20170712.patch} (100%) rename repo/win32/packages/upstream/{menhir.20170509 => menhir.20170712}/opam (94%) create mode 100644 repo/win32/packages/upstream/menhir.20170712/url delete mode 100644 repo/win32/packages/upstream/mirage-block-unix.2.8.2/descr delete mode 100644 repo/win32/packages/upstream/mirage-block-unix.2.8.2/opam delete mode 100644 repo/win32/packages/upstream/mirage-block-unix.2.8.2/url create mode 100644 repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/descr create mode 100644 repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/opam create mode 100644 repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/url create mode 100644 repo/win32/packages/upstream/mirage-channel.3.1.0/descr create mode 100644 repo/win32/packages/upstream/mirage-channel.3.1.0/opam create mode 100644 repo/win32/packages/upstream/mirage-channel.3.1.0/url create mode 100644 repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/descr create mode 100644 repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/opam create mode 100644 repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/url delete mode 100644 repo/win32/packages/upstream/mirage-clock-unix.1.0.0/descr delete mode 100644 repo/win32/packages/upstream/mirage-clock-unix.1.0.0/findlib delete mode 100644 repo/win32/packages/upstream/mirage-clock-unix.1.0.0/opam delete mode 100644 repo/win32/packages/upstream/mirage-clock-unix.1.0.0/url create mode 100644 repo/win32/packages/upstream/mirage-clock-unix.1.4.0/descr create mode 100644 repo/win32/packages/upstream/mirage-clock-unix.1.4.0/opam create mode 100644 repo/win32/packages/upstream/mirage-clock-unix.1.4.0/url create mode 100644 repo/win32/packages/upstream/mirage-clock.1.3.0/descr create mode 100644 repo/win32/packages/upstream/mirage-clock.1.3.0/opam create mode 100644 repo/win32/packages/upstream/mirage-clock.1.3.0/url delete mode 100644 repo/win32/packages/upstream/mirage-conduit.2.2.0/descr delete mode 100644 repo/win32/packages/upstream/mirage-conduit.2.2.0/opam create mode 100644 repo/win32/packages/upstream/mirage-conduit.3.0.1/descr create mode 100644 repo/win32/packages/upstream/mirage-conduit.3.0.1/opam create mode 100644 repo/win32/packages/upstream/mirage-conduit.3.0.1/url create mode 100644 repo/win32/packages/upstream/mirage-console-lwt.2.3.5/descr create mode 100644 repo/win32/packages/upstream/mirage-console-lwt.2.3.5/opam create mode 100644 repo/win32/packages/upstream/mirage-console-lwt.2.3.5/url create mode 100644 repo/win32/packages/upstream/mirage-console-unix.2.3.5/descr create mode 100644 repo/win32/packages/upstream/mirage-console-unix.2.3.5/opam create mode 100644 repo/win32/packages/upstream/mirage-console-unix.2.3.5/url delete mode 100644 repo/win32/packages/upstream/mirage-console.2.1.3/descr delete mode 100644 repo/win32/packages/upstream/mirage-console.2.1.3/opam delete mode 100644 repo/win32/packages/upstream/mirage-console.2.1.3/url create mode 100644 repo/win32/packages/upstream/mirage-console.2.3.5/descr create mode 100644 repo/win32/packages/upstream/mirage-console.2.3.5/opam create mode 100644 repo/win32/packages/upstream/mirage-console.2.3.5/url delete mode 100644 repo/win32/packages/upstream/mirage-device.1.0.0/url rename repo/win32/packages/upstream/{mirage-device.1.0.0 => mirage-device.1.1.0}/descr (100%) rename repo/win32/packages/upstream/{mirage-device.1.0.0 => mirage-device.1.1.0}/opam (80%) create mode 100644 repo/win32/packages/upstream/mirage-device.1.1.0/url delete mode 100644 repo/win32/packages/upstream/mirage-dns.2.5.0/descr delete mode 100644 repo/win32/packages/upstream/mirage-dns.2.5.0/opam create mode 100644 repo/win32/packages/upstream/mirage-dns.3.0.0/descr create mode 100644 repo/win32/packages/upstream/mirage-dns.3.0.0/opam create mode 100644 repo/win32/packages/upstream/mirage-dns.3.0.0/url create mode 100644 repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/descr create mode 100644 repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/opam create mode 100644 repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/url delete mode 100644 repo/win32/packages/upstream/mirage-flow.1.1.0/descr delete mode 100644 repo/win32/packages/upstream/mirage-flow.1.1.0/findlib delete mode 100644 repo/win32/packages/upstream/mirage-flow.1.1.0/opam delete mode 100644 repo/win32/packages/upstream/mirage-flow.1.1.0/url create mode 100644 repo/win32/packages/upstream/mirage-flow.1.3.0/descr create mode 100644 repo/win32/packages/upstream/mirage-flow.1.3.0/opam create mode 100644 repo/win32/packages/upstream/mirage-flow.1.3.0/url create mode 100644 repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/descr create mode 100644 repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/opam create mode 100644 repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/url create mode 100644 repo/win32/packages/upstream/mirage-fs.1.1.1/descr create mode 100644 repo/win32/packages/upstream/mirage-fs.1.1.1/opam create mode 100644 repo/win32/packages/upstream/mirage-fs.1.1.1/url delete mode 100644 repo/win32/packages/upstream/mirage-http.2.5.3/descr delete mode 100644 repo/win32/packages/upstream/mirage-http.2.5.3/opam delete mode 100644 repo/win32/packages/upstream/mirage-http.2.5.3/url create mode 100644 repo/win32/packages/upstream/mirage-http.3.2.0/descr create mode 100644 repo/win32/packages/upstream/mirage-http.3.2.0/opam create mode 100644 repo/win32/packages/upstream/mirage-http.3.2.0/url create mode 100644 repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/descr create mode 100644 repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/opam create mode 100644 repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/url create mode 100644 repo/win32/packages/upstream/mirage-kv.1.1.1/descr create mode 100644 repo/win32/packages/upstream/mirage-kv.1.1.1/opam create mode 100644 repo/win32/packages/upstream/mirage-kv.1.1.1/url create mode 100644 repo/win32/packages/upstream/mirage-net-lwt.1.1.0/descr create mode 100644 repo/win32/packages/upstream/mirage-net-lwt.1.1.0/opam create mode 100644 repo/win32/packages/upstream/mirage-net-lwt.1.1.0/url create mode 100644 repo/win32/packages/upstream/mirage-net.1.1.1/descr create mode 100644 repo/win32/packages/upstream/mirage-net.1.1.1/opam create mode 100644 repo/win32/packages/upstream/mirage-net.1.1.1/url create mode 100644 repo/win32/packages/upstream/mirage-no-solo5.1/descr create mode 100644 repo/win32/packages/upstream/mirage-no-solo5.1/opam create mode 100644 repo/win32/packages/upstream/mirage-no-xen.1/descr create mode 100644 repo/win32/packages/upstream/mirage-no-xen.1/opam delete mode 100644 repo/win32/packages/upstream/mirage-profile.0.7.0/descr delete mode 100644 repo/win32/packages/upstream/mirage-profile.0.7.0/opam delete mode 100644 repo/win32/packages/upstream/mirage-profile.0.7.0/url create mode 100644 repo/win32/packages/upstream/mirage-profile.0.8.1/descr create mode 100644 repo/win32/packages/upstream/mirage-profile.0.8.1/opam create mode 100644 repo/win32/packages/upstream/mirage-profile.0.8.1/url create mode 100644 repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/descr create mode 100644 repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/opam create mode 100644 repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/url create mode 100644 repo/win32/packages/upstream/mirage-protocols.1.2.0/descr create mode 100644 repo/win32/packages/upstream/mirage-protocols.1.2.0/opam create mode 100644 repo/win32/packages/upstream/mirage-protocols.1.2.0/url create mode 100644 repo/win32/packages/upstream/mirage-random.1.1.0/descr create mode 100644 repo/win32/packages/upstream/mirage-random.1.1.0/opam create mode 100644 repo/win32/packages/upstream/mirage-random.1.1.0/url create mode 100644 repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/descr create mode 100644 repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/opam create mode 100644 repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/url create mode 100644 repo/win32/packages/upstream/mirage-stack.1.1.0/descr create mode 100644 repo/win32/packages/upstream/mirage-stack.1.1.0/opam create mode 100644 repo/win32/packages/upstream/mirage-stack.1.1.0/url create mode 100644 repo/win32/packages/upstream/mirage-time-lwt.1.1.0/descr create mode 100644 repo/win32/packages/upstream/mirage-time-lwt.1.1.0/opam create mode 100644 repo/win32/packages/upstream/mirage-time-lwt.1.1.0/url create mode 100644 repo/win32/packages/upstream/mirage-time-unix.1.2.0/descr create mode 100644 repo/win32/packages/upstream/mirage-time-unix.1.2.0/opam create mode 100644 repo/win32/packages/upstream/mirage-time-unix.1.2.0/url create mode 100644 repo/win32/packages/upstream/mirage-time.1.1.0/descr create mode 100644 repo/win32/packages/upstream/mirage-time.1.1.0/opam create mode 100644 repo/win32/packages/upstream/mirage-time.1.1.0/url create mode 100644 repo/win32/packages/upstream/mirage-types-lwt.3.0.0/descr create mode 100644 repo/win32/packages/upstream/mirage-types-lwt.3.0.0/opam create mode 100644 repo/win32/packages/upstream/mirage-types-lwt.3.0.0/url create mode 100644 repo/win32/packages/upstream/mirage-types.3.0.0/descr create mode 100644 repo/win32/packages/upstream/mirage-types.3.0.0/opam create mode 100644 repo/win32/packages/upstream/mirage-types.3.0.0/url delete mode 100644 repo/win32/packages/upstream/mirage-unix.2.6.0/descr delete mode 100644 repo/win32/packages/upstream/mirage-unix.2.6.0/opam delete mode 100644 repo/win32/packages/upstream/mirage-unix.2.6.0/url delete mode 100644 repo/win32/packages/upstream/mirage-vnetif.0.2.0/descr delete mode 100644 repo/win32/packages/upstream/mirage-vnetif.0.2.0/opam delete mode 100644 repo/win32/packages/upstream/mirage-vnetif.0.2.0/url create mode 100644 repo/win32/packages/upstream/mirage-vnetif.0.4.0/descr create mode 100644 repo/win32/packages/upstream/mirage-vnetif.0.4.0/opam create mode 100644 repo/win32/packages/upstream/mirage-vnetif.0.4.0/url delete mode 100644 repo/win32/packages/upstream/mtime.1.0.0/url rename repo/win32/packages/upstream/{mtime.1.0.0 => mtime.1.1.0}/descr (100%) rename repo/win32/packages/upstream/{mtime.1.0.0/files/mtime-1.0.0.patch => mtime.1.1.0/files/mtime-1.1.0.patch} (100%) rename repo/win32/packages/upstream/{mtime.1.0.0 => mtime.1.1.0}/opam (93%) create mode 100644 repo/win32/packages/upstream/mtime.1.1.0/url create mode 100644 repo/win32/packages/upstream/nocrypto.0.5.4/descr create mode 100644 repo/win32/packages/upstream/nocrypto.0.5.4/opam create mode 100644 repo/win32/packages/upstream/nocrypto.0.5.4/url create mode 100644 repo/win32/packages/upstream/num.0/descr create mode 100644 repo/win32/packages/upstream/num.0/opam create mode 100644 repo/win32/packages/upstream/oasis.0.4.10/descr create mode 100644 repo/win32/packages/upstream/oasis.0.4.10/files/oasis-0.4.10.patch create mode 100644 repo/win32/packages/upstream/oasis.0.4.10/files/oasis.install create mode 100644 repo/win32/packages/upstream/oasis.0.4.10/opam create mode 100644 repo/win32/packages/upstream/oasis.0.4.10/url rename repo/win32/packages/upstream/{ocaml-migrate-parsetree.1.0 => ocaml-migrate-parsetree.1.0.1}/descr (100%) rename repo/win32/packages/upstream/{ocaml-migrate-parsetree.1.0 => ocaml-migrate-parsetree.1.0.1}/opam (81%) create mode 100644 repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/url delete mode 100644 repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0/url delete mode 100644 repo/win32/packages/upstream/ocamlfind.1.7.2/findlib delete mode 100644 repo/win32/packages/upstream/ocamlfind.1.7.2/url rename repo/win32/packages/upstream/{ocamlfind.1.7.2 => ocamlfind.1.7.3}/descr (100%) rename repo/win32/packages/upstream/{ocamlfind.1.7.2/files/findlib-1.7.2.patch => ocamlfind.1.7.3/files/findlib-1.7.3.patch} (99%) rename repo/win32/packages/upstream/{ocamlfind.1.7.2 => ocamlfind.1.7.3}/opam (95%) create mode 100644 repo/win32/packages/upstream/ocamlfind.1.7.3/url create mode 100644 repo/win32/packages/upstream/ocamlify.0.0.1/descr create mode 100644 repo/win32/packages/upstream/ocamlify.0.0.1/files/ocamlify.install create mode 100644 repo/win32/packages/upstream/ocamlify.0.0.1/opam create mode 100644 repo/win32/packages/upstream/ocamlify.0.0.1/url create mode 100644 repo/win32/packages/upstream/ocamlmod.0.0.8/descr create mode 100644 repo/win32/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml create mode 100644 repo/win32/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install create mode 100644 repo/win32/packages/upstream/ocamlmod.0.0.8/opam create mode 100644 repo/win32/packages/upstream/ocamlmod.0.0.8/url create mode 100644 repo/win32/packages/upstream/octavius.1.1.0/descr create mode 100644 repo/win32/packages/upstream/octavius.1.1.0/opam create mode 100644 repo/win32/packages/upstream/octavius.1.1.0/url delete mode 100644 repo/win32/packages/upstream/ounit.2.0.0/findlib create mode 100644 repo/win32/packages/upstream/ppx_base.v0.9.0/descr create mode 100644 repo/win32/packages/upstream/ppx_base.v0.9.0/opam create mode 100644 repo/win32/packages/upstream/ppx_base.v0.9.0/url create mode 100644 repo/win32/packages/upstream/ppx_compare.v0.9.0/descr create mode 100644 repo/win32/packages/upstream/ppx_compare.v0.9.0/opam create mode 100644 repo/win32/packages/upstream/ppx_compare.v0.9.0/url delete mode 100644 repo/win32/packages/upstream/ppx_cstruct.0/descr create mode 100644 repo/win32/packages/upstream/ppx_cstruct.3.1.1/descr create mode 100644 repo/win32/packages/upstream/ppx_cstruct.3.1.1/opam create mode 100644 repo/win32/packages/upstream/ppx_cstruct.3.1.1/url create mode 100644 repo/win32/packages/upstream/ppx_enumerate.v0.9.0/descr create mode 100644 repo/win32/packages/upstream/ppx_enumerate.v0.9.0/opam create mode 100644 repo/win32/packages/upstream/ppx_enumerate.v0.9.0/url create mode 100644 repo/win32/packages/upstream/ppx_hash.v0.9.0/descr create mode 100644 repo/win32/packages/upstream/ppx_hash.v0.9.0/opam create mode 100644 repo/win32/packages/upstream/ppx_hash.v0.9.0/url create mode 100644 repo/win32/packages/upstream/ppx_js_style.v0.9.0/descr create mode 100644 repo/win32/packages/upstream/ppx_js_style.v0.9.0/opam create mode 100644 repo/win32/packages/upstream/ppx_js_style.v0.9.0/url delete mode 100644 repo/win32/packages/upstream/ppx_tools.5.0+4.03.0/findlib create mode 100644 repo/win32/packages/upstream/prometheus.0.3/descr create mode 100644 repo/win32/packages/upstream/prometheus.0.3/opam create mode 100644 repo/win32/packages/upstream/prometheus.0.3/url create mode 100644 repo/win32/packages/upstream/protocol-9p-unix.0.11.2/descr create mode 100644 repo/win32/packages/upstream/protocol-9p-unix.0.11.2/opam create mode 100644 repo/win32/packages/upstream/protocol-9p-unix.0.11.2/url rename repo/win32/packages/upstream/{protocol-9p.0.8.0 => protocol-9p.0.11.2}/descr (92%) create mode 100644 repo/win32/packages/upstream/protocol-9p.0.11.2/opam create mode 100644 repo/win32/packages/upstream/protocol-9p.0.11.2/url delete mode 100644 repo/win32/packages/upstream/protocol-9p.0.8.0/url create mode 100644 repo/win32/packages/upstream/ptime.0.8.3/descr create mode 100644 repo/win32/packages/upstream/ptime.0.8.3/opam create mode 100644 repo/win32/packages/upstream/ptime.0.8.3/url create mode 100644 repo/win32/packages/upstream/randomconv.0.1.0/descr create mode 100644 repo/win32/packages/upstream/randomconv.0.1.0/opam create mode 100644 repo/win32/packages/upstream/randomconv.0.1.0/url delete mode 100644 repo/win32/packages/upstream/sexplib.v0.9.1/url rename repo/win32/packages/upstream/{sexplib.v0.9.1 => sexplib.v0.9.2}/descr (100%) rename repo/win32/packages/upstream/{sexplib.v0.9.1 => sexplib.v0.9.2}/files/winconfigure (87%) rename repo/win32/packages/upstream/{sexplib.v0.9.1 => sexplib.v0.9.2}/opam (77%) create mode 100644 repo/win32/packages/upstream/sexplib.v0.9.2/url delete mode 100644 repo/win32/packages/upstream/shared-memory-ring.1.3.0/descr delete mode 100644 repo/win32/packages/upstream/shared-memory-ring.1.3.0/findlib delete mode 100644 repo/win32/packages/upstream/shared-memory-ring.1.3.0/opam delete mode 100644 repo/win32/packages/upstream/shared-memory-ring.1.3.0/url delete mode 100644 repo/win32/packages/upstream/tar-format.0.6.1/descr delete mode 100644 repo/win32/packages/upstream/tar-format.0.6.1/findlib delete mode 100644 repo/win32/packages/upstream/tar-format.0.6.1/opam delete mode 100644 repo/win32/packages/upstream/tar-format.0.6.1/url create mode 100644 repo/win32/packages/upstream/tar.0.8.0/descr create mode 100644 repo/win32/packages/upstream/tar.0.8.0/opam create mode 100644 repo/win32/packages/upstream/tar.0.8.0/url create mode 100644 repo/win32/packages/upstream/tls.0.8.0/descr create mode 100644 repo/win32/packages/upstream/tls.0.8.0/opam create mode 100644 repo/win32/packages/upstream/tls.0.8.0/url rename repo/win32/packages/upstream/{uchar.0.0.1 => uchar.0.0.2}/descr (100%) rename repo/win32/packages/upstream/{uchar.0.0.1 => uchar.0.0.2}/opam (94%) rename repo/win32/packages/upstream/{uchar.0.0.1 => uchar.0.0.2}/url (50%) delete mode 100644 repo/win32/packages/upstream/uri.1.9.2/url rename repo/win32/packages/upstream/{uri.1.9.2 => uri.1.9.4}/descr (100%) rename repo/{darwin/packages/upstream/uri.1.9.2 => win32/packages/upstream/uri.1.9.4}/opam (51%) create mode 100644 repo/win32/packages/upstream/uri.1.9.4/url delete mode 100644 repo/win32/packages/upstream/uwt.0.2.0/url rename repo/win32/packages/upstream/{uwt.0.2.0 => uwt.0.2.1}/descr (100%) rename repo/win32/packages/upstream/{uwt.0.2.0 => uwt.0.2.1}/opam (100%) create mode 100644 repo/win32/packages/upstream/uwt.0.2.1/url create mode 100644 repo/win32/packages/upstream/vchan.3.0.0/descr create mode 100644 repo/win32/packages/upstream/vchan.3.0.0/opam create mode 100644 repo/win32/packages/upstream/vchan.3.0.0/url delete mode 100644 repo/win32/packages/upstream/win-error.0.2/findlib delete mode 100644 repo/win32/packages/upstream/win-eventlog.0.1/findlib create mode 100644 repo/win32/packages/upstream/x509.0.5.3/descr create mode 100644 repo/win32/packages/upstream/x509.0.5.3/opam create mode 100644 repo/win32/packages/upstream/x509.0.5.3/url create mode 100644 repo/win32/packages/upstream/xenstore.1.4.0/descr create mode 100644 repo/win32/packages/upstream/xenstore.1.4.0/opam create mode 100644 repo/win32/packages/upstream/xenstore.1.4.0/url create mode 100644 repo/win32/packages/upstream/xenstore_transport.0.9.6/descr create mode 100644 repo/win32/packages/upstream/xenstore_transport.0.9.6/opam create mode 100644 repo/win32/packages/upstream/xenstore_transport.0.9.6/url create mode 100644 repo/win32/packages/upstream/zarith.1.5/descr create mode 100644 repo/win32/packages/upstream/zarith.1.5/files/Zarith-release-1.5.patch create mode 100644 repo/win32/packages/upstream/zarith.1.5/opam create mode 100644 repo/win32/packages/upstream/zarith.1.5/url diff --git a/repo/darwin/packages/upstream/asetmap.0.8.1/descr b/repo/darwin/packages/upstream/asetmap.0.8.1/descr new file mode 100644 index 000000000..cd3094d84 --- /dev/null +++ b/repo/darwin/packages/upstream/asetmap.0.8.1/descr @@ -0,0 +1,8 @@ +Alternative, compatible, OCaml standard library Sets and Maps + +asetmap provides slightly tweaked OCaml standard library Set and Map +functors. asetmap tries to maximize compatibility with the standard +library. It essentially gets rid of `Not_found` exceptions and provide +pretty-printers for the data types. + +asetmap has no dependency is distributed under the ISC license. diff --git a/repo/darwin/packages/upstream/asetmap.0.8.1/opam b/repo/darwin/packages/upstream/asetmap.0.8.1/opam new file mode 100644 index 000000000..a3da32b5b --- /dev/null +++ b/repo/darwin/packages/upstream/asetmap.0.8.1/opam @@ -0,0 +1,18 @@ +opam-version: "1.2" +maintainer: "Daniel Bünzli " +authors: ["Daniel Bünzli "] +homepage: "http://erratique.ch/software/asetmap" +doc: "http://erratique.ch/software/asetmap/doc" +license: "ISC" +dev-repo: "http://erratique.ch/repos/asetmap.git" +bug-reports: "https://github.com/dbuenzli/asetmap/issues" +tags: [ "org:erratique" "set" "map" "stdlib" ] +available: [ ocaml-version >= "4.01.0"] +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} ] +depopts: [] +build: [ + "ocaml" "pkg/pkg.ml" "build" + "--pinned" "%{pinned}%" ] diff --git a/repo/darwin/packages/upstream/asetmap.0.8.1/url b/repo/darwin/packages/upstream/asetmap.0.8.1/url new file mode 100644 index 000000000..f6896f222 --- /dev/null +++ b/repo/darwin/packages/upstream/asetmap.0.8.1/url @@ -0,0 +1,2 @@ +archive: "http://erratique.ch/software/asetmap/releases/asetmap-0.8.1.tbz" +checksum: "9e4a518bfb6350e2f296c7f3147989c7" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/asn1-combinators.0.1.3/descr b/repo/darwin/packages/upstream/asn1-combinators.0.1.3/descr new file mode 100644 index 000000000..5c406f983 --- /dev/null +++ b/repo/darwin/packages/upstream/asn1-combinators.0.1.3/descr @@ -0,0 +1,10 @@ +Define ASN.1 grammars in OCaml + + +asn1-combinators is a library for declarative definitions of ASN.1 grammars, +embedded in OCaml. These definitions are strongly typed and allow parsing and +serialization. + +Presently, only BER and DER encoding and supported. + +asn1-combinators is distributed under the ISC license. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/asn1-combinators.0.1.3/opam b/repo/darwin/packages/upstream/asn1-combinators.0.1.3/opam new file mode 100644 index 000000000..e9c5f31b9 --- /dev/null +++ b/repo/darwin/packages/upstream/asn1-combinators.0.1.3/opam @@ -0,0 +1,27 @@ +opam-version: "1.2" +authors: ["David Kaloper Meršinjak "] +maintainer: "David Kaloper Meršinjak " +homepage: "https://github.com/mirleft/ocaml-asn1-combinators" +doc: "https://mirleft.github.io/ocaml-asn1-combinators/doc" +license: "ISC" +dev-repo: "https://github.com/mirleft/ocaml-asn1-combinators.git" +bug-reports: "https://github.com/mirleft/ocaml-asn1-combinators/issues" +tags: [ "org:mirage" ] +available: [ ocaml-version >= "4.01.0" ] +build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" ] +build-test: [ + [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "true" ] + [ "ocaml" "pkg/pkg.ml" "test" ] +] +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "cstruct" {>= "1.2.0"} + "result" + "zarith" + "ounit" {test} +] +depopts: [] +conflicts: [ "cstruct" {< "1.2.0"} + "base-implicits" ] diff --git a/repo/darwin/packages/upstream/asn1-combinators.0.1.3/url b/repo/darwin/packages/upstream/asn1-combinators.0.1.3/url new file mode 100644 index 000000000..2fad82f6d --- /dev/null +++ b/repo/darwin/packages/upstream/asn1-combinators.0.1.3/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirleft/ocaml-asn1-combinators/releases/download/v0.1.3/asn1-combinators-0.1.3.tbz" +checksum: "ce625d1fb6903aa8d40b27671ccf742c" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/base-bigarray.base/opam b/repo/darwin/packages/upstream/base-bigarray.base/opam index 4c0d5562e..c67ad07a6 100644 --- a/repo/darwin/packages/upstream/base-bigarray.base/opam +++ b/repo/darwin/packages/upstream/base-bigarray.base/opam @@ -1,2 +1,2 @@ opam-version: "1" -maintainer: "contact@ocamlpro.com" +maintainer: "https://github.com/ocaml/opam-repository/issues" diff --git a/repo/darwin/packages/upstream/base-num.base/descr b/repo/darwin/packages/upstream/base-num.base/descr new file mode 100644 index 000000000..0de4c8c2c --- /dev/null +++ b/repo/darwin/packages/upstream/base-num.base/descr @@ -0,0 +1 @@ +Num library distributed with the OCaml compiler diff --git a/repo/darwin/packages/upstream/base-num.base/opam b/repo/darwin/packages/upstream/base-num.base/opam new file mode 100644 index 000000000..b39f58f8f --- /dev/null +++ b/repo/darwin/packages/upstream/base-num.base/opam @@ -0,0 +1,4 @@ +opam-version: "1" +maintainer: "Xavier Leroy " +# Once Num is removed from the OCaml core distribution, reflect this below +# available: [ ocaml-version < "4.06.0" ] diff --git a/repo/darwin/packages/upstream/base-threads.base/opam b/repo/darwin/packages/upstream/base-threads.base/opam index 4c0d5562e..c67ad07a6 100644 --- a/repo/darwin/packages/upstream/base-threads.base/opam +++ b/repo/darwin/packages/upstream/base-threads.base/opam @@ -1,2 +1,2 @@ opam-version: "1" -maintainer: "contact@ocamlpro.com" +maintainer: "https://github.com/ocaml/opam-repository/issues" diff --git a/repo/darwin/packages/upstream/base-unix.base/opam b/repo/darwin/packages/upstream/base-unix.base/opam index 4c0d5562e..c67ad07a6 100644 --- a/repo/darwin/packages/upstream/base-unix.base/opam +++ b/repo/darwin/packages/upstream/base-unix.base/opam @@ -1,2 +1,2 @@ opam-version: "1" -maintainer: "contact@ocamlpro.com" +maintainer: "https://github.com/ocaml/opam-repository/issues" diff --git a/repo/darwin/packages/upstream/base.v0.9.2/url b/repo/darwin/packages/upstream/base.v0.9.2/url deleted file mode 100644 index 7f4f87008..000000000 --- a/repo/darwin/packages/upstream/base.v0.9.2/url +++ /dev/null @@ -1,2 +0,0 @@ -src: "https://github.com/janestreet/base/archive/v0.9.2.tar.gz" -checksum: "e9292a2ece0fd664d2251856cc051e17" diff --git a/repo/darwin/packages/upstream/base.v0.9.2/descr b/repo/darwin/packages/upstream/base.v0.9.3/descr similarity index 100% rename from repo/darwin/packages/upstream/base.v0.9.2/descr rename to repo/darwin/packages/upstream/base.v0.9.3/descr diff --git a/repo/darwin/packages/upstream/base.v0.9.2/opam b/repo/darwin/packages/upstream/base.v0.9.3/opam similarity index 55% rename from repo/darwin/packages/upstream/base.v0.9.2/opam rename to repo/darwin/packages/upstream/base.v0.9.3/opam index 0e87ef7e5..59261e05c 100644 --- a/repo/darwin/packages/upstream/base.v0.9.2/opam +++ b/repo/darwin/packages/upstream/base.v0.9.3/opam @@ -1,18 +1,14 @@ opam-version: "1.2" maintainer: "opensource@janestreet.com" -authors: ["Jane Street Group, LLC "] +authors: "Jane Street Group, LLC " homepage: "https://github.com/janestreet/base" bug-reports: "https://github.com/janestreet/base/issues" -dev-repo: "https://github.com/janestreet/base.git" license: "Apache-2.0" -build: [ - ["jbuilder" "build" "-p" name "-j" jobs] -] +dev-repo: "https://github.com/janestreet/base.git" +build: ["jbuilder" "build" "-p" name "-j" jobs] depends: [ - "jbuilder" {build & >= "1.0+beta8"} + "jbuilder" {build & >= "1.0+beta7"} "sexplib" {>= "v0.9.1" & < "v0.10"} ] -depopts: [ - "base-native-int63" -] -available: [ ocaml-version >= "4.03.0" ] +depopts: "base-native-int63" +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/base.v0.9.3/url b/repo/darwin/packages/upstream/base.v0.9.3/url new file mode 100644 index 000000000..1e552cb64 --- /dev/null +++ b/repo/darwin/packages/upstream/base.v0.9.3/url @@ -0,0 +1,2 @@ +http: "https://github.com/janestreet/base/archive/v0.9.3.tar.gz" +checksum: "3edb19585be84ea308323ccd41213e57" diff --git a/repo/darwin/packages/upstream/base64.2.1.2/descr b/repo/darwin/packages/upstream/base64.2.1.2/descr deleted file mode 100644 index b4aab8f39..000000000 --- a/repo/darwin/packages/upstream/base64.2.1.2/descr +++ /dev/null @@ -1,10 +0,0 @@ -For OCaml - -Base64 is a group of similar binary-to-text encoding schemes that represent -binary data in an ASCII string format by translating it into a radix-64 -representation. It is specified in [RFC 4648][rfc4648]. - -See also [documentation][docs]. - -[rfc4648]: https://tools.ietf.org/html/rfc4648 -[docs]: http://mirage.github.io/ocaml-base64 \ No newline at end of file diff --git a/repo/darwin/packages/upstream/base64.2.1.2/url b/repo/darwin/packages/upstream/base64.2.1.2/url deleted file mode 100644 index 64c63b906..000000000 --- a/repo/darwin/packages/upstream/base64.2.1.2/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-base64/releases/download/v2.1.2/base64-2.1.2.tbz" -checksum: "acef73296915b4f8052868f182862dc8" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/base64.2.2.0/descr b/repo/darwin/packages/upstream/base64.2.2.0/descr new file mode 100644 index 000000000..292950687 --- /dev/null +++ b/repo/darwin/packages/upstream/base64.2.2.0/descr @@ -0,0 +1,26 @@ +Base64 encoding for OCaml + +Base64 is a group of similar binary-to-text encoding schemes that represent +binary data in an ASCII string format by translating it into a radix-64 +representation. It is specified in [RFC 4648][rfc4648]. + +See also [documentation][docs]. + +[rfc4648]: https://tools.ietf.org/html/rfc4648 +[docs]: http://mirage.github.io/ocaml-base64/base64/ + +## Example + +Simple encoding and decoding. + +```shell +utop # #require "base64";; +utop # let enc = B64.encode "OCaml rocks!";; +val enc : string = "T0NhbWwgcm9ja3Mh" +utop # let plain = B64.decode enc;; +val plain : string = "OCaml rocks!" +``` + +## License + +[ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) diff --git a/repo/win32/packages/upstream/base64.2.1.2/opam b/repo/darwin/packages/upstream/base64.2.2.0/opam similarity index 65% rename from repo/win32/packages/upstream/base64.2.1.2/opam rename to repo/darwin/packages/upstream/base64.2.2.0/opam index a57874253..724ab7d2b 100644 --- a/repo/win32/packages/upstream/base64.2.1.2/opam +++ b/repo/darwin/packages/upstream/base64.2.2.0/opam @@ -10,15 +10,15 @@ bug-reports: "https://github.com/mirage/ocaml-base64/issues" dev-repo: "https://github.com/mirage/ocaml-base64.git" depends: [ "base-bytes" - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} + "jbuilder" {build & >= "1.0+beta10"} "bos" {test} "rresult" {test} "alcotest" {test} ] -build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" ] +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] build-test: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "true" ] - [ "ocaml" "pkg/pkg.ml" "test" ] + ["jbuilder" "runtest" "-p" name] ] diff --git a/repo/darwin/packages/upstream/base64.2.2.0/url b/repo/darwin/packages/upstream/base64.2.2.0/url new file mode 100644 index 000000000..3a036f7b2 --- /dev/null +++ b/repo/darwin/packages/upstream/base64.2.2.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-base64/releases/download/v2.2.0/base64-2.2.0.tbz" +checksum: "49f2bc4ae37b832c652277c0b701a02a" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/cohttp-lwt.0.99.0/descr b/repo/darwin/packages/upstream/cohttp-lwt.0.99.0/descr new file mode 100644 index 000000000..65cfabe55 --- /dev/null +++ b/repo/darwin/packages/upstream/cohttp-lwt.0.99.0/descr @@ -0,0 +1,27 @@ +An OCaml library for HTTP clients and servers + +[![Join the chat at https://gitter.im/mirage/ocaml-cohttp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mirage/ocaml-cohttp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +Cohttp is an OCaml library for creating HTTP daemons. It has a portable +HTTP parser, and implementations using various asynchronous programming +libraries: + +* `Cohttp_lwt_unix` uses the [Lwt](http://ocsigen.org/lwt) library, and + specifically the UNIX bindings. +* `Cohttp_async` uses the [Async](https://realworldocaml.org/v1/en/html/concurrent-programming-with-async.html) + library. +* `Cohttp_lwt` exposes an OS-independent Lwt interface, which is used + by the [Mirage](http://www.openmirage.org) interface + to generate standalone microkernels (see the [mirage-http](https://github.com/mirage/mirage-http) + repository). +* `Cohttp_lwt_xhr` compiles to a JavaScript module that maps the Cohttp + calls to XMLHTTPRequests. This is used to compile OCaml libraries like + the GitHub bindings to JavaScript and still run efficiently. + +You can implement other targets using the parser very easily. Look at the `IO` +signature in `lib/s.mli` and implement that in the desired backend. + +You can activate some runtime debugging by setting `COHTTP_DEBUG` to any +value, and all requests and responses will be written to stderr. Further +debugging of the connection layer can be obtained by setting `CONDUIT_DEBUG` +to any value. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/cohttp-lwt.0.99.0/opam b/repo/darwin/packages/upstream/cohttp-lwt.0.99.0/opam new file mode 100644 index 000000000..610b4c09b --- /dev/null +++ b/repo/darwin/packages/upstream/cohttp-lwt.0.99.0/opam @@ -0,0 +1,31 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: [ + "Anil Madhavapeddy" + "Stefano Zacchiroli" + "David Sheets" + "Thomas Gazagnaire" + "David Scott" + "Rudi Grinberg" + "Andy Ray" +] +homepage: "https://github.com/mirage/ocaml-cohttp" +bug-reports: "https://github.com/mirage/ocaml-cohttp/issues" +license: "ISC" +tags: ["org:mirage" "org:xapi-project"] +dev-repo: "https://github.com/mirage/ocaml-cohttp.git" +build: [ + ["jbuilder" "subst" "-n" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: [["jbuilder" "runtest" "-p" name "-j" jobs]] +depends: [ + "jbuilder" {build & >= "1.0+beta10"} + "conduit" {>= "0.14.0"} + "cohttp" {>="0.99.0"} + "lwt" +] +conflicts: [ + "lwt" {< "2.5.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/cohttp-lwt.0.99.0/url b/repo/darwin/packages/upstream/cohttp-lwt.0.99.0/url new file mode 100644 index 000000000..f85b2284a --- /dev/null +++ b/repo/darwin/packages/upstream/cohttp-lwt.0.99.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cohttp/releases/download/v0.99.0/cohttp-0.99.0.tbz" +checksum: "a789a9ed492005257bdb217e2248da0d" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/cohttp.0.22.0/descr b/repo/darwin/packages/upstream/cohttp.0.22.0/descr deleted file mode 100644 index a3fa6b1a8..000000000 --- a/repo/darwin/packages/upstream/cohttp.0.22.0/descr +++ /dev/null @@ -1,9 +0,0 @@ -HTTP(S) library for Lwt, Async and Mirage - -There are several optional dependencies which activate functionality: - -* Lwt: `opam install lwt cohttp` -* Lwt and SSL: `opam install lwt ssl cohttp` -* Async: `opam install async cohttp` -* Async and SSL: `opam install async_ssl cohttp` - diff --git a/repo/darwin/packages/upstream/cohttp.0.22.0/opam b/repo/darwin/packages/upstream/cohttp.0.22.0/opam deleted file mode 100644 index e5e3388d5..000000000 --- a/repo/darwin/packages/upstream/cohttp.0.22.0/opam +++ /dev/null @@ -1,53 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: [ - "Anil Madhavapeddy" - "Stefano Zacchiroli" - "David Sheets" - "Thomas Gazagnaire" - "David Scott" - "Rudi Grinberg" - "Andy Ray" -] -homepage: "https://github.com/mirage/ocaml-cohttp" -bug-reports: "https://github.com/mirage/ocaml-cohttp/issues" -license: "ISC" -tags: ["org:mirage" "org:xapi-project"] -dev-repo: "https://github.com/mirage/ocaml-cohttp.git" -build: [make "PREFIX=%{prefix}%"] -install: [make "PREFIX=%{prefix}%" "install"] -build-test: [ - ["ocaml" "setup.ml" "-configure" "--enable-tests"] - ["ocaml" "setup.ml" "-build"] - ["ocaml" "setup.ml" "-test"] -] -build-doc: ["ocaml" "setup.ml" "-doc"] -remove: ["ocamlfind" "remove" "cohttp"] -depends: [ - "base-bytes" - "ocamlfind" {build} - "ocamlbuild" {build} - "cmdliner" {build & >= "0.9.4"} - "re" - "uri" {>= "1.9.0"} - "fieldslib" - "sexplib" - "conduit" {>= "0.14.0"} - "ppx_fields_conv" - "ppx_deriving" {build} - "ppx_sexp_conv" - "stringext" - "base64" {>= "2.0.0"} - "magic-mime" - "fmt" - "logs" - "ounit" {test} - "alcotest" {test} -] -depopts: ["async" "lwt" "js_of_ocaml"] -conflicts: [ - "async" {< "113.24.00"} - "lwt" {< "2.5.0"} - "js_of_ocaml" {< "2.8"} -] -available: [ocaml-version >= "4.01.0"] diff --git a/repo/darwin/packages/upstream/cohttp.0.22.0/url b/repo/darwin/packages/upstream/cohttp.0.22.0/url deleted file mode 100644 index b2a45cd27..000000000 --- a/repo/darwin/packages/upstream/cohttp.0.22.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-cohttp/archive/v0.22.0.tar.gz" -checksum: "1698d2e565ac5fe0474372e04ff265d8" diff --git a/repo/darwin/packages/upstream/cohttp.0.99.0/descr b/repo/darwin/packages/upstream/cohttp.0.99.0/descr new file mode 100644 index 000000000..65cfabe55 --- /dev/null +++ b/repo/darwin/packages/upstream/cohttp.0.99.0/descr @@ -0,0 +1,27 @@ +An OCaml library for HTTP clients and servers + +[![Join the chat at https://gitter.im/mirage/ocaml-cohttp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mirage/ocaml-cohttp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +Cohttp is an OCaml library for creating HTTP daemons. It has a portable +HTTP parser, and implementations using various asynchronous programming +libraries: + +* `Cohttp_lwt_unix` uses the [Lwt](http://ocsigen.org/lwt) library, and + specifically the UNIX bindings. +* `Cohttp_async` uses the [Async](https://realworldocaml.org/v1/en/html/concurrent-programming-with-async.html) + library. +* `Cohttp_lwt` exposes an OS-independent Lwt interface, which is used + by the [Mirage](http://www.openmirage.org) interface + to generate standalone microkernels (see the [mirage-http](https://github.com/mirage/mirage-http) + repository). +* `Cohttp_lwt_xhr` compiles to a JavaScript module that maps the Cohttp + calls to XMLHTTPRequests. This is used to compile OCaml libraries like + the GitHub bindings to JavaScript and still run efficiently. + +You can implement other targets using the parser very easily. Look at the `IO` +signature in `lib/s.mli` and implement that in the desired backend. + +You can activate some runtime debugging by setting `COHTTP_DEBUG` to any +value, and all requests and responses will be written to stderr. Further +debugging of the connection layer can be obtained by setting `CONDUIT_DEBUG` +to any value. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/cohttp.0.99.0/opam b/repo/darwin/packages/upstream/cohttp.0.99.0/opam new file mode 100644 index 000000000..e912332a5 --- /dev/null +++ b/repo/darwin/packages/upstream/cohttp.0.99.0/opam @@ -0,0 +1,40 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: [ + "Anil Madhavapeddy" + "Stefano Zacchiroli" + "David Sheets" + "Thomas Gazagnaire" + "David Scott" + "Rudi Grinberg" + "Andy Ray" +] +homepage: "https://github.com/mirage/ocaml-cohttp" +bug-reports: "https://github.com/mirage/ocaml-cohttp/issues" +license: "ISC" +tags: ["org:mirage" "org:xapi-project"] +dev-repo: "https://github.com/mirage/ocaml-cohttp.git" +build: [ + ["jbuilder" "subst" "-n" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: [["jbuilder" "runtest" "-p" name "-j" jobs]] +depends: [ + "base-bytes" + "jbuilder" {build & >= "1.0+beta10"} + "re" + "uri" {>= "1.9.0"} + "fieldslib" + "sexplib" + "ppx_fields_conv" {>="v0.9.0"} + "ppx_sexp_conv" {>="v0.9.0"} + "stringext" + "base64" {>= "2.0.0"} + "magic-mime" + "fmt" + "logs" + "jsonm" {build} + "ounit" {test} + "alcotest" {test} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/cohttp.0.99.0/url b/repo/darwin/packages/upstream/cohttp.0.99.0/url new file mode 100644 index 000000000..f85b2284a --- /dev/null +++ b/repo/darwin/packages/upstream/cohttp.0.99.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cohttp/releases/download/v0.99.0/cohttp-0.99.0.tbz" +checksum: "a789a9ed492005257bdb217e2248da0d" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/conduit-lwt.1.0.0/descr b/repo/darwin/packages/upstream/conduit-lwt.1.0.0/descr new file mode 100644 index 000000000..34d65f589 --- /dev/null +++ b/repo/darwin/packages/upstream/conduit-lwt.1.0.0/descr @@ -0,0 +1,37 @@ +Network conduit library + +The `conduit` library takes care of establishing and listening for +TCP and SSL/TLS connections for the Lwt and Async libraries. + +The reason this library exists is to provide a degree of abstraction +from the precise SSL library used, since there are a variety of ways +to bind to a library (e.g. the C FFI, or the Ctypes library), as well +as well as which library is used (just OpenSSL for now). + +By default, OpenSSL is used as the preferred connection library, but +you can force the use of the pure OCaml TLS stack by setting the +environment variable `CONDUIT_TLS=native` when starting your program. + +### Modules + +Source code is in `lib/`. + +* `Conduit_lwt_unix` has the Lwt UNIX modules. +* `Conduit_async` has the Core/Async modules. + +There are also resolvers that map URIs to Conduit endpoints. +See for the online `ocamldoc` +for more details. + +### Debugging + +Some of the `Lwt_unix`-based modules use a non-empty `CONDUIT_DEBUG` +environment variable to output debugging information to standard error. +Just set this variable when running the program to see what URIs +are being resolved to. + +### Further Informartion + +* **WWW:** https://github.com/mirage/ocaml-conduit +* **E-mail:** +* **Bugs:** https://github.com/mirage/ocaml-conduit/issues \ No newline at end of file diff --git a/repo/darwin/packages/upstream/conduit-lwt.1.0.0/opam b/repo/darwin/packages/upstream/conduit-lwt.1.0.0/opam new file mode 100644 index 000000000..bf4eb16e8 --- /dev/null +++ b/repo/darwin/packages/upstream/conduit-lwt.1.0.0/opam @@ -0,0 +1,20 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire" "Rudi Grinberg"] +homepage: "https://github.com/mirage/ocaml-conduit" +dev-repo: "https://github.com/mirage/ocaml-conduit.git" +bug-reports: "https://github.com/mirage/ocaml-conduit/issues" +tags: "org:mirage" +license: "ISC" + +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +depends: [ + "base-unix" + "jbuilder" {build & >="1.0+beta9"} + "conduit" {>="1.0.0"} + "lwt" {>="3.0.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/conduit-lwt.1.0.0/url b/repo/darwin/packages/upstream/conduit-lwt.1.0.0/url new file mode 100644 index 000000000..f7ff75a56 --- /dev/null +++ b/repo/darwin/packages/upstream/conduit-lwt.1.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-conduit/releases/download/v1.0.0/conduit-1.0.0.tbz" +checksum: "4656f150b9f98603c21d00c8f0aa1a9b" diff --git a/repo/darwin/packages/upstream/conduit.0.14.5/descr b/repo/darwin/packages/upstream/conduit.0.14.5/descr deleted file mode 100644 index fe8b5fe82..000000000 --- a/repo/darwin/packages/upstream/conduit.0.14.5/descr +++ /dev/null @@ -1,15 +0,0 @@ -Network connection library for TCP and SSL - -The `conduit` library takes care of establishing and listening for TCP and -SSL/TLS connections for the Lwt and Async libraries. - -The reason this library exists is to provide a degree of abstraction -from the precise SSL library used, since there are a variety of ways to bind to -a library (e.g. the C FFI, or the Ctypes library), as well as well as which -library is used (either OpenSSL or a native OCaml TLS implementation). - -If you are using the `Lwt_unix` version of the library, you can set two -environment variables to control the behaviour of the library: - -- `CONDUIT_DEBUG=1` will output debug information to standard error. -- `CONDUIT_TLS=native` will force the use of the pure OCaml TLS library. diff --git a/repo/darwin/packages/upstream/conduit.0.14.5/opam b/repo/darwin/packages/upstream/conduit.0.14.5/opam deleted file mode 100644 index c7c787048..000000000 --- a/repo/darwin/packages/upstream/conduit.0.14.5/opam +++ /dev/null @@ -1,53 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: [ - "Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire" "Rudi Grinberg" -] -homepage: "https://github.com/mirage/ocaml-conduit" -bug-reports: "https://github.com/mirage/ocaml-conduit/issues" -license: "ISC" -tags: "org:mirage" -dev-repo: "https://github.com/mirage/ocaml-conduit.git" -build: [ - ["./configure"] - [make] -] -install: [make "install"] -build-doc: [make "doc"] -remove: ["ocamlfind" "remove" "conduit"] -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "ppx_driver" {build} - "ppx_optcomp" {build & >= "113.24.00"} - "ppx_sexp_conv" {build} - "sexplib" - "stringext" - "uri" - "logs" {>= "0.5.0"} - "cstruct" {>= "1.0.1"} - "ipaddr" {>= "2.5.0"} -] -depopts: [ - "async" - "lwt" - "ssl" - "async_ssl" - "mirage-dns" - "vchan" - "launchd" - "tls" - "mirage-types-lwt" -] -conflicts: [ - "lwt" {< "2.4.4"} - "lwt" {>= "3.0.0"} - "async_ssl" {< "112.24.00"} - "async" {< "113.24.00"} - "mirage-types" {< "2.0.0"} - "dns" {< "0.10.0"} - "tls" {< "0.4.0"} - "vchan" {< "2.0.0"} - "nocrypto" {< "0.4.0"} -] -available: [ocaml-version >= "4.02.3"] diff --git a/repo/darwin/packages/upstream/conduit.0.14.5/url b/repo/darwin/packages/upstream/conduit.0.14.5/url deleted file mode 100644 index a400767f9..000000000 --- a/repo/darwin/packages/upstream/conduit.0.14.5/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-conduit/archive/v0.14.5.tar.gz" -checksum: "c29ed80445b6665e646752411f87621d" diff --git a/repo/darwin/packages/upstream/conduit.1.0.0/descr b/repo/darwin/packages/upstream/conduit.1.0.0/descr new file mode 100644 index 000000000..34d65f589 --- /dev/null +++ b/repo/darwin/packages/upstream/conduit.1.0.0/descr @@ -0,0 +1,37 @@ +Network conduit library + +The `conduit` library takes care of establishing and listening for +TCP and SSL/TLS connections for the Lwt and Async libraries. + +The reason this library exists is to provide a degree of abstraction +from the precise SSL library used, since there are a variety of ways +to bind to a library (e.g. the C FFI, or the Ctypes library), as well +as well as which library is used (just OpenSSL for now). + +By default, OpenSSL is used as the preferred connection library, but +you can force the use of the pure OCaml TLS stack by setting the +environment variable `CONDUIT_TLS=native` when starting your program. + +### Modules + +Source code is in `lib/`. + +* `Conduit_lwt_unix` has the Lwt UNIX modules. +* `Conduit_async` has the Core/Async modules. + +There are also resolvers that map URIs to Conduit endpoints. +See for the online `ocamldoc` +for more details. + +### Debugging + +Some of the `Lwt_unix`-based modules use a non-empty `CONDUIT_DEBUG` +environment variable to output debugging information to standard error. +Just set this variable when running the program to see what URIs +are being resolved to. + +### Further Informartion + +* **WWW:** https://github.com/mirage/ocaml-conduit +* **E-mail:** +* **Bugs:** https://github.com/mirage/ocaml-conduit/issues \ No newline at end of file diff --git a/repo/darwin/packages/upstream/conduit.1.0.0/opam b/repo/darwin/packages/upstream/conduit.1.0.0/opam new file mode 100644 index 000000000..df92047c7 --- /dev/null +++ b/repo/darwin/packages/upstream/conduit.1.0.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire" "Rudi Grinberg"] +homepage: "https://github.com/mirage/ocaml-conduit" +dev-repo: "https://github.com/mirage/ocaml-conduit.git" +bug-reports: "https://github.com/mirage/ocaml-conduit/issues" +tags: "org:mirage" +license: "ISC" + +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "ppx_sexp_conv" {build} + "sexplib" + "uri" + "result" + "astring" + "logs" {>="0.5.0"} + "ipaddr" {>="2.5.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/conduit.1.0.0/url b/repo/darwin/packages/upstream/conduit.1.0.0/url new file mode 100644 index 000000000..f7ff75a56 --- /dev/null +++ b/repo/darwin/packages/upstream/conduit.1.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-conduit/releases/download/v1.0.0/conduit-1.0.0.tbz" +checksum: "4656f150b9f98603c21d00c8f0aa1a9b" diff --git a/repo/darwin/packages/upstream/conf-autoconf.0.1/descr b/repo/darwin/packages/upstream/conf-autoconf.0.1/descr new file mode 100644 index 000000000..0bbb20263 --- /dev/null +++ b/repo/darwin/packages/upstream/conf-autoconf.0.1/descr @@ -0,0 +1,3 @@ +Virtual package relying on autoconf installation. +This package can only install if the autoconf command +is available on the system. diff --git a/repo/darwin/packages/upstream/conf-autoconf.0.1/opam b/repo/darwin/packages/upstream/conf-autoconf.0.1/opam new file mode 100644 index 000000000..993e3519e --- /dev/null +++ b/repo/darwin/packages/upstream/conf-autoconf.0.1/opam @@ -0,0 +1,29 @@ +opam-version: "1.2" +maintainer: "francois.berenger@inria.fr" +homepage: "http://www.gnu.org/software/autoconf" +authors: "https://www.gnu.org/software/autoconf/autoconf.html#maintainer" +bug-reports: "https://github.com/ocaml/opam-repository/issues" +dev-repo: "https://github.com/ocaml/opam-repository.git" +license: "GPL-3.0" +build: [ + ["which" "autoconf"] +] +depends: [ + "conf-which" {build} +] +depexts: [ + [["debian"] ["autoconf"]] + [["ubuntu"] ["autoconf"]] + [["centos"] ["autoconf"]] + [["fedora"] ["autoconf"]] + [["archlinux"] ["autoconf"]] + [["gentoo"] ["sys-devel/autoconf"]] + [["nixpkgs"] ["autoconf"]] + [["osx" "homebrew"] ["autoconf"]] + [["openbsd"] ["devel/autoconf"]] + [["freebsd"] ["autoconf"]] + [["netbsd"] ["autoconf"]] + [["alpine"] ["autoconf"]] + [["oraclelinux"] ["autoconf"]] + [["rhel"] ["autoconf"]] +] diff --git a/repo/darwin/packages/upstream/conf-gmp.1/descr b/repo/darwin/packages/upstream/conf-gmp.1/descr new file mode 100644 index 000000000..c409e3439 --- /dev/null +++ b/repo/darwin/packages/upstream/conf-gmp.1/descr @@ -0,0 +1,2 @@ +Virtual package relying on a GMP lib system installation. +This package can only install if the GMP lib is installed on the system. diff --git a/repo/darwin/packages/upstream/conf-gmp.1/files/test.c b/repo/darwin/packages/upstream/conf-gmp.1/files/test.c new file mode 100644 index 000000000..74e2843b7 --- /dev/null +++ b/repo/darwin/packages/upstream/conf-gmp.1/files/test.c @@ -0,0 +1,8 @@ +#include +#ifndef __GMP_H__ +#error "No GMP header" +#endif + +void test(void) { + __gmp_init(); +} diff --git a/repo/darwin/packages/upstream/conf-gmp.1/opam b/repo/darwin/packages/upstream/conf-gmp.1/opam new file mode 100644 index 000000000..f4f84e621 --- /dev/null +++ b/repo/darwin/packages/upstream/conf-gmp.1/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "nbraud" +author: "nbraud" +homepage: "http://gmplib.org/" +bug-reports: "https://github.com/ocaml/opam-repository/issues" +dev-repo: "https://github.com/ocaml/opam-repository.git" +license: "GPL" +build: [ + ["sh" "-exc" "cc -c $CFLAGS -I/usr/local/include test.c"] {os != "darwin"} + ["sh" "-exc" "cc -c $CFLAGS -I/opt/local/include -I/usr/local/include test.c"] {os = "darwin"} +] +depexts: [ + [["debian"] ["libgmp-dev"]] + [["ubuntu"] ["libgmp-dev"]] + [["osx" "homebrew"] ["gmp"]] + [["centos"] ["gmp" "gmp-devel"]] + [["fedora"] ["gmp" "gmp-devel"]] + [["openbsd"] ["gmp"]] + [["freebsd"] ["gmp"]] + [["alpine"] ["gmp-dev"]] + [["opensuse"] ["gmp-devel"]] +] diff --git a/repo/darwin/packages/upstream/conf-perl.1/descr b/repo/darwin/packages/upstream/conf-perl.1/descr new file mode 100644 index 000000000..a0520188b --- /dev/null +++ b/repo/darwin/packages/upstream/conf-perl.1/descr @@ -0,0 +1,2 @@ +Virtual package relying on perl +This package can only install if the perl program is installed on the system. diff --git a/repo/darwin/packages/upstream/conf-perl.1/opam b/repo/darwin/packages/upstream/conf-perl.1/opam new file mode 100644 index 000000000..2010b2430 --- /dev/null +++ b/repo/darwin/packages/upstream/conf-perl.1/opam @@ -0,0 +1,15 @@ +opam-version: "1.2" +maintainer: "tim@gfxmonk.net" +homepage: "https://www.perl.org/" +bug-reports: "https://github.com/ocaml/opam-repository/issues" +dev-repo: "https://github.com/ocaml/opam-repository.git" +license: "GPL-1+" +build: [["perl" "--version"]] +depexts: [ + [["debian"] ["perl"]] + [["ubuntu"] ["perl"]] + [["alpine"]["perl"]] + [["nixpkgs"] ["perl"]] + [["archlinux"] ["perl"]] + [["fedora"] ["perl-Pod-Html"]] +] diff --git a/repo/darwin/packages/upstream/conf-which.1/opam b/repo/darwin/packages/upstream/conf-which.1/opam index 72a621678..bebee6c6a 100644 --- a/repo/darwin/packages/upstream/conf-which.1/opam +++ b/repo/darwin/packages/upstream/conf-which.1/opam @@ -1,11 +1,16 @@ opam-version: "1.2" -maintainer: "tim@gfxmonk.net" +maintainer: "Francois BERENGER " homepage: "http://www.gnu.org/software/which/" +authors: "Carlo Wood" bug-reports: "https://github.com/ocaml/opam-repository/issues" dev-repo: "https://github.com/ocaml/opam-repository.git" license: "GPL-2+" build: [["which" "which"]] depexts: [ + +# the which package is only available for alpine >= 3.4 +# [["alpine"] ["which"]] + [["centos"] ["which"]] [["fedora"] ["which"]] [["opensuse"] ["which"]] diff --git a/repo/darwin/packages/upstream/configurator.v0.9.1/descr b/repo/darwin/packages/upstream/configurator.v0.9.1/descr new file mode 100644 index 000000000..17632e0c4 --- /dev/null +++ b/repo/darwin/packages/upstream/configurator.v0.9.1/descr @@ -0,0 +1,11 @@ +Helper library for gathering system configuration + +Configurator is a small library that helps writing OCaml scripts that +test features available on the system, in order to generate config.h +files for instance. + +Configurator allows one to: +- test if a C program compiles +- query pkg-config +- import #define from OCaml header files +- generate config.h file diff --git a/repo/darwin/packages/upstream/configurator.v0.9.1/opam b/repo/darwin/packages/upstream/configurator.v0.9.1/opam new file mode 100644 index 000000000..f0ee12071 --- /dev/null +++ b/repo/darwin/packages/upstream/configurator.v0.9.1/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/configurator" +bug-reports: "https://github.com/janestreet/configurator/issues" +dev-repo: "https://github.com/janestreet/configurator.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "-p" name "-j" jobs] +] +depends: [ + "base" {>= "v0.9" & < "v0.10"} + "jbuilder" {build & >= "1.0+beta7"} + "ppx_base" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "stdio" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/configurator.v0.9.1/url b/repo/darwin/packages/upstream/configurator.v0.9.1/url new file mode 100644 index 000000000..dbf7fc991 --- /dev/null +++ b/repo/darwin/packages/upstream/configurator.v0.9.1/url @@ -0,0 +1,2 @@ +src: "https://github.com/janestreet/configurator/archive/v0.9.1.tar.gz" +checksum: "3152504ee8f08667e385fe36bd058cf5" diff --git a/repo/darwin/packages/upstream/cppo.1.5.0/findlib b/repo/darwin/packages/upstream/cppo.1.5.0/findlib deleted file mode 100644 index b00d2fd31..000000000 --- a/repo/darwin/packages/upstream/cppo.1.5.0/findlib +++ /dev/null @@ -1 +0,0 @@ -cppo_ocamlbuild diff --git a/repo/darwin/packages/upstream/cpuid.0.1.1/descr b/repo/darwin/packages/upstream/cpuid.0.1.1/descr new file mode 100644 index 000000000..6ed960e99 --- /dev/null +++ b/repo/darwin/packages/upstream/cpuid.0.1.1/descr @@ -0,0 +1,26 @@ +Detect CPU features + + +cpuid allows detection of CPU features from OCaml. + +cpuid is distributed under the ISC license. + +## Installation + +cpuid can be installed with `opam`: + + opam install cpuid + +If you don't use `opam` consult the [`opam`](opam) file for build +instructions. + +## Documentation + +The documentation and API reference is automatically generated by +`ocamldoc` from the interfaces. It can be consulted [online][doc] +and there is a generated version in the `doc` directory of the +distribution. + +[doc]: https://pqwy.github.io/cpuid/doc + +[![Build Status](https://travis-ci.org/pqwy/cpuid.svg?branch=master)](https://travis-ci.org/pqwy/cpuid) \ No newline at end of file diff --git a/repo/darwin/packages/upstream/cpuid.0.1.1/opam b/repo/darwin/packages/upstream/cpuid.0.1.1/opam new file mode 100644 index 000000000..fc08f3543 --- /dev/null +++ b/repo/darwin/packages/upstream/cpuid.0.1.1/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "David Kaloper Meršinjak " +authors: ["David Kaloper Meršinjak "] +homepage: "https://github.com/pqwy/cpuid" +doc: "https://pqwy.github.io/cpuid/doc" +license: "ISC" +dev-repo: "https://github.com/pqwy/cpuid.git" +bug-reports: "https://github.com/pqwy/cpuid/issues" +tags: [] +available: [ ocaml-version >= "4.01.0" ] +build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" ] +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "ocb-stubblr" {build} + "result" ] +depopts: [] +conflicts: [ "ocb-stubblr" {<"0.1.0"} ] diff --git a/repo/darwin/packages/upstream/cpuid.0.1.1/url b/repo/darwin/packages/upstream/cpuid.0.1.1/url new file mode 100644 index 000000000..248d3235b --- /dev/null +++ b/repo/darwin/packages/upstream/cpuid.0.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/pqwy/cpuid/releases/download/v0.1.1/cpuid-0.1.1.tbz" +checksum: "717a6bf371bd083ea588ccd96f328dc2" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/cstruct-lwt.0/descr b/repo/darwin/packages/upstream/cstruct-lwt.0/descr deleted file mode 100644 index 457063813..000000000 --- a/repo/darwin/packages/upstream/cstruct-lwt.0/descr +++ /dev/null @@ -1,4 +0,0 @@ -Access C-like structures directly from OCaml - -This is a dummy package to facilitate the migration to cstruct 3.0.0, -where several package were split out of the main Cstruct package. diff --git a/repo/darwin/packages/upstream/cstruct-lwt.3.1.1/descr b/repo/darwin/packages/upstream/cstruct-lwt.3.1.1/descr new file mode 100644 index 000000000..04ad3d2ec --- /dev/null +++ b/repo/darwin/packages/upstream/cstruct-lwt.3.1.1/descr @@ -0,0 +1,5 @@ +Access C-like structures directly from OCaml + +Cstruct is a library and syntax extension to make it easier to access C-like +structures directly from OCaml. It supports both reading and writing to these +structures, and they are accessed via the `Bigarray` module. \ No newline at end of file diff --git a/repo/win32/packages/upstream/cstruct-lwt.0/opam b/repo/darwin/packages/upstream/cstruct-lwt.3.1.1/opam similarity index 62% rename from repo/win32/packages/upstream/cstruct-lwt.0/opam rename to repo/darwin/packages/upstream/cstruct-lwt.3.1.1/opam index 50ae2af91..1fcd5d5fd 100644 --- a/repo/win32/packages/upstream/cstruct-lwt.0/opam +++ b/repo/darwin/packages/upstream/cstruct-lwt.3.1.1/opam @@ -2,15 +2,20 @@ opam-version: "1.2" maintainer: "anil@recoil.org" authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire" "Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott" - "Mindy Preston" ] + "Mindy Preston" "Thomas Leonard" ] homepage: "https://github.com/mirage/ocaml-cstruct" license: "ISC" dev-repo: "https://github.com/mirage/ocaml-cstruct.git" bug-reports: "https://github.com/mirage/ocaml-cstruct/issues" tags: [ "org:mirage" "org:ocamllabs" ] -build: [] +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] depends: [ - "cstruct" {<"3.0.0"} + "base-unix" "lwt" + "cstruct" {>="3.1.1"} + "jbuilder" {build & >="1.0+beta7"} ] -available: [ocaml-version >= "4.02.3"] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/cstruct-lwt.3.1.1/url b/repo/darwin/packages/upstream/cstruct-lwt.3.1.1/url new file mode 100644 index 000000000..e8888b702 --- /dev/null +++ b/repo/darwin/packages/upstream/cstruct-lwt.3.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cstruct/releases/download/v3.1.1/cstruct-3.1.1.tbz" +checksum: "9834ebf3e161ae62577962332b544c24" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/cstruct-unix.3.1.1/descr b/repo/darwin/packages/upstream/cstruct-unix.3.1.1/descr new file mode 100644 index 000000000..04ad3d2ec --- /dev/null +++ b/repo/darwin/packages/upstream/cstruct-unix.3.1.1/descr @@ -0,0 +1,5 @@ +Access C-like structures directly from OCaml + +Cstruct is a library and syntax extension to make it easier to access C-like +structures directly from OCaml. It supports both reading and writing to these +structures, and they are accessed via the `Bigarray` module. \ No newline at end of file diff --git a/repo/win32/packages/upstream/ppx_cstruct.0/opam b/repo/darwin/packages/upstream/cstruct-unix.3.1.1/opam similarity index 62% rename from repo/win32/packages/upstream/ppx_cstruct.0/opam rename to repo/darwin/packages/upstream/cstruct-unix.3.1.1/opam index 6915cf9f5..5e49f1cdb 100644 --- a/repo/win32/packages/upstream/ppx_cstruct.0/opam +++ b/repo/darwin/packages/upstream/cstruct-unix.3.1.1/opam @@ -2,16 +2,19 @@ opam-version: "1.2" maintainer: "anil@recoil.org" authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire" "Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott" - "Mindy Preston" ] + "Mindy Preston" "Thomas Leonard" ] homepage: "https://github.com/mirage/ocaml-cstruct" license: "ISC" dev-repo: "https://github.com/mirage/ocaml-cstruct.git" bug-reports: "https://github.com/mirage/ocaml-cstruct/issues" tags: [ "org:mirage" "org:ocamllabs" ] -build: [] +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] depends: [ - "cstruct" {<"3.0.0"} - "ppx_deriving" - "ppx_tools" + "jbuilder" {build & >="1.0+beta7"} + "base-unix" + "cstruct" {>="3.1.1"} ] -available: [ocaml-version >= "4.02.3"] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/cstruct-unix.3.1.1/url b/repo/darwin/packages/upstream/cstruct-unix.3.1.1/url new file mode 100644 index 000000000..e8888b702 --- /dev/null +++ b/repo/darwin/packages/upstream/cstruct-unix.3.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cstruct/releases/download/v3.1.1/cstruct-3.1.1.tbz" +checksum: "9834ebf3e161ae62577962332b544c24" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/cstruct.2.4.1/descr b/repo/darwin/packages/upstream/cstruct.2.4.1/descr deleted file mode 100644 index 2e271f1bc..000000000 --- a/repo/darwin/packages/upstream/cstruct.2.4.1/descr +++ /dev/null @@ -1,22 +0,0 @@ -access C structures via a camlp4 extension - -Cstruct is a library and syntax extension to make it easier to access C-like -structures directly from OCaml. It supports both reading and writing to these -structures, and they are accessed via the Bigarray module. - -An example pcap description using PPX extension points is: - -``` -[%%cstruct -type pcap_header = { - magic_number: uint32_t; (* magic number *) - version_major: uint16_t; (* major version number *) - version_minor: uint16_t; (* minor version number *) - thiszone: uint32_t; (* GMT to local correction *) - sigfigs: uint32_t; (* accuracy of timestamps *) - snaplen: uint32_t; (* max length of captured packets, in octets *) - network: uint32_t; (* data link type *) -} [@@little_endian]] -``` - -For Camlp4 support, please use a version of Cstruct that is `<=1.9.0` diff --git a/repo/darwin/packages/upstream/cstruct.2.4.1/opam b/repo/darwin/packages/upstream/cstruct.2.4.1/opam deleted file mode 100644 index b1bc1f99f..000000000 --- a/repo/darwin/packages/upstream/cstruct.2.4.1/opam +++ /dev/null @@ -1,61 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire" - "Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott" - "Mindy Preston" ] -homepage: "https://github.com/mirage/ocaml-cstruct" -license: "ISC" -dev-repo: "https://github.com/mirage/ocaml-cstruct.git" -bug-reports: "https://github.com/mirage/ocaml-cstruct/issues" -tags: [ - "org:mirage" - "org:ocamllabs" - "org:xapi-project" -] -build: [ - ["./configure" - "--prefix" prefix - "--%{lwt+base-unix:enable}%-lwt" - "--enable-ppx" - "--%{async:enable}%-async" - "--%{base-unix:enable}%-unix"] - [make] -] -build-test: [ - ["./configure" - "--prefix" prefix - "--%{lwt:enable}%-lwt" - "--enable-ppx" - "--%{async:enable}%-async" - "--%{base-unix:enable}%-unix" - "--enable-tests"] - [make] - [make "test"] -] -install: [ - [make "install"] - [make "js-install"] -] -remove: [ - [make "js-uninstall"] - ["ocamlfind" "remove" "cstruct"] -] -depends: [ - "ocamlfind" {build} - "ounit" {test} - "ocplib-endian" - "sexplib" - "base-bytes" - "ocaml-migrate-parsetree" - "ppx_tools_versioned" -] -depopts: [ - "async" - "lwt" - "base-unix" -] -available: [ocaml-version >= "4.02.3"] -depexts: [ - [ ["debian"] ["time"] ] - [ ["ubuntu"] ["time"] ] -] diff --git a/repo/darwin/packages/upstream/cstruct.2.4.1/url b/repo/darwin/packages/upstream/cstruct.2.4.1/url deleted file mode 100644 index 14a0b0893..000000000 --- a/repo/darwin/packages/upstream/cstruct.2.4.1/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-cstruct/archive/v2.4.1.tar.gz" -checksum: "e058a3db193f5fd4706db62a19ed3b98" diff --git a/repo/darwin/packages/upstream/cstruct.3.1.1/descr b/repo/darwin/packages/upstream/cstruct.3.1.1/descr new file mode 100644 index 000000000..04ad3d2ec --- /dev/null +++ b/repo/darwin/packages/upstream/cstruct.3.1.1/descr @@ -0,0 +1,5 @@ +Access C-like structures directly from OCaml + +Cstruct is a library and syntax extension to make it easier to access C-like +structures directly from OCaml. It supports both reading and writing to these +structures, and they are accessed via the `Bigarray` module. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/cstruct.3.1.1/opam b/repo/darwin/packages/upstream/cstruct.3.1.1/opam new file mode 100644 index 000000000..ebd3ec667 --- /dev/null +++ b/repo/darwin/packages/upstream/cstruct.3.1.1/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire" + "Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott" + "Mindy Preston" "Thomas Leonard" ] +homepage: "https://github.com/mirage/ocaml-cstruct" +license: "ISC" +dev-repo: "https://github.com/mirage/ocaml-cstruct.git" +bug-reports: "https://github.com/mirage/ocaml-cstruct/issues" +tags: [ "org:mirage" "org:ocamllabs" ] +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: ["jbuilder" "runtest" "-p" name] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "ocplib-endian" + "sexplib" + "base-bytes" + "ounit" {test} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/cstruct.3.1.1/url b/repo/darwin/packages/upstream/cstruct.3.1.1/url new file mode 100644 index 000000000..e8888b702 --- /dev/null +++ b/repo/darwin/packages/upstream/cstruct.3.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cstruct/releases/download/v3.1.1/cstruct-3.1.1.tbz" +checksum: "9834ebf3e161ae62577962332b544c24" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/datakit-server-9p.0.11.0/descr b/repo/darwin/packages/upstream/datakit-server-9p.0.11.0/descr new file mode 100644 index 000000000..ee93dd205 --- /dev/null +++ b/repo/darwin/packages/upstream/datakit-server-9p.0.11.0/descr @@ -0,0 +1,12 @@ +Orchestrate applications using a Git-like dataflow + +*DataKit* is a tool to orchestrate applications using a Git-like dataflow. It +revisits the UNIX pipeline concept, with a modern twist: streams of +tree-structured data instead of raw text. DataKit allows you to define +complex build pipelines over version-controlled data. + +DataKit is currently used as the coordination +layer for [HyperKit](http://github.com/docker/hyperkit), the +hypervisor component of +[Docker for Mac and Windows](https://blog.docker.com/2016/03/docker-for-mac-windows-beta/), and +for the [DataKitCI][] continuous integration system. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/datakit-server-9p.0.11.0/opam b/repo/darwin/packages/upstream/datakit-server-9p.0.11.0/opam new file mode 100644 index 000000000..bedd18706 --- /dev/null +++ b/repo/darwin/packages/upstream/datakit-server-9p.0.11.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +authors: ["Thomas Leonard" "Magnus Skjegstad" + "David Scott" "Thomas Gazagnaire"] +license: "Apache" +homepage: "https://github.com/moby/datakit" +bug-reports: "https://github.com/moby/datakit/issues" +dev-repo: "https://github.com/moby/datakit.git" +doc: "https://docker.github.io/datakit/" + +build: ["jbuilder" "build" "-p" name "-j" jobs] + +depends: [ + "jbuilder" {build} + "datakit-server" {>= "0.11.0"} + "mirage-flow-lwt" + "protocol-9p" {>= "0.11.0"} + "sexplib" +] diff --git a/repo/darwin/packages/upstream/datakit-server-9p.0.11.0/url b/repo/darwin/packages/upstream/datakit-server-9p.0.11.0/url new file mode 100644 index 000000000..3b7348c50 --- /dev/null +++ b/repo/darwin/packages/upstream/datakit-server-9p.0.11.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/moby/datakit/releases/download/0.11.0/datakit-0.11.0.tbz" +checksum: "b1b7bb4d727d5c7e61f34045be96f178" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/datakit-server.0.9.0/descr b/repo/darwin/packages/upstream/datakit-server.0.11.0/descr similarity index 100% rename from repo/darwin/packages/upstream/datakit-server.0.9.0/descr rename to repo/darwin/packages/upstream/datakit-server.0.11.0/descr diff --git a/repo/darwin/packages/upstream/datakit-server.0.11.0/opam b/repo/darwin/packages/upstream/datakit-server.0.11.0/opam new file mode 100644 index 000000000..092b9aee3 --- /dev/null +++ b/repo/darwin/packages/upstream/datakit-server.0.11.0/opam @@ -0,0 +1,21 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +authors: ["Thomas Leonard" "Magnus Skjegstad" + "David Scott" "Thomas Gazagnaire"] +license: "Apache" +homepage: "https://github.com/moby/datakit" +bug-reports: "https://github.com/moby/datakit/issues" +dev-repo: "https://github.com/moby/datakit.git" +doc: "https://docker.github.io/datakit/" + +build: ["jbuilder" "build" "-p" name "-j" jobs] + +depends: [ + "jbuilder" {build} + "astring" + "logs" + "rresult" + "fmt" + "lwt" {>= "3.0.0"} + "cstruct" {>= "2.2.0"} +] diff --git a/repo/darwin/packages/upstream/datakit-server.0.11.0/url b/repo/darwin/packages/upstream/datakit-server.0.11.0/url new file mode 100644 index 000000000..3b7348c50 --- /dev/null +++ b/repo/darwin/packages/upstream/datakit-server.0.11.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/moby/datakit/releases/download/0.11.0/datakit-0.11.0.tbz" +checksum: "b1b7bb4d727d5c7e61f34045be96f178" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/datakit-server.0.9.0/opam b/repo/darwin/packages/upstream/datakit-server.0.9.0/opam deleted file mode 100644 index e1343f000..000000000 --- a/repo/darwin/packages/upstream/datakit-server.0.9.0/opam +++ /dev/null @@ -1,25 +0,0 @@ -opam-version: "1.2" -maintainer: "thomas@gazagnaire.org" -authors: ["Thomas Leonard" "Magnus Skjegstad" - "David Scott" "Thomas Gazagnaire"] -license: "Apache" -homepage: "https://github.com/docker/datakit" -bug-reports: "https://github.com/docker/datakit/issues" -dev-repo: "https://github.com/docker/datakit.git" -doc: "https://docker.github.io/datakit/" - -build: [ - "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "-n" name -] - -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "base-bytes" - "astring" "logs" "uri" "rresult" "fmt" - "cstruct" {>= "2.2.0"} - "protocol-9p" {>= "0.7.4" & <"0.9.0"} - "sexplib" - "mirage-types-lwt" {>="2.6.0" & < "3.0.0"} -] diff --git a/repo/darwin/packages/upstream/datakit-server.0.9.0/url b/repo/darwin/packages/upstream/datakit-server.0.9.0/url deleted file mode 100644 index ee23b0053..000000000 --- a/repo/darwin/packages/upstream/datakit-server.0.9.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/docker/datakit/releases/download/0.9.0/datakit-0.9.0.tbz" -checksum: "46e4fcd1e9c05e4587ae1663518a8c74" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/depext.1.0.4/url b/repo/darwin/packages/upstream/depext.1.0.4/url deleted file mode 100644 index 640f4a750..000000000 --- a/repo/darwin/packages/upstream/depext.1.0.4/url +++ /dev/null @@ -1,3 +0,0 @@ -http: - "https://github.com/ocaml/opam-depext/releases/download/v1.0.4/opam-depext-full-1.0.4.tbz" -checksum: "532973c26dfe893f624eada308440f2f" diff --git a/repo/darwin/packages/upstream/depext.1.0.4/descr b/repo/darwin/packages/upstream/depext.1.0.5/descr similarity index 100% rename from repo/darwin/packages/upstream/depext.1.0.4/descr rename to repo/darwin/packages/upstream/depext.1.0.5/descr diff --git a/repo/darwin/packages/upstream/depext.1.0.4/opam b/repo/darwin/packages/upstream/depext.1.0.5/opam similarity index 100% rename from repo/darwin/packages/upstream/depext.1.0.4/opam rename to repo/darwin/packages/upstream/depext.1.0.5/opam diff --git a/repo/darwin/packages/upstream/depext.1.0.5/url b/repo/darwin/packages/upstream/depext.1.0.5/url new file mode 100644 index 000000000..65a2704cc --- /dev/null +++ b/repo/darwin/packages/upstream/depext.1.0.5/url @@ -0,0 +1,2 @@ +http: "https://github.com/ocaml/opam-depext/releases/download/v1.0.5/opam-depext-full-1.0.5.tbz" +checksum: "85bcce28ed7efa75cf54bbff531eea14" diff --git a/repo/darwin/packages/upstream/dns-forward.0.9.0/descr b/repo/darwin/packages/upstream/dns-forward.0.9.0/descr new file mode 100644 index 000000000..b357f016f --- /dev/null +++ b/repo/darwin/packages/upstream/dns-forward.0.9.0/descr @@ -0,0 +1,8 @@ +Library and tools for creating forwarding DNS servers + +Features: + +- UDP and TCP DNS forwarding +- support for sending queries to specific servers based on domain +- dynamic configuration updates +- extra records (e.g. from /etc/hosts) diff --git a/repo/darwin/packages/upstream/dns-forward.0.9.0/opam b/repo/darwin/packages/upstream/dns-forward.0.9.0/opam new file mode 100644 index 000000000..4a06cfff7 --- /dev/null +++ b/repo/darwin/packages/upstream/dns-forward.0.9.0/opam @@ -0,0 +1,35 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: ["David Scott"] +license: "ISC" +homepage: "https://github.com/mirage/ocaml-dns-forward" +bug-reports: "https://github.com/mirage/ocaml-dns-forward/issues" +dev-repo: "https://github.com/mirage/ocaml-dns-forward.git" +doc: "https://mirage.github.io/ocaml-dns-forward/" + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: ["jbuilder" "runtest" "-p" name] + +depends: [ + "jbuilder" {build & >= "1.0+beta10"} + "cstruct" {>= "3.0.0"} + "logs" {>= "0.5.0"} + "lwt" {>= "2.7.0"} + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-clock-lwt" + "mirage-channel-lwt" + "mirage-time-lwt" + "duration" + "dns" + "rresult" + "astring" + "fmt" + "result" + "mtime" + "sexplib" + "ipaddr" +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/dns-forward.0.9.0/url b/repo/darwin/packages/upstream/dns-forward.0.9.0/url new file mode 100644 index 000000000..84185871a --- /dev/null +++ b/repo/darwin/packages/upstream/dns-forward.0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-dns-forward/releases/download/v0.9.0/dns-forward-0.9.0.tbz" +checksum: "851d7b0ad1658586ff6554117dedf845" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/dns-lwt.1.0.0/descr b/repo/darwin/packages/upstream/dns-lwt.1.0.0/descr new file mode 100644 index 000000000..84cefc577 --- /dev/null +++ b/repo/darwin/packages/upstream/dns-lwt.1.0.0/descr @@ -0,0 +1,29 @@ +DNS client and server implementation in pure OCaml + +This is a pure OCaml implementation of the DNS protocol. It is intended to be +a reasonably high-performance implementation, but clarity is preferred rather +than low-level performance hacks. + +[![Build Status](https://travis-ci.org/mirage/ocaml-dns.svg?branch=master)](https://travis-ci.org/mirage/ocaml-dns) + +To build it, please use the [OPAM](https://opam.ocaml.org) package manager (1.2+): + + opam pin add dns . + +This will install the dependencies needed and give you a working development +version of the library. + +Packages: + +* `lib/` contains the core DNS protocol, which is packed into the `Dns` module. +* `lib_test/` contains unit tests and sample uses of the library. + In particular, `time_server` is a simple dynamic responder. + +Areas that need work: + +* We need an Lwt-based client iterative resolver + Patches for this are highly welcome! +* EDNS0 extensions +* DNSSEC extensions (using [nocrypto](https://github.com/mirleft/ocaml-nocrypto/)) +* TC bit and TCP fallback +* mDNS resolver \ No newline at end of file diff --git a/repo/darwin/packages/upstream/dns-lwt.1.0.0/opam b/repo/darwin/packages/upstream/dns-lwt.1.0.0/opam new file mode 100644 index 000000000..545c42913 --- /dev/null +++ b/repo/darwin/packages/upstream/dns-lwt.1.0.0/opam @@ -0,0 +1,25 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/ocaml-dns" +dev-repo: "https://github.com/mirage/ocaml-dns.git" +bug-reports: "https://github.com/mirage/ocaml-dns/issues" +doc: "https://mirage.github.io/ocaml-dns/" +tags: [ "org:mirage" "org:xapi-project" ] +authors: [ + "Anil Madhavapeddy" "Tim Deegan" "Richard Mortier" "Haris Rotsos" + "David Sheets" "Thomas Gazagnaire" "Luke Dunstan" "David Scott" +] +license: "ISC" + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "mirage-profile" {>="0.8.0"} + "lwt" {>="3.0.0"} + "dns" {>="1.0.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/dns-lwt.1.0.0/url b/repo/darwin/packages/upstream/dns-lwt.1.0.0/url new file mode 100644 index 000000000..6eb7b78ec --- /dev/null +++ b/repo/darwin/packages/upstream/dns-lwt.1.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-dns/releases/download/v1.0.0/dns-1.0.0.tbz" +checksum: "5fe4efe11671253950f89036a6cc1a21" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/dns.1.0.0/descr b/repo/darwin/packages/upstream/dns.1.0.0/descr new file mode 100644 index 000000000..84cefc577 --- /dev/null +++ b/repo/darwin/packages/upstream/dns.1.0.0/descr @@ -0,0 +1,29 @@ +DNS client and server implementation in pure OCaml + +This is a pure OCaml implementation of the DNS protocol. It is intended to be +a reasonably high-performance implementation, but clarity is preferred rather +than low-level performance hacks. + +[![Build Status](https://travis-ci.org/mirage/ocaml-dns.svg?branch=master)](https://travis-ci.org/mirage/ocaml-dns) + +To build it, please use the [OPAM](https://opam.ocaml.org) package manager (1.2+): + + opam pin add dns . + +This will install the dependencies needed and give you a working development +version of the library. + +Packages: + +* `lib/` contains the core DNS protocol, which is packed into the `Dns` module. +* `lib_test/` contains unit tests and sample uses of the library. + In particular, `time_server` is a simple dynamic responder. + +Areas that need work: + +* We need an Lwt-based client iterative resolver + Patches for this are highly welcome! +* EDNS0 extensions +* DNSSEC extensions (using [nocrypto](https://github.com/mirleft/ocaml-nocrypto/)) +* TC bit and TCP fallback +* mDNS resolver \ No newline at end of file diff --git a/repo/darwin/packages/upstream/dns.1.0.0/opam b/repo/darwin/packages/upstream/dns.1.0.0/opam new file mode 100644 index 000000000..fedd24c40 --- /dev/null +++ b/repo/darwin/packages/upstream/dns.1.0.0/opam @@ -0,0 +1,32 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/ocaml-dns" +dev-repo: "https://github.com/mirage/ocaml-dns.git" +bug-reports: "https://github.com/mirage/ocaml-dns/issues" +doc: "https://mirage.github.io/ocaml-dns/" +authors: [ + "Anil Madhavapeddy" "Tim Deegan" "Richard Mortier" + "Haris Rotsos" "David Sheets" "Thomas Gazagnaire" + "Luke Dunstan" "David Scott" +] +license: "ISC" +tags: [ "org:mirage" "org:xapi-project" ] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "base-bytes" + "jbuilder" {>= "1.0+beta9"} + "cstruct" {>= "3.0.2"} + "ppx_cstruct" {build} + "re" + "ipaddr" {>= "2.6.0"} + "uri" {>= "1.7.0"} + "base64" {>= "2.0.0"} + "hashcons" + "result" +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/dns.1.0.0/url b/repo/darwin/packages/upstream/dns.1.0.0/url new file mode 100644 index 000000000..6eb7b78ec --- /dev/null +++ b/repo/darwin/packages/upstream/dns.1.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-dns/releases/download/v1.0.0/dns-1.0.0.tbz" +checksum: "5fe4efe11671253950f89036a6cc1a21" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/dnssd.0.5.0/descr b/repo/darwin/packages/upstream/dnssd.0.5.0/descr new file mode 100644 index 000000000..82ad97bb3 --- /dev/null +++ b/repo/darwin/packages/upstream/dnssd.0.5.0/descr @@ -0,0 +1,19 @@ +DNS Service Discovery for macOS + +This library contains bindings to the functions in `dns_sd.h`, which +are used to perform generic DNS queries using the macOS resolver. +This is the best way to ensure that the query results match the +results obtained by other apps on OSX. + +## Usage example + +In a toplevel: + +```ocaml +Dnssd.query "dave.recoil.org" Dns.Packet.Q_A;; +- : (Dns.Packet.rr list, Dnssd.error) result = +Ok + [{Dns.Packet.name = ; cls = Dns.Packet.RR_IN; flush = false; ttl = 187l; rdata = Dns.Packet.A }; + {Dns.Packet.name = ; cls = Dns.Packet.RR_IN; flush = false; ttl = 187l; rdata = Dns.Packet.CNAME }; + {Dns.Packet.name = ; cls = Dns.Packet.RR_IN; flush = false; ttl = 187l; rdata = Dns.Packet.CNAME }] +``` \ No newline at end of file diff --git a/repo/darwin/packages/upstream/dnssd.0.5.0/opam b/repo/darwin/packages/upstream/dnssd.0.5.0/opam new file mode 100644 index 000000000..1fb84a9a7 --- /dev/null +++ b/repo/darwin/packages/upstream/dnssd.0.5.0/opam @@ -0,0 +1,32 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: ["David Scott" "Thomas Gazagnaire"] +license: "ISC" +homepage: "https://github.com/mirage/ocaml-osx-dnssd" +dev-repo: "https://github.com/mirage/ocaml-osx-dnssd.git" +bug-reports: "https://github.com/mirage/ocaml-osx-dnssd/issues" +doc: "https://mirage.github.io/ocaml-osx-dnssd/" +tags: [ + "org:mirage" +] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-j" jobs] +] + +build-test: [ + [ "jbuilder" "runtest" ] +] + +depends: [ + "dns" + "lwt" + "logs" + "fmt" + "cstruct" {>= "2.3.0"} + "jbuilder" {build & >= "1.0+beta10"} + "alcotest" {test} +] + +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/dnssd.0.5.0/url b/repo/darwin/packages/upstream/dnssd.0.5.0/url new file mode 100644 index 000000000..5f1db26d3 --- /dev/null +++ b/repo/darwin/packages/upstream/dnssd.0.5.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-osx-dnssd/releases/download/v0.5.0/dnssd-0.5.0.tbz" +checksum: "8208d2ee22d572ea42da2a1e258c5d5a" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/duration.0.1.0/opam b/repo/darwin/packages/upstream/duration.0.1.0/opam index 464351cb5..82e64c803 100644 --- a/repo/darwin/packages/upstream/duration.0.1.0/opam +++ b/repo/darwin/packages/upstream/duration.0.1.0/opam @@ -11,7 +11,7 @@ depends: [ "ocamlfind" {build} "ocamlbuild" {build} "topkg" {build} - "alcotest" {test & >= "0.6.0"} + "alcotest" {test & >= "0.6.0" & < "0.8.0"} ] build: [ diff --git a/repo/darwin/packages/upstream/fd-send-recv.1.0.4/descr b/repo/darwin/packages/upstream/fd-send-recv.1.0.4/descr new file mode 100644 index 000000000..6aa8713d1 --- /dev/null +++ b/repo/darwin/packages/upstream/fd-send-recv.1.0.4/descr @@ -0,0 +1 @@ +Bindings for sendmsg/recvmsg that allow Unix.file_descrs to be sent and received over Unix domain sockets diff --git a/repo/darwin/packages/upstream/fd-send-recv.1.0.4/opam b/repo/darwin/packages/upstream/fd-send-recv.1.0.4/opam new file mode 100644 index 000000000..f8fb2aa21 --- /dev/null +++ b/repo/darwin/packages/upstream/fd-send-recv.1.0.4/opam @@ -0,0 +1,25 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: [ + "Jonathan Ludlam" + "David Scott" + "David Sheets" + "Euan Harris" + "Vincent Bernardoff" +] +homepage: "https://github.com/djs55/ocaml-fd-send-recv" +bug-reports: "https://github.com/djs55/ocaml-fd-send-recv/issues" +dev-repo: "git://github.com/djs55/ocaml-fd-send-recv" +doc: "https://github.com/djs55/ocaml-fd-send-recv/blob/master/lib/fd_send_recv.mli" +license: "LGPL-2.1+ with OCaml linking exception" +tags: [ + "org:mirage" + "org:xapi-project" +] +build: make +remove: [["ocamlfind" "remove" "fd-send-recv"]] +depends: [ + "ocamlfind" + "ocamlbuild" {build} +] +install: [make "install"] diff --git a/repo/darwin/packages/upstream/fd-send-recv.1.0.4/url b/repo/darwin/packages/upstream/fd-send-recv.1.0.4/url new file mode 100644 index 000000000..b18dc00b5 --- /dev/null +++ b/repo/darwin/packages/upstream/fd-send-recv.1.0.4/url @@ -0,0 +1,2 @@ +archive: "https://github.com/djs55/ocaml-fd-send-recv/archive/v1.0.4.tar.gz" +checksum: "8f3467fe9e46b8f276e14b2411c3f255" diff --git a/repo/darwin/packages/upstream/fmt.0.8.3/url b/repo/darwin/packages/upstream/fmt.0.8.3/url deleted file mode 100644 index 01f29a059..000000000 --- a/repo/darwin/packages/upstream/fmt.0.8.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://erratique.ch/software/fmt/releases/fmt-0.8.3.tbz" -checksum: "bb945d129fc6d89b6acace48b2c9886d" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/fmt.0.8.3/descr b/repo/darwin/packages/upstream/fmt.0.8.4/descr similarity index 100% rename from repo/darwin/packages/upstream/fmt.0.8.3/descr rename to repo/darwin/packages/upstream/fmt.0.8.4/descr diff --git a/repo/darwin/packages/upstream/fmt.0.8.3/opam b/repo/darwin/packages/upstream/fmt.0.8.4/opam similarity index 100% rename from repo/darwin/packages/upstream/fmt.0.8.3/opam rename to repo/darwin/packages/upstream/fmt.0.8.4/opam diff --git a/repo/darwin/packages/upstream/fmt.0.8.4/url b/repo/darwin/packages/upstream/fmt.0.8.4/url new file mode 100644 index 000000000..f85f4e374 --- /dev/null +++ b/repo/darwin/packages/upstream/fmt.0.8.4/url @@ -0,0 +1,2 @@ +archive: "http://erratique.ch/software/fmt/releases/fmt-0.8.4.tbz" +checksum: "1853cbe019dfe99ef5f3b0011f1653b2" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/hashcons.1.0.1/url b/repo/darwin/packages/upstream/hashcons.1.0.1/url deleted file mode 100644 index d2c5fe443..000000000 --- a/repo/darwin/packages/upstream/hashcons.1.0.1/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/dsheets/ocaml-hashcons/releases/download/1.0.1/ocaml-hashcons-1.0.1.tar.gz" -checksum: "caa6378c30d69baaf703e5f8b903a493" diff --git a/repo/darwin/packages/upstream/hashcons.1.0.1/descr b/repo/darwin/packages/upstream/hashcons.1.2/descr similarity index 100% rename from repo/darwin/packages/upstream/hashcons.1.0.1/descr rename to repo/darwin/packages/upstream/hashcons.1.2/descr diff --git a/repo/darwin/packages/upstream/hashcons.1.0.1/opam b/repo/darwin/packages/upstream/hashcons.1.2/opam similarity index 92% rename from repo/darwin/packages/upstream/hashcons.1.0.1/opam rename to repo/darwin/packages/upstream/hashcons.1.2/opam index 14cf5006d..93691b022 100644 --- a/repo/darwin/packages/upstream/hashcons.1.0.1/opam +++ b/repo/darwin/packages/upstream/hashcons.1.2/opam @@ -6,6 +6,7 @@ bug-reports: "https://github.com/backtracking/ocaml-hashcons/issues" authors: [ "Jean-Christophe Filliatre" ] license: "LGPL-2.1 with OCaml linking exception" build: [ + ["autoconf"] ["./configure"] [make "all"] ] @@ -14,6 +15,7 @@ install: [ ] remove: [["ocamlfind" "remove" "hashcons"]] depends: [ + "conf-autoconf" {build} "ocamlfind" {build} "conf-which" {build} ] diff --git a/repo/darwin/packages/upstream/hashcons.1.2/url b/repo/darwin/packages/upstream/hashcons.1.2/url new file mode 100644 index 000000000..767441224 --- /dev/null +++ b/repo/darwin/packages/upstream/hashcons.1.2/url @@ -0,0 +1,3 @@ +http: "https://github.com/backtracking/ocaml-hashcons/archive/1.2.tar.gz" +checksum: "3febf305ffbdd31d6de92c42d382a09e" + diff --git a/repo/darwin/packages/upstream/hex.1.1.0/url b/repo/darwin/packages/upstream/hex.1.1.0/url deleted file mode 100644 index 62b1851ec..000000000 --- a/repo/darwin/packages/upstream/hex.1.1.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-hex/archive/1.1.0.tar.gz" -checksum: "42c9b40590dbe0c6b0492f340c70f3a4" diff --git a/repo/darwin/packages/upstream/hex.1.1.0/descr b/repo/darwin/packages/upstream/hex.1.1.1/descr similarity index 100% rename from repo/darwin/packages/upstream/hex.1.1.0/descr rename to repo/darwin/packages/upstream/hex.1.1.1/descr diff --git a/repo/win32/packages/upstream/hex.1.1.0/opam b/repo/darwin/packages/upstream/hex.1.1.1/opam similarity index 75% rename from repo/win32/packages/upstream/hex.1.1.0/opam rename to repo/darwin/packages/upstream/hex.1.1.1/opam index d95ac8606..7ff4119f3 100644 --- a/repo/win32/packages/upstream/hex.1.1.0/opam +++ b/repo/darwin/packages/upstream/hex.1.1.1/opam @@ -5,10 +5,12 @@ homepage: "https://github.com/mirage/ocaml-hex" bug-reports: "https://github.com/mirage/ocaml-hex/issues" dev-repo: "https://github.com/mirage/ocaml-hex.git" license: "ISC" -build: [ [ "jbuilder" "build" ] ] +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] build-test: [ [ "jbuilder" "runtest" ] ] depends: [ - "ocamlfind" {build} - "jbuilder" {>="1.0+beta8"} + "jbuilder" {build & >="1.0+beta8"} "cstruct" {>= "1.7.0"} ] diff --git a/repo/darwin/packages/upstream/hex.1.1.1/url b/repo/darwin/packages/upstream/hex.1.1.1/url new file mode 100644 index 000000000..2adad720c --- /dev/null +++ b/repo/darwin/packages/upstream/hex.1.1.1/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/ocaml-hex/releases/download/v1.1.1/hex-1.1.1.tbz" +checksum: "d09ddf79b977aaa70ae8c6a7a953d54e" diff --git a/repo/darwin/packages/upstream/hvsock.1.0.0/descr b/repo/darwin/packages/upstream/hvsock.1.0.0/descr new file mode 100644 index 000000000..4b5c307fb --- /dev/null +++ b/repo/darwin/packages/upstream/hvsock.1.0.0/descr @@ -0,0 +1,13 @@ +Bindings for Hyper-V AF_VSOCK + +[![Build Status (Linux)](https://travis-ci.org/mirage/ocaml-hvsock.svg)](https://travis-ci.org/mirage/ocaml-hvsock) +[![Build status (Windows)](https://ci.appveyor.com/api/projects/status/974tsg317b4k8xra?svg=true)](https://ci.appveyor.com/project/mirage/ocaml-hvsock/branch/master) + +These bindings allow Host <-> VM communication on Hyper-V systems on both Linux +and Windows. + +*Warning*: the `AF_HYPERV` patches for Linux are not yet merged and hence the +definition of `AF_HYPERV` is not yet stable. If other address families are merged +before this one then the value of `AF_HYPERV` will change! + +Please read [the API documentation](https://djs55.github.io/ocaml-hvsock/index.html). \ No newline at end of file diff --git a/repo/darwin/packages/upstream/hvsock.1.0.0/opam b/repo/darwin/packages/upstream/hvsock.1.0.0/opam new file mode 100644 index 000000000..f71d3a430 --- /dev/null +++ b/repo/darwin/packages/upstream/hvsock.1.0.0/opam @@ -0,0 +1,37 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: [ "David Scott" "Rolf Neugebauer" "Anil Madhavapeddy" "Simon Ferquel"] +license: "ISC" +homepage: "https://github.com/mirage/ocaml-hvsock" +dev-repo: "https://github.com/mirage/ocaml-hvsock.git" +bug-reports: "https://github.com/mirage/ocaml-hvsock/issues" +doc: "https://mirage.github.io/ocaml-hvsock" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +build-test:[ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "runtest" "-p" name "-j" jobs ] +] + +depends: [ + "base-bytes" + "base-threads" + "base-unix" + "lwt" {>= "2.4.7"} + "logs" + "fmt" + "cmdliner" + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-time-lwt" {>= "1.0.0"} + "cstruct" {>= "2.4.0"} + "duration" + "bos" + "jbuilder" {build & >="1.0+beta10"} + "alcotest" {test & >= "0.4.0"} +] + +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/hvsock.1.0.0/url b/repo/darwin/packages/upstream/hvsock.1.0.0/url new file mode 100644 index 000000000..c8881477b --- /dev/null +++ b/repo/darwin/packages/upstream/hvsock.1.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-hvsock/releases/download/v1.0.0/hvsock-1.0.0.tbz" +checksum: "cd880aa60fa2e03ce6eb3a5baf56c608" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/io-page.1.6.1/descr b/repo/darwin/packages/upstream/io-page-unix.2.0.0/descr similarity index 100% rename from repo/darwin/packages/upstream/io-page.1.6.1/descr rename to repo/darwin/packages/upstream/io-page-unix.2.0.0/descr diff --git a/repo/darwin/packages/upstream/io-page.1.6.1/opam b/repo/darwin/packages/upstream/io-page-unix.2.0.0/opam similarity index 54% rename from repo/darwin/packages/upstream/io-page.1.6.1/opam rename to repo/darwin/packages/upstream/io-page-unix.2.0.0/opam index 744395e2d..ab9e63f7f 100644 --- a/repo/darwin/packages/upstream/io-page.1.6.1/opam +++ b/repo/darwin/packages/upstream/io-page-unix.2.0.0/opam @@ -3,6 +3,7 @@ maintainer: "anil@recoil.org" homepage: "https://github.com/mirage/io-page" dev-repo: "https://github.com/mirage/io-page.git" bug-reports: "https://github.com/mirage/io-page/issues" +license: "ISC" authors: [ "Anil Madhavapeddy" "Dave Scott" @@ -10,20 +11,15 @@ authors: [ ] tags: ["org:mirage"] build: [ - [ "./configure" "--prefix" prefix - "--%{mirage-xen-ocaml:enable}%-xen" - ] - [make] + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] ] -install: [make "install"] -remove: ["ocamlfind" "remove" "io-page"] + depends: [ - "ocamlfind" - "cstruct" {>= "1.1.0"} + "io-page" {>= "2.0.0"} + "jbuilder" {build & >="1.0+beta9"} + "configurator" {build} + "cstruct" {>= "2.0.0"} "ounit" {test} - "ocamlbuild" {build} ] -depopts: [ - "mirage-xen-ocaml" -] -available: [ocaml-version >= "4.00.0"] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/io-page-unix.2.0.0/url b/repo/darwin/packages/upstream/io-page-unix.2.0.0/url new file mode 100644 index 000000000..796b1313b --- /dev/null +++ b/repo/darwin/packages/upstream/io-page-unix.2.0.0/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/io-page/releases/download/2.0.0/io-page-2.0.0.tbz" +checksum: "b40222f38428a21d86d42ba8645a2c68" diff --git a/repo/darwin/packages/upstream/io-page.1.6.1/url b/repo/darwin/packages/upstream/io-page.1.6.1/url deleted file mode 100644 index 435df0c87..000000000 --- a/repo/darwin/packages/upstream/io-page.1.6.1/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/io-page/archive/v1.6.1.tar.gz" -checksum: "9e5527b5e44b111ee0fff05e1389296b" diff --git a/repo/darwin/packages/upstream/io-page.2.0.0/descr b/repo/darwin/packages/upstream/io-page.2.0.0/descr new file mode 100644 index 000000000..396d0e049 --- /dev/null +++ b/repo/darwin/packages/upstream/io-page.2.0.0/descr @@ -0,0 +1 @@ +Allocate memory pages suitable for aligned I/O diff --git a/repo/darwin/packages/upstream/io-page.2.0.0/opam b/repo/darwin/packages/upstream/io-page.2.0.0/opam new file mode 100644 index 000000000..a358da597 --- /dev/null +++ b/repo/darwin/packages/upstream/io-page.2.0.0/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/io-page" +dev-repo: "https://github.com/mirage/io-page.git" +bug-reports: "https://github.com/mirage/io-page/issues" +license: "ISC" +authors: [ + "Anil Madhavapeddy" + "Dave Scott" + "Thomas Gazagnaire" +] +tags: ["org:mirage"] +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "configurator" {build} + "cstruct" {>= "2.0.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/io-page.2.0.0/url b/repo/darwin/packages/upstream/io-page.2.0.0/url new file mode 100644 index 000000000..796b1313b --- /dev/null +++ b/repo/darwin/packages/upstream/io-page.2.0.0/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/io-page/releases/download/2.0.0/io-page-2.0.0.tbz" +checksum: "b40222f38428a21d86d42ba8645a2c68" diff --git a/repo/darwin/packages/upstream/ipaddr.2.7.2/url b/repo/darwin/packages/upstream/ipaddr.2.7.2/url deleted file mode 100644 index 4795e2e84..000000000 --- a/repo/darwin/packages/upstream/ipaddr.2.7.2/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-ipaddr/releases/download/2.7.2/ipaddr-2.7.2.tbz" -checksum: "541bac5e56c3254943a78307980efbc2" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/ipaddr.2.7.2/descr b/repo/darwin/packages/upstream/ipaddr.2.8.0/descr similarity index 100% rename from repo/darwin/packages/upstream/ipaddr.2.7.2/descr rename to repo/darwin/packages/upstream/ipaddr.2.8.0/descr diff --git a/repo/win32/packages/upstream/ipaddr.2.7.2/opam b/repo/darwin/packages/upstream/ipaddr.2.8.0/opam similarity index 57% rename from repo/win32/packages/upstream/ipaddr.2.7.2/opam rename to repo/darwin/packages/upstream/ipaddr.2.8.0/opam index 415861c24..4f782b49c 100644 --- a/repo/win32/packages/upstream/ipaddr.2.7.2/opam +++ b/repo/darwin/packages/upstream/ipaddr.2.8.0/opam @@ -17,22 +17,16 @@ tags: [ ] build: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" - "--with-base-unix" "%{base-unix:installed}%" ] -] -build-test: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "true" ] - [ "ocaml" "pkg/pkg.ml" "test" ] + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] ] +build-test: [ "jbuilder" "runtest" "-p" name "-j" jobs ] + depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} + "jbuilder" {build & >="1.0+beta7"} "base-bytes" - "sexplib" - "ppx_deriving" {build} - "ppx_sexp_conv" + "ppx_sexp_conv" {build & >="v0.9.0"} "ounit" {test} ] depopts: [ "base-unix" ] -available: [ ocaml-version >= "4.02.2" ] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/ipaddr.2.8.0/url b/repo/darwin/packages/upstream/ipaddr.2.8.0/url new file mode 100644 index 000000000..b591bf255 --- /dev/null +++ b/repo/darwin/packages/upstream/ipaddr.2.8.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-ipaddr/releases/download/2.8.0/ipaddr-2.8.0.tbz" +checksum: "f3442867873b4b60d7860283ff98c3c8" diff --git a/repo/darwin/packages/upstream/jbuilder.1.0+beta9/descr b/repo/darwin/packages/upstream/jbuilder.1.0+beta11/descr similarity index 100% rename from repo/darwin/packages/upstream/jbuilder.1.0+beta9/descr rename to repo/darwin/packages/upstream/jbuilder.1.0+beta11/descr diff --git a/repo/darwin/packages/upstream/jbuilder.1.0+beta9/opam b/repo/darwin/packages/upstream/jbuilder.1.0+beta11/opam similarity index 100% rename from repo/darwin/packages/upstream/jbuilder.1.0+beta9/opam rename to repo/darwin/packages/upstream/jbuilder.1.0+beta11/opam diff --git a/repo/darwin/packages/upstream/jbuilder.1.0+beta11/url b/repo/darwin/packages/upstream/jbuilder.1.0+beta11/url new file mode 100644 index 000000000..68d7cfbea --- /dev/null +++ b/repo/darwin/packages/upstream/jbuilder.1.0+beta11/url @@ -0,0 +1,2 @@ +archive: "https://github.com/janestreet/jbuilder/releases/download/1.0+beta11/jbuilder-1.0.beta11.tbz" +checksum: "e6f433574a0fe635ad4e126c043f5e00" diff --git a/repo/darwin/packages/upstream/jbuilder.1.0+beta9/url b/repo/darwin/packages/upstream/jbuilder.1.0+beta9/url deleted file mode 100644 index ab660df9f..000000000 --- a/repo/darwin/packages/upstream/jbuilder.1.0+beta9/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/janestreet/jbuilder/releases/download/1.0+beta9/jbuilder-1.0.beta9.tbz" -checksum: "7a8a71d559ed51712cfb4bba0da6721b" diff --git a/repo/darwin/packages/upstream/lwt.2.7.1/files/lwt.install b/repo/darwin/packages/upstream/lwt.2.7.1/files/lwt.install deleted file mode 100644 index bdf849695..000000000 --- a/repo/darwin/packages/upstream/lwt.2.7.1/files/lwt.install +++ /dev/null @@ -1,6 +0,0 @@ -lib: "lwt.opam" { "opam" } -doc: [ - "README.md" - "CHANGES" - "doc/COPYING" { "LICENSE" } -] diff --git a/repo/darwin/packages/upstream/lwt.2.7.1/url b/repo/darwin/packages/upstream/lwt.2.7.1/url deleted file mode 100644 index fd82c53b3..000000000 --- a/repo/darwin/packages/upstream/lwt.2.7.1/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/ocsigen/lwt/archive/2.7.1.tar.gz" -checksum: "fb478fbdb6fda0d1fa64a8a2f9ac1bbb" diff --git a/repo/win32/packages/upstream/lwt.2.7.1/descr b/repo/darwin/packages/upstream/lwt.3.1.0/descr similarity index 91% rename from repo/win32/packages/upstream/lwt.2.7.1/descr rename to repo/darwin/packages/upstream/lwt.3.1.0/descr index 4177e6837..6bada2351 100644 --- a/repo/win32/packages/upstream/lwt.2.7.1/descr +++ b/repo/darwin/packages/upstream/lwt.3.1.0/descr @@ -1,4 +1,4 @@ -Monadic promises and concurrent I/O +Concurrency based on promises A promise is a value that may become determined in the future. diff --git a/repo/darwin/packages/upstream/lwt.2.7.1/opam b/repo/darwin/packages/upstream/lwt.3.1.0/opam similarity index 55% rename from repo/darwin/packages/upstream/lwt.2.7.1/opam rename to repo/darwin/packages/upstream/lwt.3.1.0/opam index cd40df575..ba1ff3ea9 100644 --- a/repo/darwin/packages/upstream/lwt.2.7.1/opam +++ b/repo/darwin/packages/upstream/lwt.3.1.0/opam @@ -1,6 +1,5 @@ opam-version: "1.2" -name: "lwt" -version: "2.7.1" +version: "3.1.0" maintainer: [ "Anton Bachin " "Mauricio Fernandez " @@ -15,49 +14,35 @@ doc: "https://ocsigen.org/lwt/manual/" bug-reports: "https://github.com/ocsigen/lwt/issues" license: "LGPL with OpenSSL linking exception" dev-repo: "https://github.com/ocsigen/lwt.git" + build: [ - [make "setup"] - ["ocaml" "setup.ml" "-configure" - "--prefix" prefix - "--%{conf-libev:enable}%-libev" - "--%{camlp4:enable}%-camlp4" - "--%{react:enable}%-react" - "--%{ssl:enable}%-ssl" - "--%{base-unix:enable}%-unix" - "--%{base-threads:enable}%-preemptive" - "--%{lablgtk:enable}%-glib" - "--%{ppx_tools:enable}%-ppx"] - [make "build"] + [ "ocaml" "src/util/configure.ml" "-use-libev" "%{conf-libev:installed}%" + "-use-camlp4" "%{camlp4:installed}%" ] + [ "jbuilder" "build" "-p" name "-j" jobs ] + [ "ocaml" "src/util/install_filter.ml" ] ] -build-test: [ - ["ocaml" "setup.ml" "-configure" "--enable-tests"] - [make "test"] -] -install: [[make "install"]] -remove: [[ "ocamlfind" "remove" "lwt" ]] +build-test: [ [ "jbuilder" "runtest" "-p" name ] ] + depends: [ + "cppo" {build} + "jbuilder" {build & >= "1.0+beta10"} + # We are only using ocamlfind during configuration of the Unix binding. "ocamlfind" {build & >= "1.5.0"} - "ocamlbuild" {build} + "ocaml-migrate-parsetree" + "ppx_tools_versioned" + # result is needed as long as Lwt still supports OCaml 4.02. "result" - "cppo" {build} - # See https://github.com/ocsigen/lwt/issues/266 - ( "base-no-ppx" | "ppx_tools" {build} ) ] depopts: [ "base-threads" "base-unix" - "conf-libev" "camlp4" - "ssl" - "lablgtk" - "react" -] -conflicts: [ - "react" {< "1.0.0"} - "ssl" {< "0.5.0"} - "ppx_tools" {< "1.0.0" } + "conf-libev" ] +# In practice, Lwt requires OCaml >= 4.02.3, as that is a constraint of the +# dependency jbuilder. available: [ocaml-version >= "4.02.0" & compiler != "4.02.1+BER"] + messages: [ "For module Lwt_ssl, please install package lwt_ssl" {ssl:installed & !lwt_ssl:installed} @@ -66,3 +51,7 @@ messages: [ "For module Lwt_react, please install package lwt_react" {react:installed & !lwt_react:installed} ] +post-messages: [ + "Lwt 4.0.0 will make some breaking changes to packaging in late 2017. See + https://github.com/ocsigen/lwt/issues/453" +] diff --git a/repo/darwin/packages/upstream/lwt.3.1.0/url b/repo/darwin/packages/upstream/lwt.3.1.0/url new file mode 100644 index 000000000..59819df9c --- /dev/null +++ b/repo/darwin/packages/upstream/lwt.3.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/ocsigen/lwt/archive/3.1.0.tar.gz" +checksum: "e80364e38c5fae791a6506b9c113fd29" diff --git a/repo/darwin/packages/upstream/magic-mime.1.0.1/url b/repo/darwin/packages/upstream/magic-mime.1.0.1/url deleted file mode 100644 index 2d07c7455..000000000 --- a/repo/darwin/packages/upstream/magic-mime.1.0.1/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-magic-mime/releases/download/1.0.1/magic-mime-1.0.1.tbz" -checksum: "bd05c33aee8a461f63c23c3d0515d224" diff --git a/repo/win32/packages/upstream/magic-mime.1.0.1/descr b/repo/darwin/packages/upstream/magic-mime.1.1.0/descr similarity index 50% rename from repo/win32/packages/upstream/magic-mime.1.0.1/descr rename to repo/darwin/packages/upstream/magic-mime.1.1.0/descr index c30968077..eb0771d5e 100644 --- a/repo/win32/packages/upstream/magic-mime.1.0.1/descr +++ b/repo/darwin/packages/upstream/magic-mime.1.1.0/descr @@ -1,4 +1,4 @@ -Convert file extensions to MIME types +Map filenames to common MIME types This library contains a database of MIME types that maps filename extensions into MIME types suitable for use in many Internet protocols such as HTTP or @@ -14,8 +14,13 @@ For example, here's how to lookup MIME types in the [utop] REPL: Magic_mime.lookup "bar.css";; - : bytes = "text/css" -More information: +### Internals -* WWW: -* E-mail: -* Issues +The following files need to be edited to add MIME types: + +- mime.types: this is obtained by synching from the Apache Foundation's + [mime.types](https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) + in the Apache Subversion repository. +- x-mime.types: these are the extension types, so non-standard `x-` prefixes are used here. +- file.types: full filenames of common occurrences that are useful to map onto a MIME type. + OCaml-specific things like `opam` files show up here. \ No newline at end of file diff --git a/repo/win32/packages/upstream/magic-mime.1.0.1/opam b/repo/darwin/packages/upstream/magic-mime.1.1.0/opam similarity index 80% rename from repo/win32/packages/upstream/magic-mime.1.0.1/opam rename to repo/darwin/packages/upstream/magic-mime.1.1.0/opam index 29250b408..9459ca8b1 100644 --- a/repo/win32/packages/upstream/magic-mime.1.0.1/opam +++ b/repo/darwin/packages/upstream/magic-mime.1.1.0/opam @@ -1,6 +1,7 @@ opam-version: "1.2" +name: "magic-mime" maintainer: "Anil Madhavapeddy " -authors: "Anil Madhavapeddy " +authors: ["Anil Madhavapeddy" "Maxence Guesdon"] homepage: "https://github.com/mirage/ocaml-magic-mime" bug-reports: "https://github.com/mirage/ocaml-magic-mime/issues" dev-repo: "https://github.com/mirage/ocaml-magic-mime.git" @@ -13,7 +14,6 @@ build: [ ] depends: [ - "ocamlfind" {build} "jbuilder" {build & >="1.0+beta9"} ] -available: [ocaml-version >= "4.03.0"] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/magic-mime.1.1.0/url b/repo/darwin/packages/upstream/magic-mime.1.1.0/url new file mode 100644 index 000000000..7bfb26c9d --- /dev/null +++ b/repo/darwin/packages/upstream/magic-mime.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-magic-mime/releases/download/v1.1.0/magic-mime-1.1.0.tbz" +checksum: "341ab5133c2e17ca645f23a0149025d1" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/menhir.20170509/findlib b/repo/darwin/packages/upstream/menhir.20170509/findlib deleted file mode 100644 index b733ea996..000000000 --- a/repo/darwin/packages/upstream/menhir.20170509/findlib +++ /dev/null @@ -1,2 +0,0 @@ -menhirLib -menhirSdk diff --git a/repo/darwin/packages/upstream/menhir.20170509/url b/repo/darwin/packages/upstream/menhir.20170509/url deleted file mode 100644 index 83e301950..000000000 --- a/repo/darwin/packages/upstream/menhir.20170509/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://gallium.inria.fr/~fpottier/menhir/menhir-20170509.tar.gz" -checksum: "b8ba18b5abda831cf41cd4fa65f4c51b" diff --git a/repo/darwin/packages/upstream/menhir.20170509/descr b/repo/darwin/packages/upstream/menhir.20170712/descr similarity index 100% rename from repo/darwin/packages/upstream/menhir.20170509/descr rename to repo/darwin/packages/upstream/menhir.20170712/descr diff --git a/repo/darwin/packages/upstream/menhir.20170509/opam b/repo/darwin/packages/upstream/menhir.20170712/opam similarity index 100% rename from repo/darwin/packages/upstream/menhir.20170509/opam rename to repo/darwin/packages/upstream/menhir.20170712/opam diff --git a/repo/darwin/packages/upstream/menhir.20170712/url b/repo/darwin/packages/upstream/menhir.20170712/url new file mode 100644 index 000000000..d039d9c0d --- /dev/null +++ b/repo/darwin/packages/upstream/menhir.20170712/url @@ -0,0 +1,2 @@ +archive: "http://gallium.inria.fr/~fpottier/menhir/menhir-20170712.tar.gz" +checksum: "85a5c2aef1d3f2224dab7c53d79892e5" diff --git a/repo/darwin/packages/upstream/mirage-block-unix.2.8.2/descr b/repo/darwin/packages/upstream/mirage-block-unix.2.8.2/descr deleted file mode 100644 index f62dda12c..000000000 --- a/repo/darwin/packages/upstream/mirage-block-unix.2.8.2/descr +++ /dev/null @@ -1 +0,0 @@ -MirageOS disk block driver for Unix diff --git a/repo/darwin/packages/upstream/mirage-block-unix.2.8.2/opam b/repo/darwin/packages/upstream/mirage-block-unix.2.8.2/opam deleted file mode 100644 index ea6a4af23..000000000 --- a/repo/darwin/packages/upstream/mirage-block-unix.2.8.2/opam +++ /dev/null @@ -1,36 +0,0 @@ -opam-version: "1.2" -authors: "Dave Scott " -maintainer: "dave@recoil.org" -homepage: "https://github.com/mirage/mirage-block-unix" -dev-repo: "https://github.com/mirage/mirage-block-unix.git" -bug-reports: "https://github.com/mirage/mirage-block-unix/issues" - - -build: [ - [ "jbuilder" "build" ] -] - -build-test: [ - [ "jbuilder" "runtest" ] -] - -depends: [ - "ocamlfind" {build} - "jbuilder" {build} - "cstruct" {>= "1.3.0"} - "lwt" {>= "2.6.0"} - "mirage-block-lwt" {>= "1.0.0"} - "rresult" - "result" - "io-page" {>= "1.0.0"} - "uri" - "logs" - "ounit" {test} - "fmt" {test} - "cstruct-lwt" -] -available: [ ocaml-version >= "4.02.3" ] -depexts: [ - [["alpine"] ["linux-headers"]] -] -tags: "org:mirage" diff --git a/repo/darwin/packages/upstream/mirage-block-unix.2.8.2/url b/repo/darwin/packages/upstream/mirage-block-unix.2.8.2/url deleted file mode 100644 index e0d0a13dd..000000000 --- a/repo/darwin/packages/upstream/mirage-block-unix.2.8.2/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/mirage-block-unix/archive/v2.8.2.tar.gz" -checksum: "58dc51096e65da48ec87617be3110467" diff --git a/repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/descr b/repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/descr new file mode 100644 index 000000000..55e8d1911 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/descr @@ -0,0 +1,29 @@ +Buffered channels for MirageOS FLOW types + +Channels are buffered reader/writers built on top of unbuffered `FLOW` +implementations. + +Example: + +```ocaml +module Channel = Channel.Make(Flow) +... +Channel.read_exactly ~len:16 t +>>= fun bufs -> (* read header of message *) +let payload_length = Cstruct.(LE.get_uint16 (concat bufs) 0) in +Channel.read_exactly ~len:payload_length t +>>= fun bufs -> (* payload of message *) + +(* process message *) + +Channel.write_buffer t header; +Channel.write_buffer t payload; +Channel.flush t +>>= fun () -> +``` + +mirage-channel is distributed under the ISC license. + +* Homepage: https://github.com/mirage/mirage-channel +* Issue: +* Contact: `` \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/opam b/repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/opam new file mode 100644 index 000000000..0ec20e299 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/opam @@ -0,0 +1,32 @@ +opam-version: "1.2" +maintainer: "Anil Madhavapeddy " +authors: ["Anil Madhavapeddy" "Mindy Preston" "Thomas Gazagnaire"] +homepage: "https://github.com/mirage/mirage-channel" +doc: "http://docs.mirage.io/mirage-channel" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-channel.git" +bug-reports: "https://github.com/mirage/mirage-channel/issues" +tags: ["org:mirage"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] +build-test: [ + [ "jbuilder" "runtest" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-channel" {>= "3.1.0"} + "io-page" + "result" + "lwt" {>= "2.4.7"} + "cstruct" + "logs" + "alcotest" {test} + "io-page-unix" {test} +] +conflicts: [ "tcpip" {<"2.5.0"} ] +available: [ ocaml-version >= "4.02.3"] diff --git a/repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/url b/repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/url new file mode 100644 index 000000000..b8e4dbc05 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-channel-lwt.3.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-channel/releases/download/v3.1.0/mirage-channel-3.1.0.tbz" +checksum: "942d02ee627c0bae75ce5e7e16c1153e" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-channel.3.1.0/descr b/repo/darwin/packages/upstream/mirage-channel.3.1.0/descr new file mode 100644 index 000000000..55e8d1911 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-channel.3.1.0/descr @@ -0,0 +1,29 @@ +Buffered channels for MirageOS FLOW types + +Channels are buffered reader/writers built on top of unbuffered `FLOW` +implementations. + +Example: + +```ocaml +module Channel = Channel.Make(Flow) +... +Channel.read_exactly ~len:16 t +>>= fun bufs -> (* read header of message *) +let payload_length = Cstruct.(LE.get_uint16 (concat bufs) 0) in +Channel.read_exactly ~len:payload_length t +>>= fun bufs -> (* payload of message *) + +(* process message *) + +Channel.write_buffer t header; +Channel.write_buffer t payload; +Channel.flush t +>>= fun () -> +``` + +mirage-channel is distributed under the ISC license. + +* Homepage: https://github.com/mirage/mirage-channel +* Issue: +* Contact: `` \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-channel.3.1.0/opam b/repo/darwin/packages/upstream/mirage-channel.3.1.0/opam new file mode 100644 index 000000000..af78ade59 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-channel.3.1.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "Anil Madhavapeddy " +authors: ["Anil Madhavapeddy" "Mindy Preston" "Thomas Gazagnaire"] +homepage: "https://github.com/mirage/mirage-channel" +doc: "http://mirage.github.io/mirage-channel/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-channel.git" +bug-reports: "https://github.com/mirage/mirage-channel/issues" +tags: ["org:mirage"] +available: [ ocaml-version >= "4.02.3"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "mirage-flow" {>= "1.2.0"} +] +conflicts: [ + "tcpip" {< "3.0.0"} +] diff --git a/repo/darwin/packages/upstream/mirage-channel.3.1.0/url b/repo/darwin/packages/upstream/mirage-channel.3.1.0/url new file mode 100644 index 000000000..b8e4dbc05 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-channel.3.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-channel/releases/download/v3.1.0/mirage-channel-3.1.0.tbz" +checksum: "942d02ee627c0bae75ce5e7e16c1153e" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/descr b/repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/descr new file mode 100644 index 000000000..e2acef972 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/descr @@ -0,0 +1,15 @@ +Libraries and module types for portable clocks + +This library implements portable support for an operating system timesource +that is compatible with the [MirageOS](https://mirage.io) library interfaces +found in: + +It implements an `MCLOCK` module that represents a monotonic timesource +since an arbitrary point, and `PCLOCK` which counts time since the Unix +epoch. + +The following sources are used: + +* The Unix version uses `gettimeofday` or `clock_gettime`, depending on + which OS is in use (see [clock_stubs.c](https://github.com/mirage/mirage-clock/blob/master/unix/clock_stubs.c)). +* The freestanding version uses the paravirtual clock source from the hypervisor. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/opam b/repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/opam new file mode 100644 index 000000000..1203ebe0f --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +authors: ["Anil Madhavapeddy" "Daniel C. Bünzli" "Matthew Gray"] +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-clock" +bug-reports: "https://github.com/mirage/mirage-clock/issues" +dev-repo: "https://github.com/mirage/mirage-clock.git" +doc: "https://mirage.github.io/mirage-clock/" + +license: "ISC" +tags: ["org:mirage"] +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-clock" {>= "1.2.0"} + "lwt" +] +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] diff --git a/repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/url b/repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/url new file mode 100644 index 000000000..59e62377b --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-clock-lwt.1.3.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-clock/releases/download/v1.3.0/mirage-clock-1.3.0.tbz" +checksum: "eccfb4b7361bcc639744fd18d17cb582" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/descr b/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/descr deleted file mode 100644 index 52d46fbcb..000000000 --- a/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/descr +++ /dev/null @@ -1 +0,0 @@ -A Mirage-compatible Clock library for Unix diff --git a/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/findlib b/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/findlib deleted file mode 100644 index cc72706b9..000000000 --- a/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/findlib +++ /dev/null @@ -1 +0,0 @@ -mirage-clock-unix diff --git a/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/opam b/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/opam deleted file mode 100644 index 0a42ae092..000000000 --- a/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/opam +++ /dev/null @@ -1,14 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -author: "anil@recoil.org" -homepage: "https://github.com/mirage/mirage-clock" -dev-repo: "https://github.com/mirage/mirage-clock.git" -bug-reports: "https://github.com/mirage/mirage-clock/issues" -install: [make "unix-install"] -tags: ["org:mirage" "org:xapi-project"] -build: [make "unix-build"] -remove: ["ocamlfind" "remove" "mirage-clock-unix"] -depends: [ - "ocamlfind" - "mirage-types" {>= "0.3.0" & < "3.0.0"} -] diff --git a/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/url b/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/url deleted file mode 100644 index d070123f0..000000000 --- a/repo/darwin/packages/upstream/mirage-clock-unix.1.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/mirage-clock/archive/v1.0.0.tar.gz" -checksum: "c20135e5bac324fb9009a54986cf615f" diff --git a/repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/descr b/repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/descr new file mode 100644 index 000000000..e2acef972 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/descr @@ -0,0 +1,15 @@ +Libraries and module types for portable clocks + +This library implements portable support for an operating system timesource +that is compatible with the [MirageOS](https://mirage.io) library interfaces +found in: + +It implements an `MCLOCK` module that represents a monotonic timesource +since an arbitrary point, and `PCLOCK` which counts time since the Unix +epoch. + +The following sources are used: + +* The Unix version uses `gettimeofday` or `clock_gettime`, depending on + which OS is in use (see [clock_stubs.c](https://github.com/mirage/mirage-clock/blob/master/unix/clock_stubs.c)). +* The freestanding version uses the paravirtual clock source from the hypervisor. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/opam b/repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/opam new file mode 100644 index 000000000..780b222c4 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +authors: ["Anil Madhavapeddy" "Daniel C. Bünzli" "Matthew Gray"] +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-clock" +bug-reports: "https://github.com/mirage/mirage-clock/issues" +dev-repo: "https://github.com/mirage/mirage-clock.git" +doc: "https://mirage.github.io/mirage-clock/" +license: "ISC" +tags: ["org:mirage"] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-clock" {>= "1.2.0"} + "mirage-clock-lwt" {>= "1.2.0"} + "lwt" + "configurator" {build} +] +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] +build-test: ["jbuilder" "runtest" "-p" name] diff --git a/repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/url b/repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/url new file mode 100644 index 000000000..f3d490cee --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-clock-unix.1.4.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-clock/releases/download/v1.4.0/mirage-clock-1.4.0.tbz" +checksum: "0cd3efd3f426c285ea1c473cc872cb81" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-clock.1.3.0/descr b/repo/darwin/packages/upstream/mirage-clock.1.3.0/descr new file mode 100644 index 000000000..e2acef972 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-clock.1.3.0/descr @@ -0,0 +1,15 @@ +Libraries and module types for portable clocks + +This library implements portable support for an operating system timesource +that is compatible with the [MirageOS](https://mirage.io) library interfaces +found in: + +It implements an `MCLOCK` module that represents a monotonic timesource +since an arbitrary point, and `PCLOCK` which counts time since the Unix +epoch. + +The following sources are used: + +* The Unix version uses `gettimeofday` or `clock_gettime`, depending on + which OS is in use (see [clock_stubs.c](https://github.com/mirage/mirage-clock/blob/master/unix/clock_stubs.c)). +* The freestanding version uses the paravirtual clock source from the hypervisor. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-clock.1.3.0/opam b/repo/darwin/packages/upstream/mirage-clock.1.3.0/opam new file mode 100644 index 000000000..6f061f174 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-clock.1.3.0/opam @@ -0,0 +1,17 @@ +opam-version: "1.2" +authors: ["Anil Madhavapeddy" "Daniel C. Bünzli" "Matthew Gray"] +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-clock" +bug-reports: "https://github.com/mirage/mirage-clock/issues" +dev-repo: "https://github.com/mirage/mirage-clock.git" +doc: "https://mirage.github.io/mirage-clock/" +license: "ISC" +tags: ["org:mirage"] +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-device" {>= "1.0.0"} +] +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] diff --git a/repo/darwin/packages/upstream/mirage-clock.1.3.0/url b/repo/darwin/packages/upstream/mirage-clock.1.3.0/url new file mode 100644 index 000000000..59e62377b --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-clock.1.3.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-clock/releases/download/v1.3.0/mirage-clock-1.3.0.tbz" +checksum: "eccfb4b7361bcc639744fd18d17cb582" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-conduit.2.2.0/descr b/repo/darwin/packages/upstream/mirage-conduit.2.2.0/descr deleted file mode 100644 index a34a32f52..000000000 --- a/repo/darwin/packages/upstream/mirage-conduit.2.2.0/descr +++ /dev/null @@ -1 +0,0 @@ -Virtual package for the MirageOS Conduit transports diff --git a/repo/darwin/packages/upstream/mirage-conduit.2.2.0/opam b/repo/darwin/packages/upstream/mirage-conduit.2.2.0/opam deleted file mode 100644 index a73cfd29d..000000000 --- a/repo/darwin/packages/upstream/mirage-conduit.2.2.0/opam +++ /dev/null @@ -1,19 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire"] -homepage: "https://github.com/mirage/ocaml-conduit" -dev-repo: "https://github.com/mirage/ocaml-conduit.git" -bug-reports: "https://github.com/mirage/ocaml-conduit/issues" -tags: "org:mirage" -license: "ISC" -build: ["ocamlfind" "query" "conduit.mirage"] -depends: [ - "mirage-types-lwt" {>= "2.3.0" & < "3.0.0"} - "mirage-dns" {>= "2.0.0"} - "conduit" {>= "0.8.4"} -] -depopts: ["vchan" "tls"] -conflicts: [ - "tls" {< "0.5.0"} -] -available: [ocaml-version >= "4.01.0"] diff --git a/repo/darwin/packages/upstream/mirage-conduit.3.0.1/descr b/repo/darwin/packages/upstream/mirage-conduit.3.0.1/descr new file mode 100644 index 000000000..cb46f15b9 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-conduit.3.0.1/descr @@ -0,0 +1,35 @@ +Network conduit library + +The `conduit` library takes care of establishing and listening for +TCP and SSL/TLS connections for the Lwt and Async libraries. + +The reason this library exists is to provide a degree of abstraction +from the precise SSL library used, since there are a variety of ways +to bind to a library (e.g. the C FFI, or the Ctypes library), as well +as well as which library is used (just OpenSSL for now). + +By default, OpenSSL is used as the preferred connection library, but +you can force the use of the pure OCaml TLS stack by setting the +environment variable `CONDUIT_TLS=native` when starting your program. + +The opam packages available are: + +- `conduit`: the main `Conduit` module +- `conduit-lwt`: the portable Lwt implementation +- `conduit-lwt-unix`: the Lwt/Unix implementation +- `conduit-async` the Jane Street Async implementation +- `mirage-conduit`: the MirageOS compatible implementation + +### Debugging + +Some of the `Lwt_unix`-based modules use a non-empty `CONDUIT_DEBUG` +environment variable to output debugging information to standard error. +Just set this variable when running the program to see what URIs +are being resolved to. + +### Further Informartion + +* **API Docs:** http://docs.mirage.io/ +* **WWW:** https://github.com/mirage/ocaml-conduit +* **E-mail:** +* **Bugs:** https://github.com/mirage/ocaml-conduit/issues \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-conduit.3.0.1/opam b/repo/darwin/packages/upstream/mirage-conduit.3.0.1/opam new file mode 100644 index 000000000..4fdcac603 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-conduit.3.0.1/opam @@ -0,0 +1,25 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire"] +homepage: "https://github.com/mirage/ocaml-conduit" +dev-repo: "https://github.com/mirage/ocaml-conduit.git" +bug-reports: "https://github.com/mirage/ocaml-conduit/issues" +tags: "org:mirage" +license: "ISC" + +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "cstruct" {>= "3.0.0"} + "mirage-types-lwt" {>= "3.0.0"} + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-dns" {>= "3.0.0"} + "conduit-lwt" + "vchan" {>= "3.0.0"} + "tls" {>="0.8.0"} +] +available: [ocaml-version >="4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-conduit.3.0.1/url b/repo/darwin/packages/upstream/mirage-conduit.3.0.1/url new file mode 100644 index 000000000..a11f363f0 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-conduit.3.0.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-conduit/releases/download/v1.0.1/conduit-1.0.1.tbz" +checksum: "ef2095d59d93303697c944f9d404e64d" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/descr b/repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/descr new file mode 100644 index 000000000..169a8d11f --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/descr @@ -0,0 +1,40 @@ +Implementations of Mirage consoles, for Unix and Xen + + +The Unix version of the console currently uses standard output. The code is in + + unix/console.{ml,mli} + +The Xen kernel version of the console uses the primary PV console ring. The +code is in + + xen/console.{ml,mli} + +There is also a Unix userspace utility which creates and services Xen consoles +("console backends"): + +Connect a console to a VM like this: + +``` +[root@st30 ~]# ./mirage-console connect trusty +Operating on VM domain id: 19 +Creating device 1 (linux device /dev/tty1) +{ ref = 128; event_channel = 13 } +``` + +Then inside the guest: + +``` +[root@trusty ~]# cat > /dev/hvc1 +hello +there +``` + +And observe in dom0: + +``` +hello +there +``` + +Then hit Control+C and it all cleans up. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/opam b/repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/opam new file mode 100644 index 000000000..d6942ef06 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-console" +bug-reports: "https://github.com/mirage/mirage-console/issues" +dev-repo: "https://github.com/mirage/mirage-console.git" +doc: "https://mirage.github.io/mirage-console/" +authors: [ "Anil Madhavapeddy" "David Scott"] +tags: [ "org:mirage" "org:xapi-project"] +license: "ISC" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-console" {>= "2.3.5"} + "lwt" + "cstruct" {>= "1.9.0"} + "cstruct-lwt" +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/url b/repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/url new file mode 100644 index 000000000..8940fbeac --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-console-lwt.2.3.5/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-console/releases/download/v2.3.5/mirage-console-2.3.5.tbz" +checksum: "6d0d18cc25fc3e14f070fbb79a24f9ca" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-console-unix.2.3.5/descr b/repo/darwin/packages/upstream/mirage-console-unix.2.3.5/descr new file mode 100644 index 000000000..169a8d11f --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-console-unix.2.3.5/descr @@ -0,0 +1,40 @@ +Implementations of Mirage consoles, for Unix and Xen + + +The Unix version of the console currently uses standard output. The code is in + + unix/console.{ml,mli} + +The Xen kernel version of the console uses the primary PV console ring. The +code is in + + xen/console.{ml,mli} + +There is also a Unix userspace utility which creates and services Xen consoles +("console backends"): + +Connect a console to a VM like this: + +``` +[root@st30 ~]# ./mirage-console connect trusty +Operating on VM domain id: 19 +Creating device 1 (linux device /dev/tty1) +{ ref = 128; event_channel = 13 } +``` + +Then inside the guest: + +``` +[root@trusty ~]# cat > /dev/hvc1 +hello +there +``` + +And observe in dom0: + +``` +hello +there +``` + +Then hit Control+C and it all cleans up. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-console-unix.2.3.5/opam b/repo/darwin/packages/upstream/mirage-console-unix.2.3.5/opam new file mode 100644 index 000000000..b0a8c3cb4 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-console-unix.2.3.5/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-console" +bug-reports: "https://github.com/mirage/mirage-console/issues" +dev-repo: "https://github.com/mirage/mirage-console.git" +doc: "https://mirage.github.io/mirage-console/" +authors: [ "Anil Madhavapeddy" "David Scott"] +tags: [ "org:mirage" "org:xapi-project"] +license: "ISC" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "lwt" + "cstruct" {>="3.0.0"} + "cstruct-lwt" + "mirage-console-lwt" {>= "2.3.5"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-console-unix.2.3.5/url b/repo/darwin/packages/upstream/mirage-console-unix.2.3.5/url new file mode 100644 index 000000000..8940fbeac --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-console-unix.2.3.5/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-console/releases/download/v2.3.5/mirage-console-2.3.5.tbz" +checksum: "6d0d18cc25fc3e14f070fbb79a24f9ca" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-console.2.1.3/descr b/repo/darwin/packages/upstream/mirage-console.2.1.3/descr deleted file mode 100644 index 2853ee6c0..000000000 --- a/repo/darwin/packages/upstream/mirage-console.2.1.3/descr +++ /dev/null @@ -1 +0,0 @@ -A Mirage-compatible Console library for Xen and Unix diff --git a/repo/darwin/packages/upstream/mirage-console.2.1.3/opam b/repo/darwin/packages/upstream/mirage-console.2.1.3/opam deleted file mode 100644 index f04065804..000000000 --- a/repo/darwin/packages/upstream/mirage-console.2.1.3/opam +++ /dev/null @@ -1,36 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -homepage: "https://github.com/mirage/mirage-console" -bug-reports: "https://github.com/mirage/mirage-console/issues" -dev-repo: "https://github.com/mirage/mirage-console.git" -authors: ["Anil Madhavapeddy" "David Scott"] -tags: ["org:mirage" "org:xapi-project"] -build: [ - make - "PREFIX=%{prefix}%" - "ENABLE_MIRAGE_XEN=--%{mirage-xen+xenstore+xen-gnt+xen-evtchn:enable}%-miragexen" - "ENABLE_XEN=--%{shared-memory-ring+xen-gnt+xen-evtchn+xenstore+xenstore_transport:enable}%-xen" - "ENABLE_XENCTRL=--%{xenctrl+xen-evtchn+xen-gnt:enable}%-xenctrl" -] -install: [make "install" "PREFIX=%{prefix}%"] -remove: ["ocamlfind" "remove" "mirage-console"] -depends: [ - "ocamlfind" {build} - "mirage-types-lwt" {< "3.0.0"} - "cmdliner" - "cstruct-lwt" - "mirage-unix" {>= "1.1.0"} - "ocamlbuild" {build} -] -depopts: [ - "mirage-xen" - "xenstore" - "xen-gnt" - "xen-evtchn" - "shared-memory-ring" - "xenstore" - "xenstore_transport" -] -conflicts: [ - "mirage-xen" {< "1.1.0"} -] diff --git a/repo/darwin/packages/upstream/mirage-console.2.1.3/url b/repo/darwin/packages/upstream/mirage-console.2.1.3/url deleted file mode 100644 index 810ff485c..000000000 --- a/repo/darwin/packages/upstream/mirage-console.2.1.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/mirage-console/archive/v2.1.3.tar.gz" -checksum: "82f088b4c3ff601eaaf0ea5cd88eebc7" diff --git a/repo/darwin/packages/upstream/mirage-console.2.3.5/descr b/repo/darwin/packages/upstream/mirage-console.2.3.5/descr new file mode 100644 index 000000000..169a8d11f --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-console.2.3.5/descr @@ -0,0 +1,40 @@ +Implementations of Mirage consoles, for Unix and Xen + + +The Unix version of the console currently uses standard output. The code is in + + unix/console.{ml,mli} + +The Xen kernel version of the console uses the primary PV console ring. The +code is in + + xen/console.{ml,mli} + +There is also a Unix userspace utility which creates and services Xen consoles +("console backends"): + +Connect a console to a VM like this: + +``` +[root@st30 ~]# ./mirage-console connect trusty +Operating on VM domain id: 19 +Creating device 1 (linux device /dev/tty1) +{ ref = 128; event_channel = 13 } +``` + +Then inside the guest: + +``` +[root@trusty ~]# cat > /dev/hvc1 +hello +there +``` + +And observe in dom0: + +``` +hello +there +``` + +Then hit Control+C and it all cleans up. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-console.2.3.5/opam b/repo/darwin/packages/upstream/mirage-console.2.3.5/opam new file mode 100644 index 000000000..f34b5f617 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-console.2.3.5/opam @@ -0,0 +1,21 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-console" +bug-reports: "https://github.com/mirage/mirage-console/issues" +dev-repo: "https://github.com/mirage/mirage-console.git" +doc: "https://mirage.github.io/mirage-console/" +authors: [ "Anil Madhavapeddy" "David Scott"] +tags: [ "org:mirage" "org:xapi-project"] +license: "ISC" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-device" {>= "1.0.0"} + "mirage-flow" {>= "1.2.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-console.2.3.5/url b/repo/darwin/packages/upstream/mirage-console.2.3.5/url new file mode 100644 index 000000000..8940fbeac --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-console.2.3.5/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-console/releases/download/v2.3.5/mirage-console-2.3.5.tbz" +checksum: "6d0d18cc25fc3e14f070fbb79a24f9ca" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-device.1.0.0/url b/repo/darwin/packages/upstream/mirage-device.1.0.0/url deleted file mode 100644 index a37e7046d..000000000 --- a/repo/darwin/packages/upstream/mirage-device.1.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/mirage-device/releases/download/1.0.0/mirage-device-1.0.0.tbz" -checksum: "6d6f0235b07e1e068ce71d788b5ce11b" diff --git a/repo/darwin/packages/upstream/mirage-device.1.0.0/descr b/repo/darwin/packages/upstream/mirage-device.1.1.0/descr similarity index 100% rename from repo/darwin/packages/upstream/mirage-device.1.0.0/descr rename to repo/darwin/packages/upstream/mirage-device.1.1.0/descr diff --git a/repo/darwin/packages/upstream/mirage-device.1.0.0/opam b/repo/darwin/packages/upstream/mirage-device.1.1.0/opam similarity index 80% rename from repo/darwin/packages/upstream/mirage-device.1.0.0/opam rename to repo/darwin/packages/upstream/mirage-device.1.1.0/opam index 81a4a9c83..95c936204 100644 --- a/repo/darwin/packages/upstream/mirage-device.1.0.0/opam +++ b/repo/darwin/packages/upstream/mirage-device.1.1.0/opam @@ -9,12 +9,11 @@ authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] tags: [ "org:mirage"] license: "ISC" - -build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%"] - +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build & >= "0.7.3"} + "jbuilder" {build & >="1.0+beta7"} "fmt" ] diff --git a/repo/darwin/packages/upstream/mirage-device.1.1.0/url b/repo/darwin/packages/upstream/mirage-device.1.1.0/url new file mode 100644 index 000000000..e7003c3d4 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-device.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-device/releases/download/v1.1.0/mirage-device-1.1.0.tbz" +checksum: "9af70ef256ba3827fee413d0a2e29b7e" diff --git a/repo/darwin/packages/upstream/mirage-dns.2.5.0/descr b/repo/darwin/packages/upstream/mirage-dns.2.5.0/descr deleted file mode 100644 index d0ab696d1..000000000 --- a/repo/darwin/packages/upstream/mirage-dns.2.5.0/descr +++ /dev/null @@ -1 +0,0 @@ -Virtual package for the MirageOS DNS transports diff --git a/repo/darwin/packages/upstream/mirage-dns.2.5.0/opam b/repo/darwin/packages/upstream/mirage-dns.2.5.0/opam deleted file mode 100644 index 21a297f3e..000000000 --- a/repo/darwin/packages/upstream/mirage-dns.2.5.0/opam +++ /dev/null @@ -1,25 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -homepage: "https://github.com/mirage/ocaml-dns" -dev-repo: "https://github.com/mirage/ocaml-dns.git" -bug-reports: "https://github.com/mirage/ocaml-dns/issues" -license: "ISC" -authors: [ - "Anil Madhavapeddy" - "Tim Deegan" - "Richard Mortier" - "Haris Rotsos" - "David Sheets" - "Thomas Gazagnaire" - "Luke Dunstan" -] -build: ["ocamlfind" "query" "dns.mirage"] -depends: [ - "ocamlfind" - "dns" {>= "0.15.1"} - "mirage-types-lwt" {>= "2.3.0" & < "3.0.0"} - "lwt" {>= "2.4.3"} - "cstruct" {>= "1.0.0"} - "tcpip" -] -available: [ocaml-version >= "4.01.0"] diff --git a/repo/darwin/packages/upstream/mirage-dns.3.0.0/descr b/repo/darwin/packages/upstream/mirage-dns.3.0.0/descr new file mode 100644 index 000000000..84cefc577 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-dns.3.0.0/descr @@ -0,0 +1,29 @@ +DNS client and server implementation in pure OCaml + +This is a pure OCaml implementation of the DNS protocol. It is intended to be +a reasonably high-performance implementation, but clarity is preferred rather +than low-level performance hacks. + +[![Build Status](https://travis-ci.org/mirage/ocaml-dns.svg?branch=master)](https://travis-ci.org/mirage/ocaml-dns) + +To build it, please use the [OPAM](https://opam.ocaml.org) package manager (1.2+): + + opam pin add dns . + +This will install the dependencies needed and give you a working development +version of the library. + +Packages: + +* `lib/` contains the core DNS protocol, which is packed into the `Dns` module. +* `lib_test/` contains unit tests and sample uses of the library. + In particular, `time_server` is a simple dynamic responder. + +Areas that need work: + +* We need an Lwt-based client iterative resolver + Patches for this are highly welcome! +* EDNS0 extensions +* DNSSEC extensions (using [nocrypto](https://github.com/mirleft/ocaml-nocrypto/)) +* TC bit and TCP fallback +* mDNS resolver \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-dns.3.0.0/opam b/repo/darwin/packages/upstream/mirage-dns.3.0.0/opam new file mode 100644 index 000000000..31af65175 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-dns.3.0.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/ocaml-dns" +dev-repo: "https://github.com/mirage/ocaml-dns.git" +bug-reports: "https://github.com/mirage/ocaml-dns/issues" +license: "ISC" +authors: [ "Anil Madhavapeddy" "Tim Deegan" "Richard Mortier" "Haris Rotsos" + "David Sheets" "Thomas Gazagnaire" "Luke Dunstan" ] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "dns-lwt" + "duration" + "mirage-stack-lwt" + "mirage-kv-lwt" + "mirage-time-lwt" + "mirage-profile" {>="0.8.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-dns.3.0.0/url b/repo/darwin/packages/upstream/mirage-dns.3.0.0/url new file mode 100644 index 000000000..6eb7b78ec --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-dns.3.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-dns/releases/download/v1.0.0/dns-1.0.0.tbz" +checksum: "5fe4efe11671253950f89036a6cc1a21" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/descr b/repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/descr new file mode 100644 index 000000000..292ede4d9 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/descr @@ -0,0 +1 @@ +Flow implementations and combinators for MirageOS using Lwt diff --git a/repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/opam b/repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/opam new file mode 100644 index 000000000..29043bfc0 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-flow" +bug-reports: "https://github.com/mirage/mirage-flow/issues" +dev-repo: "https://github.com/mirage/mirage-flow.git" +doc: "https://mirage.github.io/mirage-flow/" +authors: ["Thomas Gazagnaire" "Dave Scott"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "fmt" + "lwt" + "logs" + "cstruct" {>= "2.0.0"} + "mirage-clock" {>= "1.2.0"} + "mirage-flow" {>= "1.2.0"} +] diff --git a/repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/url b/repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/url new file mode 100644 index 000000000..b5dcb91ba --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-flow-lwt.1.4.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-flow/releases/download/v1.4.0/mirage-flow-1.4.0.tbz" +checksum: "fdbd270044821d21afc883399eea45aa" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-flow.1.1.0/descr b/repo/darwin/packages/upstream/mirage-flow.1.1.0/descr deleted file mode 100644 index f5530af6c..000000000 --- a/repo/darwin/packages/upstream/mirage-flow.1.1.0/descr +++ /dev/null @@ -1,5 +0,0 @@ -Various implementations of and operations over the MirageOS FLOW interface - -- `Fflow` uses input/output functions to build a flow -- `Lwt_io_flow` uses `Lwt_io.channel` -- `Mirage_flow.copy` and `Mirage_flow.proxy` diff --git a/repo/darwin/packages/upstream/mirage-flow.1.1.0/findlib b/repo/darwin/packages/upstream/mirage-flow.1.1.0/findlib deleted file mode 100644 index 23d247939..000000000 --- a/repo/darwin/packages/upstream/mirage-flow.1.1.0/findlib +++ /dev/null @@ -1 +0,0 @@ -mirage-flow diff --git a/repo/darwin/packages/upstream/mirage-flow.1.1.0/opam b/repo/darwin/packages/upstream/mirage-flow.1.1.0/opam deleted file mode 100644 index 2fdc8f94a..000000000 --- a/repo/darwin/packages/upstream/mirage-flow.1.1.0/opam +++ /dev/null @@ -1,29 +0,0 @@ -opam-version: "1.2" -maintainer: "Thomas Gazagnaire " -authors: [ - "Thomas Gazagnaire " "David Scott " -] -version: "1.1.0" -homepage: "https://github.com/mirage/mirage-flow" -bug-reports: "https://github.com/mirage/mirage-flow/issues/" -license: "ISC" -dev-repo: "https://github.com/mirage/mirage-flow.git" -build: [ - ["./configure" "--prefix=%{prefix}%"] - [make] -] -build-test: [ - ["./configure" "--prefix=%{prefix}%" "--enable-tests"] - [make "test"] -] -install: [make "install"] -remove: ["ocamlfind" "remove" "mirage-flow"] -depends: [ - "ocamlbuild" {build} - "ocamlfind" {build} - "mirage-types-lwt" {< "3.0.0"} - "cstruct" - "lwt" {>= "2.5.0"} - "alcotest" {test} - "ounit" {test} -] diff --git a/repo/darwin/packages/upstream/mirage-flow.1.1.0/url b/repo/darwin/packages/upstream/mirage-flow.1.1.0/url deleted file mode 100644 index 357ff185e..000000000 --- a/repo/darwin/packages/upstream/mirage-flow.1.1.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/mirage-flow/archive/v1.1.0.tar.gz" -checksum: "ba12ab7dc477d09e3d27aa984384ce7f" diff --git a/repo/darwin/packages/upstream/mirage-flow.1.3.0/descr b/repo/darwin/packages/upstream/mirage-flow.1.3.0/descr new file mode 100644 index 000000000..31740d93e --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-flow.1.3.0/descr @@ -0,0 +1,10 @@ +Flow implementations and combinators for MirageOS + +This repo contains generic operations over Mirage `FLOW` implementations. + +Please consult [the API documentation](https://mirage.github.io/mirage-flow/index.html). + +### Example usage + +In a top-level like utop: +```ocaml \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-flow.1.3.0/opam b/repo/darwin/packages/upstream/mirage-flow.1.3.0/opam new file mode 100644 index 000000000..a0f277145 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-flow.1.3.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-flow" +bug-reports: "https://github.com/mirage/mirage-flow/issues" +dev-repo: "https://github.com/mirage/mirage-flow.git" +doc: "https://mirage.github.io/mirage-flow/" +authors: ["Thomas Gazagnaire" "Dave Scott"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "fmt" +] diff --git a/repo/darwin/packages/upstream/mirage-flow.1.3.0/url b/repo/darwin/packages/upstream/mirage-flow.1.3.0/url new file mode 100644 index 000000000..7cae756c1 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-flow.1.3.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-flow/releases/download/v1.3.0/mirage-flow-1.3.0.tbz" +checksum: "2811566ba9895e429716e4c315cd43e6" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/descr b/repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/descr new file mode 100644 index 000000000..55ae88333 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/descr @@ -0,0 +1,9 @@ +MirageOS signatures for filesystem devices + +[![Build Status](https://travis-ci.org/mirage/mirage-fs.svg?branch=master)](https://travis-ci.org/mirage/mirage-fs) + +mirage-fs provides the `[Mirage_fs.S][fs]` and `[Mirage_fs_lwt.S]` signatures +the MirageOS filesystem devices should implement. + +[fs]: http://mirage.github.io/mirage-fs/Mirage_fs.html +[fslwt]: http://mirage.github.io/mirage-fs/Mirage_fs_lwt.html \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/opam b/repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/opam new file mode 100644 index 000000000..0e951651f --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/opam @@ -0,0 +1,25 @@ +opam-version: "1.2" +maintainer: "Thomas Gazagnaire " +authors: ["Thomas Gazagnaire "] +homepage: "https://github.com/mirage/mirage-fs" +doc: "https://mirage.github.io/mirage-fs/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-fs.git" +bug-reports: "https://github.com/mirage/mirage-fs/issues" +tags: ["org:mirage"] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "mirage-fs" {>= "1.0.0"} + "mirage-kv-lwt" + "lwt" + "cstruct" {>= "1.9.0"} + "cstruct-lwt" +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/url b/repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/url new file mode 100644 index 000000000..df32e27d3 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-fs-lwt.1.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-fs/releases/download/v1.1.1/mirage-fs-1.1.1.tbz" +checksum: "8e8f51347c4fec027025c76eda4ff6b5" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-fs.1.1.1/descr b/repo/darwin/packages/upstream/mirage-fs.1.1.1/descr new file mode 100644 index 000000000..55ae88333 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-fs.1.1.1/descr @@ -0,0 +1,9 @@ +MirageOS signatures for filesystem devices + +[![Build Status](https://travis-ci.org/mirage/mirage-fs.svg?branch=master)](https://travis-ci.org/mirage/mirage-fs) + +mirage-fs provides the `[Mirage_fs.S][fs]` and `[Mirage_fs_lwt.S]` signatures +the MirageOS filesystem devices should implement. + +[fs]: http://mirage.github.io/mirage-fs/Mirage_fs.html +[fslwt]: http://mirage.github.io/mirage-fs/Mirage_fs_lwt.html \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-fs.1.1.1/opam b/repo/darwin/packages/upstream/mirage-fs.1.1.1/opam new file mode 100644 index 000000000..fca9f5644 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-fs.1.1.1/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "Thomas Gazagnaire " +authors: ["Thomas Gazagnaire "] +homepage: "https://github.com/mirage/mirage-fs" +doc: "https://mirage.github.io/mirage-fs/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-fs.git" +bug-reports: "https://github.com/mirage/mirage-fs/issues" +tags: ["org:mirage"] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "fmt" + "mirage-device" {>= "1.0.0"} +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-fs.1.1.1/url b/repo/darwin/packages/upstream/mirage-fs.1.1.1/url new file mode 100644 index 000000000..df32e27d3 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-fs.1.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-fs/releases/download/v1.1.1/mirage-fs-1.1.1.tbz" +checksum: "8e8f51347c4fec027025c76eda4ff6b5" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-http.2.5.3/descr b/repo/darwin/packages/upstream/mirage-http.2.5.3/descr deleted file mode 100644 index c6c3b9f83..000000000 --- a/repo/darwin/packages/upstream/mirage-http.2.5.3/descr +++ /dev/null @@ -1 +0,0 @@ -MirageOS-compatible implementation of the Cohttp interfaces diff --git a/repo/darwin/packages/upstream/mirage-http.2.5.3/opam b/repo/darwin/packages/upstream/mirage-http.2.5.3/opam deleted file mode 100644 index 4b869316d..000000000 --- a/repo/darwin/packages/upstream/mirage-http.2.5.3/opam +++ /dev/null @@ -1,21 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: ["Anil Madhavapeddy" "Thomas Gazagnaire"] -homepage: "https://github.com/mirage/mirage-http" -bug-reports: "https://github.com/mirage/mirage-http/issues/" -dev-repo: "https://github.com/mirage/mirage-http.git" -doc: "https://mirage.github.io/mirage-http/" -build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%"] -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "mirage-types" {>= "2.0.0" & < "3.0.0"} - "mirage-types-lwt" {>= "2.0.0" & < "3.0.0"} - "conduit" - "mirage-conduit" {>= "2.2.0"} - "lwt" {>= "2.4.3"} - "cohttp" {>= "0.18.0"} - "channel" -] -available: [ocaml-version >= "4.00.0"] diff --git a/repo/darwin/packages/upstream/mirage-http.2.5.3/url b/repo/darwin/packages/upstream/mirage-http.2.5.3/url deleted file mode 100644 index bcae10ed6..000000000 --- a/repo/darwin/packages/upstream/mirage-http.2.5.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/mirage-http/releases/download/2.5.3/mirage-http-2.5.3.tbz" -checksum: "3e83cab7de7cca512bac4f54d485fc0a" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-http.3.2.0/descr b/repo/darwin/packages/upstream/mirage-http.3.2.0/descr new file mode 100644 index 000000000..65cfabe55 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-http.3.2.0/descr @@ -0,0 +1,27 @@ +An OCaml library for HTTP clients and servers + +[![Join the chat at https://gitter.im/mirage/ocaml-cohttp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mirage/ocaml-cohttp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +Cohttp is an OCaml library for creating HTTP daemons. It has a portable +HTTP parser, and implementations using various asynchronous programming +libraries: + +* `Cohttp_lwt_unix` uses the [Lwt](http://ocsigen.org/lwt) library, and + specifically the UNIX bindings. +* `Cohttp_async` uses the [Async](https://realworldocaml.org/v1/en/html/concurrent-programming-with-async.html) + library. +* `Cohttp_lwt` exposes an OS-independent Lwt interface, which is used + by the [Mirage](http://www.openmirage.org) interface + to generate standalone microkernels (see the [mirage-http](https://github.com/mirage/mirage-http) + repository). +* `Cohttp_lwt_xhr` compiles to a JavaScript module that maps the Cohttp + calls to XMLHTTPRequests. This is used to compile OCaml libraries like + the GitHub bindings to JavaScript and still run efficiently. + +You can implement other targets using the parser very easily. Look at the `IO` +signature in `lib/s.mli` and implement that in the desired backend. + +You can activate some runtime debugging by setting `COHTTP_DEBUG` to any +value, and all requests and responses will be written to stderr. Further +debugging of the connection layer can be obtained by setting `CONDUIT_DEBUG` +to any value. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-http.3.2.0/opam b/repo/darwin/packages/upstream/mirage-http.3.2.0/opam new file mode 100644 index 000000000..41e29dda8 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-http.3.2.0/opam @@ -0,0 +1,30 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: [ + "Anil Madhavapeddy" + "Thomas Gazagnaire" +] +homepage: "https://github.com/mirage/ocaml-cohttp" +bug-reports: "https://github.com/mirage/ocaml-cohttp/issues" +license: "ISC" +tags: ["org:mirage" "org:xapi-project"] +dev-repo: "https://github.com/mirage/ocaml-cohttp.git" +build: [ + ["jbuilder" "subst" "-n" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: [["jbuilder" "runtest" "-p" name "-j" jobs]] +depends: [ + "jbuilder" {build & >= "1.0+beta10"} + "result" + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-channel-lwt" {>= "3.0.0"} + "conduit" {>= "0.99"} + "mirage-conduit" {>= "3.0.0"} + "lwt" {>= "2.4.3"} + "cohttp" {>="0.99.0"} + "cohttp-lwt" + "astring" + "magic-mime" +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-http.3.2.0/url b/repo/darwin/packages/upstream/mirage-http.3.2.0/url new file mode 100644 index 000000000..f85b2284a --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-http.3.2.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cohttp/releases/download/v0.99.0/cohttp-0.99.0.tbz" +checksum: "a789a9ed492005257bdb217e2248da0d" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/descr b/repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/descr new file mode 100644 index 000000000..28a32c5cb --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/descr @@ -0,0 +1 @@ +MirageOS utilities for interfacing with key-value stores. diff --git a/repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/opam b/repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/opam new file mode 100644 index 000000000..0d8801905 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "Thomas Gazagnaire " +authors: ["Thomas Gazagnaire "] +homepage: "https://github.com/mirage/mirage-kv" +doc: "https://mirage.github.io/mirage-kv/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-kv.git" +bug-reports: "https://github.com/mirage/mirage-kv/issues" +tags: ["org:mirage"] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "mirage-kv" {>= "1.0.0"} + "lwt" + "cstruct" {>= "1.9.0"} +] + +available: [ ocaml-version >= "4.01.0"] diff --git a/repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/url b/repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/url new file mode 100644 index 000000000..aba3128bf --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-kv-lwt.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-kv/releases/download/v1.1.0/mirage-kv-1.1.0.tbz" +checksum: "b1d8a3749ab84a6401c340b209f20faa" diff --git a/repo/darwin/packages/upstream/mirage-kv.1.1.1/descr b/repo/darwin/packages/upstream/mirage-kv.1.1.1/descr new file mode 100644 index 000000000..e9949ab75 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-kv.1.1.1/descr @@ -0,0 +1,9 @@ +MirageOS signatures for key/value devices + +mirage-kv provides the [Mirage_kv.RO][ro] and [Mirage_kv_lwt.RO][ro-lwt] +signatures the MirageOS key/value devices should implement. + +mirage-kv is distributed under the ISC license. + +[ro]: https://mirage.github.io/mirage-kv/Mirage_kv.html +[ro-lwt]: https://mirage.github.io/mirage-kv/Mirage_kv_lwt.html \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-kv.1.1.1/opam b/repo/darwin/packages/upstream/mirage-kv.1.1.1/opam new file mode 100644 index 000000000..54ee95fc4 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-kv.1.1.1/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "Thomas Gazagnaire " +authors: ["Thomas Gazagnaire "] +homepage: "https://github.com/mirage/mirage-kv" +doc: "https://mirage.github.io/mirage-kv/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-kv.git" +bug-reports: "https://github.com/mirage/mirage-kv/issues" +tags: ["org:mirage"] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "mirage-device" {>= "1.0.0"} + "fmt" +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-kv.1.1.1/url b/repo/darwin/packages/upstream/mirage-kv.1.1.1/url new file mode 100644 index 000000000..88a2b3a96 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-kv.1.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-kv/releases/download/v1.1.1/mirage-kv-1.1.1.tbz" +checksum: "8c1ac2888c17e1e1586d3b3de595bd28" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/descr b/repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/descr new file mode 100644 index 000000000..93c9ea270 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/descr @@ -0,0 +1 @@ +MirageOS TCP/IP networking library diff --git a/repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/opam b/repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/opam new file mode 100644 index 000000000..8a8151523 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-net" +bug-reports: "https://github.com/mirage/mirage-net/issues" +dev-repo: "https://github.com/mirage/mirage-net.git" +doc: "https://mirage.github.io/mirage-net/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "topkg" {build & >= "0.8.0"} + "mirage-net" {>= "1.0.0"} + "lwt" "ipaddr" "cstruct" "io-page" "result" +] diff --git a/repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/url b/repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/url new file mode 100644 index 000000000..d2634a207 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-net-lwt.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-net/releases/download/v1.1.0/mirage-net-1.1.0.tbz" +checksum: "76b10d355dc2e87ff2d19d1ae40c5d9b" diff --git a/repo/darwin/packages/upstream/mirage-net.1.1.1/descr b/repo/darwin/packages/upstream/mirage-net.1.1.1/descr new file mode 100644 index 000000000..b9b51ffd4 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-net.1.1.1/descr @@ -0,0 +1,22 @@ +Network signatures for MirageOS + +mirage-net defines [Mirage_net.S][1] the signature for +network operations for MirageOS. + +[1]: https://mirage.github.io/mirage-net/Mirage_net.S.html + +### Installation + +`mirage-net` can be installed with `opam`: + + opam install mirage-net + +If you don't use `opam` consult the [`opam`](opam) file for build +instructions. + +### Documentation + +The documentation and API reference is automatically generated by +`ocamldoc` from the interfaces. It can be consulted [online][2]. + +[2]: https://mirage.github.io/mirage-net/Mirage_net.html \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-net.1.1.1/opam b/repo/darwin/packages/upstream/mirage-net.1.1.1/opam new file mode 100644 index 000000000..bd66ad9ba --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-net.1.1.1/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-net" +bug-reports: "https://github.com/mirage/mirage-net/issues" +dev-repo: "https://github.com/mirage/mirage-net.git" +doc: "https://mirage.github.io/mirage-net/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "mirage-device" {>= "1.0.0"} + "fmt" +] +available: [ocaml-version > "4.02.3"] diff --git a/repo/darwin/packages/upstream/mirage-net.1.1.1/url b/repo/darwin/packages/upstream/mirage-net.1.1.1/url new file mode 100644 index 000000000..e2176b73d --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-net.1.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-net/releases/download/v1.1.1/mirage-net-1.1.1.tbz" +checksum: "990f38d4c76dbc6392532666c90bb751" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-no-solo5.1/descr b/repo/darwin/packages/upstream/mirage-no-solo5.1/descr new file mode 100644 index 000000000..fe8ccd209 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-no-solo5.1/descr @@ -0,0 +1 @@ +Virtual package conflicting with mirage-solo5 diff --git a/repo/darwin/packages/upstream/mirage-no-solo5.1/opam b/repo/darwin/packages/upstream/mirage-no-solo5.1/opam new file mode 100644 index 000000000..aaaef8fd9 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-no-solo5.1/opam @@ -0,0 +1,6 @@ +opam-version: "1.2" +maintainer: "mirageos-devel@lists.xenproject.org" +authors: ["mirageos-devel@lists.xenproject.org"] +homepage: "https://mirage.io" +license: "BSD2" +conflicts: [ "mirage-solo5" ] diff --git a/repo/darwin/packages/upstream/mirage-no-xen.1/descr b/repo/darwin/packages/upstream/mirage-no-xen.1/descr new file mode 100644 index 000000000..fe69ce3c9 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-no-xen.1/descr @@ -0,0 +1 @@ +Virtual package conflicting with mirage-xen diff --git a/repo/darwin/packages/upstream/mirage-no-xen.1/opam b/repo/darwin/packages/upstream/mirage-no-xen.1/opam new file mode 100644 index 000000000..34c598b39 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-no-xen.1/opam @@ -0,0 +1,6 @@ +opam-version: "1.2" +maintainer: "mirageos-devel@lists.xenproject.org" +authors: ["mirageos-devel@lists.xenproject.org"] +homepage: "https://mirage.io" +license: "BSD2" +conflicts: [ "mirage-xen" ] diff --git a/repo/darwin/packages/upstream/mirage-profile.0.7.0/descr b/repo/darwin/packages/upstream/mirage-profile.0.7.0/descr deleted file mode 100644 index 2ba28d7ab..000000000 --- a/repo/darwin/packages/upstream/mirage-profile.0.7.0/descr +++ /dev/null @@ -1,6 +0,0 @@ -Collect profiling information - -This library can be used to trace execution of OCaml/Lwt programs (such as -MirageOS unikernels) at the level of Lwt threads. The traces can be viewed using -JavaScript or GTK viewers provided by mirage-trace-viewer or processed by tools -supporting the Common Trace Format (CTF). diff --git a/repo/darwin/packages/upstream/mirage-profile.0.7.0/opam b/repo/darwin/packages/upstream/mirage-profile.0.7.0/opam deleted file mode 100644 index 61545b7dc..000000000 --- a/repo/darwin/packages/upstream/mirage-profile.0.7.0/opam +++ /dev/null @@ -1,32 +0,0 @@ -opam-version: "1.2" -name: "mirage-profile" -version: "0.7.0" -maintainer: "Thomas Leonard " -authors: "Thomas Leonard " -homepage: "https://github.com/mirage/mirage-profile" -dev-repo: "https://github.com/mirage/mirage-profile.git" -bug-reports: "https://github.com/mirage/mirage-profile/issues" -license: "BSD-2-clause" -build: [ - ["./configure" - "--prefix" prefix - "--%{mirage-xen-minios:enable}%-xen" - ] - [make] -] -install: [make "install"] -remove: ["ocamlfind" "remove" "mirage-profile"] -depends: [ - "ocamlfind" {build} - "cstruct" {>= "1.9.0"} - "ppx_cstruct" - "ppx_tools" - "ocplib-endian" - "io-page" - "lwt" - "ocamlbuild" {build} -] -depopts: [ - "mirage-xen-minios" -] -available: [ ocaml-version >= "4.02.0" ] diff --git a/repo/darwin/packages/upstream/mirage-profile.0.7.0/url b/repo/darwin/packages/upstream/mirage-profile.0.7.0/url deleted file mode 100644 index 98a9b8c8c..000000000 --- a/repo/darwin/packages/upstream/mirage-profile.0.7.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/mirage-profile/archive/v0.7.0.tar.gz" -checksum: "e4af970d7fbea4f0f77200b2a1f1812b" diff --git a/repo/darwin/packages/upstream/mirage-profile.0.8.1/descr b/repo/darwin/packages/upstream/mirage-profile.0.8.1/descr new file mode 100644 index 000000000..cc7d4bd68 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-profile.0.8.1/descr @@ -0,0 +1,3 @@ +collect runtime profiling information in CTF format + +See http://openmirage.org/wiki/profiling for instructions. diff --git a/repo/darwin/packages/upstream/mirage-profile.0.8.1/opam b/repo/darwin/packages/upstream/mirage-profile.0.8.1/opam new file mode 100644 index 000000000..b6e18a6fc --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-profile.0.8.1/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "Thomas Leonard " +authors: "Thomas Leonard " +homepage: "https://github.com/mirage/mirage-profile" +dev-repo: "https://github.com/mirage/mirage-profile.git" +bug-reports: "https://github.com/mirage/mirage-profile/issues" +doc: "https://mirage.github.io/mirage-profile" +license: "BSD-2-clause" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "cstruct" {>= "3.0.0"} + "ppx_cstruct" {build} + "ocplib-endian" + "lwt" +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/mirage-profile.0.8.1/url b/repo/darwin/packages/upstream/mirage-profile.0.8.1/url new file mode 100644 index 000000000..75e32f50a --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-profile.0.8.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-profile/releases/download/0.8.1/mirage-profile-0.8.1.tbz" +checksum: "42cb61b5e377cbcc0a3620ba996473a6" diff --git a/repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/descr b/repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/descr new file mode 100644 index 000000000..f46fdaf63 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/descr @@ -0,0 +1,14 @@ +MirageOS signatures for network protocols + +mirage-protocols provides a set of module types which libraries intended to be used as MirageOS network implementations should implement. + +The set of protocols defined is: + +[Mirage_protocols.ETHIF](ethif) and [Mirage_protocols_lwt.ETHIF](ethif-lwt) +[Mirage_protocols.ARP](arp) and [Mirage_protocols_lwt.ARP](arp-lwt) +[Mirage_protocols.IP](ip) and [Mirage_protocols_lwt.IP](ip-lwt), via [Mirage_protocols_lwt.IPV4](ipv4-lwt) and [Mirage_protocols_lwt.IPV6](ipv6-lwt) +[Mirage_protocols.ICMP](icmp) and [Mirage_protocols_lwt.ICMP](icmp-lwt), via [Mirage_protocols_lwt.ICMPV4](icmpv4-lwt) +[Mirage_protocols.UDP](udp) and [Mirage_protocols_lwt.UDP](udp-lwt), via [Mirage_protocols_lwt.UDPV4](udpv4-lwt) and [Mirage_protocols_lwt.UDPV6](udpv6-lwt) +[Mirage_protocols.TCP](tcp) and [Mirage_protocols_lwt.TCP](tcp-lwt), via [Mirage_protocols_lwt.TCPV4](tcpv4-lwt) and [Mirage_protocols_lwt.TCPV6](tcpv6-lwt) + +mirage-protocols is distributed under the ISC license. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/opam b/repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/opam new file mode 100644 index 000000000..362240e08 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "Mindy Preston " +authors: ["Mindy Preston "] +homepage: "https://github.com/mirage/mirage-protocols" +doc: "https://mirage.github.io/mirage-protocols/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-protocols.git" +bug-reports: "https://github.com/mirage/mirage-protocols/issues" +tags: ["org:mirage"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >= "1.0+beta9" } + "mirage-protocols" { >= "1.1.0" } + "ipaddr" + "lwt" + "cstruct" {>= "1.9.0"} +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/url b/repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/url new file mode 100644 index 000000000..bf3889cdb --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-protocols-lwt.1.2.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-protocols/releases/download/v1.2.0/mirage-protocols-1.2.0.tbz" +checksum: "81d75323027d25503dd7b0896c267066" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-protocols.1.2.0/descr b/repo/darwin/packages/upstream/mirage-protocols.1.2.0/descr new file mode 100644 index 000000000..f46fdaf63 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-protocols.1.2.0/descr @@ -0,0 +1,14 @@ +MirageOS signatures for network protocols + +mirage-protocols provides a set of module types which libraries intended to be used as MirageOS network implementations should implement. + +The set of protocols defined is: + +[Mirage_protocols.ETHIF](ethif) and [Mirage_protocols_lwt.ETHIF](ethif-lwt) +[Mirage_protocols.ARP](arp) and [Mirage_protocols_lwt.ARP](arp-lwt) +[Mirage_protocols.IP](ip) and [Mirage_protocols_lwt.IP](ip-lwt), via [Mirage_protocols_lwt.IPV4](ipv4-lwt) and [Mirage_protocols_lwt.IPV6](ipv6-lwt) +[Mirage_protocols.ICMP](icmp) and [Mirage_protocols_lwt.ICMP](icmp-lwt), via [Mirage_protocols_lwt.ICMPV4](icmpv4-lwt) +[Mirage_protocols.UDP](udp) and [Mirage_protocols_lwt.UDP](udp-lwt), via [Mirage_protocols_lwt.UDPV4](udpv4-lwt) and [Mirage_protocols_lwt.UDPV6](udpv6-lwt) +[Mirage_protocols.TCP](tcp) and [Mirage_protocols_lwt.TCP](tcp-lwt), via [Mirage_protocols_lwt.TCPV4](tcpv4-lwt) and [Mirage_protocols_lwt.TCPV6](tcpv6-lwt) + +mirage-protocols is distributed under the ISC license. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-protocols.1.2.0/opam b/repo/darwin/packages/upstream/mirage-protocols.1.2.0/opam new file mode 100644 index 000000000..981ffc1b6 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-protocols.1.2.0/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "Mindy Preston " +authors: ["Mindy Preston "] +homepage: "https://github.com/mirage/mirage-protocols" +doc: "https://mirage.github.io/mirage-protocols/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-protocols.git" +bug-reports: "https://github.com/mirage/mirage-protocols/issues" +tags: ["org:mirage"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-device" {>= "1.0.0"} + "mirage-flow" {>= "1.2.0"} + "fmt" +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-protocols.1.2.0/url b/repo/darwin/packages/upstream/mirage-protocols.1.2.0/url new file mode 100644 index 000000000..bf3889cdb --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-protocols.1.2.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-protocols/releases/download/v1.2.0/mirage-protocols-1.2.0.tbz" +checksum: "81d75323027d25503dd7b0896c267066" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-random.1.1.0/descr b/repo/darwin/packages/upstream/mirage-random.1.1.0/descr new file mode 100644 index 000000000..9b3733fd0 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-random.1.1.0/descr @@ -0,0 +1,25 @@ +Random signatures for MirageOS, and an implementation using stdlib + +mirage-random defines [Mirage_random.S][1] and [Mirage_random.C][2] +the signature for random-related devices for MirageOS. It also +provides an implementation of `C` using `Random` from the OCaml standard +library. + +[1]: https://mirage.github.io/mirage-random/Mirage_random.S.html +[2]: https://mirage.github.io/mirage-random/Mirage_random.C.html + +### Installation + +`mirage-random` can be installed with `opam`: + + opam install mirage-random + +If you don't use `opam` consult the [`opam`](opam) file for build +instructions. + +### Documentation + +The documentation and API reference is automatically generated by +`ocamldoc` from the interfaces. It can be consulted [online][2]. + +[2]: https://mirage.github.io/mirage-random/Mirage_random.html \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-random.1.1.0/opam b/repo/darwin/packages/upstream/mirage-random.1.1.0/opam new file mode 100644 index 000000000..ac96f9d2d --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-random.1.1.0/opam @@ -0,0 +1,21 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-random" +bug-reports: "https://github.com/mirage/mirage-random/issues" +dev-repo: "https://github.com/mirage/mirage-random.git" +doc: "https://mirage.github.io/mirage-random/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "cstruct" {>= "1.9.0"} +] diff --git a/repo/darwin/packages/upstream/mirage-random.1.1.0/url b/repo/darwin/packages/upstream/mirage-random.1.1.0/url new file mode 100644 index 000000000..f5c58ffef --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-random.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-random/releases/download/v1.1.0/mirage-random-1.1.0.tbz" +checksum: "81775f222b1bf5be7759b4595c5a4615" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/descr b/repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/descr new file mode 100644 index 000000000..9abc72a6f --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/descr @@ -0,0 +1,12 @@ +MirageOS signatures for network stacks + +mirage-stack provides a set of module types which libraries intended to be used as MirageOS network stacks should implement. + +The set of protocols defined is: + +[Mirage_stack.STACKV4](stackv4) and [Mirage_stack_lwt.STACKV4](stackv4-lwt) + +mirage-stack is distributed under the ISC license. + +[stackv4]: https://mirage.github.io/mirage-stack/Mirage_stack.html +[stackv4-lwt]: https://mirage.github.io/mirage-stack/Mirage_stack_lwt.html \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/opam b/repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/opam new file mode 100644 index 000000000..e5b603ef5 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "Mindy Preston " +authors: ["Mindy Preston "] +homepage: "https://github.com/mirage/mirage-stack" +doc: "https://mirage.github.io/mirage-stack/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-stack.git" +bug-reports: "https://github.com/mirage/mirage-stack/issues" +tags: ["org:mirage"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "mirage-stack" {>= "1.0.0"} + "ipaddr" + "lwt" + "cstruct" {>= "2.4.0"} +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/url b/repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/url new file mode 100644 index 000000000..66d913a9d --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-stack-lwt.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-stack/releases/download/v1.1.0/mirage-stack-1.1.0.tbz" +checksum: "930a631e11a106d8d6866c9fd30c090f" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-stack.1.1.0/descr b/repo/darwin/packages/upstream/mirage-stack.1.1.0/descr new file mode 100644 index 000000000..9abc72a6f --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-stack.1.1.0/descr @@ -0,0 +1,12 @@ +MirageOS signatures for network stacks + +mirage-stack provides a set of module types which libraries intended to be used as MirageOS network stacks should implement. + +The set of protocols defined is: + +[Mirage_stack.STACKV4](stackv4) and [Mirage_stack_lwt.STACKV4](stackv4-lwt) + +mirage-stack is distributed under the ISC license. + +[stackv4]: https://mirage.github.io/mirage-stack/Mirage_stack.html +[stackv4-lwt]: https://mirage.github.io/mirage-stack/Mirage_stack_lwt.html \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-stack.1.1.0/opam b/repo/darwin/packages/upstream/mirage-stack.1.1.0/opam new file mode 100644 index 000000000..98b60bc9e --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-stack.1.1.0/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "Mindy Preston " +authors: ["Mindy Preston "] +homepage: "https://github.com/mirage/mirage-stack" +doc: "https://mirage.github.io/mirage-stack/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-stack.git" +bug-reports: "https://github.com/mirage/mirage-stack/issues" +tags: ["org:mirage"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "mirage-device" {>= "1.0.0"} + "mirage-protocols" {>= "1.0.0"} + "fmt" +] + +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/mirage-stack.1.1.0/url b/repo/darwin/packages/upstream/mirage-stack.1.1.0/url new file mode 100644 index 000000000..66d913a9d --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-stack.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-stack/releases/download/v1.1.0/mirage-stack-1.1.0.tbz" +checksum: "930a631e11a106d8d6866c9fd30c090f" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/descr b/repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/descr new file mode 100644 index 000000000..74b3d64bc --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/descr @@ -0,0 +1,22 @@ +Time operations for MirageOS + +mirage-time defines [Mirage_time.S][1] the signature for +time-related operations for MirageOS. + +[1]: https://mirage.github.io/mirage-time/Mirage_time.S.html + +### Installation + +`mirage-time` can be installed with `opam`: + + opam install mirage-time + +If you don't use `opam` consult the [`opam`](opam) file for build +instructions. + +### Documentation + +The documentation and API reference is automatically generated by +`ocamldoc` from the interfaces. It can be consulted [online][2]. + +[2]: https://mirage.github.io/mirage-time/Mirage_time.html \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/opam b/repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/opam new file mode 100644 index 000000000..e0f23c959 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-time" +bug-reports: "https://github.com/mirage/mirage-time/issues" +dev-repo: "https://github.com/mirage/mirage-time.git" +doc: "https://mirage.github.io/mirage-time/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-time" {>= "1.0.0"} + "lwt" +] diff --git a/repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/url b/repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/url new file mode 100644 index 000000000..706b9c077 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-time-lwt.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-time/releases/download/v1.1.0/mirage-time-1.1.0.tbz" +checksum: "75603dd15ec9c343da74259771a27d85" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-time-unix.1.2.0/descr b/repo/darwin/packages/upstream/mirage-time-unix.1.2.0/descr new file mode 100644 index 000000000..96e847640 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-time-unix.1.2.0/descr @@ -0,0 +1 @@ +Implementation of `Mirage_time_lwt.S` for the Unix backend diff --git a/repo/darwin/packages/upstream/mirage-time-unix.1.2.0/opam b/repo/darwin/packages/upstream/mirage-time-unix.1.2.0/opam new file mode 100644 index 000000000..12b5ef3f3 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-time-unix.1.2.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-time" +bug-reports: "https://github.com/mirage/mirage-time/issues" +dev-repo: "https://github.com/mirage/mirage-time.git" +doc: "https://mirage.github.io/mirage-time/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-time-lwt" {>= "1.0.0"} + "lwt" "duration" +] diff --git a/repo/darwin/packages/upstream/mirage-time-unix.1.2.0/url b/repo/darwin/packages/upstream/mirage-time-unix.1.2.0/url new file mode 100644 index 000000000..e1bef5a1e --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-time-unix.1.2.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-time/releases/download/v1.2.0/mirage-time-1.2.0.tbz" +checksum: "428555a6f49ac55dcfeb7fcde8d4c378" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-time.1.1.0/descr b/repo/darwin/packages/upstream/mirage-time.1.1.0/descr new file mode 100644 index 000000000..74b3d64bc --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-time.1.1.0/descr @@ -0,0 +1,22 @@ +Time operations for MirageOS + +mirage-time defines [Mirage_time.S][1] the signature for +time-related operations for MirageOS. + +[1]: https://mirage.github.io/mirage-time/Mirage_time.S.html + +### Installation + +`mirage-time` can be installed with `opam`: + + opam install mirage-time + +If you don't use `opam` consult the [`opam`](opam) file for build +instructions. + +### Documentation + +The documentation and API reference is automatically generated by +`ocamldoc` from the interfaces. It can be consulted [online][2]. + +[2]: https://mirage.github.io/mirage-time/Mirage_time.html \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-time.1.1.0/opam b/repo/darwin/packages/upstream/mirage-time.1.1.0/opam new file mode 100644 index 000000000..61ed1fbad --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-time.1.1.0/opam @@ -0,0 +1,21 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-time" +bug-reports: "https://github.com/mirage/mirage-time/issues" +dev-repo: "https://github.com/mirage/mirage-time.git" +doc: "https://mirage.github.io/mirage-time/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-device" +] diff --git a/repo/darwin/packages/upstream/mirage-time.1.1.0/url b/repo/darwin/packages/upstream/mirage-time.1.1.0/url new file mode 100644 index 000000000..706b9c077 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-time.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-time/releases/download/v1.1.0/mirage-time-1.1.0.tbz" +checksum: "75603dd15ec9c343da74259771a27d85" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/descr b/repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/descr new file mode 100644 index 000000000..9cd7a3917 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/descr @@ -0,0 +1,14 @@ +Lwt module type definitions for Mirage-compatible applications + +This is a virtual package that pulls in all the concrete +dependencies required for the `mirage-types.lwt` ocamlfind +package to become available. + +The purpose of this library is to provide concrete types +for several that are left abstract in `mirage-types`: + +- `type 'a io = 'a Lwt.t` +- `type page_aligned_buffer = Io_page.t` +- `type buffer = Cstruct.t` +- `type macaddr = Macaddr.t` +- `type ipv4addr = Ipaddr.V4.t` diff --git a/repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/opam b/repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/opam new file mode 100644 index 000000000..ff603a6c3 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/opam @@ -0,0 +1,31 @@ +opam-version: "1.2" +maintainer: ["anil@recoil.org" "thomas@gazagnaire.org"] +authors: "The MirageOS team" +homepage: "https://github.com/mirage/mirage" +bug-reports: "https://github.com/mirage/mirage/issues/" +dev-repo: "https://github.com/mirage/mirage.git" +tags: ["org:mirage" "org:xapi-project"] + +build: ["ocaml" "pkg/pkg.ml" "build" "--pkg-name" name "--pinned" "%{pinned}%"] +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build & >= "0.8.0"} + "lwt" + "cstruct" {>="1.4.0"} + "io-page" {>="1.4.0"} + "ipaddr" + "mirage-types" {>= "3.0.0"} + "mirage-clock-lwt" {>= "1.2.0"} + "mirage-time-lwt" {>= "1.0.0"} + "mirage-random" {>= "1.0.0"} + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-protocols-lwt" {>= "1.0.0"} + "mirage-stack-lwt" {>= "1.0.0"} + "mirage-console-lwt" {>= "1.2.0"} + "mirage-block-lwt" {>= "1.0.0"} + "mirage-net-lwt" {>= "1.0.0"} + "mirage-fs-lwt" {>= "1.0.0"} + "mirage-kv-lwt" {>= "1.0.0"} + "mirage-channel-lwt" {>= "3.0.0"} +] diff --git a/repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/url b/repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/url new file mode 100644 index 000000000..15d648c3f --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-types-lwt.3.0.0/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/mirage/archive/v3.0.0.tar.gz" +checksum: "744cb89c1b35a6d0dadc95ec4ce058c4" diff --git a/repo/darwin/packages/upstream/mirage-types.3.0.0/descr b/repo/darwin/packages/upstream/mirage-types.3.0.0/descr new file mode 100644 index 000000000..7eeed4bc3 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-types.3.0.0/descr @@ -0,0 +1 @@ +Module type definitions for Mirage-compatible applications diff --git a/repo/darwin/packages/upstream/mirage-types.3.0.0/opam b/repo/darwin/packages/upstream/mirage-types.3.0.0/opam new file mode 100644 index 000000000..7948298b1 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-types.3.0.0/opam @@ -0,0 +1,28 @@ +opam-version: "1.2" +maintainer: ["anil@recoil.org" "thomas@gazagnaire.org"] +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +homepage: "https://mirage.io/" +bug-reports: "https://github.com/mirage/mirage/issues/" +dev-repo: "https://github.com/mirage/mirage.git" +tags: ["org:mirage" "org:xapi-project"] +build: ["ocaml" "pkg/pkg.ml" "build" "--pkg-name" name "--pinned" "%{pinned}%"] +depends: [ + "ocamlbuild" {build} + "ocamlfind" {build} + "topkg" {build & >= "0.8.0"} + "mirage-device" {>= "1.0.0"} + "mirage-time" {>= "1.0.0"} + "mirage-clock" {>= "1.2.0"} + "mirage-random" {>= "1.0.0"} + "mirage-flow" {>= "1.2.0"} + "mirage-console" {>= "2.2.0"} + "mirage-protocols" {>= "1.0.0"} + "mirage-stack" {>= "1.0.0"} + "mirage-block" {>= "1.0.0"} + "mirage-net" {>= "1.0.0"} + "mirage-fs" {>= "1.0.0"} + "mirage-kv" {>= "1.0.0"} + "mirage-channel" {>= "3.0.0"} +] diff --git a/repo/darwin/packages/upstream/mirage-types.3.0.0/url b/repo/darwin/packages/upstream/mirage-types.3.0.0/url new file mode 100644 index 000000000..15d648c3f --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-types.3.0.0/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/mirage/archive/v3.0.0.tar.gz" +checksum: "744cb89c1b35a6d0dadc95ec4ce058c4" diff --git a/repo/darwin/packages/upstream/mirage-unix.2.6.0/descr b/repo/darwin/packages/upstream/mirage-unix.2.6.0/descr deleted file mode 100644 index 0872a6051..000000000 --- a/repo/darwin/packages/upstream/mirage-unix.2.6.0/descr +++ /dev/null @@ -1 +0,0 @@ -MirageOS library for Unix compilation diff --git a/repo/darwin/packages/upstream/mirage-unix.2.6.0/opam b/repo/darwin/packages/upstream/mirage-unix.2.6.0/opam deleted file mode 100644 index cc0926cfd..000000000 --- a/repo/darwin/packages/upstream/mirage-unix.2.6.0/opam +++ /dev/null @@ -1,23 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: "The MirageOS team" -homepage: "https://github.com/mirage/mirage-platform" -bug-reports: "https://github.com/mirage/mirage-platform/issues/" -dev-repo: "https://github.com/mirage/mirage-platform.git" -license: "part ISC, part LGPL-2.1 with OCaml linking ecxeption, part 3-clause BSD" -build: [make "unix-build"] -install: [make "unix-install" "PREFIX=%{prefix}%"] -remove: [make "unix-uninstall" "PREFIX=%{prefix}%"] - -depends: [ - "conf-which" {build} - "cstruct" {>= "1.0.1"} - "ocamlfind" {build} - "lwt" {>= "2.4.3"} - "io-page" {>= "1.5.0"} - "mirage-clock-unix" {>= "1.0.0" & < "1.1"} - "shared-memory-ring" {>= "1.0.0"} - "mirage-profile" {>= "0.3"} - "ocamlbuild" {build} -] -available: [ocaml-version >= "4.01.0"] diff --git a/repo/darwin/packages/upstream/mirage-unix.2.6.0/url b/repo/darwin/packages/upstream/mirage-unix.2.6.0/url deleted file mode 100644 index 96d5dcc84..000000000 --- a/repo/darwin/packages/upstream/mirage-unix.2.6.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/mirage-platform/archive/v2.6.0.tar.gz" -checksum: "e9d5ec80ae06b42658e48af130aea7c1" diff --git a/repo/darwin/packages/upstream/mirage-vnetif.0.2.0/descr b/repo/darwin/packages/upstream/mirage-vnetif.0.2.0/descr deleted file mode 100644 index ccdacd11d..000000000 --- a/repo/darwin/packages/upstream/mirage-vnetif.0.2.0/descr +++ /dev/null @@ -1,6 +0,0 @@ -Virtual network interface and software switch for Mirage. - -Provides the module Vnetif which can be used as a replacement for the -regular Netif implementation in Xen and Unix. Stacks built using -Vnetif are connected to a software switch that allows the stacks to -communicate as if they were connected to the same LAN. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-vnetif.0.2.0/opam b/repo/darwin/packages/upstream/mirage-vnetif.0.2.0/opam deleted file mode 100644 index 897f8ed29..000000000 --- a/repo/darwin/packages/upstream/mirage-vnetif.0.2.0/opam +++ /dev/null @@ -1,19 +0,0 @@ -opam-version: "1.2" -maintainer: "Magnus Skjegstad " -authors: "Magnus Skjegstad " -homepage: "https://github.com/MagnusS/mirage-vnetif" -bug-reports: "https://github.com/MagnusS/mirage-vnetif/issues/" -license: "ISC" -dev-repo: "https://github.com/MagnusS/mirage-vnetif.git" -build: [make] -install: [make "install"] -remove: ["ocamlfind" "remove" "mirage-vnetif"] -depends: [ - "lwt" - "mirage-types" {< "3.0.0"} - "cstruct" - "ipaddr" - "io-page" - "mirage-profile" - "ocamlbuild" {build} -] diff --git a/repo/darwin/packages/upstream/mirage-vnetif.0.2.0/url b/repo/darwin/packages/upstream/mirage-vnetif.0.2.0/url deleted file mode 100644 index 745d23d77..000000000 --- a/repo/darwin/packages/upstream/mirage-vnetif.0.2.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/MagnusS/mirage-vnetif/archive/0.2.0.tar.gz" -checksum: "712966a3d9ad813145f0b67af8b3d8ae" diff --git a/repo/darwin/packages/upstream/mirage-vnetif.0.4.0/descr b/repo/darwin/packages/upstream/mirage-vnetif.0.4.0/descr new file mode 100644 index 000000000..e1a82f9d0 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-vnetif.0.4.0/descr @@ -0,0 +1,89 @@ +Virtual network interface and software switch for Mirage + +Provides the module `Vnetif` which can be used as a replacement for the regular `Netif` implementation in Xen and Unix. Stacks built using `Vnetif` are connected to a software switch that allows the stacks to communicate as if they were connected to the same LAN. + +An example of a unikernel that communicates with itself over `Vnetif` can be seen [here](https://github.com/MagnusS/mirage-vnetif/blob/master/examples/connect/unikernel.ml). An iperf-like performance test is available [here](https://github.com/MagnusS/mirage-vnetif/tree/master/examples/iperf_self). The examples can be compiled for Unix and Xen and do not need access to a real network interface. + +## Install + +``` +opam install mirage-vnetif +``` + +## Getting started + +First, construct a TCP/IP stack based on `vnetif`: + +```ocaml + module S = struct + module B = Basic_backend.Make + module V = Vnetif.Make(B) + module E = Ethif.Make(V) + module I = Ipv4.Make(E)(Clock)(OS.Time) + module U = Udp.Make(I) + module T = Tcp.Flow.Make(I)(OS.Time)(Clock)(Random) + module S = Tcpip_stack_direct.Make(C)(OS.Time)(Random)(V)(E)(I)(U)(T) + include S + end +``` + +Since we don't have the mirage-tool to help us we have to construct the stack manually. This code would usually be generated in `main.ml` by `mirage configure --xen/unix`. + +```ocaml +let or_error name fn t = + fn t + >>= function + | `Error e -> fail (Failure ("Error starting " ^ name)) + | `Ok t -> return t + +let create_stack c backend ip netmask gw = + or_error "backend" S.V.connect backend >>= fun netif -> + or_error "ethif" S.E.connect netif >>= fun ethif -> + or_error "ipv4" S.I.connect ethif >>= fun ipv4 -> + or_error "udpv4" S.U.connect ipv4 >>= fun udpv4 -> + or_error "tcpv4" S.T.connect ipv4 >>= fun tcpv4 -> + let config = { + Mirage_types_lwt.name = "stack"; + Mirage_types_lwt.console = c; + Mirage_types_lwt.interface = netif; + Mirage_types_lwt.mode = `IPv4 (ip, netmask, gw); + } in + or_error "stack" (S.connect config ethif ipv4 udpv4) tcpv4 + +``` + + +We can now create multiple stacks that talk over the same backend. `Basic_backend.create` accepts two optional parameters: +- `use_async_readers` makes the `write` calls non-blocking. This is necessary to use Vnetif with the Mirage TCP/IP stack. +- `yield` specifies the yield function to use in non-blocking mode. In a unikernel this is typically `OS.Time.sleep 0.0`, but in a Unix process `Lwt_main.yield ()` can be used instead. + +```ocaml + +let () = + + (* create async backend with OS.Time.sleep 0.0 as yield *) + let backend = Basic_backend.create ~use_async_readers:true + ~yield:(fun() -> OS.Time.sleep 0.0 ) () in + + let netmask = Ipaddr.V4.of_string_exn "255.255.255.0" in + let gw = Ipaddr.V4.of_string_exn "10.0.0.1" in + + let server_ip = Ipaddr.V4.of_string_exn "10.0.0.100" in + create_stack c backend server_ip netmask [gw] >>= fun server_stack -> + + let client_ip = Ipaddr.V4.of_string_exn "10.0.0.101" in + create_stack c backend server_ip netmask [gw] >>= fun client_stack -> +``` + +The stacks can now be used as regular Mirage TCP/IP stacks, e.g.: + +```ocaml +S.listen_tcpv4 server_stack ~port:80 (fun f -> ...); +S.listen s1 +``` + +## Build examples +``` +mirage configure --xen/--unix +make +``` \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-vnetif.0.4.0/opam b/repo/darwin/packages/upstream/mirage-vnetif.0.4.0/opam new file mode 100644 index 000000000..b58114f83 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-vnetif.0.4.0/opam @@ -0,0 +1,30 @@ +opam-version: "1.2" +name: "mirage-vnetif" +maintainer: "Magnus Skjegstad " +authors: "Magnus Skjegstad " +homepage: "https://github.com/mirage/mirage-vnetif" +bug-reports: "https://github.com/mirage/mirage-vnetif/issues/" +dev-repo: "https://github.com/mirage/mirage-vnetif.git" +doc: "https://docs.mirage.io/mirage-vnetif" +license: "ISC" + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "lwt" + "mirage-time-lwt" {>= "1.0.0"} + "mirage-clock-lwt" {>= "1.2.0"} + "mirage-net-lwt" {>= "1.0.0"} + "cstruct" {>="2.4.0"} + "ipaddr" + "io-page" + "mirage-profile" + "duration" + "result" + "logs" +] +tags: ["org:mirage"] diff --git a/repo/darwin/packages/upstream/mirage-vnetif.0.4.0/url b/repo/darwin/packages/upstream/mirage-vnetif.0.4.0/url new file mode 100644 index 000000000..b270f6b49 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-vnetif.0.4.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-vnetif/releases/download/v0.4.0/mirage-vnetif-0.4.0.tbz" +checksum: "8ee3b8f3cd9069cd930ce52d78502592" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mtime.1.0.0/url b/repo/darwin/packages/upstream/mtime.1.0.0/url deleted file mode 100644 index 73da596d5..000000000 --- a/repo/darwin/packages/upstream/mtime.1.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://erratique.ch/software/mtime/releases/mtime-1.0.0.tbz" -checksum: "3e3f2fad1a3c4d8bd6d5006b1a6a6d99" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mtime.1.0.0/descr b/repo/darwin/packages/upstream/mtime.1.1.0/descr similarity index 100% rename from repo/darwin/packages/upstream/mtime.1.0.0/descr rename to repo/darwin/packages/upstream/mtime.1.1.0/descr diff --git a/repo/darwin/packages/upstream/mtime.1.0.0/opam b/repo/darwin/packages/upstream/mtime.1.1.0/opam similarity index 100% rename from repo/darwin/packages/upstream/mtime.1.0.0/opam rename to repo/darwin/packages/upstream/mtime.1.1.0/opam diff --git a/repo/darwin/packages/upstream/mtime.1.1.0/url b/repo/darwin/packages/upstream/mtime.1.1.0/url new file mode 100644 index 000000000..7fdda04b1 --- /dev/null +++ b/repo/darwin/packages/upstream/mtime.1.1.0/url @@ -0,0 +1,2 @@ +archive: "http://erratique.ch/software/mtime/releases/mtime-1.1.0.tbz" +checksum: "2935fe4a36b721735f60c9c65ad63a26" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/nocrypto.0.5.4/descr b/repo/darwin/packages/upstream/nocrypto.0.5.4/descr new file mode 100644 index 000000000..3ca64e089 --- /dev/null +++ b/repo/darwin/packages/upstream/nocrypto.0.5.4/descr @@ -0,0 +1,9 @@ +Simpler crypto + + +nocrypto is a small cryptographic library that puts emphasis on the applicative +style and ease of use. It includes basic ciphers (AES, 3DES, RC4), hashes (MD5, +SHA1, SHA2), public-key primitives (RSA, DSA, DH) and a strong RNG (Fortuna). + +RSA timing attacks are countered by blinding. AES timing attacks are avoided by +delegating to AES-NI. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/nocrypto.0.5.4/opam b/repo/darwin/packages/upstream/nocrypto.0.5.4/opam new file mode 100644 index 000000000..200a3ca0d --- /dev/null +++ b/repo/darwin/packages/upstream/nocrypto.0.5.4/opam @@ -0,0 +1,41 @@ +opam-version: "1.2" +homepage: "https://github.com/mirleft/ocaml-nocrypto" +dev-repo: "https://github.com/mirleft/ocaml-nocrypto.git" +bug-reports: "https://github.com/mirleft/ocaml-nocrypto/issues" +doc: "https://mirleft.github.io/ocaml-nocrypto/doc" +authors: ["David Kaloper "] +maintainer: "David Kaloper " +license: "ISC" +tags: [ "org:mirage" ] +available: [ ocaml-version >= "4.02.0" ] + +build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" + "--with-lwt" "%{lwt:installed}%" + "--xen" "%{mirage-xen:installed}%" + "--freestanding" "%{mirage-solo5:installed}%"] + +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "cpuid" {build} + "ocb-stubblr" {build} + "ppx_deriving" {build} + "ppx_sexp_conv" {build} + "ounit" {test} + "cstruct" {>="2.4.0"} + "cstruct-lwt" + "zarith" + "lwt" + "sexplib" + ("mirage-no-xen" | ("mirage-xen" & "mirage-entropy" & "zarith-xen")) + ("mirage-no-solo5" | ("mirage-solo5" & "mirage-entropy" & "zarith-freestanding")) +] + +conflicts: [ + "topkg" {<"0.8.0"} + "ocb-stubblr" {<"0.1.0"} + "mirage-xen" {<"2.2.0"} + "sexplib" {="v0.9.0"} +] + diff --git a/repo/darwin/packages/upstream/nocrypto.0.5.4/url b/repo/darwin/packages/upstream/nocrypto.0.5.4/url new file mode 100644 index 000000000..ec05a1382 --- /dev/null +++ b/repo/darwin/packages/upstream/nocrypto.0.5.4/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirleft/ocaml-nocrypto/releases/download/v0.5.4/nocrypto-0.5.4.tbz" +checksum: "c331a7a4d2a563d1d5ed581aeb849011" diff --git a/repo/darwin/packages/upstream/num.0/descr b/repo/darwin/packages/upstream/num.0/descr new file mode 100644 index 000000000..7d5af8682 --- /dev/null +++ b/repo/darwin/packages/upstream/num.0/descr @@ -0,0 +1 @@ +The Num library for arbitrary-precision integer and rational arithmetic diff --git a/repo/darwin/packages/upstream/num.0/opam b/repo/darwin/packages/upstream/num.0/opam new file mode 100644 index 000000000..94cc0bcc9 --- /dev/null +++ b/repo/darwin/packages/upstream/num.0/opam @@ -0,0 +1,16 @@ +opam-version: "1.2" +name: "num" +version: "0" +maintainer: "Xavier Leroy " +authors: [ + "Valérie Ménissier-Morain" + "Pierre Weis" + "Xavier Leroy" +] +license: "LGPL-2 with OCaml linking exception" + +homepage: "https://github.com/ocaml/ocaml" +dev-repo: "https://github.com/ocaml/ocaml.git" +bug-reports: "http://caml.inria.fr/mantis/" + +depends: [ "base-num" ] diff --git a/repo/darwin/packages/upstream/oasis.0.4.10/descr b/repo/darwin/packages/upstream/oasis.0.4.10/descr new file mode 100644 index 000000000..826e6942e --- /dev/null +++ b/repo/darwin/packages/upstream/oasis.0.4.10/descr @@ -0,0 +1,23 @@ +Tooling for building OCaml libraries and applications + +OASIS generates a full configure, build and install system for your +application. It starts with a simple `_oasis` file at the toplevel of +your project and creates everything required. + +OASIS leverages existing OCaml tooling to perform most of it's work. +In fact, it might be more appropriate to think of it as simply the +glue that binds these other subsystems together and coordinates the +work that they do. It should support the following tools: + +* OCamlbuild +* OMake +* OCamlMakefile (todo), +* ocaml-autoconf (todo) + +It also features a do-it-yourself command line invocation and an +internal configure/install scheme. Libraries are managed through +findlib. It has been tested on GNU Linux and Windows. + +It also allows to have standard entry points and description. It helps +to integrates your libraries and software with third parties tools +like OPAM. diff --git a/repo/darwin/packages/upstream/oasis.0.4.10/files/oasis.install b/repo/darwin/packages/upstream/oasis.0.4.10/files/oasis.install new file mode 100644 index 000000000..075d45291 --- /dev/null +++ b/repo/darwin/packages/upstream/oasis.0.4.10/files/oasis.install @@ -0,0 +1,5 @@ +etc: [ + "setup.ml" + "setup.data" + "setup.log" +] diff --git a/repo/darwin/packages/upstream/oasis.0.4.10/opam b/repo/darwin/packages/upstream/oasis.0.4.10/opam new file mode 100644 index 000000000..5d82e21a7 --- /dev/null +++ b/repo/darwin/packages/upstream/oasis.0.4.10/opam @@ -0,0 +1,32 @@ +opam-version: "1.2" +maintainer: "Sylvain Le Gall " +authors: [ "Sylvain Le Gall" ] +license: "LGPL-2.1 with OCaml linking exception" +homepage: "http://oasis.forge.ocamlcore.org/" +dev-repo: "git://github.com/ocaml/oasis.git" +bug-reports: "https://github.com/ocaml/oasis/issues" +build: [ + ["ocaml" "setup.ml" "-configure" "--prefix" prefix] + ["ocaml" "setup.ml" "-build"] +] +install: ["ocaml" "setup.ml" "-install"] +remove: [ + ["ocaml" "%{etc}%/oasis/setup.ml" "-C" "%{etc}%/oasis" "-uninstall"] +] +build-doc: [ "ocaml" "setup.ml" "-doc" ] +depends: [ + "base-unix" + "ocamlbuild" + "ocamlfind" {>= "1.3.1"} + "ocamlify" {build} + "ocamlmod" {build} +] +depopts: [ + "benchmark" +] +conflicts: [ + "benchmark" {< "1.2"} + "oasis-mirage" {= "0.3.0"} + "oasis-mirage" {= "0.3.0a"} +] +available: [ ocaml-version >= "3.12.1" ] diff --git a/repo/darwin/packages/upstream/oasis.0.4.10/url b/repo/darwin/packages/upstream/oasis.0.4.10/url new file mode 100644 index 000000000..b9fcd1cc0 --- /dev/null +++ b/repo/darwin/packages/upstream/oasis.0.4.10/url @@ -0,0 +1,2 @@ +archive: "https://forge.ocamlcore.org/frs/download.php/1694/oasis-0.4.10.tar.gz" +checksum: "84de67188d6c1ba4499aee6d4cb8cb54" diff --git a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0/descr b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/descr similarity index 100% rename from repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0/descr rename to repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/descr diff --git a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0/opam b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam similarity index 81% rename from repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0/opam rename to repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam index 88b103057..76acd5c48 100644 --- a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0/opam +++ b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam @@ -9,17 +9,7 @@ bug-reports: "https://github.com/let-def/ocaml-migrate-parsetree/issues" license: "LGPL-2.1" tags: ["syntax" "org:ocamllabs"] dev-repo: "git://github.com/let-def/ocaml-migrate-parsetree.git" -build: [ - "jbuilder" - "build" - "--only-packages" - "ocaml-migrate-parsetree" - "--root" - "." - "-j" - jobs - "@install" -] +build: ["jbuilder" "build" "-p" name "-j" jobs] depends: [ "result" "ocamlfind" {build} diff --git a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/url b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/url new file mode 100644 index 000000000..9d8b523d3 --- /dev/null +++ b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/url @@ -0,0 +1,3 @@ +http: + "https://github.com/let-def/ocaml-migrate-parsetree/archive/1.0.1.tar.gz" +checksum: "b2abce65e3e9057af3fe96fa8e9d088b" diff --git a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0/url b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0/url deleted file mode 100644 index 1c1358951..000000000 --- a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0/url +++ /dev/null @@ -1,3 +0,0 @@ -http: - "https://github.com/let-def/ocaml-migrate-parsetree/archive/v1.0.tar.gz" -checksum: "188b1bfed310fad8794da4d546d5a65f" diff --git a/repo/darwin/packages/upstream/ocamlfind.1.7.2/findlib b/repo/darwin/packages/upstream/ocamlfind.1.7.2/findlib deleted file mode 100644 index a58eb9315..000000000 --- a/repo/darwin/packages/upstream/ocamlfind.1.7.2/findlib +++ /dev/null @@ -1,13 +0,0 @@ -bigarray -bytes -compiler-libs -dynlink -findlib -graphics -labltk -num -num-top -stdlib -str -threads -unix diff --git a/repo/darwin/packages/upstream/ocamlfind.1.7.2/url b/repo/darwin/packages/upstream/ocamlfind.1.7.2/url deleted file mode 100644 index c8f84915d..000000000 --- a/repo/darwin/packages/upstream/ocamlfind.1.7.2/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://download.camlcity.org/download/findlib-1.7.2.tar.gz" -checksum: "b2ced422ea53192bd046faa7bcbcd4a3" diff --git a/repo/darwin/packages/upstream/ocamlfind.1.7.2/descr b/repo/darwin/packages/upstream/ocamlfind.1.7.3/descr similarity index 100% rename from repo/darwin/packages/upstream/ocamlfind.1.7.2/descr rename to repo/darwin/packages/upstream/ocamlfind.1.7.3/descr diff --git a/repo/darwin/packages/upstream/ocamlfind.1.7.2/files/ocaml-stub b/repo/darwin/packages/upstream/ocamlfind.1.7.3/files/ocaml-stub similarity index 100% rename from repo/darwin/packages/upstream/ocamlfind.1.7.2/files/ocaml-stub rename to repo/darwin/packages/upstream/ocamlfind.1.7.3/files/ocaml-stub diff --git a/repo/darwin/packages/upstream/ocamlfind.1.7.2/files/ocamlfind.install b/repo/darwin/packages/upstream/ocamlfind.1.7.3/files/ocamlfind.install similarity index 100% rename from repo/darwin/packages/upstream/ocamlfind.1.7.2/files/ocamlfind.install rename to repo/darwin/packages/upstream/ocamlfind.1.7.3/files/ocamlfind.install diff --git a/repo/darwin/packages/upstream/ocamlfind.1.7.2/opam b/repo/darwin/packages/upstream/ocamlfind.1.7.3/opam similarity index 100% rename from repo/darwin/packages/upstream/ocamlfind.1.7.2/opam rename to repo/darwin/packages/upstream/ocamlfind.1.7.3/opam diff --git a/repo/darwin/packages/upstream/ocamlfind.1.7.3/url b/repo/darwin/packages/upstream/ocamlfind.1.7.3/url new file mode 100644 index 000000000..3fba38215 --- /dev/null +++ b/repo/darwin/packages/upstream/ocamlfind.1.7.3/url @@ -0,0 +1,2 @@ +archive: "http://download.camlcity.org/download/findlib-1.7.3.tar.gz" +checksum: "7d57451218359f7b7dfc969e3684a6da" diff --git a/repo/darwin/packages/upstream/ocamlify.0.0.1/descr b/repo/darwin/packages/upstream/ocamlify.0.0.1/descr new file mode 100644 index 000000000..a3241a781 --- /dev/null +++ b/repo/darwin/packages/upstream/ocamlify.0.0.1/descr @@ -0,0 +1,5 @@ +Include files in OCaml code +OCamlify allows to create OCaml source code by including whole files +into OCaml string or string list. The code generated can be compiled +as a standard OCaml file. It allows embedding external resources as +OCaml code. diff --git a/repo/darwin/packages/upstream/ocamlify.0.0.1/files/ocamlify.install b/repo/darwin/packages/upstream/ocamlify.0.0.1/files/ocamlify.install new file mode 100644 index 000000000..133e9cb64 --- /dev/null +++ b/repo/darwin/packages/upstream/ocamlify.0.0.1/files/ocamlify.install @@ -0,0 +1 @@ +bin: ["_build/src/ocamlify"] diff --git a/repo/darwin/packages/upstream/ocamlify.0.0.1/opam b/repo/darwin/packages/upstream/ocamlify.0.0.1/opam new file mode 100644 index 000000000..545466712 --- /dev/null +++ b/repo/darwin/packages/upstream/ocamlify.0.0.1/opam @@ -0,0 +1,11 @@ +opam-version: "1.2" +maintainer: "https://github.com/ocaml/opam-repository/issues" +build: [ + ["ocaml" "setup.ml" "-configure" "--prefix" prefix] + ["ocaml" "setup.ml" "-build"] +] +depends: [ + "ocamlfind" + "ocamlbuild" {build} +] +install: ["ocaml" "setup.ml" "-install"] diff --git a/repo/darwin/packages/upstream/ocamlify.0.0.1/url b/repo/darwin/packages/upstream/ocamlify.0.0.1/url new file mode 100644 index 000000000..6f3f2bb8b --- /dev/null +++ b/repo/darwin/packages/upstream/ocamlify.0.0.1/url @@ -0,0 +1,2 @@ +archive: "http://forge.ocamlcore.org/frs/download.php/379/ocamlify-0.0.1.tar.gz" +checksum: "bcd97ad0f7203019019997197451dbf0" diff --git a/repo/darwin/packages/upstream/ocamlmod.0.0.8/descr b/repo/darwin/packages/upstream/ocamlmod.0.0.8/descr new file mode 100644 index 000000000..b15d3452c --- /dev/null +++ b/repo/darwin/packages/upstream/ocamlmod.0.0.8/descr @@ -0,0 +1 @@ +Generate OCaml modules from source files diff --git a/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml b/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml new file mode 100644 index 000000000..0d23853fc --- /dev/null +++ b/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml @@ -0,0 +1,7 @@ +open Printf + +let () = + let dir = Sys.argv.(1) in + (try Sys.chdir dir + with _ -> eprintf "Cannot change directory to %s\n%!" dir); + exit (Sys.command "ocaml setup.ml -uninstall") diff --git a/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install b/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install new file mode 100644 index 000000000..c6cfc2de5 --- /dev/null +++ b/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install @@ -0,0 +1,6 @@ +etc: [ + "setup.ml" + "setup.data" + "setup.log" + "_oasis_remove_.ml" +] diff --git a/repo/darwin/packages/upstream/ocamlmod.0.0.8/opam b/repo/darwin/packages/upstream/ocamlmod.0.0.8/opam new file mode 100644 index 000000000..11ff03d8d --- /dev/null +++ b/repo/darwin/packages/upstream/ocamlmod.0.0.8/opam @@ -0,0 +1,25 @@ +opam-version: "1.2" +maintainer: "opam-devel@lists.ocaml.org" +homepage: "https://forge.ocamlcore.org/projects/ocamlmod/" +bug-reports: "https://forge.ocamlcore.org/tracker/?group_id=244" +dev-repo: "darcs://https://forge.ocamlcore.org/anonscm/darcs/ocamlmod/ocamlmod" +authors: [ "Sylvain Le Gall" ] +license: "LGPL-2.1 with OCaml linking exception" +build: [ + ["ocaml" "setup.ml" "-configure" "--prefix" prefix] + ["ocaml" "setup.ml" "-build"] +] +install: ["ocaml" "setup.ml" "-install"] +remove: [ + ["ocaml" "%{etc}%/ocamlmod/_oasis_remove_.ml" "%{etc}%/ocamlmod"] +] +build-test: [ + ["ocaml" "setup.ml" "-configure" "--enable-tests"] + ["ocaml" "setup.ml" "-build"] + ["ocaml" "setup.ml" "-test"] +] +depends: [ + "ocamlfind" {build} + "ounit" {test & >= "2.0.0"} + "ocamlbuild" {build} +] diff --git a/repo/darwin/packages/upstream/ocamlmod.0.0.8/url b/repo/darwin/packages/upstream/ocamlmod.0.0.8/url new file mode 100644 index 000000000..8708b34e9 --- /dev/null +++ b/repo/darwin/packages/upstream/ocamlmod.0.0.8/url @@ -0,0 +1,2 @@ +archive: "https://forge.ocamlcore.org/frs/download.php/1544/ocamlmod-0.0.8.tar.gz" +checksum: "411e5b3f3321945fc53d9377a1a17f91" diff --git a/repo/darwin/packages/upstream/octavius.1.1.0/descr b/repo/darwin/packages/upstream/octavius.1.1.0/descr new file mode 100644 index 000000000..c02e30a7d --- /dev/null +++ b/repo/darwin/packages/upstream/octavius.1.1.0/descr @@ -0,0 +1,3 @@ +Ocamldoc comment syntax parser + +Octavius is a library to parse the `ocamldoc` comment syntax. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/octavius.1.1.0/opam b/repo/darwin/packages/upstream/octavius.1.1.0/opam new file mode 100644 index 000000000..e99df8600 --- /dev/null +++ b/repo/darwin/packages/upstream/octavius.1.1.0/opam @@ -0,0 +1,22 @@ +version: "1.1.0" +opam-version: "1.2" +name: "octavius" +maintainer: "leo@lpw25.net" +authors: [ "Leo White " ] +homepage: "https://github.com/ocaml-doc/octavius" +doc: "http://ocaml-doc.github.io/octavius/" +license: "ISC" +dev-repo: "http://github.com/ocaml-doc/octavius.git" +bug-reports: "https://github.com/ocaml-doc/octavius/issues" +tags: ["doc" "ocamldoc" "org:ocaml-doc"] + +available: [ ocaml-version >= "4.03.0"] +depends: [ + "ocamlfind" {build} + "jbuilder" {build} + "topkg" {build & >= "0.7.5"} ] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] diff --git a/repo/darwin/packages/upstream/octavius.1.1.0/url b/repo/darwin/packages/upstream/octavius.1.1.0/url new file mode 100644 index 000000000..0b5dd149c --- /dev/null +++ b/repo/darwin/packages/upstream/octavius.1.1.0/url @@ -0,0 +1,2 @@ +archive: "http://github.com/ocaml-doc/octavius/releases/download/v1.1.0/octavius-1.1.0.tbz" +checksum: "20824624d9b2a9b8026a3ac9f83d4487" diff --git a/repo/darwin/packages/upstream/ounit.2.0.0/findlib b/repo/darwin/packages/upstream/ounit.2.0.0/findlib deleted file mode 100644 index fd2287441..000000000 --- a/repo/darwin/packages/upstream/ounit.2.0.0/findlib +++ /dev/null @@ -1,2 +0,0 @@ -oUnit -ounit diff --git a/repo/darwin/packages/upstream/ounit.2.0.0/opam b/repo/darwin/packages/upstream/ounit.2.0.0/opam index ab2901afd..1b8738bbc 100644 --- a/repo/darwin/packages/upstream/ounit.2.0.0/opam +++ b/repo/darwin/packages/upstream/ounit.2.0.0/opam @@ -1,5 +1,5 @@ opam-version: "1.2" -maintainer: "contact@ocamlpro.com" +maintainer: "https://github.com/ocaml/opam-repository/issues" homepage: "http://ounit.forge.ocamlcore.org" doc: ["http://ounit.forge.ocamlcore.org/api-ounit/index.html"] build: [make "build"] diff --git a/repo/darwin/packages/upstream/ppx_base.v0.9.0/descr b/repo/darwin/packages/upstream/ppx_base.v0.9.0/descr new file mode 100644 index 000000000..ebd7cc108 --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_base.v0.9.0/descr @@ -0,0 +1,6 @@ +Base set of ppx rewriters + +ppx_base is the set of ppx rewriters used for Base. + +Note that Base doesn't need ppx to build, it is only used as a +verification tool. diff --git a/repo/darwin/packages/upstream/ppx_base.v0.9.0/opam b/repo/darwin/packages/upstream/ppx_base.v0.9.0/opam new file mode 100644 index 000000000..0c80ad27b --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_base.v0.9.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/ppx_base" +bug-reports: "https://github.com/janestreet/ppx_base/issues" +dev-repo: "https://github.com/janestreet/ppx_base.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "--only-packages" "ppx_base" "--root" "." "-j" jobs "@install"] +] +depends: [ + "jbuilder" {build & >= "1.0+beta4"} + "ppx_compare" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "ppx_enumerate" {>= "v0.9" & < "v0.10"} + "ppx_hash" {>= "v0.9" & < "v0.10"} + "ppx_js_style" {>= "v0.9" & < "v0.10"} + "ppx_sexp_conv" {>= "v0.9" & < "v0.10"} + "ppx_type_conv" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/ppx_base.v0.9.0/url b/repo/darwin/packages/upstream/ppx_base.v0.9.0/url new file mode 100644 index 000000000..aafe1bb99 --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_base.v0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://ocaml.janestreet.com/ocaml-core/v0.9/files/ppx_base-v0.9.0.tar.gz" +checksum: "1f9a464a64ddad32005112994459a3e7" diff --git a/repo/darwin/packages/upstream/ppx_compare.v0.9.0/descr b/repo/darwin/packages/upstream/ppx_compare.v0.9.0/descr new file mode 100644 index 000000000..3e6cb15b9 --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_compare.v0.9.0/descr @@ -0,0 +1,3 @@ +Generation of comparison functions from types + +Part of the Jane Street's PPX rewriters collection. diff --git a/repo/darwin/packages/upstream/ppx_compare.v0.9.0/opam b/repo/darwin/packages/upstream/ppx_compare.v0.9.0/opam new file mode 100644 index 000000000..a3fdc5fcb --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_compare.v0.9.0/opam @@ -0,0 +1,20 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/ppx_compare" +bug-reports: "https://github.com/janestreet/ppx_compare/issues" +dev-repo: "https://github.com/janestreet/ppx_compare.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "--only-packages" "ppx_compare" "--root" "." "-j" jobs "@install"] +] +depends: [ + "base" {>= "v0.9" & < "v0.10"} + "jbuilder" {build & >= "1.0+beta4"} + "ppx_core" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "ppx_metaquot" {>= "v0.9" & < "v0.10"} + "ppx_type_conv" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/ppx_compare.v0.9.0/url b/repo/darwin/packages/upstream/ppx_compare.v0.9.0/url new file mode 100644 index 000000000..0416c014a --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_compare.v0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://ocaml.janestreet.com/ocaml-core/v0.9/files/ppx_compare-v0.9.0.tar.gz" +checksum: "0ba4d7bb540cddafa73919100e7e89d8" diff --git a/repo/darwin/packages/upstream/ppx_cstruct.0/descr b/repo/darwin/packages/upstream/ppx_cstruct.0/descr deleted file mode 100644 index 457063813..000000000 --- a/repo/darwin/packages/upstream/ppx_cstruct.0/descr +++ /dev/null @@ -1,4 +0,0 @@ -Access C-like structures directly from OCaml - -This is a dummy package to facilitate the migration to cstruct 3.0.0, -where several package were split out of the main Cstruct package. diff --git a/repo/darwin/packages/upstream/ppx_cstruct.3.1.1/descr b/repo/darwin/packages/upstream/ppx_cstruct.3.1.1/descr new file mode 100644 index 000000000..04ad3d2ec --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_cstruct.3.1.1/descr @@ -0,0 +1,5 @@ +Access C-like structures directly from OCaml + +Cstruct is a library and syntax extension to make it easier to access C-like +structures directly from OCaml. It supports both reading and writing to these +structures, and they are accessed via the `Bigarray` module. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/ppx_cstruct.3.1.1/opam b/repo/darwin/packages/upstream/ppx_cstruct.3.1.1/opam new file mode 100644 index 000000000..fbbd17c63 --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_cstruct.3.1.1/opam @@ -0,0 +1,28 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire" + "Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott" + "Mindy Preston" "Thomas Leonard" ] +homepage: "https://github.com/mirage/ocaml-cstruct" +license: "ISC" +dev-repo: "https://github.com/mirage/ocaml-cstruct.git" +bug-reports: "https://github.com/mirage/ocaml-cstruct/issues" +tags: [ "org:mirage" "org:ocamllabs" ] +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: [ + ["jbuilder" "runtest" "-p" name "-j" jobs] +] +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "cstruct" {>="3.1.1"} + "ounit" {test} + "ppx_tools_versioned" {>="5.0.1"} + "ocaml-migrate-parsetree" + "ppx_driver" {test & >= "v0.9.0"} + "ppx_sexp_conv" {test} + "cstruct-unix" {test} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/ppx_cstruct.3.1.1/url b/repo/darwin/packages/upstream/ppx_cstruct.3.1.1/url new file mode 100644 index 000000000..e8888b702 --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_cstruct.3.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cstruct/releases/download/v3.1.1/cstruct-3.1.1.tbz" +checksum: "9834ebf3e161ae62577962332b544c24" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/descr b/repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/descr new file mode 100644 index 000000000..2bf436566 --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/descr @@ -0,0 +1,3 @@ +Generate a list containing all values of a finite type + +Part of the Jane Street's PPX rewriters collection. diff --git a/repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/opam b/repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/opam new file mode 100644 index 000000000..68d8deff0 --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/ppx_enumerate" +bug-reports: "https://github.com/janestreet/ppx_enumerate/issues" +dev-repo: "https://github.com/janestreet/ppx_enumerate.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "--only-packages" "ppx_enumerate" "--root" "." "-j" jobs "@install"] +] +depends: [ + "jbuilder" {build & >= "1.0+beta4"} + "ppx_core" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "ppx_metaquot" {>= "v0.9" & < "v0.10"} + "ppx_type_conv" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/url b/repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/url new file mode 100644 index 000000000..0f8003959 --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_enumerate.v0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://ocaml.janestreet.com/ocaml-core/v0.9/files/ppx_enumerate-v0.9.0.tar.gz" +checksum: "90811868e565b71bb432fd2625ec047e" diff --git a/repo/darwin/packages/upstream/ppx_hash.v0.9.0/descr b/repo/darwin/packages/upstream/ppx_hash.v0.9.0/descr new file mode 100644 index 000000000..f43f3d35e --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_hash.v0.9.0/descr @@ -0,0 +1,3 @@ +A ppx rewriter that generates hash functions from type expressions and definitions + +Part of the Jane Street's PPX rewriters collection. diff --git a/repo/darwin/packages/upstream/ppx_hash.v0.9.0/opam b/repo/darwin/packages/upstream/ppx_hash.v0.9.0/opam new file mode 100644 index 000000000..903862d1f --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_hash.v0.9.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/ppx_hash" +bug-reports: "https://github.com/janestreet/ppx_hash/issues" +dev-repo: "https://github.com/janestreet/ppx_hash.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "--only-packages" "ppx_hash" "--root" "." "-j" jobs "@install"] +] +depends: [ + "base" {>= "v0.9" & < "v0.10"} + "jbuilder" {build & >= "1.0+beta4"} + "ppx_compare" {>= "v0.9" & < "v0.10"} + "ppx_core" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "ppx_metaquot" {>= "v0.9" & < "v0.10"} + "ppx_sexp_conv" {>= "v0.9" & < "v0.10"} + "ppx_type_conv" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/ppx_hash.v0.9.0/url b/repo/darwin/packages/upstream/ppx_hash.v0.9.0/url new file mode 100644 index 000000000..27a07ecbc --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_hash.v0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://ocaml.janestreet.com/ocaml-core/v0.9/files/ppx_hash-v0.9.0.tar.gz" +checksum: "44b6a5acdd7eabe11348499f4ef2a054" diff --git a/repo/darwin/packages/upstream/ppx_js_style.v0.9.0/descr b/repo/darwin/packages/upstream/ppx_js_style.v0.9.0/descr new file mode 100644 index 000000000..b72167a4f --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_js_style.v0.9.0/descr @@ -0,0 +1,6 @@ +Code style checker for Jane Street Packages + +Part of the Jane Street's PPX rewriters collection. + +This packages is a no-op ppx rewriter. It is used as a 'lint' tool to +enforce some coding conventions across all Jane Street packages. diff --git a/repo/darwin/packages/upstream/ppx_js_style.v0.9.0/opam b/repo/darwin/packages/upstream/ppx_js_style.v0.9.0/opam new file mode 100644 index 000000000..ba1a42eeb --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_js_style.v0.9.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/ppx_js_style" +bug-reports: "https://github.com/janestreet/ppx_js_style/issues" +dev-repo: "https://github.com/janestreet/ppx_js_style.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "--only-packages" "ppx_js_style" "--root" "." "-j" jobs "@install"] +] +depends: [ + "jbuilder" {build & >= "1.0+beta4"} + "ppx_core" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "ppx_metaquot" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} + "octavius" +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/ppx_js_style.v0.9.0/url b/repo/darwin/packages/upstream/ppx_js_style.v0.9.0/url new file mode 100644 index 000000000..aa8414747 --- /dev/null +++ b/repo/darwin/packages/upstream/ppx_js_style.v0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://ocaml.janestreet.com/ocaml-core/v0.9/files/ppx_js_style-v0.9.0.tar.gz" +checksum: "ad32e85a819693153dd7115e7025b7ef" diff --git a/repo/darwin/packages/upstream/ppx_tools.5.0+4.03.0/findlib b/repo/darwin/packages/upstream/ppx_tools.5.0+4.03.0/findlib deleted file mode 100644 index 52adf05be..000000000 --- a/repo/darwin/packages/upstream/ppx_tools.5.0+4.03.0/findlib +++ /dev/null @@ -1 +0,0 @@ -ppx_tools diff --git a/repo/darwin/packages/upstream/prometheus.0.3/descr b/repo/darwin/packages/upstream/prometheus.0.3/descr new file mode 100644 index 000000000..903f33b16 --- /dev/null +++ b/repo/darwin/packages/upstream/prometheus.0.3/descr @@ -0,0 +1,72 @@ +Client library for Prometheus monitoring + +To run services reliably, it is useful if they can report various metrics +(for example, heap size, queue lengths, number of warnings logged, etc). + +A monitoring service can be configured to collect this data regularly. +The data can be graphed to help understand the performance of the service over time, +or to help debug problems quickly. +It can also be used to send alerts if a service is down or behaving poorly. + +This repository contains code to report metrics to a [Prometheus][] monitoring server. + +### Use by libraries + +Library authors should define a set of metrics that may be useful. For example, the DataKitCI +cache module defines several metrics like this: + +```ocaml +module Metrics = struct + open Prometheus + + let namespace = "DataKitCI" + let subsystem = "cache" + + let builds_started_total = + let help = "Total number of builds started" in + Counter.v_label ~help ~label_name:"name" ~namespace ~subsystem "builds_started_total" + + let builds_succeeded_total = + let help = "Total number of builds that succeeded" in + Counter.v_label ~help ~label_name:"name" ~namespace ~subsystem "builds_succeeded_total" + + let builds_failed_total = + let help = "Total number of builds that failed" in + Counter.v_label ~help ~label_name:"name" ~namespace ~subsystem "builds_failed_total" + + [...] +end +``` + +Each of these metrics has a `name` label, which allows the reports to be further broken down +by the type of thing being built. + +When (for example) a build succeeds, the CI does: + +```ocaml +Prometheus.Counter.inc_one (Metrics.builds_succeeded_total build_type) +``` + +### Use by applications + +Applications can enable metric reporting using the `prometheus-app` opam package. +This depends on cohttp and can serve the metrics collected above over HTTP. + +The `prometheus-app.unix` ocamlfind library provides the `Prometheus_unix` module, +which includes a cmdliner option and pre-configured web-server. +See the `examples/example.ml` program for an example, which can be run as: + +```shell +$ ./_build/examples/example.native --listen-prometheus=9090 +If run with the option --listen-prometheus=9090, this program serves metrics at +http://localhost:9090/metrics +Tick! +Tick! +... +``` + +Unikernels can use `Prometheus_app` instead of `Prometheus_unix` to avoid the `Unix` dependency. + +### API docs + +Generated API documentation is available at . \ No newline at end of file diff --git a/repo/darwin/packages/upstream/prometheus.0.3/opam b/repo/darwin/packages/upstream/prometheus.0.3/opam new file mode 100644 index 000000000..6fc5c3194 --- /dev/null +++ b/repo/darwin/packages/upstream/prometheus.0.3/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "datakit@docker.com" +authors: ["Thomas Leonard" "David Scott"] +license: "Apache" +homepage: "https://github.com/mirage/prometheus" +bug-reports: "https://github.com/mirage/prometheus/issues" +dev-repo: "https://github.com/mirage/prometheus.git" +doc: "https://mirage.github.io/prometheus/" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "astring" + "asetmap" + "fmt" + "re" + "lwt" {>="2.5.0"} + "alcotest" {test} +] +available: [ocaml-version >= "4.01.0"] diff --git a/repo/darwin/packages/upstream/prometheus.0.3/url b/repo/darwin/packages/upstream/prometheus.0.3/url new file mode 100644 index 000000000..cce5118b0 --- /dev/null +++ b/repo/darwin/packages/upstream/prometheus.0.3/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/prometheus/releases/download/v0.3/prometheus-0.3.tbz" +checksum: "dcf7cf2cb603d350bfa401ac82c8bff1" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/protocol-9p-unix.0.11.2/descr b/repo/darwin/packages/upstream/protocol-9p-unix.0.11.2/descr new file mode 100644 index 000000000..da39175fd --- /dev/null +++ b/repo/darwin/packages/upstream/protocol-9p-unix.0.11.2/descr @@ -0,0 +1,2 @@ +Unix clients and servers for the 9P protocol + diff --git a/repo/darwin/packages/upstream/protocol-9p.0.8.0/opam b/repo/darwin/packages/upstream/protocol-9p-unix.0.11.2/opam similarity index 54% rename from repo/darwin/packages/upstream/protocol-9p.0.8.0/opam rename to repo/darwin/packages/upstream/protocol-9p-unix.0.11.2/opam index 30392d0cb..c2d9358a9 100644 --- a/repo/darwin/packages/upstream/protocol-9p.0.8.0/opam +++ b/repo/darwin/packages/upstream/protocol-9p-unix.0.11.2/opam @@ -7,24 +7,25 @@ dev-repo: "https://github.com/mirage/ocaml-9p.git" bug-reports: "https://github.com/mirage/ocaml-9p/issues" doc: "https://mirage.github.io/ocaml-9p/" -build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" - "--with-lambda-term" "%{lambda-term:installed}%"] - -build-test: [ - ["ocaml" "pkg/pkg.ml" "build" "--tests" "true" - "--with-lambda-term" "%{lambda-term:installed}%"] - ["ocaml" "pkg/pkg.ml" "test"] +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] ] - depends: [ + "jbuilder" {build & >="1.0+beta10"} + "protocol-9p" {= "0.11.2"} + "io-page-unix" {>= "2.0.0"} "base-bytes" - "cstruct" {>= "1.9.0"} - "cstruct-lwt" - "sexplib" {> "113.00.00"} + "cstruct" {>= "3.0.0"} + "cstruct-lwt" {>= "3.0.0"} + "sexplib" {> "113.00.00" } + "prometheus" "result" - "mirage-types-lwt" - "channel" {>= "1.1.0"} - "lwt" {>= "2.4.7" & < "3.0.0"} + "rresult" + "mirage-flow-lwt" + "mirage-kv-lwt" + "mirage-channel-lwt" + "lwt" {>= "3.0.0"} "base-unix" "cmdliner" "astring" @@ -34,12 +35,7 @@ depends: [ "win-error" "ppx_deriving" {build} "ppx_sexp_conv" {build} - "ocamlfind" {build} - "ocamlbuild" {build} "ppx_tools" {build} - "topkg" {build & >= "0.7.3"} "alcotest" {test & >= "0.4.0"} - "ppx_cstruct" ] -depopts: ["lambda-term"] available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/protocol-9p-unix.0.11.2/url b/repo/darwin/packages/upstream/protocol-9p-unix.0.11.2/url new file mode 100644 index 000000000..a91e34b80 --- /dev/null +++ b/repo/darwin/packages/upstream/protocol-9p-unix.0.11.2/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-9p/releases/download/v0.11.2/protocol-9p-0.11.2.tbz" +checksum: "013a43f71feead2b7200b308487d5702" diff --git a/repo/darwin/packages/upstream/protocol-9p.0.8.0/descr b/repo/darwin/packages/upstream/protocol-9p.0.11.2/descr similarity index 92% rename from repo/darwin/packages/upstream/protocol-9p.0.8.0/descr rename to repo/darwin/packages/upstream/protocol-9p.0.11.2/descr index 709fb5dbd..ff183e67a 100644 --- a/repo/darwin/packages/upstream/protocol-9p.0.8.0/descr +++ b/repo/darwin/packages/upstream/protocol-9p.0.11.2/descr @@ -1,4 +1,4 @@ -An implementation of the 9p protocol in pure OCaml +An implementation of the 9P protocol in pure OCaml [![Build Status](https://travis-ci.org/mirage/ocaml-9p.png?branch=master)](https://travis-ci.org/mirage/ocaml-9p) [![Coverage Status](https://coveralls.io/repos/mirage/ocaml-9p/badge.png?branch=master)](https://coveralls.io/r/mirage/ocaml-9p?branch=master) @@ -23,4 +23,4 @@ drwxrwxr-x ? root 50 4096 Apr 10 2014 local -rwxrwxrwx ? root root 4 May 10 2014 run ``` -This library supports the [9P2000.u extension](http://ericvh.github.io/9p-rfc/rfc9p2000.u.html) \ No newline at end of file +This library supports the [9P2000.u extension](http://ericvh.github.io/9p-rfc/rfc9p2000.u.html) diff --git a/repo/win32/packages/upstream/protocol-9p.0.8.0/opam b/repo/darwin/packages/upstream/protocol-9p.0.11.2/opam similarity index 54% rename from repo/win32/packages/upstream/protocol-9p.0.8.0/opam rename to repo/darwin/packages/upstream/protocol-9p.0.11.2/opam index 30392d0cb..6380efb24 100644 --- a/repo/win32/packages/upstream/protocol-9p.0.8.0/opam +++ b/repo/darwin/packages/upstream/protocol-9p.0.11.2/opam @@ -7,24 +7,22 @@ dev-repo: "https://github.com/mirage/ocaml-9p.git" bug-reports: "https://github.com/mirage/ocaml-9p/issues" doc: "https://mirage.github.io/ocaml-9p/" -build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" - "--with-lambda-term" "%{lambda-term:installed}%"] - -build-test: [ - ["ocaml" "pkg/pkg.ml" "build" "--tests" "true" - "--with-lambda-term" "%{lambda-term:installed}%"] - ["ocaml" "pkg/pkg.ml" "test"] +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] ] - depends: [ + "jbuilder" {build & >="1.0+beta10"} "base-bytes" - "cstruct" {>= "1.9.0"} - "cstruct-lwt" - "sexplib" {> "113.00.00"} + "cstruct" {>= "3.0.0"} + "cstruct-lwt" {>= "3.0.0"} + "sexplib" {> "113.00.00" } "result" - "mirage-types-lwt" - "channel" {>= "1.1.0"} - "lwt" {>= "2.4.7" & < "3.0.0"} + "rresult" + "mirage-flow-lwt" + "mirage-kv-lwt" + "mirage-channel-lwt" + "lwt" {>= "3.0.0"} "base-unix" "cmdliner" "astring" @@ -34,12 +32,7 @@ depends: [ "win-error" "ppx_deriving" {build} "ppx_sexp_conv" {build} - "ocamlfind" {build} - "ocamlbuild" {build} "ppx_tools" {build} - "topkg" {build & >= "0.7.3"} "alcotest" {test & >= "0.4.0"} - "ppx_cstruct" ] -depopts: ["lambda-term"] available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/protocol-9p.0.11.2/url b/repo/darwin/packages/upstream/protocol-9p.0.11.2/url new file mode 100644 index 000000000..a91e34b80 --- /dev/null +++ b/repo/darwin/packages/upstream/protocol-9p.0.11.2/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-9p/releases/download/v0.11.2/protocol-9p-0.11.2.tbz" +checksum: "013a43f71feead2b7200b308487d5702" diff --git a/repo/darwin/packages/upstream/protocol-9p.0.8.0/url b/repo/darwin/packages/upstream/protocol-9p.0.8.0/url deleted file mode 100644 index ff7baa574..000000000 --- a/repo/darwin/packages/upstream/protocol-9p.0.8.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-9p/releases/download/v0.8.0/protocol-9p-0.8.0.tbz" -checksum: "2576040bdd1fba3d9dc7249d5fd8d5b7" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/ptime.0.8.3/descr b/repo/darwin/packages/upstream/ptime.0.8.3/descr new file mode 100644 index 000000000..f77827c8d --- /dev/null +++ b/repo/darwin/packages/upstream/ptime.0.8.3/descr @@ -0,0 +1,20 @@ +POSIX time for OCaml + +Ptime has platform independent POSIX time support in pure OCaml. It +provides a type to represent a well-defined range of POSIX timestamps +with picosecond precision, conversion with date-time values, +conversion with [RFC 3339 timestamps][rfc3339] and pretty printing to a +human-readable, locale-independent representation. + +The additional Ptime_clock library provides access to a system POSIX +clock and to the system's current time zone offset. + +Ptime is not a calendar library. + +Ptime depends on the `result` compatibility package. Ptime_clock +depends on your system library. Ptime_clock's optional JavaScript +support depends on [js_of_ocaml][jsoo]. Ptime and its libraries are +distributed under the ISC license. + +[rfc3339]: http://tools.ietf.org/html/rfc3339 +[jsoo]: http://ocsigen.org/js_of_ocaml/ diff --git a/repo/darwin/packages/upstream/ptime.0.8.3/opam b/repo/darwin/packages/upstream/ptime.0.8.3/opam new file mode 100644 index 000000000..b34f28961 --- /dev/null +++ b/repo/darwin/packages/upstream/ptime.0.8.3/opam @@ -0,0 +1,21 @@ +opam-version: "1.2" +maintainer: "Daniel Bünzli " +authors: ["Daniel Bünzli "] +homepage: "http://erratique.ch/software/ptime" +doc: "http://erratique.ch/software/ptime/doc" +dev-repo: "http://erratique.ch/repos/ptime.git" +bug-reports: "https://github.com/dbuenzli/ptime/issues" +tags: [ "time" "posix" "system" "org:erratique" ] +license: "ISC" +available: [ ocaml-version >= "4.01.0"] +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "result" +] +depopts: [ "js_of_ocaml" ] +build:[[ + "ocaml" "pkg/pkg.ml" "build" + "--pinned" "%{pinned}%" + "--with-js_of_ocaml" "%{js_of_ocaml:installed}%" ]] diff --git a/repo/darwin/packages/upstream/ptime.0.8.3/url b/repo/darwin/packages/upstream/ptime.0.8.3/url new file mode 100644 index 000000000..0043089e1 --- /dev/null +++ b/repo/darwin/packages/upstream/ptime.0.8.3/url @@ -0,0 +1,2 @@ +archive: "http://erratique.ch/software/ptime/releases/ptime-0.8.3.tbz" +checksum: "bf84f6bfedce30349cffc9eb52ac7574" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/qcheck.0.5.3.1/url b/repo/darwin/packages/upstream/qcheck.0.5.3.1/url deleted file mode 100644 index 1b4c09604..000000000 --- a/repo/darwin/packages/upstream/qcheck.0.5.3.1/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/c-cube/qcheck/archive/0.5.3.1.tar.gz" -checksum: "9e79548354aea199a521b3c3986f1702" diff --git a/repo/darwin/packages/upstream/qcheck.0.5.3.1/descr b/repo/darwin/packages/upstream/qcheck.0.6/descr similarity index 100% rename from repo/darwin/packages/upstream/qcheck.0.5.3.1/descr rename to repo/darwin/packages/upstream/qcheck.0.6/descr diff --git a/repo/darwin/packages/upstream/qcheck.0.5.3.1/opam b/repo/darwin/packages/upstream/qcheck.0.6/opam similarity index 100% rename from repo/darwin/packages/upstream/qcheck.0.5.3.1/opam rename to repo/darwin/packages/upstream/qcheck.0.6/opam diff --git a/repo/darwin/packages/upstream/qcheck.0.6/url b/repo/darwin/packages/upstream/qcheck.0.6/url new file mode 100644 index 000000000..ee5dc9412 --- /dev/null +++ b/repo/darwin/packages/upstream/qcheck.0.6/url @@ -0,0 +1,2 @@ +http: "https://github.com/c-cube/qcheck/archive/0.6.tar.gz" +checksum: "817a76f18bf41d59a7254f69f0803cb1" diff --git a/repo/darwin/packages/upstream/randomconv.0.1.0/descr b/repo/darwin/packages/upstream/randomconv.0.1.0/descr new file mode 100644 index 000000000..0cb76a05a --- /dev/null +++ b/repo/darwin/packages/upstream/randomconv.0.1.0/descr @@ -0,0 +1,5 @@ +Convert from random bytes to random native numbers + + +Given a function which produces random byte vectors, convert it to +a number of your choice (int32/int64/int/float). \ No newline at end of file diff --git a/repo/darwin/packages/upstream/randomconv.0.1.0/opam b/repo/darwin/packages/upstream/randomconv.0.1.0/opam new file mode 100644 index 000000000..541ff2c44 --- /dev/null +++ b/repo/darwin/packages/upstream/randomconv.0.1.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "Hannes Mehnert " +authors: ["Hannes Mehnert "] +homepage: "https://github.com/hannesm/randomconv" +doc: "https://hannesm.github.io/randomconv/doc" +dev-repo: "https://github.com/hannesm/randomconv.git" +bug-reports: "https://github.com/hannesm/randomconv/issues" +license: "ISC" + +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "cstruct" {>= "1.9.0"} +] + +build: [ + [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" ] +] diff --git a/repo/darwin/packages/upstream/randomconv.0.1.0/url b/repo/darwin/packages/upstream/randomconv.0.1.0/url new file mode 100644 index 000000000..d5a8d7109 --- /dev/null +++ b/repo/darwin/packages/upstream/randomconv.0.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/hannesm/randomconv/releases/download/0.1.0/randomconv-0.1.0.tbz" +checksum: "1551a69a7511de81f2ca6c3fe7d262c8" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/sexplib.v0.9.1/url b/repo/darwin/packages/upstream/sexplib.v0.9.1/url deleted file mode 100644 index 96121399d..000000000 --- a/repo/darwin/packages/upstream/sexplib.v0.9.1/url +++ /dev/null @@ -1,2 +0,0 @@ -src: "https://github.com/janestreet/sexplib/archive/v0.9.1.tar.gz" -checksum: "2e820b5de70ba33883c936cd7af317fb" diff --git a/repo/darwin/packages/upstream/sexplib.v0.9.1/descr b/repo/darwin/packages/upstream/sexplib.v0.9.2/descr similarity index 100% rename from repo/darwin/packages/upstream/sexplib.v0.9.1/descr rename to repo/darwin/packages/upstream/sexplib.v0.9.2/descr diff --git a/repo/darwin/packages/upstream/sexplib.v0.9.1/opam b/repo/darwin/packages/upstream/sexplib.v0.9.2/opam similarity index 75% rename from repo/darwin/packages/upstream/sexplib.v0.9.1/opam rename to repo/darwin/packages/upstream/sexplib.v0.9.2/opam index f22ff5b73..2ca758482 100644 --- a/repo/darwin/packages/upstream/sexplib.v0.9.1/opam +++ b/repo/darwin/packages/upstream/sexplib.v0.9.2/opam @@ -6,9 +6,11 @@ bug-reports: "https://github.com/janestreet/sexplib/issues" dev-repo: "https://github.com/janestreet/sexplib.git" license: "Apache-2.0" build: [ - ["jbuilder" "build" "--only-packages" "sexplib" "--root" "." "-j" jobs "@install"] + ["jbuilder" "build" "-p" name "-j" jobs] ] depends: [ - "jbuilder" {build & >= "1.0+beta2"} + "jbuilder" {build & >= "1.0+beta10"} + "num" ] + available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/sexplib.v0.9.2/url b/repo/darwin/packages/upstream/sexplib.v0.9.2/url new file mode 100644 index 000000000..ac4e8f42e --- /dev/null +++ b/repo/darwin/packages/upstream/sexplib.v0.9.2/url @@ -0,0 +1,2 @@ +http: "https://github.com/janestreet/sexplib/archive/v0.9.2.tar.gz" +checksum: "7d70f28d235a0ce28a57a5a2bf856326" diff --git a/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/descr b/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/descr deleted file mode 100644 index d6a9c6424..000000000 --- a/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/descr +++ /dev/null @@ -1,3 +0,0 @@ -Shared memory rings for RPC and bytestream communications. -Includes concrete implementations of Xen console and Xenstore -rings. diff --git a/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/findlib b/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/findlib deleted file mode 100644 index 8144a99ad..000000000 --- a/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/findlib +++ /dev/null @@ -1 +0,0 @@ -shared-memory-ring diff --git a/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/opam b/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/opam deleted file mode 100644 index 7935dc75b..000000000 --- a/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/opam +++ /dev/null @@ -1,26 +0,0 @@ -opam-version: "1.2" -maintainer: "dave@recoil.org" -authors: ["Anil Madhavapeddy" "David Scott"] -homepage: "https://github.com/mirage/shared-memory-ring" -bug-reports: "https://github.com/mirage/shared-memory-ring/issues" -dev-repo: "https://github.com/mirage/shared-memory-ring.git" -license: "ISC" -tags: [ "org:mirage" "org:xapi-project"] - -build: [make "CONFIGUREFLAGS=--disable-tests" "all"] -build-test: [ - [make "clean"] - [make "CONFIGUREFLAGS=--enable-tests" "test"] -] -install: [make "install"] -remove: ["ocamlfind" "remove" "shared-memory-ring"] - -depends: [ - "cstruct" {>= "1.9.0"} - "ppx_tools" - "lwt" - "ocamlfind" - "mirage-profile" - "ounit" {test} -] -available: [ ocaml-version >= "4.02.0" ] diff --git a/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/url b/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/url deleted file mode 100644 index 17f909704..000000000 --- a/repo/darwin/packages/upstream/shared-memory-ring.1.3.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/shared-memory-ring/archive/v1.3.0.tar.gz" -checksum: "63821f20ad503ec81b27213806afb082" diff --git a/repo/darwin/packages/upstream/tar-format.0.6.1/descr b/repo/darwin/packages/upstream/tar-format.0.6.1/descr deleted file mode 100644 index 4a3f873a8..000000000 --- a/repo/darwin/packages/upstream/tar-format.0.6.1/descr +++ /dev/null @@ -1,8 +0,0 @@ -A pure OCaml library to read and write tar files - -This allows easy processing of tar-formatted data: creating archives, -listing archives and extracting archives. Together with camlzip, it can -directly process compressed .tar.gz archives. - -A mirage interface is also provided which exposes a tar-formatted block -device as a read-only key=value store. diff --git a/repo/darwin/packages/upstream/tar-format.0.6.1/findlib b/repo/darwin/packages/upstream/tar-format.0.6.1/findlib deleted file mode 100644 index 42f2fb726..000000000 --- a/repo/darwin/packages/upstream/tar-format.0.6.1/findlib +++ /dev/null @@ -1 +0,0 @@ -tar diff --git a/repo/darwin/packages/upstream/tar-format.0.6.1/opam b/repo/darwin/packages/upstream/tar-format.0.6.1/opam deleted file mode 100644 index a93edbaea..000000000 --- a/repo/darwin/packages/upstream/tar-format.0.6.1/opam +++ /dev/null @@ -1,37 +0,0 @@ -opam-version: "1.2" -maintainer: "dave@recoil.org" -authors: [ "Dave Scott" "Thomas Gazagnaire" "David Allsopp" ] -tags: ["org:xapi-project" "org:mirage"] -homepage: "https://github.com/mirage/ocaml-tar" -bug-reports: "https://github.com/mirage/ocaml-tar/issues" -dev-repo: "https://github.com/mirage/ocaml-tar.git" - -build: [ - ["ocaml" "setup.ml" "-configure" - "--prefix" prefix - "--%{lwt:enable}%-lwtunix" - "--%{mirage-types-lwt:enable}%-mirage" ] - ["ocaml" "setup.ml" "-build"] -] -build-test: [ - ["ocaml" "setup.ml" "-configure" - "--enable-tests" "--enable-lwtunix" "--enable-mirage"] - [make "test"] -] -install: ["ocaml" "setup.ml" "-install"] -remove: ["ocamlfind" "remove" "tar"] - -depends: [ - "ocamlfind" - "cstruct" {>= "1.9.0"} - "ppx_cstruct" {build} - "re" - "result" - "cmdliner" - "ounit" {test} - "mirage-block-unix" {test} - "lwt" {test} - "mirage-types-lwt" {test} -] -depopts: ["lwt" "mirage-types-lwt"] -available: [ ocaml-version >= "4.01.0" ] diff --git a/repo/darwin/packages/upstream/tar-format.0.6.1/url b/repo/darwin/packages/upstream/tar-format.0.6.1/url deleted file mode 100644 index de007e9ec..000000000 --- a/repo/darwin/packages/upstream/tar-format.0.6.1/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-tar/archive/v0.6.1.tar.gz" -checksum: "bc6475a9ece5d914213e1d2275667418" diff --git a/repo/darwin/packages/upstream/tar.0.8.0/descr b/repo/darwin/packages/upstream/tar.0.8.0/descr new file mode 100644 index 000000000..cde18a33a --- /dev/null +++ b/repo/darwin/packages/upstream/tar.0.8.0/descr @@ -0,0 +1,6 @@ +Decode and encode tar formatted data + +tar-format is a simple library to read and write tar formatted data with an emphasis on +streaming. + +This is pure OCaml code, no C bindings. diff --git a/repo/darwin/packages/upstream/tar.0.8.0/opam b/repo/darwin/packages/upstream/tar.0.8.0/opam new file mode 100644 index 000000000..a25e8aee5 --- /dev/null +++ b/repo/darwin/packages/upstream/tar.0.8.0/opam @@ -0,0 +1,27 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: [ "Dave Scott" "Thomas Gazagnaire" "David Allsopp" ] +tags: ["org:xapi-project" "org:mirage"] +homepage: "https://github.com/mirage/ocaml-tar" +bug-reports: "https://github.com/mirage/ocaml-tar/issues" +dev-repo: "https://github.com/mirage/ocaml-tar.git" +doc: "https://mirage.github.io/ocaml-tar/" + +build: [ + [ "jbuilder" "build" "--only-packages=tar" ] +] + +build-test: [ + [ "jbuilder" "runtest" ] +] + +depends: [ + "jbuilder" {build} + "ocamlfind" {build} + "ppx_tools" {build} + "ppx_cstruct" {build} + "cstruct" {>= "1.9.0"} + "re" + "result" +] +available: [ ocaml-version >= "4.01.0" ] diff --git a/repo/darwin/packages/upstream/tar.0.8.0/url b/repo/darwin/packages/upstream/tar.0.8.0/url new file mode 100644 index 000000000..413f05989 --- /dev/null +++ b/repo/darwin/packages/upstream/tar.0.8.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-tar/archive/v0.8.0.tar.gz" +checksum: "bf7aefc14b7454a6e73be2fb47e6edd8" diff --git a/repo/darwin/packages/upstream/tls.0.8.0/descr b/repo/darwin/packages/upstream/tls.0.8.0/descr new file mode 100644 index 000000000..6b52ac617 --- /dev/null +++ b/repo/darwin/packages/upstream/tls.0.8.0/descr @@ -0,0 +1,15 @@ +Transport Layer Security purely in OCaml + +Transport Layer Security (TLS) is probably the most widely deployed security +protocol on the Internet. It provides communication privacy to prevent +eavesdropping, tampering, and message forgery. Furthermore, it optionally +provides authentication of the involved endpoints. TLS is commonly deployed for +securing web services ([HTTPS](http://tools.ietf.org/html/rfc2818)), emails, +virtual private networks, and wireless networks. + +TLS uses asymmetric cryptography to exchange a symmetric key, and optionally +authenticate (using X.509) either or both endpoints. It provides algorithmic +agility, which means that the key exchange method, symmetric encryption +algorithm, and hash algorithm are negotiated. + +Read [further](https://nqsb.io) and our [Usenix Security 2015 paper](https://usenix15.nqsb.io). \ No newline at end of file diff --git a/repo/darwin/packages/upstream/tls.0.8.0/opam b/repo/darwin/packages/upstream/tls.0.8.0/opam new file mode 100644 index 000000000..885801c41 --- /dev/null +++ b/repo/darwin/packages/upstream/tls.0.8.0/opam @@ -0,0 +1,55 @@ +opam-version: "1.2" +name: "tls" +homepage: "https://github.com/mirleft/ocaml-tls" +dev-repo: "https://github.com/mirleft/ocaml-tls.git" +bug-reports: "https://github.com/mirleft/ocaml-tls/issues" +doc: "https://mirleft.github.io/ocaml-tls/doc" +author: ["David Kaloper " "Hannes Mehnert "] +maintainer: ["Hannes Mehnert " "David Kaloper "] +license: "BSD2" + +build: [ + [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" + "--tests" "false" + "--with-lwt" "%{lwt:installed}%" + "--with-mirage" "%{mirage-flow-lwt+mirage-kv-lwt+mirage-clock:installed}%" ] +] +build-test: [ + [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" + "--tests" "true" + "--with-lwt" "%{lwt:installed}%" + "--with-mirage" "%{mirage-flow-lwt+mirage-kv-lwt+mirage-clock:installed}%" ] + ["ocaml" "pkg/pkg.ml" "test"] +] + +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "ppx_tools" {build} + "ppx_deriving" {build} + "ppx_sexp_conv" {build} + "result" + "ppx_cstruct" {build} + "cstruct" {>= "1.9.0"} + "sexplib" + "nocrypto" {>= "0.5.4"} + "x509" {>= "0.5.0"} + "ounit" {test} + "ptime" {>= "0.8.1"} (* only necessary for mirage subpackage, but unable to express this here *) +] +depopts: [ + "lwt" + "mirage-flow-lwt" + "mirage-kv-lwt" + "mirage-clock" +] +conflicts: [ + "lwt" {<"2.4.8"} + "mirage-net-xen" {<"1.3.0"} + "mirage-types" {<"3.0.0"} + "sexplib" {= "v0.9.0"} +] + +tags: [ "org:mirage"] +available: [ ocaml-version >= "4.02.2" ] diff --git a/repo/darwin/packages/upstream/tls.0.8.0/url b/repo/darwin/packages/upstream/tls.0.8.0/url new file mode 100644 index 000000000..2e5aa559a --- /dev/null +++ b/repo/darwin/packages/upstream/tls.0.8.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirleft/ocaml-tls/releases/download/0.8.0/tls-0.8.0.tbz" +checksum: "c81f72d53d0551a3d792d275a1ea095f" diff --git a/repo/darwin/packages/upstream/uchar.0.0.1/descr b/repo/darwin/packages/upstream/uchar.0.0.2/descr similarity index 100% rename from repo/darwin/packages/upstream/uchar.0.0.1/descr rename to repo/darwin/packages/upstream/uchar.0.0.2/descr diff --git a/repo/darwin/packages/upstream/uchar.0.0.1/opam b/repo/darwin/packages/upstream/uchar.0.0.2/opam similarity index 94% rename from repo/darwin/packages/upstream/uchar.0.0.1/opam rename to repo/darwin/packages/upstream/uchar.0.0.2/opam index 57db6a012..d73f08164 100644 --- a/repo/darwin/packages/upstream/uchar.0.0.1/opam +++ b/repo/darwin/packages/upstream/uchar.0.0.2/opam @@ -8,12 +8,10 @@ bug-reports: "https://github.com/ocaml/uchar/issues" tags: [ "text" "character" "unicode" "compatibility" "org:ocaml.org" ] license: "typeof OCaml system" available: [ ocaml-version >= "3.12.0" ] +depends: [ "ocamlbuild" {build} ] build: [ [ "ocaml" "pkg/git.ml" ] [ "ocaml" "pkg/build.ml" "native=%{ocaml-native}%" "native-dynlink=%{ocaml-native-dynlink}%"] ] -depends: [ - "ocamlbuild" {build} -] diff --git a/repo/darwin/packages/upstream/uchar.0.0.1/url b/repo/darwin/packages/upstream/uchar.0.0.2/url similarity index 50% rename from repo/darwin/packages/upstream/uchar.0.0.1/url rename to repo/darwin/packages/upstream/uchar.0.0.2/url index dcf0c3509..76614df6d 100644 --- a/repo/darwin/packages/upstream/uchar.0.0.1/url +++ b/repo/darwin/packages/upstream/uchar.0.0.2/url @@ -1,2 +1,2 @@ -archive: "https://github.com/ocaml/uchar/releases/download/v0.0.1/uchar-0.0.1.tbz" -checksum: "3a7e5de4c4f7f25f55d50693f92f1960" \ No newline at end of file +archive: "https://github.com/ocaml/uchar/releases/download/v0.0.2/uchar-0.0.2.tbz" +checksum: "c9ba2c738d264c420c642f7bb1cf4a36" diff --git a/repo/darwin/packages/upstream/uri.1.9.2/url b/repo/darwin/packages/upstream/uri.1.9.2/url deleted file mode 100644 index 29c191dce..000000000 --- a/repo/darwin/packages/upstream/uri.1.9.2/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-uri/archive/v1.9.2.tar.gz" -checksum: "e6dd39352b1b501cb905ef7d198d38f0" diff --git a/repo/darwin/packages/upstream/uri.1.9.2/descr b/repo/darwin/packages/upstream/uri.1.9.4/descr similarity index 100% rename from repo/darwin/packages/upstream/uri.1.9.2/descr rename to repo/darwin/packages/upstream/uri.1.9.4/descr diff --git a/repo/win32/packages/upstream/uri.1.9.2/opam b/repo/darwin/packages/upstream/uri.1.9.4/opam similarity index 51% rename from repo/win32/packages/upstream/uri.1.9.2/opam rename to repo/darwin/packages/upstream/uri.1.9.4/opam index a57fcf9e5..2d37a864e 100644 --- a/repo/win32/packages/upstream/uri.1.9.2/opam +++ b/repo/darwin/packages/upstream/uri.1.9.4/opam @@ -16,30 +16,18 @@ tags: [ "org:xapi-project" ] build: [ - ["ocaml" "setup.ml" "-configure" "--prefix" prefix "--%{ounit:enable}%-tests"] - ["ocaml" "setup.ml" "-build"] -] -install: [ - ["ocaml" "setup.ml" "-install"] -] -build-test: [ - ["ocaml" "setup.ml" "-test"] -] -build-doc: [ - ["ocaml" "setup.ml" "-doc"] -] -remove: [ - ["ocamlfind" "remove" "uri"] + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] ] +build-test: [ "jbuilder" "runtest" "-p" name "-j" jobs ] depends: [ + "base-bytes" "ocamlfind" {build} + "jbuilder" {build & >="1.0+beta7"} + "ounit" {test & >= "1.0.2"} + "ppx_sexp_conv" {build & >= "v0.9.0"} "re" - "sexplib" {>= "109.53.00"} - "ppx_deriving" {build} - "ppx_sexp_conv" {>= "113.33.01"} - "base-bytes" + "sexplib" {>= "v0.9.0"} "stringext" {>= "1.4.0"} - "ounit" {test & >= "1.0.2"} - "ocamlbuild" {build} ] -available: [ ocaml-version >= "4.02.2" ] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/darwin/packages/upstream/uri.1.9.4/url b/repo/darwin/packages/upstream/uri.1.9.4/url new file mode 100644 index 000000000..4f590885d --- /dev/null +++ b/repo/darwin/packages/upstream/uri.1.9.4/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/ocaml-uri/releases/download/v1.9.4/uri-1.9.4.tbz" +checksum: "3dae904cb930fbbb550f26babbf17c2f" diff --git a/repo/darwin/packages/upstream/uuidm.0.9.6/opam b/repo/darwin/packages/upstream/uuidm.0.9.6/opam index 076480329..ea5d4ef09 100644 --- a/repo/darwin/packages/upstream/uuidm.0.9.6/opam +++ b/repo/darwin/packages/upstream/uuidm.0.9.6/opam @@ -16,6 +16,7 @@ depends: [ depopts: [ "cmdliner" ] +conflicts: [ "cmdliner" {< "0.9.8"} ] build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" diff --git a/repo/darwin/packages/upstream/uwt.0.2.0/url b/repo/darwin/packages/upstream/uwt.0.2.0/url deleted file mode 100644 index 09b2e0380..000000000 --- a/repo/darwin/packages/upstream/uwt.0.2.0/url +++ /dev/null @@ -1,3 +0,0 @@ -http: - "https://github.com/fdopen/uwt/releases/download/0.2.0/uwt-0.2.0.tar.gz" -checksum: "b19c38e43593936028a20c22363e56eb" diff --git a/repo/darwin/packages/upstream/uwt.0.2.0/descr b/repo/darwin/packages/upstream/uwt.0.2.1/descr similarity index 100% rename from repo/darwin/packages/upstream/uwt.0.2.0/descr rename to repo/darwin/packages/upstream/uwt.0.2.1/descr diff --git a/repo/darwin/packages/upstream/uwt.0.2.0/opam b/repo/darwin/packages/upstream/uwt.0.2.1/opam similarity index 100% rename from repo/darwin/packages/upstream/uwt.0.2.0/opam rename to repo/darwin/packages/upstream/uwt.0.2.1/opam diff --git a/repo/darwin/packages/upstream/uwt.0.2.1/url b/repo/darwin/packages/upstream/uwt.0.2.1/url new file mode 100644 index 000000000..fdc465554 --- /dev/null +++ b/repo/darwin/packages/upstream/uwt.0.2.1/url @@ -0,0 +1,3 @@ +http: + "https://github.com/fdopen/uwt/releases/download/0.2.1/uwt-0.2.1.tar.gz" +checksum: "8353f6a0475d8c614efc8e2868297653" diff --git a/repo/darwin/packages/upstream/vchan.3.0.0/descr b/repo/darwin/packages/upstream/vchan.3.0.0/descr new file mode 100644 index 000000000..c79c90334 --- /dev/null +++ b/repo/darwin/packages/upstream/vchan.3.0.0/descr @@ -0,0 +1,4 @@ +Xen Vchan implementation +Vchan is a high performance inter-domain communications protocol using +shared memory. This implementation runs in both userspace and +kernelspace using Mirage. diff --git a/repo/darwin/packages/upstream/vchan.3.0.0/opam b/repo/darwin/packages/upstream/vchan.3.0.0/opam new file mode 100644 index 000000000..3829a9617 --- /dev/null +++ b/repo/darwin/packages/upstream/vchan.3.0.0/opam @@ -0,0 +1,37 @@ +opam-version: "1.2" +maintainer: "jonathan.ludlam@eu.citrix.com" +authors: [ + "Vincent Bernardoff" + "Jon Ludlam" + "David Scott" +] +homepage: "http://github.com/mirage/ocaml-vchan" +bug-reports: "http://github.com/mirage/ocaml-vchan/issues" +dev-repo: "http://github.com/mirage/ocaml-vchan.git" +doc: "http://mirage.github.io/ocaml-vchan" +license: "ISC" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "ocamlfind" {build} + "jbuilder" {build & >="1.0+beta9"} + "lwt" {>= "2.5.0"} + "cstruct" {>= "3.0.0"} + "ppx_tools" {build} + "ppx_sexp_conv" {build & >="v0.9"} + "ppx_cstruct" {build} + "io-page" + "mirage-flow-lwt" {>= "1.0.0"} + "xenstore" {>= "1.2.2"} + "xenstore_transport" + "sexplib" + "cmdliner" + "result" + "ounit" {test} +] +available: [ocaml-version >= "4.03.0"] +tags: "org:mirage" diff --git a/repo/darwin/packages/upstream/vchan.3.0.0/url b/repo/darwin/packages/upstream/vchan.3.0.0/url new file mode 100644 index 000000000..21a38a30f --- /dev/null +++ b/repo/darwin/packages/upstream/vchan.3.0.0/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/ocaml-vchan/releases/download/3.0.0/vchan-3.0.0.tbz" +checksum: "8be9a2d7df23fdf8983daecef3454b5d" diff --git a/repo/darwin/packages/upstream/win-error.0.2/findlib b/repo/darwin/packages/upstream/win-error.0.2/findlib deleted file mode 100644 index 8532b8401..000000000 --- a/repo/darwin/packages/upstream/win-error.0.2/findlib +++ /dev/null @@ -1 +0,0 @@ -win-error diff --git a/repo/darwin/packages/upstream/win-eventlog.0.1/findlib b/repo/darwin/packages/upstream/win-eventlog.0.1/findlib deleted file mode 100644 index 77b8f5b70..000000000 --- a/repo/darwin/packages/upstream/win-eventlog.0.1/findlib +++ /dev/null @@ -1 +0,0 @@ -win-eventlog diff --git a/repo/darwin/packages/upstream/x509.0.5.3/descr b/repo/darwin/packages/upstream/x509.0.5.3/descr new file mode 100644 index 000000000..e8211a6c6 --- /dev/null +++ b/repo/darwin/packages/upstream/x509.0.5.3/descr @@ -0,0 +1,4 @@ +X.509 certificate (RFC5280) library + +Library for X.509 certificate parsing, serialization and authentication. +Supports path validation (RFC5280) and hostname verification (RFC6125). diff --git a/repo/darwin/packages/upstream/x509.0.5.3/opam b/repo/darwin/packages/upstream/x509.0.5.3/opam new file mode 100644 index 000000000..67b9333e4 --- /dev/null +++ b/repo/darwin/packages/upstream/x509.0.5.3/opam @@ -0,0 +1,40 @@ +opam-version: "1.2" +name: "x509" +homepage: "https://github.com/mirleft/ocaml-x509" +dev-repo: "https://github.com/mirleft/ocaml-x509.git" +bug-reports: "https://github.com/mirleft/ocaml-x509/issues" +authors: [ "David Kaloper " "Hannes Mehnert " ] +maintainer: [ "Hannes Mehnert " "David Kaloper " ] +license: "BSD2" + +build: [ + [ "./configure" "--prefix" prefix ] + [ make ] +] +install: [ make "install" ] +remove: [ "ocamlfind" "remove" "x509" ] + +depends: [ + "ocamlfind" {build} + "oasis" {build} + "ocamlbuild" {build} + "ppx_deriving" {build} + "ppx_sexp_conv" {build} + "cstruct" {>= "1.6.0"} + "sexplib" + "asn1-combinators" {>= "0.1.1"} + "nocrypto" {>= "0.5.3"} + "base-bytes" + "ounit" {test} + "cstruct-unix" {test} +] +conflicts: [ + "sexplib" {= "v0.9.0"} +] +build-test: [ + [ "./configure" "--%{ounit:enable}%-tests" ] + [ make "test" ] +] + +tags: [ "org:mirage" ] +available: [ ocaml-version >= "4.02.2" ] diff --git a/repo/darwin/packages/upstream/x509.0.5.3/url b/repo/darwin/packages/upstream/x509.0.5.3/url new file mode 100644 index 000000000..4e2ef2e42 --- /dev/null +++ b/repo/darwin/packages/upstream/x509.0.5.3/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirleft/ocaml-x509/archive/0.5.3.tar.gz" +checksum: "8efe2bca5a80f7d35e730980fbaebc5c" diff --git a/repo/darwin/packages/upstream/xenstore.1.4.0/descr b/repo/darwin/packages/upstream/xenstore.1.4.0/descr new file mode 100644 index 000000000..80cdcd00e --- /dev/null +++ b/repo/darwin/packages/upstream/xenstore.1.4.0/descr @@ -0,0 +1 @@ +Xenstore protocol clients and server diff --git a/repo/darwin/packages/upstream/xenstore.1.4.0/opam b/repo/darwin/packages/upstream/xenstore.1.4.0/opam new file mode 100644 index 000000000..4d4b1cabe --- /dev/null +++ b/repo/darwin/packages/upstream/xenstore.1.4.0/opam @@ -0,0 +1,29 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: [ + "Vincent Hanquez" + "Thomas Gazagnaire" + "Dave Scott" + "Anil Madhavapeddy" + "Vincent Bernardoff" +] +homepage: "https://github.com/mirage/ocaml-xenstore" +bug-reports: "https://github.com/mirage/ocaml-xenstore/issues" +dev-repo: "https://github.com/mirage/ocaml-xenstore.git" +doc: "https://mirage.github.io/ocaml-xenstore" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "ocamlfind" {build} + "jbuilder" {build & >="1.0+beta9"} + "cstruct" {>= "2.4.0"} + "ppx_cstruct" {build} + "ppx_tools" {build} + "lwt" + "ounit" {build} +] +available: [ ocaml-version >= "4.02.0" ] diff --git a/repo/darwin/packages/upstream/xenstore.1.4.0/url b/repo/darwin/packages/upstream/xenstore.1.4.0/url new file mode 100644 index 000000000..491c9d972 --- /dev/null +++ b/repo/darwin/packages/upstream/xenstore.1.4.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-xenstore/releases/download/1.4.0/xenstore-1.4.0.tbz" +checksum: "28ccfd531f6b4db58e6ed476162d0746" diff --git a/repo/darwin/packages/upstream/xenstore_transport.0.9.6/descr b/repo/darwin/packages/upstream/xenstore_transport.0.9.6/descr new file mode 100644 index 000000000..33dd1f168 --- /dev/null +++ b/repo/darwin/packages/upstream/xenstore_transport.0.9.6/descr @@ -0,0 +1,6 @@ +Low-level libraries for connecting to a xenstore service on a xen host. + +These libraries contain the IO functions for communicating with a +xenstore service on a xen host. One subpackage deals with regular Unix +threads and another deals with Lwt co-operative threads. + diff --git a/repo/darwin/packages/upstream/xenstore_transport.0.9.6/opam b/repo/darwin/packages/upstream/xenstore_transport.0.9.6/opam new file mode 100644 index 000000000..1d912af99 --- /dev/null +++ b/repo/darwin/packages/upstream/xenstore_transport.0.9.6/opam @@ -0,0 +1,35 @@ +opam-version: "1.2" +authors: [ + "Christian Lindig" + "David Scott" + "Euan Harris" + "John Else" + "Jon Ludlam" + "Jonathan Davies" + "Marcello Seri" + "Si Beaumont" + "Thomas Sanders" + "Vincent Bernardoff" +] +maintainer: "dave@recoil.org" +homepage: "http://github.com/xapi-project/ocaml-xenstore-clients" +bug-reports: "http://github.com/xapi-project/ocaml-xenstore-clients/issues" +dev-repo: "http://github.com/xapi-project/ocaml-xenstore-clients.git" +doc: "http://xapi-project.github.io/ocaml-xenstore-clients" +license: "LGPL" + +tags: [ + "org:mirage" + "org:xapi-project" +] +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "ocamlfind" {build} + "jbuilder" {build & >="1.0+beta9"} + "lwt" + "xenstore" {> "1.2.1"} +] diff --git a/repo/darwin/packages/upstream/xenstore_transport.0.9.6/url b/repo/darwin/packages/upstream/xenstore_transport.0.9.6/url new file mode 100644 index 000000000..9a3cda369 --- /dev/null +++ b/repo/darwin/packages/upstream/xenstore_transport.0.9.6/url @@ -0,0 +1,2 @@ +archive: "https://github.com/xapi-project/ocaml-xenstore-clients/archive/0.9.6.tar.gz" +checksum: "36412ce160ee14c61a1ef782de12f16e" diff --git a/repo/darwin/packages/upstream/zarith.1.5/descr b/repo/darwin/packages/upstream/zarith.1.5/descr new file mode 100644 index 000000000..0eb288aba --- /dev/null +++ b/repo/darwin/packages/upstream/zarith.1.5/descr @@ -0,0 +1,5 @@ +Implements arithmetic and logical operations over arbitrary-precision integers +The Zarith library implements arithmetic and logical operations over +arbitrary-precision integers. It uses GMP to efficiently implement +arithmetic over big integers. Small integers are represented as Caml +unboxed integers, for speed and space economy. diff --git a/repo/darwin/packages/upstream/zarith.1.5/opam b/repo/darwin/packages/upstream/zarith.1.5/opam new file mode 100644 index 000000000..db7d880cd --- /dev/null +++ b/repo/darwin/packages/upstream/zarith.1.5/opam @@ -0,0 +1,21 @@ +opam-version: "1.2" +maintainer: "Vincent Bernardoff " +authors: "Xavier Leroy" +homepage: "https://github.com/ocaml/Zarith" +bug-reports: "https://github.com/ocaml/Zarith/issues" +dev-repo: "https://github.com/ocaml/Zarith.git" +build: [ + ["./configure"] { os != "openbsd" & os != "freebsd" & os != "darwin"} + ["sh" "-exc" "LDFLAGS=\"$LDFLAGS -L/usr/local/lib\" CFLAGS=\"$CFLAGS -I/usr/local/include\" ./configure"] { os = "openbsd" | os = "freebsd" } + ["sh" "-exc" "LDFLAGS=\"$LDFLAGS -L/opt/local/lib -L/usr/local/lib\" CFLAGS=\"$CFLAGS -I/opt/local/include -I/usr/local/include\" ./configure"] { os = "darwin" } + [make] +] +install: [ + [make "install"] +] +remove: ["ocamlfind" "remove" "zarith"] +depends: [ + "ocamlfind" + "conf-gmp" + "conf-perl" {build} +] diff --git a/repo/darwin/packages/upstream/zarith.1.5/url b/repo/darwin/packages/upstream/zarith.1.5/url new file mode 100644 index 000000000..647addc57 --- /dev/null +++ b/repo/darwin/packages/upstream/zarith.1.5/url @@ -0,0 +1,2 @@ +archive: "https://github.com/ocaml/Zarith/archive/release-1.5.tar.gz" +checksum: "2b037ad0e8145bf62979ea96e7a0ce24" diff --git a/repo/win32/packages/upstream/asetmap.0.8.1/descr b/repo/win32/packages/upstream/asetmap.0.8.1/descr new file mode 100644 index 000000000..cd3094d84 --- /dev/null +++ b/repo/win32/packages/upstream/asetmap.0.8.1/descr @@ -0,0 +1,8 @@ +Alternative, compatible, OCaml standard library Sets and Maps + +asetmap provides slightly tweaked OCaml standard library Set and Map +functors. asetmap tries to maximize compatibility with the standard +library. It essentially gets rid of `Not_found` exceptions and provide +pretty-printers for the data types. + +asetmap has no dependency is distributed under the ISC license. diff --git a/repo/win32/packages/upstream/asetmap.0.8.1/opam b/repo/win32/packages/upstream/asetmap.0.8.1/opam new file mode 100644 index 000000000..a3da32b5b --- /dev/null +++ b/repo/win32/packages/upstream/asetmap.0.8.1/opam @@ -0,0 +1,18 @@ +opam-version: "1.2" +maintainer: "Daniel Bünzli " +authors: ["Daniel Bünzli "] +homepage: "http://erratique.ch/software/asetmap" +doc: "http://erratique.ch/software/asetmap/doc" +license: "ISC" +dev-repo: "http://erratique.ch/repos/asetmap.git" +bug-reports: "https://github.com/dbuenzli/asetmap/issues" +tags: [ "org:erratique" "set" "map" "stdlib" ] +available: [ ocaml-version >= "4.01.0"] +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} ] +depopts: [] +build: [ + "ocaml" "pkg/pkg.ml" "build" + "--pinned" "%{pinned}%" ] diff --git a/repo/win32/packages/upstream/asetmap.0.8.1/url b/repo/win32/packages/upstream/asetmap.0.8.1/url new file mode 100644 index 000000000..f6896f222 --- /dev/null +++ b/repo/win32/packages/upstream/asetmap.0.8.1/url @@ -0,0 +1,2 @@ +archive: "http://erratique.ch/software/asetmap/releases/asetmap-0.8.1.tbz" +checksum: "9e4a518bfb6350e2f296c7f3147989c7" \ No newline at end of file diff --git a/repo/win32/packages/upstream/asn1-combinators.0.1.3/descr b/repo/win32/packages/upstream/asn1-combinators.0.1.3/descr new file mode 100644 index 000000000..5c406f983 --- /dev/null +++ b/repo/win32/packages/upstream/asn1-combinators.0.1.3/descr @@ -0,0 +1,10 @@ +Define ASN.1 grammars in OCaml + + +asn1-combinators is a library for declarative definitions of ASN.1 grammars, +embedded in OCaml. These definitions are strongly typed and allow parsing and +serialization. + +Presently, only BER and DER encoding and supported. + +asn1-combinators is distributed under the ISC license. \ No newline at end of file diff --git a/repo/win32/packages/upstream/asn1-combinators.0.1.3/opam b/repo/win32/packages/upstream/asn1-combinators.0.1.3/opam new file mode 100644 index 000000000..a9b58dacd --- /dev/null +++ b/repo/win32/packages/upstream/asn1-combinators.0.1.3/opam @@ -0,0 +1,26 @@ +opam-version: "1.2" +authors: ["David Kaloper Meršinjak "] +maintainer: "David Kaloper Meršinjak " +homepage: "https://github.com/mirleft/ocaml-asn1-combinators" +doc: "https://mirleft.github.io/ocaml-asn1-combinators/doc" +license: "ISC" +dev-repo: "https://github.com/mirleft/ocaml-asn1-combinators.git" +bug-reports: "https://github.com/mirleft/ocaml-asn1-combinators/issues" +tags: [ "org:mirage" ] +available: [ ocaml-version >= "4.01.0" ] +build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" ] +build-test: [ + [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "true" ] + [ "ocaml" "pkg/pkg.ml" "test" ] +] +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "cstruct" {>= "1.2.0"} + "result" + "zarith" + "ounit" {test} +] +depopts: [] +conflicts: [ "cstruct" {< "1.2.0"} ] diff --git a/repo/win32/packages/upstream/asn1-combinators.0.1.3/url b/repo/win32/packages/upstream/asn1-combinators.0.1.3/url new file mode 100644 index 000000000..2fad82f6d --- /dev/null +++ b/repo/win32/packages/upstream/asn1-combinators.0.1.3/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirleft/ocaml-asn1-combinators/releases/download/v0.1.3/asn1-combinators-0.1.3.tbz" +checksum: "ce625d1fb6903aa8d40b27671ccf742c" \ No newline at end of file diff --git a/repo/win32/packages/upstream/base-bigarray.base/opam b/repo/win32/packages/upstream/base-bigarray.base/opam index 4c0d5562e..c67ad07a6 100644 --- a/repo/win32/packages/upstream/base-bigarray.base/opam +++ b/repo/win32/packages/upstream/base-bigarray.base/opam @@ -1,2 +1,2 @@ opam-version: "1" -maintainer: "contact@ocamlpro.com" +maintainer: "https://github.com/ocaml/opam-repository/issues" diff --git a/repo/win32/packages/upstream/base-num.base/descr b/repo/win32/packages/upstream/base-num.base/descr new file mode 100644 index 000000000..0de4c8c2c --- /dev/null +++ b/repo/win32/packages/upstream/base-num.base/descr @@ -0,0 +1 @@ +Num library distributed with the OCaml compiler diff --git a/repo/win32/packages/upstream/base-num.base/opam b/repo/win32/packages/upstream/base-num.base/opam new file mode 100644 index 000000000..b39f58f8f --- /dev/null +++ b/repo/win32/packages/upstream/base-num.base/opam @@ -0,0 +1,4 @@ +opam-version: "1" +maintainer: "Xavier Leroy " +# Once Num is removed from the OCaml core distribution, reflect this below +# available: [ ocaml-version < "4.06.0" ] diff --git a/repo/win32/packages/upstream/base-threads.base/opam b/repo/win32/packages/upstream/base-threads.base/opam index 4c0d5562e..c67ad07a6 100644 --- a/repo/win32/packages/upstream/base-threads.base/opam +++ b/repo/win32/packages/upstream/base-threads.base/opam @@ -1,2 +1,2 @@ opam-version: "1" -maintainer: "contact@ocamlpro.com" +maintainer: "https://github.com/ocaml/opam-repository/issues" diff --git a/repo/win32/packages/upstream/base-unix.base/opam b/repo/win32/packages/upstream/base-unix.base/opam index 4c0d5562e..c67ad07a6 100644 --- a/repo/win32/packages/upstream/base-unix.base/opam +++ b/repo/win32/packages/upstream/base-unix.base/opam @@ -1,2 +1,2 @@ opam-version: "1" -maintainer: "contact@ocamlpro.com" +maintainer: "https://github.com/ocaml/opam-repository/issues" diff --git a/repo/win32/packages/upstream/base.v0.9.2/url b/repo/win32/packages/upstream/base.v0.9.2/url deleted file mode 100644 index 7f4f87008..000000000 --- a/repo/win32/packages/upstream/base.v0.9.2/url +++ /dev/null @@ -1,2 +0,0 @@ -src: "https://github.com/janestreet/base/archive/v0.9.2.tar.gz" -checksum: "e9292a2ece0fd664d2251856cc051e17" diff --git a/repo/win32/packages/upstream/base.v0.9.2/descr b/repo/win32/packages/upstream/base.v0.9.3/descr similarity index 100% rename from repo/win32/packages/upstream/base.v0.9.2/descr rename to repo/win32/packages/upstream/base.v0.9.3/descr diff --git a/repo/win32/packages/upstream/base.v0.9.2/files/base-0.9.2.patch b/repo/win32/packages/upstream/base.v0.9.3/files/base-0.9.3.patch similarity index 76% rename from repo/win32/packages/upstream/base.v0.9.2/files/base-0.9.2.patch rename to repo/win32/packages/upstream/base.v0.9.3/files/base-0.9.3.patch index 67d6184a5..c90de38b2 100644 --- a/repo/win32/packages/upstream/base.v0.9.2/files/base-0.9.2.patch +++ b/repo/win32/packages/upstream/base.v0.9.3/files/base-0.9.3.patch @@ -43,3 +43,14 @@ static int64_t int_pow(int64_t base, int64_t exponent) { int64_t ret = 1; int64_t mul[4]; +--- ./src/jbuild ++++ ./src/jbuild +@@ -61,7 +61,7 @@ + (progn + (with-stdout-to popcnt_test.c + (echo "int main(int argc, char ** argv) { return __builtin_popcount(argc); }")) +- (system "${CC} -mpopcnt -c popcnt_test.c 2> ${null} && \ ++ (bash "${CC} -mpopcnt -c popcnt_test.c 2> ${null} && \ + echo '(-mpopcnt)' > ${@} || echo '()' > ${@}"))))) + + (ocamllex (hex_lexer)) diff --git a/repo/win32/packages/upstream/base.v0.9.2/opam b/repo/win32/packages/upstream/base.v0.9.3/opam similarity index 51% rename from repo/win32/packages/upstream/base.v0.9.2/opam rename to repo/win32/packages/upstream/base.v0.9.3/opam index 2c2b5b05d..16c2f1682 100644 --- a/repo/win32/packages/upstream/base.v0.9.2/opam +++ b/repo/win32/packages/upstream/base.v0.9.3/opam @@ -1,19 +1,15 @@ opam-version: "1.2" maintainer: "opensource@janestreet.com" -authors: ["Jane Street Group, LLC "] +authors: "Jane Street Group, LLC " homepage: "https://github.com/janestreet/base" bug-reports: "https://github.com/janestreet/base/issues" -dev-repo: "https://github.com/janestreet/base.git" license: "Apache-2.0" -build: [ - ["jbuilder" "build" "-p" name "-j" jobs] -] +dev-repo: "https://github.com/janestreet/base.git" +build: ["jbuilder" "build" "-p" name "-j" jobs] depends: [ - "jbuilder" {build & >= "1.0+beta8"} + "jbuilder" {build & >= "1.0+beta7"} "sexplib" {>= "v0.9.1" & < "v0.10"} ] -depopts: [ - "base-native-int63" -] -available: ocaml-version >= "4.03.0" -patches: "base-0.9.2.patch" {os = "win32"} +depopts: "base-native-int63" +available: [ocaml-version >= "4.03.0"] +patches: "base-0.9.3.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/base.v0.9.3/url b/repo/win32/packages/upstream/base.v0.9.3/url new file mode 100644 index 000000000..1e552cb64 --- /dev/null +++ b/repo/win32/packages/upstream/base.v0.9.3/url @@ -0,0 +1,2 @@ +http: "https://github.com/janestreet/base/archive/v0.9.3.tar.gz" +checksum: "3edb19585be84ea308323ccd41213e57" diff --git a/repo/win32/packages/upstream/base64.2.1.2/descr b/repo/win32/packages/upstream/base64.2.1.2/descr deleted file mode 100644 index b4aab8f39..000000000 --- a/repo/win32/packages/upstream/base64.2.1.2/descr +++ /dev/null @@ -1,10 +0,0 @@ -For OCaml - -Base64 is a group of similar binary-to-text encoding schemes that represent -binary data in an ASCII string format by translating it into a radix-64 -representation. It is specified in [RFC 4648][rfc4648]. - -See also [documentation][docs]. - -[rfc4648]: https://tools.ietf.org/html/rfc4648 -[docs]: http://mirage.github.io/ocaml-base64 \ No newline at end of file diff --git a/repo/win32/packages/upstream/base64.2.1.2/url b/repo/win32/packages/upstream/base64.2.1.2/url deleted file mode 100644 index 64c63b906..000000000 --- a/repo/win32/packages/upstream/base64.2.1.2/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-base64/releases/download/v2.1.2/base64-2.1.2.tbz" -checksum: "acef73296915b4f8052868f182862dc8" \ No newline at end of file diff --git a/repo/win32/packages/upstream/base64.2.2.0/descr b/repo/win32/packages/upstream/base64.2.2.0/descr new file mode 100644 index 000000000..292950687 --- /dev/null +++ b/repo/win32/packages/upstream/base64.2.2.0/descr @@ -0,0 +1,26 @@ +Base64 encoding for OCaml + +Base64 is a group of similar binary-to-text encoding schemes that represent +binary data in an ASCII string format by translating it into a radix-64 +representation. It is specified in [RFC 4648][rfc4648]. + +See also [documentation][docs]. + +[rfc4648]: https://tools.ietf.org/html/rfc4648 +[docs]: http://mirage.github.io/ocaml-base64/base64/ + +## Example + +Simple encoding and decoding. + +```shell +utop # #require "base64";; +utop # let enc = B64.encode "OCaml rocks!";; +val enc : string = "T0NhbWwgcm9ja3Mh" +utop # let plain = B64.decode enc;; +val plain : string = "OCaml rocks!" +``` + +## License + +[ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) diff --git a/repo/darwin/packages/upstream/base64.2.1.2/opam b/repo/win32/packages/upstream/base64.2.2.0/opam similarity index 65% rename from repo/darwin/packages/upstream/base64.2.1.2/opam rename to repo/win32/packages/upstream/base64.2.2.0/opam index a57874253..724ab7d2b 100644 --- a/repo/darwin/packages/upstream/base64.2.1.2/opam +++ b/repo/win32/packages/upstream/base64.2.2.0/opam @@ -10,15 +10,15 @@ bug-reports: "https://github.com/mirage/ocaml-base64/issues" dev-repo: "https://github.com/mirage/ocaml-base64.git" depends: [ "base-bytes" - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} + "jbuilder" {build & >= "1.0+beta10"} "bos" {test} "rresult" {test} "alcotest" {test} ] -build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" ] +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] build-test: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "true" ] - [ "ocaml" "pkg/pkg.ml" "test" ] + ["jbuilder" "runtest" "-p" name] ] diff --git a/repo/win32/packages/upstream/base64.2.2.0/url b/repo/win32/packages/upstream/base64.2.2.0/url new file mode 100644 index 000000000..3a036f7b2 --- /dev/null +++ b/repo/win32/packages/upstream/base64.2.2.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-base64/releases/download/v2.2.0/base64-2.2.0.tbz" +checksum: "49f2bc4ae37b832c652277c0b701a02a" \ No newline at end of file diff --git a/repo/win32/packages/upstream/cohttp-lwt.0.99.0/descr b/repo/win32/packages/upstream/cohttp-lwt.0.99.0/descr new file mode 100644 index 000000000..65cfabe55 --- /dev/null +++ b/repo/win32/packages/upstream/cohttp-lwt.0.99.0/descr @@ -0,0 +1,27 @@ +An OCaml library for HTTP clients and servers + +[![Join the chat at https://gitter.im/mirage/ocaml-cohttp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mirage/ocaml-cohttp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +Cohttp is an OCaml library for creating HTTP daemons. It has a portable +HTTP parser, and implementations using various asynchronous programming +libraries: + +* `Cohttp_lwt_unix` uses the [Lwt](http://ocsigen.org/lwt) library, and + specifically the UNIX bindings. +* `Cohttp_async` uses the [Async](https://realworldocaml.org/v1/en/html/concurrent-programming-with-async.html) + library. +* `Cohttp_lwt` exposes an OS-independent Lwt interface, which is used + by the [Mirage](http://www.openmirage.org) interface + to generate standalone microkernels (see the [mirage-http](https://github.com/mirage/mirage-http) + repository). +* `Cohttp_lwt_xhr` compiles to a JavaScript module that maps the Cohttp + calls to XMLHTTPRequests. This is used to compile OCaml libraries like + the GitHub bindings to JavaScript and still run efficiently. + +You can implement other targets using the parser very easily. Look at the `IO` +signature in `lib/s.mli` and implement that in the desired backend. + +You can activate some runtime debugging by setting `COHTTP_DEBUG` to any +value, and all requests and responses will be written to stderr. Further +debugging of the connection layer can be obtained by setting `CONDUIT_DEBUG` +to any value. \ No newline at end of file diff --git a/repo/win32/packages/upstream/cohttp-lwt.0.99.0/opam b/repo/win32/packages/upstream/cohttp-lwt.0.99.0/opam new file mode 100644 index 000000000..610b4c09b --- /dev/null +++ b/repo/win32/packages/upstream/cohttp-lwt.0.99.0/opam @@ -0,0 +1,31 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: [ + "Anil Madhavapeddy" + "Stefano Zacchiroli" + "David Sheets" + "Thomas Gazagnaire" + "David Scott" + "Rudi Grinberg" + "Andy Ray" +] +homepage: "https://github.com/mirage/ocaml-cohttp" +bug-reports: "https://github.com/mirage/ocaml-cohttp/issues" +license: "ISC" +tags: ["org:mirage" "org:xapi-project"] +dev-repo: "https://github.com/mirage/ocaml-cohttp.git" +build: [ + ["jbuilder" "subst" "-n" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: [["jbuilder" "runtest" "-p" name "-j" jobs]] +depends: [ + "jbuilder" {build & >= "1.0+beta10"} + "conduit" {>= "0.14.0"} + "cohttp" {>="0.99.0"} + "lwt" +] +conflicts: [ + "lwt" {< "2.5.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/cohttp-lwt.0.99.0/url b/repo/win32/packages/upstream/cohttp-lwt.0.99.0/url new file mode 100644 index 000000000..f85b2284a --- /dev/null +++ b/repo/win32/packages/upstream/cohttp-lwt.0.99.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cohttp/releases/download/v0.99.0/cohttp-0.99.0.tbz" +checksum: "a789a9ed492005257bdb217e2248da0d" \ No newline at end of file diff --git a/repo/win32/packages/upstream/cohttp.0.22.0/descr b/repo/win32/packages/upstream/cohttp.0.22.0/descr deleted file mode 100644 index a3fa6b1a8..000000000 --- a/repo/win32/packages/upstream/cohttp.0.22.0/descr +++ /dev/null @@ -1,9 +0,0 @@ -HTTP(S) library for Lwt, Async and Mirage - -There are several optional dependencies which activate functionality: - -* Lwt: `opam install lwt cohttp` -* Lwt and SSL: `opam install lwt ssl cohttp` -* Async: `opam install async cohttp` -* Async and SSL: `opam install async_ssl cohttp` - diff --git a/repo/win32/packages/upstream/cohttp.0.22.0/files/ocaml-cohttp-0.22.0.patch b/repo/win32/packages/upstream/cohttp.0.22.0/files/ocaml-cohttp-0.22.0.patch deleted file mode 100644 index fad9ac3e4..000000000 --- a/repo/win32/packages/upstream/cohttp.0.22.0/files/ocaml-cohttp-0.22.0.patch +++ /dev/null @@ -1,64 +0,0 @@ ---- ./Makefile -+++ ./Makefile -@@ -9,18 +9,18 @@ - ASYNC ?= $(shell if ocamlfind query async >/dev/null 2>&1; then echo --enable-async; fi) - JS ?= $(shell if ocamlfind query js_of_ocaml >/dev/null 2>&1; then echo --enable-js; fi) - --setup.bin: setup.ml -+setu.bin: setup.ml - ocamlopt.opt -o $@ $< 2>/dev/null || ocamlopt -o $@ $< 2>/dev/null || ocamlc -o $@ $< -- rm -f setup.cmx setup.cmi setup.o setup.cmo -+ rm -f setup.cmx setup.cmi setup.o setup.cmo setup.obj - --setup.data: setup.bin -- ./setup.bin -configure $(LWT) $(ASYNC) $(LWT_UNIX) $(JS) $(TESTS) --prefix $(PREFIX) -+setup.data: setu.bin -+ ./setu.bin -configure $(LWT) $(ASYNC) $(LWT_UNIX) $(JS) $(TESTS) --prefix $(PREFIX) - --build: setup.data setup.bin -- ./setup.bin -build -classic-display -+build: setup.data setu.bin -+ ./setu.bin -build -classic-display - --doc: setup.data setup.bin -- ./setup.bin -doc -+doc: setup.data setu.bin -+ ./setu.bin -doc - - DOCDIR = .gh-pages - DOC_COHTTP = $(DOCDIR)/core -@@ -45,25 +45,25 @@ - git -C .gh-pages push origin gh-pages -f - rm -rf .gh-pages - --install: setup.bin -- ./setup.bin -install -+install: setu.bin -+ ./setu.bin -install - --test: setup.bin build -- ./setup.bin -test -+test: setu.bin build -+ ./setu.bin -test - --fulltest: setup.bin build -- ./setup.bin -test -+fulltest: setu.bin build -+ ./setu.bin -test - --reinstall: setup.bin -+reinstall: setu.bin - ocamlfind remove $(NAME) || true -- ./setup.bin -reinstall -+ ./setu.bin -reinstall - - generate: - cd scripts && ocaml generate.ml - - clean: - ocamlbuild -clean -- rm -f setup.data setup.log setup.bin -+ rm -f setup.data setup.log setu.bin - - revdep: - opam switch system || true diff --git a/repo/win32/packages/upstream/cohttp.0.22.0/opam b/repo/win32/packages/upstream/cohttp.0.22.0/opam deleted file mode 100644 index 034b2aa3d..000000000 --- a/repo/win32/packages/upstream/cohttp.0.22.0/opam +++ /dev/null @@ -1,54 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: [ - "Anil Madhavapeddy" - "Stefano Zacchiroli" - "David Sheets" - "Thomas Gazagnaire" - "David Scott" - "Rudi Grinberg" - "Andy Ray" -] -homepage: "https://github.com/mirage/ocaml-cohttp" -bug-reports: "https://github.com/mirage/ocaml-cohttp/issues" -license: "ISC" -tags: ["org:mirage" "org:xapi-project"] -dev-repo: "https://github.com/mirage/ocaml-cohttp.git" -build: [make "PREFIX=%{prefix}%"] -install: [make "PREFIX=%{prefix}%" "install"] -build-test: [ - ["ocaml" "setup.ml" "-configure" "--enable-tests"] - ["ocaml" "setup.ml" "-build"] - ["ocaml" "setup.ml" "-test"] -] -build-doc: ["ocaml" "setup.ml" "-doc"] -remove: ["ocamlfind" "remove" "cohttp"] -depends: [ - "base-bytes" - "ocamlfind" {build} - "ocamlbuild" {build} - "cmdliner" {build & >= "0.9.4"} - "re" - "uri" {>= "1.9.0"} - "fieldslib" - "sexplib" - "conduit" {>= "0.14.0"} - "ppx_fields_conv" - "ppx_deriving" {build} - "ppx_sexp_conv" - "stringext" - "base64" {>= "2.0.0"} - "magic-mime" - "fmt" - "logs" - "ounit" {test} - "alcotest" {test} -] -depopts: ["async" "lwt" "js_of_ocaml"] -conflicts: [ - "async" {< "113.24.00"} - "lwt" {< "2.5.0"} - "js_of_ocaml" {< "2.8"} -] -available: [ocaml-version >= "4.01.0"] -patches: "ocaml-cohttp-0.22.0.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/cohttp.0.22.0/url b/repo/win32/packages/upstream/cohttp.0.22.0/url deleted file mode 100644 index b2a45cd27..000000000 --- a/repo/win32/packages/upstream/cohttp.0.22.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-cohttp/archive/v0.22.0.tar.gz" -checksum: "1698d2e565ac5fe0474372e04ff265d8" diff --git a/repo/win32/packages/upstream/cohttp.0.99.0/descr b/repo/win32/packages/upstream/cohttp.0.99.0/descr new file mode 100644 index 000000000..65cfabe55 --- /dev/null +++ b/repo/win32/packages/upstream/cohttp.0.99.0/descr @@ -0,0 +1,27 @@ +An OCaml library for HTTP clients and servers + +[![Join the chat at https://gitter.im/mirage/ocaml-cohttp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mirage/ocaml-cohttp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +Cohttp is an OCaml library for creating HTTP daemons. It has a portable +HTTP parser, and implementations using various asynchronous programming +libraries: + +* `Cohttp_lwt_unix` uses the [Lwt](http://ocsigen.org/lwt) library, and + specifically the UNIX bindings. +* `Cohttp_async` uses the [Async](https://realworldocaml.org/v1/en/html/concurrent-programming-with-async.html) + library. +* `Cohttp_lwt` exposes an OS-independent Lwt interface, which is used + by the [Mirage](http://www.openmirage.org) interface + to generate standalone microkernels (see the [mirage-http](https://github.com/mirage/mirage-http) + repository). +* `Cohttp_lwt_xhr` compiles to a JavaScript module that maps the Cohttp + calls to XMLHTTPRequests. This is used to compile OCaml libraries like + the GitHub bindings to JavaScript and still run efficiently. + +You can implement other targets using the parser very easily. Look at the `IO` +signature in `lib/s.mli` and implement that in the desired backend. + +You can activate some runtime debugging by setting `COHTTP_DEBUG` to any +value, and all requests and responses will be written to stderr. Further +debugging of the connection layer can be obtained by setting `CONDUIT_DEBUG` +to any value. \ No newline at end of file diff --git a/repo/win32/packages/upstream/cohttp.0.99.0/opam b/repo/win32/packages/upstream/cohttp.0.99.0/opam new file mode 100644 index 000000000..e912332a5 --- /dev/null +++ b/repo/win32/packages/upstream/cohttp.0.99.0/opam @@ -0,0 +1,40 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: [ + "Anil Madhavapeddy" + "Stefano Zacchiroli" + "David Sheets" + "Thomas Gazagnaire" + "David Scott" + "Rudi Grinberg" + "Andy Ray" +] +homepage: "https://github.com/mirage/ocaml-cohttp" +bug-reports: "https://github.com/mirage/ocaml-cohttp/issues" +license: "ISC" +tags: ["org:mirage" "org:xapi-project"] +dev-repo: "https://github.com/mirage/ocaml-cohttp.git" +build: [ + ["jbuilder" "subst" "-n" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: [["jbuilder" "runtest" "-p" name "-j" jobs]] +depends: [ + "base-bytes" + "jbuilder" {build & >= "1.0+beta10"} + "re" + "uri" {>= "1.9.0"} + "fieldslib" + "sexplib" + "ppx_fields_conv" {>="v0.9.0"} + "ppx_sexp_conv" {>="v0.9.0"} + "stringext" + "base64" {>= "2.0.0"} + "magic-mime" + "fmt" + "logs" + "jsonm" {build} + "ounit" {test} + "alcotest" {test} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/cohttp.0.99.0/url b/repo/win32/packages/upstream/cohttp.0.99.0/url new file mode 100644 index 000000000..f85b2284a --- /dev/null +++ b/repo/win32/packages/upstream/cohttp.0.99.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cohttp/releases/download/v0.99.0/cohttp-0.99.0.tbz" +checksum: "a789a9ed492005257bdb217e2248da0d" \ No newline at end of file diff --git a/repo/win32/packages/upstream/conduit-lwt.1.0.0/descr b/repo/win32/packages/upstream/conduit-lwt.1.0.0/descr new file mode 100644 index 000000000..34d65f589 --- /dev/null +++ b/repo/win32/packages/upstream/conduit-lwt.1.0.0/descr @@ -0,0 +1,37 @@ +Network conduit library + +The `conduit` library takes care of establishing and listening for +TCP and SSL/TLS connections for the Lwt and Async libraries. + +The reason this library exists is to provide a degree of abstraction +from the precise SSL library used, since there are a variety of ways +to bind to a library (e.g. the C FFI, or the Ctypes library), as well +as well as which library is used (just OpenSSL for now). + +By default, OpenSSL is used as the preferred connection library, but +you can force the use of the pure OCaml TLS stack by setting the +environment variable `CONDUIT_TLS=native` when starting your program. + +### Modules + +Source code is in `lib/`. + +* `Conduit_lwt_unix` has the Lwt UNIX modules. +* `Conduit_async` has the Core/Async modules. + +There are also resolvers that map URIs to Conduit endpoints. +See for the online `ocamldoc` +for more details. + +### Debugging + +Some of the `Lwt_unix`-based modules use a non-empty `CONDUIT_DEBUG` +environment variable to output debugging information to standard error. +Just set this variable when running the program to see what URIs +are being resolved to. + +### Further Informartion + +* **WWW:** https://github.com/mirage/ocaml-conduit +* **E-mail:** +* **Bugs:** https://github.com/mirage/ocaml-conduit/issues \ No newline at end of file diff --git a/repo/win32/packages/upstream/conduit-lwt.1.0.0/opam b/repo/win32/packages/upstream/conduit-lwt.1.0.0/opam new file mode 100644 index 000000000..bf4eb16e8 --- /dev/null +++ b/repo/win32/packages/upstream/conduit-lwt.1.0.0/opam @@ -0,0 +1,20 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire" "Rudi Grinberg"] +homepage: "https://github.com/mirage/ocaml-conduit" +dev-repo: "https://github.com/mirage/ocaml-conduit.git" +bug-reports: "https://github.com/mirage/ocaml-conduit/issues" +tags: "org:mirage" +license: "ISC" + +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +depends: [ + "base-unix" + "jbuilder" {build & >="1.0+beta9"} + "conduit" {>="1.0.0"} + "lwt" {>="3.0.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/conduit-lwt.1.0.0/url b/repo/win32/packages/upstream/conduit-lwt.1.0.0/url new file mode 100644 index 000000000..f7ff75a56 --- /dev/null +++ b/repo/win32/packages/upstream/conduit-lwt.1.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-conduit/releases/download/v1.0.0/conduit-1.0.0.tbz" +checksum: "4656f150b9f98603c21d00c8f0aa1a9b" diff --git a/repo/win32/packages/upstream/conduit.0.14.5/descr b/repo/win32/packages/upstream/conduit.0.14.5/descr deleted file mode 100644 index fe8b5fe82..000000000 --- a/repo/win32/packages/upstream/conduit.0.14.5/descr +++ /dev/null @@ -1,15 +0,0 @@ -Network connection library for TCP and SSL - -The `conduit` library takes care of establishing and listening for TCP and -SSL/TLS connections for the Lwt and Async libraries. - -The reason this library exists is to provide a degree of abstraction -from the precise SSL library used, since there are a variety of ways to bind to -a library (e.g. the C FFI, or the Ctypes library), as well as well as which -library is used (either OpenSSL or a native OCaml TLS implementation). - -If you are using the `Lwt_unix` version of the library, you can set two -environment variables to control the behaviour of the library: - -- `CONDUIT_DEBUG=1` will output debug information to standard error. -- `CONDUIT_TLS=native` will force the use of the pure OCaml TLS library. diff --git a/repo/win32/packages/upstream/conduit.0.14.5/opam b/repo/win32/packages/upstream/conduit.0.14.5/opam deleted file mode 100644 index c7c787048..000000000 --- a/repo/win32/packages/upstream/conduit.0.14.5/opam +++ /dev/null @@ -1,53 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: [ - "Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire" "Rudi Grinberg" -] -homepage: "https://github.com/mirage/ocaml-conduit" -bug-reports: "https://github.com/mirage/ocaml-conduit/issues" -license: "ISC" -tags: "org:mirage" -dev-repo: "https://github.com/mirage/ocaml-conduit.git" -build: [ - ["./configure"] - [make] -] -install: [make "install"] -build-doc: [make "doc"] -remove: ["ocamlfind" "remove" "conduit"] -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "ppx_driver" {build} - "ppx_optcomp" {build & >= "113.24.00"} - "ppx_sexp_conv" {build} - "sexplib" - "stringext" - "uri" - "logs" {>= "0.5.0"} - "cstruct" {>= "1.0.1"} - "ipaddr" {>= "2.5.0"} -] -depopts: [ - "async" - "lwt" - "ssl" - "async_ssl" - "mirage-dns" - "vchan" - "launchd" - "tls" - "mirage-types-lwt" -] -conflicts: [ - "lwt" {< "2.4.4"} - "lwt" {>= "3.0.0"} - "async_ssl" {< "112.24.00"} - "async" {< "113.24.00"} - "mirage-types" {< "2.0.0"} - "dns" {< "0.10.0"} - "tls" {< "0.4.0"} - "vchan" {< "2.0.0"} - "nocrypto" {< "0.4.0"} -] -available: [ocaml-version >= "4.02.3"] diff --git a/repo/win32/packages/upstream/conduit.0.14.5/url b/repo/win32/packages/upstream/conduit.0.14.5/url deleted file mode 100644 index a400767f9..000000000 --- a/repo/win32/packages/upstream/conduit.0.14.5/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-conduit/archive/v0.14.5.tar.gz" -checksum: "c29ed80445b6665e646752411f87621d" diff --git a/repo/win32/packages/upstream/conduit.1.0.0/descr b/repo/win32/packages/upstream/conduit.1.0.0/descr new file mode 100644 index 000000000..34d65f589 --- /dev/null +++ b/repo/win32/packages/upstream/conduit.1.0.0/descr @@ -0,0 +1,37 @@ +Network conduit library + +The `conduit` library takes care of establishing and listening for +TCP and SSL/TLS connections for the Lwt and Async libraries. + +The reason this library exists is to provide a degree of abstraction +from the precise SSL library used, since there are a variety of ways +to bind to a library (e.g. the C FFI, or the Ctypes library), as well +as well as which library is used (just OpenSSL for now). + +By default, OpenSSL is used as the preferred connection library, but +you can force the use of the pure OCaml TLS stack by setting the +environment variable `CONDUIT_TLS=native` when starting your program. + +### Modules + +Source code is in `lib/`. + +* `Conduit_lwt_unix` has the Lwt UNIX modules. +* `Conduit_async` has the Core/Async modules. + +There are also resolvers that map URIs to Conduit endpoints. +See for the online `ocamldoc` +for more details. + +### Debugging + +Some of the `Lwt_unix`-based modules use a non-empty `CONDUIT_DEBUG` +environment variable to output debugging information to standard error. +Just set this variable when running the program to see what URIs +are being resolved to. + +### Further Informartion + +* **WWW:** https://github.com/mirage/ocaml-conduit +* **E-mail:** +* **Bugs:** https://github.com/mirage/ocaml-conduit/issues \ No newline at end of file diff --git a/repo/win32/packages/upstream/conduit.1.0.0/opam b/repo/win32/packages/upstream/conduit.1.0.0/opam new file mode 100644 index 000000000..df92047c7 --- /dev/null +++ b/repo/win32/packages/upstream/conduit.1.0.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire" "Rudi Grinberg"] +homepage: "https://github.com/mirage/ocaml-conduit" +dev-repo: "https://github.com/mirage/ocaml-conduit.git" +bug-reports: "https://github.com/mirage/ocaml-conduit/issues" +tags: "org:mirage" +license: "ISC" + +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "ppx_sexp_conv" {build} + "sexplib" + "uri" + "result" + "astring" + "logs" {>="0.5.0"} + "ipaddr" {>="2.5.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/conduit.1.0.0/url b/repo/win32/packages/upstream/conduit.1.0.0/url new file mode 100644 index 000000000..f7ff75a56 --- /dev/null +++ b/repo/win32/packages/upstream/conduit.1.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-conduit/releases/download/v1.0.0/conduit-1.0.0.tbz" +checksum: "4656f150b9f98603c21d00c8f0aa1a9b" diff --git a/repo/win32/packages/upstream/conf-autoconf.0.1/descr b/repo/win32/packages/upstream/conf-autoconf.0.1/descr new file mode 100644 index 000000000..0bbb20263 --- /dev/null +++ b/repo/win32/packages/upstream/conf-autoconf.0.1/descr @@ -0,0 +1,3 @@ +Virtual package relying on autoconf installation. +This package can only install if the autoconf command +is available on the system. diff --git a/repo/win32/packages/upstream/conf-autoconf.0.1/opam b/repo/win32/packages/upstream/conf-autoconf.0.1/opam new file mode 100644 index 000000000..869f0488f --- /dev/null +++ b/repo/win32/packages/upstream/conf-autoconf.0.1/opam @@ -0,0 +1,30 @@ +opam-version: "1.2" +maintainer: "francois.berenger@inria.fr" +homepage: "http://www.gnu.org/software/autoconf" +authors: "https://www.gnu.org/software/autoconf/autoconf.html#maintainer" +bug-reports: "https://github.com/ocaml/opam-repository/issues" +dev-repo: "https://github.com/ocaml/opam-repository.git" +license: "GPL-3.0" +build: [ + ["which" "autoconf"] +] +depends: [ + "conf-which" {build} +] +depexts: [ + [["debian"] ["autoconf"]] + [["ubuntu"] ["autoconf"]] + [["centos"] ["autoconf"]] + [["fedora"] ["autoconf"]] + [["archlinux"] ["autoconf"]] + [["gentoo"] ["sys-devel/autoconf"]] + [["nixpkgs"] ["autoconf"]] + [["osx" "homebrew"] ["autoconf"]] + [["openbsd"] ["devel/autoconf"]] + [["freebsd"] ["autoconf"]] + [["netbsd"] ["autoconf"]] + [["alpine"] ["autoconf"]] + [["oraclelinux"] ["autoconf"]] + [["rhel"] ["autoconf"]] + [["win32" "cygwinports"] ["system:autoconf"]] +] diff --git a/repo/win32/packages/upstream/conf-gmp.1/descr b/repo/win32/packages/upstream/conf-gmp.1/descr new file mode 100644 index 000000000..c409e3439 --- /dev/null +++ b/repo/win32/packages/upstream/conf-gmp.1/descr @@ -0,0 +1,2 @@ +Virtual package relying on a GMP lib system installation. +This package can only install if the GMP lib is installed on the system. diff --git a/repo/win32/packages/upstream/conf-gmp.1/files/test-win.sh b/repo/win32/packages/upstream/conf-gmp.1/files/test-win.sh new file mode 100755 index 000000000..f62b29d98 --- /dev/null +++ b/repo/win32/packages/upstream/conf-gmp.1/files/test-win.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env dash + +cc=$(ocamlc -config | awk '/^bytecomp_c_compiler/ {for(i=2;i<=NF;i++) printf "%s ", $i}') +$cc -c $CFLAGS test.c diff --git a/repo/win32/packages/upstream/conf-gmp.1/files/test.c b/repo/win32/packages/upstream/conf-gmp.1/files/test.c new file mode 100644 index 000000000..74e2843b7 --- /dev/null +++ b/repo/win32/packages/upstream/conf-gmp.1/files/test.c @@ -0,0 +1,8 @@ +#include +#ifndef __GMP_H__ +#error "No GMP header" +#endif + +void test(void) { + __gmp_init(); +} diff --git a/repo/win32/packages/upstream/conf-gmp.1/opam b/repo/win32/packages/upstream/conf-gmp.1/opam new file mode 100644 index 000000000..38d44c9a9 --- /dev/null +++ b/repo/win32/packages/upstream/conf-gmp.1/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "nbraud" +author: "nbraud" +homepage: "http://gmplib.org/" +bug-reports: "https://github.com/ocaml/opam-repository/issues" +dev-repo: "https://github.com/ocaml/opam-repository.git" +license: "GPL" +build: [ + ["sh" "-exc" "cc -c $CFLAGS -I/usr/local/include test.c"] {os != "darwin" & os != "win32"} + ["sh" "-exc" "cc -c $CFLAGS -I/opt/local/include -I/usr/local/include test.c"] {os = "darwin"} + ["./test-win.sh"] { os = "win32" } +] +depexts: [ + [["debian"] ["libgmp-dev"]] + [["ubuntu"] ["libgmp-dev"]] + [["osx" "homebrew"] ["gmp"]] + [["centos"] ["gmp" "gmp-devel"]] + [["fedora"] ["gmp" "gmp-devel"]] + [["openbsd"] ["gmp"]] + [["freebsd"] ["gmp"]] + [["alpine"] ["gmp-dev"]] + [["opensuse"] ["gmp-devel"]] + [["win32" "cygwinports"] ["gmp"]] +] diff --git a/repo/win32/packages/upstream/conf-perl.1/descr b/repo/win32/packages/upstream/conf-perl.1/descr new file mode 100644 index 000000000..a0520188b --- /dev/null +++ b/repo/win32/packages/upstream/conf-perl.1/descr @@ -0,0 +1,2 @@ +Virtual package relying on perl +This package can only install if the perl program is installed on the system. diff --git a/repo/win32/packages/upstream/conf-perl.1/opam b/repo/win32/packages/upstream/conf-perl.1/opam new file mode 100644 index 000000000..2010b2430 --- /dev/null +++ b/repo/win32/packages/upstream/conf-perl.1/opam @@ -0,0 +1,15 @@ +opam-version: "1.2" +maintainer: "tim@gfxmonk.net" +homepage: "https://www.perl.org/" +bug-reports: "https://github.com/ocaml/opam-repository/issues" +dev-repo: "https://github.com/ocaml/opam-repository.git" +license: "GPL-1+" +build: [["perl" "--version"]] +depexts: [ + [["debian"] ["perl"]] + [["ubuntu"] ["perl"]] + [["alpine"]["perl"]] + [["nixpkgs"] ["perl"]] + [["archlinux"] ["perl"]] + [["fedora"] ["perl-Pod-Html"]] +] diff --git a/repo/win32/packages/upstream/conf-which.1/opam b/repo/win32/packages/upstream/conf-which.1/opam index 72a621678..bebee6c6a 100644 --- a/repo/win32/packages/upstream/conf-which.1/opam +++ b/repo/win32/packages/upstream/conf-which.1/opam @@ -1,11 +1,16 @@ opam-version: "1.2" -maintainer: "tim@gfxmonk.net" +maintainer: "Francois BERENGER " homepage: "http://www.gnu.org/software/which/" +authors: "Carlo Wood" bug-reports: "https://github.com/ocaml/opam-repository/issues" dev-repo: "https://github.com/ocaml/opam-repository.git" license: "GPL-2+" build: [["which" "which"]] depexts: [ + +# the which package is only available for alpine >= 3.4 +# [["alpine"] ["which"]] + [["centos"] ["which"]] [["fedora"] ["which"]] [["opensuse"] ["which"]] diff --git a/repo/win32/packages/upstream/config-file.1.2/findlib b/repo/win32/packages/upstream/config-file.1.2/findlib deleted file mode 100644 index fc80b62f2..000000000 --- a/repo/win32/packages/upstream/config-file.1.2/findlib +++ /dev/null @@ -1 +0,0 @@ -config-file diff --git a/repo/win32/packages/upstream/configurator.v0.9.1/descr b/repo/win32/packages/upstream/configurator.v0.9.1/descr new file mode 100644 index 000000000..17632e0c4 --- /dev/null +++ b/repo/win32/packages/upstream/configurator.v0.9.1/descr @@ -0,0 +1,11 @@ +Helper library for gathering system configuration + +Configurator is a small library that helps writing OCaml scripts that +test features available on the system, in order to generate config.h +files for instance. + +Configurator allows one to: +- test if a C program compiles +- query pkg-config +- import #define from OCaml header files +- generate config.h file diff --git a/repo/win32/packages/upstream/configurator.v0.9.1/opam b/repo/win32/packages/upstream/configurator.v0.9.1/opam new file mode 100644 index 000000000..f0ee12071 --- /dev/null +++ b/repo/win32/packages/upstream/configurator.v0.9.1/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/configurator" +bug-reports: "https://github.com/janestreet/configurator/issues" +dev-repo: "https://github.com/janestreet/configurator.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "-p" name "-j" jobs] +] +depends: [ + "base" {>= "v0.9" & < "v0.10"} + "jbuilder" {build & >= "1.0+beta7"} + "ppx_base" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "stdio" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/configurator.v0.9.1/url b/repo/win32/packages/upstream/configurator.v0.9.1/url new file mode 100644 index 000000000..dbf7fc991 --- /dev/null +++ b/repo/win32/packages/upstream/configurator.v0.9.1/url @@ -0,0 +1,2 @@ +src: "https://github.com/janestreet/configurator/archive/v0.9.1.tar.gz" +checksum: "3152504ee8f08667e385fe36bd058cf5" diff --git a/repo/win32/packages/upstream/cppo.1.5.0/findlib b/repo/win32/packages/upstream/cppo.1.5.0/findlib deleted file mode 100644 index b00d2fd31..000000000 --- a/repo/win32/packages/upstream/cppo.1.5.0/findlib +++ /dev/null @@ -1 +0,0 @@ -cppo_ocamlbuild diff --git a/repo/win32/packages/upstream/cpuid.0.1.1/descr b/repo/win32/packages/upstream/cpuid.0.1.1/descr new file mode 100644 index 000000000..6ed960e99 --- /dev/null +++ b/repo/win32/packages/upstream/cpuid.0.1.1/descr @@ -0,0 +1,26 @@ +Detect CPU features + + +cpuid allows detection of CPU features from OCaml. + +cpuid is distributed under the ISC license. + +## Installation + +cpuid can be installed with `opam`: + + opam install cpuid + +If you don't use `opam` consult the [`opam`](opam) file for build +instructions. + +## Documentation + +The documentation and API reference is automatically generated by +`ocamldoc` from the interfaces. It can be consulted [online][doc] +and there is a generated version in the `doc` directory of the +distribution. + +[doc]: https://pqwy.github.io/cpuid/doc + +[![Build Status](https://travis-ci.org/pqwy/cpuid.svg?branch=master)](https://travis-ci.org/pqwy/cpuid) \ No newline at end of file diff --git a/repo/win32/packages/upstream/cpuid.0.1.1/opam b/repo/win32/packages/upstream/cpuid.0.1.1/opam new file mode 100644 index 000000000..fc08f3543 --- /dev/null +++ b/repo/win32/packages/upstream/cpuid.0.1.1/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "David Kaloper Meršinjak " +authors: ["David Kaloper Meršinjak "] +homepage: "https://github.com/pqwy/cpuid" +doc: "https://pqwy.github.io/cpuid/doc" +license: "ISC" +dev-repo: "https://github.com/pqwy/cpuid.git" +bug-reports: "https://github.com/pqwy/cpuid/issues" +tags: [] +available: [ ocaml-version >= "4.01.0" ] +build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" ] +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "ocb-stubblr" {build} + "result" ] +depopts: [] +conflicts: [ "ocb-stubblr" {<"0.1.0"} ] diff --git a/repo/win32/packages/upstream/cpuid.0.1.1/url b/repo/win32/packages/upstream/cpuid.0.1.1/url new file mode 100644 index 000000000..248d3235b --- /dev/null +++ b/repo/win32/packages/upstream/cpuid.0.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/pqwy/cpuid/releases/download/v0.1.1/cpuid-0.1.1.tbz" +checksum: "717a6bf371bd083ea588ccd96f328dc2" \ No newline at end of file diff --git a/repo/win32/packages/upstream/cstruct-lwt.0/descr b/repo/win32/packages/upstream/cstruct-lwt.0/descr deleted file mode 100644 index 457063813..000000000 --- a/repo/win32/packages/upstream/cstruct-lwt.0/descr +++ /dev/null @@ -1,4 +0,0 @@ -Access C-like structures directly from OCaml - -This is a dummy package to facilitate the migration to cstruct 3.0.0, -where several package were split out of the main Cstruct package. diff --git a/repo/win32/packages/upstream/cstruct-lwt.3.1.1/descr b/repo/win32/packages/upstream/cstruct-lwt.3.1.1/descr new file mode 100644 index 000000000..04ad3d2ec --- /dev/null +++ b/repo/win32/packages/upstream/cstruct-lwt.3.1.1/descr @@ -0,0 +1,5 @@ +Access C-like structures directly from OCaml + +Cstruct is a library and syntax extension to make it easier to access C-like +structures directly from OCaml. It supports both reading and writing to these +structures, and they are accessed via the `Bigarray` module. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/cstruct-lwt.0/opam b/repo/win32/packages/upstream/cstruct-lwt.3.1.1/opam similarity index 62% rename from repo/darwin/packages/upstream/cstruct-lwt.0/opam rename to repo/win32/packages/upstream/cstruct-lwt.3.1.1/opam index 50ae2af91..1fcd5d5fd 100644 --- a/repo/darwin/packages/upstream/cstruct-lwt.0/opam +++ b/repo/win32/packages/upstream/cstruct-lwt.3.1.1/opam @@ -2,15 +2,20 @@ opam-version: "1.2" maintainer: "anil@recoil.org" authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire" "Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott" - "Mindy Preston" ] + "Mindy Preston" "Thomas Leonard" ] homepage: "https://github.com/mirage/ocaml-cstruct" license: "ISC" dev-repo: "https://github.com/mirage/ocaml-cstruct.git" bug-reports: "https://github.com/mirage/ocaml-cstruct/issues" tags: [ "org:mirage" "org:ocamllabs" ] -build: [] +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] depends: [ - "cstruct" {<"3.0.0"} + "base-unix" "lwt" + "cstruct" {>="3.1.1"} + "jbuilder" {build & >="1.0+beta7"} ] -available: [ocaml-version >= "4.02.3"] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/cstruct-lwt.3.1.1/url b/repo/win32/packages/upstream/cstruct-lwt.3.1.1/url new file mode 100644 index 000000000..e8888b702 --- /dev/null +++ b/repo/win32/packages/upstream/cstruct-lwt.3.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cstruct/releases/download/v3.1.1/cstruct-3.1.1.tbz" +checksum: "9834ebf3e161ae62577962332b544c24" \ No newline at end of file diff --git a/repo/win32/packages/upstream/cstruct-unix.3.1.1/descr b/repo/win32/packages/upstream/cstruct-unix.3.1.1/descr new file mode 100644 index 000000000..04ad3d2ec --- /dev/null +++ b/repo/win32/packages/upstream/cstruct-unix.3.1.1/descr @@ -0,0 +1,5 @@ +Access C-like structures directly from OCaml + +Cstruct is a library and syntax extension to make it easier to access C-like +structures directly from OCaml. It supports both reading and writing to these +structures, and they are accessed via the `Bigarray` module. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/ppx_cstruct.0/opam b/repo/win32/packages/upstream/cstruct-unix.3.1.1/opam similarity index 62% rename from repo/darwin/packages/upstream/ppx_cstruct.0/opam rename to repo/win32/packages/upstream/cstruct-unix.3.1.1/opam index 6915cf9f5..5e49f1cdb 100644 --- a/repo/darwin/packages/upstream/ppx_cstruct.0/opam +++ b/repo/win32/packages/upstream/cstruct-unix.3.1.1/opam @@ -2,16 +2,19 @@ opam-version: "1.2" maintainer: "anil@recoil.org" authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire" "Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott" - "Mindy Preston" ] + "Mindy Preston" "Thomas Leonard" ] homepage: "https://github.com/mirage/ocaml-cstruct" license: "ISC" dev-repo: "https://github.com/mirage/ocaml-cstruct.git" bug-reports: "https://github.com/mirage/ocaml-cstruct/issues" tags: [ "org:mirage" "org:ocamllabs" ] -build: [] +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] depends: [ - "cstruct" {<"3.0.0"} - "ppx_deriving" - "ppx_tools" + "jbuilder" {build & >="1.0+beta7"} + "base-unix" + "cstruct" {>="3.1.1"} ] -available: [ocaml-version >= "4.02.3"] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/cstruct-unix.3.1.1/url b/repo/win32/packages/upstream/cstruct-unix.3.1.1/url new file mode 100644 index 000000000..e8888b702 --- /dev/null +++ b/repo/win32/packages/upstream/cstruct-unix.3.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cstruct/releases/download/v3.1.1/cstruct-3.1.1.tbz" +checksum: "9834ebf3e161ae62577962332b544c24" \ No newline at end of file diff --git a/repo/win32/packages/upstream/cstruct.2.4.1/descr b/repo/win32/packages/upstream/cstruct.2.4.1/descr deleted file mode 100644 index 2e271f1bc..000000000 --- a/repo/win32/packages/upstream/cstruct.2.4.1/descr +++ /dev/null @@ -1,22 +0,0 @@ -access C structures via a camlp4 extension - -Cstruct is a library and syntax extension to make it easier to access C-like -structures directly from OCaml. It supports both reading and writing to these -structures, and they are accessed via the Bigarray module. - -An example pcap description using PPX extension points is: - -``` -[%%cstruct -type pcap_header = { - magic_number: uint32_t; (* magic number *) - version_major: uint16_t; (* major version number *) - version_minor: uint16_t; (* minor version number *) - thiszone: uint32_t; (* GMT to local correction *) - sigfigs: uint32_t; (* accuracy of timestamps *) - snaplen: uint32_t; (* max length of captured packets, in octets *) - network: uint32_t; (* data link type *) -} [@@little_endian]] -``` - -For Camlp4 support, please use a version of Cstruct that is `<=1.9.0` diff --git a/repo/win32/packages/upstream/cstruct.2.4.1/files/ocaml-cstruct-2.4.1.patch b/repo/win32/packages/upstream/cstruct.2.4.1/files/ocaml-cstruct-2.4.1.patch deleted file mode 100644 index 880aa2e89..000000000 --- a/repo/win32/packages/upstream/cstruct.2.4.1/files/ocaml-cstruct-2.4.1.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- ./lib/cstruct_stubs.c -+++ ./lib/cstruct_stubs.c -@@ -15,7 +15,9 @@ - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -+#if !defined(_MSC_VER) || !defined(_WIN32) - #include -+#endif - #include - #include - #include -@@ -74,7 +76,11 @@ - CAMLprim value - caml_check_alignment_bigstring(value val_buf, value val_ofs, value val_alignment) - { -+#if !defined(_MSC_VER) || !defined(_WIN32) - uint64_t address = (uint64_t) (Caml_ba_data_val(val_buf) + Long_val(val_ofs)); -+#else -+ uint64_t address = (uint64_t) ((char*)Caml_ba_data_val(val_buf) + Long_val(val_ofs)); -+#endif - int alignment = Int_val(val_alignment); - return Val_bool(address % alignment == 0); - } ---- ./_oasis -+++ ./_oasis -@@ -32,7 +32,10 @@ - Modules: Cstruct - BuildDepends: bytes, bigarray, ocplib-endian, ocplib-endian.bigstring, sexplib - CSources: cstruct_stubs.c -- CCOpt: -O3 -Wall -+ if (system(win32) || system(win64)) -+ CCOpt: /Ox -+ else -+ CCOpt: -O3 -Wall - - Library async_cstruct - Build$: flag(async) diff --git a/repo/win32/packages/upstream/cstruct.2.4.1/files/patch-oasis-cstruct.2.4.1 b/repo/win32/packages/upstream/cstruct.2.4.1/files/patch-oasis-cstruct.2.4.1 deleted file mode 100644 index c8635fe48..000000000 --- a/repo/win32/packages/upstream/cstruct.2.4.1/files/patch-oasis-cstruct.2.4.1 +++ /dev/null @@ -1,996 +0,0 @@ ---- ./myocamlbuild.ml -+++ ./myocamlbuild.ml -@@ -1,5 +1,5 @@ - (* OASIS_START *) --(* DO NOT EDIT (digest: 4d44dad3b40a3deddd53d2503c1a4202) *) -+(* DO NOT EDIT (digest: fbe9c33b2a561faaac168f4ca7a87ec1) *) - module OASISGettext = struct - (* # 22 "src/oasis/OASISGettext.ml" *) - -@@ -177,6 +177,28 @@ - else - s - -+ let exists f str = -+ let rec iter i = -+ if i < 0 then -+ false -+ else if f str.[i] then -+ true -+ else -+ iter (pred i) -+ in -+ iter (String.length str - 1) -+ -+ let is_digit c = -+ '0' <= c && c <= '9' -+ -+ let is_alpha c = -+ ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') -+ -+ let is_whitespace = -+ function -+ | ' ' | '\r' | '\n' | '\t' -> true -+ | _ -> false -+ - end - - module OASISUtils = struct -@@ -440,7 +462,7 @@ - end - - --# 443 "myocamlbuild.ml" -+# 465 "myocamlbuild.ml" - module BaseEnvLight = struct - (* # 22 "src/base/BaseEnvLight.ml" *) - -@@ -520,7 +542,7 @@ - end - - --# 523 "myocamlbuild.ml" -+# 545 "myocamlbuild.ml" - module MyOCamlbuildFindlib = struct - (* # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *) - -@@ -597,7 +619,9 @@ - with Not_found -> s - - (* ocamlfind command *) -- let ocamlfind x = S[Sh (exec_from_conf "ocamlfind"); x] -+ let ocamlfind x = S[Sh ( -+ Ocamlbuild_pack.Shell.quote_filename_if_needed -+ (exec_from_conf "ocamlfind") ); x] - - (* This lists all supported packages. *) - let find_packages () = -@@ -881,7 +905,7 @@ - end - - --# 884 "myocamlbuild.ml" -+# 908 "myocamlbuild.ml" - open Ocamlbuild_plugin;; - let package_default = - { -@@ -898,7 +922,15 @@ - [ - (["oasis_library_cstruct_ccopt"; "compile"], - [ -- (OASISExpr.EBool true, -+ (OASISExpr.EBool true, S []); -+ (OASISExpr.EOr -+ (OASISExpr.ETest ("system", "win32"), -+ OASISExpr.ETest ("system", "win64")), -+ S [A "-ccopt"; A "/Ox"]); -+ (OASISExpr.ENot -+ (OASISExpr.EOr -+ (OASISExpr.ETest ("system", "win32"), -+ OASISExpr.ETest ("system", "win64"))), - S [A "-ccopt"; A "-O3"; A "-ccopt"; A "-Wall"]) - ]) - ]; -@@ -917,6 +949,6 @@ - - let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;; - --# 921 "myocamlbuild.ml" -+# 953 "myocamlbuild.ml" - (* OASIS_STOP *) - Ocamlbuild_plugin.dispatch dispatch_default;; ---- ./setup.ml -+++ ./setup.ml -@@ -1,7 +1,7 @@ - (* setup.ml generated for the first time by OASIS v0.4.6 *) - - (* OASIS_START *) --(* DO NOT EDIT (digest: 8a18d756a3833145c2976b25bc328c5f) *) -+(* DO NOT EDIT (digest: 481888d200957bc4e15ada1b627376f0) *) - (* - Regenerated by OASIS v0.4.8 - Visit http://oasis.forge.ocamlcore.org for more information and -@@ -184,6 +184,28 @@ - else - s - -+ let exists f str = -+ let rec iter i = -+ if i < 0 then -+ false -+ else if f str.[i] then -+ true -+ else -+ iter (pred i) -+ in -+ iter (String.length str - 1) -+ -+ let is_digit c = -+ '0' <= c && c <= '9' -+ -+ let is_alpha c = -+ ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') -+ -+ let is_whitespace = -+ function -+ | ' ' | '\r' | '\n' | '\t' -> true -+ | _ -> false -+ - end - - module OASISUtils = struct -@@ -459,6 +481,97 @@ - - module Unix = OASISUnixPath - -+ let bash_cmd = ref ( fun () -> "" ) -+ -+ let use_bash () = ( !bash_cmd () ) <> "" -+ -+ let generic_quote quotequote s = -+ let l = String.length s in -+ let b = Buffer.create (l + 20) in -+ Buffer.add_char b '\''; -+ for i = 0 to l - 1 do -+ if s.[i] = '\'' then -+ Buffer.add_string b quotequote -+ else -+ Buffer.add_char b s.[i] -+ done; -+ Buffer.add_char b '\''; -+ Buffer.contents b -+ -+ let unixquote = generic_quote "'\\''" -+ -+ let win = Sys.os_type = "Win32" -+ -+ let quote str = -+ if win && use_bash () then -+ unixquote str -+ else -+ quote str -+ -+ let get_naccu accu str first pos = -+ if first = pos then -+ accu -+ else -+ let nlen = pos - first in -+ let nstr = String.sub str first nlen in -+ if nlen = 1 && nstr = "." then -+ accu -+ else if nlen = 2 && nstr = ".." then -+ match accu with -+ | [] -> [ nstr ] -+ | ".."::_ -> nstr::accu -+ | hd::tl -> tl -+ else -+ nstr::accu -+ -+ let is_path_sep = function -+ | '\\' | '/' -> true -+ | _ -> false -+ -+ -+ let uniform_path path_sep = function -+ | "" -> "" | str -> -+ let rec iter accu str len first pos = -+ if pos >= len then -+ List.rev (get_naccu accu str first pos) -+ else -+ let next = succ pos in -+ match is_path_sep str.[pos] with -+ | true -> iter (get_naccu accu str first pos) str len next next -+ | false -> iter accu str len first next -+ in -+ let is_unix_root = is_path_sep str.[0] in -+ let len = String.length str in -+ let next_sep = len > 1 && is_path_sep str.[1] in -+ let is_network_root = is_unix_root && next_sep in -+ let is_currel = str.[0] = '.' && ( next_sep || len = 1 ) in -+ let l = iter [] str len 0 0 in -+ let l_min = -+ match l with -+ | [] -> [ "" ] -+ | _ -> l -+ in -+ let l = -+ if is_network_root then -+ ""::""::l_min -+ else if is_unix_root then -+ ""::l_min -+ else if is_currel then -+ "."::l -+ else -+ match l with -+ | s :: [] -> -+ if String.length s = 2 && s.[1] = ':' && -+ len > 2 && is_path_sep str.[2] -+ then -+ s :: [ "" ] -+ else -+ l -+ | _ -> l -+ in -+ String.concat path_sep l -+ -+ - - let make = - function -@@ -472,22 +585,30 @@ - match Sys.os_type with - | "Unix" | "Cygwin" -> ufn - | "Win32" -> -- make -- (List.map -- (fun p -> -- if p = Unix.current_dir_name then -- current_dir_name -- else if p = Unix.parent_dir_name then -- parent_dir_name -+ let path_sep = -+ if use_bash () then -+ "/" - else -- p) -- (OASISString.nsplit ufn '/')) -+ "\\" -+ in -+ uniform_path path_sep ufn - | os_type -> - OASISUtils.failwithf - (f_ "Don't know the path format of os_type %S when translating unix \ - filename. %S") - os_type ufn - -+ let ocamlfind_unquote dir = -+ match Sys.os_type with -+ | "Cygwin" -+ | "Win32" -> -+ let len = String.length dir in -+ if len < 3 || dir.[0] <> '"' || dir.[len - 1] <> '"' || -+ String.contains dir ' ' = false then -+ dir -+ else -+ String.sub dir 1 (len - 2) -+ | _ -> dir - - end - -@@ -1070,8 +1191,8 @@ - - - (* Range of allowed characters *) -- let is_digit c = '0' <= c && c <= '9' -- let is_alpha c = ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') -+ let is_digit = OASISString.is_digit -+ let is_alpha = OASISString.is_alpha - let is_special = function | '.' | '+' | '-' | '~' -> true | _ -> false - - -@@ -2499,6 +2620,7 @@ - ~ctxt - ~is_native - ~source_file_exists -+ ~ext_obj - (cs, bs, obj) = - - let find_module ext modul = -@@ -2512,12 +2634,12 @@ - | [ m ] -> (find_module ".cmi" m, - find_module ".cmo" m, - find_module ".cmx" m, -- find_module ".o" m, -+ find_module ext_obj m, - fun x -> x) - | _ -> ([cs.cs_name ^ ".cmi"], - [cs.cs_name ^ ".cmo"], - [cs.cs_name ^ ".cmx"], -- [cs.cs_name ^ ".o"], -+ [cs.cs_name ^ ext_obj], - OASISUnixPath.concat bs.bs_path) - in - List.map (List.map f) ( -@@ -2877,26 +2999,170 @@ - open OASISUtils - open OASISMessage - -+ let is_dubious_char = function -+ | '+' | '~' | ':' | '.' | '-' | '_' | '/' | '\\' -> false -+ | c -> -+ OASISString.is_digit c = false && -+ OASISString.is_alpha c = false - -- (* TODO: I don't like this quote, it is there because $(rm) foo expands to -- * 'rm -f' foo... -- *) -- let run ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ -+ let win_quote_needed str = -+ let f = function -+ | 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' -+ | '_' | '-' | '~' | '.' | ':' | ',' | '\\' -> false -+ | _ -> true -+ in -+ str = "" || OASISString.exists f str -+ -+ let is_simple_command str = -+ String.length str > 0 && -+ not (OASISString.exists is_dubious_char str) -+ -+ let is_path_sep = function -+ | '/' | '\\' -> true -+ | _ -> false -+ -+ let starts_with_absolute_path cmd = -+ let len = String.length cmd in -+ if len < 3 then -+ false -+ else -+ let c0 = cmd.[0] in -+ let c1 = cmd.[1] in -+ if is_path_sep c0 && is_path_sep c1 then -+ true -+ else if len = 3 then -+ false -+ else -+ OASISString.is_alpha c0 && c1 = ':' && is_path_sep cmd.[2] -+ -+ let exe_exts = lazy -+ begin -+ let exts = -+ try -+ OASISString.nsplit -+ (Sys.getenv "PATHEXT") -+ ';' -+ with -+ | Not_found -> [] -+ in -+ let exts' = -+ List.filter -+ ( fun a -> a <> "" && a.[0] = '.' && a <> ".exe" ) -+ (List.map OASISString.lowercase_ascii exts) (* windows file system doesn't care *) -+ in -+ ".exe"::exts' -+ end -+ -+ let exe_file_exists fln = -+ Sys.file_exists fln || -+ List.exists -+ (fun a -> Sys.file_exists ( fln ^ a ) ) -+ (Lazy.force exe_exts) -+ -+ -+ let quote_anyway cmd = -+ if Sys.os_type <> "Win32" then -+ false -+ else if is_simple_command cmd then -+ true -+ else -+ OASISString.exists OASISString.is_whitespace cmd && -+ starts_with_absolute_path cmd && -+ exe_file_exists cmd -+ -+ -+ let run_bash ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ let fn = Filename.temp_file "oasis-" ".sh" in -+ let fn_deleted = ref false in -+ try -+ begin -+ let ch = open_out_bin fn in -+ let ch_closed = ref false in -+ try -+ begin - let cmd = -- if quote then -- if Sys.os_type = "Win32" then -- if String.contains cmd ' ' then -- (* Double the 1st double quote... win32... sigh *) -- "\""^(Filename.quote cmd) -+ if quote || quote_anyway cmd then -+ OASISHostPath.quote (OASISHostPath.of_unix cmd) -+ else -+ cmd -+ in -+ output_string ch cmd; -+ List.iter -+ ( fun s -> output_char ch ' '; output_string ch s ) -+ args ; -+ output_char ch '\n'; -+ ch_closed:=true ; -+ close_out ch; -+ let bash = !OASISHostPath.bash_cmd () in -+ let add_quotes = ref false in -+ let shell_cmd = -+ if Sys.os_type <> "Win32" then -+ Filename.quote bash -+ else -+ if win_quote_needed bash = false then -+ bash -+ else -+ begin -+ add_quotes := true; -+ Filename.quote bash -+ end -+ in -+ let cmdline_orig = String.concat " " (cmd :: args) in -+ let cmdline = -+ let s = shell_cmd ^ " " ^ (Filename.quote fn) in -+ if !add_quotes then -+ "\"" ^ s ^ "\"" - else -+ s -+ in -+ info ~ctxt (f_ "Running command '%s'") cmdline_orig; -+ let ret = Sys.command cmdline in -+ fn_deleted := true; -+ Sys.remove fn; -+ match f_exit_code, ret with -+ | None, 0 -> () -+ | None, i -> -+ failwithf -+ (f_ "Command '%s' terminated with error code %d") -+ cmdline_orig i -+ | Some f, i -> -+ f i -+ end -+ with -+ | x when !ch_closed = false -> -+ close_out_noerr ch; -+ raise x -+ end -+ with -+ | x when !fn_deleted = false -> -+ (try Sys.remove fn with _ -> () ) ; -+ raise x -+ -+ let run_default ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ let add_quotes = ref false in -+ let cmd = -+ if quote || quote_anyway cmd then -+ if Sys.os_type = "Win32" then -+ begin -+ if win_quote_needed cmd = false then - cmd - else -+ begin -+ add_quotes := true; -+ Filename.quote cmd -+ end -+ end -+ else - Filename.quote cmd - else - cmd - in - let cmdline = -- String.concat " " (cmd :: args) -+ let s = String.concat " " (cmd :: args) in -+ match !add_quotes with -+ | true -> "\"" ^ s ^ "\"" -+ | false -> s - in - info ~ctxt (f_ "Running command '%s'") cmdline; - match f_exit_code, Sys.command cmdline with -@@ -2908,6 +3174,13 @@ - | Some f, i -> - f i - -+ let run ~ctxt ?f_exit_code ?quote cmd args = -+ if OASISHostPath.use_bash () && -+ (Sys.os_type <> "Win32" || not (Filename.check_suffix cmd ".bat")) -+ then -+ run_bash ~ctxt ?f_exit_code ?quote cmd args -+ else -+ run_default ~ctxt ?f_exit_code ?quote cmd args - - let run_read_output ~ctxt ?f_exit_code cmd args = - let fn = -@@ -3018,7 +3291,7 @@ - ) alternatives - - -- let which ~ctxt prg = -+ let which ?(plain=false) ?ctxt prg = - let path_sep = - match Sys.os_type with - | "Win32" -> -@@ -3030,11 +3303,19 @@ - let exec_ext = - match Sys.os_type with - | "Win32" -> -- "" :: (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep) -+ "" :: (List.map -+ OASISString.lowercase_ascii -+ (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep)) - | _ -> - [""] - in -+ let p = - find_file ~case_sensitive:false [path_lst; [prg]] exec_ext -+ in -+ if plain then -+ p -+ else -+ OASISHostPath.of_unix p - - - (**/**) -@@ -3051,35 +3332,44 @@ - dn - - -- let q = Filename.quote -+ let q s = OASISHostPath.quote (OASISHostPath.of_unix s) - (**/**) - -- - let cp ~ctxt ?(recurse=false) src tgt = - if recurse then -- match Sys.os_type with -- | "Win32" -> -- OASISExec.run ~ctxt -- "xcopy" [q src; q tgt; "/E"] -- | _ -> -- OASISExec.run ~ctxt -- "cp" ["-r"; q src; q tgt] -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then -+ let tgt_real = -+ if Sys.file_exists tgt = false then -+ begin -+ OASISExec.run ~ctxt "md" [q tgt]; -+ tgt -+ end - else -- OASISExec.run ~ctxt -- (match Sys.os_type with -- | "Win32" -> "copy" -- | _ -> "cp") -- [q src; q tgt] -- -+ let base = Filename.basename src in -+ if base = "." then -+ tgt -+ else -+ let tgt_real = Filename.concat tgt base in -+ if Sys.file_exists tgt_real = false then -+ OASISExec.run ~ctxt "md" [q tgt_real]; -+ tgt_real -+ in -+ OASISExec.run ~ctxt "xcopy" [q src; q tgt_real; "/E" ; "/Q" ; "/Y"] -+ else -+ OASISExec.run ~ctxt "cp" ["-r"; q src; q tgt] -+ else if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then -+ OASISExec.run ~ctxt "copy" [q src; q tgt ; "/Y"] -+ else -+ OASISExec.run ~ctxt "cp" [q src; q tgt] - - let mkdir ~ctxt tgt = - OASISExec.run ~ctxt -- (match Sys.os_type with -- | "Win32" -> "md" -- | _ -> "mkdir") -+ ( if Sys.os_type = "Win32" && not (OASISHostPath.use_bash ()) then -+ "md" -+ else -+ "mkdir" ) - [q tgt] - -- - let rec mkdir_parent ~ctxt f tgt = - let tgt = - fix_dir tgt -@@ -3105,10 +3395,9 @@ - - let rmdir ~ctxt tgt = - if Sys.readdir tgt = [||] then begin -- match Sys.os_type with -- | "Win32" -> -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then - OASISExec.run ~ctxt "rd" [q tgt] -- | _ -> -+ else - OASISExec.run ~ctxt "rm" ["-r"; q tgt] - end else begin - OASISMessage.error ~ctxt -@@ -3162,7 +3451,7 @@ - end - - --# 3165 "setup.ml" -+# 3454 "setup.ml" - module BaseEnvLight = struct - (* # 22 "src/base/BaseEnvLight.ml" *) - -@@ -3242,7 +3531,7 @@ - end - - --# 3245 "setup.ml" -+# 3534 "setup.ml" - module BaseContext = struct - (* # 22 "src/base/BaseContext.ml" *) - -@@ -3333,7 +3622,7 @@ - let var_lxr = Genlex.make_lexer [] - - -- let rec var_expand str = -+ let rec var_expand ?(quoted=false) str = - let buff = - Buffer.create ((String.length str) * 2) - in -@@ -3361,7 +3650,11 @@ - | [Genlex.Ident "ocaml_escaped"; Genlex.String s] -> - String.escaped s - | [Genlex.Ident nm] -> -- var_get nm -+ let s = var_get nm in -+ if quoted then -+ OASISHostPath.quote s -+ else -+ s - | _ -> - failwithf - (f_ "Unknown expression '%s' in variable expansion of %s.") -@@ -3899,9 +4192,11 @@ - in - let findlib_dir pkg = - let dir = -+ OASISHostPath.of_unix ( -+ OASISHostPath.ocamlfind_unquote ( - OASISExec.run_read_one_line ~ctxt:!BaseContext.default - (ocamlfind ()) -- ["query"; "-format"; "%d"; pkg] -+ ["query"; "-format"; "%d"; pkg] ) ) - in - if Sys.file_exists dir && Sys.is_directory dir then - dir -@@ -4031,6 +4326,9 @@ - match nm with - | "ocaml_version" -> - "version", chop_version_suffix -+ | "standard_library" -+ | "standard_library_default" -> -+ nm, ( fun x -> OASISHostPath.of_unix x) - | _ -> nm, (fun x -> x) - in - var_redefine -@@ -4170,15 +4468,43 @@ - - - let (/) a b = -- if os_type () = Sys.os_type then -+ let os = os_type () in -+ if os = Sys.os_type then -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () then -+ OASISUnixPath.concat a b -+ else - Filename.concat a b -- else if os_type () = "Unix" || os_type () = "Cygwin" then -+ else if os = "Unix" || os = "Cygwin" then - OASISUnixPath.concat a b - else -- OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") -- (os_type ()) -+ OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") os - (**/**) - -+ let auto_bash = -+ lazy ( -+ try -+ let bash = OASISFileUtil.which ~plain:true "bash" in -+ let sh = Filename.concat (Filename.dirname bash) "sh.exe" in -+ if Sys.file_exists sh then -+ sh -+ else -+ bash -+ with -+ | Not_found | Sys_error _ -> "" ) -+ -+ let auto_bash () = -+ if Sys.os_type <> "Win32" then -+ "" -+ else -+ Lazy.force auto_bash -+ -+ let bash_cmd = -+ var_define -+ ~short_desc:(fun () -> s_ "Enforced bash shell:") -+ ~cli:CLIAuto -+ ~arg_help:"program" -+ "use_bash" -+ auto_bash - - let prefix = - p "prefix" -@@ -4186,10 +4512,30 @@ - (fun () -> - match os_type () with - | "Win32" -> -+ let getenv w = -+ try -+ Some(Sys.getenv w) -+ with -+ | Not_found -> None -+ in -+ let s = -+ if Sys.word_size = 64 then -+ getenv "ProgramW6432" -+ else -+ None -+ in -+ let s = -+ if s = None then -+ getenv "PROGRAMFILES" -+ else -+ s -+ in - let program_files = -- Sys.getenv "PROGRAMFILES" -+ match s with -+ | None -> "C:\\Program Files" -+ | Some x -> x - in -- program_files/(pkg_name ()) -+ OASISHostPath.of_unix (program_files/(pkg_name ())) - | _ -> - "/usr/local") - -@@ -4275,7 +4621,11 @@ - let docdir = - p "docdir" - (fun () -> s_ "Documentation root") -- (fun () -> "$datarootdir"/"doc"/"$pkg_name") -+ (fun () -> -+ match os_type () with -+ | "Win32" -> "$datarootdir"/"doc"/ ( pkg_name () ) -+ | _ -> "$datarootdir"/"doc"/"$pkg_name" -+ ) - - - let htmldir = -@@ -4349,9 +4699,10 @@ - ~short_desc:(fun () -> s_ "Remove a file.") - "rm" - (fun () -> -- match os_type () with -- | "Win32" -> "del" -- | _ -> "rm -f") -+ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then -+ "del" -+ else -+ "rm -f" ) - - - let rmdir = -@@ -4359,9 +4710,10 @@ - ~short_desc:(fun () -> s_ "Remove a directory.") - "rmdir" - (fun () -> -- match os_type () with -- | "Win32" -> "rd" -- | _ -> "rm -rf") -+ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then -+ "rd" -+ else -+ "rm -rf") - - - let debug = -@@ -4425,14 +4777,24 @@ - let has_native_dynlink = - let ocamlfind = ocamlfind () in - try -- let fn = -+ let fn1 = -+ OASISHostPath.ocamlfind_unquote ( -+ OASISExec.run_read_one_line -+ ~ctxt:!BaseContext.default -+ ocamlfind -+ ["query"; "-predicates"; "native"; "dynlink"; -+ "-format"; "%d"] ) -+ in -+ let fn2 = -+ OASISHostPath.ocamlfind_unquote ( - OASISExec.run_read_one_line - ~ctxt:!BaseContext.default - ocamlfind - ["query"; "-predicates"; "native"; "dynlink"; -- "-format"; "%d/%a"] -+ "-format"; "%a"] -+ ) - in -- Sys.file_exists fn -+ fn1 <> "" && fn2 <> "" && Sys.file_exists (Filename.concat fn1 fn2) - with _ -> - false - in -@@ -4459,6 +4821,8 @@ - rpkg := Some pkg; - List.iter (fun f -> f pkg.oasis_version) !var_cond - -+ let () = -+ OASISHostPath.bash_cmd := bash_cmd - end - - module BaseFileAB = struct -@@ -4734,6 +5098,7 @@ - ~source_file_exists:(fun fn -> - OASISFileUtil.file_exists_case (OASISHostPath.of_unix fn)) - ~is_native:(bool_of_string (is_native ())) -+ ~ext_obj:(ext_obj()) - (cs, bs, obj) - in - let evs = -@@ -4759,7 +5124,7 @@ - OASISExec.run ~ctxt:!BaseContext.default ~quote:false - (var_expand cmd) - (List.map -- var_expand -+ (var_expand ~quoted:true) - (args @ (Array.to_list extra_args))) - - -@@ -5033,9 +5398,25 @@ - - let configure ~ctxt t args = - (* Run configure *) -+ -+ let rec f = function -+ | [] -> -+ begin -+ try -+ let x = Sys.getenv "USE_BASH" in -+ OASISHostPath.bash_cmd := (fun () -> x); -+ with -+ _ -> () -+ end -+ | "--use-bash"::x::_ -> -+ OASISHostPath.bash_cmd := (fun () -> x); -+ | _::tl -> f tl -+ in -+ f (Array.to_list args); - BaseCustom.hook - t.package.conf_custom - (fun () -> -+ OASISHostPath.bash_cmd := BaseStandardVar.bash_cmd; - (* Reload if preconf has changed it *) - begin - try -@@ -5665,7 +6046,7 @@ - end - - --# 5668 "setup.ml" -+# 6049 "setup.ml" - module InternalConfigurePlugin = struct - (* # 22 "src/plugins/internal/InternalConfigurePlugin.ml" *) - -@@ -5945,12 +6326,21 @@ - let install_findlib_ev = "install-findlib" - - -- (* TODO: this can be more generic and used elsewhere. *) -- let win32_max_command_line_length = 8000 -- -- - let split_install_command ocamlfind findlib_name meta files = -- if Sys.os_type = "Win32" then -+ if Sys.os_type <> "Win32" then -+ ["install" :: findlib_name :: meta :: files] -+ else -+ let f s = -+ OASISHostPath.quote ( OASISHostPath.of_unix s ) -+ in -+ let files = List.map f files in -+ let meta = f meta in -+ let win32_max_command_line_length = -+ if OASISHostPath.use_bash () = false then -+ 7900 -+ else -+ 30000 -+ in - (* Arguments for the first command: *) - let first_args = ["install"; findlib_name; meta] in - (* Arguments for remaining commands: *) -@@ -6008,10 +6398,11 @@ - let cmds = split other_args others in - cmd :: cmds - in -+ if files = [] then -+ [ first_args ] -+ else - (* The first command does not use -add: *) - split first_args files -- else -- ["install" :: findlib_name :: meta :: files] - - - let install = -@@ -6471,7 +6862,7 @@ - end - - --# 6474 "setup.ml" -+# 6865 "setup.ml" - module OCamlbuildCommon = struct - (* # 22 "src/plugins/ocamlbuild/OCamlbuildCommon.ml" *) - -@@ -6844,7 +7235,7 @@ - end - - --# 6847 "setup.ml" -+# 7238 "setup.ml" - module CustomPlugin = struct - (* # 22 "src/plugins/custom/CustomPlugin.ml" *) - -@@ -6976,7 +7367,7 @@ - end - - --# 6979 "setup.ml" -+# 7370 "setup.ml" - open OASISTypes;; - - let setup_t = -@@ -7374,7 +7765,19 @@ - bs_c_sources = ["cstruct_stubs.c"]; - bs_data_files = []; - bs_findlib_extra_files = []; -- bs_ccopt = [(OASISExpr.EBool true, ["-O3"; "-Wall"])]; -+ bs_ccopt = -+ [ -+ (OASISExpr.EBool true, []); -+ (OASISExpr.EOr -+ (OASISExpr.ETest ("system", "win32"), -+ OASISExpr.ETest ("system", "win64")), -+ ["/Ox"]); -+ (OASISExpr.ENot -+ (OASISExpr.EOr -+ (OASISExpr.ETest ("system", "win32"), -+ OASISExpr.ETest ("system", "win64"))), -+ ["-O3"; "-Wall"]) -+ ]; - bs_cclib = [(OASISExpr.EBool true, [])]; - bs_dlllib = [(OASISExpr.EBool true, [])]; - bs_dllpath = [(OASISExpr.EBool true, [])]; -@@ -9130,7 +9533,7 @@ - }; - oasis_fn = Some "_oasis"; - oasis_version = "0.4.8"; -- oasis_digest = Some "\218p\129 \019[\028\020b\147\002\153\152\1487"; -+ oasis_digest = Some "\213\rK\252\184A\027I\\\217\018\133b\183[\t"; - oasis_exec = None; - oasis_setup_args = []; - setup_update = false -@@ -9138,7 +9541,7 @@ - - let setup () = BaseSetup.setup setup_t;; - --# 9142 "setup.ml" -+# 9545 "setup.ml" - let setup_t = BaseCompat.Compat_0_4.adapt_setup_t setup_t - open BaseCompat.Compat_0_4 - (* OASIS_STOP *) diff --git a/repo/win32/packages/upstream/cstruct.2.4.1/opam b/repo/win32/packages/upstream/cstruct.2.4.1/opam deleted file mode 100644 index fef61bf4d..000000000 --- a/repo/win32/packages/upstream/cstruct.2.4.1/opam +++ /dev/null @@ -1,65 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire" - "Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott" - "Mindy Preston" ] -homepage: "https://github.com/mirage/ocaml-cstruct" -license: "ISC" -dev-repo: "https://github.com/mirage/ocaml-cstruct.git" -bug-reports: "https://github.com/mirage/ocaml-cstruct/issues" -tags: [ - "org:mirage" - "org:ocamllabs" - "org:xapi-project" -] -build: [ - ["./configure" - "--prefix" prefix - "--%{lwt+base-unix:enable}%-lwt" - "--enable-ppx" - "--%{async:enable}%-async" - "--%{base-unix:enable}%-unix"] - [make] -] -build-test: [ - ["./configure" - "--prefix" prefix - "--%{lwt:enable}%-lwt" - "--enable-ppx" - "--%{async:enable}%-async" - "--%{base-unix:enable}%-unix" - "--enable-tests"] - [make] - [make "test"] -] -install: [ - [make "install"] - [make "js-install"] -] -remove: [ - [make "js-uninstall"] - ["ocamlfind" "remove" "cstruct"] -] -depends: [ - "ocamlfind" {build} - "ounit" {test} - "ocplib-endian" - "sexplib" - "base-bytes" - "ocaml-migrate-parsetree" - "ppx_tools_versioned" -] -depopts: [ - "async" - "lwt" - "base-unix" -] -available: [ocaml-version >= "4.02.3"] -depexts: [ - [ ["debian"] ["time"] ] - [ ["ubuntu"] ["time"] ] -] -patches: [ - "ocaml-cstruct-2.4.1.patch" {os = "win32"} - "patch-oasis-cstruct.2.4.1" {os = "win32"} -] diff --git a/repo/win32/packages/upstream/cstruct.2.4.1/url b/repo/win32/packages/upstream/cstruct.2.4.1/url deleted file mode 100644 index 14a0b0893..000000000 --- a/repo/win32/packages/upstream/cstruct.2.4.1/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-cstruct/archive/v2.4.1.tar.gz" -checksum: "e058a3db193f5fd4706db62a19ed3b98" diff --git a/repo/win32/packages/upstream/cstruct.3.1.1/descr b/repo/win32/packages/upstream/cstruct.3.1.1/descr new file mode 100644 index 000000000..04ad3d2ec --- /dev/null +++ b/repo/win32/packages/upstream/cstruct.3.1.1/descr @@ -0,0 +1,5 @@ +Access C-like structures directly from OCaml + +Cstruct is a library and syntax extension to make it easier to access C-like +structures directly from OCaml. It supports both reading and writing to these +structures, and they are accessed via the `Bigarray` module. \ No newline at end of file diff --git a/repo/win32/packages/upstream/cstruct.3.1.1/opam b/repo/win32/packages/upstream/cstruct.3.1.1/opam new file mode 100644 index 000000000..ebd3ec667 --- /dev/null +++ b/repo/win32/packages/upstream/cstruct.3.1.1/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire" + "Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott" + "Mindy Preston" "Thomas Leonard" ] +homepage: "https://github.com/mirage/ocaml-cstruct" +license: "ISC" +dev-repo: "https://github.com/mirage/ocaml-cstruct.git" +bug-reports: "https://github.com/mirage/ocaml-cstruct/issues" +tags: [ "org:mirage" "org:ocamllabs" ] +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: ["jbuilder" "runtest" "-p" name] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "ocplib-endian" + "sexplib" + "base-bytes" + "ounit" {test} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/cstruct.3.1.1/url b/repo/win32/packages/upstream/cstruct.3.1.1/url new file mode 100644 index 000000000..e8888b702 --- /dev/null +++ b/repo/win32/packages/upstream/cstruct.3.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cstruct/releases/download/v3.1.1/cstruct-3.1.1.tbz" +checksum: "9834ebf3e161ae62577962332b544c24" \ No newline at end of file diff --git a/repo/win32/packages/upstream/cygwinpath.0.1.2/url b/repo/win32/packages/upstream/cygwinpath.0.1.2/url deleted file mode 100644 index abe5bf1f2..000000000 --- a/repo/win32/packages/upstream/cygwinpath.0.1.2/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://dl.dropboxusercontent.com/s/w3a9rsqpi24xfk0/cygwinpath-0.1.2.tar.xz" -checksum: "236fd42dc63694aa644205fb5636ab53" diff --git a/repo/win32/packages/upstream/cygwinpath.0.1.2/descr b/repo/win32/packages/upstream/cygwinpath.0.1.3/descr similarity index 100% rename from repo/win32/packages/upstream/cygwinpath.0.1.2/descr rename to repo/win32/packages/upstream/cygwinpath.0.1.3/descr diff --git a/repo/win32/packages/upstream/cygwinpath.0.1.2/opam b/repo/win32/packages/upstream/cygwinpath.0.1.3/opam similarity index 100% rename from repo/win32/packages/upstream/cygwinpath.0.1.2/opam rename to repo/win32/packages/upstream/cygwinpath.0.1.3/opam diff --git a/repo/win32/packages/upstream/cygwinpath.0.1.3/url b/repo/win32/packages/upstream/cygwinpath.0.1.3/url new file mode 100644 index 000000000..5ba488be5 --- /dev/null +++ b/repo/win32/packages/upstream/cygwinpath.0.1.3/url @@ -0,0 +1,2 @@ +archive: "https://dl.dropboxusercontent.com/s/e1a64btecpuyez9/cygwinpath-0.1.3.tar.xz" +checksum: "2137d1723f62d48aebb3a3ed84722b42" diff --git a/repo/win32/packages/upstream/datakit-server-9p.0.11.0/descr b/repo/win32/packages/upstream/datakit-server-9p.0.11.0/descr new file mode 100644 index 000000000..ee93dd205 --- /dev/null +++ b/repo/win32/packages/upstream/datakit-server-9p.0.11.0/descr @@ -0,0 +1,12 @@ +Orchestrate applications using a Git-like dataflow + +*DataKit* is a tool to orchestrate applications using a Git-like dataflow. It +revisits the UNIX pipeline concept, with a modern twist: streams of +tree-structured data instead of raw text. DataKit allows you to define +complex build pipelines over version-controlled data. + +DataKit is currently used as the coordination +layer for [HyperKit](http://github.com/docker/hyperkit), the +hypervisor component of +[Docker for Mac and Windows](https://blog.docker.com/2016/03/docker-for-mac-windows-beta/), and +for the [DataKitCI][] continuous integration system. \ No newline at end of file diff --git a/repo/win32/packages/upstream/datakit-server-9p.0.11.0/opam b/repo/win32/packages/upstream/datakit-server-9p.0.11.0/opam new file mode 100644 index 000000000..bedd18706 --- /dev/null +++ b/repo/win32/packages/upstream/datakit-server-9p.0.11.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +authors: ["Thomas Leonard" "Magnus Skjegstad" + "David Scott" "Thomas Gazagnaire"] +license: "Apache" +homepage: "https://github.com/moby/datakit" +bug-reports: "https://github.com/moby/datakit/issues" +dev-repo: "https://github.com/moby/datakit.git" +doc: "https://docker.github.io/datakit/" + +build: ["jbuilder" "build" "-p" name "-j" jobs] + +depends: [ + "jbuilder" {build} + "datakit-server" {>= "0.11.0"} + "mirage-flow-lwt" + "protocol-9p" {>= "0.11.0"} + "sexplib" +] diff --git a/repo/win32/packages/upstream/datakit-server-9p.0.11.0/url b/repo/win32/packages/upstream/datakit-server-9p.0.11.0/url new file mode 100644 index 000000000..3b7348c50 --- /dev/null +++ b/repo/win32/packages/upstream/datakit-server-9p.0.11.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/moby/datakit/releases/download/0.11.0/datakit-0.11.0.tbz" +checksum: "b1b7bb4d727d5c7e61f34045be96f178" \ No newline at end of file diff --git a/repo/win32/packages/upstream/datakit-server.0.9.0/descr b/repo/win32/packages/upstream/datakit-server.0.11.0/descr similarity index 100% rename from repo/win32/packages/upstream/datakit-server.0.9.0/descr rename to repo/win32/packages/upstream/datakit-server.0.11.0/descr diff --git a/repo/win32/packages/upstream/datakit-server.0.11.0/opam b/repo/win32/packages/upstream/datakit-server.0.11.0/opam new file mode 100644 index 000000000..092b9aee3 --- /dev/null +++ b/repo/win32/packages/upstream/datakit-server.0.11.0/opam @@ -0,0 +1,21 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +authors: ["Thomas Leonard" "Magnus Skjegstad" + "David Scott" "Thomas Gazagnaire"] +license: "Apache" +homepage: "https://github.com/moby/datakit" +bug-reports: "https://github.com/moby/datakit/issues" +dev-repo: "https://github.com/moby/datakit.git" +doc: "https://docker.github.io/datakit/" + +build: ["jbuilder" "build" "-p" name "-j" jobs] + +depends: [ + "jbuilder" {build} + "astring" + "logs" + "rresult" + "fmt" + "lwt" {>= "3.0.0"} + "cstruct" {>= "2.2.0"} +] diff --git a/repo/win32/packages/upstream/datakit-server.0.11.0/url b/repo/win32/packages/upstream/datakit-server.0.11.0/url new file mode 100644 index 000000000..3b7348c50 --- /dev/null +++ b/repo/win32/packages/upstream/datakit-server.0.11.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/moby/datakit/releases/download/0.11.0/datakit-0.11.0.tbz" +checksum: "b1b7bb4d727d5c7e61f34045be96f178" \ No newline at end of file diff --git a/repo/win32/packages/upstream/datakit-server.0.9.0/opam b/repo/win32/packages/upstream/datakit-server.0.9.0/opam deleted file mode 100644 index e1343f000..000000000 --- a/repo/win32/packages/upstream/datakit-server.0.9.0/opam +++ /dev/null @@ -1,25 +0,0 @@ -opam-version: "1.2" -maintainer: "thomas@gazagnaire.org" -authors: ["Thomas Leonard" "Magnus Skjegstad" - "David Scott" "Thomas Gazagnaire"] -license: "Apache" -homepage: "https://github.com/docker/datakit" -bug-reports: "https://github.com/docker/datakit/issues" -dev-repo: "https://github.com/docker/datakit.git" -doc: "https://docker.github.io/datakit/" - -build: [ - "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "-n" name -] - -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "base-bytes" - "astring" "logs" "uri" "rresult" "fmt" - "cstruct" {>= "2.2.0"} - "protocol-9p" {>= "0.7.4" & <"0.9.0"} - "sexplib" - "mirage-types-lwt" {>="2.6.0" & < "3.0.0"} -] diff --git a/repo/win32/packages/upstream/datakit-server.0.9.0/url b/repo/win32/packages/upstream/datakit-server.0.9.0/url deleted file mode 100644 index ee23b0053..000000000 --- a/repo/win32/packages/upstream/datakit-server.0.9.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/docker/datakit/releases/download/0.9.0/datakit-0.9.0.tbz" -checksum: "46e4fcd1e9c05e4587ae1663518a8c74" \ No newline at end of file diff --git a/repo/win32/packages/upstream/depext.1.0.4/url b/repo/win32/packages/upstream/depext.1.0.4/url deleted file mode 100644 index 640f4a750..000000000 --- a/repo/win32/packages/upstream/depext.1.0.4/url +++ /dev/null @@ -1,3 +0,0 @@ -http: - "https://github.com/ocaml/opam-depext/releases/download/v1.0.4/opam-depext-full-1.0.4.tbz" -checksum: "532973c26dfe893f624eada308440f2f" diff --git a/repo/win32/packages/upstream/depext.1.0.4/descr b/repo/win32/packages/upstream/depext.1.0.5/descr similarity index 100% rename from repo/win32/packages/upstream/depext.1.0.4/descr rename to repo/win32/packages/upstream/depext.1.0.5/descr diff --git a/repo/win32/packages/upstream/depext.1.0.4/files/opam-depext-1.0.4.patch b/repo/win32/packages/upstream/depext.1.0.5/files/opam-depext-1.0.5.patch similarity index 99% rename from repo/win32/packages/upstream/depext.1.0.4/files/opam-depext-1.0.4.patch rename to repo/win32/packages/upstream/depext.1.0.5/files/opam-depext-1.0.5.patch index 229d452d2..1095cff31 100644 --- a/repo/win32/packages/upstream/depext.1.0.4/files/opam-depext-1.0.4.patch +++ b/repo/win32/packages/upstream/depext.1.0.5/files/opam-depext-1.0.5.patch @@ -103,7 +103,7 @@ - (String.concat "," flags) - (String.concat "," opam_packages) + let s = -+ if Sys.win32 then ++ if is_win then + let a = "--external=" ^ (String.concat "," flags) in + let b = "--required-by=" ^ (String.concat "," opam_packages) in + let argv = [| "opam"; "list" ; "--safe" ; "--recursive" ; a ; b |] in @@ -156,7 +156,7 @@ + in + iter [] [] 0 packages | Some `OpenSUSE -> - ["zypper"::"install"::yes ["-y"] packages] + ["zypper"::"install"::yes ["--non-interactive"] packages] | Some (`Other d) -> @@ -314,12 +389,13 @@ | [pkg;_;_;"installed"] -> (try StringMap.find pkg virtual_map @ acc with Not_found -> acc) diff --git a/repo/win32/packages/upstream/depext.1.0.4/opam b/repo/win32/packages/upstream/depext.1.0.5/opam similarity index 90% rename from repo/win32/packages/upstream/depext.1.0.4/opam rename to repo/win32/packages/upstream/depext.1.0.5/opam index 28e041a0d..4a64177c4 100644 --- a/repo/win32/packages/upstream/depext.1.0.4/opam +++ b/repo/win32/packages/upstream/depext.1.0.5/opam @@ -14,4 +14,4 @@ tags: "flags:plugin" dev-repo: "https://github.com/ocaml/opam-depext.git" build: [make] available: [opam-version >= "1.1.0"] -patches: "opam-depext-1.0.4.patch" {os = "win32"} +patches: "opam-depext-1.0.5.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/depext.1.0.5/url b/repo/win32/packages/upstream/depext.1.0.5/url new file mode 100644 index 000000000..65a2704cc --- /dev/null +++ b/repo/win32/packages/upstream/depext.1.0.5/url @@ -0,0 +1,2 @@ +http: "https://github.com/ocaml/opam-depext/releases/download/v1.0.5/opam-depext-full-1.0.5.tbz" +checksum: "85bcce28ed7efa75cf54bbff531eea14" diff --git a/repo/win32/packages/upstream/dns-forward.0.9.0/descr b/repo/win32/packages/upstream/dns-forward.0.9.0/descr new file mode 100644 index 000000000..b357f016f --- /dev/null +++ b/repo/win32/packages/upstream/dns-forward.0.9.0/descr @@ -0,0 +1,8 @@ +Library and tools for creating forwarding DNS servers + +Features: + +- UDP and TCP DNS forwarding +- support for sending queries to specific servers based on domain +- dynamic configuration updates +- extra records (e.g. from /etc/hosts) diff --git a/repo/win32/packages/upstream/dns-forward.0.9.0/opam b/repo/win32/packages/upstream/dns-forward.0.9.0/opam new file mode 100644 index 000000000..4a06cfff7 --- /dev/null +++ b/repo/win32/packages/upstream/dns-forward.0.9.0/opam @@ -0,0 +1,35 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: ["David Scott"] +license: "ISC" +homepage: "https://github.com/mirage/ocaml-dns-forward" +bug-reports: "https://github.com/mirage/ocaml-dns-forward/issues" +dev-repo: "https://github.com/mirage/ocaml-dns-forward.git" +doc: "https://mirage.github.io/ocaml-dns-forward/" + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: ["jbuilder" "runtest" "-p" name] + +depends: [ + "jbuilder" {build & >= "1.0+beta10"} + "cstruct" {>= "3.0.0"} + "logs" {>= "0.5.0"} + "lwt" {>= "2.7.0"} + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-clock-lwt" + "mirage-channel-lwt" + "mirage-time-lwt" + "duration" + "dns" + "rresult" + "astring" + "fmt" + "result" + "mtime" + "sexplib" + "ipaddr" +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/dns-forward.0.9.0/url b/repo/win32/packages/upstream/dns-forward.0.9.0/url new file mode 100644 index 000000000..84185871a --- /dev/null +++ b/repo/win32/packages/upstream/dns-forward.0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-dns-forward/releases/download/v0.9.0/dns-forward-0.9.0.tbz" +checksum: "851d7b0ad1658586ff6554117dedf845" \ No newline at end of file diff --git a/repo/win32/packages/upstream/dns-lwt.1.0.0/descr b/repo/win32/packages/upstream/dns-lwt.1.0.0/descr new file mode 100644 index 000000000..84cefc577 --- /dev/null +++ b/repo/win32/packages/upstream/dns-lwt.1.0.0/descr @@ -0,0 +1,29 @@ +DNS client and server implementation in pure OCaml + +This is a pure OCaml implementation of the DNS protocol. It is intended to be +a reasonably high-performance implementation, but clarity is preferred rather +than low-level performance hacks. + +[![Build Status](https://travis-ci.org/mirage/ocaml-dns.svg?branch=master)](https://travis-ci.org/mirage/ocaml-dns) + +To build it, please use the [OPAM](https://opam.ocaml.org) package manager (1.2+): + + opam pin add dns . + +This will install the dependencies needed and give you a working development +version of the library. + +Packages: + +* `lib/` contains the core DNS protocol, which is packed into the `Dns` module. +* `lib_test/` contains unit tests and sample uses of the library. + In particular, `time_server` is a simple dynamic responder. + +Areas that need work: + +* We need an Lwt-based client iterative resolver + Patches for this are highly welcome! +* EDNS0 extensions +* DNSSEC extensions (using [nocrypto](https://github.com/mirleft/ocaml-nocrypto/)) +* TC bit and TCP fallback +* mDNS resolver \ No newline at end of file diff --git a/repo/win32/packages/upstream/dns-lwt.1.0.0/opam b/repo/win32/packages/upstream/dns-lwt.1.0.0/opam new file mode 100644 index 000000000..545c42913 --- /dev/null +++ b/repo/win32/packages/upstream/dns-lwt.1.0.0/opam @@ -0,0 +1,25 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/ocaml-dns" +dev-repo: "https://github.com/mirage/ocaml-dns.git" +bug-reports: "https://github.com/mirage/ocaml-dns/issues" +doc: "https://mirage.github.io/ocaml-dns/" +tags: [ "org:mirage" "org:xapi-project" ] +authors: [ + "Anil Madhavapeddy" "Tim Deegan" "Richard Mortier" "Haris Rotsos" + "David Sheets" "Thomas Gazagnaire" "Luke Dunstan" "David Scott" +] +license: "ISC" + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "mirage-profile" {>="0.8.0"} + "lwt" {>="3.0.0"} + "dns" {>="1.0.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/dns-lwt.1.0.0/url b/repo/win32/packages/upstream/dns-lwt.1.0.0/url new file mode 100644 index 000000000..6eb7b78ec --- /dev/null +++ b/repo/win32/packages/upstream/dns-lwt.1.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-dns/releases/download/v1.0.0/dns-1.0.0.tbz" +checksum: "5fe4efe11671253950f89036a6cc1a21" \ No newline at end of file diff --git a/repo/win32/packages/upstream/dns.1.0.0/descr b/repo/win32/packages/upstream/dns.1.0.0/descr new file mode 100644 index 000000000..84cefc577 --- /dev/null +++ b/repo/win32/packages/upstream/dns.1.0.0/descr @@ -0,0 +1,29 @@ +DNS client and server implementation in pure OCaml + +This is a pure OCaml implementation of the DNS protocol. It is intended to be +a reasonably high-performance implementation, but clarity is preferred rather +than low-level performance hacks. + +[![Build Status](https://travis-ci.org/mirage/ocaml-dns.svg?branch=master)](https://travis-ci.org/mirage/ocaml-dns) + +To build it, please use the [OPAM](https://opam.ocaml.org) package manager (1.2+): + + opam pin add dns . + +This will install the dependencies needed and give you a working development +version of the library. + +Packages: + +* `lib/` contains the core DNS protocol, which is packed into the `Dns` module. +* `lib_test/` contains unit tests and sample uses of the library. + In particular, `time_server` is a simple dynamic responder. + +Areas that need work: + +* We need an Lwt-based client iterative resolver + Patches for this are highly welcome! +* EDNS0 extensions +* DNSSEC extensions (using [nocrypto](https://github.com/mirleft/ocaml-nocrypto/)) +* TC bit and TCP fallback +* mDNS resolver \ No newline at end of file diff --git a/repo/win32/packages/upstream/dns.1.0.0/opam b/repo/win32/packages/upstream/dns.1.0.0/opam new file mode 100644 index 000000000..fedd24c40 --- /dev/null +++ b/repo/win32/packages/upstream/dns.1.0.0/opam @@ -0,0 +1,32 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/ocaml-dns" +dev-repo: "https://github.com/mirage/ocaml-dns.git" +bug-reports: "https://github.com/mirage/ocaml-dns/issues" +doc: "https://mirage.github.io/ocaml-dns/" +authors: [ + "Anil Madhavapeddy" "Tim Deegan" "Richard Mortier" + "Haris Rotsos" "David Sheets" "Thomas Gazagnaire" + "Luke Dunstan" "David Scott" +] +license: "ISC" +tags: [ "org:mirage" "org:xapi-project" ] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "base-bytes" + "jbuilder" {>= "1.0+beta9"} + "cstruct" {>= "3.0.2"} + "ppx_cstruct" {build} + "re" + "ipaddr" {>= "2.6.0"} + "uri" {>= "1.7.0"} + "base64" {>= "2.0.0"} + "hashcons" + "result" +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/dns.1.0.0/url b/repo/win32/packages/upstream/dns.1.0.0/url new file mode 100644 index 000000000..6eb7b78ec --- /dev/null +++ b/repo/win32/packages/upstream/dns.1.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-dns/releases/download/v1.0.0/dns-1.0.0.tbz" +checksum: "5fe4efe11671253950f89036a6cc1a21" \ No newline at end of file diff --git a/repo/win32/packages/upstream/dnssd.0.5.0/descr b/repo/win32/packages/upstream/dnssd.0.5.0/descr new file mode 100644 index 000000000..82ad97bb3 --- /dev/null +++ b/repo/win32/packages/upstream/dnssd.0.5.0/descr @@ -0,0 +1,19 @@ +DNS Service Discovery for macOS + +This library contains bindings to the functions in `dns_sd.h`, which +are used to perform generic DNS queries using the macOS resolver. +This is the best way to ensure that the query results match the +results obtained by other apps on OSX. + +## Usage example + +In a toplevel: + +```ocaml +Dnssd.query "dave.recoil.org" Dns.Packet.Q_A;; +- : (Dns.Packet.rr list, Dnssd.error) result = +Ok + [{Dns.Packet.name = ; cls = Dns.Packet.RR_IN; flush = false; ttl = 187l; rdata = Dns.Packet.A }; + {Dns.Packet.name = ; cls = Dns.Packet.RR_IN; flush = false; ttl = 187l; rdata = Dns.Packet.CNAME }; + {Dns.Packet.name = ; cls = Dns.Packet.RR_IN; flush = false; ttl = 187l; rdata = Dns.Packet.CNAME }] +``` \ No newline at end of file diff --git a/repo/win32/packages/upstream/dnssd.0.5.0/opam b/repo/win32/packages/upstream/dnssd.0.5.0/opam new file mode 100644 index 000000000..1fb84a9a7 --- /dev/null +++ b/repo/win32/packages/upstream/dnssd.0.5.0/opam @@ -0,0 +1,32 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: ["David Scott" "Thomas Gazagnaire"] +license: "ISC" +homepage: "https://github.com/mirage/ocaml-osx-dnssd" +dev-repo: "https://github.com/mirage/ocaml-osx-dnssd.git" +bug-reports: "https://github.com/mirage/ocaml-osx-dnssd/issues" +doc: "https://mirage.github.io/ocaml-osx-dnssd/" +tags: [ + "org:mirage" +] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-j" jobs] +] + +build-test: [ + [ "jbuilder" "runtest" ] +] + +depends: [ + "dns" + "lwt" + "logs" + "fmt" + "cstruct" {>= "2.3.0"} + "jbuilder" {build & >= "1.0+beta10"} + "alcotest" {test} +] + +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/dnssd.0.5.0/url b/repo/win32/packages/upstream/dnssd.0.5.0/url new file mode 100644 index 000000000..5f1db26d3 --- /dev/null +++ b/repo/win32/packages/upstream/dnssd.0.5.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-osx-dnssd/releases/download/v0.5.0/dnssd-0.5.0.tbz" +checksum: "8208d2ee22d572ea42da2a1e258c5d5a" \ No newline at end of file diff --git a/repo/win32/packages/upstream/duration.0.1.0/opam b/repo/win32/packages/upstream/duration.0.1.0/opam index 464351cb5..82e64c803 100644 --- a/repo/win32/packages/upstream/duration.0.1.0/opam +++ b/repo/win32/packages/upstream/duration.0.1.0/opam @@ -11,7 +11,7 @@ depends: [ "ocamlfind" {build} "ocamlbuild" {build} "topkg" {build} - "alcotest" {test & >= "0.6.0"} + "alcotest" {test & >= "0.6.0" & < "0.8.0"} ] build: [ diff --git a/repo/win32/packages/upstream/fd-send-recv.1.0.4/descr b/repo/win32/packages/upstream/fd-send-recv.1.0.4/descr new file mode 100644 index 000000000..6aa8713d1 --- /dev/null +++ b/repo/win32/packages/upstream/fd-send-recv.1.0.4/descr @@ -0,0 +1 @@ +Bindings for sendmsg/recvmsg that allow Unix.file_descrs to be sent and received over Unix domain sockets diff --git a/repo/win32/packages/upstream/fd-send-recv.1.0.4/opam b/repo/win32/packages/upstream/fd-send-recv.1.0.4/opam new file mode 100644 index 000000000..f8fb2aa21 --- /dev/null +++ b/repo/win32/packages/upstream/fd-send-recv.1.0.4/opam @@ -0,0 +1,25 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: [ + "Jonathan Ludlam" + "David Scott" + "David Sheets" + "Euan Harris" + "Vincent Bernardoff" +] +homepage: "https://github.com/djs55/ocaml-fd-send-recv" +bug-reports: "https://github.com/djs55/ocaml-fd-send-recv/issues" +dev-repo: "git://github.com/djs55/ocaml-fd-send-recv" +doc: "https://github.com/djs55/ocaml-fd-send-recv/blob/master/lib/fd_send_recv.mli" +license: "LGPL-2.1+ with OCaml linking exception" +tags: [ + "org:mirage" + "org:xapi-project" +] +build: make +remove: [["ocamlfind" "remove" "fd-send-recv"]] +depends: [ + "ocamlfind" + "ocamlbuild" {build} +] +install: [make "install"] diff --git a/repo/win32/packages/upstream/fd-send-recv.1.0.4/url b/repo/win32/packages/upstream/fd-send-recv.1.0.4/url new file mode 100644 index 000000000..b18dc00b5 --- /dev/null +++ b/repo/win32/packages/upstream/fd-send-recv.1.0.4/url @@ -0,0 +1,2 @@ +archive: "https://github.com/djs55/ocaml-fd-send-recv/archive/v1.0.4.tar.gz" +checksum: "8f3467fe9e46b8f276e14b2411c3f255" diff --git a/repo/win32/packages/upstream/fmt.0.8.3/url b/repo/win32/packages/upstream/fmt.0.8.3/url deleted file mode 100644 index 01f29a059..000000000 --- a/repo/win32/packages/upstream/fmt.0.8.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://erratique.ch/software/fmt/releases/fmt-0.8.3.tbz" -checksum: "bb945d129fc6d89b6acace48b2c9886d" \ No newline at end of file diff --git a/repo/win32/packages/upstream/fmt.0.8.3/descr b/repo/win32/packages/upstream/fmt.0.8.4/descr similarity index 100% rename from repo/win32/packages/upstream/fmt.0.8.3/descr rename to repo/win32/packages/upstream/fmt.0.8.4/descr diff --git a/repo/win32/packages/upstream/fmt.0.8.3/opam b/repo/win32/packages/upstream/fmt.0.8.4/opam similarity index 100% rename from repo/win32/packages/upstream/fmt.0.8.3/opam rename to repo/win32/packages/upstream/fmt.0.8.4/opam diff --git a/repo/win32/packages/upstream/fmt.0.8.4/url b/repo/win32/packages/upstream/fmt.0.8.4/url new file mode 100644 index 000000000..f85f4e374 --- /dev/null +++ b/repo/win32/packages/upstream/fmt.0.8.4/url @@ -0,0 +1,2 @@ +archive: "http://erratique.ch/software/fmt/releases/fmt-0.8.4.tbz" +checksum: "1853cbe019dfe99ef5f3b0011f1653b2" \ No newline at end of file diff --git a/repo/win32/packages/upstream/hashcons.1.0.1/url b/repo/win32/packages/upstream/hashcons.1.0.1/url deleted file mode 100644 index d2c5fe443..000000000 --- a/repo/win32/packages/upstream/hashcons.1.0.1/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/dsheets/ocaml-hashcons/releases/download/1.0.1/ocaml-hashcons-1.0.1.tar.gz" -checksum: "caa6378c30d69baaf703e5f8b903a493" diff --git a/repo/win32/packages/upstream/hashcons.1.0.1/descr b/repo/win32/packages/upstream/hashcons.1.2/descr similarity index 100% rename from repo/win32/packages/upstream/hashcons.1.0.1/descr rename to repo/win32/packages/upstream/hashcons.1.2/descr diff --git a/repo/win32/packages/upstream/hashcons.1.0.1/opam b/repo/win32/packages/upstream/hashcons.1.2/opam similarity index 92% rename from repo/win32/packages/upstream/hashcons.1.0.1/opam rename to repo/win32/packages/upstream/hashcons.1.2/opam index 14cf5006d..93691b022 100644 --- a/repo/win32/packages/upstream/hashcons.1.0.1/opam +++ b/repo/win32/packages/upstream/hashcons.1.2/opam @@ -6,6 +6,7 @@ bug-reports: "https://github.com/backtracking/ocaml-hashcons/issues" authors: [ "Jean-Christophe Filliatre" ] license: "LGPL-2.1 with OCaml linking exception" build: [ + ["autoconf"] ["./configure"] [make "all"] ] @@ -14,6 +15,7 @@ install: [ ] remove: [["ocamlfind" "remove" "hashcons"]] depends: [ + "conf-autoconf" {build} "ocamlfind" {build} "conf-which" {build} ] diff --git a/repo/win32/packages/upstream/hashcons.1.2/url b/repo/win32/packages/upstream/hashcons.1.2/url new file mode 100644 index 000000000..767441224 --- /dev/null +++ b/repo/win32/packages/upstream/hashcons.1.2/url @@ -0,0 +1,3 @@ +http: "https://github.com/backtracking/ocaml-hashcons/archive/1.2.tar.gz" +checksum: "3febf305ffbdd31d6de92c42d382a09e" + diff --git a/repo/win32/packages/upstream/hex.1.1.0/url b/repo/win32/packages/upstream/hex.1.1.0/url deleted file mode 100644 index 62b1851ec..000000000 --- a/repo/win32/packages/upstream/hex.1.1.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-hex/archive/1.1.0.tar.gz" -checksum: "42c9b40590dbe0c6b0492f340c70f3a4" diff --git a/repo/win32/packages/upstream/hex.1.1.0/descr b/repo/win32/packages/upstream/hex.1.1.1/descr similarity index 100% rename from repo/win32/packages/upstream/hex.1.1.0/descr rename to repo/win32/packages/upstream/hex.1.1.1/descr diff --git a/repo/darwin/packages/upstream/hex.1.1.0/opam b/repo/win32/packages/upstream/hex.1.1.1/opam similarity index 75% rename from repo/darwin/packages/upstream/hex.1.1.0/opam rename to repo/win32/packages/upstream/hex.1.1.1/opam index d95ac8606..7ff4119f3 100644 --- a/repo/darwin/packages/upstream/hex.1.1.0/opam +++ b/repo/win32/packages/upstream/hex.1.1.1/opam @@ -5,10 +5,12 @@ homepage: "https://github.com/mirage/ocaml-hex" bug-reports: "https://github.com/mirage/ocaml-hex/issues" dev-repo: "https://github.com/mirage/ocaml-hex.git" license: "ISC" -build: [ [ "jbuilder" "build" ] ] +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] build-test: [ [ "jbuilder" "runtest" ] ] depends: [ - "ocamlfind" {build} - "jbuilder" {>="1.0+beta8"} + "jbuilder" {build & >="1.0+beta8"} "cstruct" {>= "1.7.0"} ] diff --git a/repo/win32/packages/upstream/hex.1.1.1/url b/repo/win32/packages/upstream/hex.1.1.1/url new file mode 100644 index 000000000..2adad720c --- /dev/null +++ b/repo/win32/packages/upstream/hex.1.1.1/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/ocaml-hex/releases/download/v1.1.1/hex-1.1.1.tbz" +checksum: "d09ddf79b977aaa70ae8c6a7a953d54e" diff --git a/repo/win32/packages/upstream/hvsock.1.0.0/descr b/repo/win32/packages/upstream/hvsock.1.0.0/descr new file mode 100644 index 000000000..4b5c307fb --- /dev/null +++ b/repo/win32/packages/upstream/hvsock.1.0.0/descr @@ -0,0 +1,13 @@ +Bindings for Hyper-V AF_VSOCK + +[![Build Status (Linux)](https://travis-ci.org/mirage/ocaml-hvsock.svg)](https://travis-ci.org/mirage/ocaml-hvsock) +[![Build status (Windows)](https://ci.appveyor.com/api/projects/status/974tsg317b4k8xra?svg=true)](https://ci.appveyor.com/project/mirage/ocaml-hvsock/branch/master) + +These bindings allow Host <-> VM communication on Hyper-V systems on both Linux +and Windows. + +*Warning*: the `AF_HYPERV` patches for Linux are not yet merged and hence the +definition of `AF_HYPERV` is not yet stable. If other address families are merged +before this one then the value of `AF_HYPERV` will change! + +Please read [the API documentation](https://djs55.github.io/ocaml-hvsock/index.html). \ No newline at end of file diff --git a/repo/win32/packages/upstream/hvsock.1.0.0/opam b/repo/win32/packages/upstream/hvsock.1.0.0/opam new file mode 100644 index 000000000..f71d3a430 --- /dev/null +++ b/repo/win32/packages/upstream/hvsock.1.0.0/opam @@ -0,0 +1,37 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: [ "David Scott" "Rolf Neugebauer" "Anil Madhavapeddy" "Simon Ferquel"] +license: "ISC" +homepage: "https://github.com/mirage/ocaml-hvsock" +dev-repo: "https://github.com/mirage/ocaml-hvsock.git" +bug-reports: "https://github.com/mirage/ocaml-hvsock/issues" +doc: "https://mirage.github.io/ocaml-hvsock" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +build-test:[ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "runtest" "-p" name "-j" jobs ] +] + +depends: [ + "base-bytes" + "base-threads" + "base-unix" + "lwt" {>= "2.4.7"} + "logs" + "fmt" + "cmdliner" + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-time-lwt" {>= "1.0.0"} + "cstruct" {>= "2.4.0"} + "duration" + "bos" + "jbuilder" {build & >="1.0+beta10"} + "alcotest" {test & >= "0.4.0"} +] + +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/hvsock.1.0.0/url b/repo/win32/packages/upstream/hvsock.1.0.0/url new file mode 100644 index 000000000..c8881477b --- /dev/null +++ b/repo/win32/packages/upstream/hvsock.1.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-hvsock/releases/download/v1.0.0/hvsock-1.0.0.tbz" +checksum: "cd880aa60fa2e03ce6eb3a5baf56c608" \ No newline at end of file diff --git a/repo/win32/packages/upstream/io-page-unix.2.0.0/descr b/repo/win32/packages/upstream/io-page-unix.2.0.0/descr new file mode 100644 index 000000000..396d0e049 --- /dev/null +++ b/repo/win32/packages/upstream/io-page-unix.2.0.0/descr @@ -0,0 +1 @@ +Allocate memory pages suitable for aligned I/O diff --git a/repo/win32/packages/upstream/io-page-unix.2.0.0/opam b/repo/win32/packages/upstream/io-page-unix.2.0.0/opam new file mode 100644 index 000000000..ab9e63f7f --- /dev/null +++ b/repo/win32/packages/upstream/io-page-unix.2.0.0/opam @@ -0,0 +1,25 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/io-page" +dev-repo: "https://github.com/mirage/io-page.git" +bug-reports: "https://github.com/mirage/io-page/issues" +license: "ISC" +authors: [ + "Anil Madhavapeddy" + "Dave Scott" + "Thomas Gazagnaire" +] +tags: ["org:mirage"] +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "io-page" {>= "2.0.0"} + "jbuilder" {build & >="1.0+beta9"} + "configurator" {build} + "cstruct" {>= "2.0.0"} + "ounit" {test} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/io-page-unix.2.0.0/url b/repo/win32/packages/upstream/io-page-unix.2.0.0/url new file mode 100644 index 000000000..796b1313b --- /dev/null +++ b/repo/win32/packages/upstream/io-page-unix.2.0.0/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/io-page/releases/download/2.0.0/io-page-2.0.0.tbz" +checksum: "b40222f38428a21d86d42ba8645a2c68" diff --git a/repo/win32/packages/upstream/io-page.2.0.0/descr b/repo/win32/packages/upstream/io-page.2.0.0/descr new file mode 100644 index 000000000..396d0e049 --- /dev/null +++ b/repo/win32/packages/upstream/io-page.2.0.0/descr @@ -0,0 +1 @@ +Allocate memory pages suitable for aligned I/O diff --git a/repo/win32/packages/upstream/io-page.2.0.0/opam b/repo/win32/packages/upstream/io-page.2.0.0/opam new file mode 100644 index 000000000..a358da597 --- /dev/null +++ b/repo/win32/packages/upstream/io-page.2.0.0/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/io-page" +dev-repo: "https://github.com/mirage/io-page.git" +bug-reports: "https://github.com/mirage/io-page/issues" +license: "ISC" +authors: [ + "Anil Madhavapeddy" + "Dave Scott" + "Thomas Gazagnaire" +] +tags: ["org:mirage"] +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "configurator" {build} + "cstruct" {>= "2.0.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/io-page.2.0.0/url b/repo/win32/packages/upstream/io-page.2.0.0/url new file mode 100644 index 000000000..796b1313b --- /dev/null +++ b/repo/win32/packages/upstream/io-page.2.0.0/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/io-page/releases/download/2.0.0/io-page-2.0.0.tbz" +checksum: "b40222f38428a21d86d42ba8645a2c68" diff --git a/repo/win32/packages/upstream/ipaddr.2.7.2/url b/repo/win32/packages/upstream/ipaddr.2.7.2/url deleted file mode 100644 index 4795e2e84..000000000 --- a/repo/win32/packages/upstream/ipaddr.2.7.2/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-ipaddr/releases/download/2.7.2/ipaddr-2.7.2.tbz" -checksum: "541bac5e56c3254943a78307980efbc2" \ No newline at end of file diff --git a/repo/win32/packages/upstream/ipaddr.2.7.2/descr b/repo/win32/packages/upstream/ipaddr.2.8.0/descr similarity index 100% rename from repo/win32/packages/upstream/ipaddr.2.7.2/descr rename to repo/win32/packages/upstream/ipaddr.2.8.0/descr diff --git a/repo/darwin/packages/upstream/ipaddr.2.7.2/opam b/repo/win32/packages/upstream/ipaddr.2.8.0/opam similarity index 57% rename from repo/darwin/packages/upstream/ipaddr.2.7.2/opam rename to repo/win32/packages/upstream/ipaddr.2.8.0/opam index 415861c24..4f782b49c 100644 --- a/repo/darwin/packages/upstream/ipaddr.2.7.2/opam +++ b/repo/win32/packages/upstream/ipaddr.2.8.0/opam @@ -17,22 +17,16 @@ tags: [ ] build: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" - "--with-base-unix" "%{base-unix:installed}%" ] -] -build-test: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "true" ] - [ "ocaml" "pkg/pkg.ml" "test" ] + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] ] +build-test: [ "jbuilder" "runtest" "-p" name "-j" jobs ] + depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} + "jbuilder" {build & >="1.0+beta7"} "base-bytes" - "sexplib" - "ppx_deriving" {build} - "ppx_sexp_conv" + "ppx_sexp_conv" {build & >="v0.9.0"} "ounit" {test} ] depopts: [ "base-unix" ] -available: [ ocaml-version >= "4.02.2" ] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/ipaddr.2.8.0/url b/repo/win32/packages/upstream/ipaddr.2.8.0/url new file mode 100644 index 000000000..b591bf255 --- /dev/null +++ b/repo/win32/packages/upstream/ipaddr.2.8.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-ipaddr/releases/download/2.8.0/ipaddr-2.8.0.tbz" +checksum: "f3442867873b4b60d7860283ff98c3c8" diff --git a/repo/win32/packages/upstream/jbuilder.1.0+beta9/descr b/repo/win32/packages/upstream/jbuilder.1.0+beta11/descr similarity index 100% rename from repo/win32/packages/upstream/jbuilder.1.0+beta9/descr rename to repo/win32/packages/upstream/jbuilder.1.0+beta11/descr diff --git a/repo/win32/packages/upstream/jbuilder.1.0+beta9/opam b/repo/win32/packages/upstream/jbuilder.1.0+beta11/opam similarity index 94% rename from repo/win32/packages/upstream/jbuilder.1.0+beta9/opam rename to repo/win32/packages/upstream/jbuilder.1.0+beta11/opam index 4fdec9a6e..375104f4f 100644 --- a/repo/win32/packages/upstream/jbuilder.1.0+beta9/opam +++ b/repo/win32/packages/upstream/jbuilder.1.0+beta11/opam @@ -20,4 +20,3 @@ depends: [ "ocamlfind" {build} ] available: [ ocaml-version >= "4.02.3" ] -patches: "jbuilder-1.0+beta9.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/jbuilder.1.0+beta11/url b/repo/win32/packages/upstream/jbuilder.1.0+beta11/url new file mode 100644 index 000000000..68d7cfbea --- /dev/null +++ b/repo/win32/packages/upstream/jbuilder.1.0+beta11/url @@ -0,0 +1,2 @@ +archive: "https://github.com/janestreet/jbuilder/releases/download/1.0+beta11/jbuilder-1.0.beta11.tbz" +checksum: "e6f433574a0fe635ad4e126c043f5e00" diff --git a/repo/win32/packages/upstream/jbuilder.1.0+beta9/files/jbuilder-1.0+beta9.patch b/repo/win32/packages/upstream/jbuilder.1.0+beta9/files/jbuilder-1.0+beta9.patch deleted file mode 100644 index dfeab592a..000000000 --- a/repo/win32/packages/upstream/jbuilder.1.0+beta9/files/jbuilder-1.0+beta9.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- ./src/action.ml -+++ ./src/action.ml -@@ -312,7 +312,14 @@ - return () - | Create_file fn -> - let fn = Path.to_string fn in -- if Sys.file_exists fn then Sys.remove fn; -+ if Sys.file_exists fn then ( -+ try -+ Sys.remove fn -+ with -+ | Sys_error _ when Sys.os_type = "Win32" -> -+ (try Unix.chmod fn 0o666 with Unix.Unix_error _ -> ()); -+ Sys.remove fn -+ ); - Unix.close (Unix.openfile fn [O_CREAT; O_TRUNC; O_WRONLY] 0o666); - return () - | Copy (src, dst) -> -@@ -352,6 +359,7 @@ - in - run ~purpose ~dir ~env ~env_extra ~stdout_to ~stderr_to path [arg; cmd] - | Bash cmd -> -+ let cmd = if Sys.win32 then " " ^ cmd else cmd in - run ~purpose ~dir ~env ~env_extra ~stdout_to ~stderr_to - (Utils.bash_exn ~needed_to:"interpret (bash ...) actions") - ["-e"; "-u"; "-o"; "pipefail"; "-c"; cmd] ---- ./src/context.ml -+++ ./src/context.ml -@@ -310,7 +310,7 @@ - ; toplevel_path = Option.map (get_env env "OCAML_TOPLEVEL_PATH") ~f:Path.absolute - - ; ocaml_bin = dir -- ; ocaml = Path.relative dir "ocaml" -+ ; ocaml = Path.relative dir (if Sys.win32 then "ocaml.exe" else "ocaml") - ; ocamlc - ; ocamlopt = best_prog "ocamlopt" - ; ocamldep = get_prog "ocamldep" ---- ./src/future.ml -+++ ./src/future.ml -@@ -233,8 +233,9 @@ - fn - - let destroy fn = -- Sys.remove fn; -- tmp_files := String_set.remove fn !tmp_files -+ match Sys.remove fn with -+ | exception Sys_error _ -> () (* good luck at_exit *) -+ | _ -> tmp_files := String_set.remove fn !tmp_files - end - - let run_capture_gen ?dir ?env ?(purpose=Internal_job) fail_mode prog args ~f = diff --git a/repo/win32/packages/upstream/jbuilder.1.0+beta9/url b/repo/win32/packages/upstream/jbuilder.1.0+beta9/url deleted file mode 100644 index ab660df9f..000000000 --- a/repo/win32/packages/upstream/jbuilder.1.0+beta9/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/janestreet/jbuilder/releases/download/1.0+beta9/jbuilder-1.0.beta9.tbz" -checksum: "7a8a71d559ed51712cfb4bba0da6721b" diff --git a/repo/win32/packages/upstream/lwt.2.7.1/files/lwt-2.7.1.patch b/repo/win32/packages/upstream/lwt.2.7.1/files/lwt-2.7.1.patch deleted file mode 100644 index ef0bf1f9a..000000000 --- a/repo/win32/packages/upstream/lwt.2.7.1/files/lwt-2.7.1.patch +++ /dev/null @@ -1,994 +0,0 @@ ---- ./myocamlbuild.ml -+++ ./myocamlbuild.ml -@@ -21,7 +21,7 @@ - *) - - (* OASIS_START *) --(* DO NOT EDIT (digest: 291e77cffb49b2de4c0899e16ebacfae) *) -+(* DO NOT EDIT (digest: 5cd8c8b05a40feb5e26ddec57f36807b) *) - module OASISGettext = struct - (* # 22 "src/oasis/OASISGettext.ml" *) - -@@ -199,6 +199,28 @@ - else - s - -+ let exists f str = -+ let rec iter i = -+ if i < 0 then -+ false -+ else if f str.[i] then -+ true -+ else -+ iter (pred i) -+ in -+ iter (String.length str - 1) -+ -+ let is_digit c = -+ '0' <= c && c <= '9' -+ -+ let is_alpha c = -+ ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') -+ -+ let is_whitespace = -+ function -+ | ' ' | '\r' | '\n' | '\t' -> true -+ | _ -> false -+ - end - - module OASISUtils = struct -@@ -462,7 +484,7 @@ - end - - --# 443 "myocamlbuild.ml" -+# 465 "myocamlbuild.ml" - module BaseEnvLight = struct - (* # 22 "src/base/BaseEnvLight.ml" *) - -@@ -542,7 +564,7 @@ - end - - --# 523 "myocamlbuild.ml" -+# 545 "myocamlbuild.ml" - module MyOCamlbuildFindlib = struct - (* # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *) - -@@ -619,7 +641,9 @@ - with Not_found -> s - - (* ocamlfind command *) -- let ocamlfind x = S[Sh (exec_from_conf "ocamlfind"); x] -+ let ocamlfind x = S[Sh ( -+ Ocamlbuild_pack.Shell.quote_filename_if_needed -+ (exec_from_conf "ocamlfind") ); x] - - (* This lists all supported packages. *) - let find_packages () = -@@ -903,7 +927,7 @@ - end - - --# 884 "myocamlbuild.ml" -+# 908 "myocamlbuild.ml" - open Ocamlbuild_plugin;; - let package_default = - { -@@ -1010,7 +1034,7 @@ - - let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;; - --# 992 "myocamlbuild.ml" -+# 1016 "myocamlbuild.ml" - (* OASIS_STOP *) - - open Ocamlbuild_plugin ---- ./setup.ml -+++ ./setup.ml -@@ -8,7 +8,7 @@ - *) - - (* OASIS_START *) --(* DO NOT EDIT (digest: 4e5ca25983a0902e744a79544d5c7868) *) -+(* DO NOT EDIT (digest: 2d2d9af8747ca589be3cf5ee8bb864e4) *) - (* - Regenerated by OASIS v0.4.8 - Visit http://oasis.forge.ocamlcore.org for more information and -@@ -191,6 +191,28 @@ - else - s - -+ let exists f str = -+ let rec iter i = -+ if i < 0 then -+ false -+ else if f str.[i] then -+ true -+ else -+ iter (pred i) -+ in -+ iter (String.length str - 1) -+ -+ let is_digit c = -+ '0' <= c && c <= '9' -+ -+ let is_alpha c = -+ ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') -+ -+ let is_whitespace = -+ function -+ | ' ' | '\r' | '\n' | '\t' -> true -+ | _ -> false -+ - end - - module OASISUtils = struct -@@ -466,6 +488,118 @@ - - module Unix = OASISUnixPath - -+ let bash_cmd = ref ( fun () -> "" ) -+ -+ let use_bash () = ( !bash_cmd () ) <> "" -+ -+ -+ (* generic quote and unixquote are taken from ocaml source *) -+ let generic_quote quotequote s = -+ let l = String.length s in -+ let b = Buffer.create (l + 20) in -+ Buffer.add_char b '\''; -+ for i = 0 to l - 1 do -+ if s.[i] = '\'' then -+ Buffer.add_string b quotequote -+ else -+ Buffer.add_char b s.[i] -+ done; -+ Buffer.add_char b '\''; -+ Buffer.contents b -+ -+ let unixquote = generic_quote "'\\''" -+ -+ let win = Sys.os_type = "Win32" -+ -+ let quote str = -+ if win && use_bash () then -+ unixquote str -+ else -+ quote str -+ -+ (* uniform_path (only called, if Sys.os_type = "Win32") -+ * - enforces uniform path seperators -+ * - strips trailing slashes (exceptions in case of C:\ and / ) -+ * - removes (some) unnecessary file components like ./././ -+ *) -+ -+ let get_naccu accu str first pos = -+ (* I assume c//d is identic to c/d -+ * the only exception (Network devices \\xyz\asdf) -+ * is covered in uniform_path -+ *) -+ if first = pos then -+ accu -+ else -+ let nlen = pos - first in -+ let nstr = String.sub str first nlen in -+ (* test/././ is the same as test *) -+ if nlen = 1 && nstr = "." then -+ accu -+ (* a/b/../ is the same as a *) -+ else if nlen = 2 && nstr = ".." then -+ match accu with -+ | [] -> [ nstr ] -+ | ".."::_ -> nstr::accu -+ | hd::tl -> tl -+ else -+ nstr::accu -+ -+ let is_path_sep = function -+ | '\\' | '/' -> true -+ | _ -> false -+ -+ -+ let uniform_path path_sep = function -+ | "" -> "" (* Raise an exception? Or an possible intermediate result? -+ * Filename.basename and dirname also don't raise exceptions *) -+ | str -> -+ let rec iter accu str len first pos = -+ if pos >= len then -+ List.rev (get_naccu accu str first pos) -+ else -+ let next = succ pos in -+ match is_path_sep str.[pos] with -+ | true -> iter (get_naccu accu str first pos) str len next next -+ | false -> iter accu str len first next -+ in -+ let is_unix_root = is_path_sep str.[0] in -+ let len = String.length str in -+ let next_sep = len > 1 && is_path_sep str.[1] in -+ let is_network_root = is_unix_root && next_sep in -+ let is_currel = str.[0] = '.' && ( next_sep || len = 1 ) in -+ let l = iter [] str len 0 0 in -+ (* Trailing slashes are normally stripped. -+ * This is not possible in case of root folders -+ * Sys.file_exists "C:" is false, Sys.file_exists "C:\\" true -+ *) -+ let l_min = -+ match l with -+ | [] -> [ "" ] -+ | _ -> l -+ in -+ let l = -+ if is_network_root then -+ ""::""::l_min -+ else if is_unix_root then -+ ""::l_min -+ else if is_currel then -+ "."::l -+ else -+ match l with -+ | s :: [] -> -+ (* root folders like C:\ *) -+ if String.length s = 2 && s.[1] = ':' && -+ len > 2 && is_path_sep str.[2] -+ then -+ s :: [ "" ] -+ else -+ l -+ | _ -> l -+ in -+ String.concat path_sep l -+ -+ - - let make = - function -@@ -479,22 +613,31 @@ - match Sys.os_type with - | "Unix" | "Cygwin" -> ufn - | "Win32" -> -- make -- (List.map -- (fun p -> -- if p = Unix.current_dir_name then -- current_dir_name -- else if p = Unix.parent_dir_name then -- parent_dir_name -+ let path_sep = -+ if use_bash () then -+ "/" - else -- p) -- (OASISString.nsplit ufn '/')) -+ "\\" -+ in -+ uniform_path path_sep ufn - | os_type -> - OASISUtils.failwithf - (f_ "Don't know the path format of os_type %S when translating unix \ - filename. %S") - os_type ufn - -+ (* see findlib's src/findlib/frontend.ml for details *) -+ let ocamlfind_unquote dir = -+ match Sys.os_type with -+ | "Cygwin" -+ | "Win32" -> -+ let len = String.length dir in -+ if len < 3 || dir.[0] <> '"' || dir.[len - 1] <> '"' || -+ String.contains dir ' ' = false then -+ dir -+ else -+ String.sub dir 1 (len - 2) -+ | _ -> dir - - end - -@@ -1077,8 +1220,8 @@ - - - (* Range of allowed characters *) -- let is_digit c = '0' <= c && c <= '9' -- let is_alpha c = ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') -+ let is_digit = OASISString.is_digit -+ let is_alpha = OASISString.is_alpha - let is_special = function | '.' | '+' | '-' | '~' -> true | _ -> false - - -@@ -2884,26 +3027,179 @@ - open OASISUtils - open OASISMessage - -+ let is_dubious_char = function -+ | '+' | '~' | ':' | '.' | '-' | '_' | '/' | '\\' -> false -+ | c -> -+ OASISString.is_digit c = false && -+ OASISString.is_alpha c = false -+ -+ -+ let win_quote_needed str = -+ let f = function -+ (* this list is not exhaustive. Feel free to added common chars, that -+ * can be passed to cmd.exe without quoting *) -+ | 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' -+ | '_' | '-' | '~' | '.' | ':' | ',' | '\\' -> false -+ | _ -> true -+ in -+ str = "" || OASISString.exists f str -+ -+ let is_simple_command str = -+ String.length str > 0 && -+ not (OASISString.exists is_dubious_char str) -+ -+ let is_path_sep = function -+ | '/' | '\\' -> true -+ | _ -> false -+ -+ let starts_with_absolute_path cmd = -+ let len = String.length cmd in -+ if len < 3 then -+ false -+ else -+ let c0 = cmd.[0] in -+ let c1 = cmd.[1] in -+ if is_path_sep c0 && is_path_sep c1 then (* network devices: "//" *) -+ true -+ else if len = 3 then -+ false -+ else (* C:\.... *) -+ OASISString.is_alpha c0 && c1 = ':' && is_path_sep cmd.[2] -+ -+ let exe_exts = lazy -+ begin -+ let exts = -+ try -+ OASISString.nsplit -+ (Sys.getenv "PATHEXT") -+ ';' -+ with -+ | Not_found -> [] -+ in -+ let exts' = -+ List.filter -+ ( fun a -> a <> "" && a.[0] = '.' && a <> ".exe" ) -+ (List.map OASISString.lowercase_ascii exts) (* windows file system doesn't care *) -+ in -+ ".exe"::exts' (* .exe first, most common *) -+ end -+ -+ let exe_file_exists fln = -+ Sys.file_exists fln || -+ List.exists -+ (fun a -> Sys.file_exists ( fln ^ a ) ) -+ (Lazy.force exe_exts) -+ -+ -+ let quote_anyway cmd = -+ if Sys.os_type <> "Win32" then (* workaround for windows only *) -+ false -+ else if is_simple_command cmd then -+ true -+ else -+ OASISString.exists OASISString.is_whitespace cmd && -+ starts_with_absolute_path cmd && -+ exe_file_exists cmd -+ -+ -+ let run_bash ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ let fn = Filename.temp_file "oasis-" ".sh" in -+ let fn_deleted = ref false in -+ try -+ begin -+ let ch = open_out_bin fn in -+ let ch_closed = ref false in -+ try -+ begin -+ let cmd = -+ if quote || quote_anyway cmd then -+ OASISHostPath.quote (OASISHostPath.of_unix cmd) -+ else -+ cmd -+ in -+ output_string ch cmd; -+ List.iter -+ ( fun s -> output_char ch ' '; output_string ch s ) -+ args ; -+ output_char ch '\n'; -+ ch_closed:=true ; -+ close_out ch; -+ let bash = !OASISHostPath.bash_cmd () in -+ let add_quotes = ref false in -+ let shell_cmd = -+ if Sys.os_type <> "Win32" then -+ Filename.quote bash -+ else -+ if win_quote_needed bash = false then -+ bash -+ else -+ begin -+ add_quotes := true; -+ Filename.quote bash -+ end -+ in -+ let cmdline_orig = String.concat " " (cmd :: args) in -+ let cmdline = -+ let s = shell_cmd ^ " " ^ (Filename.quote fn) in -+ if !add_quotes then -+ "\"" ^ s ^ "\"" -+ else -+ s -+ in -+ info ~ctxt (f_ "Running command '%s'") cmdline_orig; -+ let ret = Sys.command cmdline in -+ fn_deleted := true; -+ Sys.remove fn; -+ match f_exit_code, ret with -+ | None, 0 -> () -+ | None, i -> -+ failwithf -+ (f_ "Command '%s' terminated with error code %d") -+ cmdline_orig i -+ | Some f, i -> -+ f i -+ end -+ with -+ | x when !ch_closed = false -> -+ close_out_noerr ch; -+ raise x -+ end -+ with -+ | x when !fn_deleted = false -> -+ (try Sys.remove fn with _ -> () ) ; -+ raise x - - (* TODO: I don't like this quote, it is there because $(rm) foo expands to - * 'rm -f' foo... - *) -- let run ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ let run_default ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ let add_quotes = ref false in - let cmd = -- if quote then -+ if quote || quote_anyway cmd then - if Sys.os_type = "Win32" then -- if String.contains cmd ' ' then -- (* Double the 1st double quote... win32... sigh *) -- "\""^(Filename.quote cmd) -- else -+ begin -+ if win_quote_needed cmd = false then - cmd - else -+ begin -+ (* Double the 1st double quote... win32... sigh *) -+ (* Above comment ist false. The whole string must be quoted. -+ * However, an error is only triggered, if args contains also -+ * quoted parameters *) -+ add_quotes := true; -+ Filename.quote cmd -+ end -+ end -+ else - Filename.quote cmd - else - cmd - in - let cmdline = -- String.concat " " (cmd :: args) -+ let s = String.concat " " (cmd :: args) in -+ match !add_quotes with -+ | true -> "\"" ^ s ^ "\"" -+ | false -> s - in - info ~ctxt (f_ "Running command '%s'") cmdline; - match f_exit_code, Sys.command cmdline with -@@ -2915,6 +3211,13 @@ - | Some f, i -> - f i - -+ let run ~ctxt ?f_exit_code ?quote cmd args = -+ if OASISHostPath.use_bash () && -+ (Sys.os_type <> "Win32" || not (Filename.check_suffix cmd ".bat")) -+ then -+ run_bash ~ctxt ?f_exit_code ?quote cmd args -+ else -+ run_default ~ctxt ?f_exit_code ?quote cmd args - - let run_read_output ~ctxt ?f_exit_code cmd args = - let fn = -@@ -3025,7 +3328,7 @@ - ) alternatives - - -- let which ~ctxt prg = -+ let which ?(plain=false) ?ctxt prg = - let path_sep = - match Sys.os_type with - | "Win32" -> -@@ -3037,11 +3340,19 @@ - let exec_ext = - match Sys.os_type with - | "Win32" -> -- "" :: (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep) -+ "" :: (List.map -+ OASISString.lowercase_ascii -+ (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep)) - | _ -> - [""] - in -+ let p = - find_file ~case_sensitive:false [path_lst; [prg]] exec_ext -+ in -+ if plain then -+ p -+ else -+ OASISHostPath.of_unix p - - - (**/**) -@@ -3058,35 +3369,54 @@ - dn - - -- let q = Filename.quote -+ let q s = OASISHostPath.quote (OASISHostPath.of_unix s) - (**/**) - -- - let cp ~ctxt ?(recurse=false) src tgt = - if recurse then -- match Sys.os_type with -- | "Win32" -> -- OASISExec.run ~ctxt -- "xcopy" [q src; q tgt; "/E"] -- | _ -> -- OASISExec.run ~ctxt -- "cp" ["-r"; q src; q tgt] -+ (* -+ 'xcopy /E' and 'cp -r' don't have the same semantic! -+ -dir2 does exist: -+ xcopy dir dir2 /E -> copys content of dir into dir2 (dir2/dir doesn't exist!) -+ cp -r dir dir2 -> copys dir to dir2 (dir2/dir does exist!) -+ -dir2 doesn't exist: -+ xcopy dir dir2 /E -> request on command line, if dir2 is an directory or file. -+ cp -r dir dir2 -> dir and dir2 have the same content (dir2/dir doesn't exist) -+ Probably, there are even more differences,.... -+ *) -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then -+ let tgt_real = -+ if Sys.file_exists tgt = false then -+ begin -+ OASISExec.run ~ctxt "md" [q tgt]; -+ tgt -+ end - else -- OASISExec.run ~ctxt -- (match Sys.os_type with -- | "Win32" -> "copy" -- | _ -> "cp") -- [q src; q tgt] -- -+ let base = Filename.basename src in -+ if base = "." then -+ tgt -+ else -+ let tgt_real = Filename.concat tgt base in -+ if Sys.file_exists tgt_real = false then -+ OASISExec.run ~ctxt "md" [q tgt_real]; -+ tgt_real -+ in -+ OASISExec.run ~ctxt "xcopy" [q src; q tgt_real; "/E" ; "/Q" ; "/Y"] -+ else -+ OASISExec.run ~ctxt "cp" ["-r"; q src; q tgt] -+ else if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then -+ OASISExec.run ~ctxt "copy" [q src; q tgt ; "/Y"] -+ else -+ OASISExec.run ~ctxt "cp" [q src; q tgt] - - let mkdir ~ctxt tgt = - OASISExec.run ~ctxt -- (match Sys.os_type with -- | "Win32" -> "md" -- | _ -> "mkdir") -+ ( if Sys.os_type = "Win32" && not (OASISHostPath.use_bash ()) then -+ "md" -+ else -+ "mkdir" ) - [q tgt] - -- - let rec mkdir_parent ~ctxt f tgt = - let tgt = - fix_dir tgt -@@ -3112,10 +3442,9 @@ - - let rmdir ~ctxt tgt = - if Sys.readdir tgt = [||] then begin -- match Sys.os_type with -- | "Win32" -> -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then - OASISExec.run ~ctxt "rd" [q tgt] -- | _ -> -+ else - OASISExec.run ~ctxt "rm" ["-r"; q tgt] - end else begin - OASISMessage.error ~ctxt -@@ -3169,7 +3498,7 @@ - end - - --# 3165 "setup.ml" -+# 3533 "setup.ml" - module BaseEnvLight = struct - (* # 22 "src/base/BaseEnvLight.ml" *) - -@@ -3249,7 +3578,7 @@ - end - - --# 3245 "setup.ml" -+# 3613 "setup.ml" - module BaseContext = struct - (* # 22 "src/base/BaseContext.ml" *) - -@@ -3340,7 +3669,7 @@ - let var_lxr = Genlex.make_lexer [] - - -- let rec var_expand str = -+ let rec var_expand ?(quoted=false) str = - let buff = - Buffer.create ((String.length str) * 2) - in -@@ -3368,7 +3697,11 @@ - | [Genlex.Ident "ocaml_escaped"; Genlex.String s] -> - String.escaped s - | [Genlex.Ident nm] -> -- var_get nm -+ let s = var_get nm in -+ if quoted then -+ OASISHostPath.quote s -+ else -+ s - | _ -> - failwithf - (f_ "Unknown expression '%s' in variable expansion of %s.") -@@ -3906,9 +4239,11 @@ - in - let findlib_dir pkg = - let dir = -+ OASISHostPath.of_unix ( -+ OASISHostPath.ocamlfind_unquote ( - OASISExec.run_read_one_line ~ctxt:!BaseContext.default - (ocamlfind ()) -- ["query"; "-format"; "%d"; pkg] -+ ["query"; "-format"; "%d"; pkg] ) ) - in - if Sys.file_exists dir && Sys.is_directory dir then - dir -@@ -4038,6 +4373,9 @@ - match nm with - | "ocaml_version" -> - "version", chop_version_suffix -+ | "standard_library" -+ | "standard_library_default" -> -+ nm, ( fun x -> OASISHostPath.of_unix x) - | _ -> nm, (fun x -> x) - in - var_redefine -@@ -4177,15 +4515,43 @@ - - - let (/) a b = -- if os_type () = Sys.os_type then -+ let os = os_type () in -+ if os = Sys.os_type then -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () then -+ OASISUnixPath.concat a b -+ else - Filename.concat a b -- else if os_type () = "Unix" || os_type () = "Cygwin" then -+ else if os = "Unix" || os = "Cygwin" then - OASISUnixPath.concat a b - else -- OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") -- (os_type ()) -+ OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") os - (**/**) - -+ let auto_bash = -+ lazy ( -+ try -+ let bash = OASISFileUtil.which ~plain:true "bash" in -+ let sh = Filename.concat (Filename.dirname bash) "sh.exe" in -+ if Sys.file_exists sh then -+ sh -+ else -+ bash -+ with -+ | Not_found | Sys_error _ -> "" ) -+ -+ let auto_bash () = -+ if Sys.os_type <> "Win32" then -+ "" -+ else -+ Lazy.force auto_bash -+ -+ let bash_cmd = -+ var_define -+ ~short_desc:(fun () -> s_ "Enforced bash shell:") -+ ~cli:CLIAuto -+ ~arg_help:"program" -+ "use_bash" -+ auto_bash - - let prefix = - p "prefix" -@@ -4193,10 +4559,30 @@ - (fun () -> - match os_type () with - | "Win32" -> -+ let getenv w = -+ try -+ Some(Sys.getenv w) -+ with -+ | Not_found -> None -+ in -+ let s = -+ if Sys.word_size = 64 then -+ getenv "ProgramW6432" -+ else -+ None -+ in -+ let s = -+ if s = None then -+ getenv "PROGRAMFILES" -+ else -+ s -+ in - let program_files = -- Sys.getenv "PROGRAMFILES" -+ match s with -+ | None -> "C:\\Program Files" -+ | Some x -> x - in -- program_files/(pkg_name ()) -+ OASISHostPath.of_unix (program_files/(pkg_name ())) - | _ -> - "/usr/local") - -@@ -4282,7 +4668,15 @@ - let docdir = - p "docdir" - (fun () -> s_ "Documentation root") -- (fun () -> "$datarootdir"/"doc"/"$pkg_name") -+ (fun () -> -+ (* TODO: (Windows only?) "$pkg_name" is not always substituted -+ * (at least if datarootdir contains spaces or other garbage) -+ * I haven't looked up why. -+ *) -+ match os_type () with -+ | "Win32" -> "$datarootdir"/"doc"/ ( pkg_name () ) -+ | _ -> "$datarootdir"/"doc"/"$pkg_name" -+ ) - - - let htmldir = -@@ -4356,9 +4750,10 @@ - ~short_desc:(fun () -> s_ "Remove a file.") - "rm" - (fun () -> -- match os_type () with -- | "Win32" -> "del" -- | _ -> "rm -f") -+ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then -+ "del" -+ else -+ "rm -f" ) - - - let rmdir = -@@ -4366,9 +4761,10 @@ - ~short_desc:(fun () -> s_ "Remove a directory.") - "rmdir" - (fun () -> -- match os_type () with -- | "Win32" -> "rd" -- | _ -> "rm -rf") -+ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then -+ "rd" -+ else -+ "rm -rf") - - - let debug = -@@ -4432,14 +4828,26 @@ - let has_native_dynlink = - let ocamlfind = ocamlfind () in - try -- let fn = -+ (* -format %d/%a doesn't work, because ocamlfind quotes %d -+ * and %a separatly *) -+ let fn1 = -+ OASISHostPath.ocamlfind_unquote ( -+ OASISExec.run_read_one_line -+ ~ctxt:!BaseContext.default -+ ocamlfind -+ ["query"; "-predicates"; "native"; "dynlink"; -+ "-format"; "%d"] ) -+ in -+ let fn2 = -+ OASISHostPath.ocamlfind_unquote ( - OASISExec.run_read_one_line - ~ctxt:!BaseContext.default - ocamlfind - ["query"; "-predicates"; "native"; "dynlink"; -- "-format"; "%d/%a"] -+ "-format"; "%a"] -+ ) - in -- Sys.file_exists fn -+ fn1 <> "" && fn2 <> "" && Sys.file_exists (Filename.concat fn1 fn2) - with _ -> - false - in -@@ -4466,6 +4874,8 @@ - rpkg := Some pkg; - List.iter (fun f -> f pkg.oasis_version) !var_cond - -+ let () = -+ OASISHostPath.bash_cmd := bash_cmd - end - - module BaseFileAB = struct -@@ -4766,7 +5176,7 @@ - OASISExec.run ~ctxt:!BaseContext.default ~quote:false - (var_expand cmd) - (List.map -- var_expand -+ (var_expand ~quoted:true) - (args @ (Array.to_list extra_args))) - - -@@ -5040,9 +5450,27 @@ - - let configure ~ctxt t args = - (* Run configure *) -+ -+ (* use-bash is an exception. It's already needed to run the -+ pre-configure script. *) -+ let rec f = function -+ | [] -> -+ begin -+ try -+ let x = Sys.getenv "USE_BASH" in -+ OASISHostPath.bash_cmd := (fun () -> x); -+ with -+ _ -> () -+ end -+ | "--use-bash"::x::_ -> -+ OASISHostPath.bash_cmd := (fun () -> x); -+ | _::tl -> f tl -+ in -+ f (Array.to_list args); - BaseCustom.hook - t.package.conf_custom - (fun () -> -+ OASISHostPath.bash_cmd := BaseStandardVar.bash_cmd; - (* Reload if preconf has changed it *) - begin - try -@@ -5672,7 +6100,7 @@ - end - - --# 5668 "setup.ml" -+# 6135 "setup.ml" - module InternalConfigurePlugin = struct - (* # 22 "src/plugins/internal/InternalConfigurePlugin.ml" *) - -@@ -5952,12 +6380,21 @@ - let install_findlib_ev = "install-findlib" - - -- (* TODO: this can be more generic and used elsewhere. *) -- let win32_max_command_line_length = 8000 -- -- - let split_install_command ocamlfind findlib_name meta files = -- if Sys.os_type = "Win32" then -+ if Sys.os_type <> "Win32" then -+ ["install" :: findlib_name :: meta :: files] -+ else -+ let f s = -+ OASISHostPath.quote ( OASISHostPath.of_unix s ) -+ in -+ let files = List.map f files in -+ let meta = f meta in -+ let win32_max_command_line_length = -+ if OASISHostPath.use_bash () = false then -+ 7900 -+ else -+ 30000 -+ in - (* Arguments for the first command: *) - let first_args = ["install"; findlib_name; meta] in - (* Arguments for remaining commands: *) -@@ -6015,10 +6452,11 @@ - let cmds = split other_args others in - cmd :: cmds - in -+ if files = [] then -+ [ first_args ] -+ else - (* The first command does not use -add: *) - split first_args files -- else -- ["install" :: findlib_name :: meta :: files] - - - let install = -@@ -6478,7 +6916,7 @@ - end - - --# 6474 "setup.ml" -+# 6951 "setup.ml" - module OCamlbuildCommon = struct - (* # 22 "src/plugins/ocamlbuild/OCamlbuildCommon.ml" *) - -@@ -6851,7 +7289,7 @@ - end - - --# 6847 "setup.ml" -+# 7324 "setup.ml" - module CustomPlugin = struct - (* # 22 "src/plugins/custom/CustomPlugin.ml" *) - -@@ -6983,7 +7421,7 @@ - end - - --# 6979 "setup.ml" -+# 7456 "setup.ml" - open OASISTypes;; - - let setup_t = -@@ -6991,7 +7429,7 @@ - BaseSetup.configure = InternalConfigurePlugin.configure; - build = - OCamlbuildPlugin.build -- ["-use-ocamlfind"; "-plugin-tags"; "'package(cppo_ocamlbuild)'"]; -+ ["-use-ocamlfind"; "-plugin-tags"; "\"package(cppo_ocamlbuild)\""]; - test = - [ - ("core", -@@ -11146,7 +11584,7 @@ - - let setup () = BaseSetup.setup setup_t;; - --# 11143 "setup.ml" -+# 11620 "setup.ml" - let setup_t = BaseCompat.Compat_0_4.adapt_setup_t setup_t - open BaseCompat.Compat_0_4 - (* OASIS_STOP *) ---- ./src/util/discover.ml -+++ ./src/util/discover.ml -@@ -637,13 +637,13 @@ - fprintf config "#define NANOSEC%s\n" conversion - in - -- if not (test_basic_compilation ()) then begin -+ (* if not (test_basic_compilation ()) then begin - printf " - Error: failed to compile a trivial ocaml toplevel. - You may be missing core components (compiler, ncurses, etc) - "; - exit 1 -- end; -+ end; *) - - test_feature ~do_check:!use_libev "libev" "HAVE_LIBEV" test_libev; - test_feature ~do_check:!use_pthread "pthread" "HAVE_PTHREAD" test_pthread; diff --git a/repo/win32/packages/upstream/lwt.2.7.1/files/lwt.install b/repo/win32/packages/upstream/lwt.2.7.1/files/lwt.install deleted file mode 100644 index bdf849695..000000000 --- a/repo/win32/packages/upstream/lwt.2.7.1/files/lwt.install +++ /dev/null @@ -1,6 +0,0 @@ -lib: "lwt.opam" { "opam" } -doc: [ - "README.md" - "CHANGES" - "doc/COPYING" { "LICENSE" } -] diff --git a/repo/win32/packages/upstream/lwt.2.7.1/url b/repo/win32/packages/upstream/lwt.2.7.1/url deleted file mode 100644 index fd82c53b3..000000000 --- a/repo/win32/packages/upstream/lwt.2.7.1/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/ocsigen/lwt/archive/2.7.1.tar.gz" -checksum: "fb478fbdb6fda0d1fa64a8a2f9ac1bbb" diff --git a/repo/darwin/packages/upstream/lwt.2.7.1/descr b/repo/win32/packages/upstream/lwt.3.1.0/descr similarity index 91% rename from repo/darwin/packages/upstream/lwt.2.7.1/descr rename to repo/win32/packages/upstream/lwt.3.1.0/descr index 4177e6837..6bada2351 100644 --- a/repo/darwin/packages/upstream/lwt.2.7.1/descr +++ b/repo/win32/packages/upstream/lwt.3.1.0/descr @@ -1,4 +1,4 @@ -Monadic promises and concurrent I/O +Concurrency based on promises A promise is a value that may become determined in the future. diff --git a/repo/win32/packages/upstream/lwt.3.1.0/files/lwt-3.1.0.patch b/repo/win32/packages/upstream/lwt.3.1.0/files/lwt-3.1.0.patch new file mode 100644 index 000000000..260b45b39 --- /dev/null +++ b/repo/win32/packages/upstream/lwt.3.1.0/files/lwt-3.1.0.patch @@ -0,0 +1,18 @@ +--- ./src/unix/config/discover.ml ++++ ./src/unix/config/discover.ml +@@ -693,13 +693,13 @@ + fprintf config "#define NANOSEC%s\n" conversion + in + +- if not (test_basic_compilation ()) then begin ++ (* if not (test_basic_compilation ()) then begin + printf " + Error: failed to compile a trivial ocaml toplevel. + You may be missing core components (compiler, ncurses, etc) + "; + exit 1 +- end; ++ end; *) + + test_feature ~do_check:!use_libev "libev" "HAVE_LIBEV" test_libev; + test_feature ~do_check:!use_pthread "pthread" "HAVE_PTHREAD" test_pthread; diff --git a/repo/win32/packages/upstream/lwt.2.7.1/opam b/repo/win32/packages/upstream/lwt.3.1.0/opam similarity index 54% rename from repo/win32/packages/upstream/lwt.2.7.1/opam rename to repo/win32/packages/upstream/lwt.3.1.0/opam index ef77f68ac..061211f3f 100644 --- a/repo/win32/packages/upstream/lwt.2.7.1/opam +++ b/repo/win32/packages/upstream/lwt.3.1.0/opam @@ -1,4 +1,5 @@ opam-version: "1.2" +version: "3.1.0" maintainer: [ "Anton Bachin " "Mauricio Fernandez " @@ -13,49 +14,35 @@ doc: "https://ocsigen.org/lwt/manual/" bug-reports: "https://github.com/ocsigen/lwt/issues" license: "LGPL with OpenSSL linking exception" dev-repo: "https://github.com/ocsigen/lwt.git" + build: [ - [make "setup"] - ["ocaml" "setup.ml" "-configure" - "--prefix" prefix - "--%{conf-libev:enable}%-libev" - "--%{camlp4:enable}%-camlp4" - "--%{react:enable}%-react" - "--%{ssl:enable}%-ssl" - "--%{base-unix:enable}%-unix" - "--%{base-threads:enable}%-preemptive" - "--%{lablgtk:enable}%-glib" - "--%{ppx_tools:enable}%-ppx"] - [make "build"] + [ "ocaml" "src/util/configure.ml" "-use-libev" "%{conf-libev:installed}%" + "-use-camlp4" "%{camlp4:installed}%" ] + [ "jbuilder" "build" "-p" name "-j" jobs ] + [ "ocaml" "src/util/install_filter.ml" ] ] -build-test: [ - ["ocaml" "setup.ml" "-configure" "--enable-tests"] - [make "test"] -] -install: [[make "install"]] -remove: [[ "ocamlfind" "remove" "lwt" ]] +build-test: [ [ "jbuilder" "runtest" "-p" name ] ] + depends: [ + "cppo" {build} + "jbuilder" {build & >= "1.0+beta10"} + # We are only using ocamlfind during configuration of the Unix binding. "ocamlfind" {build & >= "1.5.0"} - "ocamlbuild" {build} + "ocaml-migrate-parsetree" + "ppx_tools_versioned" + # result is needed as long as Lwt still supports OCaml 4.02. "result" - "cppo" {build} - # See https://github.com/ocsigen/lwt/issues/266 - ( "base-no-ppx" | "ppx_tools" {build} ) ] depopts: [ "base-threads" "base-unix" - "conf-libev" "camlp4" - "ssl" - "lablgtk" - "react" -] -conflicts: [ - "react" {< "1.0.0"} - "ssl" {< "0.5.0"} - "ppx_tools" {< "1.0.0" } + "conf-libev" ] +# In practice, Lwt requires OCaml >= 4.02.3, as that is a constraint of the +# dependency jbuilder. available: [ocaml-version >= "4.02.0" & compiler != "4.02.1+BER"] + messages: [ "For module Lwt_ssl, please install package lwt_ssl" {ssl:installed & !lwt_ssl:installed} @@ -64,4 +51,8 @@ messages: [ "For module Lwt_react, please install package lwt_react" {react:installed & !lwt_react:installed} ] -patches: "lwt-2.7.1.patch" {os = "win32"} +post-messages: [ + "Lwt 4.0.0 will make some breaking changes to packaging in late 2017. See + https://github.com/ocsigen/lwt/issues/453" +] +patches: "lwt-3.1.0.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/lwt.3.1.0/url b/repo/win32/packages/upstream/lwt.3.1.0/url new file mode 100644 index 000000000..59819df9c --- /dev/null +++ b/repo/win32/packages/upstream/lwt.3.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/ocsigen/lwt/archive/3.1.0.tar.gz" +checksum: "e80364e38c5fae791a6506b9c113fd29" diff --git a/repo/win32/packages/upstream/magic-mime.1.0.1/url b/repo/win32/packages/upstream/magic-mime.1.0.1/url deleted file mode 100644 index 2d07c7455..000000000 --- a/repo/win32/packages/upstream/magic-mime.1.0.1/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-magic-mime/releases/download/1.0.1/magic-mime-1.0.1.tbz" -checksum: "bd05c33aee8a461f63c23c3d0515d224" diff --git a/repo/darwin/packages/upstream/magic-mime.1.0.1/descr b/repo/win32/packages/upstream/magic-mime.1.1.0/descr similarity index 50% rename from repo/darwin/packages/upstream/magic-mime.1.0.1/descr rename to repo/win32/packages/upstream/magic-mime.1.1.0/descr index c30968077..eb0771d5e 100644 --- a/repo/darwin/packages/upstream/magic-mime.1.0.1/descr +++ b/repo/win32/packages/upstream/magic-mime.1.1.0/descr @@ -1,4 +1,4 @@ -Convert file extensions to MIME types +Map filenames to common MIME types This library contains a database of MIME types that maps filename extensions into MIME types suitable for use in many Internet protocols such as HTTP or @@ -14,8 +14,13 @@ For example, here's how to lookup MIME types in the [utop] REPL: Magic_mime.lookup "bar.css";; - : bytes = "text/css" -More information: +### Internals -* WWW: -* E-mail: -* Issues +The following files need to be edited to add MIME types: + +- mime.types: this is obtained by synching from the Apache Foundation's + [mime.types](https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) + in the Apache Subversion repository. +- x-mime.types: these are the extension types, so non-standard `x-` prefixes are used here. +- file.types: full filenames of common occurrences that are useful to map onto a MIME type. + OCaml-specific things like `opam` files show up here. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/magic-mime.1.0.1/opam b/repo/win32/packages/upstream/magic-mime.1.1.0/opam similarity index 80% rename from repo/darwin/packages/upstream/magic-mime.1.0.1/opam rename to repo/win32/packages/upstream/magic-mime.1.1.0/opam index 29250b408..9459ca8b1 100644 --- a/repo/darwin/packages/upstream/magic-mime.1.0.1/opam +++ b/repo/win32/packages/upstream/magic-mime.1.1.0/opam @@ -1,6 +1,7 @@ opam-version: "1.2" +name: "magic-mime" maintainer: "Anil Madhavapeddy " -authors: "Anil Madhavapeddy " +authors: ["Anil Madhavapeddy" "Maxence Guesdon"] homepage: "https://github.com/mirage/ocaml-magic-mime" bug-reports: "https://github.com/mirage/ocaml-magic-mime/issues" dev-repo: "https://github.com/mirage/ocaml-magic-mime.git" @@ -13,7 +14,6 @@ build: [ ] depends: [ - "ocamlfind" {build} "jbuilder" {build & >="1.0+beta9"} ] -available: [ocaml-version >= "4.03.0"] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/magic-mime.1.1.0/url b/repo/win32/packages/upstream/magic-mime.1.1.0/url new file mode 100644 index 000000000..7bfb26c9d --- /dev/null +++ b/repo/win32/packages/upstream/magic-mime.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-magic-mime/releases/download/v1.1.0/magic-mime-1.1.0.tbz" +checksum: "341ab5133c2e17ca645f23a0149025d1" \ No newline at end of file diff --git a/repo/win32/packages/upstream/menhir.20170509/findlib b/repo/win32/packages/upstream/menhir.20170509/findlib deleted file mode 100644 index b733ea996..000000000 --- a/repo/win32/packages/upstream/menhir.20170509/findlib +++ /dev/null @@ -1,2 +0,0 @@ -menhirLib -menhirSdk diff --git a/repo/win32/packages/upstream/menhir.20170509/url b/repo/win32/packages/upstream/menhir.20170509/url deleted file mode 100644 index 83e301950..000000000 --- a/repo/win32/packages/upstream/menhir.20170509/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://gallium.inria.fr/~fpottier/menhir/menhir-20170509.tar.gz" -checksum: "b8ba18b5abda831cf41cd4fa65f4c51b" diff --git a/repo/win32/packages/upstream/menhir.20170509/descr b/repo/win32/packages/upstream/menhir.20170712/descr similarity index 100% rename from repo/win32/packages/upstream/menhir.20170509/descr rename to repo/win32/packages/upstream/menhir.20170712/descr diff --git a/repo/win32/packages/upstream/menhir.20170509/files/menhir-20170509.patch b/repo/win32/packages/upstream/menhir.20170712/files/menhir-20170712.patch similarity index 100% rename from repo/win32/packages/upstream/menhir.20170509/files/menhir-20170509.patch rename to repo/win32/packages/upstream/menhir.20170712/files/menhir-20170712.patch diff --git a/repo/win32/packages/upstream/menhir.20170509/opam b/repo/win32/packages/upstream/menhir.20170712/opam similarity index 94% rename from repo/win32/packages/upstream/menhir.20170509/opam rename to repo/win32/packages/upstream/menhir.20170712/opam index e42698083..3e7f60b54 100644 --- a/repo/win32/packages/upstream/menhir.20170509/opam +++ b/repo/win32/packages/upstream/menhir.20170712/opam @@ -22,4 +22,4 @@ depends: [ "ocamlbuild" {build} ] available: [ ocaml-version >= "4.02" ] -patches: "menhir-20170509.patch" {os = "win32"} +patches: "menhir-20170712.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/menhir.20170712/url b/repo/win32/packages/upstream/menhir.20170712/url new file mode 100644 index 000000000..d039d9c0d --- /dev/null +++ b/repo/win32/packages/upstream/menhir.20170712/url @@ -0,0 +1,2 @@ +archive: "http://gallium.inria.fr/~fpottier/menhir/menhir-20170712.tar.gz" +checksum: "85a5c2aef1d3f2224dab7c53d79892e5" diff --git a/repo/win32/packages/upstream/mirage-block-unix.2.8.2/descr b/repo/win32/packages/upstream/mirage-block-unix.2.8.2/descr deleted file mode 100644 index f62dda12c..000000000 --- a/repo/win32/packages/upstream/mirage-block-unix.2.8.2/descr +++ /dev/null @@ -1 +0,0 @@ -MirageOS disk block driver for Unix diff --git a/repo/win32/packages/upstream/mirage-block-unix.2.8.2/opam b/repo/win32/packages/upstream/mirage-block-unix.2.8.2/opam deleted file mode 100644 index ea6a4af23..000000000 --- a/repo/win32/packages/upstream/mirage-block-unix.2.8.2/opam +++ /dev/null @@ -1,36 +0,0 @@ -opam-version: "1.2" -authors: "Dave Scott " -maintainer: "dave@recoil.org" -homepage: "https://github.com/mirage/mirage-block-unix" -dev-repo: "https://github.com/mirage/mirage-block-unix.git" -bug-reports: "https://github.com/mirage/mirage-block-unix/issues" - - -build: [ - [ "jbuilder" "build" ] -] - -build-test: [ - [ "jbuilder" "runtest" ] -] - -depends: [ - "ocamlfind" {build} - "jbuilder" {build} - "cstruct" {>= "1.3.0"} - "lwt" {>= "2.6.0"} - "mirage-block-lwt" {>= "1.0.0"} - "rresult" - "result" - "io-page" {>= "1.0.0"} - "uri" - "logs" - "ounit" {test} - "fmt" {test} - "cstruct-lwt" -] -available: [ ocaml-version >= "4.02.3" ] -depexts: [ - [["alpine"] ["linux-headers"]] -] -tags: "org:mirage" diff --git a/repo/win32/packages/upstream/mirage-block-unix.2.8.2/url b/repo/win32/packages/upstream/mirage-block-unix.2.8.2/url deleted file mode 100644 index e0d0a13dd..000000000 --- a/repo/win32/packages/upstream/mirage-block-unix.2.8.2/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/mirage-block-unix/archive/v2.8.2.tar.gz" -checksum: "58dc51096e65da48ec87617be3110467" diff --git a/repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/descr b/repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/descr new file mode 100644 index 000000000..55e8d1911 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/descr @@ -0,0 +1,29 @@ +Buffered channels for MirageOS FLOW types + +Channels are buffered reader/writers built on top of unbuffered `FLOW` +implementations. + +Example: + +```ocaml +module Channel = Channel.Make(Flow) +... +Channel.read_exactly ~len:16 t +>>= fun bufs -> (* read header of message *) +let payload_length = Cstruct.(LE.get_uint16 (concat bufs) 0) in +Channel.read_exactly ~len:payload_length t +>>= fun bufs -> (* payload of message *) + +(* process message *) + +Channel.write_buffer t header; +Channel.write_buffer t payload; +Channel.flush t +>>= fun () -> +``` + +mirage-channel is distributed under the ISC license. + +* Homepage: https://github.com/mirage/mirage-channel +* Issue: +* Contact: `` \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/opam b/repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/opam new file mode 100644 index 000000000..0ec20e299 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/opam @@ -0,0 +1,32 @@ +opam-version: "1.2" +maintainer: "Anil Madhavapeddy " +authors: ["Anil Madhavapeddy" "Mindy Preston" "Thomas Gazagnaire"] +homepage: "https://github.com/mirage/mirage-channel" +doc: "http://docs.mirage.io/mirage-channel" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-channel.git" +bug-reports: "https://github.com/mirage/mirage-channel/issues" +tags: ["org:mirage"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] +build-test: [ + [ "jbuilder" "runtest" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-channel" {>= "3.1.0"} + "io-page" + "result" + "lwt" {>= "2.4.7"} + "cstruct" + "logs" + "alcotest" {test} + "io-page-unix" {test} +] +conflicts: [ "tcpip" {<"2.5.0"} ] +available: [ ocaml-version >= "4.02.3"] diff --git a/repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/url b/repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/url new file mode 100644 index 000000000..b8e4dbc05 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-channel-lwt.3.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-channel/releases/download/v3.1.0/mirage-channel-3.1.0.tbz" +checksum: "942d02ee627c0bae75ce5e7e16c1153e" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-channel.3.1.0/descr b/repo/win32/packages/upstream/mirage-channel.3.1.0/descr new file mode 100644 index 000000000..55e8d1911 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-channel.3.1.0/descr @@ -0,0 +1,29 @@ +Buffered channels for MirageOS FLOW types + +Channels are buffered reader/writers built on top of unbuffered `FLOW` +implementations. + +Example: + +```ocaml +module Channel = Channel.Make(Flow) +... +Channel.read_exactly ~len:16 t +>>= fun bufs -> (* read header of message *) +let payload_length = Cstruct.(LE.get_uint16 (concat bufs) 0) in +Channel.read_exactly ~len:payload_length t +>>= fun bufs -> (* payload of message *) + +(* process message *) + +Channel.write_buffer t header; +Channel.write_buffer t payload; +Channel.flush t +>>= fun () -> +``` + +mirage-channel is distributed under the ISC license. + +* Homepage: https://github.com/mirage/mirage-channel +* Issue: +* Contact: `` \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-channel.3.1.0/opam b/repo/win32/packages/upstream/mirage-channel.3.1.0/opam new file mode 100644 index 000000000..af78ade59 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-channel.3.1.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "Anil Madhavapeddy " +authors: ["Anil Madhavapeddy" "Mindy Preston" "Thomas Gazagnaire"] +homepage: "https://github.com/mirage/mirage-channel" +doc: "http://mirage.github.io/mirage-channel/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-channel.git" +bug-reports: "https://github.com/mirage/mirage-channel/issues" +tags: ["org:mirage"] +available: [ ocaml-version >= "4.02.3"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "mirage-flow" {>= "1.2.0"} +] +conflicts: [ + "tcpip" {< "3.0.0"} +] diff --git a/repo/win32/packages/upstream/mirage-channel.3.1.0/url b/repo/win32/packages/upstream/mirage-channel.3.1.0/url new file mode 100644 index 000000000..b8e4dbc05 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-channel.3.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-channel/releases/download/v3.1.0/mirage-channel-3.1.0.tbz" +checksum: "942d02ee627c0bae75ce5e7e16c1153e" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/descr b/repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/descr new file mode 100644 index 000000000..e2acef972 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/descr @@ -0,0 +1,15 @@ +Libraries and module types for portable clocks + +This library implements portable support for an operating system timesource +that is compatible with the [MirageOS](https://mirage.io) library interfaces +found in: + +It implements an `MCLOCK` module that represents a monotonic timesource +since an arbitrary point, and `PCLOCK` which counts time since the Unix +epoch. + +The following sources are used: + +* The Unix version uses `gettimeofday` or `clock_gettime`, depending on + which OS is in use (see [clock_stubs.c](https://github.com/mirage/mirage-clock/blob/master/unix/clock_stubs.c)). +* The freestanding version uses the paravirtual clock source from the hypervisor. \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/opam b/repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/opam new file mode 100644 index 000000000..1203ebe0f --- /dev/null +++ b/repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +authors: ["Anil Madhavapeddy" "Daniel C. Bünzli" "Matthew Gray"] +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-clock" +bug-reports: "https://github.com/mirage/mirage-clock/issues" +dev-repo: "https://github.com/mirage/mirage-clock.git" +doc: "https://mirage.github.io/mirage-clock/" + +license: "ISC" +tags: ["org:mirage"] +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-clock" {>= "1.2.0"} + "lwt" +] +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] diff --git a/repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/url b/repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/url new file mode 100644 index 000000000..59e62377b --- /dev/null +++ b/repo/win32/packages/upstream/mirage-clock-lwt.1.3.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-clock/releases/download/v1.3.0/mirage-clock-1.3.0.tbz" +checksum: "eccfb4b7361bcc639744fd18d17cb582" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/descr b/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/descr deleted file mode 100644 index 52d46fbcb..000000000 --- a/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/descr +++ /dev/null @@ -1 +0,0 @@ -A Mirage-compatible Clock library for Unix diff --git a/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/findlib b/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/findlib deleted file mode 100644 index cc72706b9..000000000 --- a/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/findlib +++ /dev/null @@ -1 +0,0 @@ -mirage-clock-unix diff --git a/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/opam b/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/opam deleted file mode 100644 index 0a42ae092..000000000 --- a/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/opam +++ /dev/null @@ -1,14 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -author: "anil@recoil.org" -homepage: "https://github.com/mirage/mirage-clock" -dev-repo: "https://github.com/mirage/mirage-clock.git" -bug-reports: "https://github.com/mirage/mirage-clock/issues" -install: [make "unix-install"] -tags: ["org:mirage" "org:xapi-project"] -build: [make "unix-build"] -remove: ["ocamlfind" "remove" "mirage-clock-unix"] -depends: [ - "ocamlfind" - "mirage-types" {>= "0.3.0" & < "3.0.0"} -] diff --git a/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/url b/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/url deleted file mode 100644 index d070123f0..000000000 --- a/repo/win32/packages/upstream/mirage-clock-unix.1.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/mirage-clock/archive/v1.0.0.tar.gz" -checksum: "c20135e5bac324fb9009a54986cf615f" diff --git a/repo/win32/packages/upstream/mirage-clock-unix.1.4.0/descr b/repo/win32/packages/upstream/mirage-clock-unix.1.4.0/descr new file mode 100644 index 000000000..e2acef972 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-clock-unix.1.4.0/descr @@ -0,0 +1,15 @@ +Libraries and module types for portable clocks + +This library implements portable support for an operating system timesource +that is compatible with the [MirageOS](https://mirage.io) library interfaces +found in: + +It implements an `MCLOCK` module that represents a monotonic timesource +since an arbitrary point, and `PCLOCK` which counts time since the Unix +epoch. + +The following sources are used: + +* The Unix version uses `gettimeofday` or `clock_gettime`, depending on + which OS is in use (see [clock_stubs.c](https://github.com/mirage/mirage-clock/blob/master/unix/clock_stubs.c)). +* The freestanding version uses the paravirtual clock source from the hypervisor. \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-clock-unix.1.4.0/opam b/repo/win32/packages/upstream/mirage-clock-unix.1.4.0/opam new file mode 100644 index 000000000..780b222c4 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-clock-unix.1.4.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +authors: ["Anil Madhavapeddy" "Daniel C. Bünzli" "Matthew Gray"] +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-clock" +bug-reports: "https://github.com/mirage/mirage-clock/issues" +dev-repo: "https://github.com/mirage/mirage-clock.git" +doc: "https://mirage.github.io/mirage-clock/" +license: "ISC" +tags: ["org:mirage"] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-clock" {>= "1.2.0"} + "mirage-clock-lwt" {>= "1.2.0"} + "lwt" + "configurator" {build} +] +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] +build-test: ["jbuilder" "runtest" "-p" name] diff --git a/repo/win32/packages/upstream/mirage-clock-unix.1.4.0/url b/repo/win32/packages/upstream/mirage-clock-unix.1.4.0/url new file mode 100644 index 000000000..f3d490cee --- /dev/null +++ b/repo/win32/packages/upstream/mirage-clock-unix.1.4.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-clock/releases/download/v1.4.0/mirage-clock-1.4.0.tbz" +checksum: "0cd3efd3f426c285ea1c473cc872cb81" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-clock.1.3.0/descr b/repo/win32/packages/upstream/mirage-clock.1.3.0/descr new file mode 100644 index 000000000..e2acef972 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-clock.1.3.0/descr @@ -0,0 +1,15 @@ +Libraries and module types for portable clocks + +This library implements portable support for an operating system timesource +that is compatible with the [MirageOS](https://mirage.io) library interfaces +found in: + +It implements an `MCLOCK` module that represents a monotonic timesource +since an arbitrary point, and `PCLOCK` which counts time since the Unix +epoch. + +The following sources are used: + +* The Unix version uses `gettimeofday` or `clock_gettime`, depending on + which OS is in use (see [clock_stubs.c](https://github.com/mirage/mirage-clock/blob/master/unix/clock_stubs.c)). +* The freestanding version uses the paravirtual clock source from the hypervisor. \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-clock.1.3.0/opam b/repo/win32/packages/upstream/mirage-clock.1.3.0/opam new file mode 100644 index 000000000..6f061f174 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-clock.1.3.0/opam @@ -0,0 +1,17 @@ +opam-version: "1.2" +authors: ["Anil Madhavapeddy" "Daniel C. Bünzli" "Matthew Gray"] +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-clock" +bug-reports: "https://github.com/mirage/mirage-clock/issues" +dev-repo: "https://github.com/mirage/mirage-clock.git" +doc: "https://mirage.github.io/mirage-clock/" +license: "ISC" +tags: ["org:mirage"] +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-device" {>= "1.0.0"} +] +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] diff --git a/repo/win32/packages/upstream/mirage-clock.1.3.0/url b/repo/win32/packages/upstream/mirage-clock.1.3.0/url new file mode 100644 index 000000000..59e62377b --- /dev/null +++ b/repo/win32/packages/upstream/mirage-clock.1.3.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-clock/releases/download/v1.3.0/mirage-clock-1.3.0.tbz" +checksum: "eccfb4b7361bcc639744fd18d17cb582" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-conduit.2.2.0/descr b/repo/win32/packages/upstream/mirage-conduit.2.2.0/descr deleted file mode 100644 index a34a32f52..000000000 --- a/repo/win32/packages/upstream/mirage-conduit.2.2.0/descr +++ /dev/null @@ -1 +0,0 @@ -Virtual package for the MirageOS Conduit transports diff --git a/repo/win32/packages/upstream/mirage-conduit.2.2.0/opam b/repo/win32/packages/upstream/mirage-conduit.2.2.0/opam deleted file mode 100644 index a73cfd29d..000000000 --- a/repo/win32/packages/upstream/mirage-conduit.2.2.0/opam +++ /dev/null @@ -1,19 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire"] -homepage: "https://github.com/mirage/ocaml-conduit" -dev-repo: "https://github.com/mirage/ocaml-conduit.git" -bug-reports: "https://github.com/mirage/ocaml-conduit/issues" -tags: "org:mirage" -license: "ISC" -build: ["ocamlfind" "query" "conduit.mirage"] -depends: [ - "mirage-types-lwt" {>= "2.3.0" & < "3.0.0"} - "mirage-dns" {>= "2.0.0"} - "conduit" {>= "0.8.4"} -] -depopts: ["vchan" "tls"] -conflicts: [ - "tls" {< "0.5.0"} -] -available: [ocaml-version >= "4.01.0"] diff --git a/repo/win32/packages/upstream/mirage-conduit.3.0.1/descr b/repo/win32/packages/upstream/mirage-conduit.3.0.1/descr new file mode 100644 index 000000000..cb46f15b9 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-conduit.3.0.1/descr @@ -0,0 +1,35 @@ +Network conduit library + +The `conduit` library takes care of establishing and listening for +TCP and SSL/TLS connections for the Lwt and Async libraries. + +The reason this library exists is to provide a degree of abstraction +from the precise SSL library used, since there are a variety of ways +to bind to a library (e.g. the C FFI, or the Ctypes library), as well +as well as which library is used (just OpenSSL for now). + +By default, OpenSSL is used as the preferred connection library, but +you can force the use of the pure OCaml TLS stack by setting the +environment variable `CONDUIT_TLS=native` when starting your program. + +The opam packages available are: + +- `conduit`: the main `Conduit` module +- `conduit-lwt`: the portable Lwt implementation +- `conduit-lwt-unix`: the Lwt/Unix implementation +- `conduit-async` the Jane Street Async implementation +- `mirage-conduit`: the MirageOS compatible implementation + +### Debugging + +Some of the `Lwt_unix`-based modules use a non-empty `CONDUIT_DEBUG` +environment variable to output debugging information to standard error. +Just set this variable when running the program to see what URIs +are being resolved to. + +### Further Informartion + +* **API Docs:** http://docs.mirage.io/ +* **WWW:** https://github.com/mirage/ocaml-conduit +* **E-mail:** +* **Bugs:** https://github.com/mirage/ocaml-conduit/issues \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-conduit.3.0.1/opam b/repo/win32/packages/upstream/mirage-conduit.3.0.1/opam new file mode 100644 index 000000000..4fdcac603 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-conduit.3.0.1/opam @@ -0,0 +1,25 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire"] +homepage: "https://github.com/mirage/ocaml-conduit" +dev-repo: "https://github.com/mirage/ocaml-conduit.git" +bug-reports: "https://github.com/mirage/ocaml-conduit/issues" +tags: "org:mirage" +license: "ISC" + +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "cstruct" {>= "3.0.0"} + "mirage-types-lwt" {>= "3.0.0"} + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-dns" {>= "3.0.0"} + "conduit-lwt" + "vchan" {>= "3.0.0"} + "tls" {>="0.8.0"} +] +available: [ocaml-version >="4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-conduit.3.0.1/url b/repo/win32/packages/upstream/mirage-conduit.3.0.1/url new file mode 100644 index 000000000..a11f363f0 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-conduit.3.0.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-conduit/releases/download/v1.0.1/conduit-1.0.1.tbz" +checksum: "ef2095d59d93303697c944f9d404e64d" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-console-lwt.2.3.5/descr b/repo/win32/packages/upstream/mirage-console-lwt.2.3.5/descr new file mode 100644 index 000000000..169a8d11f --- /dev/null +++ b/repo/win32/packages/upstream/mirage-console-lwt.2.3.5/descr @@ -0,0 +1,40 @@ +Implementations of Mirage consoles, for Unix and Xen + + +The Unix version of the console currently uses standard output. The code is in + + unix/console.{ml,mli} + +The Xen kernel version of the console uses the primary PV console ring. The +code is in + + xen/console.{ml,mli} + +There is also a Unix userspace utility which creates and services Xen consoles +("console backends"): + +Connect a console to a VM like this: + +``` +[root@st30 ~]# ./mirage-console connect trusty +Operating on VM domain id: 19 +Creating device 1 (linux device /dev/tty1) +{ ref = 128; event_channel = 13 } +``` + +Then inside the guest: + +``` +[root@trusty ~]# cat > /dev/hvc1 +hello +there +``` + +And observe in dom0: + +``` +hello +there +``` + +Then hit Control+C and it all cleans up. \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-console-lwt.2.3.5/opam b/repo/win32/packages/upstream/mirage-console-lwt.2.3.5/opam new file mode 100644 index 000000000..d6942ef06 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-console-lwt.2.3.5/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-console" +bug-reports: "https://github.com/mirage/mirage-console/issues" +dev-repo: "https://github.com/mirage/mirage-console.git" +doc: "https://mirage.github.io/mirage-console/" +authors: [ "Anil Madhavapeddy" "David Scott"] +tags: [ "org:mirage" "org:xapi-project"] +license: "ISC" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-console" {>= "2.3.5"} + "lwt" + "cstruct" {>= "1.9.0"} + "cstruct-lwt" +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-console-lwt.2.3.5/url b/repo/win32/packages/upstream/mirage-console-lwt.2.3.5/url new file mode 100644 index 000000000..8940fbeac --- /dev/null +++ b/repo/win32/packages/upstream/mirage-console-lwt.2.3.5/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-console/releases/download/v2.3.5/mirage-console-2.3.5.tbz" +checksum: "6d0d18cc25fc3e14f070fbb79a24f9ca" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-console-unix.2.3.5/descr b/repo/win32/packages/upstream/mirage-console-unix.2.3.5/descr new file mode 100644 index 000000000..169a8d11f --- /dev/null +++ b/repo/win32/packages/upstream/mirage-console-unix.2.3.5/descr @@ -0,0 +1,40 @@ +Implementations of Mirage consoles, for Unix and Xen + + +The Unix version of the console currently uses standard output. The code is in + + unix/console.{ml,mli} + +The Xen kernel version of the console uses the primary PV console ring. The +code is in + + xen/console.{ml,mli} + +There is also a Unix userspace utility which creates and services Xen consoles +("console backends"): + +Connect a console to a VM like this: + +``` +[root@st30 ~]# ./mirage-console connect trusty +Operating on VM domain id: 19 +Creating device 1 (linux device /dev/tty1) +{ ref = 128; event_channel = 13 } +``` + +Then inside the guest: + +``` +[root@trusty ~]# cat > /dev/hvc1 +hello +there +``` + +And observe in dom0: + +``` +hello +there +``` + +Then hit Control+C and it all cleans up. \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-console-unix.2.3.5/opam b/repo/win32/packages/upstream/mirage-console-unix.2.3.5/opam new file mode 100644 index 000000000..b0a8c3cb4 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-console-unix.2.3.5/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-console" +bug-reports: "https://github.com/mirage/mirage-console/issues" +dev-repo: "https://github.com/mirage/mirage-console.git" +doc: "https://mirage.github.io/mirage-console/" +authors: [ "Anil Madhavapeddy" "David Scott"] +tags: [ "org:mirage" "org:xapi-project"] +license: "ISC" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "lwt" + "cstruct" {>="3.0.0"} + "cstruct-lwt" + "mirage-console-lwt" {>= "2.3.5"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-console-unix.2.3.5/url b/repo/win32/packages/upstream/mirage-console-unix.2.3.5/url new file mode 100644 index 000000000..8940fbeac --- /dev/null +++ b/repo/win32/packages/upstream/mirage-console-unix.2.3.5/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-console/releases/download/v2.3.5/mirage-console-2.3.5.tbz" +checksum: "6d0d18cc25fc3e14f070fbb79a24f9ca" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-console.2.1.3/descr b/repo/win32/packages/upstream/mirage-console.2.1.3/descr deleted file mode 100644 index 2853ee6c0..000000000 --- a/repo/win32/packages/upstream/mirage-console.2.1.3/descr +++ /dev/null @@ -1 +0,0 @@ -A Mirage-compatible Console library for Xen and Unix diff --git a/repo/win32/packages/upstream/mirage-console.2.1.3/opam b/repo/win32/packages/upstream/mirage-console.2.1.3/opam deleted file mode 100644 index f04065804..000000000 --- a/repo/win32/packages/upstream/mirage-console.2.1.3/opam +++ /dev/null @@ -1,36 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -homepage: "https://github.com/mirage/mirage-console" -bug-reports: "https://github.com/mirage/mirage-console/issues" -dev-repo: "https://github.com/mirage/mirage-console.git" -authors: ["Anil Madhavapeddy" "David Scott"] -tags: ["org:mirage" "org:xapi-project"] -build: [ - make - "PREFIX=%{prefix}%" - "ENABLE_MIRAGE_XEN=--%{mirage-xen+xenstore+xen-gnt+xen-evtchn:enable}%-miragexen" - "ENABLE_XEN=--%{shared-memory-ring+xen-gnt+xen-evtchn+xenstore+xenstore_transport:enable}%-xen" - "ENABLE_XENCTRL=--%{xenctrl+xen-evtchn+xen-gnt:enable}%-xenctrl" -] -install: [make "install" "PREFIX=%{prefix}%"] -remove: ["ocamlfind" "remove" "mirage-console"] -depends: [ - "ocamlfind" {build} - "mirage-types-lwt" {< "3.0.0"} - "cmdliner" - "cstruct-lwt" - "mirage-unix" {>= "1.1.0"} - "ocamlbuild" {build} -] -depopts: [ - "mirage-xen" - "xenstore" - "xen-gnt" - "xen-evtchn" - "shared-memory-ring" - "xenstore" - "xenstore_transport" -] -conflicts: [ - "mirage-xen" {< "1.1.0"} -] diff --git a/repo/win32/packages/upstream/mirage-console.2.1.3/url b/repo/win32/packages/upstream/mirage-console.2.1.3/url deleted file mode 100644 index 810ff485c..000000000 --- a/repo/win32/packages/upstream/mirage-console.2.1.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/mirage-console/archive/v2.1.3.tar.gz" -checksum: "82f088b4c3ff601eaaf0ea5cd88eebc7" diff --git a/repo/win32/packages/upstream/mirage-console.2.3.5/descr b/repo/win32/packages/upstream/mirage-console.2.3.5/descr new file mode 100644 index 000000000..169a8d11f --- /dev/null +++ b/repo/win32/packages/upstream/mirage-console.2.3.5/descr @@ -0,0 +1,40 @@ +Implementations of Mirage consoles, for Unix and Xen + + +The Unix version of the console currently uses standard output. The code is in + + unix/console.{ml,mli} + +The Xen kernel version of the console uses the primary PV console ring. The +code is in + + xen/console.{ml,mli} + +There is also a Unix userspace utility which creates and services Xen consoles +("console backends"): + +Connect a console to a VM like this: + +``` +[root@st30 ~]# ./mirage-console connect trusty +Operating on VM domain id: 19 +Creating device 1 (linux device /dev/tty1) +{ ref = 128; event_channel = 13 } +``` + +Then inside the guest: + +``` +[root@trusty ~]# cat > /dev/hvc1 +hello +there +``` + +And observe in dom0: + +``` +hello +there +``` + +Then hit Control+C and it all cleans up. \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-console.2.3.5/opam b/repo/win32/packages/upstream/mirage-console.2.3.5/opam new file mode 100644 index 000000000..f34b5f617 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-console.2.3.5/opam @@ -0,0 +1,21 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/mirage-console" +bug-reports: "https://github.com/mirage/mirage-console/issues" +dev-repo: "https://github.com/mirage/mirage-console.git" +doc: "https://mirage.github.io/mirage-console/" +authors: [ "Anil Madhavapeddy" "David Scott"] +tags: [ "org:mirage" "org:xapi-project"] +license: "ISC" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-device" {>= "1.0.0"} + "mirage-flow" {>= "1.2.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-console.2.3.5/url b/repo/win32/packages/upstream/mirage-console.2.3.5/url new file mode 100644 index 000000000..8940fbeac --- /dev/null +++ b/repo/win32/packages/upstream/mirage-console.2.3.5/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-console/releases/download/v2.3.5/mirage-console-2.3.5.tbz" +checksum: "6d0d18cc25fc3e14f070fbb79a24f9ca" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-device.1.0.0/url b/repo/win32/packages/upstream/mirage-device.1.0.0/url deleted file mode 100644 index a37e7046d..000000000 --- a/repo/win32/packages/upstream/mirage-device.1.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/mirage-device/releases/download/1.0.0/mirage-device-1.0.0.tbz" -checksum: "6d6f0235b07e1e068ce71d788b5ce11b" diff --git a/repo/win32/packages/upstream/mirage-device.1.0.0/descr b/repo/win32/packages/upstream/mirage-device.1.1.0/descr similarity index 100% rename from repo/win32/packages/upstream/mirage-device.1.0.0/descr rename to repo/win32/packages/upstream/mirage-device.1.1.0/descr diff --git a/repo/win32/packages/upstream/mirage-device.1.0.0/opam b/repo/win32/packages/upstream/mirage-device.1.1.0/opam similarity index 80% rename from repo/win32/packages/upstream/mirage-device.1.0.0/opam rename to repo/win32/packages/upstream/mirage-device.1.1.0/opam index 81a4a9c83..95c936204 100644 --- a/repo/win32/packages/upstream/mirage-device.1.0.0/opam +++ b/repo/win32/packages/upstream/mirage-device.1.1.0/opam @@ -9,12 +9,11 @@ authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] tags: [ "org:mirage"] license: "ISC" - -build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%"] - +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build & >= "0.7.3"} + "jbuilder" {build & >="1.0+beta7"} "fmt" ] diff --git a/repo/win32/packages/upstream/mirage-device.1.1.0/url b/repo/win32/packages/upstream/mirage-device.1.1.0/url new file mode 100644 index 000000000..e7003c3d4 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-device.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-device/releases/download/v1.1.0/mirage-device-1.1.0.tbz" +checksum: "9af70ef256ba3827fee413d0a2e29b7e" diff --git a/repo/win32/packages/upstream/mirage-dns.2.5.0/descr b/repo/win32/packages/upstream/mirage-dns.2.5.0/descr deleted file mode 100644 index d0ab696d1..000000000 --- a/repo/win32/packages/upstream/mirage-dns.2.5.0/descr +++ /dev/null @@ -1 +0,0 @@ -Virtual package for the MirageOS DNS transports diff --git a/repo/win32/packages/upstream/mirage-dns.2.5.0/opam b/repo/win32/packages/upstream/mirage-dns.2.5.0/opam deleted file mode 100644 index 21a297f3e..000000000 --- a/repo/win32/packages/upstream/mirage-dns.2.5.0/opam +++ /dev/null @@ -1,25 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -homepage: "https://github.com/mirage/ocaml-dns" -dev-repo: "https://github.com/mirage/ocaml-dns.git" -bug-reports: "https://github.com/mirage/ocaml-dns/issues" -license: "ISC" -authors: [ - "Anil Madhavapeddy" - "Tim Deegan" - "Richard Mortier" - "Haris Rotsos" - "David Sheets" - "Thomas Gazagnaire" - "Luke Dunstan" -] -build: ["ocamlfind" "query" "dns.mirage"] -depends: [ - "ocamlfind" - "dns" {>= "0.15.1"} - "mirage-types-lwt" {>= "2.3.0" & < "3.0.0"} - "lwt" {>= "2.4.3"} - "cstruct" {>= "1.0.0"} - "tcpip" -] -available: [ocaml-version >= "4.01.0"] diff --git a/repo/win32/packages/upstream/mirage-dns.3.0.0/descr b/repo/win32/packages/upstream/mirage-dns.3.0.0/descr new file mode 100644 index 000000000..84cefc577 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-dns.3.0.0/descr @@ -0,0 +1,29 @@ +DNS client and server implementation in pure OCaml + +This is a pure OCaml implementation of the DNS protocol. It is intended to be +a reasonably high-performance implementation, but clarity is preferred rather +than low-level performance hacks. + +[![Build Status](https://travis-ci.org/mirage/ocaml-dns.svg?branch=master)](https://travis-ci.org/mirage/ocaml-dns) + +To build it, please use the [OPAM](https://opam.ocaml.org) package manager (1.2+): + + opam pin add dns . + +This will install the dependencies needed and give you a working development +version of the library. + +Packages: + +* `lib/` contains the core DNS protocol, which is packed into the `Dns` module. +* `lib_test/` contains unit tests and sample uses of the library. + In particular, `time_server` is a simple dynamic responder. + +Areas that need work: + +* We need an Lwt-based client iterative resolver + Patches for this are highly welcome! +* EDNS0 extensions +* DNSSEC extensions (using [nocrypto](https://github.com/mirleft/ocaml-nocrypto/)) +* TC bit and TCP fallback +* mDNS resolver \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-dns.3.0.0/opam b/repo/win32/packages/upstream/mirage-dns.3.0.0/opam new file mode 100644 index 000000000..31af65175 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-dns.3.0.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/ocaml-dns" +dev-repo: "https://github.com/mirage/ocaml-dns.git" +bug-reports: "https://github.com/mirage/ocaml-dns/issues" +license: "ISC" +authors: [ "Anil Madhavapeddy" "Tim Deegan" "Richard Mortier" "Haris Rotsos" + "David Sheets" "Thomas Gazagnaire" "Luke Dunstan" ] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "dns-lwt" + "duration" + "mirage-stack-lwt" + "mirage-kv-lwt" + "mirage-time-lwt" + "mirage-profile" {>="0.8.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-dns.3.0.0/url b/repo/win32/packages/upstream/mirage-dns.3.0.0/url new file mode 100644 index 000000000..6eb7b78ec --- /dev/null +++ b/repo/win32/packages/upstream/mirage-dns.3.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-dns/releases/download/v1.0.0/dns-1.0.0.tbz" +checksum: "5fe4efe11671253950f89036a6cc1a21" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/descr b/repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/descr new file mode 100644 index 000000000..292ede4d9 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/descr @@ -0,0 +1 @@ +Flow implementations and combinators for MirageOS using Lwt diff --git a/repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/opam b/repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/opam new file mode 100644 index 000000000..29043bfc0 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-flow" +bug-reports: "https://github.com/mirage/mirage-flow/issues" +dev-repo: "https://github.com/mirage/mirage-flow.git" +doc: "https://mirage.github.io/mirage-flow/" +authors: ["Thomas Gazagnaire" "Dave Scott"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "fmt" + "lwt" + "logs" + "cstruct" {>= "2.0.0"} + "mirage-clock" {>= "1.2.0"} + "mirage-flow" {>= "1.2.0"} +] diff --git a/repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/url b/repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/url new file mode 100644 index 000000000..b5dcb91ba --- /dev/null +++ b/repo/win32/packages/upstream/mirage-flow-lwt.1.4.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-flow/releases/download/v1.4.0/mirage-flow-1.4.0.tbz" +checksum: "fdbd270044821d21afc883399eea45aa" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-flow.1.1.0/descr b/repo/win32/packages/upstream/mirage-flow.1.1.0/descr deleted file mode 100644 index f5530af6c..000000000 --- a/repo/win32/packages/upstream/mirage-flow.1.1.0/descr +++ /dev/null @@ -1,5 +0,0 @@ -Various implementations of and operations over the MirageOS FLOW interface - -- `Fflow` uses input/output functions to build a flow -- `Lwt_io_flow` uses `Lwt_io.channel` -- `Mirage_flow.copy` and `Mirage_flow.proxy` diff --git a/repo/win32/packages/upstream/mirage-flow.1.1.0/findlib b/repo/win32/packages/upstream/mirage-flow.1.1.0/findlib deleted file mode 100644 index 23d247939..000000000 --- a/repo/win32/packages/upstream/mirage-flow.1.1.0/findlib +++ /dev/null @@ -1 +0,0 @@ -mirage-flow diff --git a/repo/win32/packages/upstream/mirage-flow.1.1.0/opam b/repo/win32/packages/upstream/mirage-flow.1.1.0/opam deleted file mode 100644 index 2fdc8f94a..000000000 --- a/repo/win32/packages/upstream/mirage-flow.1.1.0/opam +++ /dev/null @@ -1,29 +0,0 @@ -opam-version: "1.2" -maintainer: "Thomas Gazagnaire " -authors: [ - "Thomas Gazagnaire " "David Scott " -] -version: "1.1.0" -homepage: "https://github.com/mirage/mirage-flow" -bug-reports: "https://github.com/mirage/mirage-flow/issues/" -license: "ISC" -dev-repo: "https://github.com/mirage/mirage-flow.git" -build: [ - ["./configure" "--prefix=%{prefix}%"] - [make] -] -build-test: [ - ["./configure" "--prefix=%{prefix}%" "--enable-tests"] - [make "test"] -] -install: [make "install"] -remove: ["ocamlfind" "remove" "mirage-flow"] -depends: [ - "ocamlbuild" {build} - "ocamlfind" {build} - "mirage-types-lwt" {< "3.0.0"} - "cstruct" - "lwt" {>= "2.5.0"} - "alcotest" {test} - "ounit" {test} -] diff --git a/repo/win32/packages/upstream/mirage-flow.1.1.0/url b/repo/win32/packages/upstream/mirage-flow.1.1.0/url deleted file mode 100644 index 357ff185e..000000000 --- a/repo/win32/packages/upstream/mirage-flow.1.1.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/mirage-flow/archive/v1.1.0.tar.gz" -checksum: "ba12ab7dc477d09e3d27aa984384ce7f" diff --git a/repo/win32/packages/upstream/mirage-flow.1.3.0/descr b/repo/win32/packages/upstream/mirage-flow.1.3.0/descr new file mode 100644 index 000000000..31740d93e --- /dev/null +++ b/repo/win32/packages/upstream/mirage-flow.1.3.0/descr @@ -0,0 +1,10 @@ +Flow implementations and combinators for MirageOS + +This repo contains generic operations over Mirage `FLOW` implementations. + +Please consult [the API documentation](https://mirage.github.io/mirage-flow/index.html). + +### Example usage + +In a top-level like utop: +```ocaml \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-flow.1.3.0/opam b/repo/win32/packages/upstream/mirage-flow.1.3.0/opam new file mode 100644 index 000000000..a0f277145 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-flow.1.3.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-flow" +bug-reports: "https://github.com/mirage/mirage-flow/issues" +dev-repo: "https://github.com/mirage/mirage-flow.git" +doc: "https://mirage.github.io/mirage-flow/" +authors: ["Thomas Gazagnaire" "Dave Scott"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "fmt" +] diff --git a/repo/win32/packages/upstream/mirage-flow.1.3.0/url b/repo/win32/packages/upstream/mirage-flow.1.3.0/url new file mode 100644 index 000000000..7cae756c1 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-flow.1.3.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-flow/releases/download/v1.3.0/mirage-flow-1.3.0.tbz" +checksum: "2811566ba9895e429716e4c315cd43e6" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/descr b/repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/descr new file mode 100644 index 000000000..55ae88333 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/descr @@ -0,0 +1,9 @@ +MirageOS signatures for filesystem devices + +[![Build Status](https://travis-ci.org/mirage/mirage-fs.svg?branch=master)](https://travis-ci.org/mirage/mirage-fs) + +mirage-fs provides the `[Mirage_fs.S][fs]` and `[Mirage_fs_lwt.S]` signatures +the MirageOS filesystem devices should implement. + +[fs]: http://mirage.github.io/mirage-fs/Mirage_fs.html +[fslwt]: http://mirage.github.io/mirage-fs/Mirage_fs_lwt.html \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/opam b/repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/opam new file mode 100644 index 000000000..0e951651f --- /dev/null +++ b/repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/opam @@ -0,0 +1,25 @@ +opam-version: "1.2" +maintainer: "Thomas Gazagnaire " +authors: ["Thomas Gazagnaire "] +homepage: "https://github.com/mirage/mirage-fs" +doc: "https://mirage.github.io/mirage-fs/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-fs.git" +bug-reports: "https://github.com/mirage/mirage-fs/issues" +tags: ["org:mirage"] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "mirage-fs" {>= "1.0.0"} + "mirage-kv-lwt" + "lwt" + "cstruct" {>= "1.9.0"} + "cstruct-lwt" +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/url b/repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/url new file mode 100644 index 000000000..df32e27d3 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-fs-lwt.1.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-fs/releases/download/v1.1.1/mirage-fs-1.1.1.tbz" +checksum: "8e8f51347c4fec027025c76eda4ff6b5" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-fs.1.1.1/descr b/repo/win32/packages/upstream/mirage-fs.1.1.1/descr new file mode 100644 index 000000000..55ae88333 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-fs.1.1.1/descr @@ -0,0 +1,9 @@ +MirageOS signatures for filesystem devices + +[![Build Status](https://travis-ci.org/mirage/mirage-fs.svg?branch=master)](https://travis-ci.org/mirage/mirage-fs) + +mirage-fs provides the `[Mirage_fs.S][fs]` and `[Mirage_fs_lwt.S]` signatures +the MirageOS filesystem devices should implement. + +[fs]: http://mirage.github.io/mirage-fs/Mirage_fs.html +[fslwt]: http://mirage.github.io/mirage-fs/Mirage_fs_lwt.html \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-fs.1.1.1/opam b/repo/win32/packages/upstream/mirage-fs.1.1.1/opam new file mode 100644 index 000000000..fca9f5644 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-fs.1.1.1/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "Thomas Gazagnaire " +authors: ["Thomas Gazagnaire "] +homepage: "https://github.com/mirage/mirage-fs" +doc: "https://mirage.github.io/mirage-fs/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-fs.git" +bug-reports: "https://github.com/mirage/mirage-fs/issues" +tags: ["org:mirage"] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "fmt" + "mirage-device" {>= "1.0.0"} +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-fs.1.1.1/url b/repo/win32/packages/upstream/mirage-fs.1.1.1/url new file mode 100644 index 000000000..df32e27d3 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-fs.1.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-fs/releases/download/v1.1.1/mirage-fs-1.1.1.tbz" +checksum: "8e8f51347c4fec027025c76eda4ff6b5" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-http.2.5.3/descr b/repo/win32/packages/upstream/mirage-http.2.5.3/descr deleted file mode 100644 index c6c3b9f83..000000000 --- a/repo/win32/packages/upstream/mirage-http.2.5.3/descr +++ /dev/null @@ -1 +0,0 @@ -MirageOS-compatible implementation of the Cohttp interfaces diff --git a/repo/win32/packages/upstream/mirage-http.2.5.3/opam b/repo/win32/packages/upstream/mirage-http.2.5.3/opam deleted file mode 100644 index 6f7e836b7..000000000 --- a/repo/win32/packages/upstream/mirage-http.2.5.3/opam +++ /dev/null @@ -1,21 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: ["Anil Madhavapeddy" "Thomas Gazagnaire"] -homepage: "https://github.com/mirage/mirage-http" -bug-reports: "https://github.com/mirage/mirage-http/issues/" -dev-repo: "https://github.com/mirage/mirage-http.git" -doc: "https://mirage.github.io/mirage-http/" -build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%"] -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "mirage-types" {>= "2.0.0"} - "mirage-types-lwt" {< "3.0.0"} - "conduit" - "mirage-conduit" {>= "2.2.0"} - "lwt" {>= "2.4.3"} - "cohttp" {>= "0.18.0"} - "channel" -] -available: [ocaml-version >= "4.00.0"] diff --git a/repo/win32/packages/upstream/mirage-http.2.5.3/url b/repo/win32/packages/upstream/mirage-http.2.5.3/url deleted file mode 100644 index bcae10ed6..000000000 --- a/repo/win32/packages/upstream/mirage-http.2.5.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/mirage-http/releases/download/2.5.3/mirage-http-2.5.3.tbz" -checksum: "3e83cab7de7cca512bac4f54d485fc0a" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-http.3.2.0/descr b/repo/win32/packages/upstream/mirage-http.3.2.0/descr new file mode 100644 index 000000000..65cfabe55 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-http.3.2.0/descr @@ -0,0 +1,27 @@ +An OCaml library for HTTP clients and servers + +[![Join the chat at https://gitter.im/mirage/ocaml-cohttp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mirage/ocaml-cohttp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +Cohttp is an OCaml library for creating HTTP daemons. It has a portable +HTTP parser, and implementations using various asynchronous programming +libraries: + +* `Cohttp_lwt_unix` uses the [Lwt](http://ocsigen.org/lwt) library, and + specifically the UNIX bindings. +* `Cohttp_async` uses the [Async](https://realworldocaml.org/v1/en/html/concurrent-programming-with-async.html) + library. +* `Cohttp_lwt` exposes an OS-independent Lwt interface, which is used + by the [Mirage](http://www.openmirage.org) interface + to generate standalone microkernels (see the [mirage-http](https://github.com/mirage/mirage-http) + repository). +* `Cohttp_lwt_xhr` compiles to a JavaScript module that maps the Cohttp + calls to XMLHTTPRequests. This is used to compile OCaml libraries like + the GitHub bindings to JavaScript and still run efficiently. + +You can implement other targets using the parser very easily. Look at the `IO` +signature in `lib/s.mli` and implement that in the desired backend. + +You can activate some runtime debugging by setting `COHTTP_DEBUG` to any +value, and all requests and responses will be written to stderr. Further +debugging of the connection layer can be obtained by setting `CONDUIT_DEBUG` +to any value. \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-http.3.2.0/opam b/repo/win32/packages/upstream/mirage-http.3.2.0/opam new file mode 100644 index 000000000..41e29dda8 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-http.3.2.0/opam @@ -0,0 +1,30 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: [ + "Anil Madhavapeddy" + "Thomas Gazagnaire" +] +homepage: "https://github.com/mirage/ocaml-cohttp" +bug-reports: "https://github.com/mirage/ocaml-cohttp/issues" +license: "ISC" +tags: ["org:mirage" "org:xapi-project"] +dev-repo: "https://github.com/mirage/ocaml-cohttp.git" +build: [ + ["jbuilder" "subst" "-n" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: [["jbuilder" "runtest" "-p" name "-j" jobs]] +depends: [ + "jbuilder" {build & >= "1.0+beta10"} + "result" + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-channel-lwt" {>= "3.0.0"} + "conduit" {>= "0.99"} + "mirage-conduit" {>= "3.0.0"} + "lwt" {>= "2.4.3"} + "cohttp" {>="0.99.0"} + "cohttp-lwt" + "astring" + "magic-mime" +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-http.3.2.0/url b/repo/win32/packages/upstream/mirage-http.3.2.0/url new file mode 100644 index 000000000..f85b2284a --- /dev/null +++ b/repo/win32/packages/upstream/mirage-http.3.2.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cohttp/releases/download/v0.99.0/cohttp-0.99.0.tbz" +checksum: "a789a9ed492005257bdb217e2248da0d" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/descr b/repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/descr new file mode 100644 index 000000000..28a32c5cb --- /dev/null +++ b/repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/descr @@ -0,0 +1 @@ +MirageOS utilities for interfacing with key-value stores. diff --git a/repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/opam b/repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/opam new file mode 100644 index 000000000..0d8801905 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "Thomas Gazagnaire " +authors: ["Thomas Gazagnaire "] +homepage: "https://github.com/mirage/mirage-kv" +doc: "https://mirage.github.io/mirage-kv/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-kv.git" +bug-reports: "https://github.com/mirage/mirage-kv/issues" +tags: ["org:mirage"] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "mirage-kv" {>= "1.0.0"} + "lwt" + "cstruct" {>= "1.9.0"} +] + +available: [ ocaml-version >= "4.01.0"] diff --git a/repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/url b/repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/url new file mode 100644 index 000000000..aba3128bf --- /dev/null +++ b/repo/win32/packages/upstream/mirage-kv-lwt.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-kv/releases/download/v1.1.0/mirage-kv-1.1.0.tbz" +checksum: "b1d8a3749ab84a6401c340b209f20faa" diff --git a/repo/win32/packages/upstream/mirage-kv.1.1.1/descr b/repo/win32/packages/upstream/mirage-kv.1.1.1/descr new file mode 100644 index 000000000..e9949ab75 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-kv.1.1.1/descr @@ -0,0 +1,9 @@ +MirageOS signatures for key/value devices + +mirage-kv provides the [Mirage_kv.RO][ro] and [Mirage_kv_lwt.RO][ro-lwt] +signatures the MirageOS key/value devices should implement. + +mirage-kv is distributed under the ISC license. + +[ro]: https://mirage.github.io/mirage-kv/Mirage_kv.html +[ro-lwt]: https://mirage.github.io/mirage-kv/Mirage_kv_lwt.html \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-kv.1.1.1/opam b/repo/win32/packages/upstream/mirage-kv.1.1.1/opam new file mode 100644 index 000000000..54ee95fc4 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-kv.1.1.1/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "Thomas Gazagnaire " +authors: ["Thomas Gazagnaire "] +homepage: "https://github.com/mirage/mirage-kv" +doc: "https://mirage.github.io/mirage-kv/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-kv.git" +bug-reports: "https://github.com/mirage/mirage-kv/issues" +tags: ["org:mirage"] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "mirage-device" {>= "1.0.0"} + "fmt" +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-kv.1.1.1/url b/repo/win32/packages/upstream/mirage-kv.1.1.1/url new file mode 100644 index 000000000..88a2b3a96 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-kv.1.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-kv/releases/download/v1.1.1/mirage-kv-1.1.1.tbz" +checksum: "8c1ac2888c17e1e1586d3b3de595bd28" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-net-lwt.1.1.0/descr b/repo/win32/packages/upstream/mirage-net-lwt.1.1.0/descr new file mode 100644 index 000000000..93c9ea270 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-net-lwt.1.1.0/descr @@ -0,0 +1 @@ +MirageOS TCP/IP networking library diff --git a/repo/win32/packages/upstream/mirage-net-lwt.1.1.0/opam b/repo/win32/packages/upstream/mirage-net-lwt.1.1.0/opam new file mode 100644 index 000000000..8a8151523 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-net-lwt.1.1.0/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-net" +bug-reports: "https://github.com/mirage/mirage-net/issues" +dev-repo: "https://github.com/mirage/mirage-net.git" +doc: "https://mirage.github.io/mirage-net/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "topkg" {build & >= "0.8.0"} + "mirage-net" {>= "1.0.0"} + "lwt" "ipaddr" "cstruct" "io-page" "result" +] diff --git a/repo/win32/packages/upstream/mirage-net-lwt.1.1.0/url b/repo/win32/packages/upstream/mirage-net-lwt.1.1.0/url new file mode 100644 index 000000000..d2634a207 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-net-lwt.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-net/releases/download/v1.1.0/mirage-net-1.1.0.tbz" +checksum: "76b10d355dc2e87ff2d19d1ae40c5d9b" diff --git a/repo/win32/packages/upstream/mirage-net.1.1.1/descr b/repo/win32/packages/upstream/mirage-net.1.1.1/descr new file mode 100644 index 000000000..b9b51ffd4 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-net.1.1.1/descr @@ -0,0 +1,22 @@ +Network signatures for MirageOS + +mirage-net defines [Mirage_net.S][1] the signature for +network operations for MirageOS. + +[1]: https://mirage.github.io/mirage-net/Mirage_net.S.html + +### Installation + +`mirage-net` can be installed with `opam`: + + opam install mirage-net + +If you don't use `opam` consult the [`opam`](opam) file for build +instructions. + +### Documentation + +The documentation and API reference is automatically generated by +`ocamldoc` from the interfaces. It can be consulted [online][2]. + +[2]: https://mirage.github.io/mirage-net/Mirage_net.html \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-net.1.1.1/opam b/repo/win32/packages/upstream/mirage-net.1.1.1/opam new file mode 100644 index 000000000..bd66ad9ba --- /dev/null +++ b/repo/win32/packages/upstream/mirage-net.1.1.1/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-net" +bug-reports: "https://github.com/mirage/mirage-net/issues" +dev-repo: "https://github.com/mirage/mirage-net.git" +doc: "https://mirage.github.io/mirage-net/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "mirage-device" {>= "1.0.0"} + "fmt" +] +available: [ocaml-version > "4.02.3"] diff --git a/repo/win32/packages/upstream/mirage-net.1.1.1/url b/repo/win32/packages/upstream/mirage-net.1.1.1/url new file mode 100644 index 000000000..e2176b73d --- /dev/null +++ b/repo/win32/packages/upstream/mirage-net.1.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-net/releases/download/v1.1.1/mirage-net-1.1.1.tbz" +checksum: "990f38d4c76dbc6392532666c90bb751" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-no-solo5.1/descr b/repo/win32/packages/upstream/mirage-no-solo5.1/descr new file mode 100644 index 000000000..fe8ccd209 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-no-solo5.1/descr @@ -0,0 +1 @@ +Virtual package conflicting with mirage-solo5 diff --git a/repo/win32/packages/upstream/mirage-no-solo5.1/opam b/repo/win32/packages/upstream/mirage-no-solo5.1/opam new file mode 100644 index 000000000..aaaef8fd9 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-no-solo5.1/opam @@ -0,0 +1,6 @@ +opam-version: "1.2" +maintainer: "mirageos-devel@lists.xenproject.org" +authors: ["mirageos-devel@lists.xenproject.org"] +homepage: "https://mirage.io" +license: "BSD2" +conflicts: [ "mirage-solo5" ] diff --git a/repo/win32/packages/upstream/mirage-no-xen.1/descr b/repo/win32/packages/upstream/mirage-no-xen.1/descr new file mode 100644 index 000000000..fe69ce3c9 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-no-xen.1/descr @@ -0,0 +1 @@ +Virtual package conflicting with mirage-xen diff --git a/repo/win32/packages/upstream/mirage-no-xen.1/opam b/repo/win32/packages/upstream/mirage-no-xen.1/opam new file mode 100644 index 000000000..34c598b39 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-no-xen.1/opam @@ -0,0 +1,6 @@ +opam-version: "1.2" +maintainer: "mirageos-devel@lists.xenproject.org" +authors: ["mirageos-devel@lists.xenproject.org"] +homepage: "https://mirage.io" +license: "BSD2" +conflicts: [ "mirage-xen" ] diff --git a/repo/win32/packages/upstream/mirage-profile.0.7.0/descr b/repo/win32/packages/upstream/mirage-profile.0.7.0/descr deleted file mode 100644 index 2ba28d7ab..000000000 --- a/repo/win32/packages/upstream/mirage-profile.0.7.0/descr +++ /dev/null @@ -1,6 +0,0 @@ -Collect profiling information - -This library can be used to trace execution of OCaml/Lwt programs (such as -MirageOS unikernels) at the level of Lwt threads. The traces can be viewed using -JavaScript or GTK viewers provided by mirage-trace-viewer or processed by tools -supporting the Common Trace Format (CTF). diff --git a/repo/win32/packages/upstream/mirage-profile.0.7.0/opam b/repo/win32/packages/upstream/mirage-profile.0.7.0/opam deleted file mode 100644 index 61545b7dc..000000000 --- a/repo/win32/packages/upstream/mirage-profile.0.7.0/opam +++ /dev/null @@ -1,32 +0,0 @@ -opam-version: "1.2" -name: "mirage-profile" -version: "0.7.0" -maintainer: "Thomas Leonard " -authors: "Thomas Leonard " -homepage: "https://github.com/mirage/mirage-profile" -dev-repo: "https://github.com/mirage/mirage-profile.git" -bug-reports: "https://github.com/mirage/mirage-profile/issues" -license: "BSD-2-clause" -build: [ - ["./configure" - "--prefix" prefix - "--%{mirage-xen-minios:enable}%-xen" - ] - [make] -] -install: [make "install"] -remove: ["ocamlfind" "remove" "mirage-profile"] -depends: [ - "ocamlfind" {build} - "cstruct" {>= "1.9.0"} - "ppx_cstruct" - "ppx_tools" - "ocplib-endian" - "io-page" - "lwt" - "ocamlbuild" {build} -] -depopts: [ - "mirage-xen-minios" -] -available: [ ocaml-version >= "4.02.0" ] diff --git a/repo/win32/packages/upstream/mirage-profile.0.7.0/url b/repo/win32/packages/upstream/mirage-profile.0.7.0/url deleted file mode 100644 index 98a9b8c8c..000000000 --- a/repo/win32/packages/upstream/mirage-profile.0.7.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/mirage-profile/archive/v0.7.0.tar.gz" -checksum: "e4af970d7fbea4f0f77200b2a1f1812b" diff --git a/repo/win32/packages/upstream/mirage-profile.0.8.1/descr b/repo/win32/packages/upstream/mirage-profile.0.8.1/descr new file mode 100644 index 000000000..cc7d4bd68 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-profile.0.8.1/descr @@ -0,0 +1,3 @@ +collect runtime profiling information in CTF format + +See http://openmirage.org/wiki/profiling for instructions. diff --git a/repo/win32/packages/upstream/mirage-profile.0.8.1/opam b/repo/win32/packages/upstream/mirage-profile.0.8.1/opam new file mode 100644 index 000000000..b6e18a6fc --- /dev/null +++ b/repo/win32/packages/upstream/mirage-profile.0.8.1/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "Thomas Leonard " +authors: "Thomas Leonard " +homepage: "https://github.com/mirage/mirage-profile" +dev-repo: "https://github.com/mirage/mirage-profile.git" +bug-reports: "https://github.com/mirage/mirage-profile/issues" +doc: "https://mirage.github.io/mirage-profile" +license: "BSD-2-clause" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "cstruct" {>= "3.0.0"} + "ppx_cstruct" {build} + "ocplib-endian" + "lwt" +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/mirage-profile.0.8.1/url b/repo/win32/packages/upstream/mirage-profile.0.8.1/url new file mode 100644 index 000000000..75e32f50a --- /dev/null +++ b/repo/win32/packages/upstream/mirage-profile.0.8.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-profile/releases/download/0.8.1/mirage-profile-0.8.1.tbz" +checksum: "42cb61b5e377cbcc0a3620ba996473a6" diff --git a/repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/descr b/repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/descr new file mode 100644 index 000000000..f46fdaf63 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/descr @@ -0,0 +1,14 @@ +MirageOS signatures for network protocols + +mirage-protocols provides a set of module types which libraries intended to be used as MirageOS network implementations should implement. + +The set of protocols defined is: + +[Mirage_protocols.ETHIF](ethif) and [Mirage_protocols_lwt.ETHIF](ethif-lwt) +[Mirage_protocols.ARP](arp) and [Mirage_protocols_lwt.ARP](arp-lwt) +[Mirage_protocols.IP](ip) and [Mirage_protocols_lwt.IP](ip-lwt), via [Mirage_protocols_lwt.IPV4](ipv4-lwt) and [Mirage_protocols_lwt.IPV6](ipv6-lwt) +[Mirage_protocols.ICMP](icmp) and [Mirage_protocols_lwt.ICMP](icmp-lwt), via [Mirage_protocols_lwt.ICMPV4](icmpv4-lwt) +[Mirage_protocols.UDP](udp) and [Mirage_protocols_lwt.UDP](udp-lwt), via [Mirage_protocols_lwt.UDPV4](udpv4-lwt) and [Mirage_protocols_lwt.UDPV6](udpv6-lwt) +[Mirage_protocols.TCP](tcp) and [Mirage_protocols_lwt.TCP](tcp-lwt), via [Mirage_protocols_lwt.TCPV4](tcpv4-lwt) and [Mirage_protocols_lwt.TCPV6](tcpv6-lwt) + +mirage-protocols is distributed under the ISC license. \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/opam b/repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/opam new file mode 100644 index 000000000..362240e08 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "Mindy Preston " +authors: ["Mindy Preston "] +homepage: "https://github.com/mirage/mirage-protocols" +doc: "https://mirage.github.io/mirage-protocols/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-protocols.git" +bug-reports: "https://github.com/mirage/mirage-protocols/issues" +tags: ["org:mirage"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >= "1.0+beta9" } + "mirage-protocols" { >= "1.1.0" } + "ipaddr" + "lwt" + "cstruct" {>= "1.9.0"} +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/url b/repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/url new file mode 100644 index 000000000..bf3889cdb --- /dev/null +++ b/repo/win32/packages/upstream/mirage-protocols-lwt.1.2.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-protocols/releases/download/v1.2.0/mirage-protocols-1.2.0.tbz" +checksum: "81d75323027d25503dd7b0896c267066" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-protocols.1.2.0/descr b/repo/win32/packages/upstream/mirage-protocols.1.2.0/descr new file mode 100644 index 000000000..f46fdaf63 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-protocols.1.2.0/descr @@ -0,0 +1,14 @@ +MirageOS signatures for network protocols + +mirage-protocols provides a set of module types which libraries intended to be used as MirageOS network implementations should implement. + +The set of protocols defined is: + +[Mirage_protocols.ETHIF](ethif) and [Mirage_protocols_lwt.ETHIF](ethif-lwt) +[Mirage_protocols.ARP](arp) and [Mirage_protocols_lwt.ARP](arp-lwt) +[Mirage_protocols.IP](ip) and [Mirage_protocols_lwt.IP](ip-lwt), via [Mirage_protocols_lwt.IPV4](ipv4-lwt) and [Mirage_protocols_lwt.IPV6](ipv6-lwt) +[Mirage_protocols.ICMP](icmp) and [Mirage_protocols_lwt.ICMP](icmp-lwt), via [Mirage_protocols_lwt.ICMPV4](icmpv4-lwt) +[Mirage_protocols.UDP](udp) and [Mirage_protocols_lwt.UDP](udp-lwt), via [Mirage_protocols_lwt.UDPV4](udpv4-lwt) and [Mirage_protocols_lwt.UDPV6](udpv6-lwt) +[Mirage_protocols.TCP](tcp) and [Mirage_protocols_lwt.TCP](tcp-lwt), via [Mirage_protocols_lwt.TCPV4](tcpv4-lwt) and [Mirage_protocols_lwt.TCPV6](tcpv6-lwt) + +mirage-protocols is distributed under the ISC license. \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-protocols.1.2.0/opam b/repo/win32/packages/upstream/mirage-protocols.1.2.0/opam new file mode 100644 index 000000000..981ffc1b6 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-protocols.1.2.0/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "Mindy Preston " +authors: ["Mindy Preston "] +homepage: "https://github.com/mirage/mirage-protocols" +doc: "https://mirage.github.io/mirage-protocols/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-protocols.git" +bug-reports: "https://github.com/mirage/mirage-protocols/issues" +tags: ["org:mirage"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-device" {>= "1.0.0"} + "mirage-flow" {>= "1.2.0"} + "fmt" +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-protocols.1.2.0/url b/repo/win32/packages/upstream/mirage-protocols.1.2.0/url new file mode 100644 index 000000000..bf3889cdb --- /dev/null +++ b/repo/win32/packages/upstream/mirage-protocols.1.2.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-protocols/releases/download/v1.2.0/mirage-protocols-1.2.0.tbz" +checksum: "81d75323027d25503dd7b0896c267066" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-random.1.1.0/descr b/repo/win32/packages/upstream/mirage-random.1.1.0/descr new file mode 100644 index 000000000..9b3733fd0 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-random.1.1.0/descr @@ -0,0 +1,25 @@ +Random signatures for MirageOS, and an implementation using stdlib + +mirage-random defines [Mirage_random.S][1] and [Mirage_random.C][2] +the signature for random-related devices for MirageOS. It also +provides an implementation of `C` using `Random` from the OCaml standard +library. + +[1]: https://mirage.github.io/mirage-random/Mirage_random.S.html +[2]: https://mirage.github.io/mirage-random/Mirage_random.C.html + +### Installation + +`mirage-random` can be installed with `opam`: + + opam install mirage-random + +If you don't use `opam` consult the [`opam`](opam) file for build +instructions. + +### Documentation + +The documentation and API reference is automatically generated by +`ocamldoc` from the interfaces. It can be consulted [online][2]. + +[2]: https://mirage.github.io/mirage-random/Mirage_random.html \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-random.1.1.0/opam b/repo/win32/packages/upstream/mirage-random.1.1.0/opam new file mode 100644 index 000000000..ac96f9d2d --- /dev/null +++ b/repo/win32/packages/upstream/mirage-random.1.1.0/opam @@ -0,0 +1,21 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-random" +bug-reports: "https://github.com/mirage/mirage-random/issues" +dev-repo: "https://github.com/mirage/mirage-random.git" +doc: "https://mirage.github.io/mirage-random/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "cstruct" {>= "1.9.0"} +] diff --git a/repo/win32/packages/upstream/mirage-random.1.1.0/url b/repo/win32/packages/upstream/mirage-random.1.1.0/url new file mode 100644 index 000000000..f5c58ffef --- /dev/null +++ b/repo/win32/packages/upstream/mirage-random.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-random/releases/download/v1.1.0/mirage-random-1.1.0.tbz" +checksum: "81775f222b1bf5be7759b4595c5a4615" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/descr b/repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/descr new file mode 100644 index 000000000..9abc72a6f --- /dev/null +++ b/repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/descr @@ -0,0 +1,12 @@ +MirageOS signatures for network stacks + +mirage-stack provides a set of module types which libraries intended to be used as MirageOS network stacks should implement. + +The set of protocols defined is: + +[Mirage_stack.STACKV4](stackv4) and [Mirage_stack_lwt.STACKV4](stackv4-lwt) + +mirage-stack is distributed under the ISC license. + +[stackv4]: https://mirage.github.io/mirage-stack/Mirage_stack.html +[stackv4-lwt]: https://mirage.github.io/mirage-stack/Mirage_stack_lwt.html \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/opam b/repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/opam new file mode 100644 index 000000000..e5b603ef5 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "Mindy Preston " +authors: ["Mindy Preston "] +homepage: "https://github.com/mirage/mirage-stack" +doc: "https://mirage.github.io/mirage-stack/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-stack.git" +bug-reports: "https://github.com/mirage/mirage-stack/issues" +tags: ["org:mirage"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "mirage-stack" {>= "1.0.0"} + "ipaddr" + "lwt" + "cstruct" {>= "2.4.0"} +] + +available: [ ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/url b/repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/url new file mode 100644 index 000000000..66d913a9d --- /dev/null +++ b/repo/win32/packages/upstream/mirage-stack-lwt.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-stack/releases/download/v1.1.0/mirage-stack-1.1.0.tbz" +checksum: "930a631e11a106d8d6866c9fd30c090f" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-stack.1.1.0/descr b/repo/win32/packages/upstream/mirage-stack.1.1.0/descr new file mode 100644 index 000000000..9abc72a6f --- /dev/null +++ b/repo/win32/packages/upstream/mirage-stack.1.1.0/descr @@ -0,0 +1,12 @@ +MirageOS signatures for network stacks + +mirage-stack provides a set of module types which libraries intended to be used as MirageOS network stacks should implement. + +The set of protocols defined is: + +[Mirage_stack.STACKV4](stackv4) and [Mirage_stack_lwt.STACKV4](stackv4-lwt) + +mirage-stack is distributed under the ISC license. + +[stackv4]: https://mirage.github.io/mirage-stack/Mirage_stack.html +[stackv4-lwt]: https://mirage.github.io/mirage-stack/Mirage_stack_lwt.html \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-stack.1.1.0/opam b/repo/win32/packages/upstream/mirage-stack.1.1.0/opam new file mode 100644 index 000000000..98b60bc9e --- /dev/null +++ b/repo/win32/packages/upstream/mirage-stack.1.1.0/opam @@ -0,0 +1,23 @@ +opam-version: "1.2" +maintainer: "Mindy Preston " +authors: ["Mindy Preston "] +homepage: "https://github.com/mirage/mirage-stack" +doc: "https://mirage.github.io/mirage-stack/" +license: "ISC" +dev-repo: "https://github.com/mirage/mirage-stack.git" +bug-reports: "https://github.com/mirage/mirage-stack/issues" +tags: ["org:mirage"] + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "mirage-device" {>= "1.0.0"} + "mirage-protocols" {>= "1.0.0"} + "fmt" +] + +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/mirage-stack.1.1.0/url b/repo/win32/packages/upstream/mirage-stack.1.1.0/url new file mode 100644 index 000000000..66d913a9d --- /dev/null +++ b/repo/win32/packages/upstream/mirage-stack.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-stack/releases/download/v1.1.0/mirage-stack-1.1.0.tbz" +checksum: "930a631e11a106d8d6866c9fd30c090f" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-time-lwt.1.1.0/descr b/repo/win32/packages/upstream/mirage-time-lwt.1.1.0/descr new file mode 100644 index 000000000..74b3d64bc --- /dev/null +++ b/repo/win32/packages/upstream/mirage-time-lwt.1.1.0/descr @@ -0,0 +1,22 @@ +Time operations for MirageOS + +mirage-time defines [Mirage_time.S][1] the signature for +time-related operations for MirageOS. + +[1]: https://mirage.github.io/mirage-time/Mirage_time.S.html + +### Installation + +`mirage-time` can be installed with `opam`: + + opam install mirage-time + +If you don't use `opam` consult the [`opam`](opam) file for build +instructions. + +### Documentation + +The documentation and API reference is automatically generated by +`ocamldoc` from the interfaces. It can be consulted [online][2]. + +[2]: https://mirage.github.io/mirage-time/Mirage_time.html \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-time-lwt.1.1.0/opam b/repo/win32/packages/upstream/mirage-time-lwt.1.1.0/opam new file mode 100644 index 000000000..e0f23c959 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-time-lwt.1.1.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-time" +bug-reports: "https://github.com/mirage/mirage-time/issues" +dev-repo: "https://github.com/mirage/mirage-time.git" +doc: "https://mirage.github.io/mirage-time/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-time" {>= "1.0.0"} + "lwt" +] diff --git a/repo/win32/packages/upstream/mirage-time-lwt.1.1.0/url b/repo/win32/packages/upstream/mirage-time-lwt.1.1.0/url new file mode 100644 index 000000000..706b9c077 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-time-lwt.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-time/releases/download/v1.1.0/mirage-time-1.1.0.tbz" +checksum: "75603dd15ec9c343da74259771a27d85" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-time-unix.1.2.0/descr b/repo/win32/packages/upstream/mirage-time-unix.1.2.0/descr new file mode 100644 index 000000000..96e847640 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-time-unix.1.2.0/descr @@ -0,0 +1 @@ +Implementation of `Mirage_time_lwt.S` for the Unix backend diff --git a/repo/win32/packages/upstream/mirage-time-unix.1.2.0/opam b/repo/win32/packages/upstream/mirage-time-unix.1.2.0/opam new file mode 100644 index 000000000..12b5ef3f3 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-time-unix.1.2.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-time" +bug-reports: "https://github.com/mirage/mirage-time/issues" +dev-repo: "https://github.com/mirage/mirage-time.git" +doc: "https://mirage.github.io/mirage-time/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-time-lwt" {>= "1.0.0"} + "lwt" "duration" +] diff --git a/repo/win32/packages/upstream/mirage-time-unix.1.2.0/url b/repo/win32/packages/upstream/mirage-time-unix.1.2.0/url new file mode 100644 index 000000000..e1bef5a1e --- /dev/null +++ b/repo/win32/packages/upstream/mirage-time-unix.1.2.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-time/releases/download/v1.2.0/mirage-time-1.2.0.tbz" +checksum: "428555a6f49ac55dcfeb7fcde8d4c378" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-time.1.1.0/descr b/repo/win32/packages/upstream/mirage-time.1.1.0/descr new file mode 100644 index 000000000..74b3d64bc --- /dev/null +++ b/repo/win32/packages/upstream/mirage-time.1.1.0/descr @@ -0,0 +1,22 @@ +Time operations for MirageOS + +mirage-time defines [Mirage_time.S][1] the signature for +time-related operations for MirageOS. + +[1]: https://mirage.github.io/mirage-time/Mirage_time.S.html + +### Installation + +`mirage-time` can be installed with `opam`: + + opam install mirage-time + +If you don't use `opam` consult the [`opam`](opam) file for build +instructions. + +### Documentation + +The documentation and API reference is automatically generated by +`ocamldoc` from the interfaces. It can be consulted [online][2]. + +[2]: https://mirage.github.io/mirage-time/Mirage_time.html \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-time.1.1.0/opam b/repo/win32/packages/upstream/mirage-time.1.1.0/opam new file mode 100644 index 000000000..61ed1fbad --- /dev/null +++ b/repo/win32/packages/upstream/mirage-time.1.1.0/opam @@ -0,0 +1,21 @@ +opam-version: "1.2" +maintainer: "thomas@gazagnaire.org" +homepage: "https://github.com/mirage/mirage-time" +bug-reports: "https://github.com/mirage/mirage-time/issues" +dev-repo: "https://github.com/mirage/mirage-time.git" +doc: "https://mirage.github.io/mirage-time/" +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +tags: [ "org:mirage"] +license: "ISC" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta9"} + "mirage-device" +] diff --git a/repo/win32/packages/upstream/mirage-time.1.1.0/url b/repo/win32/packages/upstream/mirage-time.1.1.0/url new file mode 100644 index 000000000..706b9c077 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-time.1.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-time/releases/download/v1.1.0/mirage-time-1.1.0.tbz" +checksum: "75603dd15ec9c343da74259771a27d85" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-types-lwt.3.0.0/descr b/repo/win32/packages/upstream/mirage-types-lwt.3.0.0/descr new file mode 100644 index 000000000..9cd7a3917 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-types-lwt.3.0.0/descr @@ -0,0 +1,14 @@ +Lwt module type definitions for Mirage-compatible applications + +This is a virtual package that pulls in all the concrete +dependencies required for the `mirage-types.lwt` ocamlfind +package to become available. + +The purpose of this library is to provide concrete types +for several that are left abstract in `mirage-types`: + +- `type 'a io = 'a Lwt.t` +- `type page_aligned_buffer = Io_page.t` +- `type buffer = Cstruct.t` +- `type macaddr = Macaddr.t` +- `type ipv4addr = Ipaddr.V4.t` diff --git a/repo/win32/packages/upstream/mirage-types-lwt.3.0.0/opam b/repo/win32/packages/upstream/mirage-types-lwt.3.0.0/opam new file mode 100644 index 000000000..ff603a6c3 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-types-lwt.3.0.0/opam @@ -0,0 +1,31 @@ +opam-version: "1.2" +maintainer: ["anil@recoil.org" "thomas@gazagnaire.org"] +authors: "The MirageOS team" +homepage: "https://github.com/mirage/mirage" +bug-reports: "https://github.com/mirage/mirage/issues/" +dev-repo: "https://github.com/mirage/mirage.git" +tags: ["org:mirage" "org:xapi-project"] + +build: ["ocaml" "pkg/pkg.ml" "build" "--pkg-name" name "--pinned" "%{pinned}%"] +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build & >= "0.8.0"} + "lwt" + "cstruct" {>="1.4.0"} + "io-page" {>="1.4.0"} + "ipaddr" + "mirage-types" {>= "3.0.0"} + "mirage-clock-lwt" {>= "1.2.0"} + "mirage-time-lwt" {>= "1.0.0"} + "mirage-random" {>= "1.0.0"} + "mirage-flow-lwt" {>= "1.2.0"} + "mirage-protocols-lwt" {>= "1.0.0"} + "mirage-stack-lwt" {>= "1.0.0"} + "mirage-console-lwt" {>= "1.2.0"} + "mirage-block-lwt" {>= "1.0.0"} + "mirage-net-lwt" {>= "1.0.0"} + "mirage-fs-lwt" {>= "1.0.0"} + "mirage-kv-lwt" {>= "1.0.0"} + "mirage-channel-lwt" {>= "3.0.0"} +] diff --git a/repo/win32/packages/upstream/mirage-types-lwt.3.0.0/url b/repo/win32/packages/upstream/mirage-types-lwt.3.0.0/url new file mode 100644 index 000000000..15d648c3f --- /dev/null +++ b/repo/win32/packages/upstream/mirage-types-lwt.3.0.0/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/mirage/archive/v3.0.0.tar.gz" +checksum: "744cb89c1b35a6d0dadc95ec4ce058c4" diff --git a/repo/win32/packages/upstream/mirage-types.3.0.0/descr b/repo/win32/packages/upstream/mirage-types.3.0.0/descr new file mode 100644 index 000000000..7eeed4bc3 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-types.3.0.0/descr @@ -0,0 +1 @@ +Module type definitions for Mirage-compatible applications diff --git a/repo/win32/packages/upstream/mirage-types.3.0.0/opam b/repo/win32/packages/upstream/mirage-types.3.0.0/opam new file mode 100644 index 000000000..7948298b1 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-types.3.0.0/opam @@ -0,0 +1,28 @@ +opam-version: "1.2" +maintainer: ["anil@recoil.org" "thomas@gazagnaire.org"] +authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne" + "Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar" + "Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"] +homepage: "https://mirage.io/" +bug-reports: "https://github.com/mirage/mirage/issues/" +dev-repo: "https://github.com/mirage/mirage.git" +tags: ["org:mirage" "org:xapi-project"] +build: ["ocaml" "pkg/pkg.ml" "build" "--pkg-name" name "--pinned" "%{pinned}%"] +depends: [ + "ocamlbuild" {build} + "ocamlfind" {build} + "topkg" {build & >= "0.8.0"} + "mirage-device" {>= "1.0.0"} + "mirage-time" {>= "1.0.0"} + "mirage-clock" {>= "1.2.0"} + "mirage-random" {>= "1.0.0"} + "mirage-flow" {>= "1.2.0"} + "mirage-console" {>= "2.2.0"} + "mirage-protocols" {>= "1.0.0"} + "mirage-stack" {>= "1.0.0"} + "mirage-block" {>= "1.0.0"} + "mirage-net" {>= "1.0.0"} + "mirage-fs" {>= "1.0.0"} + "mirage-kv" {>= "1.0.0"} + "mirage-channel" {>= "3.0.0"} +] diff --git a/repo/win32/packages/upstream/mirage-types.3.0.0/url b/repo/win32/packages/upstream/mirage-types.3.0.0/url new file mode 100644 index 000000000..15d648c3f --- /dev/null +++ b/repo/win32/packages/upstream/mirage-types.3.0.0/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/mirage/archive/v3.0.0.tar.gz" +checksum: "744cb89c1b35a6d0dadc95ec4ce058c4" diff --git a/repo/win32/packages/upstream/mirage-unix.2.6.0/descr b/repo/win32/packages/upstream/mirage-unix.2.6.0/descr deleted file mode 100644 index 0872a6051..000000000 --- a/repo/win32/packages/upstream/mirage-unix.2.6.0/descr +++ /dev/null @@ -1 +0,0 @@ -MirageOS library for Unix compilation diff --git a/repo/win32/packages/upstream/mirage-unix.2.6.0/opam b/repo/win32/packages/upstream/mirage-unix.2.6.0/opam deleted file mode 100644 index cc0926cfd..000000000 --- a/repo/win32/packages/upstream/mirage-unix.2.6.0/opam +++ /dev/null @@ -1,23 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: "The MirageOS team" -homepage: "https://github.com/mirage/mirage-platform" -bug-reports: "https://github.com/mirage/mirage-platform/issues/" -dev-repo: "https://github.com/mirage/mirage-platform.git" -license: "part ISC, part LGPL-2.1 with OCaml linking ecxeption, part 3-clause BSD" -build: [make "unix-build"] -install: [make "unix-install" "PREFIX=%{prefix}%"] -remove: [make "unix-uninstall" "PREFIX=%{prefix}%"] - -depends: [ - "conf-which" {build} - "cstruct" {>= "1.0.1"} - "ocamlfind" {build} - "lwt" {>= "2.4.3"} - "io-page" {>= "1.5.0"} - "mirage-clock-unix" {>= "1.0.0" & < "1.1"} - "shared-memory-ring" {>= "1.0.0"} - "mirage-profile" {>= "0.3"} - "ocamlbuild" {build} -] -available: [ocaml-version >= "4.01.0"] diff --git a/repo/win32/packages/upstream/mirage-unix.2.6.0/url b/repo/win32/packages/upstream/mirage-unix.2.6.0/url deleted file mode 100644 index 96d5dcc84..000000000 --- a/repo/win32/packages/upstream/mirage-unix.2.6.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/mirage-platform/archive/v2.6.0.tar.gz" -checksum: "e9d5ec80ae06b42658e48af130aea7c1" diff --git a/repo/win32/packages/upstream/mirage-vnetif.0.2.0/descr b/repo/win32/packages/upstream/mirage-vnetif.0.2.0/descr deleted file mode 100644 index ccdacd11d..000000000 --- a/repo/win32/packages/upstream/mirage-vnetif.0.2.0/descr +++ /dev/null @@ -1,6 +0,0 @@ -Virtual network interface and software switch for Mirage. - -Provides the module Vnetif which can be used as a replacement for the -regular Netif implementation in Xen and Unix. Stacks built using -Vnetif are connected to a software switch that allows the stacks to -communicate as if they were connected to the same LAN. \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-vnetif.0.2.0/opam b/repo/win32/packages/upstream/mirage-vnetif.0.2.0/opam deleted file mode 100644 index a58ef3855..000000000 --- a/repo/win32/packages/upstream/mirage-vnetif.0.2.0/opam +++ /dev/null @@ -1,19 +0,0 @@ -opam-version: "1.2" -maintainer: "Magnus Skjegstad " -authors: "Magnus Skjegstad " -homepage: "https://github.com/MagnusS/mirage-vnetif" -bug-reports: "https://github.com/MagnusS/mirage-vnetif/issues/" -license: "ISC" -dev-repo: "https://github.com/MagnusS/mirage-vnetif.git" -build: [make] -install: [make "install"] -remove: ["ocamlfind" "remove" "mirage-vnetif"] -depends: [ - "lwt" - "mirage-types" - "cstruct" - "ipaddr" - "io-page" - "mirage-profile" - "ocamlbuild" {build} -] diff --git a/repo/win32/packages/upstream/mirage-vnetif.0.2.0/url b/repo/win32/packages/upstream/mirage-vnetif.0.2.0/url deleted file mode 100644 index 745d23d77..000000000 --- a/repo/win32/packages/upstream/mirage-vnetif.0.2.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/MagnusS/mirage-vnetif/archive/0.2.0.tar.gz" -checksum: "712966a3d9ad813145f0b67af8b3d8ae" diff --git a/repo/win32/packages/upstream/mirage-vnetif.0.4.0/descr b/repo/win32/packages/upstream/mirage-vnetif.0.4.0/descr new file mode 100644 index 000000000..e1a82f9d0 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-vnetif.0.4.0/descr @@ -0,0 +1,89 @@ +Virtual network interface and software switch for Mirage + +Provides the module `Vnetif` which can be used as a replacement for the regular `Netif` implementation in Xen and Unix. Stacks built using `Vnetif` are connected to a software switch that allows the stacks to communicate as if they were connected to the same LAN. + +An example of a unikernel that communicates with itself over `Vnetif` can be seen [here](https://github.com/MagnusS/mirage-vnetif/blob/master/examples/connect/unikernel.ml). An iperf-like performance test is available [here](https://github.com/MagnusS/mirage-vnetif/tree/master/examples/iperf_self). The examples can be compiled for Unix and Xen and do not need access to a real network interface. + +## Install + +``` +opam install mirage-vnetif +``` + +## Getting started + +First, construct a TCP/IP stack based on `vnetif`: + +```ocaml + module S = struct + module B = Basic_backend.Make + module V = Vnetif.Make(B) + module E = Ethif.Make(V) + module I = Ipv4.Make(E)(Clock)(OS.Time) + module U = Udp.Make(I) + module T = Tcp.Flow.Make(I)(OS.Time)(Clock)(Random) + module S = Tcpip_stack_direct.Make(C)(OS.Time)(Random)(V)(E)(I)(U)(T) + include S + end +``` + +Since we don't have the mirage-tool to help us we have to construct the stack manually. This code would usually be generated in `main.ml` by `mirage configure --xen/unix`. + +```ocaml +let or_error name fn t = + fn t + >>= function + | `Error e -> fail (Failure ("Error starting " ^ name)) + | `Ok t -> return t + +let create_stack c backend ip netmask gw = + or_error "backend" S.V.connect backend >>= fun netif -> + or_error "ethif" S.E.connect netif >>= fun ethif -> + or_error "ipv4" S.I.connect ethif >>= fun ipv4 -> + or_error "udpv4" S.U.connect ipv4 >>= fun udpv4 -> + or_error "tcpv4" S.T.connect ipv4 >>= fun tcpv4 -> + let config = { + Mirage_types_lwt.name = "stack"; + Mirage_types_lwt.console = c; + Mirage_types_lwt.interface = netif; + Mirage_types_lwt.mode = `IPv4 (ip, netmask, gw); + } in + or_error "stack" (S.connect config ethif ipv4 udpv4) tcpv4 + +``` + + +We can now create multiple stacks that talk over the same backend. `Basic_backend.create` accepts two optional parameters: +- `use_async_readers` makes the `write` calls non-blocking. This is necessary to use Vnetif with the Mirage TCP/IP stack. +- `yield` specifies the yield function to use in non-blocking mode. In a unikernel this is typically `OS.Time.sleep 0.0`, but in a Unix process `Lwt_main.yield ()` can be used instead. + +```ocaml + +let () = + + (* create async backend with OS.Time.sleep 0.0 as yield *) + let backend = Basic_backend.create ~use_async_readers:true + ~yield:(fun() -> OS.Time.sleep 0.0 ) () in + + let netmask = Ipaddr.V4.of_string_exn "255.255.255.0" in + let gw = Ipaddr.V4.of_string_exn "10.0.0.1" in + + let server_ip = Ipaddr.V4.of_string_exn "10.0.0.100" in + create_stack c backend server_ip netmask [gw] >>= fun server_stack -> + + let client_ip = Ipaddr.V4.of_string_exn "10.0.0.101" in + create_stack c backend server_ip netmask [gw] >>= fun client_stack -> +``` + +The stacks can now be used as regular Mirage TCP/IP stacks, e.g.: + +```ocaml +S.listen_tcpv4 server_stack ~port:80 (fun f -> ...); +S.listen s1 +``` + +## Build examples +``` +mirage configure --xen/--unix +make +``` \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-vnetif.0.4.0/opam b/repo/win32/packages/upstream/mirage-vnetif.0.4.0/opam new file mode 100644 index 000000000..b58114f83 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-vnetif.0.4.0/opam @@ -0,0 +1,30 @@ +opam-version: "1.2" +name: "mirage-vnetif" +maintainer: "Magnus Skjegstad " +authors: "Magnus Skjegstad " +homepage: "https://github.com/mirage/mirage-vnetif" +bug-reports: "https://github.com/mirage/mirage-vnetif/issues/" +dev-repo: "https://github.com/mirage/mirage-vnetif.git" +doc: "https://docs.mirage.io/mirage-vnetif" +license: "ISC" + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "lwt" + "mirage-time-lwt" {>= "1.0.0"} + "mirage-clock-lwt" {>= "1.2.0"} + "mirage-net-lwt" {>= "1.0.0"} + "cstruct" {>="2.4.0"} + "ipaddr" + "io-page" + "mirage-profile" + "duration" + "result" + "logs" +] +tags: ["org:mirage"] diff --git a/repo/win32/packages/upstream/mirage-vnetif.0.4.0/url b/repo/win32/packages/upstream/mirage-vnetif.0.4.0/url new file mode 100644 index 000000000..b270f6b49 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-vnetif.0.4.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/mirage-vnetif/releases/download/v0.4.0/mirage-vnetif-0.4.0.tbz" +checksum: "8ee3b8f3cd9069cd930ce52d78502592" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mtime.1.0.0/url b/repo/win32/packages/upstream/mtime.1.0.0/url deleted file mode 100644 index 73da596d5..000000000 --- a/repo/win32/packages/upstream/mtime.1.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://erratique.ch/software/mtime/releases/mtime-1.0.0.tbz" -checksum: "3e3f2fad1a3c4d8bd6d5006b1a6a6d99" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mtime.1.0.0/descr b/repo/win32/packages/upstream/mtime.1.1.0/descr similarity index 100% rename from repo/win32/packages/upstream/mtime.1.0.0/descr rename to repo/win32/packages/upstream/mtime.1.1.0/descr diff --git a/repo/win32/packages/upstream/mtime.1.0.0/files/mtime-1.0.0.patch b/repo/win32/packages/upstream/mtime.1.1.0/files/mtime-1.1.0.patch similarity index 100% rename from repo/win32/packages/upstream/mtime.1.0.0/files/mtime-1.0.0.patch rename to repo/win32/packages/upstream/mtime.1.1.0/files/mtime-1.1.0.patch diff --git a/repo/win32/packages/upstream/mtime.1.0.0/opam b/repo/win32/packages/upstream/mtime.1.1.0/opam similarity index 93% rename from repo/win32/packages/upstream/mtime.1.0.0/opam rename to repo/win32/packages/upstream/mtime.1.1.0/opam index 9b2e09821..d1b560909 100644 --- a/repo/win32/packages/upstream/mtime.1.0.0/opam +++ b/repo/win32/packages/upstream/mtime.1.1.0/opam @@ -19,4 +19,4 @@ build: [[ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--with-js_of_ocaml" "%{js_of_ocaml:installed}%" ]] -patches: "mtime-1.0.0.patch" {os = "win32"} +patches: "mtime-1.1.0.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/mtime.1.1.0/url b/repo/win32/packages/upstream/mtime.1.1.0/url new file mode 100644 index 000000000..7fdda04b1 --- /dev/null +++ b/repo/win32/packages/upstream/mtime.1.1.0/url @@ -0,0 +1,2 @@ +archive: "http://erratique.ch/software/mtime/releases/mtime-1.1.0.tbz" +checksum: "2935fe4a36b721735f60c9c65ad63a26" \ No newline at end of file diff --git a/repo/win32/packages/upstream/nocrypto.0.5.4/descr b/repo/win32/packages/upstream/nocrypto.0.5.4/descr new file mode 100644 index 000000000..3ca64e089 --- /dev/null +++ b/repo/win32/packages/upstream/nocrypto.0.5.4/descr @@ -0,0 +1,9 @@ +Simpler crypto + + +nocrypto is a small cryptographic library that puts emphasis on the applicative +style and ease of use. It includes basic ciphers (AES, 3DES, RC4), hashes (MD5, +SHA1, SHA2), public-key primitives (RSA, DSA, DH) and a strong RNG (Fortuna). + +RSA timing attacks are countered by blinding. AES timing attacks are avoided by +delegating to AES-NI. \ No newline at end of file diff --git a/repo/win32/packages/upstream/nocrypto.0.5.4/opam b/repo/win32/packages/upstream/nocrypto.0.5.4/opam new file mode 100644 index 000000000..200a3ca0d --- /dev/null +++ b/repo/win32/packages/upstream/nocrypto.0.5.4/opam @@ -0,0 +1,41 @@ +opam-version: "1.2" +homepage: "https://github.com/mirleft/ocaml-nocrypto" +dev-repo: "https://github.com/mirleft/ocaml-nocrypto.git" +bug-reports: "https://github.com/mirleft/ocaml-nocrypto/issues" +doc: "https://mirleft.github.io/ocaml-nocrypto/doc" +authors: ["David Kaloper "] +maintainer: "David Kaloper " +license: "ISC" +tags: [ "org:mirage" ] +available: [ ocaml-version >= "4.02.0" ] + +build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" + "--with-lwt" "%{lwt:installed}%" + "--xen" "%{mirage-xen:installed}%" + "--freestanding" "%{mirage-solo5:installed}%"] + +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "cpuid" {build} + "ocb-stubblr" {build} + "ppx_deriving" {build} + "ppx_sexp_conv" {build} + "ounit" {test} + "cstruct" {>="2.4.0"} + "cstruct-lwt" + "zarith" + "lwt" + "sexplib" + ("mirage-no-xen" | ("mirage-xen" & "mirage-entropy" & "zarith-xen")) + ("mirage-no-solo5" | ("mirage-solo5" & "mirage-entropy" & "zarith-freestanding")) +] + +conflicts: [ + "topkg" {<"0.8.0"} + "ocb-stubblr" {<"0.1.0"} + "mirage-xen" {<"2.2.0"} + "sexplib" {="v0.9.0"} +] + diff --git a/repo/win32/packages/upstream/nocrypto.0.5.4/url b/repo/win32/packages/upstream/nocrypto.0.5.4/url new file mode 100644 index 000000000..ec05a1382 --- /dev/null +++ b/repo/win32/packages/upstream/nocrypto.0.5.4/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirleft/ocaml-nocrypto/releases/download/v0.5.4/nocrypto-0.5.4.tbz" +checksum: "c331a7a4d2a563d1d5ed581aeb849011" diff --git a/repo/win32/packages/upstream/num.0/descr b/repo/win32/packages/upstream/num.0/descr new file mode 100644 index 000000000..7d5af8682 --- /dev/null +++ b/repo/win32/packages/upstream/num.0/descr @@ -0,0 +1 @@ +The Num library for arbitrary-precision integer and rational arithmetic diff --git a/repo/win32/packages/upstream/num.0/opam b/repo/win32/packages/upstream/num.0/opam new file mode 100644 index 000000000..94cc0bcc9 --- /dev/null +++ b/repo/win32/packages/upstream/num.0/opam @@ -0,0 +1,16 @@ +opam-version: "1.2" +name: "num" +version: "0" +maintainer: "Xavier Leroy " +authors: [ + "Valérie Ménissier-Morain" + "Pierre Weis" + "Xavier Leroy" +] +license: "LGPL-2 with OCaml linking exception" + +homepage: "https://github.com/ocaml/ocaml" +dev-repo: "https://github.com/ocaml/ocaml.git" +bug-reports: "http://caml.inria.fr/mantis/" + +depends: [ "base-num" ] diff --git a/repo/win32/packages/upstream/oasis.0.4.10/descr b/repo/win32/packages/upstream/oasis.0.4.10/descr new file mode 100644 index 000000000..826e6942e --- /dev/null +++ b/repo/win32/packages/upstream/oasis.0.4.10/descr @@ -0,0 +1,23 @@ +Tooling for building OCaml libraries and applications + +OASIS generates a full configure, build and install system for your +application. It starts with a simple `_oasis` file at the toplevel of +your project and creates everything required. + +OASIS leverages existing OCaml tooling to perform most of it's work. +In fact, it might be more appropriate to think of it as simply the +glue that binds these other subsystems together and coordinates the +work that they do. It should support the following tools: + +* OCamlbuild +* OMake +* OCamlMakefile (todo), +* ocaml-autoconf (todo) + +It also features a do-it-yourself command line invocation and an +internal configure/install scheme. Libraries are managed through +findlib. It has been tested on GNU Linux and Windows. + +It also allows to have standard entry points and description. It helps +to integrates your libraries and software with third parties tools +like OPAM. diff --git a/repo/win32/packages/upstream/oasis.0.4.10/files/oasis-0.4.10.patch b/repo/win32/packages/upstream/oasis.0.4.10/files/oasis-0.4.10.patch new file mode 100644 index 000000000..9973119b5 --- /dev/null +++ b/repo/win32/packages/upstream/oasis.0.4.10/files/oasis-0.4.10.patch @@ -0,0 +1,2417 @@ +--- ./myocamlbuild.ml ++++ ./myocamlbuild.ml +@@ -107,7 +107,7 @@ + ;; + + (* OASIS_START *) +-(* DO NOT EDIT (digest: abd4c3624ec7c742aae7dbd96c89cd14) *) ++(* DO NOT EDIT (digest: f54b1f8d97dfa848f6d79c1c3a40cf79) *) + module OASISGettext = struct + # 22 "src/oasis/OASISGettext.ml" + +@@ -279,6 +279,28 @@ + else + s + ++ let exists f str = ++ let rec iter i = ++ if i < 0 then ++ false ++ else if f str.[i] then ++ true ++ else ++ iter (pred i) ++ in ++ iter (String.length str - 1) ++ ++ let is_digit c = ++ '0' <= c && c <= '9' ++ ++ let is_alpha c = ++ ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') ++ ++ let is_whitespace = ++ function ++ | ' ' | '\r' | '\n' | '\t' -> true ++ | _ -> false ++ + end + + module OASISUtils = struct +@@ -542,7 +564,7 @@ + end + + +-# 437 "myocamlbuild.ml" ++# 459 "myocamlbuild.ml" + module BaseEnvLight = struct + # 22 "src/base/BaseEnvLight.ml" + +@@ -622,7 +644,7 @@ + end + + +-# 517 "myocamlbuild.ml" ++# 539 "myocamlbuild.ml" + module MyOCamlbuildFindlib = struct + # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" + +@@ -699,7 +721,9 @@ + with Not_found -> s + + (* ocamlfind command *) +- let ocamlfind x = S[Sh (exec_from_conf "ocamlfind"); x] ++ let ocamlfind x = S[Sh ( ++ Ocamlbuild_pack.Shell.quote_filename_if_needed ++ (exec_from_conf "ocamlfind") ); x] + + (* This lists all supported packages. *) + let find_packages () = +@@ -983,7 +1007,7 @@ + end + + +-# 878 "myocamlbuild.ml" ++# 902 "myocamlbuild.ml" + open Ocamlbuild_plugin;; + let package_default = + { +@@ -1283,7 +1307,7 @@ + + let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;; + +-# 1179 "myocamlbuild.ml" ++# 1203 "myocamlbuild.ml" + (* OASIS_STOP *) + + open Ocamlbuild_plugin;; +--- ./setup.ml ++++ ./setup.ml +@@ -21,9 +21,9 @@ + (******************************************************************************) + + (* OASIS_START *) +-(* DO NOT EDIT (digest: 82f71dd677dc1c6e3170c19b8f78d912) *) ++(* DO NOT EDIT (digest: fe19643829fc00739fbab75e4c7fe6a5) *) + (* +- Regenerated by OASIS v0.4.10~HEAD ++ Regenerated by OASIS v0.4.9 + Visit http://oasis.forge.ocamlcore.org for more information and + documentation about functions used in this file. + *) +@@ -198,6 +198,28 @@ + else + s + ++ let exists f str = ++ let rec iter i = ++ if i < 0 then ++ false ++ else if f str.[i] then ++ true ++ else ++ iter (pred i) ++ in ++ iter (String.length str - 1) ++ ++ let is_digit c = ++ '0' <= c && c <= '9' ++ ++ let is_alpha c = ++ ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') ++ ++ let is_whitespace = ++ function ++ | ' ' | '\r' | '\n' | '\t' -> true ++ | _ -> false ++ + end + + module OASISUtils = struct +@@ -473,6 +495,118 @@ + + module Unix = OASISUnixPath + ++ let bash_cmd = ref ( fun () -> "" ) ++ ++ let use_bash () = ( !bash_cmd () ) <> "" ++ ++ ++ (* generic quote and unixquote are taken from ocaml source *) ++ let generic_quote quotequote s = ++ let l = String.length s in ++ let b = Buffer.create (l + 20) in ++ Buffer.add_char b '\''; ++ for i = 0 to l - 1 do ++ if s.[i] = '\'' then ++ Buffer.add_string b quotequote ++ else ++ Buffer.add_char b s.[i] ++ done; ++ Buffer.add_char b '\''; ++ Buffer.contents b ++ ++ let unixquote = generic_quote "'\\''" ++ ++ let win = Sys.os_type = "Win32" ++ ++ let quote str = ++ if win && use_bash () then ++ unixquote str ++ else ++ quote str ++ ++ (* uniform_path (only called, if Sys.os_type = "Win32") ++ * - enforces uniform path seperators ++ * - strips trailing slashes (exceptions in case of C:\ and / ) ++ * - removes (some) unnecessary file components like ./././ ++ *) ++ ++ let get_naccu accu str first pos = ++ (* I assume c//d is identic to c/d ++ * the only exception (Network devices \\xyz\asdf) ++ * is covered in uniform_path ++ *) ++ if first = pos then ++ accu ++ else ++ let nlen = pos - first in ++ let nstr = String.sub str first nlen in ++ (* test/././ is the same as test *) ++ if nlen = 1 && nstr = "." then ++ accu ++ (* a/b/../ is the same as a *) ++ else if nlen = 2 && nstr = ".." then ++ match accu with ++ | [] -> [ nstr ] ++ | ".."::_ -> nstr::accu ++ | hd::tl -> tl ++ else ++ nstr::accu ++ ++ let is_path_sep = function ++ | '\\' | '/' -> true ++ | _ -> false ++ ++ ++ let uniform_path path_sep = function ++ | "" -> "" (* Raise an exception? Or an possible intermediate result? ++ * Filename.basename and dirname also don't raise exceptions *) ++ | str -> ++ let rec iter accu str len first pos = ++ if pos >= len then ++ List.rev (get_naccu accu str first pos) ++ else ++ let next = succ pos in ++ match is_path_sep str.[pos] with ++ | true -> iter (get_naccu accu str first pos) str len next next ++ | false -> iter accu str len first next ++ in ++ let is_unix_root = is_path_sep str.[0] in ++ let len = String.length str in ++ let next_sep = len > 1 && is_path_sep str.[1] in ++ let is_network_root = is_unix_root && next_sep in ++ let is_currel = str.[0] = '.' && ( next_sep || len = 1 ) in ++ let l = iter [] str len 0 0 in ++ (* Trailing slashes are normally stripped. ++ * This is not possible in case of root folders ++ * Sys.file_exists "C:" is false, Sys.file_exists "C:\\" true ++ *) ++ let l_min = ++ match l with ++ | [] -> [ "" ] ++ | _ -> l ++ in ++ let l = ++ if is_network_root then ++ ""::""::l_min ++ else if is_unix_root then ++ ""::l_min ++ else if is_currel then ++ "."::l ++ else ++ match l with ++ | s :: [] -> ++ (* root folders like C:\ *) ++ if String.length s = 2 && s.[1] = ':' && ++ len > 2 && is_path_sep str.[2] ++ then ++ s :: [ "" ] ++ else ++ l ++ | _ -> l ++ in ++ String.concat path_sep l ++ ++ + + let make = + function +@@ -486,22 +620,31 @@ + match Sys.os_type with + | "Unix" | "Cygwin" -> ufn + | "Win32" -> +- make +- (List.map +- (fun p -> +- if p = Unix.current_dir_name then +- current_dir_name +- else if p = Unix.parent_dir_name then +- parent_dir_name ++ let path_sep = ++ if use_bash () then ++ "/" + else +- p) +- (OASISString.nsplit ufn '/')) ++ "\\" ++ in ++ uniform_path path_sep ufn + | os_type -> + OASISUtils.failwithf + (f_ "Don't know the path format of os_type %S when translating unix \ + filename. %S") + os_type ufn + ++ (* see findlib's src/findlib/frontend.ml for details *) ++ let ocamlfind_unquote dir = ++ match Sys.os_type with ++ | "Cygwin" ++ | "Win32" -> ++ let len = String.length dir in ++ if len < 3 || dir.[0] <> '"' || dir.[len - 1] <> '"' || ++ String.contains dir ' ' = false then ++ dir ++ else ++ String.sub dir 1 (len - 2) ++ | _ -> dir + + end + +@@ -1084,8 +1227,8 @@ + + + (* Range of allowed characters *) +- let is_digit c = '0' <= c && c <= '9' +- let is_alpha c = ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') ++ let is_digit = OASISString.is_digit ++ let is_alpha = OASISString.is_alpha + let is_special = function | '.' | '+' | '-' | '~' -> true | _ -> false + + +@@ -2513,6 +2656,7 @@ + ~ctxt + ~is_native + ~source_file_exists ++ ~ext_obj + (cs, bs, obj) = + + let find_module ext modul = +@@ -2526,12 +2670,12 @@ + | [ m ] -> (find_module ".cmi" m, + find_module ".cmo" m, + find_module ".cmx" m, +- find_module ".o" m, ++ find_module ext_obj m, + fun x -> x) + | _ -> ([cs.cs_name ^ ".cmi"], + [cs.cs_name ^ ".cmo"], + [cs.cs_name ^ ".cmx"], +- [cs.cs_name ^ ".o"], ++ [cs.cs_name ^ ext_obj], + OASISUnixPath.concat bs.bs_path) + in + List.map (List.map f) ( +@@ -2891,26 +3035,170 @@ + open OASISUtils + open OASISMessage + ++ let is_dubious_char = function ++ | '+' | '~' | ':' | '.' | '-' | '_' | '/' | '\\' -> false ++ | c -> ++ OASISString.is_digit c = false && ++ OASISString.is_alpha c = false + +- (* TODO: I don't like this quote, it is there because $(rm) foo expands to +- * 'rm -f' foo... +- *) +- let run ~ctxt ?f_exit_code ?(quote=true) cmd args = ++ ++ let win_quote_needed str = ++ let f = function ++ | 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' ++ | '_' | '-' | '~' | '.' | ':' | ',' | '\\' -> false ++ | _ -> true ++ in ++ str = "" || OASISString.exists f str ++ ++ let is_simple_command str = ++ String.length str > 0 && ++ not (OASISString.exists is_dubious_char str) ++ ++ let is_path_sep = function ++ | '/' | '\\' -> true ++ | _ -> false ++ ++ let starts_with_absolute_path cmd = ++ let len = String.length cmd in ++ if len < 3 then ++ false ++ else ++ let c0 = cmd.[0] in ++ let c1 = cmd.[1] in ++ if is_path_sep c0 && is_path_sep c1 then (* network devices: "//" *) ++ true ++ else if len = 3 then ++ false ++ else (* C:\.... *) ++ OASISString.is_alpha c0 && c1 = ':' && is_path_sep cmd.[2] ++ ++ let exe_exts = lazy ++ begin ++ let exts = ++ try ++ OASISString.nsplit ++ (Sys.getenv "PATHEXT") ++ ';' ++ with ++ | Not_found -> [] ++ in ++ let exts' = ++ List.filter ++ ( fun a -> a <> "" && a.[0] = '.' && a <> ".exe" ) ++ (List.map OASISString.lowercase_ascii exts) ++ in ++ ".exe"::exts' ++ end ++ ++ let exe_file_exists fln = ++ Sys.file_exists fln || ++ List.exists ++ (fun a -> Sys.file_exists ( fln ^ a ) ) ++ (Lazy.force exe_exts) ++ ++ ++ let quote_anyway cmd = ++ if Sys.os_type <> "Win32" then ++ false ++ else if is_simple_command cmd then ++ true ++ else ++ OASISString.exists OASISString.is_whitespace cmd && ++ starts_with_absolute_path cmd && ++ exe_file_exists cmd ++ ++ ++ let run_bash ~ctxt ?f_exit_code ?(quote=true) cmd args = ++ let fn = Filename.temp_file "oasis-" ".sh" in ++ let fn_deleted = ref false in ++ try ++ begin ++ let ch = open_out_bin fn in ++ let ch_closed = ref false in ++ try ++ begin + let cmd = +- if quote then +- if Sys.os_type = "Win32" then +- if String.contains cmd ' ' then +- (* Double the 1st double quote... win32... sigh *) +- "\""^(Filename.quote cmd) ++ if quote || quote_anyway cmd then ++ OASISHostPath.quote (OASISHostPath.of_unix cmd) + else + cmd ++ in ++ output_string ch cmd; ++ List.iter ++ ( fun s -> output_char ch ' '; output_string ch s ) ++ args ; ++ output_char ch '\n'; ++ ch_closed:=true ; ++ close_out ch; ++ let bash = !OASISHostPath.bash_cmd () in ++ let add_quotes = ref false in ++ let shell_cmd = ++ if Sys.os_type <> "Win32" then ++ Filename.quote bash ++ else ++ if win_quote_needed bash = false then ++ bash ++ else ++ begin ++ add_quotes := true; ++ Filename.quote bash ++ end ++ in ++ let cmdline_orig = String.concat " " (cmd :: args) in ++ let cmdline = ++ let s = shell_cmd ^ " " ^ (Filename.quote fn) in ++ if !add_quotes then ++ "\"" ^ s ^ "\"" ++ else ++ s ++ in ++ info ~ctxt (f_ "Running command '%s'") cmdline_orig; ++ let ret = Sys.command cmdline in ++ fn_deleted := true; ++ Sys.remove fn; ++ match f_exit_code, ret with ++ | None, 0 -> () ++ | None, i -> ++ failwithf ++ (f_ "Command '%s' terminated with error code %d") ++ cmdline_orig i ++ | Some f, i -> ++ f i ++ end ++ with ++ | x when !ch_closed = false -> ++ close_out_noerr ch; ++ raise x ++ end ++ with ++ | x when !fn_deleted = false -> ++ (try Sys.remove fn with _ -> () ) ; ++ raise x ++ ++ let run_default ~ctxt ?f_exit_code ?(quote=true) cmd args = ++ let add_quotes = ref false in ++ let cmd = ++ if quote || quote_anyway cmd then ++ if Sys.os_type = "Win32" then ++ begin ++ if win_quote_needed cmd = false then ++ cmd ++ else ++ begin ++ add_quotes := true; ++ Filename.quote cmd ++ end ++ end + else + Filename.quote cmd + else + cmd + in + let cmdline = +- String.concat " " (cmd :: args) ++ let s = String.concat " " (cmd :: args) in ++ match !add_quotes with ++ | true -> "\"" ^ s ^ "\"" ++ | false -> s + in + info ~ctxt (f_ "Running command '%s'") cmdline; + match f_exit_code, Sys.command cmdline with +@@ -2922,6 +3210,13 @@ + | Some f, i -> + f i + ++ let run ~ctxt ?f_exit_code ?quote cmd args = ++ if OASISHostPath.use_bash () && ++ (Sys.os_type <> "Win32" || not (Filename.check_suffix cmd ".bat")) ++ then ++ run_bash ~ctxt ?f_exit_code ?quote cmd args ++ else ++ run_default ~ctxt ?f_exit_code ?quote cmd args + + let run_read_output ~ctxt ?f_exit_code cmd args = + let fn = +@@ -3032,7 +3327,7 @@ + ) alternatives + + +- let which ~ctxt prg = ++ let which ?(plain=false) ?ctxt prg = + let path_sep = + match Sys.os_type with + | "Win32" -> +@@ -3044,11 +3339,19 @@ + let exec_ext = + match Sys.os_type with + | "Win32" -> +- "" :: (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep) ++ "" :: (List.map ++ OASISString.lowercase_ascii ++ (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep)) + | _ -> + [""] + in ++ let p = + find_file ~case_sensitive:false [path_lst; [prg]] exec_ext ++ in ++ if plain then ++ p ++ else ++ OASISHostPath.of_unix p + + + (**/**) +@@ -3065,35 +3368,54 @@ + dn + + +- let q = Filename.quote ++ let q s = OASISHostPath.quote (OASISHostPath.of_unix s) + (**/**) + +- + let cp ~ctxt ?(recurse=false) src tgt = + if recurse then +- match Sys.os_type with +- | "Win32" -> +- OASISExec.run ~ctxt +- "xcopy" [q src; q tgt; "/E"] +- | _ -> +- OASISExec.run ~ctxt +- "cp" ["-r"; q src; q tgt] ++ (* ++ 'xcopy /E' and 'cp -r' don't have the same semantic! ++ -dir2 does exist: ++ xcopy dir dir2 /E -> copys content of dir into dir2 (dir2/dir doesn't exist!) ++ cp -r dir dir2 -> copys dir to dir2 (dir2/dir does exist!) ++ -dir2 doesn't exist: ++ xcopy dir dir2 /E -> request on command line, if dir2 is an directory or file. ++ cp -r dir dir2 -> dir and dir2 have the same content (dir2/dir doesn't exist) ++ Probably, there are even more differences,.... ++ *) ++ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then ++ let tgt_real = ++ if Sys.file_exists tgt = false then ++ begin ++ OASISExec.run ~ctxt "md" [q tgt]; ++ tgt ++ end + else +- OASISExec.run ~ctxt +- (match Sys.os_type with +- | "Win32" -> "copy" +- | _ -> "cp") +- [q src; q tgt] +- ++ let base = Filename.basename src in ++ if base = "." then ++ tgt ++ else ++ let tgt_real = Filename.concat tgt base in ++ if Sys.file_exists tgt_real = false then ++ OASISExec.run ~ctxt "md" [q tgt_real]; ++ tgt_real ++ in ++ OASISExec.run ~ctxt "xcopy" [q src; q tgt_real; "/E" ; "/Q" ; "/Y"] ++ else ++ OASISExec.run ~ctxt "cp" ["-r"; q src; q tgt] ++ else if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then ++ OASISExec.run ~ctxt "copy" [q src; q tgt ; "/Y"] ++ else ++ OASISExec.run ~ctxt "cp" [q src; q tgt] + + let mkdir ~ctxt tgt = + OASISExec.run ~ctxt +- (match Sys.os_type with +- | "Win32" -> "md" +- | _ -> "mkdir") ++ ( if Sys.os_type = "Win32" && not (OASISHostPath.use_bash ()) then ++ "md" ++ else ++ "mkdir" ) + [q tgt] + +- + let rec mkdir_parent ~ctxt f tgt = + let tgt = + fix_dir tgt +@@ -3119,10 +3441,9 @@ + + let rmdir ~ctxt tgt = + if Sys.readdir tgt = [||] then begin +- match Sys.os_type with +- | "Win32" -> ++ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then + OASISExec.run ~ctxt "rd" [q tgt] +- | _ -> ++ else + OASISExec.run ~ctxt "rm" ["-r"; q tgt] + end else begin + OASISMessage.error ~ctxt +@@ -3176,7 +3497,7 @@ + end + + +-# 3159 "setup.ml" ++# 3480 "setup.ml" + module BaseEnvLight = struct + # 22 "src/base/BaseEnvLight.ml" + +@@ -3256,7 +3577,7 @@ + end + + +-# 3239 "setup.ml" ++# 3560 "setup.ml" + module BaseContext = struct + # 22 "src/base/BaseContext.ml" + +@@ -3347,7 +3668,7 @@ + let var_lxr = Genlex.make_lexer [] + + +- let rec var_expand str = ++ let rec var_expand ?(quoted=false) str = + let buff = + Buffer.create ((String.length str) * 2) + in +@@ -3375,7 +3696,11 @@ + | [Genlex.Ident "ocaml_escaped"; Genlex.String s] -> + String.escaped s + | [Genlex.Ident nm] -> +- var_get nm ++ let s = var_get nm in ++ if quoted then ++ OASISHostPath.quote s ++ else ++ s + | _ -> + failwithf + (f_ "Unknown expression '%s' in variable expansion of %s.") +@@ -3913,9 +4238,11 @@ + in + let findlib_dir pkg = + let dir = ++ OASISHostPath.of_unix ( ++ OASISHostPath.ocamlfind_unquote ( + OASISExec.run_read_one_line ~ctxt:!BaseContext.default + (ocamlfind ()) +- ["query"; "-format"; "%d"; pkg] ++ ["query"; "-format"; "%d"; pkg] ) ) + in + if Sys.file_exists dir && Sys.is_directory dir then + dir +@@ -4045,6 +4372,9 @@ + match nm with + | "ocaml_version" -> + "version", chop_version_suffix ++ | "standard_library" ++ | "standard_library_default" -> ++ nm, ( fun x -> OASISHostPath.of_unix x) + | _ -> nm, (fun x -> x) + in + var_redefine +@@ -4184,15 +4514,43 @@ + + + let (/) a b = +- if os_type () = Sys.os_type then ++ let os = os_type () in ++ if os = Sys.os_type then ++ if Sys.os_type = "Win32" && OASISHostPath.use_bash () then ++ OASISUnixPath.concat a b ++ else + Filename.concat a b +- else if os_type () = "Unix" || os_type () = "Cygwin" then ++ else if os = "Unix" || os = "Cygwin" then + OASISUnixPath.concat a b + else +- OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") +- (os_type ()) ++ OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") os + (**/**) + ++ let auto_bash = ++ lazy ( ++ try ++ let bash = OASISFileUtil.which ~plain:true "bash" in ++ let sh = Filename.concat (Filename.dirname bash) "sh.exe" in ++ if Sys.file_exists sh then ++ sh ++ else ++ bash ++ with ++ | Not_found | Sys_error _ -> "" ) ++ ++ let auto_bash () = ++ if Sys.os_type <> "Win32" then ++ "" ++ else ++ Lazy.force auto_bash ++ ++ let bash_cmd = ++ var_define ++ ~short_desc:(fun () -> s_ "Enforced bash shell:") ++ ~cli:CLIAuto ++ ~arg_help:"program" ++ "use_bash" ++ auto_bash + + let prefix = + p "prefix" +@@ -4200,10 +4558,30 @@ + (fun () -> + match os_type () with + | "Win32" -> ++ let getenv w = ++ try ++ Some(Sys.getenv w) ++ with ++ | Not_found -> None ++ in ++ let s = ++ if Sys.word_size = 64 then ++ getenv "ProgramW6432" ++ else ++ None ++ in ++ let s = ++ if s = None then ++ getenv "PROGRAMFILES" ++ else ++ s ++ in + let program_files = +- Sys.getenv "PROGRAMFILES" ++ match s with ++ | None -> "C:\\Program Files" ++ | Some x -> x + in +- program_files/(pkg_name ()) ++ OASISHostPath.of_unix (program_files/(pkg_name ())) + | _ -> + "/usr/local") + +@@ -4289,7 +4667,15 @@ + let docdir = + p "docdir" + (fun () -> s_ "Documentation root") +- (fun () -> "$datarootdir"/"doc"/"$pkg_name") ++ (fun () -> ++ (* TODO: (Windows only?) "$pkg_name" is not always substituted ++ * (at least if datarootdir contains spaces or other garbage) ++ * I haven't looked up why. ++ *) ++ match os_type () with ++ | "Win32" -> "$datarootdir"/"doc"/ ( pkg_name () ) ++ | _ -> "$datarootdir"/"doc"/"$pkg_name" ++ ) + + + let htmldir = +@@ -4363,9 +4749,10 @@ + ~short_desc:(fun () -> s_ "Remove a file.") + "rm" + (fun () -> +- match os_type () with +- | "Win32" -> "del" +- | _ -> "rm -f") ++ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then ++ "del" ++ else ++ "rm -f" ) + + + let rmdir = +@@ -4373,9 +4760,10 @@ + ~short_desc:(fun () -> s_ "Remove a directory.") + "rmdir" + (fun () -> +- match os_type () with +- | "Win32" -> "rd" +- | _ -> "rm -rf") ++ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then ++ "rd" ++ else ++ "rm -rf") + + + let debug = +@@ -4439,14 +4827,26 @@ + let has_native_dynlink = + let ocamlfind = ocamlfind () in + try +- let fn = ++ (* -format %d/%a doesn't work, because ocamlfind quotes %d ++ * and %a separatly *) ++ let fn1 = ++ OASISHostPath.ocamlfind_unquote ( + OASISExec.run_read_one_line + ~ctxt:!BaseContext.default + ocamlfind + ["query"; "-predicates"; "native"; "dynlink"; +- "-format"; "%d/%a"] ++ "-format"; "%d"] ) + in +- Sys.file_exists fn ++ let fn2 = ++ OASISHostPath.ocamlfind_unquote ( ++ OASISExec.run_read_one_line ++ ~ctxt:!BaseContext.default ++ ocamlfind ++ ["query"; "-predicates"; "native"; "dynlink"; ++ "-format"; "%a"] ++ ) ++ in ++ fn1 <> "" && fn2 <> "" && Sys.file_exists (Filename.concat fn1 fn2) + with _ -> + false + in +@@ -4473,6 +4873,8 @@ + rpkg := Some pkg; + List.iter (fun f -> f pkg.oasis_version) !var_cond + ++ let () = ++ OASISHostPath.bash_cmd := bash_cmd + end + + module BaseFileAB = struct +@@ -4748,6 +5150,7 @@ + ~source_file_exists:(fun fn -> + OASISFileUtil.file_exists_case (OASISHostPath.of_unix fn)) + ~is_native:(bool_of_string (is_native ())) ++ ~ext_obj:(ext_obj()) + (cs, bs, obj) + in + let evs = +@@ -4773,7 +5176,7 @@ + OASISExec.run ~ctxt:!BaseContext.default ~quote:false + (var_expand cmd) + (List.map +- var_expand ++ (var_expand ~quoted:true) + (args @ (Array.to_list extra_args))) + + +@@ -5047,9 +5450,27 @@ + + let configure ~ctxt t args = + (* Run configure *) ++ ++ (* use-bash is an exception. It's already needed to run the ++ pre-configure script. *) ++ let rec f = function ++ | [] -> ++ begin ++ try ++ let x = Sys.getenv "USE_BASH" in ++ OASISHostPath.bash_cmd := (fun () -> x); ++ with ++ _ -> () ++ end ++ | "--use-bash"::x::_ -> ++ OASISHostPath.bash_cmd := (fun () -> x); ++ | _::tl -> f tl ++ in ++ f (Array.to_list args); + BaseCustom.hook + t.package.conf_custom + (fun () -> ++ OASISHostPath.bash_cmd := BaseStandardVar.bash_cmd; + (* Reload if preconf has changed it *) + begin + try +@@ -5679,7 +6100,7 @@ + end + + +-# 5662 "setup.ml" ++# 6083 "setup.ml" + module InternalConfigurePlugin = struct + # 22 "src/plugins/internal/InternalConfigurePlugin.ml" + +@@ -5959,12 +6380,21 @@ + let install_findlib_ev = "install-findlib" + + +- (* TODO: this can be more generic and used elsewhere. *) +- let win32_max_command_line_length = 8000 +- +- + let split_install_command ocamlfind findlib_name meta files = +- if Sys.os_type = "Win32" then ++ if Sys.os_type <> "Win32" then ++ ["install" :: findlib_name :: meta :: files] ++ else ++ let f s = ++ OASISHostPath.quote ( OASISHostPath.of_unix s ) ++ in ++ let files = List.map f files in ++ let meta = f meta in ++ let win32_max_command_line_length = ++ if OASISHostPath.use_bash () = false then ++ 7900 ++ else ++ 30000 ++ in + (* Arguments for the first command: *) + let first_args = ["install"; findlib_name; meta] in + (* Arguments for remaining commands: *) +@@ -6022,10 +6452,11 @@ + let cmds = split other_args others in + cmd :: cmds + in ++ if files = [] then ++ [ first_args ] ++ else + (* The first command does not use -add: *) + split first_args files +- else +- ["install" :: findlib_name :: meta :: files] + + + let install = +@@ -6482,7 +6913,7 @@ + end + + +-# 6465 "setup.ml" ++# 6896 "setup.ml" + module OCamlbuildCommon = struct + # 22 "src/plugins/ocamlbuild/OCamlbuildCommon.ml" + +@@ -6854,7 +7285,7 @@ + end + + +-# 6837 "setup.ml" ++# 7268 "setup.ml" + module CustomPlugin = struct + # 22 "src/plugins/custom/CustomPlugin.ml" + +@@ -6986,7 +7417,7 @@ + end + + +-# 6969 "setup.ml" ++# 7400 "setup.ml" + open OASISTypes;; + + let setup_t = +@@ -11781,9 +12212,10 @@ + schema_data = PropList.Data.create (); + plugin_data = [] + }; +- oasis_fn = None; +- oasis_version = "0.4.10~HEAD"; +- oasis_digest = None; ++ oasis_fn = Some "_oasis"; ++ oasis_version = "0.4.9"; ++ oasis_digest = ++ Some "\182\141\235\016\205\021\241\230\243\205\028\228\152Ia\194"; + oasis_exec = None; + oasis_setup_args = []; + setup_update = false +@@ -11791,7 +12223,7 @@ + + let setup () = BaseSetup.setup setup_t;; + +-# 11775 "setup.ml" ++# 12207 "setup.ml" + let setup_t = BaseCompat.Compat_0_4.adapt_setup_t setup_t + open BaseCompat.Compat_0_4 + (* OASIS_STOP *) +--- ./src/base/BaseBuilt.ml ++++ ./src/base/BaseBuilt.ml +@@ -165,6 +165,7 @@ + ~source_file_exists:(fun fn -> + OASISFileUtil.file_exists_case (OASISHostPath.of_unix fn)) + ~is_native:(bool_of_string (is_native ())) ++ ~ext_obj:(ext_obj()) + (cs, bs, obj) + in + let evs = +--- ./src/base/BaseCheck.ml ++++ ./src/base/BaseCheck.ml +@@ -118,9 +118,11 @@ + in + let findlib_dir pkg = + let dir = ++ OASISHostPath.of_unix ( ++ OASISHostPath.ocamlfind_unquote ( + OASISExec.run_read_one_line ~ctxt:!BaseContext.default + (ocamlfind ()) +- ["query"; "-format"; "%d"; pkg] ++ ["query"; "-format"; "%d"; pkg] ) ) + in + if Sys.file_exists dir && Sys.is_directory dir then + dir +--- ./src/base/BaseCustom.ml ++++ ./src/base/BaseCustom.ml +@@ -31,7 +31,7 @@ + OASISExec.run ~ctxt:!BaseContext.default ~quote:false + (var_expand cmd) + (List.map +- var_expand ++ (var_expand ~quoted:true) + (args @ (Array.to_list extra_args))) + + +--- ./src/base/BaseEnv.ml ++++ ./src/base/BaseEnv.ml +@@ -69,7 +69,7 @@ + let var_lxr = Genlex.make_lexer [] + + +-let rec var_expand str = ++let rec var_expand ?(quoted=false) str = + let buff = + Buffer.create ((String.length str) * 2) + in +@@ -97,7 +97,11 @@ + | [Genlex.Ident "ocaml_escaped"; Genlex.String s] -> + String.escaped s + | [Genlex.Ident nm] -> +- var_get nm ++ let s = var_get nm in ++ if quoted then ++ OASISHostPath.quote s ++ else ++ s + | _ -> + failwithf + (f_ "Unknown expression '%s' in variable expansion of %s.") +--- ./src/base/BaseEnv.mli ++++ ./src/base/BaseEnv.mli +@@ -73,8 +73,9 @@ + + (** Expand variable that can be found in string. Variable follow definition of + variable for [Buffer.add_substitute]. ++ quoted is false by default + *) +-val var_expand: string -> string ++val var_expand: ?quoted:bool -> string -> string + + + (** Get variable. *) +--- ./src/base/BaseOCamlcConfig.ml ++++ ./src/base/BaseOCamlcConfig.ml +@@ -116,6 +116,9 @@ + match nm with + | "ocaml_version" -> + "version", chop_version_suffix ++ | "standard_library" ++ | "standard_library_default" -> ++ nm, ( fun x -> OASISHostPath.of_unix x) + | _ -> nm, (fun x -> x) + in + var_redefine +--- ./src/base/BaseSetup.ml ++++ ./src/base/BaseSetup.ml +@@ -93,9 +93,27 @@ + + let configure ~ctxt t args = + (* Run configure *) ++ ++ (* use-bash is an exception. It's already needed to run the ++ pre-configure script. *) ++ let rec f = function ++ | [] -> ++ begin ++ try ++ let x = Sys.getenv "USE_BASH" in ++ OASISHostPath.bash_cmd := (fun () -> x); ++ with ++ _ -> () ++ end ++ | "--use-bash"::x::_ -> ++ OASISHostPath.bash_cmd := (fun () -> x); ++ | _::tl -> f tl ++ in ++ f (Array.to_list args); + BaseCustom.hook + t.package.conf_custom + (fun () -> ++ OASISHostPath.bash_cmd := BaseStandardVar.bash_cmd; + (* Reload if preconf has changed it *) + begin + try +--- ./src/base/BaseStandardVar.ml ++++ ./src/base/BaseStandardVar.ml +@@ -135,15 +135,43 @@ + + + let (/) a b = +- if os_type () = Sys.os_type then ++ let os = os_type () in ++ if os = Sys.os_type then ++ if Sys.os_type = "Win32" && OASISHostPath.use_bash () then ++ OASISUnixPath.concat a b ++ else + Filename.concat a b +- else if os_type () = "Unix" || os_type () = "Cygwin" then ++ else if os = "Unix" || os = "Cygwin" then + OASISUnixPath.concat a b + else +- OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") +- (os_type ()) ++ OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") os + (**/**) + ++let auto_bash = ++ lazy ( ++ try ++ let bash = OASISFileUtil.which ~plain:true "bash" in ++ let sh = Filename.concat (Filename.dirname bash) "sh.exe" in ++ if Sys.file_exists sh then ++ sh ++ else ++ bash ++ with ++ | Not_found | Sys_error _ -> "" ) ++ ++let auto_bash () = ++ if Sys.os_type <> "Win32" then ++ "" ++ else ++ Lazy.force auto_bash ++ ++let bash_cmd = ++ var_define ++ ~short_desc:(fun () -> s_ "Enforced bash shell:") ++ ~cli:CLIAuto ++ ~arg_help:"program" ++ "use_bash" ++ auto_bash + + let prefix = + p "prefix" +@@ -151,10 +179,30 @@ + (fun () -> + match os_type () with + | "Win32" -> ++ let getenv w = ++ try ++ Some(Sys.getenv w) ++ with ++ | Not_found -> None ++ in ++ let s = ++ if Sys.word_size = 64 then ++ getenv "ProgramW6432" ++ else ++ None ++ in ++ let s = ++ if s = None then ++ getenv "PROGRAMFILES" ++ else ++ s ++ in + let program_files = +- Sys.getenv "PROGRAMFILES" ++ match s with ++ | None -> "C:\\Program Files" ++ | Some x -> x + in +- program_files/(pkg_name ()) ++ OASISHostPath.of_unix (program_files/(pkg_name ())) + | _ -> + "/usr/local") + +@@ -240,7 +288,15 @@ + let docdir = + p "docdir" + (fun () -> s_ "Documentation root") +- (fun () -> "$datarootdir"/"doc"/"$pkg_name") ++ (fun () -> ++ (* TODO: (Windows only?) "$pkg_name" is not always substituted ++ * (at least if datarootdir contains spaces or other garbage) ++ * I haven't looked up why. ++ *) ++ match os_type () with ++ | "Win32" -> "$datarootdir"/"doc"/ ( pkg_name () ) ++ | _ -> "$datarootdir"/"doc"/"$pkg_name" ++ ) + + + let htmldir = +@@ -314,9 +370,10 @@ + ~short_desc:(fun () -> s_ "Remove a file.") + "rm" + (fun () -> +- match os_type () with +- | "Win32" -> "del" +- | _ -> "rm -f") ++ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then ++ "del" ++ else ++ "rm -f" ) + + + let rmdir = +@@ -324,9 +381,10 @@ + ~short_desc:(fun () -> s_ "Remove a directory.") + "rmdir" + (fun () -> +- match os_type () with +- | "Win32" -> "rd" +- | _ -> "rm -rf") ++ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then ++ "rd" ++ else ++ "rm -rf") + + + let debug = +@@ -390,14 +448,26 @@ + let has_native_dynlink = + let ocamlfind = ocamlfind () in + try +- let fn = ++ (* -format %d/%a doesn't work, because ocamlfind quotes %d ++ * and %a separatly *) ++ let fn1 = ++ OASISHostPath.ocamlfind_unquote ( ++ OASISExec.run_read_one_line ++ ~ctxt:!BaseContext.default ++ ocamlfind ++ ["query"; "-predicates"; "native"; "dynlink"; ++ "-format"; "%d"] ) ++ in ++ let fn2 = ++ OASISHostPath.ocamlfind_unquote ( + OASISExec.run_read_one_line + ~ctxt:!BaseContext.default + ocamlfind + ["query"; "-predicates"; "native"; "dynlink"; +- "-format"; "%d/%a"] ++ "-format"; "%a"] ++ ) + in +- Sys.file_exists fn ++ fn1 <> "" && fn2 <> "" && Sys.file_exists (Filename.concat fn1 fn2) + with _ -> + false + in +@@ -424,3 +494,5 @@ + rpkg := Some pkg; + List.iter (fun f -> f pkg.oasis_version) !var_cond + ++let () = ++ OASISHostPath.bash_cmd := bash_cmd +--- ./src/base/BaseStandardVar.mli ++++ ./src/base/BaseStandardVar.mli +@@ -73,6 +73,9 @@ + val systhread_supported: unit -> string + + ++ ++val bash_cmd: unit -> string ++ + (** {2 Paths} + + See {{:http://www.gnu.org/prep/standards/html_node/Directory-Variables.html} GNU standards}. +--- ./src/dynrun/OASISDynRun.ml ++++ ./src/dynrun/OASISDynRun.ml +@@ -56,7 +56,12 @@ + + let setup ~ctxt setup_t = + let tmp_setup_fn = +- Filename.temp_file (setup_t.package.name^"-setup") ".ml" in ++ if Sys.os_type <> "Win32" then ++ Filename.temp_file (setup_t.package.name^"-setup") ".ml" ++ else ++ (* dirty hack, because otherwise to_unix will fail *) ++ Filename.temp_file ~temp_dir:"." ("tmp-"^setup_t.package.name^"-setup") ".ml" ++ in + let restored = ref false in + let cleanup ~ctxt () = + if not !restored then begin +--- ./src/oasis/OASISCustom.ml ++++ ./src/oasis/OASISCustom.ml +@@ -38,14 +38,14 @@ + let pre_command = + new_field_conditional schm ("Pre"^nm^"Command") + ~default:None +- (opt command_line) ++ (opt command_line_warn) + hlp_pre + (fun pkg -> (sync pkg).pre_command) + in + let post_command = + new_field_conditional schm ("Post"^nm^"Command") + ~default:None +- (opt command_line) ++ (opt command_line_warn) + hlp_post + (fun pkg -> (sync pkg).post_command) + in +--- ./src/oasis/OASISExec.ml ++++ ./src/oasis/OASISExec.ml +@@ -25,26 +25,170 @@ + open OASISUtils + open OASISMessage + ++let is_dubious_char = function ++ | '+' | '~' | ':' | '.' | '-' | '_' | '/' | '\\' -> false ++ | c -> ++ OASISString.is_digit c = false && ++ OASISString.is_alpha c = false + +-(* TODO: I don't like this quote, it is there because $(rm) foo expands to +- * 'rm -f' foo... +-*) +-let run ~ctxt ?f_exit_code ?(quote=true) cmd args = ++ ++let win_quote_needed str = ++ let f = function ++ | 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' ++ | '_' | '-' | '~' | '.' | ':' | ',' | '\\' -> false ++ | _ -> true ++ in ++ str = "" || OASISString.exists f str ++ ++let is_simple_command str = ++ String.length str > 0 && ++ not (OASISString.exists is_dubious_char str) ++ ++let is_path_sep = function ++ | '/' | '\\' -> true ++ | _ -> false ++ ++let starts_with_absolute_path cmd = ++ let len = String.length cmd in ++ if len < 3 then ++ false ++ else ++ let c0 = cmd.[0] in ++ let c1 = cmd.[1] in ++ if is_path_sep c0 && is_path_sep c1 then (* network devices: "//" *) ++ true ++ else if len = 3 then ++ false ++ else (* C:\.... *) ++ OASISString.is_alpha c0 && c1 = ':' && is_path_sep cmd.[2] ++ ++let exe_exts = lazy ++ begin ++ let exts = ++ try ++ OASISString.nsplit ++ (Sys.getenv "PATHEXT") ++ ';' ++ with ++ | Not_found -> [] ++ in ++ let exts' = ++ List.filter ++ ( fun a -> a <> "" && a.[0] = '.' && a <> ".exe" ) ++ (List.map OASISString.lowercase_ascii exts) ++ in ++ ".exe"::exts' ++ end ++ ++let exe_file_exists fln = ++ Sys.file_exists fln || ++ List.exists ++ (fun a -> Sys.file_exists ( fln ^ a ) ) ++ (Lazy.force exe_exts) ++ ++ ++let quote_anyway cmd = ++ if Sys.os_type <> "Win32" then ++ false ++ else if is_simple_command cmd then ++ true ++ else ++ OASISString.exists OASISString.is_whitespace cmd && ++ starts_with_absolute_path cmd && ++ exe_file_exists cmd ++ ++ ++let run_bash ~ctxt ?f_exit_code ?(quote=true) cmd args = ++ let fn = Filename.temp_file "oasis-" ".sh" in ++ let fn_deleted = ref false in ++ try ++ begin ++ let ch = open_out_bin fn in ++ let ch_closed = ref false in ++ try ++ begin + let cmd = +- if quote then +- if Sys.os_type = "Win32" then +- if String.contains cmd ' ' then +- (* Double the 1st double quote... win32... sigh *) +- "\""^(Filename.quote cmd) ++ if quote || quote_anyway cmd then ++ OASISHostPath.quote (OASISHostPath.of_unix cmd) ++ else ++ cmd ++ in ++ output_string ch cmd; ++ List.iter ++ ( fun s -> output_char ch ' '; output_string ch s ) ++ args ; ++ output_char ch '\n'; ++ ch_closed:=true ; ++ close_out ch; ++ let bash = !OASISHostPath.bash_cmd () in ++ let add_quotes = ref false in ++ let shell_cmd = ++ if Sys.os_type <> "Win32" then ++ Filename.quote bash ++ else ++ if win_quote_needed bash = false then ++ bash ++ else ++ begin ++ add_quotes := true; ++ Filename.quote bash ++ end ++ in ++ let cmdline_orig = String.concat " " (cmd :: args) in ++ let cmdline = ++ let s = shell_cmd ^ " " ^ (Filename.quote fn) in ++ if !add_quotes then ++ "\"" ^ s ^ "\"" + else ++ s ++ in ++ info ~ctxt (f_ "Running command '%s'") cmdline_orig; ++ let ret = Sys.command cmdline in ++ fn_deleted := true; ++ Sys.remove fn; ++ match f_exit_code, ret with ++ | None, 0 -> () ++ | None, i -> ++ failwithf ++ (f_ "Command '%s' terminated with error code %d") ++ cmdline_orig i ++ | Some f, i -> ++ f i ++ end ++ with ++ | x when !ch_closed = false -> ++ close_out_noerr ch; ++ raise x ++ end ++ with ++ | x when !fn_deleted = false -> ++ (try Sys.remove fn with _ -> () ) ; ++ raise x ++ ++let run_default ~ctxt ?f_exit_code ?(quote=true) cmd args = ++ let add_quotes = ref false in ++ let cmd = ++ if quote || quote_anyway cmd then ++ if Sys.os_type = "Win32" then ++ begin ++ if win_quote_needed cmd = false then + cmd + else ++ begin ++ add_quotes := true; ++ Filename.quote cmd ++ end ++ end ++ else + Filename.quote cmd + else + cmd + in + let cmdline = +- String.concat " " (cmd :: args) ++ let s = String.concat " " (cmd :: args) in ++ match !add_quotes with ++ | true -> "\"" ^ s ^ "\"" ++ | false -> s + in + info ~ctxt (f_ "Running command '%s'") cmdline; + match f_exit_code, Sys.command cmdline with +@@ -56,6 +200,13 @@ + | Some f, i -> + f i + ++let run ~ctxt ?f_exit_code ?quote cmd args = ++ if OASISHostPath.use_bash () && ++ (Sys.os_type <> "Win32" || not (Filename.check_suffix cmd ".bat")) ++ then ++ run_bash ~ctxt ?f_exit_code ?quote cmd args ++ else ++ run_default ~ctxt ?f_exit_code ?quote cmd args + + let run_read_output ~ctxt ?f_exit_code cmd args = + let fn = +--- ./src/oasis/OASISFileTemplate.ml ++++ ./src/oasis/OASISFileTemplate.ml +@@ -496,6 +496,12 @@ + if Sys.file_exists bak then begin + info ~ctxt (f_ "Restore file '%s' with backup file '%s'.") + fn bak; ++ if Sys.os_type = "Win32" then ( ++ try ++ Sys.remove fn ++ with ++ | Sys_error _ -> () ++ ); + Sys.rename bak fn + end else begin + warning ~ctxt +--- ./src/oasis/OASISFileUtil.ml ++++ ./src/oasis/OASISFileUtil.ml +@@ -84,7 +84,7 @@ + ) alternatives + + +-let which ~ctxt prg = ++let which ?(plain=false) ?ctxt prg = + let path_sep = + match Sys.os_type with + | "Win32" -> +@@ -96,11 +96,19 @@ + let exec_ext = + match Sys.os_type with + | "Win32" -> +- "" :: (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep) ++ "" :: (List.map ++ OASISString.lowercase_ascii ++ (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep)) + | _ -> + [""] + in ++ let p = + find_file ~case_sensitive:false [path_lst; [prg]] exec_ext ++ in ++ if plain then ++ p ++ else ++ OASISHostPath.of_unix p + + + (**/**) +@@ -117,35 +125,54 @@ + dn + + +-let q = Filename.quote ++let q s = OASISHostPath.quote (OASISHostPath.of_unix s) + (**/**) + +- + let cp ~ctxt ?(recurse=false) src tgt = + if recurse then +- match Sys.os_type with +- | "Win32" -> +- OASISExec.run ~ctxt +- "xcopy" [q src; q tgt; "/E"] +- | _ -> +- OASISExec.run ~ctxt +- "cp" ["-r"; q src; q tgt] ++ (* ++ 'xcopy /E' and 'cp -r' don't have the same semantic! ++ -dir2 does exist: ++ xcopy dir dir2 /E -> copys content of dir into dir2 (dir2/dir doesn't exist!) ++ cp -r dir dir2 -> copys dir to dir2 (dir2/dir does exist!) ++ -dir2 doesn't exist: ++ xcopy dir dir2 /E -> request on command line, if dir2 is an directory or file. ++ cp -r dir dir2 -> dir and dir2 have the same content (dir2/dir doesn't exist) ++ Probably, there are even more differences,.... ++ *) ++ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then ++ let tgt_real = ++ if Sys.file_exists tgt = false then ++ begin ++ OASISExec.run ~ctxt "md" [q tgt]; ++ tgt ++ end + else +- OASISExec.run ~ctxt +- (match Sys.os_type with +- | "Win32" -> "copy" +- | _ -> "cp") +- [q src; q tgt] +- ++ let base = Filename.basename src in ++ if base = "." then ++ tgt ++ else ++ let tgt_real = Filename.concat tgt base in ++ if Sys.file_exists tgt_real = false then ++ OASISExec.run ~ctxt "md" [q tgt_real]; ++ tgt_real ++ in ++ OASISExec.run ~ctxt "xcopy" [q src; q tgt_real; "/E" ; "/Q" ; "/Y"] ++ else ++ OASISExec.run ~ctxt "cp" ["-r"; q src; q tgt] ++ else if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then ++ OASISExec.run ~ctxt "copy" [q src; q tgt ; "/Y"] ++ else ++ OASISExec.run ~ctxt "cp" [q src; q tgt] + + let mkdir ~ctxt tgt = + OASISExec.run ~ctxt +- (match Sys.os_type with +- | "Win32" -> "md" +- | _ -> "mkdir") ++ ( if Sys.os_type = "Win32" && not (OASISHostPath.use_bash ()) then ++ "md" ++ else ++ "mkdir" ) + [q tgt] + +- + let rec mkdir_parent ~ctxt f tgt = + let tgt = + fix_dir tgt +@@ -171,10 +198,9 @@ + + let rmdir ~ctxt tgt = + if Sys.readdir tgt = [||] then begin +- match Sys.os_type with +- | "Win32" -> ++ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then + OASISExec.run ~ctxt "rd" [q tgt] +- | _ -> ++ else + OASISExec.run ~ctxt "rm" ["-r"; q tgt] + end else begin + OASISMessage.error ~ctxt +--- ./src/oasis/OASISFileUtil.mli ++++ ./src/oasis/OASISFileUtil.mli +@@ -44,8 +44,7 @@ + + (** Find real filename of an executable. + *) +-val which: ctxt:OASISContext.t -> host_filename -> host_filename +- ++val which: ?plain:bool -> ?ctxt:OASISContext.t -> host_filename -> host_filename + + (** Copy a file. + *) +--- ./src/oasis/OASISHostPath.ml ++++ ./src/oasis/OASISHostPath.ml +@@ -27,6 +27,118 @@ + + module Unix = OASISUnixPath + ++let bash_cmd = ref ( fun () -> "" ) ++ ++let use_bash () = ( !bash_cmd () ) <> "" ++ ++ ++(* generic quote and unixquote are taken from ocaml source *) ++let generic_quote quotequote s = ++ let l = String.length s in ++ let b = Buffer.create (l + 20) in ++ Buffer.add_char b '\''; ++ for i = 0 to l - 1 do ++ if s.[i] = '\'' then ++ Buffer.add_string b quotequote ++ else ++ Buffer.add_char b s.[i] ++ done; ++ Buffer.add_char b '\''; ++ Buffer.contents b ++ ++let unixquote = generic_quote "'\\''" ++ ++let win = Sys.os_type = "Win32" ++ ++let quote str = ++ if win && use_bash () then ++ unixquote str ++ else ++ quote str ++ ++(* uniform_path (only called, if Sys.os_type = "Win32") ++ * - enforces uniform path seperators ++ * - strips trailing slashes (exceptions in case of C:\ and / ) ++ * - removes (some) unnecessary file components like ./././ ++ *) ++ ++let get_naccu accu str first pos = ++ (* I assume c//d is identic to c/d ++ * the only exception (Network devices \\xyz\asdf) ++ * is covered in uniform_path ++ *) ++ if first = pos then ++ accu ++ else ++ let nlen = pos - first in ++ let nstr = String.sub str first nlen in ++ (* test/././ is the same as test *) ++ if nlen = 1 && nstr = "." then ++ accu ++ (* a/b/../ is the same as a *) ++ else if nlen = 2 && nstr = ".." then ++ match accu with ++ | [] -> [ nstr ] ++ | ".."::_ -> nstr::accu ++ | hd::tl -> tl ++ else ++ nstr::accu ++ ++let is_path_sep = function ++ | '\\' | '/' -> true ++ | _ -> false ++ ++ ++let uniform_path path_sep = function ++ | "" -> "" (* Raise an exception? Or an possible intermediate result? ++ * Filename.basename and dirname also don't raise exceptions *) ++ | str -> ++ let rec iter accu str len first pos = ++ if pos >= len then ++ List.rev (get_naccu accu str first pos) ++ else ++ let next = succ pos in ++ match is_path_sep str.[pos] with ++ | true -> iter (get_naccu accu str first pos) str len next next ++ | false -> iter accu str len first next ++ in ++ let is_unix_root = is_path_sep str.[0] in ++ let len = String.length str in ++ let next_sep = len > 1 && is_path_sep str.[1] in ++ let is_network_root = is_unix_root && next_sep in ++ let is_currel = str.[0] = '.' && ( next_sep || len = 1 ) in ++ let l = iter [] str len 0 0 in ++ (* Trailing slashes are normally stripped. ++ * This is not possible in case of root folders ++ * Sys.file_exists "C:" is false, Sys.file_exists "C:\\" true ++ *) ++ let l_min = ++ match l with ++ | [] -> [ "" ] ++ | _ -> l ++ in ++ let l = ++ if is_network_root then ++ ""::""::l_min ++ else if is_unix_root then ++ ""::l_min ++ else if is_currel then ++ "."::l ++ else ++ match l with ++ | s :: [] -> ++ (* root folders like C:\ *) ++ if String.length s = 2 && s.[1] = ':' && ++ len > 2 && is_path_sep str.[2] ++ then ++ s :: [ "" ] ++ else ++ l ++ | _ -> l ++ in ++ String.concat path_sep l ++ ++ + + let make = + function +@@ -40,22 +152,31 @@ + match Sys.os_type with + | "Unix" | "Cygwin" -> ufn + | "Win32" -> +- make +- (List.map +- (fun p -> +- if p = Unix.current_dir_name then +- current_dir_name +- else if p = Unix.parent_dir_name then +- parent_dir_name ++ let path_sep = ++ if use_bash () then ++ "/" + else +- p) +- (OASISString.nsplit ufn '/')) ++ "\\" ++ in ++ uniform_path path_sep ufn + | os_type -> + OASISUtils.failwithf + (f_ "Don't know the path format of os_type %S when translating unix \ + filename. %S") + os_type ufn + ++(* see findlib's src/findlib/frontend.ml for details *) ++let ocamlfind_unquote dir = ++ match Sys.os_type with ++ | "Cygwin" ++ | "Win32" -> ++ let len = String.length dir in ++ if len < 3 || dir.[0] <> '"' || dir.[len - 1] <> '"' || ++ String.contains dir ' ' = false then ++ dir ++ else ++ String.sub dir 1 (len - 2) ++ | _ -> dir + + (* END EXPORT *) + +--- ./src/oasis/OASISHostPath.mli ++++ ./src/oasis/OASISHostPath.mli +@@ -29,6 +29,27 @@ + open OASISTypes + + ++(** ++ The function should return an unix like shell, ++ that will be used to execute external commands. ++ ++ The default function returns an empty string. ++ (system default will be used) ++*) ++val bash_cmd : (unit -> host_filename) ref ++ ++(** True, if bash_cmd_program will return a non-empty ++ host_filename *) ++val use_bash: unit -> bool ++ ++ ++(** ++ On windows, the Unix quote function ++ will be used, if use_base () is true. ++ Otherwise identic to Filename.quote ++*) ++val quote: string -> string ++ + (** Create a filename out of its components. + *) + val make: host_filename list -> host_filename +@@ -57,5 +78,9 @@ + val add_extension: host_filename -> string -> host_filename + + ++(** Unquote functions for filenames from 'ocamlfind query ...' *) ++val ocamlfind_unquote: string -> string ++ ++ + (** Map for host filename. {b Not exported.} *) + module Map: OASISUtils.MapExt.S with type key = host_filename +--- ./src/oasis/OASISObject.ml ++++ ./src/oasis/OASISObject.ml +@@ -54,6 +54,7 @@ + ~ctxt + ~is_native + ~source_file_exists ++ ~ext_obj + (cs, bs, obj) = + + let find_module ext modul = +@@ -67,12 +68,12 @@ + | [ m ] -> (find_module ".cmi" m, + find_module ".cmo" m, + find_module ".cmx" m, +- find_module ".o" m, ++ find_module ext_obj m, + fun x -> x) + | _ -> ([cs.cs_name ^ ".cmi"], + [cs.cs_name ^ ".cmo"], + [cs.cs_name ^ ".cmx"], +- [cs.cs_name ^ ".o"], ++ [cs.cs_name ^ ext_obj], + OASISUnixPath.concat bs.bs_path) + in + List.map (List.map f) ( +--- ./src/oasis/OASISObject.mli ++++ ./src/oasis/OASISObject.mli +@@ -49,6 +49,7 @@ + ctxt:OASISContext.t -> + is_native:bool -> + source_file_exists:(unix_filename -> bool) -> ++ ext_obj:string -> + common_section * build_section * object_ -> + unix_filename list list + +--- ./src/oasis/OASISString.ml ++++ ./src/oasis/OASISString.ml +@@ -169,18 +169,34 @@ + else + s + +-(* END EXPORT *) ++let exists f str = ++ let rec iter i = ++ if i < 0 then ++ false ++ else if f str.[i] then ++ true ++ else ++ iter (pred i) ++ in ++ iter (String.length str - 1) + +-(* TODO: replace lowercase_ascii, capitalize_ascii and uncapitalize_ascii +- functions by String.*_ascii function when OCaml minimal version will be +- 4.03.0. +- *) ++let is_digit c = ++ '0' <= c && c <= '9' ++ ++let is_alpha c = ++ ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') + + let is_whitespace = + function + | ' ' | '\r' | '\n' | '\t' -> true + | _ -> false + ++(* END EXPORT *) ++ ++(* TODO: replace lowercase_ascii, capitalize_ascii and uncapitalize_ascii ++ functions by String.*_ascii function when OCaml minimal version will be ++ 4.03.0. ++ *) + + let tokenize ?(is_whitespace=is_whitespace) ?(tokens=[]) str = + let lst = ref [] in +--- ./src/oasis/OASISValues.ml ++++ ./src/oasis/OASISValues.ml +@@ -492,6 +492,38 @@ + space_separated.print (cmd :: args)) + } + ++let command_line_warn = ++ let c = command_line in ++ let is_unix_centric_operator = function ++ | "&&" | ";" | "||" -> true ++ | _ -> false ++ in ++ ++ let parse = ( fun ~ctxt s -> ++ let (cmd,args) as cmd_args = c.parse ~ctxt s in ++ if String.length cmd > 0 && cmd.[0] <> '$' then ++ begin ++ OASISMessage.warning ++ ~ctxt ++ "External commands may differ from platform to platform (%s)" ++ cmd ++ end; ++ if List.exists is_unix_centric_operator args then ++ begin ++ OASISMessage.warning ++ ~ctxt ++ "Command line '%s' seems to be *nix specific" ++ (String.concat "" (cmd::args)) ++ end; ++ cmd_args ) ++ in ++ { ++ parse ; ++ update = c.update; ++ print = c.print; ++ } ++ ++ + + let command_line_options = + { parse = (fun ~ctxt:_ s -> POSIXShell.split s); +--- ./src/oasis/OASISValues.mli ++++ ./src/oasis/OASISValues.mli +@@ -183,6 +183,9 @@ + val command_line: (string * string list) t + + ++(** As above, but emmit warnings by dubious constructs *) ++val command_line_warn : (string * string list) t ++ + (** Arguments of command line programs. See {!OASISUtils.POSIX.split} + for more information. *) + val command_line_options: string list t +--- ./src/oasis/OASISVersion.ml ++++ ./src/oasis/OASISVersion.ml +@@ -38,8 +38,8 @@ + + + (* Range of allowed characters *) +-let is_digit c = '0' <= c && c <= '9' +-let is_alpha c = ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') ++let is_digit = OASISString.is_digit ++let is_alpha = OASISString.is_alpha + let is_special = function | '.' | '+' | '-' | '~' -> true | _ -> false + + +--- ./src/plugins/custom/CustomPlugin.ml ++++ ./src/plugins/custom/CustomPlugin.ml +@@ -200,7 +200,7 @@ + schema + id + nm +- command_line ++ command_line_warn + (* TODO: remove when fun () -> s_ be replaced *) + (fun () -> s_ hlp) + data (fun _ t -> t.cmd_main) +@@ -211,7 +211,7 @@ + id + (nm^"Clean") + ~default:None +- (opt command_line) ++ (opt command_line_warn) + (* TODO: remove when fun () -> s_ be replaced *) + (fun () -> s_ hlp_clean) + data (fun _ t -> t.cmd_clean) +@@ -222,7 +222,7 @@ + id + (nm^"Distclean") + ~default:None +- (opt command_line) ++ (opt command_line_warn) + (* TODO: remove when fun () -> s_ be replaced *) + (fun () -> s_ hlp_distclean) + data (fun _ t -> t.cmd_distclean) +@@ -426,7 +426,7 @@ + id + "Clean" + ~default:None +- (opt command_line) ++ (opt command_line_warn) + (fun () -> + s_ "Run command to clean test step.") + test_data (fun _ t -> t.cmd_clean) +@@ -437,7 +437,7 @@ + id + "Distclean" + ~default:None +- (opt command_line) ++ (opt command_line_warn) + (fun () -> + s_ "Run command to distclean test step.") + test_data (fun _ t -> t.cmd_distclean) +--- ./src/plugins/extra/devfiles/DevFilesPlugin.ml ++++ ./src/plugins/extra/devfiles/DevFilesPlugin.ml +@@ -201,7 +201,7 @@ + Printf.bprintf buff + "setup.exe: setup.ml%s\n\ + \tocamlfind ocamlopt -o $@%s setup.ml || ocamlfind ocamlc -o $@%s setup.ml || true\n\ +- \t$(RM) setup.cmi setup.cmo setup.cmx setup.o setup.cmt\n\n" ++ \t$(RM) setup.cmi setup.cmo setup.cmx setup.o setup.obj setup.cmt\n\n" + makefile_setup_deps packages packages; + end; + Buffer.add_string buff (".PHONY: "^(String.concat " " targets)^"\n"); +@@ -226,7 +226,7 @@ + Printf.sprintf + "if [ ! -e setup.exe ] || [ _oasis -nt setup.exe ] || [ setup.ml -nt setup.exe ] || [ configure -nt setup.exe ]; then\n \ + ocamlfind ocamlopt -o setup.exe%s setup.ml || ocamlfind ocamlc -o setup.exe%s setup.ml || exit 1\n \ +- rm -f setup.cmi setup.cmo setup.cmx setup.o setup.cmt\n\ ++ rm -f setup.cmi setup.cmo setup.cmx setup.o setup.obj setup.cmt\n\ + fi\n\ + ./setup.exe -configure \"$@\"" + packages packages +--- ./src/plugins/internal/InternalInstallPlugin.ml ++++ ./src/plugins/internal/InternalInstallPlugin.ml +@@ -47,12 +47,21 @@ + let install_findlib_ev = "install-findlib" + + +-(* TODO: this can be more generic and used elsewhere. *) +-let win32_max_command_line_length = 8000 +- +- + let split_install_command ocamlfind findlib_name meta files = +- if Sys.os_type = "Win32" then ++ if Sys.os_type <> "Win32" then ++ ["install" :: findlib_name :: meta :: files] ++ else ++ let f s = ++ OASISHostPath.quote ( OASISHostPath.of_unix s ) ++ in ++ let files = List.map f files in ++ let meta = f meta in ++ let win32_max_command_line_length = ++ if OASISHostPath.use_bash () = false then ++ 7900 ++ else ++ 30000 ++ in + (* Arguments for the first command: *) + let first_args = ["install"; findlib_name; meta] in + (* Arguments for remaining commands: *) +@@ -110,10 +119,11 @@ + let cmds = split other_args others in + cmd :: cmds + in ++ if files = [] then ++ [ first_args ] ++ else + (* The first command does not use -add: *) + split first_args files +- else +- ["install" :: findlib_name :: meta :: files] + + + let install = +--- ./src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml ++++ ./src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml +@@ -93,7 +93,9 @@ + with Not_found -> s + + (* ocamlfind command *) +-let ocamlfind x = S[Sh (exec_from_conf "ocamlfind"); x] ++let ocamlfind x = S[Sh ( ++ Ocamlbuild_pack.Shell.quote_filename_if_needed ++ (exec_from_conf "ocamlfind") ); x] + + (* This lists all supported packages. *) + let find_packages () = +--- ./src/plugins/ocamlbuild/OCamlbuildCommon.ml ++++ ./src/plugins/ocamlbuild/OCamlbuildCommon.ml +@@ -251,7 +251,7 @@ + end else begin + let extra_args = + match t.plugin_tags with +- | Some tags -> "-plugin-tags" :: ("'" ^ tags ^ "'") :: t.extra_args ++ | Some tags -> "-plugin-tags" :: ("\"" ^ tags ^ "\"") :: t.extra_args + | None -> t.extra_args + in + extra_args, ctxt +--- ./src/plugins/omake/OMakeEquip.ml ++++ ./src/plugins/omake/OMakeEquip.ml +@@ -197,6 +197,15 @@ + subst [] ' ' 0 + + ++let file_exists_case fln = ++ if Sys.file_exists fln = false then ++ false ++ else ++ let dir = Filename.dirname fln in ++ let base = Filename.basename fln in ++ let files = Array.to_list (Sys.readdir dir) in ++ List.mem base files ++ + let fixup_module_case dir name = + let name_cap = OASISUnixPath.capitalize_file name in + let name_uncap = OASISUnixPath.uncapitalize_file name in +@@ -205,7 +214,7 @@ + List.find + (fun (name,ext) -> + let file = OASISUnixPath.concat dir (name ^ ext) in +- Sys.file_exists ++ file_exists_case + (OASISHostPath.of_unix file) + ) + [ name_cap, ".ml"; +--- ./test/fake-ocamlfind/FakeOCamlfind.ml ++++ ./test/fake-ocamlfind/FakeOCamlfind.ml +@@ -30,4 +30,18 @@ + in + let args = Sys.argv in + args.(0) <- real_ocamlfind; ++ if Sys.os_type <> "Win32" then + Unix.execv real_ocamlfind args ++ else ++ let pid = ++ Unix.create_process ++ args.(0) ++ args ++ Unix.stdin ++ Unix.stdout ++ Unix.stderr ++ in ++ match snd (Unix.waitpid [] pid) with ++ | Unix.WEXITED n -> exit n ++ | Unix.WSIGNALED _ -> exit 2 (* like OCaml's uncaught exceptions *) ++ | Unix.WSTOPPED _ -> exit 1 +--- ./test/test-common/TestCommon.ml ++++ ./test/test-common/TestCommon.ml +@@ -222,6 +222,17 @@ + ~ctxt ?chdir ?foutput ?env ?exit_code ~use_stderr:true + cmd args + ++let file_exists_strict sfs fln = ++ if sfs#file_exists fln = false then ++ false ++ else if Sys.os_type <> "Win32" then ++ true ++ else ++ let fln_s = sfs#string_of_filename fln in ++ let dir = Filename.dirname fln_s in ++ let base = Filename.basename fln_s in ++ let dirs = Array.to_list (Sys.readdir dir) in ++ List.mem base dirs + + let assert_oasis_cli + ~ctxt +--- ./test/test-common/TestFullUtils.ml ++++ ./test/test-common/TestFullUtils.ml +@@ -35,11 +35,11 @@ + + + let exec fn = +- if Sys.os_type = "Win32" then +- fn^".exe" +- else ++ if Sys.os_type <> "Win32" || ++ Filename.check_suffix (OASISString.lowercase_ascii fn) ".exe" then + fn +- ++ else ++ fn ^ ".exe" + + (* Print a short version of the filename *) + let fn_printer ~root fn = FilePath.make_relative root fn +@@ -192,9 +192,14 @@ + + + (* Create tree structure for a test project and copy it there. *) +-let setup_test_directories test_ctxt ~is_native ~native_dynlink dn = ++let setup_test_directories ?tmpdir_prefix test_ctxt ~is_native ~native_dynlink dn = + (* Create a temporary directory. *) +- let tmpdir = bracket_tmpdir test_ctxt in ++ let prefix = ++ match tmpdir_prefix with ++ | None -> "ounit-" ++ | Some x -> x ++ in ++ let tmpdir = bracket_tmpdir ~prefix test_ctxt in + + (* Copy sources in this temporary directory. *) + let src_dir = +@@ -256,7 +261,7 @@ + (* Precompile setup.ml to speedup the tests, if possible. *) + let rec precompile_setup_ml test_ctxt t = + let setup_exe = +- Filename.concat t.precompile_dir (Filename.chop_extension setup_ml) ++ exec (Filename.concat t.precompile_dir (Filename.chop_extension setup_ml)) + in + let full_setup_ml = in_src_dir t setup_ml in + +@@ -280,16 +285,17 @@ + let timer = timer_start "precompile_setup_ml" in + let exit_code = + FileUtil.cp ~force:FileUtil.Force [full_setup_ml] t.precompile_dir; +- Sys.command ("ocamlfind ocamlc -o "^setup_exe^" " +- ^(Filename.concat t.precompile_dir setup_ml)) ++ let f1 = Filename.quote setup_exe in ++ let f2 = Filename.quote (Filename.concat t.precompile_dir setup_ml) in ++ Sys.command ("ocamlfind ocamlc -o "^f1^" "^f2) + in + timer_stop test_ctxt timer; + if exit_code = 0 then begin + (* Compilation succeed, update the digest *) +- logf test_ctxt `Info "Compilation of setup.ml succeeds."; ++ logf test_ctxt `Info "Compilation of setup.ml (%S) succeeds." setup_exe; + `Done_for (Digest.file full_setup_ml) + end else begin +- logf test_ctxt `Warning "Compilation of setup.ml doesn't succeed."; ++ logf test_ctxt `Warning "Compilation of setup.ml (%S) doesn't succeed." setup_exe; + `Not_possible + end + in +@@ -308,7 +314,7 @@ + + | `Done_for digest -> + if (Digest.file full_setup_ml) = digest then begin +- Some (exec setup_exe) ++ Some (setup_exe) + end else begin + t.setup_ml_precompiled <- compile (); + precompile_setup_ml test_ctxt t +@@ -538,6 +544,10 @@ + | InstalledBin of filename list + + ++ ++let system = ++ (BaseOCamlcConfig.var_define "system") () ++ + (* Register a set of files expected to be built. *) + let register_installed_files test_ctxt t installed_files_lst = + let rec file_list = +@@ -605,7 +615,12 @@ + acc + | "a" -> + let fn = +- if is_win32 then FilePath.replace_extension fn "lib" else fn ++ if not is_win32 then ++ fn ++ else ++ match system with ++ | "mingw" | "mingw64" -> fn ++ | _ -> FilePath.replace_extension fn "lib" + in + if (* library matching the .cmxa *) + t.is_native || +@@ -617,7 +632,7 @@ + (* no .a matching bytecode only library. *) + acc + | "so" when is_win32 -> +- (FilePath.replace_extension fn ".dll") :: acc ++ (FilePath.replace_extension fn "dll") :: acc + | "html" when + FilePath.basename fn = "index_extensions.html" + && OASISVersion.StringVersion.compare t.ocaml_version "4.02" < 0 -> +--- ./test/test-main/TestOASISLibrary.ml ++++ ./test/test-main/TestOASISLibrary.ml +@@ -44,7 +44,7 @@ + ~ctxt + (cs, bs, lib) + (fun fn -> +- sfs#file_exists (OASISFileSystem.of_unix_filename fn)) ++ file_exists_strict sfs (OASISFileSystem.of_unix_filename fn)) + in + (List.flatten (List.rev_map snd lst)) @ acc + | Object _ | Executable _ | Flag _ | SrcRepo _ | Test _ | Doc _ -> +--- ./test/test-main/TestOASISObject.ml ++++ ./test/test-main/TestOASISObject.ml +@@ -44,7 +44,7 @@ + ~ctxt + (cs, bs, obj) + (fun fn -> +- sfs#file_exists (OASISFileSystem.of_unix_filename fn)) ++ file_exists_strict sfs (OASISFileSystem.of_unix_filename fn)) + in + (List.flatten (List.rev_map snd lst)) @ acc + | Library _ | Executable _ | Flag _ | SrcRepo _ | Test _ | Doc _ -> +--- ./test/test-main/TestPluginOCamlbuild.ml ++++ ./test/test-main/TestPluginOCamlbuild.ml +@@ -27,6 +27,26 @@ + open OASISFileTemplate + open TestFullUtils + ++let fln_normalize = ++ if Sys.os_type <> "Win32" then ++ fun a -> a ++ else ++ fun str -> ++ let str = ++ let str_lower = OASISString.lowercase_ascii str in ++ if Filename.check_suffix str_lower ".exe" then ++ Filename.chop_extension str ^ ".exe" ++ else ++ str ++ in ++ let len = String.length str in ++ let b = Buffer.create len in ++ for i = 0 to len - 1 do ++ match String.get str i with ++ | '/' -> Buffer.add_char b '\\' ++ | c -> Buffer.add_char b c ++ done; ++ Buffer.contents b + + let all_tests = + [ +@@ -52,10 +72,12 @@ + let env = BaseEnvLight.load ~filename:(in_src_dir t "setup.data") () in + let () = + assert_equal ~printer:(Printf.sprintf "%S") +- fake_ocamlfind +- (BaseEnvLight.var_get "ocamlfind" env); ++ (fln_normalize fake_ocamlfind) ++ (fln_normalize (BaseEnvLight.var_get "ocamlfind" env)); + run_ocaml_setup_ml ~extra_env test_ctxt t ["-build"] + in ++ (* ocamlbuild is called with -no-log on win32 *) ++ skip_if (Sys.os_type = "Win32") "UNIX test"; + let build_log = + file_content (in_src_dir t (Filename.concat "_build" "_log")) + in +@@ -63,11 +85,15 @@ + List.iter + (fun line -> + if OASISString.contains ~what:"ocamlfind" line then ++ let what = ++ Ocamlbuild_pack.Shell.quote_filename_if_needed ++ fake_ocamlfind ++ in + assert_bool + (Printf.sprintf + "line %S should starts with %S" + line fake_ocamlfind) +- (OASISString.starts_with ~what:fake_ocamlfind line)) ++ (OASISString.starts_with ~what line)) + (OASISString.nsplit build_log '\n')); + + "use-ocamlfind", diff --git a/repo/win32/packages/upstream/oasis.0.4.10/files/oasis.install b/repo/win32/packages/upstream/oasis.0.4.10/files/oasis.install new file mode 100644 index 000000000..075d45291 --- /dev/null +++ b/repo/win32/packages/upstream/oasis.0.4.10/files/oasis.install @@ -0,0 +1,5 @@ +etc: [ + "setup.ml" + "setup.data" + "setup.log" +] diff --git a/repo/win32/packages/upstream/oasis.0.4.10/opam b/repo/win32/packages/upstream/oasis.0.4.10/opam new file mode 100644 index 000000000..75471df27 --- /dev/null +++ b/repo/win32/packages/upstream/oasis.0.4.10/opam @@ -0,0 +1,33 @@ +opam-version: "1.2" +maintainer: "Sylvain Le Gall " +authors: [ "Sylvain Le Gall" ] +license: "LGPL-2.1 with OCaml linking exception" +homepage: "http://oasis.forge.ocamlcore.org/" +dev-repo: "git://github.com/ocaml/oasis.git" +bug-reports: "https://github.com/ocaml/oasis/issues" +build: [ + ["ocaml" "setup.ml" "-configure" "--prefix" prefix] + ["ocaml" "setup.ml" "-build"] +] +install: ["ocaml" "setup.ml" "-install"] +remove: [ + ["ocaml" "%{etc}%/oasis/setup.ml" "-C" "%{etc}%/oasis" "-uninstall"] +] +build-doc: [ "ocaml" "setup.ml" "-doc" ] +depends: [ + "base-unix" + "ocamlbuild" + "ocamlfind" {>= "1.3.1"} + "ocamlify" {build} + "ocamlmod" {build} +] +depopts: [ + "benchmark" +] +conflicts: [ + "benchmark" {< "1.2"} + "oasis-mirage" {= "0.3.0"} + "oasis-mirage" {= "0.3.0a"} +] +available: [ ocaml-version >= "3.12.1" ] +patches: "oasis-0.4.10.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/oasis.0.4.10/url b/repo/win32/packages/upstream/oasis.0.4.10/url new file mode 100644 index 000000000..b9fcd1cc0 --- /dev/null +++ b/repo/win32/packages/upstream/oasis.0.4.10/url @@ -0,0 +1,2 @@ +archive: "https://forge.ocamlcore.org/frs/download.php/1694/oasis-0.4.10.tar.gz" +checksum: "84de67188d6c1ba4499aee6d4cb8cb54" diff --git a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0/descr b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/descr similarity index 100% rename from repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0/descr rename to repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/descr diff --git a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0/opam b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam similarity index 81% rename from repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0/opam rename to repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam index 88b103057..76acd5c48 100644 --- a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0/opam +++ b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam @@ -9,17 +9,7 @@ bug-reports: "https://github.com/let-def/ocaml-migrate-parsetree/issues" license: "LGPL-2.1" tags: ["syntax" "org:ocamllabs"] dev-repo: "git://github.com/let-def/ocaml-migrate-parsetree.git" -build: [ - "jbuilder" - "build" - "--only-packages" - "ocaml-migrate-parsetree" - "--root" - "." - "-j" - jobs - "@install" -] +build: ["jbuilder" "build" "-p" name "-j" jobs] depends: [ "result" "ocamlfind" {build} diff --git a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/url b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/url new file mode 100644 index 000000000..9d8b523d3 --- /dev/null +++ b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/url @@ -0,0 +1,3 @@ +http: + "https://github.com/let-def/ocaml-migrate-parsetree/archive/1.0.1.tar.gz" +checksum: "b2abce65e3e9057af3fe96fa8e9d088b" diff --git a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0/url b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0/url deleted file mode 100644 index 1c1358951..000000000 --- a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0/url +++ /dev/null @@ -1,3 +0,0 @@ -http: - "https://github.com/let-def/ocaml-migrate-parsetree/archive/v1.0.tar.gz" -checksum: "188b1bfed310fad8794da4d546d5a65f" diff --git a/repo/win32/packages/upstream/ocamlfind.1.7.2/findlib b/repo/win32/packages/upstream/ocamlfind.1.7.2/findlib deleted file mode 100644 index c705e3ee3..000000000 --- a/repo/win32/packages/upstream/ocamlfind.1.7.2/findlib +++ /dev/null @@ -1,12 +0,0 @@ -bigarray -bytes -compiler-libs -dynlink -findlib -graphics -num -num-top -stdlib -str -threads -unix diff --git a/repo/win32/packages/upstream/ocamlfind.1.7.2/url b/repo/win32/packages/upstream/ocamlfind.1.7.2/url deleted file mode 100644 index c8f84915d..000000000 --- a/repo/win32/packages/upstream/ocamlfind.1.7.2/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://download.camlcity.org/download/findlib-1.7.2.tar.gz" -checksum: "b2ced422ea53192bd046faa7bcbcd4a3" diff --git a/repo/win32/packages/upstream/ocamlfind.1.7.2/descr b/repo/win32/packages/upstream/ocamlfind.1.7.3/descr similarity index 100% rename from repo/win32/packages/upstream/ocamlfind.1.7.2/descr rename to repo/win32/packages/upstream/ocamlfind.1.7.3/descr diff --git a/repo/win32/packages/upstream/ocamlfind.1.7.2/files/findlib-1.7.2.patch b/repo/win32/packages/upstream/ocamlfind.1.7.3/files/findlib-1.7.3.patch similarity index 99% rename from repo/win32/packages/upstream/ocamlfind.1.7.2/files/findlib-1.7.2.patch rename to repo/win32/packages/upstream/ocamlfind.1.7.3/files/findlib-1.7.3.patch index 4555647aa..7d5bef93d 100644 --- a/repo/win32/packages/upstream/ocamlfind.1.7.2/files/findlib-1.7.2.patch +++ b/repo/win32/packages/upstream/ocamlfind.1.7.3/files/findlib-1.7.3.patch @@ -461,7 +461,7 @@ (if info <> "" then " - " ^ info else "")); --- ./src/findlib/Makefile +++ ./src/findlib/Makefile -@@ -88,6 +88,7 @@ +@@ -90,6 +90,7 @@ cat findlib_config.mlp | \ $(SH) $(TOP)/tools/patch '@CONFIGFILE@' '$(OCAMLFIND_CONF)' | \ $(SH) $(TOP)/tools/patch '@STDLIB@' '$(OCAML_CORE_STDLIB)' | \ @@ -469,7 +469,7 @@ sed -e 's;@AUTOLINK@;$(OCAML_AUTOLINK);g' \ -e 's;@SYSTEM@;$(SYSTEM);g' \ >findlib_config.ml -@@ -114,7 +115,7 @@ +@@ -116,7 +117,7 @@ $(OCAMLC) -a -o num_top.cma $(NUMTOP_OBJECTS) clean: @@ -478,7 +478,7 @@ fl_meta.ml findlib_config.ml findlib.mml topfind.ml topfind \ ocamlfind$(EXEC_SUFFIX) ocamlfind_opt$(EXEC_SUFFIX) -@@ -122,7 +123,7 @@ +@@ -124,7 +125,7 @@ mkdir -p "$(prefix)$(OCAML_SITELIB)/$(NAME)" mkdir -p "$(prefix)$(OCAMLFIND_BIN)" test $(INSTALL_TOPFIND) -eq 0 || cp topfind "$(prefix)$(OCAML_CORE_STDLIB)" diff --git a/repo/win32/packages/upstream/ocamlfind.1.7.2/opam b/repo/win32/packages/upstream/ocamlfind.1.7.3/opam similarity index 95% rename from repo/win32/packages/upstream/ocamlfind.1.7.2/opam rename to repo/win32/packages/upstream/ocamlfind.1.7.3/opam index dd4807533..8ee5fadaa 100644 --- a/repo/win32/packages/upstream/ocamlfind.1.7.2/opam +++ b/repo/win32/packages/upstream/ocamlfind.1.7.3/opam @@ -22,4 +22,4 @@ depends: [ "conf-m4" {build} ] authors: "Gerd Stolpmann " -patches: "findlib-1.7.2.patch" {os = "win32"} +patches: "findlib-1.7.3.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/ocamlfind.1.7.3/url b/repo/win32/packages/upstream/ocamlfind.1.7.3/url new file mode 100644 index 000000000..3fba38215 --- /dev/null +++ b/repo/win32/packages/upstream/ocamlfind.1.7.3/url @@ -0,0 +1,2 @@ +archive: "http://download.camlcity.org/download/findlib-1.7.3.tar.gz" +checksum: "7d57451218359f7b7dfc969e3684a6da" diff --git a/repo/win32/packages/upstream/ocamlify.0.0.1/descr b/repo/win32/packages/upstream/ocamlify.0.0.1/descr new file mode 100644 index 000000000..a3241a781 --- /dev/null +++ b/repo/win32/packages/upstream/ocamlify.0.0.1/descr @@ -0,0 +1,5 @@ +Include files in OCaml code +OCamlify allows to create OCaml source code by including whole files +into OCaml string or string list. The code generated can be compiled +as a standard OCaml file. It allows embedding external resources as +OCaml code. diff --git a/repo/win32/packages/upstream/ocamlify.0.0.1/files/ocamlify.install b/repo/win32/packages/upstream/ocamlify.0.0.1/files/ocamlify.install new file mode 100644 index 000000000..133e9cb64 --- /dev/null +++ b/repo/win32/packages/upstream/ocamlify.0.0.1/files/ocamlify.install @@ -0,0 +1 @@ +bin: ["_build/src/ocamlify"] diff --git a/repo/win32/packages/upstream/ocamlify.0.0.1/opam b/repo/win32/packages/upstream/ocamlify.0.0.1/opam new file mode 100644 index 000000000..545466712 --- /dev/null +++ b/repo/win32/packages/upstream/ocamlify.0.0.1/opam @@ -0,0 +1,11 @@ +opam-version: "1.2" +maintainer: "https://github.com/ocaml/opam-repository/issues" +build: [ + ["ocaml" "setup.ml" "-configure" "--prefix" prefix] + ["ocaml" "setup.ml" "-build"] +] +depends: [ + "ocamlfind" + "ocamlbuild" {build} +] +install: ["ocaml" "setup.ml" "-install"] diff --git a/repo/win32/packages/upstream/ocamlify.0.0.1/url b/repo/win32/packages/upstream/ocamlify.0.0.1/url new file mode 100644 index 000000000..6f3f2bb8b --- /dev/null +++ b/repo/win32/packages/upstream/ocamlify.0.0.1/url @@ -0,0 +1,2 @@ +archive: "http://forge.ocamlcore.org/frs/download.php/379/ocamlify-0.0.1.tar.gz" +checksum: "bcd97ad0f7203019019997197451dbf0" diff --git a/repo/win32/packages/upstream/ocamlmod.0.0.8/descr b/repo/win32/packages/upstream/ocamlmod.0.0.8/descr new file mode 100644 index 000000000..b15d3452c --- /dev/null +++ b/repo/win32/packages/upstream/ocamlmod.0.0.8/descr @@ -0,0 +1 @@ +Generate OCaml modules from source files diff --git a/repo/win32/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml b/repo/win32/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml new file mode 100644 index 000000000..0d23853fc --- /dev/null +++ b/repo/win32/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml @@ -0,0 +1,7 @@ +open Printf + +let () = + let dir = Sys.argv.(1) in + (try Sys.chdir dir + with _ -> eprintf "Cannot change directory to %s\n%!" dir); + exit (Sys.command "ocaml setup.ml -uninstall") diff --git a/repo/win32/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install b/repo/win32/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install new file mode 100644 index 000000000..c6cfc2de5 --- /dev/null +++ b/repo/win32/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install @@ -0,0 +1,6 @@ +etc: [ + "setup.ml" + "setup.data" + "setup.log" + "_oasis_remove_.ml" +] diff --git a/repo/win32/packages/upstream/ocamlmod.0.0.8/opam b/repo/win32/packages/upstream/ocamlmod.0.0.8/opam new file mode 100644 index 000000000..43e897304 --- /dev/null +++ b/repo/win32/packages/upstream/ocamlmod.0.0.8/opam @@ -0,0 +1,26 @@ +opam-version: "1.2" +maintainer: "opam-devel@lists.ocaml.org" +homepage: "https://forge.ocamlcore.org/projects/ocamlmod/" +bug-reports: "https://forge.ocamlcore.org/tracker/?group_id=244" +dev-repo: "darcs://https://forge.ocamlcore.org/anonscm/darcs/ocamlmod/ocamlmod" +authors: [ "Sylvain Le Gall" ] +license: "LGPL-2.1 with OCaml linking exception" +build: [ + ["ocaml" "setup.ml" "-configure" "--prefix" prefix] + ["ocaml" "setup.ml" "-build"] +] +install: ["ocaml" "setup.ml" "-install"] +remove: [ + ["ocaml" "%{etc}%/ocamlmod/_oasis_remove_.ml" "%{etc}%/ocamlmod"] +] +build-test: [ + ["ocaml" "setup.ml" "-configure" "--enable-tests"] + ["ocaml" "setup.ml" "-build"] + ["ocaml" "setup.ml" "-test"] {os!="win32"} + ["ocaml" "setup.ml" "-test" "-ocamlmod" "_build/src/ocamlmod.byte"] {os="win32"} +] +depends: [ + "ocamlfind" {build} + "ounit" {test & >= "2.0.0"} + "ocamlbuild" {build} +] diff --git a/repo/win32/packages/upstream/ocamlmod.0.0.8/url b/repo/win32/packages/upstream/ocamlmod.0.0.8/url new file mode 100644 index 000000000..8708b34e9 --- /dev/null +++ b/repo/win32/packages/upstream/ocamlmod.0.0.8/url @@ -0,0 +1,2 @@ +archive: "https://forge.ocamlcore.org/frs/download.php/1544/ocamlmod-0.0.8.tar.gz" +checksum: "411e5b3f3321945fc53d9377a1a17f91" diff --git a/repo/win32/packages/upstream/octavius.1.1.0/descr b/repo/win32/packages/upstream/octavius.1.1.0/descr new file mode 100644 index 000000000..c02e30a7d --- /dev/null +++ b/repo/win32/packages/upstream/octavius.1.1.0/descr @@ -0,0 +1,3 @@ +Ocamldoc comment syntax parser + +Octavius is a library to parse the `ocamldoc` comment syntax. \ No newline at end of file diff --git a/repo/win32/packages/upstream/octavius.1.1.0/opam b/repo/win32/packages/upstream/octavius.1.1.0/opam new file mode 100644 index 000000000..e99df8600 --- /dev/null +++ b/repo/win32/packages/upstream/octavius.1.1.0/opam @@ -0,0 +1,22 @@ +version: "1.1.0" +opam-version: "1.2" +name: "octavius" +maintainer: "leo@lpw25.net" +authors: [ "Leo White " ] +homepage: "https://github.com/ocaml-doc/octavius" +doc: "http://ocaml-doc.github.io/octavius/" +license: "ISC" +dev-repo: "http://github.com/ocaml-doc/octavius.git" +bug-reports: "https://github.com/ocaml-doc/octavius/issues" +tags: ["doc" "ocamldoc" "org:ocaml-doc"] + +available: [ ocaml-version >= "4.03.0"] +depends: [ + "ocamlfind" {build} + "jbuilder" {build} + "topkg" {build & >= "0.7.5"} ] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] diff --git a/repo/win32/packages/upstream/octavius.1.1.0/url b/repo/win32/packages/upstream/octavius.1.1.0/url new file mode 100644 index 000000000..0b5dd149c --- /dev/null +++ b/repo/win32/packages/upstream/octavius.1.1.0/url @@ -0,0 +1,2 @@ +archive: "http://github.com/ocaml-doc/octavius/releases/download/v1.1.0/octavius-1.1.0.tbz" +checksum: "20824624d9b2a9b8026a3ac9f83d4487" diff --git a/repo/win32/packages/upstream/ounit.2.0.0/findlib b/repo/win32/packages/upstream/ounit.2.0.0/findlib deleted file mode 100644 index fd2287441..000000000 --- a/repo/win32/packages/upstream/ounit.2.0.0/findlib +++ /dev/null @@ -1,2 +0,0 @@ -oUnit -ounit diff --git a/repo/win32/packages/upstream/ounit.2.0.0/opam b/repo/win32/packages/upstream/ounit.2.0.0/opam index ab2901afd..1b8738bbc 100644 --- a/repo/win32/packages/upstream/ounit.2.0.0/opam +++ b/repo/win32/packages/upstream/ounit.2.0.0/opam @@ -1,5 +1,5 @@ opam-version: "1.2" -maintainer: "contact@ocamlpro.com" +maintainer: "https://github.com/ocaml/opam-repository/issues" homepage: "http://ounit.forge.ocamlcore.org" doc: ["http://ounit.forge.ocamlcore.org/api-ounit/index.html"] build: [make "build"] diff --git a/repo/win32/packages/upstream/ppx_base.v0.9.0/descr b/repo/win32/packages/upstream/ppx_base.v0.9.0/descr new file mode 100644 index 000000000..ebd7cc108 --- /dev/null +++ b/repo/win32/packages/upstream/ppx_base.v0.9.0/descr @@ -0,0 +1,6 @@ +Base set of ppx rewriters + +ppx_base is the set of ppx rewriters used for Base. + +Note that Base doesn't need ppx to build, it is only used as a +verification tool. diff --git a/repo/win32/packages/upstream/ppx_base.v0.9.0/opam b/repo/win32/packages/upstream/ppx_base.v0.9.0/opam new file mode 100644 index 000000000..0c80ad27b --- /dev/null +++ b/repo/win32/packages/upstream/ppx_base.v0.9.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/ppx_base" +bug-reports: "https://github.com/janestreet/ppx_base/issues" +dev-repo: "https://github.com/janestreet/ppx_base.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "--only-packages" "ppx_base" "--root" "." "-j" jobs "@install"] +] +depends: [ + "jbuilder" {build & >= "1.0+beta4"} + "ppx_compare" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "ppx_enumerate" {>= "v0.9" & < "v0.10"} + "ppx_hash" {>= "v0.9" & < "v0.10"} + "ppx_js_style" {>= "v0.9" & < "v0.10"} + "ppx_sexp_conv" {>= "v0.9" & < "v0.10"} + "ppx_type_conv" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/ppx_base.v0.9.0/url b/repo/win32/packages/upstream/ppx_base.v0.9.0/url new file mode 100644 index 000000000..aafe1bb99 --- /dev/null +++ b/repo/win32/packages/upstream/ppx_base.v0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://ocaml.janestreet.com/ocaml-core/v0.9/files/ppx_base-v0.9.0.tar.gz" +checksum: "1f9a464a64ddad32005112994459a3e7" diff --git a/repo/win32/packages/upstream/ppx_compare.v0.9.0/descr b/repo/win32/packages/upstream/ppx_compare.v0.9.0/descr new file mode 100644 index 000000000..3e6cb15b9 --- /dev/null +++ b/repo/win32/packages/upstream/ppx_compare.v0.9.0/descr @@ -0,0 +1,3 @@ +Generation of comparison functions from types + +Part of the Jane Street's PPX rewriters collection. diff --git a/repo/win32/packages/upstream/ppx_compare.v0.9.0/opam b/repo/win32/packages/upstream/ppx_compare.v0.9.0/opam new file mode 100644 index 000000000..a3fdc5fcb --- /dev/null +++ b/repo/win32/packages/upstream/ppx_compare.v0.9.0/opam @@ -0,0 +1,20 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/ppx_compare" +bug-reports: "https://github.com/janestreet/ppx_compare/issues" +dev-repo: "https://github.com/janestreet/ppx_compare.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "--only-packages" "ppx_compare" "--root" "." "-j" jobs "@install"] +] +depends: [ + "base" {>= "v0.9" & < "v0.10"} + "jbuilder" {build & >= "1.0+beta4"} + "ppx_core" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "ppx_metaquot" {>= "v0.9" & < "v0.10"} + "ppx_type_conv" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/ppx_compare.v0.9.0/url b/repo/win32/packages/upstream/ppx_compare.v0.9.0/url new file mode 100644 index 000000000..0416c014a --- /dev/null +++ b/repo/win32/packages/upstream/ppx_compare.v0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://ocaml.janestreet.com/ocaml-core/v0.9/files/ppx_compare-v0.9.0.tar.gz" +checksum: "0ba4d7bb540cddafa73919100e7e89d8" diff --git a/repo/win32/packages/upstream/ppx_cstruct.0/descr b/repo/win32/packages/upstream/ppx_cstruct.0/descr deleted file mode 100644 index 457063813..000000000 --- a/repo/win32/packages/upstream/ppx_cstruct.0/descr +++ /dev/null @@ -1,4 +0,0 @@ -Access C-like structures directly from OCaml - -This is a dummy package to facilitate the migration to cstruct 3.0.0, -where several package were split out of the main Cstruct package. diff --git a/repo/win32/packages/upstream/ppx_cstruct.3.1.1/descr b/repo/win32/packages/upstream/ppx_cstruct.3.1.1/descr new file mode 100644 index 000000000..04ad3d2ec --- /dev/null +++ b/repo/win32/packages/upstream/ppx_cstruct.3.1.1/descr @@ -0,0 +1,5 @@ +Access C-like structures directly from OCaml + +Cstruct is a library and syntax extension to make it easier to access C-like +structures directly from OCaml. It supports both reading and writing to these +structures, and they are accessed via the `Bigarray` module. \ No newline at end of file diff --git a/repo/win32/packages/upstream/ppx_cstruct.3.1.1/opam b/repo/win32/packages/upstream/ppx_cstruct.3.1.1/opam new file mode 100644 index 000000000..fbbd17c63 --- /dev/null +++ b/repo/win32/packages/upstream/ppx_cstruct.3.1.1/opam @@ -0,0 +1,28 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire" + "Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott" + "Mindy Preston" "Thomas Leonard" ] +homepage: "https://github.com/mirage/ocaml-cstruct" +license: "ISC" +dev-repo: "https://github.com/mirage/ocaml-cstruct.git" +bug-reports: "https://github.com/mirage/ocaml-cstruct/issues" +tags: [ "org:mirage" "org:ocamllabs" ] +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +build-test: [ + ["jbuilder" "runtest" "-p" name "-j" jobs] +] +depends: [ + "jbuilder" {build & >="1.0+beta7"} + "cstruct" {>="3.1.1"} + "ounit" {test} + "ppx_tools_versioned" {>="5.0.1"} + "ocaml-migrate-parsetree" + "ppx_driver" {test & >= "v0.9.0"} + "ppx_sexp_conv" {test} + "cstruct-unix" {test} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/ppx_cstruct.3.1.1/url b/repo/win32/packages/upstream/ppx_cstruct.3.1.1/url new file mode 100644 index 000000000..e8888b702 --- /dev/null +++ b/repo/win32/packages/upstream/ppx_cstruct.3.1.1/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-cstruct/releases/download/v3.1.1/cstruct-3.1.1.tbz" +checksum: "9834ebf3e161ae62577962332b544c24" \ No newline at end of file diff --git a/repo/win32/packages/upstream/ppx_enumerate.v0.9.0/descr b/repo/win32/packages/upstream/ppx_enumerate.v0.9.0/descr new file mode 100644 index 000000000..2bf436566 --- /dev/null +++ b/repo/win32/packages/upstream/ppx_enumerate.v0.9.0/descr @@ -0,0 +1,3 @@ +Generate a list containing all values of a finite type + +Part of the Jane Street's PPX rewriters collection. diff --git a/repo/win32/packages/upstream/ppx_enumerate.v0.9.0/opam b/repo/win32/packages/upstream/ppx_enumerate.v0.9.0/opam new file mode 100644 index 000000000..68d8deff0 --- /dev/null +++ b/repo/win32/packages/upstream/ppx_enumerate.v0.9.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/ppx_enumerate" +bug-reports: "https://github.com/janestreet/ppx_enumerate/issues" +dev-repo: "https://github.com/janestreet/ppx_enumerate.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "--only-packages" "ppx_enumerate" "--root" "." "-j" jobs "@install"] +] +depends: [ + "jbuilder" {build & >= "1.0+beta4"} + "ppx_core" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "ppx_metaquot" {>= "v0.9" & < "v0.10"} + "ppx_type_conv" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/ppx_enumerate.v0.9.0/url b/repo/win32/packages/upstream/ppx_enumerate.v0.9.0/url new file mode 100644 index 000000000..0f8003959 --- /dev/null +++ b/repo/win32/packages/upstream/ppx_enumerate.v0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://ocaml.janestreet.com/ocaml-core/v0.9/files/ppx_enumerate-v0.9.0.tar.gz" +checksum: "90811868e565b71bb432fd2625ec047e" diff --git a/repo/win32/packages/upstream/ppx_hash.v0.9.0/descr b/repo/win32/packages/upstream/ppx_hash.v0.9.0/descr new file mode 100644 index 000000000..f43f3d35e --- /dev/null +++ b/repo/win32/packages/upstream/ppx_hash.v0.9.0/descr @@ -0,0 +1,3 @@ +A ppx rewriter that generates hash functions from type expressions and definitions + +Part of the Jane Street's PPX rewriters collection. diff --git a/repo/win32/packages/upstream/ppx_hash.v0.9.0/opam b/repo/win32/packages/upstream/ppx_hash.v0.9.0/opam new file mode 100644 index 000000000..903862d1f --- /dev/null +++ b/repo/win32/packages/upstream/ppx_hash.v0.9.0/opam @@ -0,0 +1,22 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/ppx_hash" +bug-reports: "https://github.com/janestreet/ppx_hash/issues" +dev-repo: "https://github.com/janestreet/ppx_hash.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "--only-packages" "ppx_hash" "--root" "." "-j" jobs "@install"] +] +depends: [ + "base" {>= "v0.9" & < "v0.10"} + "jbuilder" {build & >= "1.0+beta4"} + "ppx_compare" {>= "v0.9" & < "v0.10"} + "ppx_core" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "ppx_metaquot" {>= "v0.9" & < "v0.10"} + "ppx_sexp_conv" {>= "v0.9" & < "v0.10"} + "ppx_type_conv" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/ppx_hash.v0.9.0/url b/repo/win32/packages/upstream/ppx_hash.v0.9.0/url new file mode 100644 index 000000000..27a07ecbc --- /dev/null +++ b/repo/win32/packages/upstream/ppx_hash.v0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://ocaml.janestreet.com/ocaml-core/v0.9/files/ppx_hash-v0.9.0.tar.gz" +checksum: "44b6a5acdd7eabe11348499f4ef2a054" diff --git a/repo/win32/packages/upstream/ppx_js_style.v0.9.0/descr b/repo/win32/packages/upstream/ppx_js_style.v0.9.0/descr new file mode 100644 index 000000000..b72167a4f --- /dev/null +++ b/repo/win32/packages/upstream/ppx_js_style.v0.9.0/descr @@ -0,0 +1,6 @@ +Code style checker for Jane Street Packages + +Part of the Jane Street's PPX rewriters collection. + +This packages is a no-op ppx rewriter. It is used as a 'lint' tool to +enforce some coding conventions across all Jane Street packages. diff --git a/repo/win32/packages/upstream/ppx_js_style.v0.9.0/opam b/repo/win32/packages/upstream/ppx_js_style.v0.9.0/opam new file mode 100644 index 000000000..ba1a42eeb --- /dev/null +++ b/repo/win32/packages/upstream/ppx_js_style.v0.9.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "opensource@janestreet.com" +authors: ["Jane Street Group, LLC "] +homepage: "https://github.com/janestreet/ppx_js_style" +bug-reports: "https://github.com/janestreet/ppx_js_style/issues" +dev-repo: "https://github.com/janestreet/ppx_js_style.git" +license: "Apache-2.0" +build: [ + ["jbuilder" "build" "--only-packages" "ppx_js_style" "--root" "." "-j" jobs "@install"] +] +depends: [ + "jbuilder" {build & >= "1.0+beta4"} + "ppx_core" {>= "v0.9" & < "v0.10"} + "ppx_driver" {>= "v0.9" & < "v0.10"} + "ppx_metaquot" {>= "v0.9" & < "v0.10"} + "ocaml-migrate-parsetree" {>= "0.4"} + "octavius" +] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/ppx_js_style.v0.9.0/url b/repo/win32/packages/upstream/ppx_js_style.v0.9.0/url new file mode 100644 index 000000000..aa8414747 --- /dev/null +++ b/repo/win32/packages/upstream/ppx_js_style.v0.9.0/url @@ -0,0 +1,2 @@ +archive: "https://ocaml.janestreet.com/ocaml-core/v0.9/files/ppx_js_style-v0.9.0.tar.gz" +checksum: "ad32e85a819693153dd7115e7025b7ef" diff --git a/repo/win32/packages/upstream/ppx_tools.5.0+4.03.0/findlib b/repo/win32/packages/upstream/ppx_tools.5.0+4.03.0/findlib deleted file mode 100644 index 52adf05be..000000000 --- a/repo/win32/packages/upstream/ppx_tools.5.0+4.03.0/findlib +++ /dev/null @@ -1 +0,0 @@ -ppx_tools diff --git a/repo/win32/packages/upstream/prometheus.0.3/descr b/repo/win32/packages/upstream/prometheus.0.3/descr new file mode 100644 index 000000000..903f33b16 --- /dev/null +++ b/repo/win32/packages/upstream/prometheus.0.3/descr @@ -0,0 +1,72 @@ +Client library for Prometheus monitoring + +To run services reliably, it is useful if they can report various metrics +(for example, heap size, queue lengths, number of warnings logged, etc). + +A monitoring service can be configured to collect this data regularly. +The data can be graphed to help understand the performance of the service over time, +or to help debug problems quickly. +It can also be used to send alerts if a service is down or behaving poorly. + +This repository contains code to report metrics to a [Prometheus][] monitoring server. + +### Use by libraries + +Library authors should define a set of metrics that may be useful. For example, the DataKitCI +cache module defines several metrics like this: + +```ocaml +module Metrics = struct + open Prometheus + + let namespace = "DataKitCI" + let subsystem = "cache" + + let builds_started_total = + let help = "Total number of builds started" in + Counter.v_label ~help ~label_name:"name" ~namespace ~subsystem "builds_started_total" + + let builds_succeeded_total = + let help = "Total number of builds that succeeded" in + Counter.v_label ~help ~label_name:"name" ~namespace ~subsystem "builds_succeeded_total" + + let builds_failed_total = + let help = "Total number of builds that failed" in + Counter.v_label ~help ~label_name:"name" ~namespace ~subsystem "builds_failed_total" + + [...] +end +``` + +Each of these metrics has a `name` label, which allows the reports to be further broken down +by the type of thing being built. + +When (for example) a build succeeds, the CI does: + +```ocaml +Prometheus.Counter.inc_one (Metrics.builds_succeeded_total build_type) +``` + +### Use by applications + +Applications can enable metric reporting using the `prometheus-app` opam package. +This depends on cohttp and can serve the metrics collected above over HTTP. + +The `prometheus-app.unix` ocamlfind library provides the `Prometheus_unix` module, +which includes a cmdliner option and pre-configured web-server. +See the `examples/example.ml` program for an example, which can be run as: + +```shell +$ ./_build/examples/example.native --listen-prometheus=9090 +If run with the option --listen-prometheus=9090, this program serves metrics at +http://localhost:9090/metrics +Tick! +Tick! +... +``` + +Unikernels can use `Prometheus_app` instead of `Prometheus_unix` to avoid the `Unix` dependency. + +### API docs + +Generated API documentation is available at . \ No newline at end of file diff --git a/repo/win32/packages/upstream/prometheus.0.3/opam b/repo/win32/packages/upstream/prometheus.0.3/opam new file mode 100644 index 000000000..6fc5c3194 --- /dev/null +++ b/repo/win32/packages/upstream/prometheus.0.3/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "datakit@docker.com" +authors: ["Thomas Leonard" "David Scott"] +license: "Apache" +homepage: "https://github.com/mirage/prometheus" +bug-reports: "https://github.com/mirage/prometheus/issues" +dev-repo: "https://github.com/mirage/prometheus.git" +doc: "https://mirage.github.io/prometheus/" + +build: [ + [ "jbuilder" "subst" ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "astring" + "asetmap" + "fmt" + "re" + "lwt" {>="2.5.0"} + "alcotest" {test} +] +available: [ocaml-version >= "4.01.0"] diff --git a/repo/win32/packages/upstream/prometheus.0.3/url b/repo/win32/packages/upstream/prometheus.0.3/url new file mode 100644 index 000000000..cce5118b0 --- /dev/null +++ b/repo/win32/packages/upstream/prometheus.0.3/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/prometheus/releases/download/v0.3/prometheus-0.3.tbz" +checksum: "dcf7cf2cb603d350bfa401ac82c8bff1" \ No newline at end of file diff --git a/repo/win32/packages/upstream/protocol-9p-unix.0.11.2/descr b/repo/win32/packages/upstream/protocol-9p-unix.0.11.2/descr new file mode 100644 index 000000000..da39175fd --- /dev/null +++ b/repo/win32/packages/upstream/protocol-9p-unix.0.11.2/descr @@ -0,0 +1,2 @@ +Unix clients and servers for the 9P protocol + diff --git a/repo/win32/packages/upstream/protocol-9p-unix.0.11.2/opam b/repo/win32/packages/upstream/protocol-9p-unix.0.11.2/opam new file mode 100644 index 000000000..c2d9358a9 --- /dev/null +++ b/repo/win32/packages/upstream/protocol-9p-unix.0.11.2/opam @@ -0,0 +1,41 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: [ "David Scott" "David Sheets" "Thomas Leonard" ] +license: "ISC" +homepage: "https://github.com/mirage/ocaml-9p" +dev-repo: "https://github.com/mirage/ocaml-9p.git" +bug-reports: "https://github.com/mirage/ocaml-9p/issues" +doc: "https://mirage.github.io/ocaml-9p/" + +build: [ + ["jbuilder" "subst" "-p" name "--name" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "protocol-9p" {= "0.11.2"} + "io-page-unix" {>= "2.0.0"} + "base-bytes" + "cstruct" {>= "3.0.0"} + "cstruct-lwt" {>= "3.0.0"} + "sexplib" {> "113.00.00" } + "prometheus" + "result" + "rresult" + "mirage-flow-lwt" + "mirage-kv-lwt" + "mirage-channel-lwt" + "lwt" {>= "3.0.0"} + "base-unix" + "cmdliner" + "astring" + "named-pipe" {>= "0.4.0"} + "fmt" + "logs" {>= "0.5.0"} + "win-error" + "ppx_deriving" {build} + "ppx_sexp_conv" {build} + "ppx_tools" {build} + "alcotest" {test & >= "0.4.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/protocol-9p-unix.0.11.2/url b/repo/win32/packages/upstream/protocol-9p-unix.0.11.2/url new file mode 100644 index 000000000..a91e34b80 --- /dev/null +++ b/repo/win32/packages/upstream/protocol-9p-unix.0.11.2/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-9p/releases/download/v0.11.2/protocol-9p-0.11.2.tbz" +checksum: "013a43f71feead2b7200b308487d5702" diff --git a/repo/win32/packages/upstream/protocol-9p.0.8.0/descr b/repo/win32/packages/upstream/protocol-9p.0.11.2/descr similarity index 92% rename from repo/win32/packages/upstream/protocol-9p.0.8.0/descr rename to repo/win32/packages/upstream/protocol-9p.0.11.2/descr index 709fb5dbd..ff183e67a 100644 --- a/repo/win32/packages/upstream/protocol-9p.0.8.0/descr +++ b/repo/win32/packages/upstream/protocol-9p.0.11.2/descr @@ -1,4 +1,4 @@ -An implementation of the 9p protocol in pure OCaml +An implementation of the 9P protocol in pure OCaml [![Build Status](https://travis-ci.org/mirage/ocaml-9p.png?branch=master)](https://travis-ci.org/mirage/ocaml-9p) [![Coverage Status](https://coveralls.io/repos/mirage/ocaml-9p/badge.png?branch=master)](https://coveralls.io/r/mirage/ocaml-9p?branch=master) @@ -23,4 +23,4 @@ drwxrwxr-x ? root 50 4096 Apr 10 2014 local -rwxrwxrwx ? root root 4 May 10 2014 run ``` -This library supports the [9P2000.u extension](http://ericvh.github.io/9p-rfc/rfc9p2000.u.html) \ No newline at end of file +This library supports the [9P2000.u extension](http://ericvh.github.io/9p-rfc/rfc9p2000.u.html) diff --git a/repo/win32/packages/upstream/protocol-9p.0.11.2/opam b/repo/win32/packages/upstream/protocol-9p.0.11.2/opam new file mode 100644 index 000000000..6380efb24 --- /dev/null +++ b/repo/win32/packages/upstream/protocol-9p.0.11.2/opam @@ -0,0 +1,38 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: [ "David Scott" "David Sheets" "Thomas Leonard" ] +license: "ISC" +homepage: "https://github.com/mirage/ocaml-9p" +dev-repo: "https://github.com/mirage/ocaml-9p.git" +bug-reports: "https://github.com/mirage/ocaml-9p/issues" +doc: "https://mirage.github.io/ocaml-9p/" + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] +depends: [ + "jbuilder" {build & >="1.0+beta10"} + "base-bytes" + "cstruct" {>= "3.0.0"} + "cstruct-lwt" {>= "3.0.0"} + "sexplib" {> "113.00.00" } + "result" + "rresult" + "mirage-flow-lwt" + "mirage-kv-lwt" + "mirage-channel-lwt" + "lwt" {>= "3.0.0"} + "base-unix" + "cmdliner" + "astring" + "named-pipe" {>= "0.4.0"} + "fmt" + "logs" {>= "0.5.0"} + "win-error" + "ppx_deriving" {build} + "ppx_sexp_conv" {build} + "ppx_tools" {build} + "alcotest" {test & >= "0.4.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/protocol-9p.0.11.2/url b/repo/win32/packages/upstream/protocol-9p.0.11.2/url new file mode 100644 index 000000000..a91e34b80 --- /dev/null +++ b/repo/win32/packages/upstream/protocol-9p.0.11.2/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-9p/releases/download/v0.11.2/protocol-9p-0.11.2.tbz" +checksum: "013a43f71feead2b7200b308487d5702" diff --git a/repo/win32/packages/upstream/protocol-9p.0.8.0/url b/repo/win32/packages/upstream/protocol-9p.0.8.0/url deleted file mode 100644 index ff7baa574..000000000 --- a/repo/win32/packages/upstream/protocol-9p.0.8.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-9p/releases/download/v0.8.0/protocol-9p-0.8.0.tbz" -checksum: "2576040bdd1fba3d9dc7249d5fd8d5b7" \ No newline at end of file diff --git a/repo/win32/packages/upstream/ptime.0.8.3/descr b/repo/win32/packages/upstream/ptime.0.8.3/descr new file mode 100644 index 000000000..f77827c8d --- /dev/null +++ b/repo/win32/packages/upstream/ptime.0.8.3/descr @@ -0,0 +1,20 @@ +POSIX time for OCaml + +Ptime has platform independent POSIX time support in pure OCaml. It +provides a type to represent a well-defined range of POSIX timestamps +with picosecond precision, conversion with date-time values, +conversion with [RFC 3339 timestamps][rfc3339] and pretty printing to a +human-readable, locale-independent representation. + +The additional Ptime_clock library provides access to a system POSIX +clock and to the system's current time zone offset. + +Ptime is not a calendar library. + +Ptime depends on the `result` compatibility package. Ptime_clock +depends on your system library. Ptime_clock's optional JavaScript +support depends on [js_of_ocaml][jsoo]. Ptime and its libraries are +distributed under the ISC license. + +[rfc3339]: http://tools.ietf.org/html/rfc3339 +[jsoo]: http://ocsigen.org/js_of_ocaml/ diff --git a/repo/win32/packages/upstream/ptime.0.8.3/opam b/repo/win32/packages/upstream/ptime.0.8.3/opam new file mode 100644 index 000000000..b34f28961 --- /dev/null +++ b/repo/win32/packages/upstream/ptime.0.8.3/opam @@ -0,0 +1,21 @@ +opam-version: "1.2" +maintainer: "Daniel Bünzli " +authors: ["Daniel Bünzli "] +homepage: "http://erratique.ch/software/ptime" +doc: "http://erratique.ch/software/ptime/doc" +dev-repo: "http://erratique.ch/repos/ptime.git" +bug-reports: "https://github.com/dbuenzli/ptime/issues" +tags: [ "time" "posix" "system" "org:erratique" ] +license: "ISC" +available: [ ocaml-version >= "4.01.0"] +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "result" +] +depopts: [ "js_of_ocaml" ] +build:[[ + "ocaml" "pkg/pkg.ml" "build" + "--pinned" "%{pinned}%" + "--with-js_of_ocaml" "%{js_of_ocaml:installed}%" ]] diff --git a/repo/win32/packages/upstream/ptime.0.8.3/url b/repo/win32/packages/upstream/ptime.0.8.3/url new file mode 100644 index 000000000..0043089e1 --- /dev/null +++ b/repo/win32/packages/upstream/ptime.0.8.3/url @@ -0,0 +1,2 @@ +archive: "http://erratique.ch/software/ptime/releases/ptime-0.8.3.tbz" +checksum: "bf84f6bfedce30349cffc9eb52ac7574" \ No newline at end of file diff --git a/repo/win32/packages/upstream/randomconv.0.1.0/descr b/repo/win32/packages/upstream/randomconv.0.1.0/descr new file mode 100644 index 000000000..0cb76a05a --- /dev/null +++ b/repo/win32/packages/upstream/randomconv.0.1.0/descr @@ -0,0 +1,5 @@ +Convert from random bytes to random native numbers + + +Given a function which produces random byte vectors, convert it to +a number of your choice (int32/int64/int/float). \ No newline at end of file diff --git a/repo/win32/packages/upstream/randomconv.0.1.0/opam b/repo/win32/packages/upstream/randomconv.0.1.0/opam new file mode 100644 index 000000000..541ff2c44 --- /dev/null +++ b/repo/win32/packages/upstream/randomconv.0.1.0/opam @@ -0,0 +1,19 @@ +opam-version: "1.2" +maintainer: "Hannes Mehnert " +authors: ["Hannes Mehnert "] +homepage: "https://github.com/hannesm/randomconv" +doc: "https://hannesm.github.io/randomconv/doc" +dev-repo: "https://github.com/hannesm/randomconv.git" +bug-reports: "https://github.com/hannesm/randomconv/issues" +license: "ISC" + +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "cstruct" {>= "1.9.0"} +] + +build: [ + [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" ] +] diff --git a/repo/win32/packages/upstream/randomconv.0.1.0/url b/repo/win32/packages/upstream/randomconv.0.1.0/url new file mode 100644 index 000000000..d5a8d7109 --- /dev/null +++ b/repo/win32/packages/upstream/randomconv.0.1.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/hannesm/randomconv/releases/download/0.1.0/randomconv-0.1.0.tbz" +checksum: "1551a69a7511de81f2ca6c3fe7d262c8" \ No newline at end of file diff --git a/repo/win32/packages/upstream/sexplib.v0.9.1/url b/repo/win32/packages/upstream/sexplib.v0.9.1/url deleted file mode 100644 index 96121399d..000000000 --- a/repo/win32/packages/upstream/sexplib.v0.9.1/url +++ /dev/null @@ -1,2 +0,0 @@ -src: "https://github.com/janestreet/sexplib/archive/v0.9.1.tar.gz" -checksum: "2e820b5de70ba33883c936cd7af317fb" diff --git a/repo/win32/packages/upstream/sexplib.v0.9.1/descr b/repo/win32/packages/upstream/sexplib.v0.9.2/descr similarity index 100% rename from repo/win32/packages/upstream/sexplib.v0.9.1/descr rename to repo/win32/packages/upstream/sexplib.v0.9.2/descr diff --git a/repo/win32/packages/upstream/sexplib.v0.9.1/files/winconfigure b/repo/win32/packages/upstream/sexplib.v0.9.2/files/winconfigure similarity index 87% rename from repo/win32/packages/upstream/sexplib.v0.9.1/files/winconfigure rename to repo/win32/packages/upstream/sexplib.v0.9.2/files/winconfigure index c92d49543..3b665e23b 100755 --- a/repo/win32/packages/upstream/sexplib.v0.9.1/files/winconfigure +++ b/repo/win32/packages/upstream/sexplib.v0.9.2/files/winconfigure @@ -1,6 +1,6 @@ #!/bin/sh -OS_SYSTEM="$(ocamlc -config | awk '/^system:/ {print $2}')" +OS_SYSTEM="$(ocamlc -config | awk -F '[\t\r ]+' '/^system:/ {print $2}')" case "$OS_SYSTEM" in win*) diff --git a/repo/win32/packages/upstream/sexplib.v0.9.1/opam b/repo/win32/packages/upstream/sexplib.v0.9.2/opam similarity index 77% rename from repo/win32/packages/upstream/sexplib.v0.9.1/opam rename to repo/win32/packages/upstream/sexplib.v0.9.2/opam index 7256a53cb..7e30c4b33 100644 --- a/repo/win32/packages/upstream/sexplib.v0.9.1/opam +++ b/repo/win32/packages/upstream/sexplib.v0.9.2/opam @@ -7,9 +7,11 @@ dev-repo: "https://github.com/janestreet/sexplib.git" license: "Apache-2.0" build: [ ["sh" "winconfigure"] {os = "win32"} - ["jbuilder" "build" "--only-packages" "sexplib" "--root" "." "-j" jobs "@install"] + ["jbuilder" "build" "-p" name "-j" jobs] ] depends: [ - "jbuilder" {build & >= "1.0+beta2"} + "jbuilder" {build & >= "1.0+beta10"} + "num" ] + available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/sexplib.v0.9.2/url b/repo/win32/packages/upstream/sexplib.v0.9.2/url new file mode 100644 index 000000000..ac4e8f42e --- /dev/null +++ b/repo/win32/packages/upstream/sexplib.v0.9.2/url @@ -0,0 +1,2 @@ +http: "https://github.com/janestreet/sexplib/archive/v0.9.2.tar.gz" +checksum: "7d70f28d235a0ce28a57a5a2bf856326" diff --git a/repo/win32/packages/upstream/shared-memory-ring.1.3.0/descr b/repo/win32/packages/upstream/shared-memory-ring.1.3.0/descr deleted file mode 100644 index d6a9c6424..000000000 --- a/repo/win32/packages/upstream/shared-memory-ring.1.3.0/descr +++ /dev/null @@ -1,3 +0,0 @@ -Shared memory rings for RPC and bytestream communications. -Includes concrete implementations of Xen console and Xenstore -rings. diff --git a/repo/win32/packages/upstream/shared-memory-ring.1.3.0/findlib b/repo/win32/packages/upstream/shared-memory-ring.1.3.0/findlib deleted file mode 100644 index 8144a99ad..000000000 --- a/repo/win32/packages/upstream/shared-memory-ring.1.3.0/findlib +++ /dev/null @@ -1 +0,0 @@ -shared-memory-ring diff --git a/repo/win32/packages/upstream/shared-memory-ring.1.3.0/opam b/repo/win32/packages/upstream/shared-memory-ring.1.3.0/opam deleted file mode 100644 index 7935dc75b..000000000 --- a/repo/win32/packages/upstream/shared-memory-ring.1.3.0/opam +++ /dev/null @@ -1,26 +0,0 @@ -opam-version: "1.2" -maintainer: "dave@recoil.org" -authors: ["Anil Madhavapeddy" "David Scott"] -homepage: "https://github.com/mirage/shared-memory-ring" -bug-reports: "https://github.com/mirage/shared-memory-ring/issues" -dev-repo: "https://github.com/mirage/shared-memory-ring.git" -license: "ISC" -tags: [ "org:mirage" "org:xapi-project"] - -build: [make "CONFIGUREFLAGS=--disable-tests" "all"] -build-test: [ - [make "clean"] - [make "CONFIGUREFLAGS=--enable-tests" "test"] -] -install: [make "install"] -remove: ["ocamlfind" "remove" "shared-memory-ring"] - -depends: [ - "cstruct" {>= "1.9.0"} - "ppx_tools" - "lwt" - "ocamlfind" - "mirage-profile" - "ounit" {test} -] -available: [ ocaml-version >= "4.02.0" ] diff --git a/repo/win32/packages/upstream/shared-memory-ring.1.3.0/url b/repo/win32/packages/upstream/shared-memory-ring.1.3.0/url deleted file mode 100644 index 17f909704..000000000 --- a/repo/win32/packages/upstream/shared-memory-ring.1.3.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/shared-memory-ring/archive/v1.3.0.tar.gz" -checksum: "63821f20ad503ec81b27213806afb082" diff --git a/repo/win32/packages/upstream/tar-format.0.6.1/descr b/repo/win32/packages/upstream/tar-format.0.6.1/descr deleted file mode 100644 index 4a3f873a8..000000000 --- a/repo/win32/packages/upstream/tar-format.0.6.1/descr +++ /dev/null @@ -1,8 +0,0 @@ -A pure OCaml library to read and write tar files - -This allows easy processing of tar-formatted data: creating archives, -listing archives and extracting archives. Together with camlzip, it can -directly process compressed .tar.gz archives. - -A mirage interface is also provided which exposes a tar-formatted block -device as a read-only key=value store. diff --git a/repo/win32/packages/upstream/tar-format.0.6.1/findlib b/repo/win32/packages/upstream/tar-format.0.6.1/findlib deleted file mode 100644 index 42f2fb726..000000000 --- a/repo/win32/packages/upstream/tar-format.0.6.1/findlib +++ /dev/null @@ -1 +0,0 @@ -tar diff --git a/repo/win32/packages/upstream/tar-format.0.6.1/opam b/repo/win32/packages/upstream/tar-format.0.6.1/opam deleted file mode 100644 index c0bdf730e..000000000 --- a/repo/win32/packages/upstream/tar-format.0.6.1/opam +++ /dev/null @@ -1,37 +0,0 @@ -opam-version: "1.2" -maintainer: "dave@recoil.org" -authors: [ "Dave Scott" "Thomas Gazagnaire" "David Allsopp" ] -tags: ["org:xapi-project" "org:mirage"] -homepage: "https://github.com/mirage/ocaml-tar" -bug-reports: "https://github.com/mirage/ocaml-tar/issues" -dev-repo: "https://github.com/mirage/ocaml-tar.git" - -build: [ - ["ocaml" "setup.ml" "-configure" - "--prefix" prefix - "--%{lwt:enable}%-lwtunix" - "--%{mirage-types-lwt:enable}%-mirage" ] - ["ocaml" "setup.ml" "-build"] -] -build-test: [ - ["ocaml" "setup.ml" "-configure" - "--enable-tests" "--enable-lwtunix" "--enable-mirage"] - [make "test"] -] -install: ["ocaml" "setup.ml" "-install"] -remove: ["ocamlfind" "remove" "tar"] - -depends: [ - "ocamlfind" - "cstruct" {>= "1.9.0"} - "ppx_tools" {build} - "re" - "result" - "cmdliner" - "ounit" {test} - "mirage-block-unix" {test} - "lwt" {test} - "mirage-types-lwt" {test} -] -depopts: ["lwt" "mirage-types-lwt"] -available: [ ocaml-version >= "4.01.0" ] diff --git a/repo/win32/packages/upstream/tar-format.0.6.1/url b/repo/win32/packages/upstream/tar-format.0.6.1/url deleted file mode 100644 index de007e9ec..000000000 --- a/repo/win32/packages/upstream/tar-format.0.6.1/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-tar/archive/v0.6.1.tar.gz" -checksum: "bc6475a9ece5d914213e1d2275667418" diff --git a/repo/win32/packages/upstream/tar.0.8.0/descr b/repo/win32/packages/upstream/tar.0.8.0/descr new file mode 100644 index 000000000..cde18a33a --- /dev/null +++ b/repo/win32/packages/upstream/tar.0.8.0/descr @@ -0,0 +1,6 @@ +Decode and encode tar formatted data + +tar-format is a simple library to read and write tar formatted data with an emphasis on +streaming. + +This is pure OCaml code, no C bindings. diff --git a/repo/win32/packages/upstream/tar.0.8.0/opam b/repo/win32/packages/upstream/tar.0.8.0/opam new file mode 100644 index 000000000..a25e8aee5 --- /dev/null +++ b/repo/win32/packages/upstream/tar.0.8.0/opam @@ -0,0 +1,27 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: [ "Dave Scott" "Thomas Gazagnaire" "David Allsopp" ] +tags: ["org:xapi-project" "org:mirage"] +homepage: "https://github.com/mirage/ocaml-tar" +bug-reports: "https://github.com/mirage/ocaml-tar/issues" +dev-repo: "https://github.com/mirage/ocaml-tar.git" +doc: "https://mirage.github.io/ocaml-tar/" + +build: [ + [ "jbuilder" "build" "--only-packages=tar" ] +] + +build-test: [ + [ "jbuilder" "runtest" ] +] + +depends: [ + "jbuilder" {build} + "ocamlfind" {build} + "ppx_tools" {build} + "ppx_cstruct" {build} + "cstruct" {>= "1.9.0"} + "re" + "result" +] +available: [ ocaml-version >= "4.01.0" ] diff --git a/repo/win32/packages/upstream/tar.0.8.0/url b/repo/win32/packages/upstream/tar.0.8.0/url new file mode 100644 index 000000000..413f05989 --- /dev/null +++ b/repo/win32/packages/upstream/tar.0.8.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-tar/archive/v0.8.0.tar.gz" +checksum: "bf7aefc14b7454a6e73be2fb47e6edd8" diff --git a/repo/win32/packages/upstream/tls.0.8.0/descr b/repo/win32/packages/upstream/tls.0.8.0/descr new file mode 100644 index 000000000..6b52ac617 --- /dev/null +++ b/repo/win32/packages/upstream/tls.0.8.0/descr @@ -0,0 +1,15 @@ +Transport Layer Security purely in OCaml + +Transport Layer Security (TLS) is probably the most widely deployed security +protocol on the Internet. It provides communication privacy to prevent +eavesdropping, tampering, and message forgery. Furthermore, it optionally +provides authentication of the involved endpoints. TLS is commonly deployed for +securing web services ([HTTPS](http://tools.ietf.org/html/rfc2818)), emails, +virtual private networks, and wireless networks. + +TLS uses asymmetric cryptography to exchange a symmetric key, and optionally +authenticate (using X.509) either or both endpoints. It provides algorithmic +agility, which means that the key exchange method, symmetric encryption +algorithm, and hash algorithm are negotiated. + +Read [further](https://nqsb.io) and our [Usenix Security 2015 paper](https://usenix15.nqsb.io). \ No newline at end of file diff --git a/repo/win32/packages/upstream/tls.0.8.0/opam b/repo/win32/packages/upstream/tls.0.8.0/opam new file mode 100644 index 000000000..885801c41 --- /dev/null +++ b/repo/win32/packages/upstream/tls.0.8.0/opam @@ -0,0 +1,55 @@ +opam-version: "1.2" +name: "tls" +homepage: "https://github.com/mirleft/ocaml-tls" +dev-repo: "https://github.com/mirleft/ocaml-tls.git" +bug-reports: "https://github.com/mirleft/ocaml-tls/issues" +doc: "https://mirleft.github.io/ocaml-tls/doc" +author: ["David Kaloper " "Hannes Mehnert "] +maintainer: ["Hannes Mehnert " "David Kaloper "] +license: "BSD2" + +build: [ + [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" + "--tests" "false" + "--with-lwt" "%{lwt:installed}%" + "--with-mirage" "%{mirage-flow-lwt+mirage-kv-lwt+mirage-clock:installed}%" ] +] +build-test: [ + [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" + "--tests" "true" + "--with-lwt" "%{lwt:installed}%" + "--with-mirage" "%{mirage-flow-lwt+mirage-kv-lwt+mirage-clock:installed}%" ] + ["ocaml" "pkg/pkg.ml" "test"] +] + +depends: [ + "ocamlfind" {build} + "ocamlbuild" {build} + "topkg" {build} + "ppx_tools" {build} + "ppx_deriving" {build} + "ppx_sexp_conv" {build} + "result" + "ppx_cstruct" {build} + "cstruct" {>= "1.9.0"} + "sexplib" + "nocrypto" {>= "0.5.4"} + "x509" {>= "0.5.0"} + "ounit" {test} + "ptime" {>= "0.8.1"} (* only necessary for mirage subpackage, but unable to express this here *) +] +depopts: [ + "lwt" + "mirage-flow-lwt" + "mirage-kv-lwt" + "mirage-clock" +] +conflicts: [ + "lwt" {<"2.4.8"} + "mirage-net-xen" {<"1.3.0"} + "mirage-types" {<"3.0.0"} + "sexplib" {= "v0.9.0"} +] + +tags: [ "org:mirage"] +available: [ ocaml-version >= "4.02.2" ] diff --git a/repo/win32/packages/upstream/tls.0.8.0/url b/repo/win32/packages/upstream/tls.0.8.0/url new file mode 100644 index 000000000..2e5aa559a --- /dev/null +++ b/repo/win32/packages/upstream/tls.0.8.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirleft/ocaml-tls/releases/download/0.8.0/tls-0.8.0.tbz" +checksum: "c81f72d53d0551a3d792d275a1ea095f" diff --git a/repo/win32/packages/upstream/uchar.0.0.1/descr b/repo/win32/packages/upstream/uchar.0.0.2/descr similarity index 100% rename from repo/win32/packages/upstream/uchar.0.0.1/descr rename to repo/win32/packages/upstream/uchar.0.0.2/descr diff --git a/repo/win32/packages/upstream/uchar.0.0.1/opam b/repo/win32/packages/upstream/uchar.0.0.2/opam similarity index 94% rename from repo/win32/packages/upstream/uchar.0.0.1/opam rename to repo/win32/packages/upstream/uchar.0.0.2/opam index 57db6a012..d73f08164 100644 --- a/repo/win32/packages/upstream/uchar.0.0.1/opam +++ b/repo/win32/packages/upstream/uchar.0.0.2/opam @@ -8,12 +8,10 @@ bug-reports: "https://github.com/ocaml/uchar/issues" tags: [ "text" "character" "unicode" "compatibility" "org:ocaml.org" ] license: "typeof OCaml system" available: [ ocaml-version >= "3.12.0" ] +depends: [ "ocamlbuild" {build} ] build: [ [ "ocaml" "pkg/git.ml" ] [ "ocaml" "pkg/build.ml" "native=%{ocaml-native}%" "native-dynlink=%{ocaml-native-dynlink}%"] ] -depends: [ - "ocamlbuild" {build} -] diff --git a/repo/win32/packages/upstream/uchar.0.0.1/url b/repo/win32/packages/upstream/uchar.0.0.2/url similarity index 50% rename from repo/win32/packages/upstream/uchar.0.0.1/url rename to repo/win32/packages/upstream/uchar.0.0.2/url index dcf0c3509..76614df6d 100644 --- a/repo/win32/packages/upstream/uchar.0.0.1/url +++ b/repo/win32/packages/upstream/uchar.0.0.2/url @@ -1,2 +1,2 @@ -archive: "https://github.com/ocaml/uchar/releases/download/v0.0.1/uchar-0.0.1.tbz" -checksum: "3a7e5de4c4f7f25f55d50693f92f1960" \ No newline at end of file +archive: "https://github.com/ocaml/uchar/releases/download/v0.0.2/uchar-0.0.2.tbz" +checksum: "c9ba2c738d264c420c642f7bb1cf4a36" diff --git a/repo/win32/packages/upstream/uri.1.9.2/url b/repo/win32/packages/upstream/uri.1.9.2/url deleted file mode 100644 index 29c191dce..000000000 --- a/repo/win32/packages/upstream/uri.1.9.2/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-uri/archive/v1.9.2.tar.gz" -checksum: "e6dd39352b1b501cb905ef7d198d38f0" diff --git a/repo/win32/packages/upstream/uri.1.9.2/descr b/repo/win32/packages/upstream/uri.1.9.4/descr similarity index 100% rename from repo/win32/packages/upstream/uri.1.9.2/descr rename to repo/win32/packages/upstream/uri.1.9.4/descr diff --git a/repo/darwin/packages/upstream/uri.1.9.2/opam b/repo/win32/packages/upstream/uri.1.9.4/opam similarity index 51% rename from repo/darwin/packages/upstream/uri.1.9.2/opam rename to repo/win32/packages/upstream/uri.1.9.4/opam index a57fcf9e5..2d37a864e 100644 --- a/repo/darwin/packages/upstream/uri.1.9.2/opam +++ b/repo/win32/packages/upstream/uri.1.9.4/opam @@ -16,30 +16,18 @@ tags: [ "org:xapi-project" ] build: [ - ["ocaml" "setup.ml" "-configure" "--prefix" prefix "--%{ounit:enable}%-tests"] - ["ocaml" "setup.ml" "-build"] -] -install: [ - ["ocaml" "setup.ml" "-install"] -] -build-test: [ - ["ocaml" "setup.ml" "-test"] -] -build-doc: [ - ["ocaml" "setup.ml" "-doc"] -] -remove: [ - ["ocamlfind" "remove" "uri"] + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] ] +build-test: [ "jbuilder" "runtest" "-p" name "-j" jobs ] depends: [ + "base-bytes" "ocamlfind" {build} + "jbuilder" {build & >="1.0+beta7"} + "ounit" {test & >= "1.0.2"} + "ppx_sexp_conv" {build & >= "v0.9.0"} "re" - "sexplib" {>= "109.53.00"} - "ppx_deriving" {build} - "ppx_sexp_conv" {>= "113.33.01"} - "base-bytes" + "sexplib" {>= "v0.9.0"} "stringext" {>= "1.4.0"} - "ounit" {test & >= "1.0.2"} - "ocamlbuild" {build} ] -available: [ ocaml-version >= "4.02.2" ] +available: [ ocaml-version >= "4.03.0" ] diff --git a/repo/win32/packages/upstream/uri.1.9.4/url b/repo/win32/packages/upstream/uri.1.9.4/url new file mode 100644 index 000000000..4f590885d --- /dev/null +++ b/repo/win32/packages/upstream/uri.1.9.4/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/ocaml-uri/releases/download/v1.9.4/uri-1.9.4.tbz" +checksum: "3dae904cb930fbbb550f26babbf17c2f" diff --git a/repo/win32/packages/upstream/uuidm.0.9.6/opam b/repo/win32/packages/upstream/uuidm.0.9.6/opam index 076480329..ea5d4ef09 100644 --- a/repo/win32/packages/upstream/uuidm.0.9.6/opam +++ b/repo/win32/packages/upstream/uuidm.0.9.6/opam @@ -16,6 +16,7 @@ depends: [ depopts: [ "cmdliner" ] +conflicts: [ "cmdliner" {< "0.9.8"} ] build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" diff --git a/repo/win32/packages/upstream/uwt.0.2.0/url b/repo/win32/packages/upstream/uwt.0.2.0/url deleted file mode 100644 index 09b2e0380..000000000 --- a/repo/win32/packages/upstream/uwt.0.2.0/url +++ /dev/null @@ -1,3 +0,0 @@ -http: - "https://github.com/fdopen/uwt/releases/download/0.2.0/uwt-0.2.0.tar.gz" -checksum: "b19c38e43593936028a20c22363e56eb" diff --git a/repo/win32/packages/upstream/uwt.0.2.0/descr b/repo/win32/packages/upstream/uwt.0.2.1/descr similarity index 100% rename from repo/win32/packages/upstream/uwt.0.2.0/descr rename to repo/win32/packages/upstream/uwt.0.2.1/descr diff --git a/repo/win32/packages/upstream/uwt.0.2.0/opam b/repo/win32/packages/upstream/uwt.0.2.1/opam similarity index 100% rename from repo/win32/packages/upstream/uwt.0.2.0/opam rename to repo/win32/packages/upstream/uwt.0.2.1/opam diff --git a/repo/win32/packages/upstream/uwt.0.2.1/url b/repo/win32/packages/upstream/uwt.0.2.1/url new file mode 100644 index 000000000..fdc465554 --- /dev/null +++ b/repo/win32/packages/upstream/uwt.0.2.1/url @@ -0,0 +1,3 @@ +http: + "https://github.com/fdopen/uwt/releases/download/0.2.1/uwt-0.2.1.tar.gz" +checksum: "8353f6a0475d8c614efc8e2868297653" diff --git a/repo/win32/packages/upstream/vchan.3.0.0/descr b/repo/win32/packages/upstream/vchan.3.0.0/descr new file mode 100644 index 000000000..c79c90334 --- /dev/null +++ b/repo/win32/packages/upstream/vchan.3.0.0/descr @@ -0,0 +1,4 @@ +Xen Vchan implementation +Vchan is a high performance inter-domain communications protocol using +shared memory. This implementation runs in both userspace and +kernelspace using Mirage. diff --git a/repo/win32/packages/upstream/vchan.3.0.0/opam b/repo/win32/packages/upstream/vchan.3.0.0/opam new file mode 100644 index 000000000..3829a9617 --- /dev/null +++ b/repo/win32/packages/upstream/vchan.3.0.0/opam @@ -0,0 +1,37 @@ +opam-version: "1.2" +maintainer: "jonathan.ludlam@eu.citrix.com" +authors: [ + "Vincent Bernardoff" + "Jon Ludlam" + "David Scott" +] +homepage: "http://github.com/mirage/ocaml-vchan" +bug-reports: "http://github.com/mirage/ocaml-vchan/issues" +dev-repo: "http://github.com/mirage/ocaml-vchan.git" +doc: "http://mirage.github.io/ocaml-vchan" +license: "ISC" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "ocamlfind" {build} + "jbuilder" {build & >="1.0+beta9"} + "lwt" {>= "2.5.0"} + "cstruct" {>= "3.0.0"} + "ppx_tools" {build} + "ppx_sexp_conv" {build & >="v0.9"} + "ppx_cstruct" {build} + "io-page" + "mirage-flow-lwt" {>= "1.0.0"} + "xenstore" {>= "1.2.2"} + "xenstore_transport" + "sexplib" + "cmdliner" + "result" + "ounit" {test} +] +available: [ocaml-version >= "4.03.0"] +tags: "org:mirage" diff --git a/repo/win32/packages/upstream/vchan.3.0.0/url b/repo/win32/packages/upstream/vchan.3.0.0/url new file mode 100644 index 000000000..21a38a30f --- /dev/null +++ b/repo/win32/packages/upstream/vchan.3.0.0/url @@ -0,0 +1,2 @@ +http: "https://github.com/mirage/ocaml-vchan/releases/download/3.0.0/vchan-3.0.0.tbz" +checksum: "8be9a2d7df23fdf8983daecef3454b5d" diff --git a/repo/win32/packages/upstream/win-error.0.2/findlib b/repo/win32/packages/upstream/win-error.0.2/findlib deleted file mode 100644 index 8532b8401..000000000 --- a/repo/win32/packages/upstream/win-error.0.2/findlib +++ /dev/null @@ -1 +0,0 @@ -win-error diff --git a/repo/win32/packages/upstream/win-eventlog.0.1/findlib b/repo/win32/packages/upstream/win-eventlog.0.1/findlib deleted file mode 100644 index 77b8f5b70..000000000 --- a/repo/win32/packages/upstream/win-eventlog.0.1/findlib +++ /dev/null @@ -1 +0,0 @@ -win-eventlog diff --git a/repo/win32/packages/upstream/x509.0.5.3/descr b/repo/win32/packages/upstream/x509.0.5.3/descr new file mode 100644 index 000000000..e8211a6c6 --- /dev/null +++ b/repo/win32/packages/upstream/x509.0.5.3/descr @@ -0,0 +1,4 @@ +X.509 certificate (RFC5280) library + +Library for X.509 certificate parsing, serialization and authentication. +Supports path validation (RFC5280) and hostname verification (RFC6125). diff --git a/repo/win32/packages/upstream/x509.0.5.3/opam b/repo/win32/packages/upstream/x509.0.5.3/opam new file mode 100644 index 000000000..67b9333e4 --- /dev/null +++ b/repo/win32/packages/upstream/x509.0.5.3/opam @@ -0,0 +1,40 @@ +opam-version: "1.2" +name: "x509" +homepage: "https://github.com/mirleft/ocaml-x509" +dev-repo: "https://github.com/mirleft/ocaml-x509.git" +bug-reports: "https://github.com/mirleft/ocaml-x509/issues" +authors: [ "David Kaloper " "Hannes Mehnert " ] +maintainer: [ "Hannes Mehnert " "David Kaloper " ] +license: "BSD2" + +build: [ + [ "./configure" "--prefix" prefix ] + [ make ] +] +install: [ make "install" ] +remove: [ "ocamlfind" "remove" "x509" ] + +depends: [ + "ocamlfind" {build} + "oasis" {build} + "ocamlbuild" {build} + "ppx_deriving" {build} + "ppx_sexp_conv" {build} + "cstruct" {>= "1.6.0"} + "sexplib" + "asn1-combinators" {>= "0.1.1"} + "nocrypto" {>= "0.5.3"} + "base-bytes" + "ounit" {test} + "cstruct-unix" {test} +] +conflicts: [ + "sexplib" {= "v0.9.0"} +] +build-test: [ + [ "./configure" "--%{ounit:enable}%-tests" ] + [ make "test" ] +] + +tags: [ "org:mirage" ] +available: [ ocaml-version >= "4.02.2" ] diff --git a/repo/win32/packages/upstream/x509.0.5.3/url b/repo/win32/packages/upstream/x509.0.5.3/url new file mode 100644 index 000000000..4e2ef2e42 --- /dev/null +++ b/repo/win32/packages/upstream/x509.0.5.3/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirleft/ocaml-x509/archive/0.5.3.tar.gz" +checksum: "8efe2bca5a80f7d35e730980fbaebc5c" diff --git a/repo/win32/packages/upstream/xenstore.1.4.0/descr b/repo/win32/packages/upstream/xenstore.1.4.0/descr new file mode 100644 index 000000000..80cdcd00e --- /dev/null +++ b/repo/win32/packages/upstream/xenstore.1.4.0/descr @@ -0,0 +1 @@ +Xenstore protocol clients and server diff --git a/repo/win32/packages/upstream/xenstore.1.4.0/opam b/repo/win32/packages/upstream/xenstore.1.4.0/opam new file mode 100644 index 000000000..4d4b1cabe --- /dev/null +++ b/repo/win32/packages/upstream/xenstore.1.4.0/opam @@ -0,0 +1,29 @@ +opam-version: "1.2" +maintainer: "dave@recoil.org" +authors: [ + "Vincent Hanquez" + "Thomas Gazagnaire" + "Dave Scott" + "Anil Madhavapeddy" + "Vincent Bernardoff" +] +homepage: "https://github.com/mirage/ocaml-xenstore" +bug-reports: "https://github.com/mirage/ocaml-xenstore/issues" +dev-repo: "https://github.com/mirage/ocaml-xenstore.git" +doc: "https://mirage.github.io/ocaml-xenstore" + +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "ocamlfind" {build} + "jbuilder" {build & >="1.0+beta9"} + "cstruct" {>= "2.4.0"} + "ppx_cstruct" {build} + "ppx_tools" {build} + "lwt" + "ounit" {build} +] +available: [ ocaml-version >= "4.02.0" ] diff --git a/repo/win32/packages/upstream/xenstore.1.4.0/url b/repo/win32/packages/upstream/xenstore.1.4.0/url new file mode 100644 index 000000000..491c9d972 --- /dev/null +++ b/repo/win32/packages/upstream/xenstore.1.4.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-xenstore/releases/download/1.4.0/xenstore-1.4.0.tbz" +checksum: "28ccfd531f6b4db58e6ed476162d0746" diff --git a/repo/win32/packages/upstream/xenstore_transport.0.9.6/descr b/repo/win32/packages/upstream/xenstore_transport.0.9.6/descr new file mode 100644 index 000000000..33dd1f168 --- /dev/null +++ b/repo/win32/packages/upstream/xenstore_transport.0.9.6/descr @@ -0,0 +1,6 @@ +Low-level libraries for connecting to a xenstore service on a xen host. + +These libraries contain the IO functions for communicating with a +xenstore service on a xen host. One subpackage deals with regular Unix +threads and another deals with Lwt co-operative threads. + diff --git a/repo/win32/packages/upstream/xenstore_transport.0.9.6/opam b/repo/win32/packages/upstream/xenstore_transport.0.9.6/opam new file mode 100644 index 000000000..1d912af99 --- /dev/null +++ b/repo/win32/packages/upstream/xenstore_transport.0.9.6/opam @@ -0,0 +1,35 @@ +opam-version: "1.2" +authors: [ + "Christian Lindig" + "David Scott" + "Euan Harris" + "John Else" + "Jon Ludlam" + "Jonathan Davies" + "Marcello Seri" + "Si Beaumont" + "Thomas Sanders" + "Vincent Bernardoff" +] +maintainer: "dave@recoil.org" +homepage: "http://github.com/xapi-project/ocaml-xenstore-clients" +bug-reports: "http://github.com/xapi-project/ocaml-xenstore-clients/issues" +dev-repo: "http://github.com/xapi-project/ocaml-xenstore-clients.git" +doc: "http://xapi-project.github.io/ocaml-xenstore-clients" +license: "LGPL" + +tags: [ + "org:mirage" + "org:xapi-project" +] +build: [ + [ "jbuilder" "subst"] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +depends: [ + "ocamlfind" {build} + "jbuilder" {build & >="1.0+beta9"} + "lwt" + "xenstore" {> "1.2.1"} +] diff --git a/repo/win32/packages/upstream/xenstore_transport.0.9.6/url b/repo/win32/packages/upstream/xenstore_transport.0.9.6/url new file mode 100644 index 000000000..9a3cda369 --- /dev/null +++ b/repo/win32/packages/upstream/xenstore_transport.0.9.6/url @@ -0,0 +1,2 @@ +archive: "https://github.com/xapi-project/ocaml-xenstore-clients/archive/0.9.6.tar.gz" +checksum: "36412ce160ee14c61a1ef782de12f16e" diff --git a/repo/win32/packages/upstream/zarith.1.5/descr b/repo/win32/packages/upstream/zarith.1.5/descr new file mode 100644 index 000000000..0eb288aba --- /dev/null +++ b/repo/win32/packages/upstream/zarith.1.5/descr @@ -0,0 +1,5 @@ +Implements arithmetic and logical operations over arbitrary-precision integers +The Zarith library implements arithmetic and logical operations over +arbitrary-precision integers. It uses GMP to efficiently implement +arithmetic over big integers. Small integers are represented as Caml +unboxed integers, for speed and space economy. diff --git a/repo/win32/packages/upstream/zarith.1.5/files/Zarith-release-1.5.patch b/repo/win32/packages/upstream/zarith.1.5/files/Zarith-release-1.5.patch new file mode 100644 index 000000000..1a5f4d0c3 --- /dev/null +++ b/repo/win32/packages/upstream/zarith.1.5/files/Zarith-release-1.5.patch @@ -0,0 +1,236 @@ +--- ./configure ++++ ./configure +@@ -2,11 +2,11 @@ + + # configuration script + +-# This file is part of the Zarith library ++# This file is part of the Zarith library + # http://forge.ocamlcore.org/projects/zarith . + # It is distributed under LGPL 2 licensing, with static linking exception. + # See the LICENSE file included in the distribution. +-# ++# + # Copyright (c) 2010-2011 Antoine Miné, Abstraction project. + # Abstraction is part of the LIENS (Laboratoire d'Informatique de l'ENS), + # a joint laboratory by: +@@ -22,7 +22,24 @@ + gmp='auto' + perf='no' + +-ar='ar' ++#ar='ar' ++ar_help=$(ocamlc -config | tr -d '\015' | awk '/^system/ {print $$2}') ++case "$ar_help" in ++ *mingw64*) ++ if which x86_64-w64-mingw32-ar >/dev/null 2>&1 ; then ++ ar=x86_64-w64-mingw32-ar ++ fi ++ ;; ++ *mingw*) ++ if which i686-w64-mingw32-ar >/dev/null 2>&1 ; then ++ ar=i686-w64-mingw32-ar ++ fi ++ ;; ++ *) ++ ar='ar' ++ ;; ++esac ++ + ocaml='ocaml' + ocamlc='ocamlc' + ocamlopt='ocamlopt' +@@ -75,7 +92,7 @@ + # parse arguments + while : ; do + case "$1" in +- "") ++ "") + break;; + -installdir|--installdir) + installdir="$2" +@@ -186,7 +203,7 @@ + if test ! -x tmp.out; then r=0; fi + rm -f tmp.out + if test $r -eq 0; then echo "not found"; else echo "found"; fi +- return $r ++ return $r + } + + +@@ -204,13 +221,32 @@ + searchbinreq "$CC" + cc="$CC" + ccopt="$CFLAGS" +-elif ! searchbin 'gcc'; then ++else ++ cc= ++ case "$system_help" in ++ *mingw64*) ++ if which x86_64-w64-mingw32-gcc >/dev/null 2>&1 ; then ++ cc=x86_64-w64-mingw32-gcc ++ ccopt="-O3 -Wall -Wextra $CFLAGS" ++ fi ++ ;; ++ *mingw*) ++ if which i686-w64-mingw32-gcc >/dev/null 2>&1 ; then ++ cc=i686-w64-mingw32-gcc ++ ccopt="-O3 -Wall -Wextra $CFLAGS" ++ fi ++ ;; ++ esac ++ if [ -z "$cc" ]; then ++ if ! searchbin 'gcc'; then + cc='gcc' + ccopt="-O3 -Wall -Wextra $CFLAGS" +-else ++ else + searchbinreq 'cc' + cc='cc' + ccopt="-O3 -Wall -Wextra $CFLAGS" ++ fi ++ fi + fi + + # optional native-code generation +@@ -234,7 +270,7 @@ + + # directories + +-if test "$ocamllibdir" = "auto"; then ocamllibdir=`ocamlc -where`; fi ++if test "$ocamllibdir" = "auto"; then ocamllibdir=`ocamlc -where | tr -d '\r'`; fi + + # fails on Cygwin: + # if test ! -f "$ocamllibdir/caml/mlvalues.h" +@@ -258,10 +294,10 @@ + # installation method + + searchbin ocamlfind +-if test $? -eq 1 -a $ocamlfind != "no"; then ++if test $? -eq 1 -a $ocamlfind != "no"; then + instmeth='findlib' + if test "$installdir" = "auto" +- then installdir=`ocamlfind printconf destdir`; fi ++ then installdir=`ocamlfind printconf destdir | tr -d '\r'`; fi + else + searchbin install + if test $? -eq 1; then instmeth='install' +@@ -280,7 +316,7 @@ + + # auto-detect host + +-if test "x$host" = 'xauto'; then ++if test "x$host" = 'xauto'; then + searchbin uname + if test $? -eq 0; then host='none' + else host=`. ./config.guess` +@@ -298,7 +334,7 @@ + i486-*linux-gnu|i686-*linux-gnu|i486-kfreebsd-gnu) + ccdef="-DZ_ELF -DZ_DOT_LABEL_PREFIX $ccdef" + arch='i686';; +- i686-*cygwin) ++ i686-*cygwin|x86_64-*cygwin) + if test "x$wordsize" = "x64"; then + ccdef="-DZ_COFF $ccdef" + arch='x86_64_mingw64' +@@ -306,7 +342,7 @@ + ccdef="-DZ_UNDERSCORE_PREFIX -DZ_COFF $ccdef" + arch='i686' + fi +- ;; ++ ;; + i386-*darwin* | x86_64-*darwin*) + ccdef="-DZ_UNDERSCORE_PREFIX -DZ_MACOS $ccdef" + if test "x$wordsize" = "x64"; then +@@ -326,7 +362,7 @@ + ;; + none) + ;; +- *) ++ *) + echo "unknown host $host";; + esac + +@@ -341,7 +377,7 @@ + checkinc gmp.h + if test $? -eq 1; then + checklib gmp +- if test $? -eq 1; then ++ if test $? -eq 1; then + gmp='OK' + cclib="$cclib -lgmp" + ccdef="-DHAS_GMP $ccdef" +@@ -352,7 +388,7 @@ + checkinc mpir.h + if test $? -eq 1; then + checklib mpir +- if test $? -eq 1; then ++ if test $? -eq 1; then + gmp='OK' + cclib="$cclib -lmpir" + ccdef="-DHAS_MPIR $ccdef" +@@ -386,6 +422,20 @@ + ;; + esac + ++exec_suffix='' ++so_suffix='.so' ++systype=`uname -s` ++case "$systype" in ++ CYGWIN*) ++ exec_suffix='.exe' ++ so_suffix='.dll' ++ ;; ++ MINGW*) ++ exec_suffix='.exe' ++ so_suffix='.dll' ++ ;; ++esac ++ + # dump Makefile + + cat > Makefile <" +authors: "Xavier Leroy" +homepage: "https://github.com/ocaml/Zarith" +bug-reports: "https://github.com/ocaml/Zarith/issues" +dev-repo: "https://github.com/ocaml/Zarith.git" +build: [ + ["./configure"] { os != "openbsd" & os != "freebsd" & os != "darwin"} + ["sh" "-exc" "LDFLAGS=\"$LDFLAGS -L/usr/local/lib\" CFLAGS=\"$CFLAGS -I/usr/local/include\" ./configure"] { os = "openbsd" | os = "freebsd" } + ["sh" "-exc" "LDFLAGS=\"$LDFLAGS -L/opt/local/lib -L/usr/local/lib\" CFLAGS=\"$CFLAGS -I/opt/local/include -I/usr/local/include\" ./configure"] { os = "darwin" } + [make] +] +install: [ + [make "install"] +] +remove: ["ocamlfind" "remove" "zarith"] +depends: [ + "ocamlfind" + "conf-gmp" + "conf-perl" {build} +] +patches: "Zarith-release-1.5.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/zarith.1.5/url b/repo/win32/packages/upstream/zarith.1.5/url new file mode 100644 index 000000000..647addc57 --- /dev/null +++ b/repo/win32/packages/upstream/zarith.1.5/url @@ -0,0 +1,2 @@ +archive: "https://github.com/ocaml/Zarith/archive/release-1.5.tar.gz" +checksum: "2b037ad0e8145bf62979ea96e7a0ce24" From 59954c89b61508a442f9001453e1a4049ca92f5e Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Thu, 27 Jul 2017 13:11:18 +0200 Subject: [PATCH 04/32] Fix repo update scripts when no dev packages are present Signed-off-by: Thomas Gazagnaire --- repo/update-upstream.sh | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/repo/update-upstream.sh b/repo/update-upstream.sh index bb92c5374..68044524a 100755 --- a/repo/update-upstream.sh +++ b/repo/update-upstream.sh @@ -26,19 +26,26 @@ git clone --depth=1 ${OPAM_REPO} ${REPO_DIR_NAME} cd ${REPO_DIR_NAME} ## copy the dev/ and local/ packages in the repo -cp -LR "${TARGET_DIR}/packages/dev" packages/dev +[ -d "${TARGET_DIR}/packages/dev" ] && \ + cp -LR "${TARGET_DIR}/packages/dev" packages/dev +[ -d "${TARGET_DIR}/packages/dev" ] && \ + git add packages/dev + cp -LR "${TARGET_DIR}/packages/local" packages/local -git add packages/dev packages/local +git add packages/local + git commit -a -m "Adding local and dev packages" # Remove the upstream packages that are copied in /dev -for pkg in $(ls packages/dev); do - upstream="packages/${pkg%%.*}/${pkg}" - if [ -d "${upstream}" ]; then - rm -rf "${upstream}" - fi -done -git commit -a -m "Remove upstream source of dev packages" || echo "ok" +if [ -d packages/dev ]; then + for pkg in $(ls packages/dev); do + upstream="packages/${pkg%%.*}/${pkg}" + if [ -d "${upstream}" ]; then + rm -rf "${upstream}" + fi + done; + git commit -a -m "Remove upstream source of dev packages" || echo "ok" +fi ## Compute the list of packages needed From 089147ae88a1b25dac9634de4f3286c5187cac66 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Thu, 27 Jul 2017 13:32:25 +0200 Subject: [PATCH 05/32] repo: only commit what changed locally Signed-off-by: Thomas Gazagnaire --- repo/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repo/Makefile b/repo/Makefile index 920cbc7ec..e662a61bb 100644 --- a/repo/Makefile +++ b/repo/Makefile @@ -19,4 +19,4 @@ commit: $(MAKE) update-win git add win32/packages/upstream git add darwin/packages/upstream - git commit -a -s -m "AUTO: Update upstream packages" + git commit . -s -m "AUTO: Update upstream packages" From 6c482d71ba1430b6115673d98c0914f866fa5698 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Thu, 27 Jul 2017 13:50:09 +0200 Subject: [PATCH 06/32] Update to MirageOS 3 Signed-off-by: Thomas Gazagnaire --- src/bin/bind.ml | 61 ++--- src/bin/connect.ml | 15 +- src/bin/jbuild | 3 +- src/bin/main.ml | 27 ++- src/hostnet/arp.ml | 77 ++++--- src/hostnet/arp.mli | 7 +- src/hostnet/capture.ml | 51 ++--- src/hostnet/capture.mli | 3 +- src/hostnet/dhcp.ml | 78 ++++--- src/hostnet/dhcp.mli | 4 +- src/hostnet/filter.ml | 81 +++---- src/hostnet/filter.mli | 2 +- src/hostnet/forward.ml | 63 ++--- src/hostnet/forward.mli | 10 +- src/hostnet/host_lwt_unix.ml | 109 ++++----- src/hostnet/host_uwt.ml | 108 ++++----- src/hostnet/hostnet_dns.ml | 93 ++++---- src/hostnet/hostnet_dns.mli | 14 +- src/hostnet/hostnet_http.ml | 56 ++--- src/hostnet/hostnet_http.mli | 6 +- src/hostnet/hostnet_udp.ml | 34 +-- src/hostnet/hostnet_udp.mli | 8 +- src/hostnet/jbuild | 12 +- src/hostnet/mux.ml | 68 +++--- src/hostnet/mux.mli | 8 +- src/hostnet/sig.ml | 11 +- src/hostnet/slirp.ml | 422 +++++++++++++++++++--------------- src/hostnet/slirp.mli | 22 +- src/hostnet/vmnet.ml | 430 +++++++++++++++++------------------ src/hostnet/vmnet.mli | 5 +- src/ofs/active_config.ml | 6 +- src/ofs/active_config.mli | 2 +- src/ofs/active_list.ml | 38 +--- src/ofs/jbuild | 5 +- vpnkit.opam | 1 + 35 files changed, 967 insertions(+), 973 deletions(-) diff --git a/src/bin/bind.ml b/src/bin/bind.ml index 5ba9f392d..43d1c3db7 100644 --- a/src/bin/bind.ml +++ b/src/bin/bind.ml @@ -8,15 +8,28 @@ module Log = (val Logs.src_log src : Logs.LOG) open Lwt.Infix open Vmnet -let errorf fmt = Fmt.kstrf (fun e -> Lwt.return (`Error (`Msg e))) fmt -let error_of_failure f = - Lwt.catch f (fun e -> Lwt_result.fail (`Msg (Printexc.to_string e))) - let is_windows = Sys.os_type = "Win32" +let failf fmt = Fmt.kstrf (fun e -> Lwt_result.fail (`Msg e)) fmt + module Make(Socket: Sig.SOCKETS) = struct - module Channel = Channel.Make(Socket.Stream.Unix) + module Channel = Mirage_channel_lwt.Make(Socket.Stream.Unix) + + let err_eof = Lwt_result.fail (`Msg "error: got EOF") + let err_read e = failf "error while reading: %a" Channel.pp_error e + let err_flush e = failf "error while flushing: %a" Channel.pp_write_error e + + let with_read x f = + x >>= function + | Error e -> err_read e + | Ok `Eof -> err_eof + | Ok (`Data x) -> f x + + let with_flush x f = + x >>= function + | Error e -> err_flush e + | Ok () -> f () type t = { fd: Socket.Stream.Unix.flow; @@ -33,19 +46,15 @@ module Make(Socket: Sig.SOCKETS) = struct let of_fd fd = let buf = Cstruct.create Init.sizeof in let (_: Cstruct.t) = Init.marshal Init.default buf in - error_of_failure (fun () -> - let c = Channel.create fd in - Channel.write_buffer c buf; - Channel.flush c >>= fun () -> - Channel.read_exactly ~len:Init.sizeof c >>= fun bufs -> - let buf = Cstruct.concat bufs in - let open Lwt_result.Infix in - Lwt.return (Init.unmarshal buf) - >>= fun (init, _) -> - Log.info (fun f -> - f "Client.negotiate: received %s" (Init.to_string init)); - Lwt_result.return { fd; c } - ) + let c = Channel.create fd in + Channel.write_buffer c buf; + with_flush (Channel.flush c) @@ fun () -> + with_read (Channel.read_exactly ~len:Init.sizeof c) @@ fun bufs -> + let buf = Cstruct.concat bufs in + let init, _ = Init.unmarshal buf in + Log.info (fun f -> + f "Client.negotiate: received %s" (Init.to_string init)); + Lwt_result.return { fd; c } let bind_ipv4 t (ipv4, port, stream) = let buf = Cstruct.create Command.sizeof in @@ -53,12 +62,12 @@ module Make(Socket: Sig.SOCKETS) = struct Command.marshal (Command.Bind_ipv4(ipv4, port, stream)) buf in Channel.write_buffer t.c buf; - Channel.flush t.c >>= fun () -> + with_flush (Channel.flush t.c) @@ fun () -> let rawfd = Socket.Stream.Unix.unsafe_get_raw_fd t.fd in let result = String.make 8 '\000' in let n, _, fd = Fd_send_recv.recv_fd rawfd result 0 8 [] in - (if n <> 8 then errorf "Message only contained %d bytes" n else + (if n <> 8 then failf "Message only contained %d bytes" n else let buf = Cstruct.create 8 in Cstruct.blit_from_string result 0 buf 0 8; Log.debug (fun f -> @@ -67,15 +76,15 @@ module Make(Socket: Sig.SOCKETS) = struct f "received result bytes: %s which is %s" (String.escaped result) (Buffer.contents b)); match Cstruct.LE.get_uint64 buf 0 with - | 0L -> Lwt.return (`Ok fd) - | 48L -> errorf "EADDRINUSE" - | 49L -> errorf "EADDRNOTAVAIL" - | n -> errorf "Failed to bind: unrecognised errno: %Ld" n + | 0L -> Lwt_result.return fd + | 48L -> failf "EADDRINUSE" + | 49L -> failf "EADDRNOTAVAIL" + | n -> failf "Failed to bind: unrecognised errno: %Ld" n ) >>= function - | `Error x -> + | Error x -> Unix.close fd; Lwt_result.fail x - | `Ok x -> + | Ok x -> Lwt_result.return x (* This implementation is OSX-only *) diff --git a/src/bin/connect.ml b/src/bin/connect.ml index a919e1fb7..a36593b2e 100644 --- a/src/bin/connect.ml +++ b/src/bin/connect.ml @@ -30,16 +30,15 @@ module Make_unix(Host: Sig.HOST) = struct Cstruct.of_string (Printf.sprintf "00000003.%08lx\n" vsock_port) in write flow address >>= function - | `Ok () -> Lwt.return flow - | `Eof -> + | Ok () -> Lwt.return flow + | Error `Closed -> Log.err (fun f -> f "vsock connect write got Eof"); close flow >>= fun () -> Lwt.fail End_of_file - | `Error e -> - let msg = error_message e in - Log.err (fun f -> f "vsock connect write got %s" msg); + | Error e -> + Log.err (fun f -> f "vsock connect write got %a" pp_write_error e); close flow >>= fun () -> - Lwt.fail_with msg + Fmt.kstrf Lwt.fail_with "%a" pp_write_error e end module Make_hvsock(Host: Sig.HOST) = struct @@ -83,8 +82,10 @@ module Make_hvsock(Host: Sig.HOST) = struct let writev t = F.writev t.flow let shutdown_read t = F.shutdown_read t.flow let shutdown_write t = F.shutdown_write t.flow - let error_message = F.error_message + let pp_error = F.pp_error + let pp_write_error = F.pp_write_error type 'a io = 'a F.io type buffer = F.buffer type error = F.error + type write_error = F.write_error end diff --git a/src/bin/jbuild b/src/bin/jbuild index 2b7acfa68..0c0b33aea 100644 --- a/src/bin/jbuild +++ b/src/bin/jbuild @@ -4,6 +4,7 @@ ((name main) (libraries ( cmdliner ofs logs.fmt hostnet hvsock hvsock.lwt-unix - datakit-server.fs9p win-eventlog asl fd-send-recv + datakit-server-9p win-eventlog asl fd-send-recv duration + mirage-clock-unix mirage-random )) (preprocess no_preprocessing))) diff --git a/src/bin/main.ml b/src/bin/main.ml index dd4d02560..98aada3d8 100644 --- a/src/bin/main.ml +++ b/src/bin/main.ml @@ -54,8 +54,8 @@ module Main(Host: Sig.HOST) = struct module Bind = Bind.Make(Host.Sockets) module Dns_policy = Hostnet_dns.Policy(Host.Files) module Config = Active_config.Make(Host.Time)(Host.Sockets.Stream.Unix) - module Forward_unix = Forward.Make(Connect_unix)(Bind) - module Forward_hvsock = Forward.Make(Connect_hvsock)(Bind) + module Forward_unix = Forward.Make(Mclock)(Connect_unix)(Bind) + module Forward_hvsock = Forward.Make(Mclock)(Connect_hvsock)(Bind) module HV = Flow_lwt_hvsock.Make(Host.Time)(Host.Fn) module Hosts = Hosts.Make(Host.Files) @@ -98,10 +98,10 @@ module Main(Host: Sig.HOST) = struct (* no need to add more delay *) | Unix.Unix_error(_, _, _) -> HV.Hvsock.close socket >>= fun () -> - Host.Time.sleep 1. + Host.Time.sleep_ns (Duration.of_sec 1) | _ -> HV.Hvsock.close socket >>= fun () -> - Host.Time.sleep 1. + Host.Time.sleep_ns (Duration.of_sec 1) ) >>= fun () -> aux () @@ -161,10 +161,11 @@ module Main(Host: Sig.HOST) = struct database key slirp/max-connections instead")); Host.Sockets.set_max_connections max_connections; let uri = Uri.of_string port_control_url in + Mclock.connect () >>= fun clock -> match Uri.scheme uri with | Some "hyperv-connect" -> let module Ports = Active_list.Make(Forward_hvsock) in - let fs = Ports.make () in + let fs = Ports.make clock in Ports.set_context fs ""; let module Server = Protocol_9p.Server.Make(Log9P)(HV)(Ports) in let sockaddr = hvsock_addr_of_uri ~default_serviceid:ports_serviceid uri in @@ -178,7 +179,7 @@ module Main(Host: Sig.HOST) = struct | Ok server -> Server.after_disconnect server) | _ -> let module Ports = Active_list.Make(Forward_unix) in - let fs = Ports.make () in + let fs = Ports.make clock in Ports.set_context fs vsock_path; let module Server = Protocol_9p.Server.Make(Log9P)(Host.Sockets.Stream.Unix)(Ports) @@ -276,6 +277,8 @@ module Main(Host: Sig.HOST) = struct List.map Dns.Name.of_string @@ Astring.String.cuts ~sep:"," host_names in + Mclock.connect () >>= fun clock -> + let hardcoded_configuration = let server_macaddr = Slirp.default_server_macaddr in let peer_ip = Ipaddr.V4.of_string_exn "192.168.65.2" in @@ -301,7 +304,8 @@ module Main(Host: Sig.HOST) = struct client_uuids; bridge_connections = true; mtu = 1500; - host_names } + host_names; + clock } in let config = match db_path with @@ -325,14 +329,15 @@ module Main(Host: Sig.HOST) = struct match Uri.scheme uri with | Some "hyperv-connect" -> let module Slirp_stack = - Slirp.Make(Config)(Vmnet.Make(HV))(Dns_policy)(Host)(Vnet) + Slirp.Make(Config)(Vmnet.Make(HV))(Dns_policy) + (Mclock)(Stdlibrandom)(Host)(Vnet) in let sockaddr = hvsock_addr_of_uri ~default_serviceid:ethernet_serviceid (Uri.of_string socket_url) in ( match config with - | Some config -> Slirp_stack.create ~host_names config + | Some config -> Slirp_stack.create ~host_names clock config | None -> Lwt.return hardcoded_configuration ) >>= fun stack_config -> hvsock_connect_forever socket_url sockaddr (fun fd -> @@ -347,11 +352,11 @@ module Main(Host: Sig.HOST) = struct | _ -> let module Slirp_stack = Slirp.Make(Config)(Vmnet.Make(Host.Sockets.Stream.Unix))(Dns_policy) - (Host)(Vnet) + (Mclock)(Stdlibrandom)(Host)(Vnet) in unix_listen socket_url >>= fun server -> ( match config with - | Some config -> Slirp_stack.create ~host_names config + | Some config -> Slirp_stack.create ~host_names clock config | None -> Lwt.return hardcoded_configuration ) >>= fun stack_config -> Host.Sockets.Stream.Unix.listen server (fun conn -> diff --git a/src/hostnet/arp.ml b/src/hostnet/arp.ml index 4e66635be..9a2534323 100644 --- a/src/hostnet/arp.ml +++ b/src/hostnet/arp.ml @@ -23,6 +23,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * *) +open Lwt.Infix let src = let src = Logs.Src.create "arp" ~doc:"fixed ARP table" in @@ -31,7 +32,7 @@ let src = module Log = (val Logs.src_log src : Logs.LOG) -module Make(Ethif: V1_LWT.ETHIF) = struct +module Make (Ethif: Mirage_protocols_lwt.ETHIF) = struct module Table = Map.Make(Ipaddr.V4) @@ -40,10 +41,9 @@ module Make(Ethif: V1_LWT.ETHIF) = struct type buffer = Cstruct.t type macaddr = Macaddr.t type t = { ethif: Ethif.t; mutable table: macaddr Table.t } - type error = unit - type id = unit + type error = Mirage_protocols.Arp.error + let pp_error = Mirage_protocols.Arp.pp_error type repr = string - type result = [ `Ok of macaddr | `Timeout ] let to_repr t = let pp_one (ip, mac) = @@ -74,11 +74,11 @@ module Make(Ethif: V1_LWT.ETHIF) = struct let query t ip = if Table.mem ip t.table - then Lwt.return (`Ok (Table.find ip t.table)) + then Lwt.return (Ok (Table.find ip t.table)) else begin Log.warn (fun f -> f "ARP table has no entry for %s" (Ipaddr.V4.to_string ip)); - Lwt.return `Timeout + Lwt.return (Error `Timeout) end type arp = { @@ -89,32 +89,8 @@ module Make(Ethif: V1_LWT.ETHIF) = struct tpa: Ipaddr.V4.t; } - let rec input t frame = - let open Arpv4_wire in - match get_arp_op frame with - |1 -> (* Request *) - let req_ipv4 = Ipaddr.V4.of_int32 (get_arp_tpa frame) in - if Table.mem req_ipv4 t.table then begin - Log.debug (fun f -> - f "ARP responding to: who-has %s?" (Ipaddr.V4.to_string req_ipv4)); - let sha = Table.find req_ipv4 t.table in - let tha = Macaddr.of_bytes_exn (copy_arp_sha frame) in - (* the requested address *) - let spa = Ipaddr.V4.of_int32 (get_arp_tpa frame) in - (* the requesting host IPv4 *) - let tpa = Ipaddr.V4.of_int32 (get_arp_spa frame) in - output t { op=`Reply; sha; tha; spa; tpa } - end else Lwt.return_unit - |2 -> (* Reply *) - (* the requested address *) - let spa = Ipaddr.V4.of_int32 (get_arp_tpa frame) in - Log.debug (fun f -> f "ARP ignoring reply %s" (Ipaddr.V4.to_string spa)); - Lwt.return_unit - |n -> - Log.debug (fun f -> f "ARP: Unknown message %d ignored" n); - Lwt.return_unit - and output t arp = + let output t arp = let open Arpv4_wire in (* Obtain a buffer to write into *) let buf = Io_page.to_cstruct (Io_page.get 1) in @@ -129,9 +105,9 @@ module Make(Ethif: V1_LWT.ETHIF) = struct |`Reply -> 2 |`Unknown n -> n in - Wire_structs.set_ethernet_dst dmac 0 buf; - Wire_structs.set_ethernet_src smac 0 buf; - Wire_structs.set_ethernet_ethertype buf 0x0806; (* ARP *) + Ethif_wire.set_ethernet_dst dmac 0 buf; + Ethif_wire.set_ethernet_src smac 0 buf; + Ethif_wire.set_ethernet_ethertype buf 0x0806; (* ARP *) let arpbuf = Cstruct.shift buf 14 in set_arp_htype arpbuf 1; set_arp_ptype arpbuf 0x0800; (* IPv4 *) @@ -143,9 +119,38 @@ module Make(Ethif: V1_LWT.ETHIF) = struct set_arp_tha dmac 0 arpbuf; set_arp_tpa arpbuf tpa; (* Resize buffer to sizeof arp packet *) - let buf = Cstruct.sub buf 0 (sizeof_arp + Wire_structs.sizeof_ethernet) in + let buf = Cstruct.sub buf 0 (sizeof_arp + Ethif_wire.sizeof_ethernet) in Ethif.write t.ethif buf + let input t frame = + let open Arpv4_wire in + match get_arp_op frame with + |1 -> (* Request *) + let req_ipv4 = Ipaddr.V4.of_int32 (get_arp_tpa frame) in + if Table.mem req_ipv4 t.table then begin + Log.debug (fun f -> + f "ARP responding to: who-has %s?" (Ipaddr.V4.to_string req_ipv4)); + let sha = Table.find req_ipv4 t.table in + let tha = Macaddr.of_bytes_exn (copy_arp_sha frame) in + (* the requested address *) + let spa = Ipaddr.V4.of_int32 (get_arp_tpa frame) in + (* the requesting host IPv4 *) + let tpa = Ipaddr.V4.of_int32 (get_arp_spa frame) in + output t { op=`Reply; sha; tha; spa; tpa } >|= function + | Ok () -> () + | Error e -> + Log.err (fun f -> + f "error while reading ARP packet: %a" Ethif.pp_error e); + end else Lwt.return_unit + |2 -> (* Reply *) + (* the requested address *) + let spa = Ipaddr.V4.of_int32 (get_arp_tpa frame) in + Log.debug (fun f -> f "ARP ignoring reply %s" (Ipaddr.V4.to_string spa)); + Lwt.return_unit + |n -> + Log.debug (fun f -> f "ARP: Unknown message %d ignored" n); + Lwt.return_unit + type ethif = Ethif.t let connect ~table ethif = @@ -154,7 +159,7 @@ module Make(Ethif: V1_LWT.ETHIF) = struct Table.add ip mac acc ) Table.empty table in - Lwt.return (`Ok { table; ethif }) + { table; ethif } let disconnect _t = Lwt.return_unit end diff --git a/src/hostnet/arp.mli b/src/hostnet/arp.mli index 405438f4b..03443105d 100644 --- a/src/hostnet/arp.mli +++ b/src/hostnet/arp.mli @@ -2,13 +2,12 @@ rely on the dynamic version which can fail with `No_route_to_host` if the other side doesn't respond *) -module Make(Ethif: V1_LWT.ETHIF): sig - include V1_LWT.ARP +module Make(Ethif: Mirage_protocols_lwt.ETHIF): sig + include Mirage_protocols_lwt.ARP type ethif = Ethif.t val connect: - table:(ipaddr * macaddr) list -> ethif - -> [ `Ok of t | `Error of error ] Lwt.t + table:(ipaddr * macaddr) list -> ethif -> t (** Construct a static ARP table *) end diff --git a/src/hostnet/capture.ml b/src/hostnet/capture.ml index 1b9848b5f..8fcaca709 100644 --- a/src/hostnet/capture.ml +++ b/src/hostnet/capture.ml @@ -1,3 +1,5 @@ +open Lwt.Infix + let src = let src = Logs.Src.create "capture" ~doc:"capture network traffic" in Logs.Src.set_level src (Some Logs.Info); @@ -7,14 +9,21 @@ module Log = (val Logs.src_log src : Logs.LOG) module Make(Input: Sig.VMNET) = struct + type page_aligned_buffer = Io_page.t + type buffer = Cstruct.t + type macaddr = Macaddr.t + type 'a io = 'a Lwt.t type fd = Input.fd + type error = [Mirage_device.error | `Unknown of string] - type stats = { - mutable rx_bytes: int64; - mutable rx_pkts: int32; - mutable tx_bytes: int64; - mutable tx_pkts: int32; - } + let pp_error ppf = function + | #Mirage_device.error as e -> Mirage_device.pp_error ppf e + | `Unknown s -> Fmt.pf ppf "unknown: %s" s + + let lift_error = function + | Ok x -> Ok x + | Error (#Mirage_device.error as e) -> Error e + | Error e -> Fmt.kstrf (fun s -> Error (`Unknown s)) "%a" Input.pp_error e type packet = { len: int; @@ -139,7 +148,7 @@ module Make(Input: Sig.VMNET) = struct type t = { input: Input.t; rules: (string, rule) Hashtbl.t; - stats: stats; + stats: Mirage_net.stats; } let add_match ~t ~name ~limit ~snaplen ~predicate = @@ -152,15 +161,13 @@ module Make(Input: Sig.VMNET) = struct let connect input = let rules = Hashtbl.create 7 in - let stats = { - rx_bytes = 0L; rx_pkts = 0l; tx_bytes = 0L; tx_pkts = 0l; - } in + let stats = Mirage_net.Stats.create () in let t = { input; rules; stats } in (* Add a special capture rule for packets for which there is an error processing the packet captures. Ideally there should be no matches! *) add_match ~t ~name:bad_pcap ~limit:1048576 ~snaplen:1500 ~predicate:(fun _ -> false); - Lwt.return (`Ok t) + t let filesystem t = Vfs.Dir.of_list (fun () -> @@ -188,34 +195,20 @@ module Make(Input: Sig.VMNET) = struct let write t buf = record t [ buf ]; - Input.write t.input buf + Input.write t.input buf >|= lift_error + let writev t bufs = record t bufs; - Input.writev t.input bufs + Input.writev t.input bufs >|= lift_error let listen t callback = Input.listen t.input (fun buf -> record t [ buf ]; callback buf) + >|= lift_error let add_listener t callback = Input.add_listener t.input callback let mac t = Input.mac t.input - type page_aligned_buffer = Io_page.t - - type buffer = Cstruct.t - - type error = [ - | `Unknown of string - | `Unimplemented - | `Disconnected - ] - - type macaddr = Macaddr.t - - type 'a io = 'a Lwt.t - - type id = unit - let get_stats_counters t = t.stats let reset_stats_counters t = diff --git a/src/hostnet/capture.mli b/src/hostnet/capture.mli index d3602a13f..85328bdfe 100644 --- a/src/hostnet/capture.mli +++ b/src/hostnet/capture.mli @@ -2,8 +2,7 @@ module Make(Input: Sig.VMNET): sig include Sig.VMNET include Sig.RECORDER with type t := t - val connect: Input.t - -> [ `Ok of t | `Error of error ] Lwt.t + val connect: Input.t -> t (** Capture traffic from a network, match against a set of capture rules and keep a limited amount of the most recent traffic that matches. *) diff --git a/src/hostnet/dhcp.ml b/src/hostnet/dhcp.ml index 2e5545f01..357a0509d 100644 --- a/src/hostnet/dhcp.ml +++ b/src/hostnet/dhcp.ml @@ -7,9 +7,10 @@ let src = module Log = (val Logs.src_log src : Logs.LOG) -module Make(Netif: V1_LWT.NETWORK) = struct +module Make (Clock: Mirage_clock_lwt.MCLOCK) (Netif: Mirage_net_lwt.S) = struct type t = { + clock: Clock.t; netif: Netif.t; server_macaddr: Macaddr.t; get_dhcp_configuration : unit -> Dhcp_server.Config.t; @@ -32,7 +33,7 @@ module Make(Netif: V1_LWT.NETWORK) = struct (* given some MACs and IPs, construct a usable DHCP configuration *) let make ~server_macaddr ~peer_ip ~highest_peer_ip ~local_ip ~extra_dns_ip - ~get_domain_search ~get_domain_name netif = + ~get_domain_search ~get_domain_name clock netif = let open Dhcp_server.Config in (* FIXME: We need a DHCP range to make the DHCP server happy, even though we intend only to serve IPs to one downstream host. @@ -84,9 +85,9 @@ module Make(Netif: V1_LWT.NETWORK) = struct mac_addr = server_macaddr; network = prefix; (* FIXME: this needs https://github.com/haesbaert/charrua-core/pull/31 *) - range = (peer_ip, peer_ip); (* allow one dynamic client *) + range = Some (peer_ip, peer_ip); (* allow one dynamic client *) } in - { netif; server_macaddr; get_dhcp_configuration } + { clock; netif; server_macaddr; get_dhcp_configuration } let of_interest mac dest = Macaddr.compare dest mac = 0 || not (Macaddr.is_unicast dest) @@ -96,14 +97,19 @@ module Make(Netif: V1_LWT.NETWORK) = struct let logged_bootrequest = ref false let logged_bootreply = ref false - let input net (config : Dhcp_server.Config.t) database buf = + let input clock net (config : Dhcp_server.Config.t) database buf = let open Dhcp_server in match Dhcp_wire.pkt_of_buf buf (Cstruct.len buf) with - | `Error e -> + | Error e -> Log.err (fun f -> f "failed to parse DHCP packet: %s" e); Lwt.return database - | `Ok pkt -> - match (Input.input_pkt config database pkt (Clock.time ())) with + | Ok pkt -> + let elapsed_seconds = + Clock.elapsed_ns clock + |> Duration.to_sec + |> Int32.of_int + in + match Input.input_pkt config database pkt elapsed_seconds with | Input.Silence -> Lwt.return database | Input.Update database -> Log.debug (fun f -> f "lease database updated"); @@ -122,27 +128,30 @@ module Make(Netif: V1_LWT.NETWORK) = struct (Macaddr.to_string (pkt.srcmac))); logged_bootrequest := !logged_bootrequest || (pkt.op = Dhcp_wire.BOOTREQUEST); - Netif.write net (Dhcp_wire.buf_of_pkt reply) - >>= fun () -> - let domain = List.fold_left (fun acc x -> match x with - | Domain_name y -> y - | _ -> acc) "unknown" reply.options in - let dns = List.fold_left (fun acc x -> match x with - | Dns_servers ys -> String.concat ", " (List.map Ipaddr.V4.to_string ys) - | _ -> acc) "none" reply.options in - let routers = List.fold_left (fun acc x -> match x with - | Routers ys -> String.concat ", " (List.map Ipaddr.V4.to_string ys) - | _ -> acc) "none" reply.options in - if reply.op <> Dhcp_wire.BOOTREPLY || not !logged_bootreply - then Log.info (fun f -> - f "%s to %s yiddr %a siddr %a dns %s router %s domain %s" - (op_to_string reply.op) (Macaddr.to_string (reply.dstmac)) - Ipaddr.V4.pp_hum reply.yiaddr Ipaddr.V4.pp_hum reply.siaddr - dns routers domain - ); - logged_bootreply := - !logged_bootreply || (reply.op = Dhcp_wire.BOOTREPLY); - Lwt.return database + Netif.write net (Dhcp_wire.buf_of_pkt reply) >>= function + | Error e -> + Log.err (fun f -> f "failed to parse DHCP reply: %a" Netif.pp_error e); + Lwt.return database + | Ok () -> + let domain = List.fold_left (fun acc x -> match x with + | Domain_name y -> y + | _ -> acc) "unknown" reply.options in + let dns = List.fold_left (fun acc x -> match x with + | Dns_servers ys -> String.concat ", " (List.map Ipaddr.V4.to_string ys) + | _ -> acc) "none" reply.options in + let routers = List.fold_left (fun acc x -> match x with + | Routers ys -> String.concat ", " (List.map Ipaddr.V4.to_string ys) + | _ -> acc) "none" reply.options in + if reply.op <> Dhcp_wire.BOOTREPLY || not !logged_bootreply + then Log.info (fun f -> + f "%s to %s yiddr %a siddr %a dns %s router %s domain %s" + (op_to_string reply.op) (Macaddr.to_string (reply.dstmac)) + Ipaddr.V4.pp_hum reply.yiaddr Ipaddr.V4.pp_hum reply.siaddr + dns routers domain + ); + logged_bootreply := + !logged_bootreply || (reply.op = Dhcp_wire.BOOTREPLY); + Lwt.return database let callback t buf = (* TODO: the scope of this reference ensures that the database @@ -151,12 +160,13 @@ module Make(Netif: V1_LWT.NETWORK) = struct pre-allocated IP anyway, but this will present a problem if that assumption ever changes. *) let database = ref (Dhcp_server.Lease.make_db ()) in - match (Wire_structs.parse_ethernet_frame buf) with - | Some (proto, dst, _payload) when of_interest t.server_macaddr dst -> - (match proto with - | Some Wire_structs.IPv4 -> + match Ethif_packet.Unmarshal.of_cstruct buf with + | Ok (pkt, _payload) when + of_interest t.server_macaddr pkt.Ethif_packet.destination -> + (match pkt.Ethif_packet.ethertype with + | Ethif_wire.IPv4 -> if Dhcp_wire.is_dhcp buf (Cstruct.len buf) then begin - input t.netif (t.get_dhcp_configuration ()) !database buf + input t.clock t.netif (t.get_dhcp_configuration ()) !database buf >|= fun db -> database := db end diff --git a/src/hostnet/dhcp.mli b/src/hostnet/dhcp.mli index c0bf61b85..12b05adba 100644 --- a/src/hostnet/dhcp.mli +++ b/src/hostnet/dhcp.mli @@ -1,4 +1,4 @@ -module Make(Netif: V1_LWT.NETWORK): sig +module Make (Clock: Mirage_clock_lwt.MCLOCK) (Netif: Mirage_net_lwt.S): sig type t val make: server_macaddr:Macaddr.t @@ -6,7 +6,7 @@ module Make(Netif: V1_LWT.NETWORK): sig -> local_ip:Ipaddr.V4.t -> extra_dns_ip:Ipaddr.V4.t list -> get_domain_search:(unit -> string list) -> get_domain_name:(unit -> string) - -> Netif.t -> t + -> Clock.t -> Netif.t -> t val callback: t -> Cstruct.t -> unit Lwt.t end diff --git a/src/hostnet/filter.ml b/src/hostnet/filter.ml index 8acae6c1a..7b9a42a72 100644 --- a/src/hostnet/filter.ml +++ b/src/hostnet/filter.ml @@ -1,3 +1,5 @@ +open Lwt.Infix + let src = let src = Logs.Src.create "ppp" ~doc:"point-to-point network link" in Logs.Src.set_level src (Some Logs.Info); @@ -7,38 +9,43 @@ module Log = (val Logs.src_log src : Logs.LOG) module Make(Input: Sig.VMNET) = struct + type page_aligned_buffer = Io_page.t + type buffer = Cstruct.t + type macaddr = Macaddr.t + type 'a io = 'a Lwt.t type fd = Input.fd + type error = [Mirage_device.error | `Unknown of string] - type stats = { - mutable rx_bytes: int64; - mutable rx_pkts: int32; - mutable tx_bytes: int64; - mutable tx_pkts: int32; - } + let pp_error ppf = function + | #Mirage_device.error as e -> Mirage_device.pp_error ppf e + | `Unknown s -> Fmt.pf ppf "unknown: %s" s type t = { input: Input.t; - stats: stats; + stats: Mirage_net.stats; valid_subnets: Ipaddr.V4.Prefix.t list; valid_sources: Ipaddr.V4.t list; } let connect ~valid_subnets ~valid_sources input = - let stats = { - rx_bytes = 0L; rx_pkts = 0l; tx_bytes = 0L; tx_pkts = 0l; - } in - Lwt.return (`Ok { input; stats; valid_subnets; valid_sources }) + let stats = Mirage_net.Stats.create () in + { input; stats; valid_subnets; valid_sources } let disconnect t = Input.disconnect t.input let after_disconnect t = Input.after_disconnect t.input - let write t buf = Input.write t.input buf - let writev t bufs = Input.writev t.input bufs + let lift_error = function + | Ok x -> Ok x + | Error (#Mirage_device.error as e) -> Error e + | Error e -> Fmt.kstrf (fun s -> Error (`Unknown s)) "%a" Input.pp_error e + + let write t buf = Input.write t.input buf >|= lift_error + let writev t bufs = Input.writev t.input bufs >|= lift_error let filter valid_subnets valid_sources next buf = - match (Wire_structs.parse_ethernet_frame buf) with - | Some (Some Wire_structs.IPv4, _, payload) -> - let src = Ipaddr.V4.of_int32 @@ Wire_structs.Ipv4_wire.get_ipv4_src payload in + match Ethif_packet.Unmarshal.of_cstruct buf with + | Ok (_header, payload) -> + let src = Ipaddr.V4.of_int32 @@ Ipv4_wire.get_ipv4_src payload in let from_valid_networks = List.fold_left (fun acc network -> acc || (Ipaddr.V4.Prefix.mem src network) @@ -56,15 +63,16 @@ module Make(Input: Sig.VMNET) = struct let dst = Ipaddr.V4.to_string @@ Ipaddr.V4.of_int32 @@ - Wire_structs.Ipv4_wire.get_ipv4_dst payload + Ipv4_wire.get_ipv4_dst payload in - let body = Cstruct.shift payload Wire_structs.Ipv4_wire.sizeof_ipv4 in + let body = Cstruct.shift payload Ipv4_wire.sizeof_ipv4 in begin match - Wire_structs.Ipv4_wire.(int_to_protocol @@ get_ipv4_proto payload) + Ipv4_packet.Unmarshal.int_to_protocol + @@ Ipv4_wire.get_ipv4_proto payload with | Some `UDP -> - let src_port = Wire_structs.get_udp_source_port body in - let dst_port = Wire_structs.get_udp_dest_port body in + let src_port = Udp_wire.get_udp_source_port body in + let dst_port = Udp_wire.get_udp_dest_port body in Log.warn (fun f -> f "dropping unexpected UDP packet sent from %s:%d to %s:%d \ (valid subnets = %s; valid sources = %s)" @@ -75,8 +83,8 @@ module Make(Input: Sig.VMNET) = struct (List.map Ipaddr.V4.to_string valid_sources)) ) | Some `TCP -> - let src_port = Wire_structs.Tcp_wire.get_tcp_src_port body in - let dst_port = Wire_structs.Tcp_wire.get_tcp_dst_port body in + let src_port = Tcp.Tcp_wire.get_tcp_src_port body in + let dst_port = Tcp.Tcp_wire.get_tcp_dst_port body in Log.warn (fun f -> f "dropping unexpected TCP packet sent from %s:%d to %s:%d \ (valid subnets = %s; valid sources = %s)" @@ -90,7 +98,7 @@ module Make(Input: Sig.VMNET) = struct Log.warn (fun f -> f "dropping unknown IP protocol %d sent from %s to %s (valid \ subnets = %s; valid sources = %s)" - (Wire_structs.Ipv4_wire.get_ipv4_proto payload) src dst + (Ipv4_wire.get_ipv4_proto payload) src dst (String.concat ", " (List.map Ipaddr.V4.Prefix.to_string valid_subnets)) (String.concat ", " @@ -103,35 +111,14 @@ module Make(Input: Sig.VMNET) = struct let listen t callback = Input.listen t.input @@ filter t.valid_subnets t.valid_sources callback + >|= lift_error let add_listener t callback = Input.add_listener t.input @@ filter t.valid_subnets t.valid_sources callback let mac t = Input.mac t.input - - type page_aligned_buffer = Io_page.t - - type buffer = Cstruct.t - - type error = [ - | `Unknown of string - | `Unimplemented - | `Disconnected - ] - - type macaddr = Macaddr.t - - type 'a io = 'a Lwt.t - - type id = unit - let get_stats_counters t = t.stats - - let reset_stats_counters t = - t.stats.rx_bytes <- 0L; - t.stats.tx_bytes <- 0L; - t.stats.rx_pkts <- 0l; - t.stats.tx_pkts <- 0l + let reset_stats_counters t = Mirage_net.Stats.reset t.stats let of_fd ~client_macaddr_of_uuid:_ ~server_macaddr:_ ~mtu:_ = failwith "Filter.of_fd unimplemented" diff --git a/src/hostnet/filter.mli b/src/hostnet/filter.mli index ed78b3468..b44ee23f8 100644 --- a/src/hostnet/filter.mli +++ b/src/hostnet/filter.mli @@ -4,7 +4,7 @@ module Make(Input: Sig.VMNET): sig val connect: valid_subnets:Ipaddr.V4.Prefix.t list -> valid_sources:Ipaddr.V4.t list -> Input.t - -> [ `Ok of t | `Error of error ] Lwt.t + -> t (** Construct a filtered ethernet network which removes IP packets whose source IP is not in [valid_sources] *) end diff --git a/src/hostnet/forward.ml b/src/hostnet/forward.ml index 7b95214f3..8e627cb5c 100644 --- a/src/hostnet/forward.ml +++ b/src/hostnet/forward.ml @@ -58,7 +58,11 @@ module Port = struct end -module Make(Connector: Sig.Connector)(Socket: Sig.SOCKETS) = struct +module Make + (Clock: Mirage_clock_lwt.MCLOCK) + (Connector: Sig.Connector) + (Socket: Sig.SOCKETS) = +struct type server = [ | `Tcp of Socket.Stream.Tcp.server @@ -75,6 +79,7 @@ module Make(Connector: Sig.Connector)(Socket: Sig.SOCKETS) = struct let get_key t = t.local + type clock = Clock.t type context = string let to_string t = @@ -116,21 +121,22 @@ module Make(Connector: Sig.Connector)(Socket: Sig.SOCKETS) = struct Cstruct.LE.set_uint16 header 7 port; (* Write the header, we should be connected to the container port *) Connector.write remote header >>= function - | `Error e -> - let msg = - Fmt.strf "%s: failed to write forwarding header: %s" description - (Connector.error_message e) - in + | Ok () -> Lwt.return_unit + | Error `Closed -> + let msg = Fmt.strf "%s: EOF writing forwarding header" description in Log.err (fun f -> f "%s" msg); Lwt.fail (Failure msg) - | `Eof -> - let msg = Fmt.strf "%s: EOF writing forwarding header" description in + | Error e -> + let msg = + Fmt.strf "%s: failed to write forwarding header: %a" description + Connector.pp_write_error e + in Log.err (fun f -> f "%s" msg); Lwt.fail (Failure msg) - | `Ok () -> - Lwt.return_unit - let start_tcp_proxy description vsock_path_var remote_port server = + module Proxy = Mirage_flow_lwt.Proxy(Clock)(Connector)(Socket.Stream.Tcp) + + let start_tcp_proxy clock description vsock_path_var remote_port server = Socket.Stream.Tcp.listen server (fun local -> Active_list.Var.read vsock_path_var >>= fun _vsock_path -> Connector.connect () >>= fun remote -> @@ -138,18 +144,15 @@ module Make(Connector: Sig.Connector)(Socket: Sig.SOCKETS) = struct write_forwarding_header description remote remote_port >>= fun () -> Log.debug (fun f -> f "%s: connected" description); - Mirage_flow.proxy - (module Clock) - (module Connector) remote - (module Socket.Stream.Tcp) local () - >|= function - | `Error (`Msg m) -> - Log.err (fun f -> f "%s proxy failed with %s" description m) - | `Ok (l_stats, r_stats) -> + Proxy.proxy clock remote local >|= function + | Error e -> + Log.err (fun f -> + f "%s proxy failed with %a" description Proxy.pp_error e) + | Ok (l_stats, r_stats) -> Log.debug (fun f -> - f "%s completed: l2r = %s; r2l = %s" description - (Mirage_flow.CopyStats.to_string l_stats) - (Mirage_flow.CopyStats.to_string r_stats) + f "%s completed: l2r = %a; r2l = %a" description + Mirage_flow.pp_stats l_stats + Mirage_flow.pp_stats r_stats ) ) (fun () -> Connector.close remote @@ -161,15 +164,15 @@ module Make(Connector: Sig.Connector)(Socket: Sig.SOCKETS) = struct let conn_read flow buf = Connector.read_into flow buf >>= function - | `Eof -> Lwt.fail End_of_file - | `Error e -> Lwt.fail_with (Connector.error_message e) - | `Ok () -> Lwt.return () + | Ok `Eof -> Lwt.fail End_of_file + | Error e -> Fmt.kstrf Lwt.fail_with "%a" Connector.pp_error e + | Ok (`Data ()) -> Lwt.return () let conn_write flow buf = Connector.write flow buf >>= function - | `Eof -> Lwt.fail End_of_file - | `Error e -> Lwt.fail_with (Connector.error_message e) - | `Ok () -> Lwt.return () + | Error `Closed -> Lwt.fail End_of_file + | Error e -> Fmt.kstrf Lwt.fail_with "%a" Connector.pp_write_error e + | Ok () -> Lwt.return () let start_udp_proxy description vsock_path_var remote_port server = let from_internet_buffer = Cstruct.create Constants.max_udp_length in @@ -306,7 +309,7 @@ module Make(Connector: Sig.Connector)(Socket: Sig.SOCKETS) = struct log_exception_continue "udp handle" (fun () -> handle server)); Lwt.return () - let start vsock_path_var t = + let start state vsock_path_var t = match t.local with | `Tcp (local_ip, local_port) -> let description = @@ -324,7 +327,7 @@ module Make(Connector: Sig.Connector)(Socket: Sig.SOCKETS) = struct `Tcp (local_ip, port) | _ -> t.local ); - start_tcp_proxy (to_string t) vsock_path_var t.remote_port server + start_tcp_proxy state (to_string t) vsock_path_var t.remote_port server >|= fun () -> Ok t ) (function diff --git a/src/hostnet/forward.mli b/src/hostnet/forward.mli index a6069626a..df68ce787 100644 --- a/src/hostnet/forward.mli +++ b/src/hostnet/forward.mli @@ -8,10 +8,10 @@ module Port : sig val of_string: string -> (t, [ `Msg of string ]) result end -module Make(Connector: Sig.Connector)(Sockets: Sig.SOCKETS) : sig - include Active_list.Instance - with type context = string - -end +module Make + (Clock: Mirage_clock_lwt.MCLOCK) + (Connector: Sig.Connector) + (Socket: Sig.SOCKETS): + Active_list.Instance with type context = string and type clock = Clock.t val set_allowed_addresses: Ipaddr.t list option -> unit diff --git a/src/hostnet/host_lwt_unix.ml b/src/hostnet/host_lwt_unix.ml index 67f65cd8c..f54105416 100644 --- a/src/hostnet/host_lwt_unix.ml +++ b/src/hostnet/host_lwt_unix.ml @@ -19,6 +19,22 @@ let log_exception_continue description f = Lwt.return () ) +module Common = struct + (** FLOW boilerplate *) + + type 'a io = 'a Lwt.t + type buffer = Cstruct.t + type error = [`Msg of string] + type write_error = [Mirage_flow.write_error | error] + let pp_error ppf (`Msg x) = Fmt.string ppf x + + let pp_write_error ppf = function + | #Mirage_flow.write_error as e -> Mirage_flow.pp_write_error ppf e + | #error as e -> pp_error ppf e + + let errorf fmt = Fmt.kstrf (fun s -> Lwt_result.fail (`Msg s)) fmt +end + module Sockets = struct let max_connections = ref None @@ -101,8 +117,7 @@ module Sockets = struct in Lwt.catch (fun () -> Lwt_unix.setsockopt fd Lwt_unix.SO_REUSEADDR true; - Lwt_unix.Versioned.bind_2 fd addr - >|= fun () -> + Lwt_unix.bind fd addr >|= fun () -> idx, fd ) (fun e -> Lwt_unix.close fd @@ -148,12 +163,7 @@ module Sockets = struct type address = Ipaddr.t * int module Udp = struct - - (* FLOW boilerplate *) - type 'a io = 'a Lwt.t - type buffer = Cstruct.t - type error = [`Msg of string] - let error_message (`Msg x) = x + include Common type flow = { mutable idx: int option; @@ -185,19 +195,19 @@ module Sockets = struct (* Win32 requires all sockets to be bound however macOS and Linux don't *) Lwt.catch (fun () -> - Lwt_unix.Versioned.bind_2 fd (Lwt_unix.ADDR_INET(addr, 0)) + Lwt_unix.bind fd (Lwt_unix.ADDR_INET(addr, 0)) ) (fun _ -> Lwt.return_unit) >|= fun () -> let sockaddr = sockaddr_of_address address in Ok (of_fd ~idx ~description ?read_buffer_size sockaddr address fd) let read t = match t.fd, t.already_read with - | None, _ -> Lwt.return `Eof + | None, _ -> Lwt.return (Ok `Eof) | Some _, Some data when Cstruct.len data > 0 -> t.already_read <- Some (Cstruct.sub data 0 0); (* next read is `Eof *) - Lwt.return (`Ok data) + Lwt.return (Ok (`Data data)) | Some _, Some _ -> - Lwt.return `Eof + Lwt.return (Ok `Eof) | Some fd, None -> let buffer = Cstruct.create t.read_buffer_size in let bytes = Bytes.make t.read_buffer_size '\000' in @@ -207,29 +217,29 @@ module Sockets = struct >>= fun (n, _) -> Cstruct.blit_from_bytes bytes 0 buffer 0 n; let response = Cstruct.sub buffer 0 n in - Lwt.return (`Ok response) + Lwt.return (Ok (`Data response)) ) (fun e -> Log.err (fun f -> f "%s: recvfrom caught %a returning Eof" (string_of_flow t) Fmt.exn e); - Lwt.return `Eof + Lwt.return (Ok `Eof) ) let write t buf = match t.fd with - | None -> Lwt.return `Eof + | None -> Lwt.return (Error `Closed) | Some fd -> Lwt.catch (fun () -> (* Lwt on Win32 doesn't support Lwt_bytes.sendto *) let bytes = Bytes.make (Cstruct.len buf) '\000' in Cstruct.blit_to_bytes buf 0 bytes 0 (Cstruct.len buf); Lwt_unix.sendto fd bytes 0 (Bytes.length bytes) [] t.sockaddr - >>= fun _n -> - Lwt.return (`Ok ()) + >|= fun _n -> + Ok () ) (fun e -> Log.err (fun f -> f "%s: sendto caught %a returning Eof" (string_of_flow t) Fmt.exn e); - Lwt.return `Eof + Lwt.return (Error `Closed) ) let writev t bufs = write t (Cstruct.concat bufs) @@ -365,6 +375,9 @@ module Sockets = struct (* Using Lwt_unix we share an implementation across various transport types *) module Fd = struct + + include Common + type flow = { idx: int; description: string; @@ -374,10 +387,6 @@ module Sockets = struct mutable closed: bool; } - type error = [`Msg of string] - let error_message (`Msg x) = x - let errorf fmt = Fmt.kstrf (fun s -> Lwt_result.fail (`Msg s)) fmt - let of_fd ~idx ?(read_buffer_size = default_read_buffer_size) ~description fd = @@ -410,7 +419,7 @@ module Sockets = struct Lwt.return () let read t = - if t.closed then Lwt.return `Eof + if t.closed then Lwt.return (Ok `Eof) else begin if Cstruct.len t.read_buffer = 0 then t.read_buffer <- Cstruct.create t.read_buffer_size; @@ -418,43 +427,43 @@ module Sockets = struct Lwt_bytes.read t.fd t.read_buffer.Cstruct.buffer t.read_buffer.Cstruct.off t.read_buffer.Cstruct.len >|= function - | 0 -> `Eof + | 0 -> Ok `Eof | n -> let results = Cstruct.sub t.read_buffer 0 n in t.read_buffer <- Cstruct.shift t.read_buffer n; - `Ok results + Ok (`Data results) ) (fun e -> Log.err (fun f -> f "Socket.TCPV4.read %s: caught %a returning Eof" t.description Fmt.exn e); - Lwt.return `Eof + Lwt.return (Ok `Eof) ) end let read_into t buffer = - if t.closed then Lwt.return `Eof + if t.closed then Lwt.return (Ok `Eof) else Lwt.catch (fun () -> Lwt_cstruct.(complete (read t.fd) buffer) >|= fun () -> - `Ok () - ) (fun _e -> Lwt.return `Eof) + Ok (`Data ()) + ) (fun _e -> Lwt.return (Ok `Eof)) let write t buf = - if t.closed then Lwt.return `Eof + if t.closed then Lwt.return (Error `Closed) else Lwt.catch (fun () -> Lwt_cstruct.(complete (write t.fd) buf) >|= fun () -> - `Ok () + Ok () ) (fun e -> Log.err (fun f -> f "Socket.TCPV4.write %s: caught %a returning Eof" t.description Fmt.exn e); - Lwt.return `Eof + Lwt.return (Error `Closed) ) let writev t bufs = let rec loop = function - | [] -> Lwt.return (`Ok ()) + | [] -> Lwt.return (Ok ()) | buf :: bufs -> - if t.closed then Lwt.return `Eof + if t.closed then Lwt.return (Error `Closed) else Lwt_cstruct.(complete (write t.fd) buf) >>= fun () -> loop bufs @@ -465,7 +474,7 @@ module Sockets = struct Log.err (fun f -> f "Socket.TCPV4.writev %s: caught %a returning Eof" t.description Fmt.exn e); - Lwt.return `Eof + Lwt.return (Error `Closed) ) let close t = @@ -561,9 +570,6 @@ module Sockets = struct ) ) server.listening_fds - (* FLOW boilerplate *) - type 'a io = 'a Lwt.t - type buffer = Cstruct.t end module Tcp = struct @@ -627,8 +633,7 @@ module Sockets = struct register_connection description >>= fun idx -> let s = Lwt_unix.socket Lwt_unix.PF_UNIX Lwt_unix.SOCK_STREAM 0 in Lwt.catch (fun () -> - Lwt_unix.Versioned.bind_2 s (Lwt_unix.ADDR_UNIX path) - >|= fun () -> + Lwt_unix.bind s (Lwt_unix.ADDR_UNIX path) >|= fun () -> make ~path [ idx, s ] ) (fun e -> Lwt_unix.close s >>= fun () -> @@ -739,29 +744,7 @@ module Files = struct let unwatch = Lwt.cancel end -module Time = struct - type 'a io = 'a Lwt.t - - let sleep = Lwt_unix.sleep -end - -module Clock = struct - type tm = - { tm_sec: int; - tm_min: int; - tm_hour: int; - tm_mday: int; - tm_mon: int; - tm_year: int; - tm_wday: int; - tm_yday: int; - tm_isdst: bool; - } - - let time = Unix.gettimeofday - - let gmtime _ = failwith "gmtime unimplemented" -end +module Time = Time module Dns = struct diff --git a/src/hostnet/host_uwt.ml b/src/hostnet/host_uwt.ml index e8434d351..3c2021c04 100644 --- a/src/hostnet/host_uwt.ml +++ b/src/hostnet/host_uwt.ml @@ -29,12 +29,15 @@ let sockaddr_of_address (dst, dst_port) = module Common = struct (** FLOW boilerplate *) - type error = [ - | `Msg of string - ] + type 'a io = 'a Lwt.t + type buffer = Cstruct.t + type error = [`Msg of string] + type write_error = [Mirage_flow.write_error | error] + let pp_error ppf (`Msg x) = Fmt.string ppf x - let error_message = function - | `Msg x -> x + let pp_write_error ppf = function + | #Mirage_flow.write_error as e -> Mirage_flow.pp_write_error ppf e + | #error as e -> pp_error ppf e let errorf fmt = Fmt.kstrf (fun s -> Lwt_result.fail (`Msg s)) fmt @@ -44,9 +47,6 @@ module Common = struct Some (Ipaddr.of_string @@ Unix.string_of_inet_addr ip, port) | _ -> None with _ -> None - - type 'a io = 'a Lwt.t - type buffer = Cstruct.t end module Sockets = struct @@ -160,12 +160,12 @@ module Sockets = struct ) let rec read t = match t.fd, t.already_read with - | None, _ -> Lwt.return `Eof + | None, _ -> Lwt.return (Ok `Eof) | Some _, Some data when Cstruct.len data > 0 -> t.already_read <- Some (Cstruct.sub data 0 0); (* next read is `Eof *) - Lwt.return (`Ok data) + Lwt.return (Ok (`Data data)) | Some _, Some _ -> - Lwt.return `Eof + Lwt.return (Ok `Eof) | Some fd, None -> let buf = Cstruct.create t.read_buffer_size in Lwt.catch (fun () -> @@ -178,11 +178,11 @@ module Sockets = struct was %d bytes)" t.label (Cstruct.len buf)); read t end else - Lwt.return (`Ok (Cstruct.sub buf 0 recv.Uwt.Udp.recv_len)) + Lwt.return (Ok (`Data (Cstruct.sub buf 0 recv.Uwt.Udp.recv_len))) ) (function | Unix.Unix_error(e, _, _) when Uwt.of_unix_error e = Uwt.ECANCELED -> (* happens on normal timeout *) - Lwt.return `Eof + Lwt.return (Ok `Eof) | e -> Log.err (fun f -> f "Socket.%s.recvfrom: %s caught %s returning Eof" @@ -190,21 +190,21 @@ module Sockets = struct (string_of_flow t) (Printexc.to_string e) ); - Lwt.return `Eof + Lwt.return (Ok `Eof) ) let write t buf = match t.fd with - | None -> Lwt.return `Eof + | None -> Lwt.return (Error `Closed) | Some fd -> Lwt.catch (fun () -> Uwt.Udp.send_ba ~pos:buf.Cstruct.off ~len:buf.Cstruct.len ~buf:buf.Cstruct.buffer fd t.sockaddr >>= fun () -> - Lwt.return (`Ok ()) + Lwt.return (Ok ()) ) (fun e -> Log.err (fun f -> f "Socket.%s.write %s: caught %s returning Eof" t.label t.description (Printexc.to_string e)); - Lwt.return `Eof + Lwt.return (Error `Closed) ) let writev t bufs = write t (Cstruct.concat bufs) @@ -441,14 +441,13 @@ module Sockets = struct let read_into t buf = let rec loop buf = if Cstruct.len buf = 0 - then Lwt.return (`Ok ()) + then Lwt.return (Ok (`Data ())) else Uwt.Tcp.read_ba ~pos:buf.Cstruct.off ~len:buf.Cstruct.len t.fd ~buf:buf.Cstruct.buffer >>= function - | 0 -> Lwt.return `Eof - | n -> - loop (Cstruct.shift buf n) + | 0 -> Lwt.return (Ok `Eof) + | n -> loop (Cstruct.shift buf n) in loop buf @@ -460,21 +459,21 @@ module Sockets = struct ~len:t.read_buffer.Cstruct.len t.fd ~buf:t.read_buffer.Cstruct.buffer >>= function - | 0 -> Lwt.return `Eof + | 0 -> Lwt.return (Ok `Eof) | n -> let results = Cstruct.sub t.read_buffer 0 n in t.read_buffer <- Cstruct.shift t.read_buffer n; - Lwt.return (`Ok results) + Lwt.return (Ok (`Data results)) ) (function | Unix.Unix_error(Unix.ECONNRESET, _, _) -> - Lwt.return `Eof + Lwt.return (Ok `Eof) | Unix.Unix_error(e, _, _) when Uwt.of_unix_error e = Uwt.ECANCELED -> - Lwt.return `Eof + Lwt.return (Ok `Eof) | e -> Log.err (fun f -> f "Socket.%s.read %s: caught %s returning Eof" t.label t.description (Printexc.to_string e)); - Lwt.return `Eof + Lwt.return (Ok `Eof) ) let write t buf = @@ -482,23 +481,23 @@ module Sockets = struct Uwt.Tcp.write_ba ~pos:buf.Cstruct.off ~len:buf.Cstruct.len t.fd ~buf:buf.Cstruct.buffer >>= fun () -> - Lwt.return (`Ok ()) + Lwt.return (Ok ()) ) (function | Unix.Unix_error(Unix.ECONNRESET, _, _) -> - Lwt.return `Eof + Lwt.return (Error `Closed) | Unix.Unix_error(e, _, _) when Uwt.of_unix_error e = Uwt.ECANCELED -> - Lwt.return `Eof + Lwt.return (Error `Closed) | e -> Log.err (fun f -> f "Socket.%s.write %s: caught %s returning Eof" t.label t.description (Printexc.to_string e)); - Lwt.return `Eof + Lwt.return (Error `Closed) ) let writev t bufs = Lwt.catch (fun () -> let rec loop = function - | [] -> Lwt.return (`Ok ()) + | [] -> Lwt.return (Ok ()) | buf :: bufs -> Uwt.Tcp.write_ba ~pos:buf.Cstruct.off ~len:buf.Cstruct.len t.fd ~buf:buf.Cstruct.buffer @@ -508,14 +507,14 @@ module Sockets = struct loop bufs ) (function | Unix.Unix_error(Unix.ECONNRESET, _, _) -> - Lwt.return `Eof + Lwt.return (Error `Closed) | Unix.Unix_error(e, _, _) when Uwt.of_unix_error e = Uwt.ECANCELED -> - Lwt.return `Eof + Lwt.return (Error `Closed) | e -> Log.err (fun f -> f "Socket.%s.writev %s: caught %s returning Eof" t.label t.description (Printexc.to_string e)); - Lwt.return `Eof + Lwt.return (Error `Closed) ) let close t = @@ -767,12 +766,12 @@ module Sockets = struct let read_into t buf = let rec loop buf = if Cstruct.len buf = 0 - then Lwt.return (`Ok ()) + then Lwt.return (Ok (`Data ())) else Uwt.Pipe.read_ba ~pos:buf.Cstruct.off ~len:buf.Cstruct.len t.fd ~buf:buf.Cstruct.buffer >>= function - | 0 -> Lwt.return `Eof + | 0 -> Lwt.return (Ok `Eof) | n -> loop (Cstruct.shift buf n) in loop buf @@ -785,16 +784,16 @@ module Sockets = struct ~len:t.read_buffer.Cstruct.len t.fd ~buf:t.read_buffer.Cstruct.buffer >>= function - | 0 -> Lwt.return `Eof + | 0 -> Lwt.return (Ok `Eof) | n -> let results = Cstruct.sub t.read_buffer 0 n in t.read_buffer <- Cstruct.shift t.read_buffer n; - Lwt.return (`Ok results) + Lwt.return (Ok (`Data results)) ) (fun e -> Log.err (fun f -> f "Socket.Pipe.read %s: caught %a returning Eof" t.description Fmt.exn e); - Lwt.return `Eof + Lwt.return (Ok `Eof) ) let write t buf = @@ -802,23 +801,23 @@ module Sockets = struct Uwt.Pipe.write_ba ~pos:buf.Cstruct.off ~len:buf.Cstruct.len t.fd ~buf:buf.Cstruct.buffer >|= fun () -> - `Ok () + Ok () ) (function | Unix.Unix_error(Unix.EPIPE, _, _) -> (* other end has closed, this is normal *) - Lwt.return `Eof + Lwt.return (Error `Closed) | e -> (* Unexpected error *) Log.err (fun f -> f "Socket.Pipe.write %s: caught %a returning Eof" t.description Fmt.exn e); - Lwt.return `Eof + Lwt.return (Error `Closed) ) let writev t bufs = Lwt.catch (fun () -> let rec loop = function - | [] -> Lwt.return (`Ok ()) + | [] -> Lwt.return (Ok ()) | buf :: bufs -> Uwt.Pipe.write_ba ~pos:buf.Cstruct.off ~len:buf.Cstruct.len t.fd ~buf:buf.Cstruct.buffer @@ -830,7 +829,7 @@ module Sockets = struct Log.err (fun f -> f "Socket.Pipe.writev %s: caught %a returning Eof" t.description Fmt.exn e); - Lwt.return `Eof + Lwt.return (Error `Closed) ) let close t = @@ -1000,26 +999,7 @@ end module Time = struct type 'a io = 'a Lwt.t - - let sleep secs = Uwt.Timer.sleep (int_of_float (secs *. 1000.)) -end - -module Clock = struct - type tm = - { tm_sec: int; - tm_min: int; - tm_hour: int; - tm_mday: int; - tm_mon: int; - tm_year: int; - tm_wday: int; - tm_yday: int; - tm_isdst: bool; - } - - let time = Unix.gettimeofday - - let gmtime _ = failwith "gmtime unimplemented" + let sleep_ns x = Uwt.Timer.sleep (Duration.to_ms x) end module Dns = struct diff --git a/src/hostnet/hostnet_dns.ml b/src/hostnet/hostnet_dns.ml index 7343e235d..c7ee46b1c 100644 --- a/src/hostnet/hostnet_dns.ml +++ b/src/hostnet/hostnet_dns.ml @@ -148,13 +148,13 @@ let try_builtins local_ip host_names question = | _ -> None module Make - (Ip: V1_LWT.IPV4) - (Udp:V1_LWT.UDPV4) - (Tcp:V1_LWT.TCPV4) + (Ip: Mirage_protocols_lwt.IPV4) + (Udp:Mirage_protocols_lwt.UDPV4) + (Tcp:Mirage_protocols_lwt.TCPV4) (Socket: Sig.SOCKETS) (D: Sig.DNS) - (Time: V1_LWT.TIME) - (Clock: V1.CLOCK) + (Time: Mirage_time_lwt.S) + (Clock: Mirage_clock_lwt.MCLOCK) (Recorder: Sig.RECORDER) = struct @@ -213,47 +213,43 @@ struct packet creation fn *) let frame = Io_page.to_cstruct (Io_page.get 1) in let smac = "\000\000\000\000\000\000" in - Wire_structs.set_ethernet_src smac 0 frame; - Wire_structs.set_ethernet_ethertype frame 0x0800; - let buf = Cstruct.shift frame Wire_structs.sizeof_ethernet in - Wire_structs.Ipv4_wire.set_ipv4_hlen_version buf ((4 lsl 4) + (5)); - Wire_structs.Ipv4_wire.set_ipv4_tos buf 0; - Wire_structs.Ipv4_wire.set_ipv4_ttl buf 38; - let proto = Wire_structs.Ipv4_wire.protocol_to_int `UDP in - Wire_structs.Ipv4_wire.set_ipv4_proto buf proto; - Wire_structs.Ipv4_wire.set_ipv4_src buf (Ipaddr.V4.to_int32 source_ip); - Wire_structs.Ipv4_wire.set_ipv4_dst buf (Ipaddr.V4.to_int32 dest_ip); + Ethif_wire.set_ethernet_src smac 0 frame; + Ethif_wire.set_ethernet_ethertype frame 0x0800; + let buf = Cstruct.shift frame Ethif_wire.sizeof_ethernet in + Ipv4_wire.set_ipv4_hlen_version buf ((4 lsl 4) + (5)); + Ipv4_wire.set_ipv4_tos buf 0; + Ipv4_wire.set_ipv4_ttl buf 38; + let proto = Ipv4_packet.Marshal.protocol_to_int `UDP in + Ipv4_wire.set_ipv4_proto buf proto; + Ipv4_wire.set_ipv4_src buf (Ipaddr.V4.to_int32 source_ip); + Ipv4_wire.set_ipv4_dst buf (Ipaddr.V4.to_int32 dest_ip); let header_len = - Wire_structs.sizeof_ethernet + Wire_structs.Ipv4_wire.sizeof_ipv4 + Ethif_wire.sizeof_ethernet + Ipv4_wire.sizeof_ipv4 in - let frame = - Cstruct.set_len frame (header_len + Wire_structs.sizeof_udp) - in + let frame = Cstruct.set_len frame (header_len + Udp_wire.sizeof_udp) in let udp_buf = Cstruct.shift frame header_len in - Wire_structs.set_udp_source_port udp_buf source_port; - Wire_structs.set_udp_dest_port udp_buf dest_port; - Wire_structs.set_udp_length udp_buf - (Wire_structs.sizeof_udp + Cstruct.lenv bufs); - Wire_structs.set_udp_checksum udp_buf 0; + Udp_wire.set_udp_source_port udp_buf source_port; + Udp_wire.set_udp_dest_port udp_buf dest_port; + Udp_wire.set_udp_length udp_buf (Udp_wire.sizeof_udp + Cstruct.lenv bufs); + Udp_wire.set_udp_checksum udp_buf 0; let csum = Ip.checksum frame (udp_buf :: bufs) in - Wire_structs.set_udp_checksum udp_buf csum; + Udp_wire.set_udp_checksum udp_buf csum; (* Ip.writev *) let bufs = frame :: bufs in - let tlen = Cstruct.lenv bufs - Wire_structs.sizeof_ethernet in + let tlen = Cstruct.lenv bufs - Ethif_wire.sizeof_ethernet in let dmac = String.make 6 '\000' in (* Ip.adjust_output_header *) - Wire_structs.set_ethernet_dst dmac 0 frame; + Ethif_wire.set_ethernet_dst dmac 0 frame; let buf = - Cstruct.sub frame Wire_structs.sizeof_ethernet - Wire_structs.Ipv4_wire.sizeof_ipv4 + Cstruct.sub frame Ethif_wire.sizeof_ethernet Ipv4_wire.sizeof_ipv4 in (* Set the mutable values in the ipv4 header *) - Wire_structs.Ipv4_wire.set_ipv4_len buf tlen; - Wire_structs.Ipv4_wire.set_ipv4_id buf (Random.int 65535); (* TODO *) - Wire_structs.Ipv4_wire.set_ipv4_csum buf 0; + Ipv4_wire.set_ipv4_len buf tlen; + Ipv4_wire.set_ipv4_id buf (Random.int 65535); (* TODO *) + Ipv4_wire.set_ipv4_csum buf 0; let checksum = Tcpip_checksum.ones_complement buf in - Wire_structs.Ipv4_wire.set_ipv4_csum buf checksum; + Ipv4_wire.set_ipv4_csum buf checksum; Recorder.record recorder bufs | None -> () (* nowhere to log packet *) @@ -264,7 +260,7 @@ struct f "DNS names %s will map to local IP %s" (String.concat ", " @@ List.map Dns.Name.to_string host_names) (Ipaddr.to_string local_ip)); - function + fun clock -> function | `Upstream config -> let open Dns_forward.Config.Address in let nr_servers = @@ -280,10 +276,11 @@ struct Lwt.return_unit | _ -> (* We don't know how to marshal IPv6 yet *) - Lwt.return_unit in - Dns_udp_resolver.create ~message_cb config + Lwt.return_unit + in + Dns_udp_resolver.create ~message_cb config clock >>= fun dns_udp_resolver -> - Dns_tcp_resolver.create ~message_cb config + Dns_tcp_resolver.create ~message_cb config clock >>= fun dns_tcp_resolver -> Lwt.return { local_ip; host_names; resolver = Upstream { dns_tcp_resolver; dns_udp_resolver } } @@ -291,18 +288,13 @@ struct Log.info (fun f -> f "Will use the host's DNS resolver"); Lwt.return { local_ip; host_names; resolver = Host } - let answer t is_tcp buffer = + let answer t is_tcp buf = let open Dns.Packet in - let len = Cstruct.len buffer in - let buf = Dns.Buf.of_cstruct buffer in - match Dns.Protocol.Server.parse (Dns.Buf.sub buf 0 len) with + let len = Cstruct.len buf in + match Dns.Protocol.Server.parse (Cstruct.sub buf 0 len) with | None -> Lwt.return (Error (`Msg "failed to parse DNS packet")) | Some ({ questions = [ question ]; _ } as request) -> - let marshal pkt = - let buf = Dns.Buf.create 1024 in - let buf = Dns.Packet.marshal buf pkt in - Cstruct.of_bigarray buf in let reply answers = let id = request.id in let detail = @@ -323,9 +315,9 @@ struct | None -> match is_tcp, t.resolver with | true, Upstream { dns_tcp_resolver; _ } -> - Dns_tcp_resolver.answer buffer dns_tcp_resolver + Dns_tcp_resolver.answer buf dns_tcp_resolver | false, Upstream { dns_udp_resolver; _ } -> - Dns_udp_resolver.answer buffer dns_udp_resolver + Dns_udp_resolver.answer buf dns_udp_resolver | _, Host -> D.resolve question >>= function @@ -351,8 +343,7 @@ struct let describe buf = let len = Cstruct.len buf in - let buf = Dns.Buf.of_cstruct buf in - match Dns.Protocol.Server.parse (Dns.Buf.sub buf 0 len) with + match Dns.Protocol.Server.parse (Cstruct.sub buf 0 len) with | None -> Printf.sprintf "Unparsable DNS packet length %d" len | Some request -> Dns.Packet.to_string request @@ -361,9 +352,9 @@ struct >>= function | Error (`Msg m) -> Log.warn (fun f -> f "%s lookup failed: %s" (describe buf) m); - Lwt.return_unit + Lwt.return (Ok ()) | Ok buffer -> - Udp.write ~source_port:53 ~dest_ip:src ~dest_port:src_port udp buffer + Udp.write ~src_port:53 ~dst:src ~dst_port:src_port udp buffer let handle_tcp ~t = (* FIXME: need to record the upstream request *) diff --git a/src/hostnet/hostnet_dns.mli b/src/hostnet/hostnet_dns.mli index c7f2af644..672360f91 100644 --- a/src/hostnet/hostnet_dns.mli +++ b/src/hostnet/hostnet_dns.mli @@ -11,13 +11,13 @@ module Config: sig end module Make - (Ip: V1_LWT.IPV4 with type prefix = Ipaddr.V4.t) - (Udp: V1_LWT.UDPV4) - (Tcp:V1_LWT.TCPV4) + (Ip: Mirage_protocols_lwt.IPV4) + (Udp: Mirage_protocols_lwt.UDPV4) + (Tcp: Mirage_protocols_lwt.TCPV4) (Socket: Sig.SOCKETS) (Dns_resolver: Sig.DNS) - (Time: V1_LWT.TIME) - (Clock: V1.CLOCK) + (Time: Mirage_time_lwt.S) + (Clock: Mirage_clock_lwt.MCLOCK) (Recorder: Sig.RECORDER) : sig @@ -27,7 +27,7 @@ sig val create: local_address:Dns_forward.Config.Address.t -> host_names:Dns.Name.t list -> - Config.t -> t Lwt.t + Clock.t -> Config.t -> t Lwt.t (** Create a DNS forwarding instance based on the given configuration, either [`Upstream config]: send DNS requests to the given upstream servers [`Host]: use the Host's resolver. @@ -38,7 +38,7 @@ sig val handle_udp: t:t -> udp:Udp.t -> src:Ipaddr.V4.t -> dst:Ipaddr.V4.t -> src_port:int -> - Cstruct.t -> unit Lwt.t + Cstruct.t -> (unit, Udp.error) result Lwt.t val handle_tcp: t:t -> (int -> (Tcp.flow -> unit Lwt.t) option) Lwt.t diff --git a/src/hostnet/hostnet_http.ml b/src/hostnet/hostnet_http.ml index 088dad0e4..4e5b43422 100644 --- a/src/hostnet/hostnet_http.ml +++ b/src/hostnet/hostnet_http.ml @@ -88,9 +88,9 @@ module Exclude = struct end module Make - (Ip: V1_LWT.IPV4 with type prefix = Ipaddr.V4.t) - (Udp: V1_LWT.UDPV4) - (Tcp:Mirage_flow_s.SHUTDOWNABLE) + (Ip: Mirage_protocols_lwt.IPV4) + (Udp: Mirage_protocols_lwt.UDPV4) + (Tcp:Mirage_flow_lwt.SHUTDOWNABLE) (Socket: Sig.SOCKETS) (Dns_resolver: Sig.DNS) = struct @@ -200,13 +200,13 @@ module Make Lwt.return (Ok t) module Incoming = struct - module C = Channel.Make(Tcp) + module C = Mirage_channel_lwt.Make(Tcp) module IO = Cohttp_mirage_io.Make(C) module Request = Cohttp.Request.Make(IO) module Response = Cohttp.Response.Make(IO) end module Outgoing = struct - module C = Channel.Make(Socket.Stream.Tcp) + module C = Mirage_channel_lwt.Make(Socket.Stream.Tcp) module IO = Cohttp_mirage_io.Make(C) module Request = Cohttp.Request.Make(IO) module Response = Cohttp.Response.Make(IO) @@ -330,38 +330,40 @@ module Make (* forward outgoing to ingoing *) let a_t flow ~incoming ~outgoing = + let warn pp e = + Log.warn (fun f -> f "Unexpected exeption %a in proxy" pp e); + in let rec loop () = - Lwt.catch (fun () -> - Outgoing.C.read_some outgoing >>= fun buf -> + (Outgoing.C.read_some outgoing >>= function + | Ok `Eof -> Lwt.return false + | Error e -> warn Outgoing.C.pp_error e; Lwt.return false + | Ok (`Data buf) -> Incoming.C.write_buffer incoming buf; - Incoming.C.flush incoming >|= fun () -> - true - ) (function - | End_of_file -> Lwt.return false - | e -> - Log.warn (fun f -> - f "Possibly unexpected exeption %a in proxy" Fmt.exn e); - Lwt.return false) - >>= fun continue -> + Incoming.C.flush incoming >|= function + | Ok () -> true + | Error `Closed -> false + | Error e -> warn Incoming.C.pp_write_error e; false + ) >>= fun continue -> if continue then loop () else Tcp.shutdown_write flow in loop () (* forward ingoing to outgoing *) let b_t remote ~incoming ~outgoing = + let warn pp e = + Log.warn (fun f -> f "Unexpected exeption %a in proxy" pp e); + in let rec loop () = - Lwt.catch (fun () -> - Incoming.C.read_some incoming >>= fun buf -> + (Incoming.C.read_some incoming >>= function + | Ok `Eof -> Lwt.return false + | Error e -> warn Incoming.C.pp_error e; Lwt.return false + | Ok (`Data buf) -> Outgoing.C.write_buffer outgoing buf; - Outgoing.C.flush outgoing >|= fun () -> - true - ) (function - | End_of_file -> Lwt.return false - | e -> - Log.warn (fun f -> - f "Possibly unexpected exeption %a in proxy" Fmt.exn e); - Lwt.return false) - >>= fun continue -> + Outgoing.C.flush outgoing >|= function + | Ok () -> true + | Error `Closed -> false + | Error e -> warn Outgoing.C.pp_write_error e; false + ) >>= fun continue -> if continue then loop () else Socket.Stream.Tcp.shutdown_write remote in loop () diff --git a/src/hostnet/hostnet_http.mli b/src/hostnet/hostnet_http.mli index f8cfae6ee..5f241d9ee 100644 --- a/src/hostnet/hostnet_http.mli +++ b/src/hostnet/hostnet_http.mli @@ -10,9 +10,9 @@ module Exclude: sig end module Make - (Ip: V1_LWT.IPV4 with type prefix = Ipaddr.V4.t) - (Udp: V1_LWT.UDPV4) - (Tcp: Mirage_flow_s.SHUTDOWNABLE) + (Ip: Mirage_protocols_lwt.IPV4) + (Udp: Mirage_protocols_lwt.UDPV4) + (Tcp: Mirage_flow_lwt.SHUTDOWNABLE) (Socket: Sig.SOCKETS) (Dns_resolver: Sig.DNS) : sig diff --git a/src/hostnet/hostnet_udp.ml b/src/hostnet/hostnet_udp.ml index 478ec0995..7c5e849ee 100644 --- a/src/hostnet/hostnet_udp.ml +++ b/src/hostnet/hostnet_udp.ml @@ -17,14 +17,18 @@ type datagram = { payload: Cstruct.t; } -module Make(Sockets: Sig.SOCKETS)(Time: V1_LWT.TIME) = struct +module Make + (Sockets: Sig.SOCKETS) + (Clock: Mirage_clock_lwt.MCLOCK) + (Time: Mirage_time_lwt.S) = +struct module Udp = Sockets.Datagram.Udp type flow = { description: string; server: Udp.server; - mutable last_use: float; + mutable last_use: int64; } (* For every src, src_port behind the NAT we create one listening socket @@ -32,7 +36,8 @@ module Make(Sockets: Sig.SOCKETS)(Time: V1_LWT.TIME) = struct but preserve them on the way in. *) type t = { - max_idle_time: float; + clock: Clock.t; + max_idle_time: int64; background_gc_t: unit Lwt.t; table: (address, flow) Hashtbl.t; (* src -> flow *) mutable send_reply: (datagram -> unit Lwt.t) option; @@ -42,14 +47,13 @@ module Make(Sockets: Sig.SOCKETS)(Time: V1_LWT.TIME) = struct let get_nat_table_size t = Hashtbl.length t.table - let start_background_gc table max_idle_time = + let start_background_gc clock table max_idle_time = let rec loop () = - Time.sleep max_idle_time - >>= fun () -> - let now = Unix.gettimeofday () in + Time.sleep_ns max_idle_time >>= fun () -> + let now_ns = Clock.elapsed_ns clock in let to_shutdown = Hashtbl.fold (fun k flow acc -> - if now -. flow.last_use > max_idle_time then begin + if Int64.(sub now_ns flow.last_use) > max_idle_time then begin Log.debug (fun f -> f "Hostnet_udp %s: expiring UDP NAT rule" flow.description); (k, flow) :: acc @@ -73,11 +77,11 @@ module Make(Sockets: Sig.SOCKETS)(Time: V1_LWT.TIME) = struct in loop () - let create ?(max_idle_time = 60.) () = + let create ?(max_idle_time = Duration.(of_sec 60)) clock = let table = Hashtbl.create 7 in - let background_gc_t = start_background_gc table max_idle_time in + let background_gc_t = start_background_gc clock table max_idle_time in let send_reply = None in - { max_idle_time; background_gc_t; table; send_reply } + { clock; max_idle_time; background_gc_t; table; send_reply } let description { src = src, src_port; dst = dst, dst_port; _ } = Fmt.strf "udp:%a:%d-%a:%d" Ipaddr.pp_hum src src_port Ipaddr.pp_hum @@ -131,7 +135,7 @@ module Make(Sockets: Sig.SOCKETS)(Time: V1_LWT.TIME) = struct Lwt.catch (fun () -> Udp.bind ~description:(description datagram) (Ipaddr.(V4 V4.any), 0) >>= fun server -> - let last_use = Unix.gettimeofday () in + let last_use = Clock.elapsed_ns t.clock in let flow = { description = d; server; last_use } in Hashtbl.replace t.table datagram.src flow; (* Start a listener *) @@ -147,10 +151,8 @@ module Make(Sockets: Sig.SOCKETS)(Time: V1_LWT.TIME) = struct | None -> Lwt.return () | Some flow -> Lwt.catch (fun () -> - Udp.sendto flow.server datagram.dst datagram.payload - >>= fun () -> - flow.last_use <- Unix.gettimeofday (); - Lwt.return () + Udp.sendto flow.server datagram.dst datagram.payload >|= fun () -> + flow.last_use <- Clock.elapsed_ns t.clock; ) (fun e -> Log.err (fun f -> f "Hostnet_udp %s: Lwt_bytes.send caught %a" diff --git a/src/hostnet/hostnet_udp.mli b/src/hostnet/hostnet_udp.mli index 8b49faf4d..ef15ee0c7 100644 --- a/src/hostnet/hostnet_udp.mli +++ b/src/hostnet/hostnet_udp.mli @@ -14,12 +14,16 @@ type datagram = { type reply = Cstruct.t -> unit Lwt.t -module Make(Sockets: Sig.SOCKETS)(Time: V1_LWT.TIME): sig +module Make + (Sockets: Sig.SOCKETS) + (Clock: Mirage_clock_lwt.MCLOCK) + (Time: Mirage_time_lwt.S): +sig type t (** A UDP NAT implementation *) - val create: ?max_idle_time:float -> unit -> t + val create: ?max_idle_time:int64 -> Clock.t -> t (** Create a UDP NAT implementation which will keep "NAT rules" alive until they become idle for the given [?max_idle_time] *) diff --git a/src/hostnet/jbuild b/src/hostnet/jbuild index 0b0ddcce3..81a58b5c8 100644 --- a/src/hostnet/jbuild +++ b/src/hostnet/jbuild @@ -3,12 +3,14 @@ (library ((name hostnet) (libraries ( - cstruct lwt.unix logs mirage-types.lwt ipaddr mirage-flow - ppx_sexp_conv pcap-format mirage-console.unix tcpip.ethif + cstruct lwt.unix logs ipaddr mirage-flow-lwt + ppx_sexp_conv pcap-format mirage-console-unix tcpip.ethif tcpip.arpv4 tcpip.ipv4 tcpip.icmpv4 tcpip.udp tcpip.tcp tcpip.stack-direct - charrua-core.server dns dns.lwt ofs uwt uwt.ext uwt.preemptive - lwt.preemptive threads astring datakit-server.vfs dns-forward tar mirage-vnetif - dnssd uuidm mirage-http cohttp channel ezjsonm + charrua-core.server dns dns-lwt ofs uwt uwt.ext uwt.preemptive + lwt.preemptive threads astring datakit-server dns-forward tar mirage-vnetif + dnssd uuidm mirage-http cohttp-lwt mirage-channel ezjsonm + mirage-protocols-lwt duration mirage-time-lwt mirage-clock-lwt + mirage-time-unix mirage-random tcpip.unix )) (c_names (stubs_utils)) (wrapped false))) diff --git a/src/hostnet/mux.ml b/src/hostnet/mux.ml index 14fa0d2c1..2a5d04b1a 100644 --- a/src/hostnet/mux.ml +++ b/src/hostnet/mux.ml @@ -8,39 +8,26 @@ let src = module Log = (val Logs.src_log src : Logs.LOG) module DontCareAboutStats = struct - type stats = { - mutable rx_bytes: int64; - mutable rx_pkts: int32; - mutable tx_bytes: int64; - mutable tx_pkts: int32; - } - let get_stats_counters _ = { - rx_bytes = 0L; rx_pkts = 0l; - tx_bytes = 0L; tx_pkts = 0l; - } - + let get_stats_counters _ = Mirage_net.Stats.create () let reset_stats_counters _ = () end module ObviouslyCommon = struct - type page_aligned_buffer = Io_page.t - - type buffer = Cstruct.t - - type error = [ - | `Unknown of string - | `Unimplemented - | `Disconnected - ] + type page_aligned_buffer = Io_page.t type macaddr = Macaddr.t - type 'a io = 'a Lwt.t + type buffer = Cstruct.t + type error = [Mirage_device.error | `Unknown of string] + + let pp_error ppf = function + | #Mirage_device.error as e -> Mirage_device.pp_error ppf e + | `Unknown s -> Fmt.pf ppf "unknown: %s" s - type id = unit end -module Make(Netif: V1_LWT.NETWORK) = struct +module Make (Netif: Mirage_net_lwt.S) = struct + include DontCareAboutStats include ObviouslyCommon @@ -61,6 +48,11 @@ module Make(Netif: V1_LWT.NETWORK) = struct mutable default_callback: callback; } + let lift_error: ('a, Netif.error) result -> ('a, error) result = function + | Ok x -> Ok x + | Error (#Mirage_device.error as e) -> Error e + | Error e -> Fmt.kstrf (fun s -> Error (`Unknown s)) "%a" Netif.pp_error e + let filesystem t = let xs = RuleMap.fold @@ -99,20 +91,14 @@ module Make(Netif: V1_LWT.NETWORK) = struct let rules = RuleMap.empty in let default_callback = fun _ -> Lwt.return_unit in let t = { netif; rules; default_callback } in - Netif.listen netif @@ callback t - >>= fun () -> - Lwt.return t - - let write t buffer = - Netif.write t.netif buffer - let writev t buffers = - Netif.writev t.netif buffers - let listen t callback = - t.default_callback <- callback; - Lwt.return_unit - let disconnect t = - Netif.disconnect t.netif - + Netif.listen netif @@ callback t >>= fun r -> + let r = match r with Ok () -> Ok t | Error _ as e -> e in + Lwt.return r >|= lift_error + + let write t buffer = Netif.write t.netif buffer >|= lift_error + let writev t buffers = Netif.writev t.netif buffers >|= lift_error + let listen t callback = t.default_callback <- callback; Lwt.return (Ok ()) + let disconnect t = Netif.disconnect t.netif let mac t = Netif.mac t.netif module Port = struct @@ -125,15 +111,17 @@ module Make(Netif: V1_LWT.NETWORK) = struct rule: rule; } - let write t buffer = Netif.write t.netif buffer - let writev t buffers = Netif.writev t.netif buffers + let write t buffer = Netif.write t.netif buffer >|= lift_error + let writev t buffers = Netif.writev t.netif buffers >|= lift_error + let listen t callback = Log.debug (fun f -> f "activating switch port for %s" (Ipaddr.V4.to_string t.rule)); let last_active_time = Unix.gettimeofday () in let port = { callback; last_active_time } in t.switch.rules <- RuleMap.add t.rule port t.switch.rules; - Lwt.return_unit + Lwt.return (Ok ()) + let disconnect t = Log.debug (fun f -> f "deactivating switch port for %s" (Ipaddr.V4.to_string t.rule)); diff --git a/src/hostnet/mux.mli b/src/hostnet/mux.mli index e0a3e0d8f..6927d508d 100644 --- a/src/hostnet/mux.mli +++ b/src/hostnet/mux.mli @@ -1,5 +1,5 @@ -module Make(Netif: V1_LWT.NETWORK) : sig - include V1_LWT.NETWORK +module Make(Netif: Mirage_net_lwt.S) : sig + include Mirage_net_lwt.S (** A simple ethernet multiplexer/demultiplexer @@ -14,14 +14,14 @@ module Make(Netif: V1_LWT.NETWORK) : sig *) - val connect: Netif.t -> t Lwt.t + val connect: Netif.t -> (t, error) result Lwt.t (** Connect a multiplexer/demultiplexer and return a [t] which behaves like a V1_LWT.NETWORK representing the multiplexed end. *) type rule = Ipaddr.V4.t (** We currently support matching on IPv4 destination addresses only *) - module Port : V1_LWT.NETWORK + module Port : Mirage_net_lwt.S (** A network which receives all the traffic matching a specific rule *) val port: t -> rule -> Port.t diff --git a/src/hostnet/sig.ml b/src/hostnet/sig.ml index 9b6f6c478..8f9f48f04 100644 --- a/src/hostnet/sig.ml +++ b/src/hostnet/sig.ml @@ -3,12 +3,12 @@ module type READ_INTO = sig type error val read_into: flow -> Cstruct.t -> - [ `Eof | `Error of error | `Ok of unit ] Lwt.t + (unit Mirage_flow.or_eof, error) result Lwt.t (** Completely fills the given buffer with data from [fd] *) end module type FLOW_CLIENT = sig - include Mirage_flow_s.SHUTDOWNABLE + include Mirage_flow_lwt.SHUTDOWNABLE type address @@ -19,7 +19,7 @@ module type FLOW_CLIENT = sig end module type CONN = sig - include V1_LWT.FLOW + include Mirage_flow_lwt.S include READ_INTO with type flow := flow @@ -166,8 +166,7 @@ module type HOST = sig include FILES end - module Time: V1_LWT.TIME - module Clock: V1.CLOCK + module Time: Mirage_time_lwt.S module Dns: sig include DNS @@ -199,7 +198,7 @@ end module type VMNET = sig (** A virtual ethernet link to the VM *) - include V1_LWT.NETWORK + include Mirage_net_lwt.S val add_listener: t -> (Cstruct.t -> unit Lwt.t) -> unit (** Add a callback which will be invoked in parallel with all received packets *) diff --git a/src/hostnet/slirp.ml b/src/hostnet/slirp.ml index e65843ada..d6e1ca74b 100644 --- a/src/hostnet/slirp.ml +++ b/src/hostnet/slirp.ml @@ -40,29 +40,12 @@ let log_exception_continue description f = Lwt.return () ) -module Infix = struct - let ( >>= ) m f = m >>= function - | `Ok x -> f x - | `Error x -> Lwt.return (`Error x) -end - let failf fmt = Fmt.kstrf Lwt.fail_with fmt -let errorf fmt = Fmt.kstrf (fun e -> Lwt.return (`Error (`Msg e))) fmt let or_failwith name m = - m >>= function - | `Error _ -> failf "Failed to connect %s device" name - | `Ok x -> Lwt.return x - -let or_failwith_result name m = m >>= function | Error _ -> failf "Failed to connect %s device" name - | Ok x -> Lwt.return x - -let or_error name m = - m >>= function - | `Error _ -> errorf "Failed to connect %s device" name - | `Ok x -> Lwt.return (`Ok x) + | Ok x -> Lwt.return x let restart_on_change name to_string values = Active_config.tl values @@ -90,7 +73,7 @@ type uuid_table = { table: (Uuidm.t, Ipaddr.V4.t * int) Hashtbl.t; } -type config = { +type 'a config = { server_macaddr: Macaddr.t; peer_ip: Ipaddr.V4.t; local_ip: Ipaddr.V4.t; @@ -103,22 +86,28 @@ type config = { bridge_connections: bool; mtu: int; host_names: Dns.Name.t list; + clock: 'a; } module Make (Config: Active_config.S) (Vmnet: Sig.VMNET) (Dns_policy: Sig.DNS_POLICY) + (Clock: sig + include Mirage_clock_lwt.MCLOCK + val connect: unit -> t Lwt.t + end) + (Random: Mirage_random.C) (Host: Sig.HOST) (Vnet : Vnetif.BACKEND with type macaddr = Macaddr.t) = struct (* module Tcpip_stack = Tcpip_stack.Make(Vmnet)(Host.Time) *) - module Filteredif = Filter.Make(Vmnet) +module Filteredif = Filter.Make(Vmnet) module Netif = Capture.Make(Filteredif) module Recorder = (Netif: Sig.RECORDER with type t = Netif.t) module Switch = Mux.Make(Netif) - module Dhcp = Dhcp.Make(Switch) + module Dhcp = Dhcp.Make(Clock)(Switch) (* This ARP implementation will respond to the VM: *) module Global_arp_ethif = Ethif.Make(Switch) @@ -127,10 +116,10 @@ struct (* This stack will attach to a switch port and represent a single remote IP *) module Stack_ethif = Ethif.Make(Switch.Port) module Stack_arpv4 = Arp.Make(Stack_ethif) - module Stack_ipv4 = Ipv4.Make(Stack_ethif)(Stack_arpv4) + module Stack_ipv4 = Static_ipv4.Make(Stack_ethif)(Stack_arpv4) module Stack_icmpv4 = Icmpv4.Make(Stack_ipv4) module Stack_tcp_wire = Tcp.Wire.Make(Stack_ipv4) - module Stack_udp = Udp.Make(Stack_ipv4) + module Stack_udp = Udp.Make(Stack_ipv4)(Random) module Stack_tcp = struct include Tcp.Flow.Make(Stack_ipv4)(Host.Time)(Clock)(Random) let shutdown_read _flow = @@ -143,18 +132,23 @@ struct module Dns_forwarder = Hostnet_dns.Make(Stack_ipv4)(Stack_udp)(Stack_tcp)(Host.Sockets)(Host.Dns) - (Host.Time)(Host.Clock)(Recorder) + (Host.Time)(Clock)(Recorder) module Http_forwarder = Hostnet_http.Make(Stack_ipv4)(Stack_udp)(Stack_tcp)(Host.Sockets)(Host.Dns) - module Udp_nat = Hostnet_udp.Make(Host.Sockets)(Host.Time) + module Udp_nat = Hostnet_udp.Make(Host.Sockets)(Clock)(Host.Time) + + let dns_forwarder ~local_address ~host_names clock = + Dns_forwarder.create ~local_address ~host_names clock (Dns_policy.config ()) (* Global variable containing the global DNS configuration *) let dns = let ip = Ipaddr.V4 (Ipaddr.V4.of_string_exn default_host) in let local_address = { Dns_forward.Config.Address.ip; port = 0 } in - ref (Dns_forwarder.create ~local_address ~host_names:[] @@ - Dns_policy.config ()) + ref ( + Clock.connect () >>= fun clock -> + dns_forwarder ~local_address ~host_names:[] clock + ) (* Global variable containing the global HTTP proxy configuration *) let http = @@ -175,35 +169,39 @@ struct | _ -> false let string_of_id id = + let src = Stack_tcp_wire.src id in + let src_port = Stack_tcp_wire.src_port id in + let dst = Stack_tcp_wire.dst id in + let dst_port = Stack_tcp_wire.dst_port id in Fmt.strf "TCP %a:%d > %a:%d" - Ipaddr.V4.pp_hum id.Stack_tcp_wire.dest_ip id.Stack_tcp_wire.dest_port - Ipaddr.V4.pp_hum id.Stack_tcp_wire.local_ip id.Stack_tcp_wire.local_port + Ipaddr.V4.pp_hum dst dst_port + Ipaddr.V4.pp_hum src src_port module Tcp = struct module Id = struct module M = struct - type t = Stack_tcp_wire.id - let compare - { Stack_tcp_wire.local_ip = local_ip1; - local_port = local_port1; - dest_ip = dest_ip1; - dest_port = dest_port1 } - { Stack_tcp_wire.local_ip = local_ip2; - local_port = local_port2; - dest_ip = dest_ip2; - dest_port = dest_port2 } = - let dest_ip' = Ipaddr.V4.compare dest_ip1 dest_ip2 in - let local_ip' = Ipaddr.V4.compare local_ip1 local_ip2 in - let dest_port' = compare dest_port1 dest_port2 in - let local_port' = compare local_port1 local_port2 in - if dest_port' <> 0 - then dest_port' - else if dest_ip' <> 0 - then dest_ip' - else if local_ip' <> 0 - then local_ip' - else local_port' + type t = Stack_tcp_wire.t + let compare id1 id2 = + let dst_ip1 = Stack_tcp_wire.dst id1 in + let dst_port1 = Stack_tcp_wire.dst_port id1 in + let dst_ip2 = Stack_tcp_wire.dst id2 in + let dst_port2 = Stack_tcp_wire.dst_port id2 in + let src_ip1 = Stack_tcp_wire.src id1 in + let src_port1 = Stack_tcp_wire.src_port id1 in + let src_ip2 = Stack_tcp_wire.src id2 in + let src_port2 = Stack_tcp_wire.src_port id2 in + let dst_ip' = Ipaddr.V4.compare dst_ip1 dst_ip2 in + let dst_port' = compare dst_port1 dst_port2 in + let src_ip' = Ipaddr.V4.compare src_ip1 src_ip2 in + let src_port' = compare src_port1 src_port2 in + if dst_port' <> 0 + then dst_port' + else if dst_ip' <> 0 + then dst_ip' + else if src_port' <> 0 + then src_port' + else src_ip' end include M module Set = Set.Make(M) @@ -214,7 +212,7 @@ struct (** An established flow *) type t = { - id: Stack_tcp_wire.id; + id: Stack_tcp_wire.t; mutable socket: Host.Sockets.Stream.Tcp.flow option; mutable last_active_time: float; } @@ -257,6 +255,7 @@ struct icmpv4: Stack_icmpv4.t; udp4: Stack_udp.t; tcp4: Stack_tcp.t; + clock: Clock.t; mutable pending: Tcp.Id.Set.t; mutable last_active_time: float; } @@ -265,37 +264,29 @@ struct let touch t = t.last_active_time <- Unix.gettimeofday () - let create recorder switch arp_table ip mtu = + let create recorder switch arp_table ip mtu clock = let netif = Switch.port switch ip in - let open Infix in - or_error "Stack_ethif.connect" @@ Stack_ethif.connect ~mtu netif - >>= fun ethif -> - or_error "Stack_arpv4.connect" @@ Stack_arpv4.connect ~table:arp_table ethif - >>= fun arp -> - or_error "Stack_ipv4.connect" @@ Stack_ipv4.connect ethif arp + Stack_ethif.connect ~mtu netif >>= fun ethif -> + Stack_arpv4.connect ~table:arp_table ethif |>fun arp -> + Stack_ipv4.connect + ~gateway:None + ~network:Ipaddr.V4.(Prefix.of_addr unspecified) + ethif arp >>= fun ipv4 -> - or_error "Stack_icmpv4.connect" @@ Stack_icmpv4.connect ipv4 - >>= fun icmpv4 -> - or_error "Stack_udp.connect" @@ Stack_udp.connect ipv4 - >>= fun udp4 -> - or_error "Stack_tcp.connect" @@ Stack_tcp.connect ipv4 - >>= fun tcp4 -> + Stack_icmpv4.connect ipv4 >>= fun icmpv4 -> + Stack_udp.connect ipv4 >>= fun udp4 -> + Stack_tcp.connect ipv4 clock >>= fun tcp4 -> - let open Lwt.Infix in Stack_ipv4.set_ip ipv4 ip (* I am the destination *) >>= fun () -> - Stack_ipv4.set_ip_netmask ipv4 Ipaddr.V4.unspecified (* 0.0.0.0 *) - >>= fun () -> - Stack_ipv4.set_ip_gateways ipv4 [ ] - >>= fun () -> let pending = Tcp.Id.Set.empty in let last_active_time = Unix.gettimeofday () in let tcp_stack = { recorder; netif; ethif; arp; ipv4; icmpv4; udp4; tcp4; pending; - last_active_time } + last_active_time; clock } in - Lwt.return (`Ok tcp_stack) + Lwt.return tcp_stack let intercept_tcp_syn t ~id ~syn on_syn_callback (buf: Cstruct.t) = if syn then begin @@ -311,8 +302,9 @@ struct (fun () -> on_syn_callback () >>= fun listeners -> - Stack_tcp.input t.tcp4 ~listeners ~src:id.Stack_tcp_wire.dest_ip - ~dst:id.Stack_tcp_wire.local_ip buf + let src = Stack_tcp_wire.dst id in + let dst = Stack_tcp_wire.src id in + Stack_tcp.input t.tcp4 ~listeners ~src ~dst buf ) (fun () -> t.pending <- Tcp.Id.Set.remove id t.pending; Lwt.return_unit; @@ -321,10 +313,14 @@ struct end else begin Tcp.Flow.touch id; (* non-SYN packets are injected into the stack as normal *) - Stack_tcp.input t.tcp4 ~listeners:(fun _ -> None) - ~src:id.Stack_tcp_wire.dest_ip ~dst:id.Stack_tcp_wire.local_ip buf + let src = Stack_tcp_wire.dst id in + let dst = Stack_tcp_wire.src id in + Stack_tcp.input t.tcp4 ~listeners:(fun _ -> None) ~src ~dst buf end + module Proxy = + Mirage_flow_lwt.Proxy(Clock)(Stack_tcp)(Host.Sockets.Stream.Tcp) + let input_tcp t ~id ~syn (ip, port) (buf: Cstruct.t) = intercept_tcp_syn t ~id ~syn (fun () -> Host.Sockets.Stream.Tcp.connect (ip, port) @@ -335,36 +331,33 @@ struct Ipaddr.pp_hum ip port m); Lwt.return (fun _ -> None) | Ok socket -> - let t = Tcp.Flow.create id socket in + let tcp = Tcp.Flow.create id socket in let listeners port = Log.debug (fun f -> f "%a:%d handshake complete" Ipaddr.pp_hum ip port); let f flow = - match t.Tcp.Flow.socket with + match tcp.Tcp.Flow.socket with | None -> Log.err (fun f -> f "%s callback called on closed socket" - (Tcp.Flow.to_string t)); + (Tcp.Flow.to_string tcp)); Lwt.return_unit | Some socket -> Lwt.finalize (fun () -> - Mirage_flow.proxy - (module Clock) - (module Stack_tcp) flow - (module Host.Sockets.Stream.Tcp) socket () + Proxy.proxy t.clock flow socket >>= function - | `Error (`Msg m) -> + | Error e -> Log.debug (fun f -> - f "%s proxy failed with %s" - (Tcp.Flow.to_string t) m); + f "%s proxy failed with %a" + (Tcp.Flow.to_string tcp) Proxy.pp_error e); Lwt.return_unit - | `Ok (_l_stats, _r_stats) -> + | Ok (_l_stats, _r_stats) -> Lwt.return_unit ) (fun () -> Log.debug (fun f -> - f "closing flow %s" (string_of_id t.Tcp.Flow.id)); - t.Tcp.Flow.socket <- None; - Tcp.Flow.remove t.Tcp.Flow.id; + f "closing flow %s" (string_of_id tcp.Tcp.Flow.id)); + tcp.Tcp.Flow.socket <- None; + Tcp.Flow.remove tcp.Tcp.Flow.id; Host.Sockets.Stream.Tcp.close socket ) in @@ -436,8 +429,23 @@ struct open Frame + let pp_error ppf = function + | `Udp e -> Stack_udp.pp_error ppf e + | `Ipv4 e -> Stack_ipv4.pp_error ppf e + + let lift_ipv4_error = function + | Ok _ as x -> x + | Error e -> Error (`Ipv4 e) + + let lift_udp_error = function + | Ok _ as x -> x + | Error e -> Error (`Udp e) + + let ok () = Ok () + module Local = struct type t = { + clock: Clock.t; endpoint: Endpoint.t; udp_nat: Udp_nat.t; dns_ips: Ipaddr.V4.t list; @@ -456,6 +464,7 @@ struct | _ -> Lwt.return_unit in Stack_ipv4.input t.endpoint.Endpoint.ipv4 ~tcp:none ~udp:none ~default raw + >|= ok (* UDP on port 53 -> DNS forwarder *) | Ipv4 { src; dst; @@ -464,20 +473,20 @@ struct let udp = t.endpoint.Endpoint.udp4 in !dns >>= fun t -> Dns_forwarder.handle_udp ~t ~udp ~src ~dst ~src_port payload + >|= lift_udp_error (* TCP to port 53 -> DNS forwarder *) | Ipv4 { src; dst; payload = Tcp { src = src_port; dst = 53; syn; raw; payload = Payload _; _ }; _ } -> let id = - { Stack_tcp_wire.local_port = 53; dest_ip = src; local_ip = dst; - dest_port = src_port } + Stack_tcp_wire.v ~src_port:53 ~dst:src ~src:dst ~dst_port:src_port in - Endpoint.intercept_tcp_syn t.endpoint ~id ~syn - (fun () -> - !dns >>= fun t -> - Dns_forwarder.handle_tcp ~t + Endpoint.intercept_tcp_syn t.endpoint ~id ~syn (fun () -> + !dns >>= fun t -> + Dns_forwarder.handle_tcp ~t ) raw + >|= ok (* UDP to port 123: localhost NTP *) | Ipv4 { src; @@ -492,6 +501,7 @@ struct dst = Ipaddr.V4 localhost, 123; payload } in Udp_nat.input ~t:t.udp_nat ~datagram () + >|= ok (* UDP to any other port: localhost *) | Ipv4 { src; dst; ihl; dnf; raw; @@ -504,10 +514,11 @@ struct if Cstruct.len payload < len then begin Log.err (fun f -> f "%s: dropping because reported len %d actual len %d" description len (Cstruct.len payload)); - Lwt.return_unit + Lwt.return (Ok ()) end else if dnf && (Cstruct.len payload > safe_outgoing_mtu) then begin Endpoint.send_icmp_dst_unreachable t.endpoint ~src ~dst ~src_port ~dst_port ~ihl raw + >|= lift_ipv4_error end else begin (* [1] For UDP to our local address, rewrite the destination to localhost. This is the inverse of the rewrite @@ -517,6 +528,7 @@ struct dst = Ipaddr.(V4 V4.localhost), dst_port; payload } in Udp_nat.input ~t:t.udp_nat ~datagram () + >|= ok end (* TCP to local ports *) @@ -524,16 +536,16 @@ struct payload = Tcp { src = src_port; dst = dst_port; syn; raw; payload = Payload _; _ }; _ } -> let id = - { Stack_tcp_wire.local_port = dst_port; dest_ip = src; local_ip = dst; - dest_port = src_port } + Stack_tcp_wire.v ~src_port:dst_port ~dst:src ~src:dst ~dst_port:src_port in Endpoint.input_tcp t.endpoint ~id ~syn (Ipaddr.V4 Ipaddr.V4.localhost, dst_port) raw + >|= ok | _ -> - Lwt.return_unit + Lwt.return (Ok ()) - let create endpoint udp_nat dns_ips = - let tcp_stack = { endpoint; udp_nat; dns_ips } in + let create clock endpoint udp_nat dns_ips = + let tcp_stack = { clock; endpoint; udp_nat; dns_ips } in let open Lwt.Infix in (* Wire up the listeners to receive future packets: *) Switch.Port.listen endpoint.Endpoint.netif @@ -542,13 +554,17 @@ struct match parse [ buf ] with | Ok (Ethernet { payload = Ipv4 ipv4; _ }) -> Endpoint.touch endpoint; - input_ipv4 tcp_stack (Ipv4 ipv4) + (input_ipv4 tcp_stack (Ipv4 ipv4) >|= function + | Ok () -> () + | Error e -> + Log.err (fun l -> + l "error while reading IPv4 input: %a" pp_error e)) | _ -> Lwt.return_unit ) - >>= fun () -> - - Lwt.return (`Ok tcp_stack) + >|= function + | Ok () -> Ok tcp_stack + | Error _ as e -> e end @@ -572,12 +588,16 @@ struct | _ -> Lwt.return_unit in Stack_ipv4.input t.endpoint.Endpoint.ipv4 ~tcp:none ~udp:none ~default raw + >|= ok (* Transparent HTTP intercept? *) - | Ipv4 { src = dest_ip; dst = local_ip; + | Ipv4 { src = dest_ip ; dst = local_ip; payload = Tcp { src = dest_port; dst = local_port; syn; raw; _ }; _ } -> - let id = { Stack_tcp_wire.local_port; dest_ip; local_ip; dest_port } in + let id = + Stack_tcp_wire.v + ~src_port:local_port ~dst:dest_ip ~src:local_ip ~dst_port:dest_port + in let callback = match !http with | None -> None | Some http -> Http_forwarder.handle ~dst:(local_ip, local_port) ~t:http @@ -586,8 +606,10 @@ struct | None -> Endpoint.input_tcp t.endpoint ~id ~syn (Ipaddr.V4 local_ip, local_port) raw (* common case *) + >|= ok | Some cb -> Endpoint.intercept_tcp_syn t.endpoint ~id ~syn (fun _ -> cb) raw + >|= ok end | Ipv4 { src; dst; ihl; dnf; raw; payload = Udp { src = src_port; dst = dst_port; len; @@ -598,7 +620,7 @@ struct Log.err (fun f -> f "%s: dropping because reported len %d actual len %d" description len (Cstruct.len payload)); - Lwt.return_unit + Lwt_result.return () end else if dnf && (Cstruct.len payload > safe_outgoing_mtu) then begin Endpoint.send_icmp_dst_unreachable t.endpoint ~src ~dst ~src_port ~dst_port ~ihl raw @@ -608,10 +630,10 @@ struct dst = Ipaddr.V4 dst, dst_port; payload } in Udp_nat.input ~t:t.udp_nat ~datagram () + >|= ok end - | _ -> - Lwt.return_unit + | _ -> Lwt_result.return () let create endpoint udp_nat = let tcp_stack = { endpoint; udp_nat } in @@ -623,12 +645,18 @@ struct match parse [ buf ] with | Ok (Ethernet { payload = Ipv4 ipv4; _ }) -> Endpoint.touch endpoint; - input_ipv4 tcp_stack (Ipv4 ipv4) + (input_ipv4 tcp_stack (Ipv4 ipv4) >|= function + | Ok () -> () + | Error e -> + Log.err (fun l -> + l "error while reading IPv4 input: %a" + Stack_ipv4.pp_error e)) | _ -> Lwt.return_unit ) - >>= fun () -> - Lwt.return (`Ok tcp_stack) + >|= function + | Ok () -> Ok tcp_stack + | Error _ as e -> e end let filesystem t = @@ -654,13 +682,17 @@ struct ) let diagnostics t flow = - let module C = Channel.Make(Host.Sockets.Stream.Unix) in + let module C = Mirage_channel_lwt.Make(Host.Sockets.Stream.Unix) in let module Writer = Tar.HeaderWriter(Lwt)(struct type out_channel = C.t type 'a t = 'a Lwt.t let really_write oc buf = C.write_buffer oc buf; - C.flush oc + C.flush oc >|= function + | Ok () -> () + | Error e -> + Log.err (fun l -> + l "error while flushing tar channel: %a" C.pp_write_error e) end) in let c = C.create flow in @@ -672,7 +704,7 @@ struct Lwt.return_unit in let rec tar pwd dir = - let mod_time = Int64.of_float @@ Host.Clock.time () in + let mod_time = Int64.of_float @@ Unix.gettimeofday () in Vfs.Dir.ls dir >>?= fun inodes -> Lwt_list.iter_s @@ -701,7 +733,8 @@ struct else aux (Int64.add offset len) in aux 0L >>= fun () -> - Lwt.return (List.rev !fragments) in + Lwt.return (List.rev !fragments) + in copy () >>= fun fragments -> let length = @@ -716,26 +749,33 @@ struct >>= fun () -> List.iter (C.write_buffer c) fragments; C.write_buffer c (Tar.Header.zero_padding header); - C.flush c + C.flush c >|= function + | Ok () -> () + | Error e -> + Log.err (fun l -> + l "flushing of tar block failed: %a" C.pp_write_error e); ) inodes in tar "" (filesystem t) >>= fun () -> C.write_buffer c Tar.Header.zero_block; C.write_buffer c Tar.Header.zero_block; - C.flush c + C.flush c >|= function + | Ok () -> () + | Error e -> + Log.err (fun l -> + l "error while flushing the diagnostic: %a" C.pp_write_error e) module Debug = struct let get_nat_table_size t = Udp_nat.get_nat_table_size t.udp_nat let update_dns - ?(local_ip = Ipaddr.V4 Ipaddr.V4.localhost) ?(host_names = []) () + ?(local_ip = Ipaddr.V4 Ipaddr.V4.localhost) ?(host_names = []) clock = let local_address = { Dns_forward.Config.Address.ip = local_ip; port = 0 } in - dns := Dns_forwarder.create ~local_address ~host_names - (Dns_policy.config ()) + dns := dns_forwarder ~local_address ~host_names clock let update_http ?http:http_config ?https ?exclude () = Http_forwarder.create ?http:http_config ?https ?exclude () @@ -757,7 +797,7 @@ struct (* If no traffic is received for 5 minutes, delete the endpoint and the switch port. *) let rec delete_unused_endpoints t () = - Host.Time.sleep 30. + Host.Time.sleep_ns (Duration.of_sec 30) >>= fun () -> Lwt_mutex.with_lock t.endpoints_m (fun () -> @@ -777,16 +817,16 @@ struct let connect x l2_switch l2_client_id client_macaddr server_macaddr peer_ip local_ip highest_ip extra_dns_ip mtu get_domain_search get_domain_name - (global_arp_table:arp_table) use_bridge + (global_arp_table:arp_table) use_bridge clock = let valid_subnets = [ Ipaddr.V4.Prefix.global ] in let valid_sources = [ Ipaddr.V4.of_string_exn "0.0.0.0" ] in - or_failwith "filter" @@ Filteredif.connect ~valid_subnets ~valid_sources x - >>= fun (filteredif: Filteredif.t) -> - or_failwith "capture" @@ Netif.connect filteredif - >>= fun interface -> + Filteredif.connect ~valid_subnets ~valid_sources x + |> fun (filteredif: Filteredif.t) -> + Netif.connect filteredif + |> fun interface -> Dns_forwarder.set_recorder interface; let kib = 1024 in @@ -796,7 +836,7 @@ struct (* Capture 64KiB of NTP traffic *) Netif.add_match ~t:interface ~name:"ntp.pcap" ~limit:(64 * kib) ~snaplen:1500 ~predicate:is_ntp; - Switch.connect interface + or_failwith "Switch.connect" (Switch.connect interface) >>= fun switch -> (* Serve a static ARP table *) @@ -804,7 +844,7 @@ struct peer_ip, client_macaddr; local_ip, server_macaddr; ] @ (List.map (fun ip -> ip, server_macaddr) extra_dns_ip) in - or_failwith "arp_ethif" @@ Global_arp_ethif.connect switch + Global_arp_ethif.connect switch >>= fun global_arp_ethif -> (* Listen on local IPs *) @@ -818,11 +858,11 @@ struct end in let dhcp = Dhcp.make ~server_macaddr ~peer_ip ~highest_peer_ip ~local_ip - ~extra_dns_ip ~get_domain_search ~get_domain_name switch in + ~extra_dns_ip ~get_domain_search ~get_domain_name clock switch in let endpoints = IPMap.empty in let endpoints_m = Lwt_mutex.create () in - let udp_nat = Udp_nat.create () in + let udp_nat = Udp_nat.create clock in let t = { l2_switch; l2_client_id; @@ -839,13 +879,12 @@ struct Lwt_mutex.with_lock t.endpoints_m (fun () -> if IPMap.mem ip t.endpoints - then Lwt.return (`Ok (IPMap.find ip t.endpoints)) + then Lwt.return (Ok (IPMap.find ip t.endpoints)) else begin - let open Infix in - Endpoint.create interface switch local_arp_table ip mtu - >>= fun endpoint -> + Endpoint.create interface switch local_arp_table ip mtu clock + >|= fun endpoint -> t.endpoints <- IPMap.add ip endpoint t.endpoints; - Lwt.return (`Ok endpoint) + Ok endpoint end ) in @@ -860,15 +899,18 @@ struct then local_ip else src in begin - find_endpoint src - >>= function - | `Error (`Msg m) -> + find_endpoint src >>= function + | Error (`Msg m) -> Log.err (fun f -> f "Failed to create an endpoint for %a: %s" Ipaddr.V4.pp_hum dst m); Lwt.return_unit - | `Ok endpoint -> - Stack_udp.write ~source_port:src_port ~dest_ip:dst ~dest_port:dst_port - endpoint.Endpoint.udp4 payload + | Ok endpoint -> + Stack_udp.write ~src_port ~dst ~dst_port endpoint.Endpoint.udp4 payload + >|= function + | Error e -> + Log.err (fun f -> + f "Failed to write a UDP packet: %a" Stack_udp.pp_error e); + | Ok () -> () end | { Hostnet_udp.src = src, src_port; dst = dst, dst_port; _ } -> Log.err (fun f -> @@ -888,7 +930,10 @@ struct l2_client_id (Macaddr.to_string eth_src) (Macaddr.to_string eth_dst)); - Switch.write switch buf + (Switch.write switch buf >|= function + | Ok () -> () + | Error e -> + Log.err (fun l -> l "switch write failed: %a" Switch.pp_error e)) (* write packets from virtual network directly to client *) | _ -> Lwt.return_unit ); end; @@ -910,7 +955,10 @@ struct f "%d: forwarded to bridge for %s->%s" l2_client_id (Macaddr.to_string eth_src) (Macaddr.to_string eth_dst)); (* pass to virtual network *) - Vnet.write t.l2_switch t.l2_client_id buf + Vnet.write t.l2_switch t.l2_client_id buf >|= function + | Ok () -> () + | Error e -> + Log.err (fun l -> l "Vnet write failed: %a" Mirage_device.pp_error e) end else begin Lwt.return_unit (* drop if bridge is not used *) end @@ -935,59 +983,72 @@ struct if use_bridge then begin (* reply with global table if bridge is in use *) Lwt_mutex.with_lock global_arp_table.mutex (fun _ -> - or_failwith "arp" @@ Global_arp.connect ~table:global_arp_table.table - global_arp_ethif) + global_arp_ethif + |> Lwt.return) end else begin (* if not, use local table *) - or_failwith "arp" @@ Global_arp.connect ~table:local_arp_table global_arp_ethif + |> Lwt.return end end >>= fun arp -> - Global_arp.input arp (Cstruct.shift buf Wire_structs.sizeof_ethernet) + Global_arp.input arp (Cstruct.shift buf Ethif_wire.sizeof_ethernet) | Ok (Ethernet { payload = Ipv4 ({ dst; _ } as ipv4 ); _ }) -> (* For any new IP destination, create a stack to proxy for the remote system *) if List.mem dst local_ips then begin begin - let open Infix in - find_endpoint dst - >>= fun endpoint -> + let open Lwt_result.Infix in + find_endpoint dst >>= fun endpoint -> Log.debug (fun f -> f "creating local TCP/IP proxy for %a" Ipaddr.V4.pp_hum dst); - Local.create endpoint udp_nat local_ips + Local.create clock endpoint udp_nat local_ips end >>= function - | `Error (`Msg m) -> - Log.err (fun f -> f "Failed to create a TCP/IP stack: %s" m); + | Error e -> + Log.err (fun f -> + f "Failed to create a TCP/IP stack: %a" Switch.Port.pp_error e); Lwt.return_unit - | `Ok tcp_stack -> + | Ok tcp_stack -> (* inject the ethernet frame into the new stack *) - Local.input_ipv4 tcp_stack (Ipv4 ipv4) + Local.input_ipv4 tcp_stack (Ipv4 ipv4) >|= function + | Ok () -> () + | Error e -> + Log.err (fun f -> f "failed to read TCP/IP input: %a" pp_error e); end else begin begin - let open Infix in - find_endpoint dst - >>= fun endpoint -> + let open Lwt_result.Infix in + find_endpoint dst >>= fun endpoint -> Log.debug (fun f -> f "create remote TCP/IP proxy for %a" Ipaddr.V4.pp_hum dst); Remote.create endpoint udp_nat end >>= function - | `Error (`Msg m) -> - Log.err (fun f -> f "Failed to create a TCP/IP stack: %s" m); + | Error e -> + Log.err (fun f -> + f "Failed to create a TCP/IP stack: %a" + Switch.Port.pp_error e); Lwt.return_unit - | `Ok tcp_stack -> + | Ok tcp_stack -> (* inject the ethernet frame into the new stack *) - Remote.input_ipv4 tcp_stack (Ipv4 ipv4) + Remote.input_ipv4 tcp_stack (Ipv4 ipv4) >|= function + | Ok () -> () + | Error e -> + Log.err (fun l -> + l "error while reading remote IPv4 input: %a" + Stack_ipv4.pp_error e) end | _ -> Lwt.return_unit ) - >>= fun () -> - Log.info (fun f -> f "TCP/IP ready"); - Lwt.return t - - let create ?(host_names = [ Dns.Name.of_string "vpnkit.host" ]) config = + >>= function + | Error e -> + Log.err (fun f -> f "TCP/IP not ready: %a" Switch.pp_error e); + Lwt.fail_with "not ready" + | Ok () -> + Log.info (fun f -> f "TCP/IP ready"); + Lwt.return t + + let create ?(host_names = [ Dns.Name.of_string "vpnkit.host" ]) clock config = let driver = [ "com.docker.driver.amd64-linux" ] in let max_connections_path = driver @ [ "slirp"; "max-connections" ] in @@ -1190,17 +1251,13 @@ struct in Log.info (fun f -> f "updating resolvers to %s" (Hostnet_dns.Config.to_string config)); - !dns >>= fun t -> - Dns_forwarder.destroy t - >>= fun () -> + !dns >>= Dns_forwarder.destroy >|= fun () -> Dns_policy.remove ~priority:3; Dns_policy.add ~priority:3 ~config; let local_address = { Dns_forward.Config.Address.ip = Ipaddr.V4 local_ip; port = 0 } in - dns := Dns_forwarder.create ~local_address ~host_names - (Dns_policy.config ()); - Lwt.return_unit + dns := dns_forwarder ~local_address ~host_names clock in let rec monitor_dns_settings settings = @@ -1312,6 +1369,7 @@ struct bridge_connections; mtu; host_names; + clock; } in Lwt.return t @@ -1327,7 +1385,11 @@ struct Lwt.return mac (* may raise Not_found if id is unknown to the bridge *) end else begin (* new uuid, register in bridge *) (* register new client on bridge *) - or_failwith "l2_switch" @@ Lwt.return @@ Vnet.register l2_switch + let l2_client_id = match Vnet.register l2_switch with + | `Ok x -> Ok x + | `Error e -> Error e + in + or_failwith "l2_switch" @@ Lwt.return l2_client_id >>= fun l2_client_id -> let client_macaddr = (Vnet.mac l2_switch l2_client_id) in @@ -1411,7 +1473,7 @@ struct begin (* If bridge is in use, create unique IP and update global ARP *) if t.bridge_connections then begin - or_failwith_result "vmnet" @@ + or_failwith "vmnet" @@ Vmnet.of_fd ~client_macaddr_of_uuid:(client_macaddr_of_uuid t t.peer_ip l2_switch) ~server_macaddr:t.server_macaddr ~mtu:t.mtu client @@ -1423,10 +1485,10 @@ struct connect x l2_switch l2_client_id client_macaddr t.server_macaddr client_ip t.local_ip t.highest_ip t.extra_dns_ip t.mtu t.get_domain_search t.get_domain_name t.global_arp_table - t.bridge_connections + t.bridge_connections t.clock end else begin (* When bridge is disabled, just use fixed uuid and peer_ip from t *) - or_failwith_result "vmnet" @@ + or_failwith "vmnet" @@ Vmnet.of_fd ~client_macaddr_of_uuid:(fun _ -> Lwt.return default_client_macaddr) ~server_macaddr:t.server_macaddr ~mtu:t.mtu client @@ -1434,7 +1496,7 @@ struct let client_macaddr = Vmnet.get_client_macaddr x in connect x l2_switch (-1) client_macaddr t.server_macaddr t.peer_ip t.local_ip t.highest_ip t.extra_dns_ip t.mtu t.get_domain_search - t.get_domain_name t.global_arp_table t.bridge_connections + t.get_domain_name t.global_arp_table t.bridge_connections t.clock end end diff --git a/src/hostnet/slirp.mli b/src/hostnet/slirp.mli index 743c77b56..f46f9c9f7 100644 --- a/src/hostnet/slirp.mli +++ b/src/hostnet/slirp.mli @@ -14,7 +14,10 @@ type uuid_table = { table: (Uuidm.t, Ipaddr.V4.t * int) Hashtbl.t; } -type config = { +(** A slirp TCP/IP stack ready to accept connections *) + + +type 'clock config = { server_macaddr: Macaddr.t; peer_ip: Ipaddr.V4.t; local_ip: Ipaddr.V4.t; @@ -27,24 +30,29 @@ type config = { bridge_connections: bool; mtu: int; host_names: Dns.Name.t list; + clock: 'clock; } -(** A slirp TCP/IP stack ready to accept connections *) - module Make (Config: Active_config.S) (Vmnet: Sig.VMNET) (Dns_policy: Sig.DNS_POLICY) + (Clock: sig + include Mirage_clock_lwt.MCLOCK + val connect: unit -> t Lwt.t + end) + (Random: Mirage_random.C) (Host: Sig.HOST) - (Vnet : Vnetif.BACKEND) : + (Vnet : Vnetif.BACKEND with type macaddr = Macaddr.t) : sig - val create: ?host_names:Dns.Name.t list -> Config.t -> config Lwt.t + val create: ?host_names:Dns.Name.t list -> Clock.t -> Config.t -> + Clock.t config Lwt.t (** Initialise a TCP/IP stack, taking configuration from the Config.t *) type t - val connect: config -> Vmnet.fd -> Vnet.t -> t Lwt.t + val connect: Clock.t config -> Vmnet.fd -> Vnet.t -> t Lwt.t (** Read and write ethernet frames on the given fd, connected to the specified Vnetif backend *) @@ -62,7 +70,7 @@ sig (** Return the number of active NAT table entries *) val update_dns: ?local_ip:Ipaddr.t -> ?host_names:Dns.Name.t list -> - unit -> unit + Clock.t -> unit (** Update the DNS forwarder following a configuration change *) val update_http: ?http:string -> ?https:string -> ?exclude:string -> diff --git a/src/hostnet/vmnet.ml b/src/hostnet/vmnet.ml index 30bcd3be2..af5cde379 100644 --- a/src/hostnet/vmnet.ml +++ b/src/hostnet/vmnet.ml @@ -40,7 +40,7 @@ module Init = struct let version = Cstruct.LE.get_uint32 rest 5 in let commit = Cstruct.(to_string @@ sub rest 9 40) in let rest = Cstruct.shift rest sizeof in - Ok ({ magic; version; commit }, rest) + { magic; version; commit }, rest end module Command = struct @@ -147,18 +147,23 @@ end module Make(C: Sig.CONN) = struct - module Channel = Channel.Make(C) + module Channel = Mirage_channel_lwt.Make(C) - type stats = { - mutable rx_bytes: int64; - mutable rx_pkts: int32; - mutable tx_bytes: int64; - mutable tx_pkts: int32; - } + type page_aligned_buffer = Io_page.t + type macaddr = Macaddr.t + type 'a io = 'a Lwt.t + type buffer = Cstruct.t + type error = [Mirage_device.error | `Channel of Channel.write_error] + + let pp_error ppf = function + | #Mirage_device.error as e -> Mirage_device.pp_error ppf e + | `Channel e -> Channel.pp_write_error ppf e + + let failf fmt = Fmt.kstrf (fun e -> Lwt_result.fail (`Msg e)) fmt type t = { mutable fd: Channel.t option; - stats: stats; + stats: Mirage_net.stats; client_uuid: Uuidm.t; client_macaddr: Macaddr.t; server_macaddr: Macaddr.t; @@ -174,89 +179,76 @@ module Make(C: Sig.CONN) = struct after_disconnect_u: unit Lwt.u; } - let error_of_failure f = - Lwt.catch f (fun e -> Lwt_result.fail (`Msg (Printexc.to_string e))) - - exception Disconnected - - let get_fd t = match t.fd with - | Some fd -> fd - | None -> raise Disconnected - let get_client_uuid t = t.client_uuid let get_client_macaddr t = t.client_macaddr + let err_eof = Lwt_result.fail (`Msg "error: got EOF") + let err_read e = failf "error while reading: %a" Channel.pp_error e + let err_flush e = failf "error while flushing: %a" Channel.pp_write_error e + + let with_read x f = + x >>= function + | Error e -> err_read e + | Ok `Eof -> err_eof + | Ok (`Data x) -> f x + + let with_flush x f = + x >>= function + | Error e -> err_flush e + | Ok () -> f () + + let with_msg x f = + match x with + | Ok x -> f x + | Error _ as e -> Lwt.return e + let server_negotiate ~fd ~client_macaddr_of_uuid ~mtu = - error_of_failure (fun () -> - Channel.read_exactly ~len:Init.sizeof fd - >>= fun bufs -> - let buf = Cstruct.concat bufs in - let open Lwt_result.Infix in - Lwt.return (Init.unmarshal buf) - >>= fun (init, _) -> - Log.info (fun f -> - f "PPP.negotiate: received %s" (Init.to_string init)); - let (_: Cstruct.t) = Init.marshal Init.default buf in - let open Lwt.Infix in - Channel.write_buffer fd buf; - Channel.flush fd - >>= fun () -> - Channel.read_exactly ~len:Command.sizeof fd - >>= fun bufs -> - let buf = Cstruct.concat bufs in - let open Lwt_result.Infix in - Lwt.return (Command.unmarshal buf) - >>= fun (command, _) -> - Log.info (fun f -> - f "PPP.negotiate: received %s" (Command.to_string command)); - match command with - | Command.Ethernet uuid -> begin - let open Lwt.Infix in - client_macaddr_of_uuid uuid - >>= fun client_macaddr -> - let vif = Vif.create client_macaddr mtu () in - let buf = Cstruct.create Vif.sizeof in - let (_: Cstruct.t) = Vif.marshal vif buf in - let open Lwt.Infix in - Log.info (fun f -> f "PPP.negotiate: sending %s" (Vif.to_string vif)); - Channel.write_buffer fd buf; - Channel.flush fd - >>= fun () -> - Lwt_result.return (uuid, client_macaddr) - end - | Command.Bind_ipv4 _ -> - raise (Failure "PPP.negotiate: unsupported command Bind_ipv4") - ) + with_read (Channel.read_exactly ~len:Init.sizeof fd) @@ fun bufs -> + let buf = Cstruct.concat bufs in + let init, _ = Init.unmarshal buf in + Log.info (fun f -> f "PPP.negotiate: received %s" (Init.to_string init)); + let (_: Cstruct.t) = Init.marshal Init.default buf in + Channel.write_buffer fd buf; + with_flush (Channel.flush fd) @@ fun () -> + with_read (Channel.read_exactly ~len:Command.sizeof fd) @@ fun bufs -> + let buf = Cstruct.concat bufs in + with_msg (Command.unmarshal buf) @@ fun (command, _) -> + Log.info (fun f -> + f "PPP.negotiate: received %s" (Command.to_string command)); + match command with + | Command.Bind_ipv4 _ -> failf "PPP.negotiate: unsupported command Bind_ipv4" + | Command.Ethernet uuid -> + client_macaddr_of_uuid uuid >>= fun client_macaddr -> + let vif = Vif.create client_macaddr mtu () in + let buf = Cstruct.create Vif.sizeof in + let (_: Cstruct.t) = Vif.marshal vif buf in + Log.info (fun f -> f "PPP.negotiate: sending %s" (Vif.to_string vif)); + Channel.write_buffer fd buf; + with_flush (Channel.flush fd) @@ fun () -> + Lwt_result.return (uuid, client_macaddr) let client_negotiate ~uuid ~fd = - error_of_failure - (fun () -> - let open Lwt.Infix in - let buf = Cstruct.create Init.sizeof in - let (_: Cstruct.t) = Init.marshal Init.default buf in - Channel.write_buffer fd buf; - Channel.flush fd >>= fun () -> - Channel.read_exactly ~len:Init.sizeof fd >>= fun bufs -> - let buf = Cstruct.concat bufs in - let open Lwt_result.Infix in - Lwt.return (Init.unmarshal buf) >>= fun (init, _) -> - Log.info (fun f -> - f "Client.negotiate: received %s" (Init.to_string init)); - let buf = Cstruct.create Command.sizeof in - let (_: Cstruct.t) = Command.marshal (Command.Ethernet uuid) buf in - let open Lwt.Infix in - Channel.write_buffer fd buf; - Channel.flush fd >>= fun () -> - Channel.read_exactly ~len:Vif.sizeof fd >>= fun bufs -> - let buf = Cstruct.concat bufs in - let open Lwt_result.Infix in - Lwt.return (Vif.unmarshal buf)>>= fun (vif, _) -> - Log.debug (fun f -> f "Client.negotiate: vif %s" (Vif.to_string vif)); - Lwt_result.return (vif) - ) + let buf = Cstruct.create Init.sizeof in + let (_: Cstruct.t) = Init.marshal Init.default buf in + Channel.write_buffer fd buf; + with_flush (Channel.flush fd) @@ fun () -> + with_read (Channel.read_exactly ~len:Init.sizeof fd) @@ fun bufs -> + let buf = Cstruct.concat bufs in + let init, _ = Init.unmarshal buf in + Log.info (fun f -> f "Client.negotiate: received %s" (Init.to_string init)); + let buf = Cstruct.create Command.sizeof in + let (_: Cstruct.t) = Command.marshal (Command.Ethernet uuid) buf in + Channel.write_buffer fd buf; + with_flush (Channel.flush fd) @@ fun () -> + with_read (Channel.read_exactly ~len:Vif.sizeof fd) @@ fun bufs -> + let buf = Cstruct.concat bufs in + let open Lwt_result.Infix in + Lwt.return (Vif.unmarshal buf) >>= fun (vif, _) -> + Log.debug (fun f -> f "Client.negotiate: vif %s" (Vif.to_string vif)); + Lwt_result.return (vif) (* Use blocking I/O here so we can avoid Using Lwt_unix or Uwt. Ideally we would use a FLOW handle referencing a file/stream. *) @@ -308,7 +300,7 @@ module Make(C: Sig.CONN) = struct let make ~client_macaddr ~server_macaddr ~mtu ~client_uuid fd = let fd = Some fd in - let stats = { rx_bytes = 0L; rx_pkts = 0l; tx_bytes = 0L; tx_pkts = 0l } in + let stats = Mirage_net.Stats.create () in let write_header = Cstruct.create (1024 * Packet.sizeof) in let write_m = Lwt_mutex.create () in let pcap = None in @@ -347,9 +339,14 @@ module Make(C: Sig.CONN) = struct | Some fd -> t.fd <- None; Log.debug (fun f -> f "Vmnet.disconnect flushing channel"); - Channel.flush fd >>= fun () -> - Lwt.wakeup_later t.after_disconnect_u (); - Lwt.return () + (Channel.flush fd >|= function + | Ok () -> () + | Error e -> + Log.err (fun l -> + l "error while disconnecting the vmtnet connection: %a" + Channel.pp_write_error e); + ) >|= fun () -> + Lwt.wakeup_later t.after_disconnect_u () let after_disconnect t = t.after_disconnect @@ -379,163 +376,146 @@ module Make(C: Sig.CONN) = struct Lwt.return_unit ) - let drop_on_error f = Lwt.catch f (fun _ -> Lwt.return ()) - let writev t bufs = Lwt_mutex.with_lock t.write_m (fun () -> - drop_on_error (fun () -> - capture t bufs >>= fun () -> - let len = List.(fold_left (+) 0 (map Cstruct.len bufs)) in - if len > (t.mtu + ethernet_header_length) then begin - Log.err (fun f -> - f "Dropping over-large ethernet frame, length = %d, mtu = \ - %d" len t.mtu - ); - Lwt.return_unit - end else begin - let buf = Cstruct.create Packet.sizeof in - Packet.marshal len buf; - let fd = get_fd t in - Channel.write_buffer fd buf; - Log.debug (fun f -> - let b = Buffer.create 128 in - List.iter (Cstruct.hexdump_to_buffer b) bufs; - f "sending\n%s" (Buffer.contents b) - ); - List.iter (Channel.write_buffer fd) bufs; - Channel.flush fd - end - ) + capture t bufs >>= fun () -> + let len = List.(fold_left (+) 0 (map Cstruct.len bufs)) in + if len > (t.mtu + ethernet_header_length) then begin + Log.err (fun f -> + f "Dropping over-large ethernet frame, length = %d, mtu = \ + %d" len t.mtu + ); + Lwt_result.return () + end else begin + let buf = Cstruct.create Packet.sizeof in + Packet.marshal len buf; + match t.fd with + | None -> Lwt_result.fail `Disconnected + | Some fd -> + Channel.write_buffer fd buf; + Log.debug (fun f -> + let b = Buffer.create 128 in + List.iter (Cstruct.hexdump_to_buffer b) bufs; + f "sending\n%s" (Buffer.contents b) + ); + List.iter (Channel.write_buffer fd) bufs; + Channel.flush fd >|= function + | Ok () -> Ok () + | Error e -> Error (`Channel e) + end ) + let err_eof = + Log.debug (fun f -> f "PPP.listen: closing connection"); + Lwt.return false + + let err_unexpected t pp e = + Log.err (fun f -> + f "PPP.listen: caught unexpected %a: disconnecting" pp e); + disconnect t >>= fun () -> + Lwt.return false + + let with_fd t f = match t.fd with + | None -> Lwt.return false + | Some fd -> f fd + + let with_read t x f = + x >>= function + | Error e -> err_unexpected t Channel.pp_error e + | Ok `Eof -> err_eof + | Ok (`Data x) -> f x + + let with_msg t x f = + match x with + | Error (`Msg e) -> err_unexpected t Fmt.string e + | Ok x -> f x + let listen t callback = if t.listening then begin Log.debug (fun f -> f "PPP.listen: called a second time: doing nothing"); - Lwt.return (); + Lwt.return (Ok ()); end else begin t.listening <- true; let last_error_log = ref 0. in let rec loop () = - let open Lwt_result.Infix in - Lwt.catch - (fun () -> - let open Lwt.Infix in - let fd = get_fd t in - Channel.read_exactly ~len:Packet.sizeof fd - >>= fun bufs -> - let read_header = Cstruct.concat bufs in - let open Lwt_result.Infix in - Lwt.return (Packet.unmarshal read_header) - >>= fun (len, _) -> - let open Lwt.Infix in - Channel.read_exactly ~len fd - >>= fun bufs -> - capture t bufs - >>= fun () -> - Log.debug (fun f -> - let b = Buffer.create 128 in - List.iter (Cstruct.hexdump_to_buffer b) bufs; - f "received\n%s" (Buffer.contents b) - ); - let buf = Cstruct.concat bufs in - let callback buf = - Lwt.catch (fun () -> callback buf) - (function - | Host_uwt.Sockets.Too_many_connections - | Host_lwt_unix.Sockets.Too_many_connections -> - (* No need to log this again *) - Lwt.return_unit - | e -> - let now = Unix.gettimeofday () in - if (now -. !last_error_log) > 30. then begin - Log.err (fun f -> - f "PPP.listen callback caught %a" Fmt.exn e); - last_error_log := now; - end; - Lwt.return_unit - ) in - Lwt.async (fun () -> callback buf); - List.iter (fun callback -> - Lwt.async (fun () -> callback buf) - ) t.listeners; - Lwt_result.return true - ) (function - | End_of_file -> - Log.debug (fun f -> f "PPP.listen: closing connection"); - Lwt_result.return false - | Disconnected -> - Lwt_result.return false - | e -> - Log.err (fun f -> - f "PPP.listen: caught unexpected %a: disconnecting" Fmt.exn e); - let open Lwt.Infix in - disconnect t - >>= fun () -> - Lwt_result.return false - ) - >>= fun continue -> - if continue then loop () else Lwt_result.return () in + (with_fd t @@ fun fd -> + with_read t (Channel.read_exactly ~len:Packet.sizeof fd) @@ fun bufs -> + let read_header = Cstruct.concat bufs in + with_msg t (Packet.unmarshal read_header) @@ fun (len, _) -> + with_read t (Channel.read_exactly ~len fd) @@ fun bufs -> + capture t bufs >>= fun () -> + Log.debug (fun f -> + let b = Buffer.create 128 in + List.iter (Cstruct.hexdump_to_buffer b) bufs; + f "received\n%s" (Buffer.contents b) + ); + let buf = Cstruct.concat bufs in + let callback buf = + Lwt.catch (fun () -> callback buf) + (function + | Host_uwt.Sockets.Too_many_connections + | Host_lwt_unix.Sockets.Too_many_connections -> + (* No need to log this again *) + Lwt.return_unit + | e -> + let now = Unix.gettimeofday () in + if (now -. !last_error_log) > 30. then begin + Log.err (fun f -> + f "PPP.listen callback caught %a" Fmt.exn e); + last_error_log := now; + end; + Lwt.return_unit + ) + in + Lwt.async (fun () -> callback buf); + List.iter (fun callback -> + Lwt.async (fun () -> callback buf) + ) t.listeners; + Lwt.return true + ) >>= function + | true -> loop () + | false -> Lwt.return () + in Lwt.async @@ loop; - Lwt.return (); + Lwt.return (Ok ()); end let write t buf = Lwt_mutex.with_lock t.write_m (fun () -> - drop_on_error (fun () -> - capture t [ buf ] >>= fun () -> - let len = Cstruct.len buf in - if len > (t.mtu + ethernet_header_length) then begin - Log.err (fun f -> - f "Dropping over-large ethernet frame, length = %d, mtu = \ - %d" len t.mtu - ); - Lwt.return_unit - end else begin - if Cstruct.len t.write_header < Packet.sizeof then begin - t.write_header <- Cstruct.create (1024 * Packet.sizeof) - end; - Packet.marshal len t.write_header; - let fd = get_fd t in - Channel.write_buffer fd - (Cstruct.sub t.write_header 0 Packet.sizeof); - t.write_header <- Cstruct.shift t.write_header Packet.sizeof; - Log.debug (fun f -> - let b = Buffer.create 128 in - Cstruct.hexdump_to_buffer b buf; - f "sending\n%s" (Buffer.contents b) - ); - Channel.write_buffer fd buf; - Channel.flush fd - end)) - - let add_listener t callback = - t.listeners <- callback :: t.listeners + capture t [ buf ] >>= fun () -> + let len = Cstruct.len buf in + if len > (t.mtu + ethernet_header_length) then begin + Log.err (fun f -> + f "Dropping over-large ethernet frame, length = %d, mtu = \ + %d" len t.mtu + ); + Lwt.return (Ok ()) + end else begin + if Cstruct.len t.write_header < Packet.sizeof then begin + t.write_header <- Cstruct.create (1024 * Packet.sizeof) + end; + Packet.marshal len t.write_header; + match t.fd with + | None -> Lwt.return (Error `Disconnected) + | Some fd -> + Channel.write_buffer fd + (Cstruct.sub t.write_header 0 Packet.sizeof); + t.write_header <- Cstruct.shift t.write_header Packet.sizeof; + Log.debug (fun f -> + let b = Buffer.create 128 in + Cstruct.hexdump_to_buffer b buf; + f "sending\n%s" (Buffer.contents b) + ); + Channel.write_buffer fd buf; + Channel.flush fd >|= function + | Ok () -> Ok () + | Error e -> Error (`Channel e) + end) + let add_listener t callback = t.listeners <- callback :: t.listeners let mac t = t.server_macaddr - - type page_aligned_buffer = Io_page.t - - type buffer = Cstruct.t - - type error = [ - | `Unknown of string - | `Unimplemented - | `Disconnected - ] - - type macaddr = Macaddr.t - - type 'a io = 'a Lwt.t - - type id = unit - let get_stats_counters t = t.stats - - let reset_stats_counters t = - t.stats.rx_bytes <- 0L; - t.stats.tx_bytes <- 0L; - t.stats.rx_pkts <- 0l; - t.stats.tx_pkts <- 0l + let reset_stats_counters t = Mirage_net.Stats.reset t.stats end diff --git a/src/hostnet/vmnet.mli b/src/hostnet/vmnet.mli index e602666d0..62e54b026 100644 --- a/src/hostnet/vmnet.mli +++ b/src/hostnet/vmnet.mli @@ -4,8 +4,7 @@ module Make(C: Sig.CONN): sig type fd = C.flow - include V1_LWT.NETWORK - with type buffer = Cstruct.t + include Mirage_net_lwt.S with type buffer = Cstruct.t val after_disconnect: t -> unit Lwt.t (** [after_disconnect connection] resolves after [connection] has @@ -52,7 +51,7 @@ module Init : sig val default: t val marshal: t -> Cstruct.t -> Cstruct.t - val unmarshal: Cstruct.t -> (t * Cstruct.t, [ `Msg of string ]) result + val unmarshal: Cstruct.t -> t * Cstruct.t end module Command : sig diff --git a/src/ofs/active_config.ml b/src/ofs/active_config.ml index f8986eeef..be44aaaea 100644 --- a/src/ofs/active_config.ml +++ b/src/ofs/active_config.ml @@ -64,7 +64,7 @@ module type S = sig val bool: t -> default:bool -> path -> bool values Lwt.t end -module Make(Time: V1_LWT.TIME)(FLOW: V1_LWT.FLOW) = struct +module Make(Time: Mirage_time_lwt.S)(FLOW: Mirage_flow_lwt.S) = struct module Client = Protocol_9p.Client.Make(Log)(FLOW) @@ -132,13 +132,13 @@ module Make(Time: V1_LWT.TIME)(FLOW: V1_LWT.FLOW) = struct Client.connect flow ?username () ) >>= function | Error (`Msg x) -> - Time.sleep 0.1 + Time.sleep_ns (Duration.of_ms 100) >>= fun () -> loop ~x (n - 1) | Ok conn -> Lwt.return conn ) (fun e -> - Time.sleep 0.1 + Time.sleep_ns (Duration.of_ms 100) >>= fun () -> loop ~x:(Printexc.to_string e) (n - 1) ) in diff --git a/src/ofs/active_config.mli b/src/ofs/active_config.mli index 024ef17e8..c40aecde3 100644 --- a/src/ofs/active_config.mli +++ b/src/ofs/active_config.mli @@ -32,7 +32,7 @@ module type S = sig (** The stream of bool values at [path] *) end -module Make(Time: V1_LWT.TIME)(FLOW: V1_LWT.FLOW): sig +module Make(Time: Mirage_time_lwt.S)(FLOW: Mirage_flow_lwt.S): sig include S val create: ?username:string -> branch:string diff --git a/src/ofs/active_list.ml b/src/ofs/active_list.ml index cda42f9ba..5bde48cb8 100644 --- a/src/ofs/active_list.ml +++ b/src/ofs/active_list.ml @@ -33,6 +33,7 @@ end module type Instance = sig type t + type clock val to_string: t -> string val of_string: string -> (t, [ `Msg of string ]) result @@ -41,7 +42,7 @@ module type Instance = sig type context (** The context in which a [t] is [start]ed, for example a TCP/IP stack *) - val start: context Var.t -> t -> (t, [ `Msg of string ]) result Lwt.t + val start: clock -> context Var.t -> t -> (t, [ `Msg of string ]) result Lwt.t val stop: t -> unit Lwt.t @@ -49,28 +50,21 @@ module type Instance = sig val get_key: t -> key end -module Transaction = struct - type t = { - name: string; (* directory name *) - mutable source: string; - mutable destination: string; - } -end - module StringMap = Map.Make(String) -module Make(Instance: Instance) = struct +module Make (Instance: Instance) = struct open Protocol_9p type t = { mutable context: Instance.context Var.t; + clock: Instance.clock; } - let make () = + let make clock = let context = Var.create () in - { context } + { context; clock } - let set_context { context } x = Var.fill context x + let set_context { context; _ } x = Var.fill context x (* We manage a list of named entries *) type entry = { @@ -105,8 +99,6 @@ module Make(Instance: Instance) = struct module Error = struct let badfid = Lwt.return (Response.error "fid not found") - let badwalk = Lwt.return (Response.error "bad walk") (* TODO: ? *) - let enoent = Lwt.return (Response.error "file not found") let eperm = Lwt.return (Response.error "permission denied") end @@ -209,14 +201,6 @@ The directory will be deleted and replaced with a file of the same name. connection.fids := Types.Fid.Map.remove fid !(connection.fids); return () - let disconnect connection _ = - Log.debug (fun f -> f "disconnecting 9P client"); - let resources = - Types.Fid.Map.fold (fun _ resource acc -> resource :: acc) - !(connection.fids) [] - in - Lwt_list.iter_s free_resource resources - let open_ _connection ~cancel:_ _ = try let qid = next_qid [] in @@ -245,11 +229,6 @@ The directory will be deleted and replaced with a file of the same name. u = None; }) - let errors_to_client = (function - | Error (`Msg msg) -> Error { Response.Err.ename = msg; errno = None } - | Ok _ as ok -> ok - ) - let read_children count offset children = let buf = Cstruct.create count in let rec write off rest = function @@ -366,7 +345,8 @@ The directory will be deleted and replaced with a file of the same name. end else begin match Instance.of_string @@ Cstruct.to_string data with | Ok f -> let open Lwt.Infix in - begin Instance.start connection.t.context f >>= function + begin Instance.start connection.t.clock connection.t.context f >>= + function | Ok f' -> (* local_port is resolved *) entry.instance <- Some f'; entry.result <- Some ("OK " ^ (Instance.to_string f') ^ "\n"); diff --git a/src/ofs/jbuild b/src/ofs/jbuild index fc282f939..47f9784c0 100644 --- a/src/ofs/jbuild +++ b/src/ofs/jbuild @@ -2,6 +2,7 @@ (library ((name ofs) - (libraries (protocol-9p protocol-9p.unix cstruct cstruct.lwt lwt.unix - io-page.unix logs mirage-types.lwt astring named-pipe.lwt)) + (libraries (protocol-9p protocol-9p-unix cstruct cstruct-lwt lwt.unix + io-page-unix logs astring named-pipe.lwt + mirage-time-lwt mirage-flow-lwt duration)) (wrapped false))) diff --git a/vpnkit.opam b/vpnkit.opam index 9e15b3185..07bf72d06 100644 --- a/vpnkit.opam +++ b/vpnkit.opam @@ -56,6 +56,7 @@ depends: [ "astring" "mirage-flow-lwt" {>= "1.4.0"} "mirage-time-lwt" {>= "1.1.0"} + "mirage-time-unix" "mirage-protocols" {>= "1.1.0"} "mirage-channel" {>= "3.0.1"} "mirage-console-unix" From 619c27d4c8b332c4617e8d73348655c504de3d4c Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Fri, 28 Jul 2017 15:33:08 +0200 Subject: [PATCH 07/32] Update the tests to MirageOS 3 Signed-off-by: Thomas Gazagnaire --- src/hostnet_test/forwarding.ml | 75 +++++++------- src/hostnet_test/jbuild | 4 +- src/hostnet_test/slirp_stack.ml | 50 ++++------ src/hostnet_test/suite.ml | 92 +++++++++-------- src/hostnet_test/test_half_close.ml | 51 ++++++---- src/hostnet_test/test_http.ml | 39 +++++--- src/hostnet_test/test_nat.ml | 150 ++++++++++++++++------------ 7 files changed, 255 insertions(+), 206 deletions(-) diff --git a/src/hostnet_test/forwarding.ml b/src/hostnet_test/forwarding.ml index 9580060b0..02eefbd7f 100644 --- a/src/hostnet_test/forwarding.ml +++ b/src/hostnet_test/forwarding.ml @@ -13,25 +13,29 @@ let (>>*=) m f = m >>= function module Make(Host: Sig.HOST) = struct - let run ?(timeout=60.) t = + let run ?(timeout=Duration.of_sec 60) t = let timeout = - Host.Time.sleep timeout >>= fun () -> + Host.Time.sleep_ns timeout >>= fun () -> Lwt.fail_with "timeout" in Host.Main.run @@ Lwt.pick [ timeout; t ] - module Channel = Channel.Make(Host.Sockets.Stream.Tcp) + module Channel = Mirage_channel_lwt.Make(Host.Sockets.Stream.Tcp) module ForwardServer = struct (** Accept connections, read the forwarding header and run a proxy *) + module Proxy = + Mirage_flow_lwt.Proxy + (Mclock)(Host.Sockets.Stream.Tcp)(Host.Sockets.Stream.Tcp) + let accept flow = let sizeof = 1 + 2 + 4 + 2 in let header = Cstruct.create sizeof in Host.Sockets.Stream.Tcp.read_into flow header >>= function - | `Eof -> failwith "EOF" - | `Error e -> failwith (Host.Sockets.Stream.Tcp.error_message e) - | `Ok () -> + | Ok `Eof -> failwith "EOF" + | Error e -> Fmt.kstrf failwith "%a" Host.Sockets.Stream.Tcp.pp_error e + | Ok (`Data ()) -> let ip_len = Cstruct.LE.get_uint16 header 1 in let ip = let bytes = Cstruct.(to_string @@ sub header 3 ip_len) in @@ -44,14 +48,11 @@ module Make(Host: Sig.HOST) = struct Host.Sockets.Stream.Tcp.connect (Ipaddr.V4 ip, port) >>= function | Error (`Msg x) -> failwith x | Ok remote -> + Mclock.connect () >>= fun clock -> Lwt.finalize (fun () -> - Mirage_flow.proxy - (module Clock) - (module Host.Sockets.Stream.Tcp) flow - (module Host.Sockets.Stream.Tcp) remote () - >>= function - | `Error (`Msg m) -> failwith m - | `Ok (_l_stats, _r_stats) -> Lwt.return () + Proxy.proxy clock flow remote >>= function + | Error e -> Fmt.kstrf failwith "%a" Proxy.pp_error e + | Ok (_l_stats, _r_stats) -> Lwt.return () ) (fun () -> Host.Sockets.Stream.Tcp.close remote ) @@ -69,7 +70,7 @@ module Make(Host: Sig.HOST) = struct } end - module Forward = Forward.Make(struct + module Forward = Forward.Make(Mclock)(struct include Host.Sockets.Stream.Tcp open Lwt.Infix @@ -89,7 +90,8 @@ module Make(Host: Sig.HOST) = struct module Server = Protocol_9p.Server.Make(Log)(Host.Sockets.Stream.Tcp)(Ports) let with_server f = - let ports = Ports.make () in + Mclock.connect () >>= fun clock -> + let ports = Ports.make clock in Ports.set_context ports ""; Host.Sockets.Stream.Tcp.bind (Ipaddr.V4 localhost, 0) >>= fun server -> @@ -120,11 +122,14 @@ module Make(Host: Sig.HOST) = struct let read_http ch = let rec loop acc = - Channel.read_line ch >>= fun bufs -> - let txt = Cstruct.(to_string (concat bufs)) in - if txt = "" - then Lwt.return acc - else loop (acc ^ txt) + Channel.read_line ch >>= function + | Ok `Eof + | Error _ -> Lwt.return acc + | Ok (`Data bufs) -> + let txt = Cstruct.(to_string (concat bufs)) in + if txt = "" + then Lwt.return acc + else loop (acc ^ txt) in loop "" @@ -141,7 +146,9 @@ module Make(Host: Sig.HOST) = struct then failwith (Printf.sprintf "unrecognised HTTP GET: [%s]" request); let response = "HTTP/1.0 404 Not found\r\ncontent-length: 0\r\n\r\n" in Channel.write_string ch response 0 (String.length response); - Channel.flush ch + Channel.flush ch >|= function + | Ok () -> () + | Error e -> Fmt.kstrf failwith "%a" Channel.pp_write_error e let create () = Host.Sockets.Stream.Tcp.bind (Ipaddr.V4 localhost, 0) @@ -181,13 +188,13 @@ module Make(Host: Sig.HOST) = struct type forward = { t: t; - fid: Protocol_9p_types.Fid.t; + fid: Protocol_9p.Types.Fid.t; ip: Ipaddr.V4.t; port: int; } let create t string = - let mode = Protocol_9p_types.FileMode.make ~is_directory:true + let mode = Protocol_9p.Types.FileMode.make ~is_directory:true ~owner:[`Read; `Write; `Execute] ~group:[`Read; `Execute] ~other:[`Read; `Execute ] () in Client.mkdir t.ninep [] string mode @@ -196,7 +203,7 @@ module Make(Host: Sig.HOST) = struct >>*= fun fid -> Client.walk_from_root t.ninep fid [ string; "ctl" ] >>*= fun _walk -> - Client.LowLevel.openfid t.ninep fid Protocol_9p_types.OpenMode.read_write + Client.LowLevel.openfid t.ninep fid Protocol_9p.Types.OpenMode.read_write >>*= fun _open -> let buf = Cstruct.create (String.length string) in Cstruct.blit_from_string string 0 buf 0 (String.length string); @@ -204,7 +211,7 @@ module Make(Host: Sig.HOST) = struct >>*= fun _write -> Client.LowLevel.read t.ninep fid 0L 1024l >>*= fun read -> - let response = Cstruct.to_string read.Protocol_9p_response.Read.data in + let response = Cstruct.to_string read.Protocol_9p.Response.Read.data in if Astring.String.is_prefix ~affix:"OK " response then begin let line = String.sub response 3 (String.length response - 3) in (* tcp:127.0.0.1:64500:tcp:127.0.0.1:64499 *) @@ -229,15 +236,15 @@ module Make(Host: Sig.HOST) = struct let ch = Channel.create flow in let message = "GET / HTTP/1.0\r\nconnection: close\r\n\r\n" in Channel.write_string ch message 0 (String.length message); - Channel.flush ch - >>= fun () -> - Host.Sockets.Stream.Tcp.shutdown_write flow - >>= fun () -> - read_http ch - >>= fun response -> - if not(Astring.String.is_prefix ~affix:"HTTP" response) - then failwith (Printf.sprintf "unrecognised HTTP response: [%s]" response); - Lwt.return () + Channel.flush ch >>= function + | Error e -> Fmt.kstrf failwith "%a" Channel.pp_write_error e + | Ok () -> + Host.Sockets.Stream.Tcp.shutdown_write flow + >>= fun () -> + read_http ch + >|= fun response -> + if not(Astring.String.is_prefix ~affix:"HTTP" response) + then failwith (Printf.sprintf "unrecognised HTTP response: [%s]" response) let test_one_forward () = let t = LocalServer.with_server (fun server -> diff --git a/src/hostnet_test/jbuild b/src/hostnet_test/jbuild index 554d46823..bcc0a5668 100644 --- a/src/hostnet_test/jbuild +++ b/src/hostnet_test/jbuild @@ -3,7 +3,7 @@ (executables ((names (main_lwt main_uwt)) (libraries ( - hostnet cmdliner alcotest lwt.unix logs.fmt - dns.mirage lwt.preemptive uwt.preemptive + hostnet cmdliner alcotest lwt.unix logs.fmt protocol-9p + mirage-dns lwt.preemptive uwt.preemptive mirage-clock-unix )) (preprocess no_preprocessing))) diff --git a/src/hostnet_test/slirp_stack.ml b/src/hostnet_test/slirp_stack.ml index 3a6ce90a2..299d5707d 100644 --- a/src/hostnet_test/slirp_stack.ml +++ b/src/hostnet_test/slirp_stack.ml @@ -66,48 +66,38 @@ module Make(Host: Sig.HOST) = struct module VMNET = Vmnet.Make(Host.Sockets.Stream.Tcp) module Config = Active_config.Make(Host.Time)(Host.Sockets.Stream.Unix) module Vnet = Basic_backend.Make - module Slirp_stack = Slirp.Make(Config)(VMNET)(Dns_policy)(Host)(Vnet) + module Slirp_stack = + Slirp.Make(Config)(VMNET)(Dns_policy)(Mclock)(Stdlibrandom)(Host)(Vnet) module Client = struct module Netif = VMNET module Ethif1 = Ethif.Make(Netif) - module Arpv41 = Arpv4.Make(Ethif1)(Clock)(Host.Time) - module Ipv41 = Ipv4.Make(Ethif1)(Arpv41) + module Arpv41 = Arpv4.Make(Ethif1)(Mclock)(Host.Time) + module Ipv41 = Static_ipv4.Make(Ethif1)(Arpv41) module Icmpv41 = Icmpv4.Make(Ipv41) - module Udp1 = Udp.Make(Ipv41) - module Tcp1 = Tcp.Flow.Make(Ipv41)(Host.Time)(Clock)(Random) - include Tcpip_stack_direct.Make(Console_unix)(Host.Time) - (Random)(Netif)(Ethif1)(Arpv41)(Ipv41)(Icmpv41)(Udp1)(Tcp1) + module Udp1 = Udp.Make(Ipv41)(Stdlibrandom) + module Tcp1 = Tcp.Flow.Make(Ipv41)(Host.Time)(Mclock)(Stdlibrandom) + include Tcpip_stack_direct.Make(Host.Time) + (Stdlibrandom)(Netif)(Ethif1)(Arpv41)(Ipv41)(Icmpv41)(Udp1)(Tcp1) let or_error name m = - let open Lwt.Infix in m >>= function | `Error _ -> Fmt.kstrf failwith "Failed to connect %s device" name | `Ok x -> Lwt.return x let connect (interface: VMNET.t) = - let open Lwt.Infix in - or_error "console" @@ Console_unix.connect "0" - >>= fun console -> - or_error "ethernet" @@ Ethif1.connect interface - >>= fun ethif -> - or_error "arp" @@ Arpv41.connect ethif - >>= fun arp -> - or_error "ipv4" @@ Ipv41.connect ethif arp - >>= fun ipv4 -> - or_error "icmpv4" @@ Icmpv41.connect ipv4 - >>= fun icmpv4 -> - or_error "udp" @@ Udp1.connect ipv4 - >>= fun udp4 -> - or_error "tcp" @@ Tcp1.connect ipv4 - >>= fun tcp4 -> + Ethif1.connect interface >>= fun ethif -> + Mclock.connect () >>= fun clock -> + Arpv41.connect ethif clock >>= fun arp -> + Ipv41.connect ethif arp >>= fun ipv4 -> + Icmpv41.connect ipv4 >>= fun icmpv4 -> + Udp1.connect ipv4 >>= fun udp4 -> + Tcp1.connect ipv4 clock >>= fun tcp4 -> let cfg = { - V1_LWT. name = "stackv4_ip"; - console; + Mirage_stack_lwt.name = "stackv4_ip"; interface; - mode = `DHCP; } in - or_error "stack" @@ connect cfg ethif arp ipv4 icmpv4 udp4 tcp4 + connect cfg ethif arp ipv4 icmpv4 udp4 tcp4 >>= fun stack -> Lwt.return stack end @@ -137,6 +127,7 @@ module Make(Host: Sig.HOST) = struct } let config_without_bridge = + Mclock.connect () >|= fun clock -> { Slirp.peer_ip; local_ip; @@ -150,6 +141,7 @@ module Make(Host: Sig.HOST) = struct global_arp_table; mtu = 1500; host_names = []; + clock; } (* This is a hacky way to get a hancle to the server side of the stack. *) @@ -178,7 +170,9 @@ module Make(Host: Sig.HOST) = struct ); port - let connection = start_stack (Vnet.create ()) config_without_bridge () + let connection = + config_without_bridge >>= fun config -> + start_stack (Vnet.create ()) config () let with_stack f = connection >>= fun port -> diff --git a/src/hostnet_test/suite.ml b/src/hostnet_test/suite.ml index 83e6d66ae..aab74f656 100644 --- a/src/hostnet_test/suite.ml +++ b/src/hostnet_test/suite.ml @@ -16,9 +16,9 @@ module Make(Host: Sig.HOST) = struct module Slirp_stack = Slirp_stack.Make(Host) open Slirp_stack - let run_test ?(timeout=60.) t = + let run_test ?(timeout=Duration.of_sec 60) t = let timeout = - Host.Time.sleep timeout >>= fun () -> + Host.Time.sleep_ns timeout >>= fun () -> Lwt.fail_with "timeout" in Host.Main.run @@ Lwt.pick [ timeout; t ] @@ -34,14 +34,15 @@ module Make(Host: Sig.HOST) = struct run t let set_dns_policy ?host_names use_host = + Mclock.connect () >|= fun clock -> Dns_policy.remove ~priority:3; Dns_policy.add ~priority:3 ~config:(if use_host then `Host else Dns_policy.google_dns); - Slirp_stack.Debug.update_dns ?host_names () + Slirp_stack.Debug.update_dns ?host_names clock let test_dns_query server use_host () = - set_dns_policy use_host; let t _ stack = + set_dns_policy use_host >>= fun () -> let resolver = DNS.create stack in DNS.gethostbyname ~server resolver "www.google.com" >|= function | (_ :: _) as ips -> @@ -54,8 +55,9 @@ module Make(Host: Sig.HOST) = struct let test_builtin_dns_query server use_host () = let name = "experimental.host.name.localhost" in - set_dns_policy ~host_names:[ Dns.Name.of_string name ] use_host; let t _ stack = + set_dns_policy ~host_names:[ Dns.Name.of_string name ] use_host + >>= fun () -> let resolver = DNS.create stack in DNS.gethostbyname ~server resolver name >>= function | (_ :: _) as ips -> @@ -68,9 +70,9 @@ module Make(Host: Sig.HOST) = struct run t let test_etc_hosts_query server use_host () = - set_dns_policy use_host; let test_name = "vpnkit.is.cool.yes.really" in let t _ stack = + set_dns_policy use_host >>= fun () -> let resolver = DNS.create stack in DNS.gethostbyname ~server resolver test_name >>= function | (_ :: _) as ips -> @@ -104,11 +106,11 @@ module Make(Host: Sig.HOST) = struct begin Client.TCPV4.create_connection (Client.tcpv4 stack) (ip, 80) >|= function - | `Ok _ -> + | Ok _ -> Log.err (fun f -> f "Connected to www.google.com, max_connections exceeded"); failwith "too many connections" - | `Error _ -> + | Error _ -> Log.debug (fun f -> f "Expected failure to connect to www.google.com") end @@ -118,9 +120,9 @@ module Make(Host: Sig.HOST) = struct begin Client.TCPV4.create_connection (Client.tcpv4 stack) (ip, 80) >|= function - | `Ok _ -> + | Ok _ -> Log.debug (fun f -> f "Connected to www.google.com"); - | `Error _ -> + | Error _ -> Log.debug (fun f -> f "Failure to connect to www.google.com: removing \ max_connections limit didn't work"); @@ -135,7 +137,7 @@ module Make(Host: Sig.HOST) = struct Lwt.return_unit ) in - run ~timeout:240.0 t + run ~timeout:(Duration.of_sec 240) t let test_http_fetch () = let t _ stack = @@ -145,33 +147,33 @@ module Make(Host: Sig.HOST) = struct begin Client.TCPV4.create_connection (Client.tcpv4 stack) (ip, 80) >>= function - | `Error _ -> + | Error _ -> Log.err (fun f -> f "Failed to connect to www.google.com:80"); failwith "http_fetch" - | `Ok flow -> + | Ok flow -> Log.info (fun f -> f "Connected to www.google.com:80"); let page = Io_page.(to_cstruct (get 1)) in let http_get = "GET / HTTP/1.0\nHost: anil.recoil.org\n\n" in Cstruct.blit_from_string http_get 0 page 0 (String.length http_get); let buf = Cstruct.sub page 0 (String.length http_get) in Client.TCPV4.write flow buf >>= function - | `Eof -> + | Error `Closed -> Log.err (fun f -> f "EOF writing HTTP request to www.google.com:80"); failwith "EOF on writing HTTP GET" - | `Error _ -> + | Error _ -> Log.err (fun f -> f "Failure writing HTTP request to www.google.com:80"); failwith "Failure on writing HTTP GET" - | `Ok _buf -> + | Ok () -> let rec loop total_bytes = Client.TCPV4.read flow >>= function - | `Eof -> Lwt.return total_bytes - | `Error _ -> + | Ok `Eof -> Lwt.return total_bytes + | Error _ -> Log.err (fun f -> f "Failure read HTTP response from www.google.com:80"); failwith "Failure on reading HTTP GET" - | `Ok buf -> + | Ok (`Data buf) -> Log.info (fun f -> f "Read %d bytes from www.google.com:80" (Cstruct.len buf)); Log.info (fun f -> f "%s" (Cstruct.to_string buf)); @@ -197,24 +199,24 @@ module Make(Host: Sig.HOST) = struct } let accept flow = - let module Channel = Channel.Make(Host.Sockets.Stream.Tcp) in + let module Channel = Mirage_channel_lwt.Make(Host.Sockets.Stream.Tcp) in let ch = Channel.create flow in (* XXX: this looks like it isn't tail recursive to me *) let rec drop_all_data count = - Lwt.catch (fun () -> - Channel.read_some ch >>= fun buffer -> - drop_all_data Int64.(add count (of_int (Cstruct.len buffer))) - ) (function - | End_of_file -> Lwt.return count - | e -> Lwt.fail e - ) + Channel.read_some ch >>= function + | Error e -> Fmt.kstrf Lwt.fail_with "%a" Channel.pp_error e + | Ok `Eof -> Lwt.return count + | Ok (`Data buffer) -> + drop_all_data Int64.(add count (of_int (Cstruct.len buffer))) in drop_all_data 0L >>= fun total -> let response = Cstruct.create 8 in Cstruct.LE.set_uint64 response 0 total; Channel.write_buffer ch response; - Channel.flush ch + Channel.flush ch >>= function + | Error e -> Fmt.kstrf Lwt.fail_with "%a" Channel.pp_write_error e + | Ok () -> Lwt.return_unit let create () = Host.Sockets.Stream.Tcp.bind (Ipaddr.V4 Ipaddr.V4.localhost, 0) @@ -253,12 +255,12 @@ module Make(Host: Sig.HOST) = struct Client.TCPV4.create_connection (Client.tcpv4 stack) (Ipaddr.V4.localhost, local_port) >>= function - | `Ok c -> + | Ok c -> Log.info (fun f -> f "Connected %d, total tracked connections %d" i (Host.Sockets.get_num_connections ())); loop (c :: acc) (i + 1) - | `Error _ -> + | Error _ -> Fmt.kstrf failwith "Connection %d failed, total tracked connections %d" i (Host.Sockets.get_num_connections ()) @@ -269,7 +271,7 @@ module Make(Host: Sig.HOST) = struct (List.length flows) (Host.Sockets.get_num_connections ())); (* How many connections is this? *) in - run' ~timeout:240.0 t + run' ~timeout:(Duration.of_sec 240) t let test_stream_data connections length () = let t local_port _ stack = @@ -278,18 +280,20 @@ module Make(Host: Sig.HOST) = struct Client.TCPV4.create_connection (Client.tcpv4 stack) (Ipaddr.V4.localhost, local_port) >>= function - | `Error `Refused -> + | Error `Refused -> Log.info (fun f -> f "DevNullServer Refused connection"); - Host.Time.sleep 0.2 + Host.Time.sleep_ns (Duration.of_ms 200) >>= fun () -> connect () - | `Error `Timeout -> + | Error `Timeout -> Log.err (fun f -> f "DevNullServer connection timeout"); failwith "DevNullServer connection timeout"; - | `Error (`Unknown x) -> - Log.err (fun f -> f "DevNullServer connnection failure: %s" x); - failwith x - | `Ok flow -> + | Error e -> + Log.err (fun f -> + f "DevNullServer connnection failure: %a" + Client.TCPV4.pp_error e); + Fmt.kstrf failwith "%a" Client.TCPV4.pp_error e + | Ok flow -> Log.info (fun f -> f "Connected to local server"); Lwt.return flow in @@ -304,32 +308,32 @@ module Make(Host: Sig.HOST) = struct let this_time = min remaining (Cstruct.len page) in let buf = Cstruct.sub page 0 this_time in Client.TCPV4.write flow buf >>= function - | `Eof -> + | Error `Closed -> Log.err (fun f -> f "EOF writing to DevNullServerwith %d bytes left" remaining); (* failwith "EOF on writing to DevNullServer" *) Lwt.return () - | `Error _ -> + | Error _ -> Log.err (fun f -> f "Failure writing to DevNullServer with %d bytes left" remaining); (* failwith "Failure on writing to DevNullServer" *) Lwt.return () - | `Ok () -> + | Ok () -> loop (remaining - this_time) end in loop length >>= fun () -> Client.TCPV4.close flow >>= fun () -> Client.TCPV4.read flow >|= function - | `Eof -> + | Ok `Eof -> Log.err (fun f -> f "EOF reading result from DevNullServer"); (* failwith "EOF reading result from DevNullServer" *) - | `Error _ -> + | Error _ -> Log.err (fun f -> f "Failure reading result from DevNullServer"); (* failwith "Failure on reading result from DevNullServer" *) - | `Ok buf -> + | Ok (`Data buf) -> Log.info (fun f -> f "Read %d bytes from DevNullServer" (Cstruct.len buf)); let response = Cstruct.LE.get_uint64 buf 0 in diff --git a/src/hostnet_test/test_half_close.ml b/src/hostnet_test/test_half_close.ml index 357d133ae..7ba4edbcb 100644 --- a/src/hostnet_test/test_half_close.ml +++ b/src/hostnet_test/test_half_close.ml @@ -31,15 +31,24 @@ module Make(Host: Sig.HOST) = struct Lwt.finalize (fun () -> f server) (fun () -> Server.destroy server) module Outgoing = struct - module C = Channel.Make(Slirp_stack.Client.TCPV4) + module C = Mirage_channel_lwt.Make(Slirp_stack.Client.TCPV4) end module Incoming = struct - module C = Channel.Make(Host.Sockets.Stream.Tcp) + module C = Mirage_channel_lwt.Make(Host.Sockets.Stream.Tcp) end let request = "Hello there" let response = "And hello to you" + let data = function + | Ok (`Data x) -> x + | Ok `Eof -> failwith "data: eof" + | Error _ -> failwith "data: error" + + let unit = function + | Ok () -> () + | Error _ -> failwith "unit: error" + (* Run a simple server on localhost and connect to it via vpnkit. The Mirage client will call `close` to trigger a half-close of the TCP connection before reading the response. This verifies that the other side @@ -53,12 +62,12 @@ module Make(Host: Sig.HOST) = struct (fun flow -> (* Read the request until EOF *) let ic = Incoming.C.create flow in - Incoming.C.read_line ic + Incoming.C.read_line ic >|= data >>= fun bufs -> let txt = Cstruct.(to_string @@ concat bufs) in if txt <> request then failwith (Printf.sprintf "Expected to read '%s', got '%s'" request txt); - Incoming.C.read_line ic + Incoming.C.read_line ic >|= data >>= fun bufs -> assert (Cstruct.(len @@ concat bufs) = 0); Log.info (fun f -> f "Read the request (up to and including EOF)"); @@ -66,7 +75,7 @@ module Make(Host: Sig.HOST) = struct (* Write a response. If the connection is fully closed rather than half-closed then this will fail. *) Incoming.C.write_line ic response; - Incoming.C.flush ic + Incoming.C.flush ic >|= unit >>= fun () -> Log.info (fun f -> f "Written response"); Lwt.wakeup_later forwarded_u (); @@ -79,24 +88,27 @@ module Make(Host: Sig.HOST) = struct let port = server.Server.port in Client.TCPV4.create_connection (Client.tcpv4 stack) (ip, port) >>= function - | `Ok flow -> + | Ok flow -> Log.info (fun f -> f "Connected to %s:%d" (Ipaddr.V4.to_string ip) port); let oc = Outgoing.C.create flow in Outgoing.C.write_line oc request; - Outgoing.C.flush oc + Outgoing.C.flush oc >|= unit >>= fun () -> (* This will perform a TCP half-close *) Client.TCPV4.close flow >>= fun () -> (* Verify the response is still intact *) - Outgoing.C.read_line oc + Outgoing.C.read_line oc >|= data >>= fun bufs -> let txt = Cstruct.(to_string @@ concat bufs) in if txt <> response then failwith (Printf.sprintf "Expected to read '%s', got '%s'" response txt); Log.info (fun f -> f "Read the response. Waiting for cleanup"); - Lwt.pick [ (Host.Time.sleep 100. >>= fun () -> Lwt.return `Timeout); (forwarded >>= fun x -> Lwt.return (`Result x)) ] - | `Error _ -> + Lwt.pick [ + (Host.Time.sleep_ns (Duration.of_sec 100) + >|= fun () -> `Timeout); + (forwarded >|= fun x -> `Result x) ] + | Error _ -> Log.err (fun f -> f "Failed to connect to %s:%d" (Ipaddr.V4.to_string ip) port); failwith "Client.TCPV4.create_connection" ) @@ -122,13 +134,13 @@ module Make(Host: Sig.HOST) = struct (* Write a request *) let ic = Incoming.C.create flow in Incoming.C.write_line ic request; - Incoming.C.flush ic + Incoming.C.flush ic >|= unit >>= fun () -> (* This will perform a TCP half-close *) Host.Sockets.Stream.Tcp.shutdown_write flow >>= fun () -> (* Read the response from the other side of the connection *) - Incoming.C.read_line ic + Incoming.C.read_line ic >|= data >>= fun bufs -> let txt = Cstruct.(to_string @@ concat bufs) in if txt <> response @@ -144,27 +156,30 @@ module Make(Host: Sig.HOST) = struct let port = server.Server.port in Client.TCPV4.create_connection (Client.tcpv4 stack) (ip, port) >>= function - | `Ok flow -> + | Ok flow -> Log.info (fun f -> f "Connected to %s:%d" (Ipaddr.V4.to_string ip) port); let oc = Outgoing.C.create flow in (* Read the request *) - Outgoing.C.read_line oc + Outgoing.C.read_line oc >|= data >>= fun bufs -> let txt = Cstruct.(to_string @@ concat bufs) in if txt <> request then failwith (Printf.sprintf "Expected to read '%s', got '%s'" request txt); (* Check we're at EOF *) - Outgoing.C.read_line oc + Outgoing.C.read_line oc >|= data >>= fun bufs -> assert (Cstruct.(len @@ concat bufs) = 0); Log.info (fun f -> f "Read the request (up to and including EOF)"); (* Write response *) Outgoing.C.write_line oc response; - Outgoing.C.flush oc + Outgoing.C.flush oc >|= unit >>= fun () -> Log.info (fun f -> f "Written response and will wait."); - Lwt.pick [ (Host.Time.sleep 100. >>= fun () -> Lwt.return `Timeout); (forwarded >>= fun x -> Lwt.return (`Result x)) ] - | `Error _ -> + Lwt.pick [ + (Host.Time.sleep_ns (Duration.of_sec 100) + >|= fun () -> `Timeout); + (forwarded >|= fun x -> `Result x) ] + | Error _ -> Log.err (fun f -> f "Failed to connect to %s:%d" (Ipaddr.V4.to_string ip) port); failwith "Client.TCPV4.create_connection" ) diff --git a/src/hostnet_test/test_http.ml b/src/hostnet_test/test_http.ml index 38cc24c02..fd09124fd 100644 --- a/src/hostnet_test/test_http.ml +++ b/src/hostnet_test/test_http.ml @@ -95,13 +95,13 @@ module Make(Host: Sig.HOST) = struct Lwt.finalize (fun () -> f server) (fun () -> Server.destroy server) module Outgoing = struct - module C = Channel.Make(Slirp_stack.Client.TCPV4) + module C = Mirage_channel_lwt.Make(Slirp_stack.Client.TCPV4) module IO = Cohttp_mirage_io.Make(C) module Request = Cohttp.Request.Make(IO) module Response = Cohttp.Response.Make(IO) end module Incoming = struct - module C = Channel.Make(Host.Sockets.Stream.Tcp) + module C = Mirage_channel_lwt.Make(Host.Sockets.Stream.Tcp) module IO = Cohttp_mirage_io.Make(C) module Request = Cohttp.Request.Make(IO) module Response = Cohttp.Response.Make(IO) @@ -111,12 +111,12 @@ module Make(Host: Sig.HOST) = struct let open Slirp_stack in Client.TCPV4.create_connection (Client.tcpv4 stack) (ip, 80) >>= function - | `Ok flow -> + | Ok flow -> Log.info (fun f -> f "Connected to %s:80" (Ipaddr.V4.to_string ip)); let oc = Outgoing.C.create flow in Outgoing.Request.write ~flush:true (fun _writer -> Lwt.return_unit) request oc - | `Error _ -> + | Error _ -> Log.err (fun f -> f "Failed to connect to %s:80" (Ipaddr.V4.to_string ip)); failwith "http_fetch" @@ -149,7 +149,8 @@ module Make(Host: Sig.HOST) = struct request >>= fun () -> Lwt.pick [ - (Host.Time.sleep 100. >>= fun () -> Lwt.return `Timeout); + (Host.Time.sleep_ns (Duration.of_sec 100) >|= fun () -> + `Timeout); (forwarded >>= fun x -> Lwt.return (`Result x)) ] ) @@ -247,6 +248,8 @@ module Make(Host: Sig.HOST) = struct Lwt.return () end + let err_flush e = Fmt.kstrf failwith "%a" Incoming.C.pp_write_error e + let test_http_connect () = let test_dst_ip = Ipaddr.V4.of_string_exn "1.2.3.4" in Host.Main.run begin @@ -276,10 +279,13 @@ module Make(Host: Sig.HOST) = struct so we write the header ourselves *) Incoming.C.write_line ic "HTTP/1.0 200 OK\r"; Incoming.C.write_line ic "\r"; - Incoming.C.flush ic - >>= fun () -> - Incoming.C.write_line ic "hello"; - Incoming.C.flush ic + Incoming.C.flush ic >>= function + | Error e -> err_flush e + | Ok () -> + Incoming.C.write_line ic "hello"; + Incoming.C.flush ic >|= function + | Error e -> err_flush e + | Ok () -> () ) (fun server -> Slirp_stack.Slirp_stack.Debug.update_http ~https:("127.0.0.1:" ^ (string_of_int server.Server.port)) () @@ -290,17 +296,20 @@ module Make(Host: Sig.HOST) = struct Client.TCPV4.create_connection (Client.tcpv4 stack) (test_dst_ip, 443) >>= function - | `Error _ -> + | Error _ -> Log.err (fun f -> f "TCPV4.create_connection %a:443 failed" Ipaddr.V4.pp_hum test_dst_ip); failwith "TCPV4.create_connection" - | `Ok flow -> + | Ok flow -> let ic = Outgoing.C.create flow in - Outgoing.C.read_some ~len:5 ic >>= fun buf -> - let txt = Cstruct.to_string buf in - Alcotest.check Alcotest.string "message" "hello" txt; - Lwt.return_unit + Outgoing.C.read_some ~len:5 ic >>= function + | Error e -> Fmt.kstrf failwith "%a" Outgoing.C.pp_error e + | Ok `Eof -> failwith "EOF" + | Ok (`Data buf) -> + let txt = Cstruct.to_string buf in + Alcotest.check Alcotest.string "message" "hello" txt; + Lwt.return_unit ) ) end diff --git a/src/hostnet_test/test_nat.ml b/src/hostnet_test/test_nat.ml index c535e732c..df3f9701d 100644 --- a/src/hostnet_test/test_nat.ml +++ b/src/hostnet_test/test_nat.ml @@ -9,9 +9,9 @@ module Log = (val Logs.src_log src : Logs.LOG) module Make(Host: Sig.HOST) = struct - let run ?(timeout=60.) t = + let run ?(timeout=Duration.of_sec 60) t = let timeout = - Host.Time.sleep timeout >>= fun () -> + Host.Time.sleep_ns timeout >>= fun () -> Lwt.fail_with "timeout" in Host.Main.run @@ Lwt.pick [ timeout; t ] @@ -90,18 +90,22 @@ module Make(Host: Sig.HOST) = struct t let wait_for_data ~highest t = if t.highest < highest then begin - Lwt.pick [ Lwt_condition.wait t.c; Host.Time.sleep 1. ] + Lwt.pick [ Lwt_condition.wait t.c; + Host.Time.sleep_ns (Duration.of_sec 1) ] >>= fun () -> Lwt.return (t.highest >= highest) end else Lwt.return true let wait_for_ports ~num t = if PortSet.cardinal t.seen_source_ports < num then begin - Lwt.pick [ Lwt_condition.wait t.c; Host.Time.sleep 1. ] + Lwt.pick [ Lwt_condition.wait t.c; + Host.Time.sleep_ns (Duration.of_sec 1) ] >|= fun () -> PortSet.cardinal t.seen_source_ports >= num end else Lwt.return true end + let err_udp e = Fmt.kstrf failwith "%a" Client.UDPV4.pp_error e + (* Start a local UDP echo server, send traffic to it and listen for a response *) let test_udp () = @@ -120,13 +124,15 @@ module Make(Host: Sig.HOST) = struct f "Sending %d -> %d value %d" virtual_port local_port (Cstruct.get_uint8 buffer 0)); Client.UDPV4.write - ~source_port:virtual_port - ~dest_ip:Ipaddr.V4.localhost - ~dest_port:local_port udpv4 buffer - >>= fun () -> - UdpServer.wait_for_data ~highest:1 server >>= function - | true -> Lwt.return_unit - | false -> loop (remaining - 1) + ~src_port:virtual_port + ~dst:Ipaddr.V4.localhost + ~dst_port:local_port udpv4 buffer + >>= function + | Error e -> err_udp e + | Ok () -> + UdpServer.wait_for_data ~highest:1 server >>= function + | true -> Lwt.return_unit + | false -> loop (remaining - 1) in loop 5 )) @@ -155,13 +161,15 @@ module Make(Host: Sig.HOST) = struct f "Sending %d -> %d value %d" virtual_port1 local_port (Cstruct.get_uint8 buffer 0)); Client.UDPV4.write - ~source_port:virtual_port1 - ~dest_ip:Ipaddr.V4.localhost - ~dest_port:local_port udpv4 buffer - >>= fun () -> - UdpServer.wait_for_data ~highest:1 server1 >>= function - | true -> Lwt.return_unit - | false -> loop (remaining - 1) + ~src_port:virtual_port1 + ~dst:Ipaddr.V4.localhost + ~dst_port:local_port udpv4 buffer + >>= function + | Error e -> err_udp e + | Ok () -> + UdpServer.wait_for_data ~highest:1 server1 >>= function + | true -> Lwt.return_unit + | false -> loop (remaining - 1) in loop 5 >>= fun () -> (* Listen on a second virtual source port and count @@ -177,15 +185,17 @@ module Make(Host: Sig.HOST) = struct f "Sending %d -> %d value %d" virtual_port2 local_port (Cstruct.get_uint8 buffer 0)); Client.UDPV4.write - ~source_port:virtual_port2 - ~dest_ip:Ipaddr.V4.localhost - ~dest_port:local_port udpv4 buffer - >>= fun () -> - UdpServer.wait_for_data ~highest:2 server2 >>= fun ok2 -> - (* The server should "multicast" the packet to the - original "connection" *) - UdpServer.wait_for_data ~highest:2 server1 >>= fun ok1 -> - if ok1 && ok2 then Lwt.return_unit else loop (remaining - 1) + ~src_port:virtual_port2 + ~dst:Ipaddr.V4.localhost + ~dst_port:local_port udpv4 buffer + >>= function + | Error e -> err_udp e + | Ok () -> + UdpServer.wait_for_data ~highest:2 server2 >>= fun ok2 -> + (* The server should "multicast" the packet to the + original "connection" *) + UdpServer.wait_for_data ~highest:2 server1 >>= fun ok1 -> + if ok1 && ok2 then Lwt.return_unit else loop (remaining - 1) in loop 5 ) @@ -211,18 +221,20 @@ module Make(Host: Sig.HOST) = struct let rec loop remaining = if remaining = 0 then failwith "Timed-out before UDP response arrived"; - let dest_port = echoserver.EchoServer.local_port in + let dst_port = echoserver.EchoServer.local_port in Log.debug (fun f -> - f "Sending %d -> %d value %d" virtual_port1 dest_port + f "Sending %d -> %d value %d" virtual_port1 dst_port (Cstruct.get_uint8 buffer 0)); Client.UDPV4.write - ~source_port:virtual_port1 - ~dest_ip:Ipaddr.V4.localhost - ~dest_port udpv4 buffer - >>= fun () -> - UdpServer.wait_for_data ~highest:1 server1 >>= function - | true -> Lwt.return_unit - | false -> loop (remaining - 1) + ~src_port:virtual_port1 + ~dst:Ipaddr.V4.localhost + ~dst_port udpv4 buffer + >>= function + | Error e -> err_udp e + | Ok () -> + UdpServer.wait_for_data ~highest:1 server1 >>= function + | true -> Lwt.return_unit + | false -> loop (remaining - 1) in loop 5 >>= fun () -> @@ -275,13 +287,15 @@ module Make(Host: Sig.HOST) = struct f "Sending %d -> %d value %d" virtual_port local_port (Cstruct.get_uint8 buffer 0)); Client.UDPV4.write - ~source_port:virtual_port - ~dest_ip:Ipaddr.V4.localhost - ~dest_port:local_port udpv4 buffer - >>= fun () -> - UdpServer.wait_for_data ~highest:1 server >>= function - | true -> Lwt.return_unit - | false -> loop (remaining - 1) + ~src_port:virtual_port + ~dst:Ipaddr.V4.localhost + ~dst_port:local_port udpv4 buffer + >>= function + | Error e -> err_udp e + | Ok () -> + UdpServer.wait_for_data ~highest:1 server >>= function + | true -> Lwt.return_unit + | false -> loop (remaining - 1) in loop 5 >>= fun () -> Alcotest.(check int) "One NAT rule" 1 @@ -298,13 +312,15 @@ module Make(Host: Sig.HOST) = struct Log.debug (fun f -> f "Sending %d -> %d value %d" virtual_port local_port (Cstruct.get_uint8 buffer 0)); - Client.UDPV4.write ~source_port:virtual_port - ~dest_ip:Ipaddr.V4.localhost - ~dest_port:local_port udpv4 buffer - >>= fun () -> - UdpServer.wait_for_data ~highest:2 server >>= function - | true -> Lwt.return_unit - | false -> loop (remaining - 1) + Client.UDPV4.write ~src_port:virtual_port + ~dst:Ipaddr.V4.localhost + ~dst_port:local_port udpv4 buffer + >>= function + | Error e -> err_udp e + | Ok () -> + UdpServer.wait_for_data ~highest:2 server >>= function + | true -> Lwt.return_unit + | false -> loop (remaining - 1) in loop 5 >|= fun () -> Alcotest.(check int) "Still one NAT rule" 1 @@ -335,21 +351,25 @@ module Make(Host: Sig.HOST) = struct f "Sending %d -> %d value %d" virtual_port local_port1 (Cstruct.get_uint8 buffer 0)); Client.UDPV4.write - ~source_port:virtual_port - ~dest_ip:Ipaddr.V4.localhost - ~dest_port:local_port1 udpv4 buffer - >>= fun () -> - Log.debug (fun f -> - f "Sending %d -> %d value %d" virtual_port local_port2 - (Cstruct.get_uint8 buffer 0)); - Client.UDPV4.write - ~source_port:virtual_port - ~dest_ip:Ipaddr.V4.localhost - ~dest_port:local_port2 udpv4 buffer - >>= fun () -> - UdpServer.wait_for_ports ~num:2 server >>= function - | true -> Lwt.return_unit - | false -> loop (remaining - 1) + ~src_port:virtual_port + ~dst:Ipaddr.V4.localhost + ~dst_port:local_port1 udpv4 buffer + >>= function + | Error e -> err_udp e + | Ok () -> + Log.debug (fun f -> + f "Sending %d -> %d value %d" virtual_port local_port2 + (Cstruct.get_uint8 buffer 0)); + Client.UDPV4.write + ~src_port:virtual_port + ~dst:Ipaddr.V4.localhost + ~dst_port:local_port2 udpv4 buffer + >>= function + | Error e -> err_udp e + | Ok () -> + UdpServer.wait_for_ports ~num:2 server >>= function + | true -> Lwt.return_unit + | false -> loop (remaining - 1) in loop 5))) in From 2a63c403dd6c4c2cd7bbf025fae3d96e7a2b1d73 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Tue, 1 Aug 2017 10:22:07 +0200 Subject: [PATCH 08/32] cleanup test half close - cut long lines - factor out some common code Signed-off-by: Thomas Gazagnaire --- src/hostnet_test/test_half_close.ml | 246 +++++++++++++--------------- 1 file changed, 116 insertions(+), 130 deletions(-) diff --git a/src/hostnet_test/test_half_close.ml b/src/hostnet_test/test_half_close.ml index 7ba4edbcb..9f3c84b37 100644 --- a/src/hostnet_test/test_half_close.ml +++ b/src/hostnet_test/test_half_close.ml @@ -5,6 +5,8 @@ let src = Logs.Src.set_level src (Some Logs.Debug); src +let failf fmt = Fmt.kstrf failwith fmt + module Log = (val Logs.src_log src : Logs.LOG) module Make(Host: Sig.HOST) = struct @@ -49,152 +51,136 @@ module Make(Host: Sig.HOST) = struct | Ok () -> () | Error _ -> failwith "unit: error" + let flow ip port = function + | Ok flow -> flow + | Error _ -> + Log.err (fun f -> f "Failed to connect to %a:%d" Ipaddr.V4.pp_hum ip port); + failwith "Client.TCPV4.create_connection" + (* Run a simple server on localhost and connect to it via vpnkit. - The Mirage client will call `close` to trigger a half-close of the TCP - connection before reading the response. This verifies that the other side - of the connection remains open. *) + The Mirage client will call `close` to trigger a half-close of + the TCP connection before reading the response. This verifies + that the other side of the connection remains open. *) let test_mirage_half_close () = Host.Main.run begin let forwarded, forwarded_u = Lwt.task () in - Slirp_stack.with_stack - (fun _ stack -> - with_server - (fun flow -> - (* Read the request until EOF *) - let ic = Incoming.C.create flow in - Incoming.C.read_line ic >|= data - >>= fun bufs -> - let txt = Cstruct.(to_string @@ concat bufs) in - if txt <> request - then failwith (Printf.sprintf "Expected to read '%s', got '%s'" request txt); - Incoming.C.read_line ic >|= data - >>= fun bufs -> - assert (Cstruct.(len @@ concat bufs) = 0); - Log.info (fun f -> f "Read the request (up to and including EOF)"); - - (* Write a response. If the connection is fully closed rather than half-closed - then this will fail. *) - Incoming.C.write_line ic response; - Incoming.C.flush ic >|= unit - >>= fun () -> - Log.info (fun f -> f "Written response"); - Lwt.wakeup_later forwarded_u (); - Lwt.return_unit - ) (fun server -> - (* Now that the server is running, connect to it and send a - request. *) - let open Slirp_stack in - let ip = Ipaddr.V4.localhost in - let port = server.Server.port in - Client.TCPV4.create_connection (Client.tcpv4 stack) (ip, port) - >>= function - | Ok flow -> - Log.info (fun f -> f "Connected to %s:%d" (Ipaddr.V4.to_string ip) port); - let oc = Outgoing.C.create flow in - Outgoing.C.write_line oc request; - Outgoing.C.flush oc >|= unit - >>= fun () -> - (* This will perform a TCP half-close *) - Client.TCPV4.close flow - >>= fun () -> - (* Verify the response is still intact *) - Outgoing.C.read_line oc >|= data - >>= fun bufs -> - let txt = Cstruct.(to_string @@ concat bufs) in - if txt <> response - then failwith (Printf.sprintf "Expected to read '%s', got '%s'" response txt); - Log.info (fun f -> f "Read the response. Waiting for cleanup"); - Lwt.pick [ - (Host.Time.sleep_ns (Duration.of_sec 100) - >|= fun () -> `Timeout); - (forwarded >|= fun x -> `Result x) ] - | Error _ -> - Log.err (fun f -> f "Failed to connect to %s:%d" (Ipaddr.V4.to_string ip) port); - failwith "Client.TCPV4.create_connection" - ) - >>= function - | `Timeout -> - failwith "TCP half close test timed-out" - | `Result x -> - Lwt.return x + Slirp_stack.with_stack (fun _ stack -> with_server (fun flow -> + (* Read the request until EOF *) + let ic = Incoming.C.create flow in + Incoming.C.read_line ic >|= data >>= fun bufs -> + let txt = Cstruct.(to_string @@ concat bufs) in + if txt <> request + then failf "Expected to read '%s', got '%s'" request txt; + Incoming.C.read_line ic >|= data >>= fun bufs -> + assert (Cstruct.(len @@ concat bufs) = 0); + Log.info (fun f -> f "Read the request (up to and including EOF)"); + + (* Write a response. If the connection is fully closed + rather than half-closed then this will fail. *) + Incoming.C.write_line ic response; + Incoming.C.flush ic >|= unit >>= fun () -> + Log.info (fun f -> f "Written response"); + Lwt.wakeup_later forwarded_u (); + Lwt.return_unit + ) (fun server -> + (* Now that the server is running, connect to it and send a + request. *) + let open Slirp_stack in + let ip = Ipaddr.V4.localhost in + let port = server.Server.port in + Client.TCPV4.create_connection (Client.tcpv4 stack) (ip, port) + >|= flow ip port >>= fun flow -> + Log.info (fun f -> f "Connected to %a:%d" Ipaddr.V4.pp_hum ip port); + let oc = Outgoing.C.create flow in + Outgoing.C.write_line oc request; + Outgoing.C.flush oc >|= unit >>= fun () -> + + (* This will perform a TCP half-close *) + Client.TCPV4.close flow >>= fun () -> + + (* Verify the response is still intact *) + Outgoing.C.read_line oc >|= data >>= fun bufs -> + let txt = Cstruct.(to_string @@ concat bufs) in + if txt <> response + then failf "Expected to read '%s', got '%s'" response txt; + Log.info (fun f -> f "Read the response. Waiting for cleanup"); + Lwt.pick [ + (Host.Time.sleep_ns (Duration.of_sec 100) >|= fun () -> `Timeout); + (forwarded >|= fun x -> `Result x) ] + ) >>= function + | `Timeout -> failwith "TCP half close test timed-out" + | `Result x -> Lwt.return x ) end (* Run a simple server on localhost and connect to it via vpnkit. - The server on the host will call `close` to trigger a half-close of the TCP - connection before reading the response. This verifies that the other side - of the connection remains open. *) + The server on the host will call `close` to trigger a half-close + of the TCP connection before reading the response. This verifies + that the other side of the connection remains open. *) let test_host_half_close () = Host.Main.run begin let forwarded, forwarded_u = Lwt.task () in - Slirp_stack.with_stack - (fun _ stack -> - with_server - (fun flow -> - (* Write a request *) - let ic = Incoming.C.create flow in - Incoming.C.write_line ic request; - Incoming.C.flush ic >|= unit - >>= fun () -> - (* This will perform a TCP half-close *) - Host.Sockets.Stream.Tcp.shutdown_write flow - >>= fun () -> - (* Read the response from the other side of the connection *) - Incoming.C.read_line ic >|= data - >>= fun bufs -> - let txt = Cstruct.(to_string @@ concat bufs) in - if txt <> response - then failwith (Printf.sprintf "Expected to read '%s', got '%s'" response txt); - Log.info (fun f -> f "Read the response, signalling complete"); - Lwt.wakeup_later forwarded_u (); - Lwt.return_unit - ) (fun server -> - (* Now that the server is running, connect to it and send a - request. *) - let open Slirp_stack in - let ip = Ipaddr.V4.localhost in - let port = server.Server.port in - Client.TCPV4.create_connection (Client.tcpv4 stack) (ip, port) - >>= function - | Ok flow -> - Log.info (fun f -> f "Connected to %s:%d" (Ipaddr.V4.to_string ip) port); - let oc = Outgoing.C.create flow in - (* Read the request *) - Outgoing.C.read_line oc >|= data - >>= fun bufs -> - let txt = Cstruct.(to_string @@ concat bufs) in - if txt <> request - then failwith (Printf.sprintf "Expected to read '%s', got '%s'" request txt); - (* Check we're at EOF *) - Outgoing.C.read_line oc >|= data - >>= fun bufs -> - assert (Cstruct.(len @@ concat bufs) = 0); - Log.info (fun f -> f "Read the request (up to and including EOF)"); - (* Write response *) - Outgoing.C.write_line oc response; - Outgoing.C.flush oc >|= unit - >>= fun () -> - Log.info (fun f -> f "Written response and will wait."); - Lwt.pick [ - (Host.Time.sleep_ns (Duration.of_sec 100) - >|= fun () -> `Timeout); - (forwarded >|= fun x -> `Result x) ] - | Error _ -> - Log.err (fun f -> f "Failed to connect to %s:%d" (Ipaddr.V4.to_string ip) port); - failwith "Client.TCPV4.create_connection" - ) - >>= function - | `Timeout -> - failwith "TCP half close test timed-out" - | `Result x -> - Lwt.return x + Slirp_stack.with_stack (fun _ stack -> with_server (fun flow -> + (* Write a request *) + let ic = Incoming.C.create flow in + Incoming.C.write_line ic request; + Incoming.C.flush ic >|= unit >>= fun () -> + + (* This will perform a TCP half-close *) + Host.Sockets.Stream.Tcp.shutdown_write flow >>= fun () -> + + (* Read the response from the other side of the connection *) + Incoming.C.read_line ic >|= data + >>= fun bufs -> + let txt = Cstruct.(to_string @@ concat bufs) in + if txt <> response + then failf "Expected to read '%s', got '%s'" response txt; + Log.info (fun f -> f "Read the response, signalling complete"); + Lwt.wakeup_later forwarded_u (); + Lwt.return_unit + ) (fun server -> + (* Now that the server is running, connect to it and send a + request. *) + let open Slirp_stack in + let ip = Ipaddr.V4.localhost in + let port = server.Server.port in + Client.TCPV4.create_connection (Client.tcpv4 stack) (ip, port) + >|= flow ip port >>= fun flow -> + Log.info (fun f -> f "Connected to %a:%d" Ipaddr.V4.pp_hum ip port); + let oc = Outgoing.C.create flow in + (* Read the request *) + Outgoing.C.read_line oc >|= data >>= fun bufs -> + let txt = Cstruct.(to_string @@ concat bufs) in + if txt <> request + then failf "Expected to read '%s', got '%s'" request txt; + (* Check we're at EOF *) + Outgoing.C.read_line oc >|= data >>= fun bufs -> + assert (Cstruct.(len @@ concat bufs) = 0); + Log.info (fun f -> f "Read the request (up to and including EOF)"); + (* Write response *) + Outgoing.C.write_line oc response; + Outgoing.C.flush oc >|= unit >>= fun () -> + Log.info (fun f -> f "Written response and will wait."); + Lwt.pick [ + (Host.Time.sleep_ns (Duration.of_sec 100) >|= fun () -> `Timeout); + (forwarded >|= fun x -> `Result x) ] + ) >>= function + | `Timeout -> failwith "TCP half close test timed-out" + | `Result x -> Lwt.return x ) end let tests = [ - "TCP: test Mirage half close", [ "check that Mirage half-close isn't a full-close", `Quick, test_mirage_half_close ]; - "TCP: test Host half close", [ "check that the Host half-close isn't a full-close", `Quick, test_host_half_close ]; + "TCP: test Mirage half close", [ + "check that Mirage half-close isn't a full-close", `Quick, + test_mirage_half_close + ] ; + + "TCP: test Host half close", [ + "check that the Host half-close isn't a full-close", `Quick, + test_host_half_close + ]; ] end From 02acd1c8db9a20741404ac160b4a251c6523423b Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Tue, 1 Aug 2017 09:43:05 +0200 Subject: [PATCH 09/32] Temporary use my fork of mirage-tcpip Signed-off-by: Thomas Gazagnaire --- repo/darwin/packages/dev/tcpip.dev/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repo/darwin/packages/dev/tcpip.dev/url b/repo/darwin/packages/dev/tcpip.dev/url index 99169623e..cf661ca84 100644 --- a/repo/darwin/packages/dev/tcpip.dev/url +++ b/repo/darwin/packages/dev/tcpip.dev/url @@ -1 +1 @@ -git: "https://github.com/mirage/mirage-tcpip.git" +git: "https://github.com/samoht/mirage-tcpip.git#wire" From 60e3c3145305cf5c8a96a6544389b63cd2008d4d Mon Sep 17 00:00:00 2001 From: David Scott Date: Tue, 1 Aug 2017 16:13:14 +0100 Subject: [PATCH 10/32] Netif.listen should block and implement last-caller-wins The `listen` function is not described in much detail in the documentation but common implementations: - charrua-client expects the `listen` function to block: if it returns (with Ok _ or Error _) the stream of leases is terminated - Tcpip_stack_direct expects the later calls to `listen` to override the previous calls. Otherwise the callback slot is taken by the DHCP client and no traffic reaches the TCP/IP stack. This patch makes `Vmnet.listen` - blocking - have a global callback, to implement the "last-caller-wins" strategy. A better longer-term solution would be to generate some kind of a pattern match on network packets and to redirect to separate "ports", so we can keep the DHCP server and the TCP/IP stack from clashing. Signed-off-by: David Scott --- src/hostnet/mux.ml | 12 +++++++++--- src/hostnet/vmnet.ml | 26 +++++++++++++++----------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/hostnet/mux.ml b/src/hostnet/mux.ml index 2a5d04b1a..6d8889774 100644 --- a/src/hostnet/mux.ml +++ b/src/hostnet/mux.ml @@ -91,9 +91,15 @@ module Make (Netif: Mirage_net_lwt.S) = struct let rules = RuleMap.empty in let default_callback = fun _ -> Lwt.return_unit in let t = { netif; rules; default_callback } in - Netif.listen netif @@ callback t >>= fun r -> - let r = match r with Ok () -> Ok t | Error _ as e -> e in - Lwt.return r >|= lift_error + Lwt.async + (fun () -> + Netif.listen netif @@ callback t >>= function + | Ok () -> Lwt.return_unit + | Error _e -> + Log.err (fun f -> f "Mux.connect calling Netif.listen: failed"); + Lwt.return_unit + ); + Lwt.return (Ok t) let write t buffer = Netif.write t.netif buffer >|= lift_error let writev t buffers = Netif.writev t.netif buffers >|= lift_error diff --git a/src/hostnet/vmnet.ml b/src/hostnet/vmnet.ml index af5cde379..dbc38b594 100644 --- a/src/hostnet/vmnet.ml +++ b/src/hostnet/vmnet.ml @@ -177,6 +177,11 @@ module Make(C: Sig.CONN) = struct mutable listening: bool; after_disconnect: unit Lwt.t; after_disconnect_u: unit Lwt.u; + (* NB: The Mirage DHCP client calls `listen` and then later the + Tcp_direct_direct will do the same. This behaviour seems to be + undefined, but common implementations adopt a last-caller-wins + semantic. This is the last caller wins callback *) + mutable callback: (Cstruct.t -> unit io); } let get_client_uuid t = @@ -309,9 +314,10 @@ module Make(C: Sig.CONN) = struct let listeners = [] in let listening = false in let after_disconnect, after_disconnect_u = Lwt.task () in + let callback _ = Lwt.return_unit in { fd; stats; client_macaddr; client_uuid; server_macaddr; mtu; write_header; write_m; pcap; pcap_size_limit; pcap_m; listeners; listening; - after_disconnect; after_disconnect_u } + after_disconnect; after_disconnect_u; callback } type fd = C.flow @@ -430,11 +436,9 @@ module Make(C: Sig.CONN) = struct | Error (`Msg e) -> err_unexpected t Fmt.string e | Ok x -> f x - let listen t callback = - if t.listening then begin - Log.debug (fun f -> f "PPP.listen: called a second time: doing nothing"); - Lwt.return (Ok ()); - end else begin + let listen t new_callback = + Log.info (fun f -> f "PPP.listen: rebinding the primary listen callback"); + t.callback <- new_callback; t.listening <- true; let last_error_log = ref 0. in let rec loop () = @@ -451,7 +455,7 @@ module Make(C: Sig.CONN) = struct ); let buf = Cstruct.concat bufs in let callback buf = - Lwt.catch (fun () -> callback buf) + Lwt.catch (fun () -> t.callback buf) (function | Host_uwt.Sockets.Too_many_connections | Host_lwt_unix.Sockets.Too_many_connections -> @@ -476,10 +480,10 @@ module Make(C: Sig.CONN) = struct | true -> loop () | false -> Lwt.return () in - Lwt.async @@ loop; - Lwt.return (Ok ()); - end - + (* This blocks forever *) + loop () + >>= fun () -> + Lwt.return (Ok ()) let write t buf = Lwt_mutex.with_lock t.write_m (fun () -> From 51824bd9502e58bd42409067855174f0c650a212 Mon Sep 17 00:00:00 2001 From: David Scott Date: Tue, 1 Aug 2017 16:18:08 +0100 Subject: [PATCH 11/32] Reindent Vmnet.listen Signed-off-by: David Scott --- src/hostnet/vmnet.ml | 90 ++++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/src/hostnet/vmnet.ml b/src/hostnet/vmnet.ml index dbc38b594..36d61c037 100644 --- a/src/hostnet/vmnet.ml +++ b/src/hostnet/vmnet.ml @@ -439,51 +439,51 @@ module Make(C: Sig.CONN) = struct let listen t new_callback = Log.info (fun f -> f "PPP.listen: rebinding the primary listen callback"); t.callback <- new_callback; - t.listening <- true; - let last_error_log = ref 0. in - let rec loop () = - (with_fd t @@ fun fd -> - with_read t (Channel.read_exactly ~len:Packet.sizeof fd) @@ fun bufs -> - let read_header = Cstruct.concat bufs in - with_msg t (Packet.unmarshal read_header) @@ fun (len, _) -> - with_read t (Channel.read_exactly ~len fd) @@ fun bufs -> - capture t bufs >>= fun () -> - Log.debug (fun f -> - let b = Buffer.create 128 in - List.iter (Cstruct.hexdump_to_buffer b) bufs; - f "received\n%s" (Buffer.contents b) - ); - let buf = Cstruct.concat bufs in - let callback buf = - Lwt.catch (fun () -> t.callback buf) - (function - | Host_uwt.Sockets.Too_many_connections - | Host_lwt_unix.Sockets.Too_many_connections -> - (* No need to log this again *) - Lwt.return_unit - | e -> - let now = Unix.gettimeofday () in - if (now -. !last_error_log) > 30. then begin - Log.err (fun f -> - f "PPP.listen callback caught %a" Fmt.exn e); - last_error_log := now; - end; - Lwt.return_unit - ) - in - Lwt.async (fun () -> callback buf); - List.iter (fun callback -> - Lwt.async (fun () -> callback buf) - ) t.listeners; - Lwt.return true - ) >>= function - | true -> loop () - | false -> Lwt.return () - in - (* This blocks forever *) - loop () - >>= fun () -> - Lwt.return (Ok ()) + t.listening <- true; + let last_error_log = ref 0. in + let rec loop () = + (with_fd t @@ fun fd -> + with_read t (Channel.read_exactly ~len:Packet.sizeof fd) @@ fun bufs -> + let read_header = Cstruct.concat bufs in + with_msg t (Packet.unmarshal read_header) @@ fun (len, _) -> + with_read t (Channel.read_exactly ~len fd) @@ fun bufs -> + capture t bufs >>= fun () -> + Log.debug (fun f -> + let b = Buffer.create 128 in + List.iter (Cstruct.hexdump_to_buffer b) bufs; + f "received\n%s" (Buffer.contents b) + ); + let buf = Cstruct.concat bufs in + let callback buf = + Lwt.catch (fun () -> t.callback buf) + (function + | Host_uwt.Sockets.Too_many_connections + | Host_lwt_unix.Sockets.Too_many_connections -> + (* No need to log this again *) + Lwt.return_unit + | e -> + let now = Unix.gettimeofday () in + if (now -. !last_error_log) > 30. then begin + Log.err (fun f -> + f "PPP.listen callback caught %a" Fmt.exn e); + last_error_log := now; + end; + Lwt.return_unit + ) + in + Lwt.async (fun () -> callback buf); + List.iter (fun callback -> + Lwt.async (fun () -> callback buf) + ) t.listeners; + Lwt.return true + ) >>= function + | true -> loop () + | false -> Lwt.return () + in + (* This blocks forever *) + loop () + >>= fun () -> + Lwt.return (Ok ()) let write t buf = Lwt_mutex.with_lock t.write_m (fun () -> From f67af8ed3f3b06b00ef67da3dafd19fb74b33d99 Mon Sep 17 00:00:00 2001 From: David Scott Date: Tue, 1 Aug 2017 16:18:26 +0100 Subject: [PATCH 12/32] slirp: set the IP and network in `connect` - use the `connect ~ip` argument rather than `set_ip` to set the stack's IP - set the network to `global` (i.e. "all addresses are on my local network) instead of `unspecified` (i.e. "no addresses are on my local network). Signed-off-by: David Scott --- src/hostnet/slirp.ml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/hostnet/slirp.ml b/src/hostnet/slirp.ml index d6e1ca74b..71443c9f0 100644 --- a/src/hostnet/slirp.ml +++ b/src/hostnet/slirp.ml @@ -269,17 +269,15 @@ module Filteredif = Filter.Make(Vmnet) Stack_ethif.connect ~mtu netif >>= fun ethif -> Stack_arpv4.connect ~table:arp_table ethif |>fun arp -> Stack_ipv4.connect + ~ip ~gateway:None - ~network:Ipaddr.V4.(Prefix.of_addr unspecified) + ~network:Ipaddr.V4.Prefix.global ethif arp >>= fun ipv4 -> Stack_icmpv4.connect ipv4 >>= fun icmpv4 -> Stack_udp.connect ipv4 >>= fun udp4 -> Stack_tcp.connect ipv4 clock >>= fun tcp4 -> - Stack_ipv4.set_ip ipv4 ip (* I am the destination *) - >>= fun () -> - let pending = Tcp.Id.Set.empty in let last_active_time = Unix.gettimeofday () in let tcp_stack = From b874f46091878dd6d3ff4d509ce69823df86a67e Mon Sep 17 00:00:00 2001 From: David Scott Date: Tue, 1 Aug 2017 16:21:57 +0100 Subject: [PATCH 13/32] test: use DHCP rather than static IP addressing Previously the test cases were using an (unspecified?) static IP when talking to the loopback vpnkit server. This patch makes the client use DHCP which is - more realistic: this is what we expect real clients to do - more likely to work: previously the client's IP address appeared to be undefined Signed-off-by: David Scott --- .../packages/dev/charrua-client-lwt.dev/opam | 36 +++++++++++++++++++ .../packages/dev/charrua-client-lwt.dev/url | 1 + .../dev/charrua-client-mirage.dev/opam | 36 +++++++++++++++++++ .../dev/charrua-client-mirage.dev/url | 1 + .../packages/dev/charrua-client.dev/descr | 1 + .../packages/dev/charrua-client.dev/opam | 28 +++++++++++++++ .../packages/dev/charrua-client.dev/url | 1 + src/hostnet_test/jbuild | 1 + src/hostnet_test/slirp_stack.ml | 7 ++-- vpnkit.opam | 2 ++ 10 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 repo/darwin/packages/dev/charrua-client-lwt.dev/opam create mode 100644 repo/darwin/packages/dev/charrua-client-lwt.dev/url create mode 100644 repo/darwin/packages/dev/charrua-client-mirage.dev/opam create mode 100644 repo/darwin/packages/dev/charrua-client-mirage.dev/url create mode 100644 repo/darwin/packages/dev/charrua-client.dev/descr create mode 100644 repo/darwin/packages/dev/charrua-client.dev/opam create mode 100644 repo/darwin/packages/dev/charrua-client.dev/url diff --git a/repo/darwin/packages/dev/charrua-client-lwt.dev/opam b/repo/darwin/packages/dev/charrua-client-lwt.dev/opam new file mode 100644 index 000000000..8be827038 --- /dev/null +++ b/repo/darwin/packages/dev/charrua-client-lwt.dev/opam @@ -0,0 +1,36 @@ +opam-version: "1.2" +name: "charrua-client-lwt" +maintainer: ["Mindy Preston"] +authors : ["Mindy Preston"] +homepage: "https://github.com/mirage/charrua-core" +bug-reports: "https://github.com/mirage/charrua-core/issues" +dev-repo: "https://github.com/mirage/charrua-core.git" +tags: [ "org:mirage"] +doc: "https://docs.mirage.io" + +build: [ + ["jbuilder" "subst" "-n" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +build-test: ["jbuilder" "runtest" "-p" name "-j" jobs] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "ounit" {test} + "alcotest" {test} + "charrua-core" {>= "0.4"} + "charrua-client" + "cstruct" {>="3.0.2"} + "ipaddr" + "rresult" + "mirage-random" {>= "1.0.0"} + "duration" + "logs" + "tcpip" {>= "3.0.0"} + "fmt" + "lwt" + "mirage-types-lwt" {>="3.0.0"} + "mirage-time-lwt" +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/dev/charrua-client-lwt.dev/url b/repo/darwin/packages/dev/charrua-client-lwt.dev/url new file mode 100644 index 000000000..dc4e37317 --- /dev/null +++ b/repo/darwin/packages/dev/charrua-client-lwt.dev/url @@ -0,0 +1 @@ +git: "https://github.com/mirage/charrua-core.git" diff --git a/repo/darwin/packages/dev/charrua-client-mirage.dev/opam b/repo/darwin/packages/dev/charrua-client-mirage.dev/opam new file mode 100644 index 000000000..d516e9cfa --- /dev/null +++ b/repo/darwin/packages/dev/charrua-client-mirage.dev/opam @@ -0,0 +1,36 @@ +opam-version: "1.2" +name: "charrua-client-mirage" +maintainer: ["Mindy Preston"] +authors : ["Mindy Preston"] +homepage: "https://github.com/mirage/charrua-core" +bug-reports: "https://github.com/mirage/charrua-core/issues" +dev-repo: "https://github.com/mirage/charrua-core.git" +tags: [ "org:mirage"] +doc: "https://docs.mirage.io" + +build: [ + ["jbuilder" "subst" "-n" name] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +build-test: ["jbuilder" "runtest" "-p" name "-j" jobs] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "ounit" {test} + "alcotest" {test} + "charrua-core" {>= "0.4"} + "charrua-client-lwt" + "charrua-client" + "cstruct" {>="3.0.2"} + "ipaddr" + "rresult" + "mirage-random" {>= "1.0.0"} + "duration" + "logs" + "tcpip" {>= "3.0.0"} + "fmt" + "lwt" + "mirage-types-lwt" {>="3.0.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/dev/charrua-client-mirage.dev/url b/repo/darwin/packages/dev/charrua-client-mirage.dev/url new file mode 100644 index 000000000..dc4e37317 --- /dev/null +++ b/repo/darwin/packages/dev/charrua-client-mirage.dev/url @@ -0,0 +1 @@ +git: "https://github.com/mirage/charrua-core.git" diff --git a/repo/darwin/packages/dev/charrua-client.dev/descr b/repo/darwin/packages/dev/charrua-client.dev/descr new file mode 100644 index 000000000..d0f9941bc --- /dev/null +++ b/repo/darwin/packages/dev/charrua-client.dev/descr @@ -0,0 +1 @@ +Library using charrua-core to provide a DHCP-configured IPv4 implementation. diff --git a/repo/darwin/packages/dev/charrua-client.dev/opam b/repo/darwin/packages/dev/charrua-client.dev/opam new file mode 100644 index 000000000..777a593a9 --- /dev/null +++ b/repo/darwin/packages/dev/charrua-client.dev/opam @@ -0,0 +1,28 @@ +opam-version: "1.2" +name: "charrua-client" +maintainer: ["Mindy Preston"] +authors : ["Mindy Preston"] +homepage: "https://github.com/mirage/charrua-core" +bug-reports: "https://github.com/mirage/charrua-core/issues" +dev-repo: "https://github.com/mirage/charrua-core.git" +tags: [ "org:mirage"] +doc: "https://docs.mirage.io" + +build: [ + [ "jbuilder" "subst" "-n" name ] {pinned} + [ "jbuilder" "build" "-p" name "-j" jobs ] +] + +build-test: [ + [ "jbuilder" "runtest" "-p" name "-j" jobs ] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "ounit" {test} + "alcotest" {test} + "charrua-core" {>= "0.8"} + "cstruct" {>="3.0.2"} + "ipaddr" +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/dev/charrua-client.dev/url b/repo/darwin/packages/dev/charrua-client.dev/url new file mode 100644 index 000000000..dc4e37317 --- /dev/null +++ b/repo/darwin/packages/dev/charrua-client.dev/url @@ -0,0 +1 @@ +git: "https://github.com/mirage/charrua-core.git" diff --git a/src/hostnet_test/jbuild b/src/hostnet_test/jbuild index bcc0a5668..4d9859c2d 100644 --- a/src/hostnet_test/jbuild +++ b/src/hostnet_test/jbuild @@ -5,5 +5,6 @@ (libraries ( hostnet cmdliner alcotest lwt.unix logs.fmt protocol-9p mirage-dns lwt.preemptive uwt.preemptive mirage-clock-unix + charrua-client-mirage )) (preprocess no_preprocessing))) diff --git a/src/hostnet_test/slirp_stack.ml b/src/hostnet_test/slirp_stack.ml index 299d5707d..769e2f8d9 100644 --- a/src/hostnet_test/slirp_stack.ml +++ b/src/hostnet_test/slirp_stack.ml @@ -73,7 +73,9 @@ module Make(Host: Sig.HOST) = struct module Netif = VMNET module Ethif1 = Ethif.Make(Netif) module Arpv41 = Arpv4.Make(Ethif1)(Mclock)(Host.Time) - module Ipv41 = Static_ipv4.Make(Ethif1)(Arpv41) + + module Dhcp_client_mirage1 = Dhcp_client_mirage.Make(Host.Time)(Netif) + module Ipv41 = Dhcp_ipv4.Make(Dhcp_client_mirage1)(Ethif1)(Arpv41) module Icmpv41 = Icmpv4.Make(Ipv41) module Udp1 = Udp.Make(Ipv41)(Stdlibrandom) module Tcp1 = Tcp.Flow.Make(Ipv41)(Host.Time)(Mclock)(Stdlibrandom) @@ -89,7 +91,8 @@ module Make(Host: Sig.HOST) = struct Ethif1.connect interface >>= fun ethif -> Mclock.connect () >>= fun clock -> Arpv41.connect ethif clock >>= fun arp -> - Ipv41.connect ethif arp >>= fun ipv4 -> + Dhcp_client_mirage1.connect interface >>= fun dhcp -> + Ipv41.connect dhcp ethif arp >>= fun ipv4 -> Icmpv41.connect ipv4 >>= fun icmpv4 -> Udp1.connect ipv4 >>= fun udp4 -> Tcp1.connect ipv4 clock >>= fun tcp4 -> diff --git a/vpnkit.opam b/vpnkit.opam index 07bf72d06..665c72a10 100644 --- a/vpnkit.opam +++ b/vpnkit.opam @@ -37,6 +37,7 @@ depends: [ "uwt" {>= "0.0.4"} "tcpip" {>= "3.1.4"} "dns" {>= "0.19.1"} + "dns-lwt" "dnssd" {>= "0.2"} "dns-forward" "cstruct-lwt" {>= "3.0.0"} @@ -46,6 +47,7 @@ depends: [ "pcap-format" {>= "0.4.0"} "cmdliner" "charrua-core" {>= "0.3"} + "charrua-client-mirage" {test} "named-pipe" {>= "0.4.0"} "hvsock" {>= "0.13.0"} "asl" From d94f49a0148b647316cb723fee1ec12a9b8e2743 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Tue, 1 Aug 2017 18:06:15 +0200 Subject: [PATCH 14/32] Use a more stable dev branch for mirage-tcpip Signed-off-by: Thomas Gazagnaire --- repo/darwin/packages/dev/tcpip.dev/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repo/darwin/packages/dev/tcpip.dev/url b/repo/darwin/packages/dev/tcpip.dev/url index cf661ca84..7e46c5292 100644 --- a/repo/darwin/packages/dev/tcpip.dev/url +++ b/repo/darwin/packages/dev/tcpip.dev/url @@ -1 +1 @@ -git: "https://github.com/samoht/mirage-tcpip.git#wire" +git: "https://github.com/samoht/mirage-tcpip.git#vpnkit" From 929616c4bfee50419773e71edc926e6f964ac5b6 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Tue, 1 Aug 2017 18:25:09 +0200 Subject: [PATCH 15/32] disable tests on windows because of mirage/mirage-tcpip#330 and mirage/mirage-tcpip#331 Signed-off-by: Thomas Gazagnaire --- repo/darwin/packages/dev/tcpip.dev/opam | 3 --- 1 file changed, 3 deletions(-) diff --git a/repo/darwin/packages/dev/tcpip.dev/opam b/repo/darwin/packages/dev/tcpip.dev/opam index b828fe435..d56d943a3 100644 --- a/repo/darwin/packages/dev/tcpip.dev/opam +++ b/repo/darwin/packages/dev/tcpip.dev/opam @@ -15,9 +15,6 @@ build: [ ["jbuilder" "subst"] {pinned} ["jbuilder" "build" "-p" name "-j" jobs] ] -build-test: [ - ["jbuilder" "runtest" "-p" name "-j" jobs] -] depends: [ "jbuilder" {>="1.0+beta9"} From e3ca5a254ca0cb0c9322b098f8cb4e5171802fa5 Mon Sep 17 00:00:00 2001 From: David Scott Date: Tue, 1 Aug 2017 17:28:22 +0100 Subject: [PATCH 16/32] ci: install test dependencies Signed-off-by: David Scott --- scripts/common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/common.sh b/scripts/common.sh index 53668be5b..5fc5cece1 100755 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -30,7 +30,7 @@ OPAMVERBOSE=1 opam install --deps-only tcpip -y OPAMVERBOSE=1 opam install tcpip -t opam install $(ls -1 ${OPAM_REPO}/packages/upstream) -y -OPAMVERBOSE=1 opam install --deps-only vpnkit -y +OPAMVERBOSE=1 opam install --deps-only -t vpnkit -y OPAMVERBOSE=1 make # One test requires 1026 file descriptors From 06bbf447e56c7d795b508d4118ea980a71247907 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Tue, 1 Aug 2017 19:36:27 +0200 Subject: [PATCH 17/32] Add charrua-client dev packages on windows too Signed-off-by: Thomas Gazagnaire --- repo/win32/packages/dev/charrua-client-lwt.dev | 1 + repo/win32/packages/dev/charrua-client-mirage.dev | 1 + repo/win32/packages/dev/charrua-client.dev | 1 + 3 files changed, 3 insertions(+) create mode 120000 repo/win32/packages/dev/charrua-client-lwt.dev create mode 120000 repo/win32/packages/dev/charrua-client-mirage.dev create mode 120000 repo/win32/packages/dev/charrua-client.dev diff --git a/repo/win32/packages/dev/charrua-client-lwt.dev b/repo/win32/packages/dev/charrua-client-lwt.dev new file mode 120000 index 000000000..fcde8998f --- /dev/null +++ b/repo/win32/packages/dev/charrua-client-lwt.dev @@ -0,0 +1 @@ +../../../darwin/packages/dev/charrua-client-lwt.dev \ No newline at end of file diff --git a/repo/win32/packages/dev/charrua-client-mirage.dev b/repo/win32/packages/dev/charrua-client-mirage.dev new file mode 120000 index 000000000..41bbbe24c --- /dev/null +++ b/repo/win32/packages/dev/charrua-client-mirage.dev @@ -0,0 +1 @@ +../../../darwin/packages/dev/charrua-client-mirage.dev \ No newline at end of file diff --git a/repo/win32/packages/dev/charrua-client.dev b/repo/win32/packages/dev/charrua-client.dev new file mode 120000 index 000000000..84447e9fd --- /dev/null +++ b/repo/win32/packages/dev/charrua-client.dev @@ -0,0 +1 @@ +../../../darwin/packages/dev/charrua-client.dev \ No newline at end of file From 5f73d6f88bd4a67e05dbc62b822178a33214bee2 Mon Sep 17 00:00:00 2001 From: David Scott Date: Wed, 2 Aug 2017 12:01:09 +0100 Subject: [PATCH 18/32] vmnet: only run one background listen loop Recall that `listen` can be called multiple times with a "last-callback-wins" semantic. Previously we would start additional copies of the packet receive loop() which can lead to I/O problems on the channel. This patch starts at most one receive loop; other `listen` calls block until disconnect. Signed-off-by: David Scott --- src/hostnet/vmnet.ml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/hostnet/vmnet.ml b/src/hostnet/vmnet.ml index 36d61c037..999a39352 100644 --- a/src/hostnet/vmnet.ml +++ b/src/hostnet/vmnet.ml @@ -437,9 +437,9 @@ module Make(C: Sig.CONN) = struct | Ok x -> f x let listen t new_callback = - Log.info (fun f -> f "PPP.listen: rebinding the primary listen callback"); + Log.info (fun f -> f "Vmnet.listen: rebinding the primary listen callback"); t.callback <- new_callback; - t.listening <- true; + let last_error_log = ref 0. in let rec loop () = (with_fd t @@ fun fd -> @@ -480,9 +480,22 @@ module Make(C: Sig.CONN) = struct | true -> loop () | false -> Lwt.return () in - (* This blocks forever *) - loop () + begin + if not t.listening then begin + t.listening <- true; + Log.info (fun f -> f "Vmnet.listen: starting event loop"); + loop () + end else begin + (* Block forever without running a second loop() *) + Log.info (fun f -> f "Vmnet.listen: blocking until disconnect"); + t.after_disconnect + >>= fun () -> + Log.info (fun f -> f "Vmnet.listen: disconnected"); + Lwt.return_unit + end + end >>= fun () -> + Log.info (fun f -> f "Vmnet.listen returning Ok()"); Lwt.return (Ok ()) let write t buf = From cc165c4ecf58030a12f9b7986c57f11d3ae6fcc7 Mon Sep 17 00:00:00 2001 From: David Scott Date: Wed, 2 Aug 2017 12:03:12 +0100 Subject: [PATCH 19/32] vmnet: log messages with prefix "Vmnet" rather than "PPP" Although this is a "Point to Point Protocol" it is not *the* "Point to Point Protocol" so call it "Vmnet" instead (which at least matches the module name, but it's still not ideal) Signed-off-by: David Scott --- src/hostnet/vmnet.ml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/hostnet/vmnet.ml b/src/hostnet/vmnet.ml index 999a39352..f2b9327a2 100644 --- a/src/hostnet/vmnet.ml +++ b/src/hostnet/vmnet.ml @@ -214,7 +214,7 @@ module Make(C: Sig.CONN) = struct with_read (Channel.read_exactly ~len:Init.sizeof fd) @@ fun bufs -> let buf = Cstruct.concat bufs in let init, _ = Init.unmarshal buf in - Log.info (fun f -> f "PPP.negotiate: received %s" (Init.to_string init)); + Log.info (fun f -> f "Vmnet.negotiate: received %s" (Init.to_string init)); let (_: Cstruct.t) = Init.marshal Init.default buf in Channel.write_buffer fd buf; with_flush (Channel.flush fd) @@ fun () -> @@ -222,15 +222,15 @@ module Make(C: Sig.CONN) = struct let buf = Cstruct.concat bufs in with_msg (Command.unmarshal buf) @@ fun (command, _) -> Log.info (fun f -> - f "PPP.negotiate: received %s" (Command.to_string command)); + f "Vmnet.negotiate: received %s" (Command.to_string command)); match command with - | Command.Bind_ipv4 _ -> failf "PPP.negotiate: unsupported command Bind_ipv4" + | Command.Bind_ipv4 _ -> failf "Vmnet.negotiate: unsupported command Bind_ipv4" | Command.Ethernet uuid -> client_macaddr_of_uuid uuid >>= fun client_macaddr -> let vif = Vif.create client_macaddr mtu () in let buf = Cstruct.create Vif.sizeof in let (_: Cstruct.t) = Vif.marshal vif buf in - Log.info (fun f -> f "PPP.negotiate: sending %s" (Vif.to_string vif)); + Log.info (fun f -> f "Vmnet.negotiate: sending %s" (Vif.to_string vif)); Channel.write_buffer fd buf; with_flush (Channel.flush fd) @@ fun () -> Lwt_result.return (uuid, client_macaddr) @@ -343,6 +343,7 @@ module Make(C: Sig.CONN) = struct let disconnect t = match t.fd with | None -> Lwt.return () | Some fd -> + Log.info (fun f -> f "Vmnet.disconnect"); t.fd <- None; Log.debug (fun f -> f "Vmnet.disconnect flushing channel"); (Channel.flush fd >|= function @@ -411,13 +412,13 @@ module Make(C: Sig.CONN) = struct end ) - let err_eof = - Log.debug (fun f -> f "PPP.listen: closing connection"); + let err_eof () = + Log.err (fun f -> f "Vmnet.listen: read EOF so closing connection"); Lwt.return false let err_unexpected t pp e = Log.err (fun f -> - f "PPP.listen: caught unexpected %a: disconnecting" pp e); + f "Vmnet.listen: caught unexpected %a: disconnecting" pp e); disconnect t >>= fun () -> Lwt.return false @@ -428,7 +429,7 @@ module Make(C: Sig.CONN) = struct let with_read t x f = x >>= function | Error e -> err_unexpected t Channel.pp_error e - | Ok `Eof -> err_eof + | Ok `Eof -> err_eof () | Ok (`Data x) -> f x let with_msg t x f = @@ -465,7 +466,7 @@ module Make(C: Sig.CONN) = struct let now = Unix.gettimeofday () in if (now -. !last_error_log) > 30. then begin Log.err (fun f -> - f "PPP.listen callback caught %a" Fmt.exn e); + f "Vmnet.listen callback caught %a" Fmt.exn e); last_error_log := now; end; Lwt.return_unit From d465b5d6944349658c846e9a8c47c7978d73b926 Mon Sep 17 00:00:00 2001 From: David Scott Date: Wed, 2 Aug 2017 12:04:36 +0100 Subject: [PATCH 20/32] connect: return Error when we exceed the connection limit Previously we would fail the thread with `Too_many_connections` but this meant that the SYN was never responed to. With this change, we send explicit RST packets to the caller. This makes the `test_max_connections` test pass -- previously the TCP `connect` call would resend SYNs for a long time. Signed-off-by: David Scott --- src/hostnet/host_uwt.ml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/hostnet/host_uwt.ml b/src/hostnet/host_uwt.ml index 3c2021c04..45fc51114 100644 --- a/src/hostnet/host_uwt.ml +++ b/src/hostnet/host_uwt.ml @@ -92,6 +92,9 @@ module Sockets = struct let idx = register_connection_no_limit description in Lwt.return idx + let register_connection_noexn description = + Lwt.catch (fun () -> register_connection description >>= fun idx -> Lwt.return (Some idx)) (fun _ -> Lwt.return None) + let deregister_connection idx = if not(Hashtbl.mem connection_table idx) then begin Log.warn (fun f -> f "deregistered connection %d more than once" idx) @@ -405,12 +408,18 @@ module Sockets = struct let connect ?(read_buffer_size = default_read_buffer_size) (ip, port) = let description = Fmt.strf "tcp:%a:%d" Ipaddr.pp_hum ip port in - register_connection description - >>= fun idx -> - let label, fd = + let label = match ip with + | Ipaddr.V4 _ -> "TCPv4" + | Ipaddr.V6 _ -> "TCPv6" in + register_connection_noexn description + >>= function + | None -> + errorf "Socket.%s.connect %s: hit connection limit" label description + | Some idx -> + let fd = try match ip with - | Ipaddr.V4 _ -> "TCPv4", Uwt.Tcp.init_ipv4_exn () - | Ipaddr.V6 _ -> "TCPv6", Uwt.Tcp.init_ipv6_exn () + | Ipaddr.V4 _ -> Uwt.Tcp.init_ipv4_exn () + | Ipaddr.V6 _ -> Uwt.Tcp.init_ipv6_exn () with e -> deregister_connection idx; raise e in Lwt.catch (fun () -> let sockaddr = make_sockaddr (ip, port) in From 83cfa1d1faf19afc214b71c1c1d7ac2e475bbe69 Mon Sep 17 00:00:00 2001 From: David Scott Date: Wed, 2 Aug 2017 12:07:14 +0100 Subject: [PATCH 21/32] test: improve the logging in the test_max_connections_test It's useful to know what the connection limit is supposed to be. Signed-off-by: David Scott --- src/hostnet_test/suite.ml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/hostnet_test/suite.ml b/src/hostnet_test/suite.ml index aab74f656..c227417fc 100644 --- a/src/hostnet_test/suite.ml +++ b/src/hostnet_test/suite.ml @@ -102,6 +102,7 @@ module Make(Host: Sig.HOST) = struct DNS.gethostbyname ~server:primary_dns_ip resolver "www.google.com" >>= function | Ipaddr.V4 ip :: _ -> + Log.info (fun f -> f "Setting max connections to 0"); Host.Sockets.set_max_connections (Some 0); begin Client.TCPV4.create_connection (Client.tcpv4 stack) (ip, 80) @@ -115,6 +116,7 @@ module Make(Host: Sig.HOST) = struct f "Expected failure to connect to www.google.com") end >>= fun () -> + Log.info (fun f -> f "Removing connection limit"); Host.Sockets.set_max_connections None; (* Check that connections work again *) begin @@ -133,6 +135,7 @@ module Make(Host: Sig.HOST) = struct f "Failed to look up an IPv4 address for www.google.com"); failwith "http_fetch dns" ) (fun () -> + Log.info (fun f -> f "Removing connection limit"); Host.Sockets.set_max_connections None; Lwt.return_unit ) From 087e772d76e61cbf88463e1e892fbd5f04ca6380 Mon Sep 17 00:00:00 2001 From: David Scott Date: Wed, 2 Aug 2017 14:25:59 +0100 Subject: [PATCH 22/32] vmnet: distinguish client from server in the logging When debugging traces from the test cases it's useful to know whether a `Vmnet.listen` call is from the client end or the server. This patch adds a logging prefix and sets this to either `Vmnet.Client` or `Vmnet.Server`. Signed-off-by: David Scott --- src/hostnet/vmnet.ml | 60 ++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/src/hostnet/vmnet.ml b/src/hostnet/vmnet.ml index f2b9327a2..f132f88b0 100644 --- a/src/hostnet/vmnet.ml +++ b/src/hostnet/vmnet.ml @@ -182,6 +182,7 @@ module Make(C: Sig.CONN) = struct undefined, but common implementations adopt a last-caller-wins semantic. This is the last caller wins callback *) mutable callback: (Cstruct.t -> unit io); + log_prefix: string; } let get_client_uuid t = @@ -210,11 +211,14 @@ module Make(C: Sig.CONN) = struct | Ok x -> f x | Error _ as e -> Lwt.return e + let server_log_prefix = "Vmnet.Server" + let client_log_prefix = "Vmnet.Client" + let server_negotiate ~fd ~client_macaddr_of_uuid ~mtu = with_read (Channel.read_exactly ~len:Init.sizeof fd) @@ fun bufs -> let buf = Cstruct.concat bufs in let init, _ = Init.unmarshal buf in - Log.info (fun f -> f "Vmnet.negotiate: received %s" (Init.to_string init)); + Log.info (fun f -> f "%s.negotiate: received %s" server_log_prefix (Init.to_string init)); let (_: Cstruct.t) = Init.marshal Init.default buf in Channel.write_buffer fd buf; with_flush (Channel.flush fd) @@ fun () -> @@ -222,15 +226,15 @@ module Make(C: Sig.CONN) = struct let buf = Cstruct.concat bufs in with_msg (Command.unmarshal buf) @@ fun (command, _) -> Log.info (fun f -> - f "Vmnet.negotiate: received %s" (Command.to_string command)); + f "%s.negotiate: received %s" server_log_prefix (Command.to_string command)); match command with - | Command.Bind_ipv4 _ -> failf "Vmnet.negotiate: unsupported command Bind_ipv4" + | Command.Bind_ipv4 _ -> failf "%s.negotiate: unsupported command Bind_ipv4" server_log_prefix | Command.Ethernet uuid -> client_macaddr_of_uuid uuid >>= fun client_macaddr -> let vif = Vif.create client_macaddr mtu () in let buf = Cstruct.create Vif.sizeof in let (_: Cstruct.t) = Vif.marshal vif buf in - Log.info (fun f -> f "Vmnet.negotiate: sending %s" (Vif.to_string vif)); + Log.info (fun f -> f "%s.negotiate: sending %s" server_log_prefix (Vif.to_string vif)); Channel.write_buffer fd buf; with_flush (Channel.flush fd) @@ fun () -> Lwt_result.return (uuid, client_macaddr) @@ -243,7 +247,7 @@ module Make(C: Sig.CONN) = struct with_read (Channel.read_exactly ~len:Init.sizeof fd) @@ fun bufs -> let buf = Cstruct.concat bufs in let init, _ = Init.unmarshal buf in - Log.info (fun f -> f "Client.negotiate: received %s" (Init.to_string init)); + Log.info (fun f -> f "%s.negotiate: received %s" client_log_prefix (Init.to_string init)); let buf = Cstruct.create Command.sizeof in let (_: Cstruct.t) = Command.marshal (Command.Ethernet uuid) buf in Channel.write_buffer fd buf; @@ -252,7 +256,7 @@ module Make(C: Sig.CONN) = struct let buf = Cstruct.concat bufs in let open Lwt_result.Infix in Lwt.return (Vif.unmarshal buf) >>= fun (vif, _) -> - Log.debug (fun f -> f "Client.negotiate: vif %s" (Vif.to_string vif)); + Log.debug (fun f -> f "%s.negotiate: vif %s" client_log_prefix (Vif.to_string vif)); Lwt_result.return (vif) (* Use blocking I/O here so we can avoid Using Lwt_unix or Uwt. Ideally we @@ -303,7 +307,7 @@ module Make(C: Sig.CONN) = struct Lwt.return_unit ) - let make ~client_macaddr ~server_macaddr ~mtu ~client_uuid fd = + let make ~client_macaddr ~server_macaddr ~mtu ~client_uuid ~log_prefix fd = let fd = Some fd in let stats = Mirage_net.Stats.create () in let write_header = Cstruct.create (1024 * Packet.sizeof) in @@ -317,7 +321,7 @@ module Make(C: Sig.CONN) = struct let callback _ = Lwt.return_unit in { fd; stats; client_macaddr; client_uuid; server_macaddr; mtu; write_header; write_m; pcap; pcap_size_limit; pcap_m; listeners; listening; - after_disconnect; after_disconnect_u; callback } + after_disconnect; after_disconnect_u; callback; log_prefix } type fd = C.flow @@ -326,7 +330,8 @@ module Make(C: Sig.CONN) = struct let channel = Channel.create flow in server_negotiate ~fd:channel ~client_macaddr_of_uuid ~mtu >>= fun (client_uuid, client_macaddr) -> - let t = make ~client_macaddr ~server_macaddr ~mtu ~client_uuid channel in + let t = make ~client_macaddr ~server_macaddr ~mtu ~client_uuid + ~log_prefix:server_log_prefix channel in Lwt_result.return t let client_of_fd ~uuid ~server_macaddr flow = @@ -337,21 +342,22 @@ module Make(C: Sig.CONN) = struct let t = make ~client_macaddr:vif.Vif.client_macaddr ~server_macaddr:server_macaddr ~mtu:vif.Vif.mtu ~client_uuid:uuid + ~log_prefix:client_log_prefix channel in Lwt_result.return t let disconnect t = match t.fd with | None -> Lwt.return () | Some fd -> - Log.info (fun f -> f "Vmnet.disconnect"); + Log.info (fun f -> f "%s.disconnect" t.log_prefix); t.fd <- None; - Log.debug (fun f -> f "Vmnet.disconnect flushing channel"); + Log.debug (fun f -> f "%s.disconnect flushing channel" t.log_prefix); (Channel.flush fd >|= function | Ok () -> () | Error e -> Log.err (fun l -> - l "error while disconnecting the vmtnet connection: %a" - Channel.pp_write_error e); + l "%s error while disconnecting the vmtnet connection: %a" + t.log_prefix Channel.pp_write_error e); ) >|= fun () -> Lwt.wakeup_later t.after_disconnect_u () @@ -389,8 +395,8 @@ module Make(C: Sig.CONN) = struct let len = List.(fold_left (+) 0 (map Cstruct.len bufs)) in if len > (t.mtu + ethernet_header_length) then begin Log.err (fun f -> - f "Dropping over-large ethernet frame, length = %d, mtu = \ - %d" len t.mtu + f "%s Dropping over-large ethernet frame, length = %d, mtu = \ + %d" t.log_prefix len t.mtu ); Lwt_result.return () end else begin @@ -412,13 +418,13 @@ module Make(C: Sig.CONN) = struct end ) - let err_eof () = - Log.err (fun f -> f "Vmnet.listen: read EOF so closing connection"); + let err_eof t = + Log.err (fun f -> f "%s.listen: read EOF so closing connection" t.log_prefix); Lwt.return false let err_unexpected t pp e = Log.err (fun f -> - f "Vmnet.listen: caught unexpected %a: disconnecting" pp e); + f "%s listen: caught unexpected %a: disconnecting" t.log_prefix pp e); disconnect t >>= fun () -> Lwt.return false @@ -429,7 +435,7 @@ module Make(C: Sig.CONN) = struct let with_read t x f = x >>= function | Error e -> err_unexpected t Channel.pp_error e - | Ok `Eof -> err_eof () + | Ok `Eof -> err_eof t | Ok (`Data x) -> f x let with_msg t x f = @@ -438,7 +444,7 @@ module Make(C: Sig.CONN) = struct | Ok x -> f x let listen t new_callback = - Log.info (fun f -> f "Vmnet.listen: rebinding the primary listen callback"); + Log.info (fun f -> f "%s.listen: rebinding the primary listen callback" t.log_prefix); t.callback <- new_callback; let last_error_log = ref 0. in @@ -466,7 +472,7 @@ module Make(C: Sig.CONN) = struct let now = Unix.gettimeofday () in if (now -. !last_error_log) > 30. then begin Log.err (fun f -> - f "Vmnet.listen callback caught %a" Fmt.exn e); + f "%s.listen callback caught %a" t.log_prefix Fmt.exn e); last_error_log := now; end; Lwt.return_unit @@ -484,19 +490,19 @@ module Make(C: Sig.CONN) = struct begin if not t.listening then begin t.listening <- true; - Log.info (fun f -> f "Vmnet.listen: starting event loop"); + Log.info (fun f -> f "%s.listen: starting event loop" t.log_prefix); loop () end else begin (* Block forever without running a second loop() *) - Log.info (fun f -> f "Vmnet.listen: blocking until disconnect"); + Log.info (fun f -> f "%s.listen: blocking until disconnect" t.log_prefix); t.after_disconnect >>= fun () -> - Log.info (fun f -> f "Vmnet.listen: disconnected"); + Log.info (fun f -> f "%s.listen: disconnected" t.log_prefix); Lwt.return_unit end end >>= fun () -> - Log.info (fun f -> f "Vmnet.listen returning Ok()"); + Log.info (fun f -> f "%s.listen returning Ok()" t.log_prefix); Lwt.return (Ok ()) let write t buf = @@ -505,8 +511,8 @@ module Make(C: Sig.CONN) = struct let len = Cstruct.len buf in if len > (t.mtu + ethernet_header_length) then begin Log.err (fun f -> - f "Dropping over-large ethernet frame, length = %d, mtu = \ - %d" len t.mtu + f "%s Dropping over-large ethernet frame, length = %d, mtu = \ + %d" t.log_prefix len t.mtu ); Lwt.return (Ok ()) end else begin From 803fff95d86558b1f541822cf4898e6b91f24603 Mon Sep 17 00:00:00 2001 From: David Scott Date: Wed, 2 Aug 2017 14:26:55 +0100 Subject: [PATCH 23/32] test: include timestamps on the log lines When tests time out in CI it's useful to see where the time was spent. Signed-off-by: David Scott --- src/hostnet_test/main_uwt.ml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/hostnet_test/main_uwt.ml b/src/hostnet_test/main_uwt.ml index 55d802141..9addea7a0 100644 --- a/src/hostnet_test/main_uwt.ml +++ b/src/hostnet_test/main_uwt.ml @@ -7,9 +7,24 @@ module Log = (val Logs.src_log src : Logs.LOG) module Tests = Suite.Make(Host_uwt) +let ppf, flush = + let b = Buffer.create 255 in + let flush () = let s = Buffer.contents b in Buffer.clear b; s in + Format.formatter_of_buffer b, flush + +let reporter = + let start = Unix.gettimeofday () in + fun () -> + let report _src level ~over k msgf = + let k _ = Printf.printf "%s%!" (flush ()); over (); k () in + msgf @@ fun ?header:_ ?tags:_ fmt -> + let t = Unix.gettimeofday () -. start in + Format.kfprintf k ppf ("%.5f [%a] @[" ^^ fmt ^^ "@]@.") t Logs.pp_level level in + { Logs.report } + (* Run it *) let () = - Logs.set_reporter (Logs_fmt.reporter ()); + Logs.set_reporter (reporter ()); Lwt.async_exception_hook := (fun exn -> Log.err (fun f -> f "Lwt.async failure %s: %s" (Printexc.to_string exn) From e881091c3b8346dc4ce85c9da74e5b136fc0432e Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Wed, 2 Aug 2017 17:40:33 +0200 Subject: [PATCH 24/32] Improve the license script --- repo/opam-licenses.sh | 84 ++++++++++++++----------------------------- 1 file changed, 27 insertions(+), 57 deletions(-) diff --git a/repo/opam-licenses.sh b/repo/opam-licenses.sh index 7ac751318..c4d8ba66b 100755 --- a/repo/opam-licenses.sh +++ b/repo/opam-licenses.sh @@ -3,7 +3,9 @@ set -e REPO_ROOT=$(git rev-parse --show-toplevel) -OPAM_ROOT=${REPO_ROOT}/_build/opam +SOURCES=${REPO_ROOT}/_build/sources + +mkdir -p $SOURCES # Collect the license metadata in a central place OUTPUT=${REPO_ROOT}/repo/licenses/ @@ -16,7 +18,7 @@ fi for DEP in "$@"; do echo "Calculating transitive dependencies required by $DEP" - opam list --required-by "$DEP" --recursive --installed | tail -n +2 > "dependency.$DEP.raw" + opam list --required-by "$DEP" --recursive | tail -n +2 > "dependency.$DEP.raw" awk '{print $1"."$2}' < "dependency.$DEP.raw" > "dependency.$DEP" rm "dependency.$DEP.raw" done @@ -36,64 +38,32 @@ while read -r PACKAGE; do echo "$PACKAGE is not linked: skipping" continue fi + if [[ $PACKAGE == *"ppx"* ]]; then + echo "$PACKAGE is a build dependency: skipping" + continue + fi + if [[ $PACKAGE == *"xen"* ]]; then + echo "$PACKAGE is not used: skipping" + continue + fi + if [[ $PACKAGE == *"solo5"* ]]; then + echo "$PACKAGE is not used: skipping" + continue + fi # if a file has a manually-edited override, use it if [ ! -e "$OUTPUT/LICENSE.$PACKAGE" ]; then rm -f "$PACKAGE.files" - KIND=$(opam info --field upstream-kind "$PACKAGE") - if [ "$KIND" = git ] || [ "$KIND" = local ]; then - # there is an entry under the system switch packages.dev if pinned - PROJECT=$(echo "$PACKAGE" | sed -n 's/^\([^.]*\).*/\1/p') - if [ -e "$OPAM_ROOT/system/packages.dev/$PROJECT" ]; then - DIR=$OPAM_ROOT/system/packages.dev/$PROJECT - else - DIR=$OPAM_ROOT/packages.dev/$PACKAGE - fi - echo "$DIR" - ls "$DIR" | grep LICENSE >> "$PACKAGE.files" || true - ls "$DIR" | grep COPYING >> "$PACKAGE.files" || true - if [ -z "$(cat "$PACKAGE.files")" ]; then - echo "No LICENSE or COPYING file found in $DIR; please write LICENSE.$PACKAGE yourself" - exit 1 - fi - # extract all the license files we found - rm -f "$OUTPUT/LICENSE.$PACKAGE.extracted" - xargs -I % cp "$DIR"/% . < "$PACKAGE.files" - while read -r i; do - echo "$i:" >> "$OUTPUT/LICENSE.$PACKAGE.extracted" - cat "$i" >> "$OUTPUT/LICENSE.$PACKAGE.extracted" - rm "$i" - done < "$PACKAGE.files" - rm -f "$PACKAGE.files" - else - FILE=$OPAM_ROOT/packages.dev/$PACKAGE/$(basename "$URL") - if [ ! -e "$FILE" ]; then - echo "$FILE doesnt exist" - exit 1 - fi - echo "$FILE" - rm -f "$PACKAGE.files" - # NB lwt's LICENSE file references the COPYING file - tar -tf "$FILE" | grep LICENSE >> "$PACKAGE.files" || true - tar -tf "$FILE" | grep COPYING >> "$PACKAGE.files" || true - if [ -z "$(cat "$PACKAGE.files")" ]; then - echo "No LICENSE or COPYING file found in $FILE; please write LICENSE.$PACKAGE yourself" - exit 1 - fi - # extract all the license files we found - rm -f "$OUTPUT/LICENSE.$PACKAGE.extracted" - tar -xf "$FILE" -T "$PACKAGE.files" - while read -r i; do - echo "$i:" >> "$OUTPUT/LICENSE.$PACKAGE.extracted" - cat "$i" >> "$OUTPUT/LICENSE.$PACKAGE.extracted" - rm "$i" - done < "$PACKAGE.files" - for i in $(sort -r "$PACKAGE.files"); do - DIR=$(dirname "$i") - if [ -e "$DIR" ]; then - rmdir -p "$DIR" - fi - done - rm -f "$PACKAGE.files" + DIR=$SOURCES/$PACKAGE + if [ ! -e "$DIR" ]; then + ( cd $SOURCES && opam source $PACKAGE ) + fi + echo "$DIR" + ls "$DIR" | grep LICENSE >> "$PACKAGE.files" || true + ls "$DIR" | grep COPYING >> "$PACKAGE.files" || true + if [ -z "$(cat "$PACKAGE.files")" ]; then + echo "No LICENSE or COPYING file found in $DIR;" + echo "please write LICENSE.$PACKAGE yourself" + exit 1 fi fi done < all-packages.txt From 788c60a46ef9b3b35940ecda8c372f5764c5d66c Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Wed, 2 Aug 2017 16:24:19 +0200 Subject: [PATCH 25/32] Update license metadata --- ....4.11.skip => LICENSE.alcotest.0.8.0.skip} | 0 repo/licenses/LICENSE.astring.0.8.1 | 28 --- repo/licenses/LICENSE.base64.2.0.0 | 17 -- ....0.4.8.skip => LICENSE.camlp4.4.04+1.skip} | 0 repo/licenses/LICENSE.channel.1.0.0 | 17 -- repo/licenses/LICENSE.cmdliner.0.9.8 | 32 --- repo/licenses/LICENSE.cstruct.1.9.0 | 24 --- repo/licenses/LICENSE.io-page.1.6.0 | 18 -- repo/licenses/LICENSE.ipaddr.2.7.0 | 21 -- .../licenses/LICENSE.jbuilder.1.0+beta11.skip | 0 repo/licenses/LICENSE.jbuilder.1.0+beta9 | 202 ------------------ .../LICENSE.js_of_ocaml-compiler.3.0.skip | 0 repo/licenses/LICENSE.js_of_ocaml.3.0.skip | 0 repo/licenses/LICENSE.lwt.3.1.0 | 23 ++ repo/licenses/LICENSE.magic-mime.1.0.0 | 13 -- repo/licenses/LICENSE.mirage-clock-unix.1.0.0 | 16 -- repo/licenses/LICENSE.mirage-console.2.1.3 | 19 -- repo/licenses/LICENSE.mirage-flow.1.1.0 | 16 -- .../licenses/LICENSE.mirage-types-lwt.2.8.999 | 24 --- repo/licenses/LICENSE.mirage-types.2.8.0 | 24 --- repo/licenses/LICENSE.mirage-types.2.8.999 | 24 --- repo/licenses/LICENSE.mtime.0.8.3 | 30 --- repo/licenses/LICENSE.named-pipe.0.2 | 16 -- repo/licenses/LICENSE.named-pipe.0.3 | 16 -- repo/licenses/LICENSE.oasis.0.4.10.skip | 0 repo/licenses/LICENSE.oasis.0.4.7.skip | 1 - .../LICENSE.ocaml-compiler-libs.v0.9.0.skip | 0 .../LICENSE.ocaml-data-notation.0.0.11.skip | 0 ...LICENSE.ocaml-migrate-parsetree.1.0.1.skip | 0 repo/licenses/LICENSE.ocaml-src.4.04.2.skip | 0 repo/licenses/LICENSE.ocamlbuild.0.11.0.skip | 0 repo/licenses/LICENSE.ocamlfind.1.7.3.skip | 0 repo/licenses/LICENSE.ocamlify.0.0.1.skip | 0 repo/licenses/LICENSE.ocb-stubblr.0.1.1.skip | 0 repo/licenses/LICENSE.octavius.1.1.0.skip | 0 repo/licenses/LICENSE.stringext.1.4.2 | 7 - repo/licenses/LICENSE.tcpip.999 | 34 --- repo/licenses/LICENSE.topkg.0.9.0.skip | 0 repo/licenses/LICENSE.unix-errno.0.4.2 | 16 -- repo/licenses/LICENSE.uri.1.9.2 | 17 -- 40 files changed, 23 insertions(+), 632 deletions(-) rename repo/licenses/{LICENSE.alcotest.0.4.11.skip => LICENSE.alcotest.0.8.0.skip} (100%) delete mode 100644 repo/licenses/LICENSE.astring.0.8.1 delete mode 100644 repo/licenses/LICENSE.base64.2.0.0 rename repo/licenses/{LICENSE.oasis.0.4.8.skip => LICENSE.camlp4.4.04+1.skip} (100%) delete mode 100644 repo/licenses/LICENSE.channel.1.0.0 delete mode 100644 repo/licenses/LICENSE.cmdliner.0.9.8 delete mode 100644 repo/licenses/LICENSE.cstruct.1.9.0 delete mode 100644 repo/licenses/LICENSE.io-page.1.6.0 delete mode 100644 repo/licenses/LICENSE.ipaddr.2.7.0 create mode 100644 repo/licenses/LICENSE.jbuilder.1.0+beta11.skip delete mode 100644 repo/licenses/LICENSE.jbuilder.1.0+beta9 create mode 100644 repo/licenses/LICENSE.js_of_ocaml-compiler.3.0.skip create mode 100644 repo/licenses/LICENSE.js_of_ocaml.3.0.skip create mode 100644 repo/licenses/LICENSE.lwt.3.1.0 delete mode 100644 repo/licenses/LICENSE.magic-mime.1.0.0 delete mode 100644 repo/licenses/LICENSE.mirage-clock-unix.1.0.0 delete mode 100644 repo/licenses/LICENSE.mirage-console.2.1.3 delete mode 100644 repo/licenses/LICENSE.mirage-flow.1.1.0 delete mode 100644 repo/licenses/LICENSE.mirage-types-lwt.2.8.999 delete mode 100644 repo/licenses/LICENSE.mirage-types.2.8.0 delete mode 100644 repo/licenses/LICENSE.mirage-types.2.8.999 delete mode 100644 repo/licenses/LICENSE.mtime.0.8.3 delete mode 100644 repo/licenses/LICENSE.named-pipe.0.2 delete mode 100644 repo/licenses/LICENSE.named-pipe.0.3 create mode 100644 repo/licenses/LICENSE.oasis.0.4.10.skip delete mode 100644 repo/licenses/LICENSE.oasis.0.4.7.skip create mode 100644 repo/licenses/LICENSE.ocaml-compiler-libs.v0.9.0.skip create mode 100644 repo/licenses/LICENSE.ocaml-data-notation.0.0.11.skip create mode 100644 repo/licenses/LICENSE.ocaml-migrate-parsetree.1.0.1.skip create mode 100644 repo/licenses/LICENSE.ocaml-src.4.04.2.skip create mode 100644 repo/licenses/LICENSE.ocamlbuild.0.11.0.skip create mode 100644 repo/licenses/LICENSE.ocamlfind.1.7.3.skip create mode 100644 repo/licenses/LICENSE.ocamlify.0.0.1.skip create mode 100644 repo/licenses/LICENSE.ocb-stubblr.0.1.1.skip create mode 100644 repo/licenses/LICENSE.octavius.1.1.0.skip delete mode 100644 repo/licenses/LICENSE.stringext.1.4.2 delete mode 100644 repo/licenses/LICENSE.tcpip.999 create mode 100644 repo/licenses/LICENSE.topkg.0.9.0.skip delete mode 100644 repo/licenses/LICENSE.unix-errno.0.4.2 delete mode 100644 repo/licenses/LICENSE.uri.1.9.2 diff --git a/repo/licenses/LICENSE.alcotest.0.4.11.skip b/repo/licenses/LICENSE.alcotest.0.8.0.skip similarity index 100% rename from repo/licenses/LICENSE.alcotest.0.4.11.skip rename to repo/licenses/LICENSE.alcotest.0.8.0.skip diff --git a/repo/licenses/LICENSE.astring.0.8.1 b/repo/licenses/LICENSE.astring.0.8.1 deleted file mode 100644 index f315b2d8a..000000000 --- a/repo/licenses/LICENSE.astring.0.8.1 +++ /dev/null @@ -1,28 +0,0 @@ -(*--------------------------------------------------------------------------- - Copyright (c) 2015 Daniel C. Bünzli. - All rights reserved. - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - 3. Neither the name of Daniel C. Bünzli nor the names of - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---------------------------------------------------------------------------*) - diff --git a/repo/licenses/LICENSE.base64.2.0.0 b/repo/licenses/LICENSE.base64.2.0.0 deleted file mode 100644 index 265a1c90b..000000000 --- a/repo/licenses/LICENSE.base64.2.0.0 +++ /dev/null @@ -1,17 +0,0 @@ -(* - * Copyright (c) 2006-2009 Citrix Systems Inc. - * Copyright (c) 2010 Thomas Gazagnaire - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - *) diff --git a/repo/licenses/LICENSE.oasis.0.4.8.skip b/repo/licenses/LICENSE.camlp4.4.04+1.skip similarity index 100% rename from repo/licenses/LICENSE.oasis.0.4.8.skip rename to repo/licenses/LICENSE.camlp4.4.04+1.skip diff --git a/repo/licenses/LICENSE.channel.1.0.0 b/repo/licenses/LICENSE.channel.1.0.0 deleted file mode 100644 index 0d2a49df5..000000000 --- a/repo/licenses/LICENSE.channel.1.0.0 +++ /dev/null @@ -1,17 +0,0 @@ -(* - * Copyright (c) 2011-2015 Anil Madhavapeddy - * Copyright (c) 2015 Mindy Preston - * Copyright (c) 2015 Thomas Gazagnaire - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - *) diff --git a/repo/licenses/LICENSE.cmdliner.0.9.8 b/repo/licenses/LICENSE.cmdliner.0.9.8 deleted file mode 100644 index 2a9ad8b2d..000000000 --- a/repo/licenses/LICENSE.cmdliner.0.9.8 +++ /dev/null @@ -1,32 +0,0 @@ -(*--------------------------------------------------------------------------- - Copyright (c) 2011 Daniel C. Bünzli - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - 3. Neither the name of Daniel C. Bünzli nor the names of - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---------------------------------------------------------------------------*) diff --git a/repo/licenses/LICENSE.cstruct.1.9.0 b/repo/licenses/LICENSE.cstruct.1.9.0 deleted file mode 100644 index 00759fe06..000000000 --- a/repo/licenses/LICENSE.cstruct.1.9.0 +++ /dev/null @@ -1,24 +0,0 @@ -(* - * Copyright (c) 2012 Anil Madhavapeddy - * Copyright (c) 2012 Pierre Chambart - * Copyright (c) 2012-2013 Anil Madhavapeddy - * Copyright (c) 2012-2014 Anil Madhavapeddy - * Copyright (c) 2012-2014 Citrix Systems Inc - * Copyright (c) 2013 Anil Madhavapeddy - * Copyright (c) 2013 Citrix Systems Inc - * Copyright (c) 2014 Anil Madhavapeddy - * Copyright (c) 2015 Citrix Inc - * Copyright (c) 2016 Docker Inc - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - *) diff --git a/repo/licenses/LICENSE.io-page.1.6.0 b/repo/licenses/LICENSE.io-page.1.6.0 deleted file mode 100644 index 9744e857b..000000000 --- a/repo/licenses/LICENSE.io-page.1.6.0 +++ /dev/null @@ -1,18 +0,0 @@ -(* - * Copyright (C) 2012-2013 Citrix Inc - * Copyright (c) 2010-2011 Anil Madhavapeddy - * Copyright (c) 2011-2012 Anil Madhavapeddy - * Copyright (c) 2013 Thomas Gazagnaire - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - *) diff --git a/repo/licenses/LICENSE.ipaddr.2.7.0 b/repo/licenses/LICENSE.ipaddr.2.7.0 deleted file mode 100644 index 959baa2f9..000000000 --- a/repo/licenses/LICENSE.ipaddr.2.7.0 +++ /dev/null @@ -1,21 +0,0 @@ -(* - * Copyright (c) 2010 Anil Madhavapeddy - * Copyright (c) 2010-2011 Anil Madhavapeddy - * Copyright (c) 2013-2014 David Sheets - * Copyright (c) 2013-2015 David Sheets - * Copyright (c) 2014 Anil Madhavapeddy - * Copyright (c) 2014 David Sheets - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - *) diff --git a/repo/licenses/LICENSE.jbuilder.1.0+beta11.skip b/repo/licenses/LICENSE.jbuilder.1.0+beta11.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.jbuilder.1.0+beta9 b/repo/licenses/LICENSE.jbuilder.1.0+beta9 deleted file mode 100644 index d64569567..000000000 --- a/repo/licenses/LICENSE.jbuilder.1.0+beta9 +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/repo/licenses/LICENSE.js_of_ocaml-compiler.3.0.skip b/repo/licenses/LICENSE.js_of_ocaml-compiler.3.0.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.js_of_ocaml.3.0.skip b/repo/licenses/LICENSE.js_of_ocaml.3.0.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.lwt.3.1.0 b/repo/licenses/LICENSE.lwt.3.1.0 new file mode 100644 index 000000000..f3f48daa4 --- /dev/null +++ b/repo/licenses/LICENSE.lwt.3.1.0 @@ -0,0 +1,23 @@ +OCaml promise library +http://www.ocsigen.org/lwt + +Copyright (C) 2005-2008 Jérôme Vouillon +Laboratoire PPS - CNRS Université Paris Diderot + 2009-2012 Jérémie Dimino + 2017 Anton Bachin + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, with linking exceptions; +either version 2.1 of the License, or (at your option) any later +version. See COPYING file for details. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. diff --git a/repo/licenses/LICENSE.magic-mime.1.0.0 b/repo/licenses/LICENSE.magic-mime.1.0.0 deleted file mode 100644 index be1579a1d..000000000 --- a/repo/licenses/LICENSE.magic-mime.1.0.0 +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2015 Anil Madhavapeddy - -Permission to use, copy, modify, and distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/repo/licenses/LICENSE.mirage-clock-unix.1.0.0 b/repo/licenses/LICENSE.mirage-clock-unix.1.0.0 deleted file mode 100644 index 143e9df5f..000000000 --- a/repo/licenses/LICENSE.mirage-clock-unix.1.0.0 +++ /dev/null @@ -1,16 +0,0 @@ -(* - * Copyright (c) 2010 Anil Madhavapeddy - * Copyright (c) 2010-2011 Anil Madhavapeddy - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - *) diff --git a/repo/licenses/LICENSE.mirage-console.2.1.3 b/repo/licenses/LICENSE.mirage-console.2.1.3 deleted file mode 100644 index 1225fd6be..000000000 --- a/repo/licenses/LICENSE.mirage-console.2.1.3 +++ /dev/null @@ -1,19 +0,0 @@ -(* - * Copyright (c) 2010-2011 Anil Madhavapeddy - * Copyright (c) 2012-14 Citrix Systems Inc - * Copyright (c) 2014 Citrix Systems Inc - * Copyright (c) 2010-2013 Anil Madhavapeddy - * Copyright (c) 2010 Anil Madhavapeddy - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - *) diff --git a/repo/licenses/LICENSE.mirage-flow.1.1.0 b/repo/licenses/LICENSE.mirage-flow.1.1.0 deleted file mode 100644 index afac49628..000000000 --- a/repo/licenses/LICENSE.mirage-flow.1.1.0 +++ /dev/null @@ -1,16 +0,0 @@ -(* - * Copyright (c) 2015 Thomas Gazagnaire - * Copyright (c) 2016 Docker Inc - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - *) diff --git a/repo/licenses/LICENSE.mirage-types-lwt.2.8.999 b/repo/licenses/LICENSE.mirage-types-lwt.2.8.999 deleted file mode 100644 index f5d04383e..000000000 --- a/repo/licenses/LICENSE.mirage-types-lwt.2.8.999 +++ /dev/null @@ -1,24 +0,0 @@ -(* - * Copyright (c) 2011-2014 Anil Madhavapeddy - * Copyright (c) 2011-2015 Anil Madhavapeddy - * Copyright (c) 2013 Citrix Systems Inc - * Copyright (c) 2013 Anil Madhavapeddy - * Copyright (c) 2013 Thomas Gazagnaire - * Copyright (c) 2013-2014 Citrix Systems Inc - * Copyright (c) 2013-2014 Thomas Gazagnaire - * Copyright (c) 2013-2015 Thomas Gazagnaire - * Copyright (c) 2014 David Sheets - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - *) - diff --git a/repo/licenses/LICENSE.mirage-types.2.8.0 b/repo/licenses/LICENSE.mirage-types.2.8.0 deleted file mode 100644 index f5d04383e..000000000 --- a/repo/licenses/LICENSE.mirage-types.2.8.0 +++ /dev/null @@ -1,24 +0,0 @@ -(* - * Copyright (c) 2011-2014 Anil Madhavapeddy - * Copyright (c) 2011-2015 Anil Madhavapeddy - * Copyright (c) 2013 Citrix Systems Inc - * Copyright (c) 2013 Anil Madhavapeddy - * Copyright (c) 2013 Thomas Gazagnaire - * Copyright (c) 2013-2014 Citrix Systems Inc - * Copyright (c) 2013-2014 Thomas Gazagnaire - * Copyright (c) 2013-2015 Thomas Gazagnaire - * Copyright (c) 2014 David Sheets - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - *) - diff --git a/repo/licenses/LICENSE.mirage-types.2.8.999 b/repo/licenses/LICENSE.mirage-types.2.8.999 deleted file mode 100644 index f5d04383e..000000000 --- a/repo/licenses/LICENSE.mirage-types.2.8.999 +++ /dev/null @@ -1,24 +0,0 @@ -(* - * Copyright (c) 2011-2014 Anil Madhavapeddy - * Copyright (c) 2011-2015 Anil Madhavapeddy - * Copyright (c) 2013 Citrix Systems Inc - * Copyright (c) 2013 Anil Madhavapeddy - * Copyright (c) 2013 Thomas Gazagnaire - * Copyright (c) 2013-2014 Citrix Systems Inc - * Copyright (c) 2013-2014 Thomas Gazagnaire - * Copyright (c) 2013-2015 Thomas Gazagnaire - * Copyright (c) 2014 David Sheets - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - *) - diff --git a/repo/licenses/LICENSE.mtime.0.8.3 b/repo/licenses/LICENSE.mtime.0.8.3 deleted file mode 100644 index b583eba4f..000000000 --- a/repo/licenses/LICENSE.mtime.0.8.3 +++ /dev/null @@ -1,30 +0,0 @@ - Copyright (c) 2015 Daniel C. Bünzli. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - 3. Neither the name of Daniel C. Bünzli nor the names of - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/repo/licenses/LICENSE.named-pipe.0.2 b/repo/licenses/LICENSE.named-pipe.0.2 deleted file mode 100644 index 094ecbbd7..000000000 --- a/repo/licenses/LICENSE.named-pipe.0.2 +++ /dev/null @@ -1,16 +0,0 @@ -(* - * Copyright (c) 2016 Docker Inc - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - *) diff --git a/repo/licenses/LICENSE.named-pipe.0.3 b/repo/licenses/LICENSE.named-pipe.0.3 deleted file mode 100644 index 094ecbbd7..000000000 --- a/repo/licenses/LICENSE.named-pipe.0.3 +++ /dev/null @@ -1,16 +0,0 @@ -(* - * Copyright (c) 2016 Docker Inc - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - *) diff --git a/repo/licenses/LICENSE.oasis.0.4.10.skip b/repo/licenses/LICENSE.oasis.0.4.10.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.oasis.0.4.7.skip b/repo/licenses/LICENSE.oasis.0.4.7.skip deleted file mode 100644 index 77f9bde1d..000000000 --- a/repo/licenses/LICENSE.oasis.0.4.7.skip +++ /dev/null @@ -1 +0,0 @@ -# Intentially left blank since this code is used by OASIS and not linked diff --git a/repo/licenses/LICENSE.ocaml-compiler-libs.v0.9.0.skip b/repo/licenses/LICENSE.ocaml-compiler-libs.v0.9.0.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.ocaml-data-notation.0.0.11.skip b/repo/licenses/LICENSE.ocaml-data-notation.0.0.11.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.ocaml-migrate-parsetree.1.0.1.skip b/repo/licenses/LICENSE.ocaml-migrate-parsetree.1.0.1.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.ocaml-src.4.04.2.skip b/repo/licenses/LICENSE.ocaml-src.4.04.2.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.ocamlbuild.0.11.0.skip b/repo/licenses/LICENSE.ocamlbuild.0.11.0.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.ocamlfind.1.7.3.skip b/repo/licenses/LICENSE.ocamlfind.1.7.3.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.ocamlify.0.0.1.skip b/repo/licenses/LICENSE.ocamlify.0.0.1.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.ocb-stubblr.0.1.1.skip b/repo/licenses/LICENSE.ocb-stubblr.0.1.1.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.octavius.1.1.0.skip b/repo/licenses/LICENSE.octavius.1.1.0.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.stringext.1.4.2 b/repo/licenses/LICENSE.stringext.1.4.2 deleted file mode 100644 index 925dd88c5..000000000 --- a/repo/licenses/LICENSE.stringext.1.4.2 +++ /dev/null @@ -1,7 +0,0 @@ -Copyright (c) Rudi Grinberg - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/repo/licenses/LICENSE.tcpip.999 b/repo/licenses/LICENSE.tcpip.999 deleted file mode 100644 index 7c1e52ee5..000000000 --- a/repo/licenses/LICENSE.tcpip.999 +++ /dev/null @@ -1,34 +0,0 @@ -Copyright (c) Anil Madhavapeddy -Copyright (c) Balraj Singh -Copyright (c) Citrix Inc -Copyright (c) David Scott -Copyright (c) Docker Inc -Copyright (c) Drup -Copyright (c) Gabor Pali -Copyright (c) Hannes Mehnert -Copyright (c) Haris Rotsos -Copyright (c) Kia -Copyright (c) Luke Dunstan -Copyright (c) Magnus Skjegstad -Copyright (c) Mindy Preston -Copyright (c) Nicolas Ojeda Bar -Copyright (c) Pablo Polvorin -Copyright (c) Richard Mortier -Copyright (c) Thomas Gazagnaire -Copyright (c) Thomas Leonard -Copyright (c) Tim Cuthbertson -Copyright (c) Vincent Bernardoff -Copyright (c) lnmx -Copyright (c) pqwy - -Permission to use, copy, modify, and distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS l SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/repo/licenses/LICENSE.topkg.0.9.0.skip b/repo/licenses/LICENSE.topkg.0.9.0.skip new file mode 100644 index 000000000..e69de29bb diff --git a/repo/licenses/LICENSE.unix-errno.0.4.2 b/repo/licenses/LICENSE.unix-errno.0.4.2 deleted file mode 100644 index 4f9e4c309..000000000 --- a/repo/licenses/LICENSE.unix-errno.0.4.2 +++ /dev/null @@ -1,16 +0,0 @@ -(* - * Copyright (c) 2015 David Sheets - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - *) diff --git a/repo/licenses/LICENSE.uri.1.9.2 b/repo/licenses/LICENSE.uri.1.9.2 deleted file mode 100644 index c17c59098..000000000 --- a/repo/licenses/LICENSE.uri.1.9.2 +++ /dev/null @@ -1,17 +0,0 @@ -(* - * Copyright (c) 2012-2014 Anil Madhavapeddy - * Copyright (c) 2012-2014 David Sheets - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - *) From 8eeb8429ca8f877f30b08b0b23a4e3fcb4ff1cf1 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Thu, 3 Aug 2017 11:56:04 +0200 Subject: [PATCH 26/32] Fix lwt license Signed-off-by: Thomas Gazagnaire --- repo/licenses/LICENSE.lwt.3.1.0 | 575 ++++++++++++++++++++++++++++++-- 1 file changed, 552 insertions(+), 23 deletions(-) diff --git a/repo/licenses/LICENSE.lwt.3.1.0 b/repo/licenses/LICENSE.lwt.3.1.0 index f3f48daa4..97f449658 100644 --- a/repo/licenses/LICENSE.lwt.3.1.0 +++ b/repo/licenses/LICENSE.lwt.3.1.0 @@ -1,23 +1,552 @@ -OCaml promise library -http://www.ocsigen.org/lwt - -Copyright (C) 2005-2008 Jérôme Vouillon -Laboratoire PPS - CNRS Université Paris Diderot - 2009-2012 Jérémie Dimino - 2017 Anton Bachin - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as -published by the Free Software Foundation, with linking exceptions; -either version 2.1 of the License, or (at your option) any later -version. See COPYING file for details. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. +This program is released under the LGPL version 2.1 (see the text below) with +the additional exemption that compiling, linking, and/or using OpenSSL is +allowed. + +As a special exception to the GNU Library General Public License, you +may also link, statically or dynamically, a "work that uses the Library" +with a publicly distributed version of the Library to produce an +executable file containing portions of the Library, and distribute +that executable file under terms of your choice, without any of the +additional requirements listed in clause 6 of the GNU Library General +Public License. By "a publicly distributed version of the Library", +we mean either the unmodified Library, or a +modified version of the Library that is distributed under the +conditions defined in clause 3 of the GNU Library General Public +License. This exception does not however invalidate any other reasons +why the executable file might be covered by the GNU Library General +Public License. + +Some parts, when stated (as licenced under BSD3) are licenced under +3-clauses or Modified BSD License. + + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + +====== BSD3 or Modified BSD License ====== + +Copyright (c) , +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 06255c226f198725928641f2c1995cfce1ec3f17 Mon Sep 17 00:00:00 2001 From: David Scott Date: Thu, 3 Aug 2017 12:08:04 +0100 Subject: [PATCH 27/32] Import Cohttp_mirage_io from mirage-http The mirage-http package depends on mirage-conduit which depends on tls which depends on libgmp etc. We only need the definitions of `read_line` `read` `write` and `flush` so include them directly. Signed-off-by: David Scott --- src/hostnet/cohttp_mirage_io.ml | 59 ++++++++++++++++++++++++++++++++ src/hostnet/cohttp_mirage_io.mli | 26 ++++++++++++++ src/hostnet/jbuild | 2 +- vpnkit.opam | 1 - 4 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 src/hostnet/cohttp_mirage_io.ml create mode 100644 src/hostnet/cohttp_mirage_io.mli diff --git a/src/hostnet/cohttp_mirage_io.ml b/src/hostnet/cohttp_mirage_io.ml new file mode 100644 index 000000000..fc8c2c5ab --- /dev/null +++ b/src/hostnet/cohttp_mirage_io.ml @@ -0,0 +1,59 @@ +(* + * Copyright (c) 2012-2015 Anil Madhavapeddy + * Copyright (c) 2013-2015 Thomas Gazagnaire + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * %%NAME%% %%VERSION%% + *) + +open Lwt.Infix +open Result + +module Make (Channel: Mirage_channel_lwt.S) = struct + + type 'a t = 'a Lwt.t + type ic = Channel.t + type oc = Channel.t + type conn = Channel.flow + + let failf fmt = Fmt.kstrf Lwt.fail_with fmt + + let read_line ic = + Channel.read_line ic >>= function + | Ok (`Data []) -> Lwt.return_none + | Ok `Eof -> Lwt.return_none + | Ok (`Data bufs) -> Lwt.return (Some (Cstruct.copyv bufs)) + | Error e -> failf "Flow error: %a" Channel.pp_error e + + let read ic len = + Channel.read_some ~len ic >>= function + | Ok (`Data buf) -> Lwt.return (Cstruct.to_string buf) + | Ok `Eof -> Lwt.return "" + | Error e -> failf "Flow error: %a" Channel.pp_error e + + let write oc buf = + Channel.write_string oc buf 0 (String.length buf); + Channel.flush oc >>= function + | Ok () -> Lwt.return_unit + | Error `Closed -> Lwt.fail_with "Trying to write on closed channel" + | Error e -> failf "Flow error: %a" Channel.pp_write_error e + + let flush _ = + (* NOOP since we flush in the normal writer functions above *) + Lwt.return_unit + + let (>>= ) = Lwt.( >>= ) + let return = Lwt.return + +end diff --git a/src/hostnet/cohttp_mirage_io.mli b/src/hostnet/cohttp_mirage_io.mli new file mode 100644 index 000000000..0a15e6f8e --- /dev/null +++ b/src/hostnet/cohttp_mirage_io.mli @@ -0,0 +1,26 @@ +(* + * Copyright (c) 2012-2015 Anil Madhavapeddy + * Copyright (c) 2013-2015 Thomas Gazagnaire + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * %%NAME%% %%VERSION%% + *) + +(** Cohttp IO implementation using Mirage channels. *) + +module Make (Channel: Mirage_channel_lwt.S) : Cohttp.S.IO + with type 'a t = 'a Lwt.t + and type ic = Channel.t + and type oc = Channel.t + and type conn = Channel.flow diff --git a/src/hostnet/jbuild b/src/hostnet/jbuild index 81a58b5c8..aaa3b8dff 100644 --- a/src/hostnet/jbuild +++ b/src/hostnet/jbuild @@ -8,7 +8,7 @@ tcpip.arpv4 tcpip.ipv4 tcpip.icmpv4 tcpip.udp tcpip.tcp tcpip.stack-direct charrua-core.server dns dns-lwt ofs uwt uwt.ext uwt.preemptive lwt.preemptive threads astring datakit-server dns-forward tar mirage-vnetif - dnssd uuidm mirage-http cohttp-lwt mirage-channel ezjsonm + dnssd uuidm cohttp-lwt mirage-channel ezjsonm mirage-protocols-lwt duration mirage-time-lwt mirage-clock-lwt mirage-time-unix mirage-random tcpip.unix )) diff --git a/vpnkit.opam b/vpnkit.opam index 665c72a10..8a8ab93ca 100644 --- a/vpnkit.opam +++ b/vpnkit.opam @@ -63,7 +63,6 @@ depends: [ "mirage-channel" {>= "3.0.1"} "mirage-console-unix" "mirage-clock-unix" - "mirage-http" "cohttp" {>= "0.22.0"} "protocol-9p-unix" {>= "0.11.2"} "mirage-vnetif" {>= "0.4.0"} From 330a96ee2e72ef9da89dc91fcd0778f817b003cf Mon Sep 17 00:00:00 2001 From: David Scott Date: Thu, 3 Aug 2017 12:08:04 +0100 Subject: [PATCH 28/32] Fix cohttp-lwt constraint Signed-off-by: Thomas Gazagnaire --- vpnkit.opam | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vpnkit.opam b/vpnkit.opam index 8a8ab93ca..03f7028e7 100644 --- a/vpnkit.opam +++ b/vpnkit.opam @@ -63,7 +63,7 @@ depends: [ "mirage-channel" {>= "3.0.1"} "mirage-console-unix" "mirage-clock-unix" - "cohttp" {>= "0.22.0"} + "cohttp-lwt" {>= "0.99.0"} "protocol-9p-unix" {>= "0.11.2"} "mirage-vnetif" {>= "0.4.0"} "uuidm" From 469886823f64808b830e1c4ae3c5d771debf3b1f Mon Sep 17 00:00:00 2001 From: David Scott Date: Thu, 3 Aug 2017 12:10:22 +0100 Subject: [PATCH 29/32] AUTO: Update upstream packages Signed-off-by: David Scott --- .../upstream/asn1-combinators.0.1.3/descr | 10 - .../upstream/asn1-combinators.0.1.3/opam | 27 - .../upstream/asn1-combinators.0.1.3/url | 2 - .../packages/upstream/conduit-lwt.1.0.0/descr | 37 - .../packages/upstream/conduit-lwt.1.0.0/opam | 20 - .../packages/upstream/conduit-lwt.1.0.0/url | 2 - .../darwin/packages/upstream/conf-gmp.1/descr | 2 - .../packages/upstream/conf-gmp.1/files/test.c | 8 - repo/darwin/packages/upstream/conf-gmp.1/opam | 22 - repo/darwin/packages/upstream/conf-m4.1/opam | 3 - .../packages/upstream/conf-perl.1/descr | 2 - .../darwin/packages/upstream/conf-perl.1/opam | 15 - .../packages/upstream/cpuid.0.1.1/descr | 26 - .../darwin/packages/upstream/cpuid.0.1.1/opam | 19 - repo/darwin/packages/upstream/cpuid.0.1.1/url | 2 - repo/darwin/packages/upstream/lwt.3.1.0/opam | 2 +- .../upstream/mirage-conduit.3.0.1/descr | 35 - .../upstream/mirage-conduit.3.0.1/opam | 25 - .../upstream/mirage-conduit.3.0.1/url | 2 - .../packages/upstream/mirage-dns.3.0.0/descr | 29 - .../packages/upstream/mirage-dns.3.0.0/opam | 24 - .../packages/upstream/mirage-dns.3.0.0/url | 2 - .../packages/upstream/mirage-http.3.2.0/descr | 27 - .../packages/upstream/mirage-http.3.2.0/opam | 30 - .../packages/upstream/mirage-http.3.2.0/url | 2 - .../packages/upstream/mirage-no-solo5.1/descr | 1 - .../packages/upstream/mirage-no-solo5.1/opam | 6 - .../packages/upstream/mirage-no-xen.1/descr | 1 - .../packages/upstream/mirage-no-xen.1/opam | 6 - .../packages/upstream/nocrypto.0.5.4/descr | 9 - .../packages/upstream/nocrypto.0.5.4/opam | 41 - .../packages/upstream/nocrypto.0.5.4/url | 2 - .../packages/upstream/oasis.0.4.10/descr | 23 - .../upstream/oasis.0.4.10/files/oasis.install | 5 - .../packages/upstream/oasis.0.4.10/opam | 32 - .../darwin/packages/upstream/oasis.0.4.10/url | 2 - .../ocaml-migrate-parsetree.1.0.1/url | 3 - .../descr | 0 .../opam | 12 +- .../ocaml-migrate-parsetree.1.0.2/url | 3 + .../packages/upstream/ocamlify.0.0.1/descr | 5 - .../ocamlify.0.0.1/files/ocamlify.install | 1 - .../packages/upstream/ocamlify.0.0.1/opam | 11 - .../packages/upstream/ocamlify.0.0.1/url | 2 - .../packages/upstream/ocamlmod.0.0.8/descr | 1 - .../ocamlmod.0.0.8/files/_oasis_remove_.ml | 7 - .../ocamlmod.0.0.8/files/ocamlmod.install | 6 - .../packages/upstream/ocamlmod.0.0.8/opam | 25 - .../packages/upstream/ocamlmod.0.0.8/url | 2 - .../packages/upstream/ppx_ast.v0.9.1/opam | 2 +- .../packages/upstream/prometheus.0.3/url | 2 - .../{prometheus.0.3 => prometheus.0.4}/descr | 0 .../{prometheus.0.3 => prometheus.0.4}/opam | 0 .../packages/upstream/prometheus.0.4/url | 2 + .../packages/upstream/ptime.0.8.3/descr | 20 - .../darwin/packages/upstream/ptime.0.8.3/opam | 21 - repo/darwin/packages/upstream/ptime.0.8.3/url | 2 - repo/darwin/packages/upstream/tls.0.8.0/descr | 15 - repo/darwin/packages/upstream/tls.0.8.0/opam | 55 - repo/darwin/packages/upstream/tls.0.8.0/url | 2 - .../packages/upstream/vchan.3.0.0/descr | 4 - .../darwin/packages/upstream/vchan.3.0.0/opam | 37 - repo/darwin/packages/upstream/vchan.3.0.0/url | 2 - .../darwin/packages/upstream/x509.0.5.3/descr | 4 - repo/darwin/packages/upstream/x509.0.5.3/opam | 40 - repo/darwin/packages/upstream/x509.0.5.3/url | 2 - .../packages/upstream/xenstore.1.4.0/descr | 1 - .../packages/upstream/xenstore.1.4.0/opam | 29 - .../packages/upstream/xenstore.1.4.0/url | 2 - .../upstream/xenstore_transport.0.9.6/descr | 6 - .../upstream/xenstore_transport.0.9.6/opam | 35 - .../upstream/xenstore_transport.0.9.6/url | 2 - .../darwin/packages/upstream/zarith.1.5/descr | 5 - repo/darwin/packages/upstream/zarith.1.5/opam | 21 - repo/darwin/packages/upstream/zarith.1.5/url | 2 - .../upstream/asn1-combinators.0.1.3/descr | 10 - .../upstream/asn1-combinators.0.1.3/opam | 26 - .../upstream/asn1-combinators.0.1.3/url | 2 - .../packages/upstream/conduit-lwt.1.0.0/descr | 37 - .../packages/upstream/conduit-lwt.1.0.0/opam | 20 - .../packages/upstream/conduit-lwt.1.0.0/url | 2 - repo/win32/packages/upstream/conf-gmp.1/descr | 2 - .../upstream/conf-gmp.1/files/test-win.sh | 4 - .../packages/upstream/conf-gmp.1/files/test.c | 8 - repo/win32/packages/upstream/conf-gmp.1/opam | 24 - repo/win32/packages/upstream/conf-m4.1/opam | 3 - .../win32/packages/upstream/conf-perl.1/descr | 2 - repo/win32/packages/upstream/conf-perl.1/opam | 15 - .../win32/packages/upstream/cpuid.0.1.1/descr | 26 - repo/win32/packages/upstream/cpuid.0.1.1/opam | 19 - repo/win32/packages/upstream/cpuid.0.1.1/url | 2 - repo/win32/packages/upstream/lwt.3.1.0/opam | 2 +- .../upstream/mirage-conduit.3.0.1/descr | 35 - .../upstream/mirage-conduit.3.0.1/opam | 25 - .../upstream/mirage-conduit.3.0.1/url | 2 - .../packages/upstream/mirage-dns.3.0.0/descr | 29 - .../packages/upstream/mirage-dns.3.0.0/opam | 24 - .../packages/upstream/mirage-dns.3.0.0/url | 2 - .../packages/upstream/mirage-http.3.2.0/descr | 27 - .../packages/upstream/mirage-http.3.2.0/opam | 30 - .../packages/upstream/mirage-http.3.2.0/url | 2 - .../packages/upstream/mirage-no-solo5.1/descr | 1 - .../packages/upstream/mirage-no-solo5.1/opam | 6 - .../packages/upstream/mirage-no-xen.1/descr | 1 - .../packages/upstream/mirage-no-xen.1/opam | 6 - .../packages/upstream/nocrypto.0.5.4/descr | 9 - .../packages/upstream/nocrypto.0.5.4/opam | 41 - .../packages/upstream/nocrypto.0.5.4/url | 2 - .../packages/upstream/oasis.0.4.10/descr | 23 - .../oasis.0.4.10/files/oasis-0.4.10.patch | 2417 ----------------- .../upstream/oasis.0.4.10/files/oasis.install | 5 - .../win32/packages/upstream/oasis.0.4.10/opam | 33 - repo/win32/packages/upstream/oasis.0.4.10/url | 2 - .../ocaml-migrate-parsetree.1.0.1/url | 3 - .../descr | 0 .../opam | 12 +- .../ocaml-migrate-parsetree.1.0.2/url | 3 + .../packages/upstream/ocamlify.0.0.1/descr | 5 - .../ocamlify.0.0.1/files/ocamlify.install | 1 - .../packages/upstream/ocamlify.0.0.1/opam | 11 - .../packages/upstream/ocamlify.0.0.1/url | 2 - .../packages/upstream/ocamlmod.0.0.8/descr | 1 - .../ocamlmod.0.0.8/files/_oasis_remove_.ml | 7 - .../ocamlmod.0.0.8/files/ocamlmod.install | 6 - .../packages/upstream/ocamlmod.0.0.8/opam | 26 - .../packages/upstream/ocamlmod.0.0.8/url | 2 - .../packages/upstream/ppx_ast.v0.9.1/opam | 2 +- .../win32/packages/upstream/ptime.0.8.3/descr | 20 - repo/win32/packages/upstream/ptime.0.8.3/opam | 21 - repo/win32/packages/upstream/ptime.0.8.3/url | 2 - repo/win32/packages/upstream/tls.0.8.0/descr | 15 - repo/win32/packages/upstream/tls.0.8.0/opam | 55 - repo/win32/packages/upstream/tls.0.8.0/url | 2 - .../win32/packages/upstream/vchan.3.0.0/descr | 4 - repo/win32/packages/upstream/vchan.3.0.0/opam | 37 - repo/win32/packages/upstream/vchan.3.0.0/url | 2 - repo/win32/packages/upstream/x509.0.5.3/descr | 4 - repo/win32/packages/upstream/x509.0.5.3/opam | 40 - repo/win32/packages/upstream/x509.0.5.3/url | 2 - .../packages/upstream/xenstore.1.4.0/descr | 1 - .../packages/upstream/xenstore.1.4.0/opam | 29 - .../packages/upstream/xenstore.1.4.0/url | 2 - .../upstream/xenstore_transport.0.9.6/descr | 6 - .../upstream/xenstore_transport.0.9.6/opam | 35 - .../upstream/xenstore_transport.0.9.6/url | 2 - repo/win32/packages/upstream/zarith.1.5/descr | 5 - .../zarith.1.5/files/Zarith-release-1.5.patch | 236 -- repo/win32/packages/upstream/zarith.1.5/opam | 22 - repo/win32/packages/upstream/zarith.1.5/url | 2 - 149 files changed, 26 insertions(+), 4419 deletions(-) delete mode 100644 repo/darwin/packages/upstream/asn1-combinators.0.1.3/descr delete mode 100644 repo/darwin/packages/upstream/asn1-combinators.0.1.3/opam delete mode 100644 repo/darwin/packages/upstream/asn1-combinators.0.1.3/url delete mode 100644 repo/darwin/packages/upstream/conduit-lwt.1.0.0/descr delete mode 100644 repo/darwin/packages/upstream/conduit-lwt.1.0.0/opam delete mode 100644 repo/darwin/packages/upstream/conduit-lwt.1.0.0/url delete mode 100644 repo/darwin/packages/upstream/conf-gmp.1/descr delete mode 100644 repo/darwin/packages/upstream/conf-gmp.1/files/test.c delete mode 100644 repo/darwin/packages/upstream/conf-gmp.1/opam delete mode 100644 repo/darwin/packages/upstream/conf-perl.1/descr delete mode 100644 repo/darwin/packages/upstream/conf-perl.1/opam delete mode 100644 repo/darwin/packages/upstream/cpuid.0.1.1/descr delete mode 100644 repo/darwin/packages/upstream/cpuid.0.1.1/opam delete mode 100644 repo/darwin/packages/upstream/cpuid.0.1.1/url delete mode 100644 repo/darwin/packages/upstream/mirage-conduit.3.0.1/descr delete mode 100644 repo/darwin/packages/upstream/mirage-conduit.3.0.1/opam delete mode 100644 repo/darwin/packages/upstream/mirage-conduit.3.0.1/url delete mode 100644 repo/darwin/packages/upstream/mirage-dns.3.0.0/descr delete mode 100644 repo/darwin/packages/upstream/mirage-dns.3.0.0/opam delete mode 100644 repo/darwin/packages/upstream/mirage-dns.3.0.0/url delete mode 100644 repo/darwin/packages/upstream/mirage-http.3.2.0/descr delete mode 100644 repo/darwin/packages/upstream/mirage-http.3.2.0/opam delete mode 100644 repo/darwin/packages/upstream/mirage-http.3.2.0/url delete mode 100644 repo/darwin/packages/upstream/mirage-no-solo5.1/descr delete mode 100644 repo/darwin/packages/upstream/mirage-no-solo5.1/opam delete mode 100644 repo/darwin/packages/upstream/mirage-no-xen.1/descr delete mode 100644 repo/darwin/packages/upstream/mirage-no-xen.1/opam delete mode 100644 repo/darwin/packages/upstream/nocrypto.0.5.4/descr delete mode 100644 repo/darwin/packages/upstream/nocrypto.0.5.4/opam delete mode 100644 repo/darwin/packages/upstream/nocrypto.0.5.4/url delete mode 100644 repo/darwin/packages/upstream/oasis.0.4.10/descr delete mode 100644 repo/darwin/packages/upstream/oasis.0.4.10/files/oasis.install delete mode 100644 repo/darwin/packages/upstream/oasis.0.4.10/opam delete mode 100644 repo/darwin/packages/upstream/oasis.0.4.10/url delete mode 100644 repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/url rename repo/darwin/packages/upstream/{ocaml-migrate-parsetree.1.0.1 => ocaml-migrate-parsetree.1.0.2}/descr (100%) rename repo/darwin/packages/upstream/{ocaml-migrate-parsetree.1.0.1 => ocaml-migrate-parsetree.1.0.2}/opam (72%) create mode 100644 repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.2/url delete mode 100644 repo/darwin/packages/upstream/ocamlify.0.0.1/descr delete mode 100644 repo/darwin/packages/upstream/ocamlify.0.0.1/files/ocamlify.install delete mode 100644 repo/darwin/packages/upstream/ocamlify.0.0.1/opam delete mode 100644 repo/darwin/packages/upstream/ocamlify.0.0.1/url delete mode 100644 repo/darwin/packages/upstream/ocamlmod.0.0.8/descr delete mode 100644 repo/darwin/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml delete mode 100644 repo/darwin/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install delete mode 100644 repo/darwin/packages/upstream/ocamlmod.0.0.8/opam delete mode 100644 repo/darwin/packages/upstream/ocamlmod.0.0.8/url delete mode 100644 repo/darwin/packages/upstream/prometheus.0.3/url rename repo/darwin/packages/upstream/{prometheus.0.3 => prometheus.0.4}/descr (100%) rename repo/darwin/packages/upstream/{prometheus.0.3 => prometheus.0.4}/opam (100%) create mode 100644 repo/darwin/packages/upstream/prometheus.0.4/url delete mode 100644 repo/darwin/packages/upstream/ptime.0.8.3/descr delete mode 100644 repo/darwin/packages/upstream/ptime.0.8.3/opam delete mode 100644 repo/darwin/packages/upstream/ptime.0.8.3/url delete mode 100644 repo/darwin/packages/upstream/tls.0.8.0/descr delete mode 100644 repo/darwin/packages/upstream/tls.0.8.0/opam delete mode 100644 repo/darwin/packages/upstream/tls.0.8.0/url delete mode 100644 repo/darwin/packages/upstream/vchan.3.0.0/descr delete mode 100644 repo/darwin/packages/upstream/vchan.3.0.0/opam delete mode 100644 repo/darwin/packages/upstream/vchan.3.0.0/url delete mode 100644 repo/darwin/packages/upstream/x509.0.5.3/descr delete mode 100644 repo/darwin/packages/upstream/x509.0.5.3/opam delete mode 100644 repo/darwin/packages/upstream/x509.0.5.3/url delete mode 100644 repo/darwin/packages/upstream/xenstore.1.4.0/descr delete mode 100644 repo/darwin/packages/upstream/xenstore.1.4.0/opam delete mode 100644 repo/darwin/packages/upstream/xenstore.1.4.0/url delete mode 100644 repo/darwin/packages/upstream/xenstore_transport.0.9.6/descr delete mode 100644 repo/darwin/packages/upstream/xenstore_transport.0.9.6/opam delete mode 100644 repo/darwin/packages/upstream/xenstore_transport.0.9.6/url delete mode 100644 repo/darwin/packages/upstream/zarith.1.5/descr delete mode 100644 repo/darwin/packages/upstream/zarith.1.5/opam delete mode 100644 repo/darwin/packages/upstream/zarith.1.5/url delete mode 100644 repo/win32/packages/upstream/asn1-combinators.0.1.3/descr delete mode 100644 repo/win32/packages/upstream/asn1-combinators.0.1.3/opam delete mode 100644 repo/win32/packages/upstream/asn1-combinators.0.1.3/url delete mode 100644 repo/win32/packages/upstream/conduit-lwt.1.0.0/descr delete mode 100644 repo/win32/packages/upstream/conduit-lwt.1.0.0/opam delete mode 100644 repo/win32/packages/upstream/conduit-lwt.1.0.0/url delete mode 100644 repo/win32/packages/upstream/conf-gmp.1/descr delete mode 100755 repo/win32/packages/upstream/conf-gmp.1/files/test-win.sh delete mode 100644 repo/win32/packages/upstream/conf-gmp.1/files/test.c delete mode 100644 repo/win32/packages/upstream/conf-gmp.1/opam delete mode 100644 repo/win32/packages/upstream/conf-perl.1/descr delete mode 100644 repo/win32/packages/upstream/conf-perl.1/opam delete mode 100644 repo/win32/packages/upstream/cpuid.0.1.1/descr delete mode 100644 repo/win32/packages/upstream/cpuid.0.1.1/opam delete mode 100644 repo/win32/packages/upstream/cpuid.0.1.1/url delete mode 100644 repo/win32/packages/upstream/mirage-conduit.3.0.1/descr delete mode 100644 repo/win32/packages/upstream/mirage-conduit.3.0.1/opam delete mode 100644 repo/win32/packages/upstream/mirage-conduit.3.0.1/url delete mode 100644 repo/win32/packages/upstream/mirage-dns.3.0.0/descr delete mode 100644 repo/win32/packages/upstream/mirage-dns.3.0.0/opam delete mode 100644 repo/win32/packages/upstream/mirage-dns.3.0.0/url delete mode 100644 repo/win32/packages/upstream/mirage-http.3.2.0/descr delete mode 100644 repo/win32/packages/upstream/mirage-http.3.2.0/opam delete mode 100644 repo/win32/packages/upstream/mirage-http.3.2.0/url delete mode 100644 repo/win32/packages/upstream/mirage-no-solo5.1/descr delete mode 100644 repo/win32/packages/upstream/mirage-no-solo5.1/opam delete mode 100644 repo/win32/packages/upstream/mirage-no-xen.1/descr delete mode 100644 repo/win32/packages/upstream/mirage-no-xen.1/opam delete mode 100644 repo/win32/packages/upstream/nocrypto.0.5.4/descr delete mode 100644 repo/win32/packages/upstream/nocrypto.0.5.4/opam delete mode 100644 repo/win32/packages/upstream/nocrypto.0.5.4/url delete mode 100644 repo/win32/packages/upstream/oasis.0.4.10/descr delete mode 100644 repo/win32/packages/upstream/oasis.0.4.10/files/oasis-0.4.10.patch delete mode 100644 repo/win32/packages/upstream/oasis.0.4.10/files/oasis.install delete mode 100644 repo/win32/packages/upstream/oasis.0.4.10/opam delete mode 100644 repo/win32/packages/upstream/oasis.0.4.10/url delete mode 100644 repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/url rename repo/win32/packages/upstream/{ocaml-migrate-parsetree.1.0.1 => ocaml-migrate-parsetree.1.0.2}/descr (100%) rename repo/win32/packages/upstream/{ocaml-migrate-parsetree.1.0.1 => ocaml-migrate-parsetree.1.0.2}/opam (72%) create mode 100644 repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.2/url delete mode 100644 repo/win32/packages/upstream/ocamlify.0.0.1/descr delete mode 100644 repo/win32/packages/upstream/ocamlify.0.0.1/files/ocamlify.install delete mode 100644 repo/win32/packages/upstream/ocamlify.0.0.1/opam delete mode 100644 repo/win32/packages/upstream/ocamlify.0.0.1/url delete mode 100644 repo/win32/packages/upstream/ocamlmod.0.0.8/descr delete mode 100644 repo/win32/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml delete mode 100644 repo/win32/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install delete mode 100644 repo/win32/packages/upstream/ocamlmod.0.0.8/opam delete mode 100644 repo/win32/packages/upstream/ocamlmod.0.0.8/url delete mode 100644 repo/win32/packages/upstream/ptime.0.8.3/descr delete mode 100644 repo/win32/packages/upstream/ptime.0.8.3/opam delete mode 100644 repo/win32/packages/upstream/ptime.0.8.3/url delete mode 100644 repo/win32/packages/upstream/tls.0.8.0/descr delete mode 100644 repo/win32/packages/upstream/tls.0.8.0/opam delete mode 100644 repo/win32/packages/upstream/tls.0.8.0/url delete mode 100644 repo/win32/packages/upstream/vchan.3.0.0/descr delete mode 100644 repo/win32/packages/upstream/vchan.3.0.0/opam delete mode 100644 repo/win32/packages/upstream/vchan.3.0.0/url delete mode 100644 repo/win32/packages/upstream/x509.0.5.3/descr delete mode 100644 repo/win32/packages/upstream/x509.0.5.3/opam delete mode 100644 repo/win32/packages/upstream/x509.0.5.3/url delete mode 100644 repo/win32/packages/upstream/xenstore.1.4.0/descr delete mode 100644 repo/win32/packages/upstream/xenstore.1.4.0/opam delete mode 100644 repo/win32/packages/upstream/xenstore.1.4.0/url delete mode 100644 repo/win32/packages/upstream/xenstore_transport.0.9.6/descr delete mode 100644 repo/win32/packages/upstream/xenstore_transport.0.9.6/opam delete mode 100644 repo/win32/packages/upstream/xenstore_transport.0.9.6/url delete mode 100644 repo/win32/packages/upstream/zarith.1.5/descr delete mode 100644 repo/win32/packages/upstream/zarith.1.5/files/Zarith-release-1.5.patch delete mode 100644 repo/win32/packages/upstream/zarith.1.5/opam delete mode 100644 repo/win32/packages/upstream/zarith.1.5/url diff --git a/repo/darwin/packages/upstream/asn1-combinators.0.1.3/descr b/repo/darwin/packages/upstream/asn1-combinators.0.1.3/descr deleted file mode 100644 index 5c406f983..000000000 --- a/repo/darwin/packages/upstream/asn1-combinators.0.1.3/descr +++ /dev/null @@ -1,10 +0,0 @@ -Define ASN.1 grammars in OCaml - - -asn1-combinators is a library for declarative definitions of ASN.1 grammars, -embedded in OCaml. These definitions are strongly typed and allow parsing and -serialization. - -Presently, only BER and DER encoding and supported. - -asn1-combinators is distributed under the ISC license. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/asn1-combinators.0.1.3/opam b/repo/darwin/packages/upstream/asn1-combinators.0.1.3/opam deleted file mode 100644 index e9c5f31b9..000000000 --- a/repo/darwin/packages/upstream/asn1-combinators.0.1.3/opam +++ /dev/null @@ -1,27 +0,0 @@ -opam-version: "1.2" -authors: ["David Kaloper Meršinjak "] -maintainer: "David Kaloper Meršinjak " -homepage: "https://github.com/mirleft/ocaml-asn1-combinators" -doc: "https://mirleft.github.io/ocaml-asn1-combinators/doc" -license: "ISC" -dev-repo: "https://github.com/mirleft/ocaml-asn1-combinators.git" -bug-reports: "https://github.com/mirleft/ocaml-asn1-combinators/issues" -tags: [ "org:mirage" ] -available: [ ocaml-version >= "4.01.0" ] -build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" ] -build-test: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "true" ] - [ "ocaml" "pkg/pkg.ml" "test" ] -] -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "cstruct" {>= "1.2.0"} - "result" - "zarith" - "ounit" {test} -] -depopts: [] -conflicts: [ "cstruct" {< "1.2.0"} - "base-implicits" ] diff --git a/repo/darwin/packages/upstream/asn1-combinators.0.1.3/url b/repo/darwin/packages/upstream/asn1-combinators.0.1.3/url deleted file mode 100644 index 2fad82f6d..000000000 --- a/repo/darwin/packages/upstream/asn1-combinators.0.1.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirleft/ocaml-asn1-combinators/releases/download/v0.1.3/asn1-combinators-0.1.3.tbz" -checksum: "ce625d1fb6903aa8d40b27671ccf742c" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/conduit-lwt.1.0.0/descr b/repo/darwin/packages/upstream/conduit-lwt.1.0.0/descr deleted file mode 100644 index 34d65f589..000000000 --- a/repo/darwin/packages/upstream/conduit-lwt.1.0.0/descr +++ /dev/null @@ -1,37 +0,0 @@ -Network conduit library - -The `conduit` library takes care of establishing and listening for -TCP and SSL/TLS connections for the Lwt and Async libraries. - -The reason this library exists is to provide a degree of abstraction -from the precise SSL library used, since there are a variety of ways -to bind to a library (e.g. the C FFI, or the Ctypes library), as well -as well as which library is used (just OpenSSL for now). - -By default, OpenSSL is used as the preferred connection library, but -you can force the use of the pure OCaml TLS stack by setting the -environment variable `CONDUIT_TLS=native` when starting your program. - -### Modules - -Source code is in `lib/`. - -* `Conduit_lwt_unix` has the Lwt UNIX modules. -* `Conduit_async` has the Core/Async modules. - -There are also resolvers that map URIs to Conduit endpoints. -See for the online `ocamldoc` -for more details. - -### Debugging - -Some of the `Lwt_unix`-based modules use a non-empty `CONDUIT_DEBUG` -environment variable to output debugging information to standard error. -Just set this variable when running the program to see what URIs -are being resolved to. - -### Further Informartion - -* **WWW:** https://github.com/mirage/ocaml-conduit -* **E-mail:** -* **Bugs:** https://github.com/mirage/ocaml-conduit/issues \ No newline at end of file diff --git a/repo/darwin/packages/upstream/conduit-lwt.1.0.0/opam b/repo/darwin/packages/upstream/conduit-lwt.1.0.0/opam deleted file mode 100644 index bf4eb16e8..000000000 --- a/repo/darwin/packages/upstream/conduit-lwt.1.0.0/opam +++ /dev/null @@ -1,20 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire" "Rudi Grinberg"] -homepage: "https://github.com/mirage/ocaml-conduit" -dev-repo: "https://github.com/mirage/ocaml-conduit.git" -bug-reports: "https://github.com/mirage/ocaml-conduit/issues" -tags: "org:mirage" -license: "ISC" - -build: [ - ["jbuilder" "subst" "-p" name "--name" name] {pinned} - ["jbuilder" "build" "-p" name "-j" jobs] -] -depends: [ - "base-unix" - "jbuilder" {build & >="1.0+beta9"} - "conduit" {>="1.0.0"} - "lwt" {>="3.0.0"} -] -available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/conduit-lwt.1.0.0/url b/repo/darwin/packages/upstream/conduit-lwt.1.0.0/url deleted file mode 100644 index f7ff75a56..000000000 --- a/repo/darwin/packages/upstream/conduit-lwt.1.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-conduit/releases/download/v1.0.0/conduit-1.0.0.tbz" -checksum: "4656f150b9f98603c21d00c8f0aa1a9b" diff --git a/repo/darwin/packages/upstream/conf-gmp.1/descr b/repo/darwin/packages/upstream/conf-gmp.1/descr deleted file mode 100644 index c409e3439..000000000 --- a/repo/darwin/packages/upstream/conf-gmp.1/descr +++ /dev/null @@ -1,2 +0,0 @@ -Virtual package relying on a GMP lib system installation. -This package can only install if the GMP lib is installed on the system. diff --git a/repo/darwin/packages/upstream/conf-gmp.1/files/test.c b/repo/darwin/packages/upstream/conf-gmp.1/files/test.c deleted file mode 100644 index 74e2843b7..000000000 --- a/repo/darwin/packages/upstream/conf-gmp.1/files/test.c +++ /dev/null @@ -1,8 +0,0 @@ -#include -#ifndef __GMP_H__ -#error "No GMP header" -#endif - -void test(void) { - __gmp_init(); -} diff --git a/repo/darwin/packages/upstream/conf-gmp.1/opam b/repo/darwin/packages/upstream/conf-gmp.1/opam deleted file mode 100644 index f4f84e621..000000000 --- a/repo/darwin/packages/upstream/conf-gmp.1/opam +++ /dev/null @@ -1,22 +0,0 @@ -opam-version: "1.2" -maintainer: "nbraud" -author: "nbraud" -homepage: "http://gmplib.org/" -bug-reports: "https://github.com/ocaml/opam-repository/issues" -dev-repo: "https://github.com/ocaml/opam-repository.git" -license: "GPL" -build: [ - ["sh" "-exc" "cc -c $CFLAGS -I/usr/local/include test.c"] {os != "darwin"} - ["sh" "-exc" "cc -c $CFLAGS -I/opt/local/include -I/usr/local/include test.c"] {os = "darwin"} -] -depexts: [ - [["debian"] ["libgmp-dev"]] - [["ubuntu"] ["libgmp-dev"]] - [["osx" "homebrew"] ["gmp"]] - [["centos"] ["gmp" "gmp-devel"]] - [["fedora"] ["gmp" "gmp-devel"]] - [["openbsd"] ["gmp"]] - [["freebsd"] ["gmp"]] - [["alpine"] ["gmp-dev"]] - [["opensuse"] ["gmp-devel"]] -] diff --git a/repo/darwin/packages/upstream/conf-m4.1/opam b/repo/darwin/packages/upstream/conf-m4.1/opam index 6f2a64f2c..a0aaf1a6a 100644 --- a/repo/darwin/packages/upstream/conf-m4.1/opam +++ b/repo/darwin/packages/upstream/conf-m4.1/opam @@ -12,9 +12,6 @@ depexts: [ [["centos"] ["m4"]] [["alpine"] ["m4"]] [["nixpkgs"] ["m4"]] - [["fedora"] ["m4"]] - [["centos"] ["m4"]] - [["alpine"] ["m4"]] [["oraclelinux"] ["m4"]] [["archlinux"] ["m4"]] ] diff --git a/repo/darwin/packages/upstream/conf-perl.1/descr b/repo/darwin/packages/upstream/conf-perl.1/descr deleted file mode 100644 index a0520188b..000000000 --- a/repo/darwin/packages/upstream/conf-perl.1/descr +++ /dev/null @@ -1,2 +0,0 @@ -Virtual package relying on perl -This package can only install if the perl program is installed on the system. diff --git a/repo/darwin/packages/upstream/conf-perl.1/opam b/repo/darwin/packages/upstream/conf-perl.1/opam deleted file mode 100644 index 2010b2430..000000000 --- a/repo/darwin/packages/upstream/conf-perl.1/opam +++ /dev/null @@ -1,15 +0,0 @@ -opam-version: "1.2" -maintainer: "tim@gfxmonk.net" -homepage: "https://www.perl.org/" -bug-reports: "https://github.com/ocaml/opam-repository/issues" -dev-repo: "https://github.com/ocaml/opam-repository.git" -license: "GPL-1+" -build: [["perl" "--version"]] -depexts: [ - [["debian"] ["perl"]] - [["ubuntu"] ["perl"]] - [["alpine"]["perl"]] - [["nixpkgs"] ["perl"]] - [["archlinux"] ["perl"]] - [["fedora"] ["perl-Pod-Html"]] -] diff --git a/repo/darwin/packages/upstream/cpuid.0.1.1/descr b/repo/darwin/packages/upstream/cpuid.0.1.1/descr deleted file mode 100644 index 6ed960e99..000000000 --- a/repo/darwin/packages/upstream/cpuid.0.1.1/descr +++ /dev/null @@ -1,26 +0,0 @@ -Detect CPU features - - -cpuid allows detection of CPU features from OCaml. - -cpuid is distributed under the ISC license. - -## Installation - -cpuid can be installed with `opam`: - - opam install cpuid - -If you don't use `opam` consult the [`opam`](opam) file for build -instructions. - -## Documentation - -The documentation and API reference is automatically generated by -`ocamldoc` from the interfaces. It can be consulted [online][doc] -and there is a generated version in the `doc` directory of the -distribution. - -[doc]: https://pqwy.github.io/cpuid/doc - -[![Build Status](https://travis-ci.org/pqwy/cpuid.svg?branch=master)](https://travis-ci.org/pqwy/cpuid) \ No newline at end of file diff --git a/repo/darwin/packages/upstream/cpuid.0.1.1/opam b/repo/darwin/packages/upstream/cpuid.0.1.1/opam deleted file mode 100644 index fc08f3543..000000000 --- a/repo/darwin/packages/upstream/cpuid.0.1.1/opam +++ /dev/null @@ -1,19 +0,0 @@ -opam-version: "1.2" -maintainer: "David Kaloper Meršinjak " -authors: ["David Kaloper Meršinjak "] -homepage: "https://github.com/pqwy/cpuid" -doc: "https://pqwy.github.io/cpuid/doc" -license: "ISC" -dev-repo: "https://github.com/pqwy/cpuid.git" -bug-reports: "https://github.com/pqwy/cpuid/issues" -tags: [] -available: [ ocaml-version >= "4.01.0" ] -build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" ] -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "ocb-stubblr" {build} - "result" ] -depopts: [] -conflicts: [ "ocb-stubblr" {<"0.1.0"} ] diff --git a/repo/darwin/packages/upstream/cpuid.0.1.1/url b/repo/darwin/packages/upstream/cpuid.0.1.1/url deleted file mode 100644 index 248d3235b..000000000 --- a/repo/darwin/packages/upstream/cpuid.0.1.1/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/pqwy/cpuid/releases/download/v0.1.1/cpuid-0.1.1.tbz" -checksum: "717a6bf371bd083ea588ccd96f328dc2" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/lwt.3.1.0/opam b/repo/darwin/packages/upstream/lwt.3.1.0/opam index ba1ff3ea9..68d33bf04 100644 --- a/repo/darwin/packages/upstream/lwt.3.1.0/opam +++ b/repo/darwin/packages/upstream/lwt.3.1.0/opam @@ -24,7 +24,7 @@ build: [ build-test: [ [ "jbuilder" "runtest" "-p" name ] ] depends: [ - "cppo" {build} + "cppo" {build & >= "1.1.0"} "jbuilder" {build & >= "1.0+beta10"} # We are only using ocamlfind during configuration of the Unix binding. "ocamlfind" {build & >= "1.5.0"} diff --git a/repo/darwin/packages/upstream/mirage-conduit.3.0.1/descr b/repo/darwin/packages/upstream/mirage-conduit.3.0.1/descr deleted file mode 100644 index cb46f15b9..000000000 --- a/repo/darwin/packages/upstream/mirage-conduit.3.0.1/descr +++ /dev/null @@ -1,35 +0,0 @@ -Network conduit library - -The `conduit` library takes care of establishing and listening for -TCP and SSL/TLS connections for the Lwt and Async libraries. - -The reason this library exists is to provide a degree of abstraction -from the precise SSL library used, since there are a variety of ways -to bind to a library (e.g. the C FFI, or the Ctypes library), as well -as well as which library is used (just OpenSSL for now). - -By default, OpenSSL is used as the preferred connection library, but -you can force the use of the pure OCaml TLS stack by setting the -environment variable `CONDUIT_TLS=native` when starting your program. - -The opam packages available are: - -- `conduit`: the main `Conduit` module -- `conduit-lwt`: the portable Lwt implementation -- `conduit-lwt-unix`: the Lwt/Unix implementation -- `conduit-async` the Jane Street Async implementation -- `mirage-conduit`: the MirageOS compatible implementation - -### Debugging - -Some of the `Lwt_unix`-based modules use a non-empty `CONDUIT_DEBUG` -environment variable to output debugging information to standard error. -Just set this variable when running the program to see what URIs -are being resolved to. - -### Further Informartion - -* **API Docs:** http://docs.mirage.io/ -* **WWW:** https://github.com/mirage/ocaml-conduit -* **E-mail:** -* **Bugs:** https://github.com/mirage/ocaml-conduit/issues \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-conduit.3.0.1/opam b/repo/darwin/packages/upstream/mirage-conduit.3.0.1/opam deleted file mode 100644 index 4fdcac603..000000000 --- a/repo/darwin/packages/upstream/mirage-conduit.3.0.1/opam +++ /dev/null @@ -1,25 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire"] -homepage: "https://github.com/mirage/ocaml-conduit" -dev-repo: "https://github.com/mirage/ocaml-conduit.git" -bug-reports: "https://github.com/mirage/ocaml-conduit/issues" -tags: "org:mirage" -license: "ISC" - -build: [ - ["jbuilder" "subst" "-p" name "--name" name] {pinned} - ["jbuilder" "build" "-p" name "-j" jobs] -] - -depends: [ - "jbuilder" {build & >="1.0+beta10"} - "cstruct" {>= "3.0.0"} - "mirage-types-lwt" {>= "3.0.0"} - "mirage-flow-lwt" {>= "1.2.0"} - "mirage-dns" {>= "3.0.0"} - "conduit-lwt" - "vchan" {>= "3.0.0"} - "tls" {>="0.8.0"} -] -available: [ocaml-version >="4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-conduit.3.0.1/url b/repo/darwin/packages/upstream/mirage-conduit.3.0.1/url deleted file mode 100644 index a11f363f0..000000000 --- a/repo/darwin/packages/upstream/mirage-conduit.3.0.1/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-conduit/releases/download/v1.0.1/conduit-1.0.1.tbz" -checksum: "ef2095d59d93303697c944f9d404e64d" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-dns.3.0.0/descr b/repo/darwin/packages/upstream/mirage-dns.3.0.0/descr deleted file mode 100644 index 84cefc577..000000000 --- a/repo/darwin/packages/upstream/mirage-dns.3.0.0/descr +++ /dev/null @@ -1,29 +0,0 @@ -DNS client and server implementation in pure OCaml - -This is a pure OCaml implementation of the DNS protocol. It is intended to be -a reasonably high-performance implementation, but clarity is preferred rather -than low-level performance hacks. - -[![Build Status](https://travis-ci.org/mirage/ocaml-dns.svg?branch=master)](https://travis-ci.org/mirage/ocaml-dns) - -To build it, please use the [OPAM](https://opam.ocaml.org) package manager (1.2+): - - opam pin add dns . - -This will install the dependencies needed and give you a working development -version of the library. - -Packages: - -* `lib/` contains the core DNS protocol, which is packed into the `Dns` module. -* `lib_test/` contains unit tests and sample uses of the library. - In particular, `time_server` is a simple dynamic responder. - -Areas that need work: - -* We need an Lwt-based client iterative resolver - Patches for this are highly welcome! -* EDNS0 extensions -* DNSSEC extensions (using [nocrypto](https://github.com/mirleft/ocaml-nocrypto/)) -* TC bit and TCP fallback -* mDNS resolver \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-dns.3.0.0/opam b/repo/darwin/packages/upstream/mirage-dns.3.0.0/opam deleted file mode 100644 index 31af65175..000000000 --- a/repo/darwin/packages/upstream/mirage-dns.3.0.0/opam +++ /dev/null @@ -1,24 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -homepage: "https://github.com/mirage/ocaml-dns" -dev-repo: "https://github.com/mirage/ocaml-dns.git" -bug-reports: "https://github.com/mirage/ocaml-dns/issues" -license: "ISC" -authors: [ "Anil Madhavapeddy" "Tim Deegan" "Richard Mortier" "Haris Rotsos" - "David Sheets" "Thomas Gazagnaire" "Luke Dunstan" ] - -build: [ - ["jbuilder" "subst"] {pinned} - ["jbuilder" "build" "-p" name "-j" jobs] -] - -depends: [ - "jbuilder" {>="1.0+beta9"} - "dns-lwt" - "duration" - "mirage-stack-lwt" - "mirage-kv-lwt" - "mirage-time-lwt" - "mirage-profile" {>="0.8.0"} -] -available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-dns.3.0.0/url b/repo/darwin/packages/upstream/mirage-dns.3.0.0/url deleted file mode 100644 index 6eb7b78ec..000000000 --- a/repo/darwin/packages/upstream/mirage-dns.3.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-dns/releases/download/v1.0.0/dns-1.0.0.tbz" -checksum: "5fe4efe11671253950f89036a6cc1a21" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-http.3.2.0/descr b/repo/darwin/packages/upstream/mirage-http.3.2.0/descr deleted file mode 100644 index 65cfabe55..000000000 --- a/repo/darwin/packages/upstream/mirage-http.3.2.0/descr +++ /dev/null @@ -1,27 +0,0 @@ -An OCaml library for HTTP clients and servers - -[![Join the chat at https://gitter.im/mirage/ocaml-cohttp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mirage/ocaml-cohttp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -Cohttp is an OCaml library for creating HTTP daemons. It has a portable -HTTP parser, and implementations using various asynchronous programming -libraries: - -* `Cohttp_lwt_unix` uses the [Lwt](http://ocsigen.org/lwt) library, and - specifically the UNIX bindings. -* `Cohttp_async` uses the [Async](https://realworldocaml.org/v1/en/html/concurrent-programming-with-async.html) - library. -* `Cohttp_lwt` exposes an OS-independent Lwt interface, which is used - by the [Mirage](http://www.openmirage.org) interface - to generate standalone microkernels (see the [mirage-http](https://github.com/mirage/mirage-http) - repository). -* `Cohttp_lwt_xhr` compiles to a JavaScript module that maps the Cohttp - calls to XMLHTTPRequests. This is used to compile OCaml libraries like - the GitHub bindings to JavaScript and still run efficiently. - -You can implement other targets using the parser very easily. Look at the `IO` -signature in `lib/s.mli` and implement that in the desired backend. - -You can activate some runtime debugging by setting `COHTTP_DEBUG` to any -value, and all requests and responses will be written to stderr. Further -debugging of the connection layer can be obtained by setting `CONDUIT_DEBUG` -to any value. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-http.3.2.0/opam b/repo/darwin/packages/upstream/mirage-http.3.2.0/opam deleted file mode 100644 index 41e29dda8..000000000 --- a/repo/darwin/packages/upstream/mirage-http.3.2.0/opam +++ /dev/null @@ -1,30 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: [ - "Anil Madhavapeddy" - "Thomas Gazagnaire" -] -homepage: "https://github.com/mirage/ocaml-cohttp" -bug-reports: "https://github.com/mirage/ocaml-cohttp/issues" -license: "ISC" -tags: ["org:mirage" "org:xapi-project"] -dev-repo: "https://github.com/mirage/ocaml-cohttp.git" -build: [ - ["jbuilder" "subst" "-n" name] {pinned} - ["jbuilder" "build" "-p" name "-j" jobs] -] -build-test: [["jbuilder" "runtest" "-p" name "-j" jobs]] -depends: [ - "jbuilder" {build & >= "1.0+beta10"} - "result" - "mirage-flow-lwt" {>= "1.2.0"} - "mirage-channel-lwt" {>= "3.0.0"} - "conduit" {>= "0.99"} - "mirage-conduit" {>= "3.0.0"} - "lwt" {>= "2.4.3"} - "cohttp" {>="0.99.0"} - "cohttp-lwt" - "astring" - "magic-mime" -] -available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-http.3.2.0/url b/repo/darwin/packages/upstream/mirage-http.3.2.0/url deleted file mode 100644 index f85b2284a..000000000 --- a/repo/darwin/packages/upstream/mirage-http.3.2.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-cohttp/releases/download/v0.99.0/cohttp-0.99.0.tbz" -checksum: "a789a9ed492005257bdb217e2248da0d" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-no-solo5.1/descr b/repo/darwin/packages/upstream/mirage-no-solo5.1/descr deleted file mode 100644 index fe8ccd209..000000000 --- a/repo/darwin/packages/upstream/mirage-no-solo5.1/descr +++ /dev/null @@ -1 +0,0 @@ -Virtual package conflicting with mirage-solo5 diff --git a/repo/darwin/packages/upstream/mirage-no-solo5.1/opam b/repo/darwin/packages/upstream/mirage-no-solo5.1/opam deleted file mode 100644 index aaaef8fd9..000000000 --- a/repo/darwin/packages/upstream/mirage-no-solo5.1/opam +++ /dev/null @@ -1,6 +0,0 @@ -opam-version: "1.2" -maintainer: "mirageos-devel@lists.xenproject.org" -authors: ["mirageos-devel@lists.xenproject.org"] -homepage: "https://mirage.io" -license: "BSD2" -conflicts: [ "mirage-solo5" ] diff --git a/repo/darwin/packages/upstream/mirage-no-xen.1/descr b/repo/darwin/packages/upstream/mirage-no-xen.1/descr deleted file mode 100644 index fe69ce3c9..000000000 --- a/repo/darwin/packages/upstream/mirage-no-xen.1/descr +++ /dev/null @@ -1 +0,0 @@ -Virtual package conflicting with mirage-xen diff --git a/repo/darwin/packages/upstream/mirage-no-xen.1/opam b/repo/darwin/packages/upstream/mirage-no-xen.1/opam deleted file mode 100644 index 34c598b39..000000000 --- a/repo/darwin/packages/upstream/mirage-no-xen.1/opam +++ /dev/null @@ -1,6 +0,0 @@ -opam-version: "1.2" -maintainer: "mirageos-devel@lists.xenproject.org" -authors: ["mirageos-devel@lists.xenproject.org"] -homepage: "https://mirage.io" -license: "BSD2" -conflicts: [ "mirage-xen" ] diff --git a/repo/darwin/packages/upstream/nocrypto.0.5.4/descr b/repo/darwin/packages/upstream/nocrypto.0.5.4/descr deleted file mode 100644 index 3ca64e089..000000000 --- a/repo/darwin/packages/upstream/nocrypto.0.5.4/descr +++ /dev/null @@ -1,9 +0,0 @@ -Simpler crypto - - -nocrypto is a small cryptographic library that puts emphasis on the applicative -style and ease of use. It includes basic ciphers (AES, 3DES, RC4), hashes (MD5, -SHA1, SHA2), public-key primitives (RSA, DSA, DH) and a strong RNG (Fortuna). - -RSA timing attacks are countered by blinding. AES timing attacks are avoided by -delegating to AES-NI. \ No newline at end of file diff --git a/repo/darwin/packages/upstream/nocrypto.0.5.4/opam b/repo/darwin/packages/upstream/nocrypto.0.5.4/opam deleted file mode 100644 index 200a3ca0d..000000000 --- a/repo/darwin/packages/upstream/nocrypto.0.5.4/opam +++ /dev/null @@ -1,41 +0,0 @@ -opam-version: "1.2" -homepage: "https://github.com/mirleft/ocaml-nocrypto" -dev-repo: "https://github.com/mirleft/ocaml-nocrypto.git" -bug-reports: "https://github.com/mirleft/ocaml-nocrypto/issues" -doc: "https://mirleft.github.io/ocaml-nocrypto/doc" -authors: ["David Kaloper "] -maintainer: "David Kaloper " -license: "ISC" -tags: [ "org:mirage" ] -available: [ ocaml-version >= "4.02.0" ] - -build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" - "--with-lwt" "%{lwt:installed}%" - "--xen" "%{mirage-xen:installed}%" - "--freestanding" "%{mirage-solo5:installed}%"] - -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "cpuid" {build} - "ocb-stubblr" {build} - "ppx_deriving" {build} - "ppx_sexp_conv" {build} - "ounit" {test} - "cstruct" {>="2.4.0"} - "cstruct-lwt" - "zarith" - "lwt" - "sexplib" - ("mirage-no-xen" | ("mirage-xen" & "mirage-entropy" & "zarith-xen")) - ("mirage-no-solo5" | ("mirage-solo5" & "mirage-entropy" & "zarith-freestanding")) -] - -conflicts: [ - "topkg" {<"0.8.0"} - "ocb-stubblr" {<"0.1.0"} - "mirage-xen" {<"2.2.0"} - "sexplib" {="v0.9.0"} -] - diff --git a/repo/darwin/packages/upstream/nocrypto.0.5.4/url b/repo/darwin/packages/upstream/nocrypto.0.5.4/url deleted file mode 100644 index ec05a1382..000000000 --- a/repo/darwin/packages/upstream/nocrypto.0.5.4/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirleft/ocaml-nocrypto/releases/download/v0.5.4/nocrypto-0.5.4.tbz" -checksum: "c331a7a4d2a563d1d5ed581aeb849011" diff --git a/repo/darwin/packages/upstream/oasis.0.4.10/descr b/repo/darwin/packages/upstream/oasis.0.4.10/descr deleted file mode 100644 index 826e6942e..000000000 --- a/repo/darwin/packages/upstream/oasis.0.4.10/descr +++ /dev/null @@ -1,23 +0,0 @@ -Tooling for building OCaml libraries and applications - -OASIS generates a full configure, build and install system for your -application. It starts with a simple `_oasis` file at the toplevel of -your project and creates everything required. - -OASIS leverages existing OCaml tooling to perform most of it's work. -In fact, it might be more appropriate to think of it as simply the -glue that binds these other subsystems together and coordinates the -work that they do. It should support the following tools: - -* OCamlbuild -* OMake -* OCamlMakefile (todo), -* ocaml-autoconf (todo) - -It also features a do-it-yourself command line invocation and an -internal configure/install scheme. Libraries are managed through -findlib. It has been tested on GNU Linux and Windows. - -It also allows to have standard entry points and description. It helps -to integrates your libraries and software with third parties tools -like OPAM. diff --git a/repo/darwin/packages/upstream/oasis.0.4.10/files/oasis.install b/repo/darwin/packages/upstream/oasis.0.4.10/files/oasis.install deleted file mode 100644 index 075d45291..000000000 --- a/repo/darwin/packages/upstream/oasis.0.4.10/files/oasis.install +++ /dev/null @@ -1,5 +0,0 @@ -etc: [ - "setup.ml" - "setup.data" - "setup.log" -] diff --git a/repo/darwin/packages/upstream/oasis.0.4.10/opam b/repo/darwin/packages/upstream/oasis.0.4.10/opam deleted file mode 100644 index 5d82e21a7..000000000 --- a/repo/darwin/packages/upstream/oasis.0.4.10/opam +++ /dev/null @@ -1,32 +0,0 @@ -opam-version: "1.2" -maintainer: "Sylvain Le Gall " -authors: [ "Sylvain Le Gall" ] -license: "LGPL-2.1 with OCaml linking exception" -homepage: "http://oasis.forge.ocamlcore.org/" -dev-repo: "git://github.com/ocaml/oasis.git" -bug-reports: "https://github.com/ocaml/oasis/issues" -build: [ - ["ocaml" "setup.ml" "-configure" "--prefix" prefix] - ["ocaml" "setup.ml" "-build"] -] -install: ["ocaml" "setup.ml" "-install"] -remove: [ - ["ocaml" "%{etc}%/oasis/setup.ml" "-C" "%{etc}%/oasis" "-uninstall"] -] -build-doc: [ "ocaml" "setup.ml" "-doc" ] -depends: [ - "base-unix" - "ocamlbuild" - "ocamlfind" {>= "1.3.1"} - "ocamlify" {build} - "ocamlmod" {build} -] -depopts: [ - "benchmark" -] -conflicts: [ - "benchmark" {< "1.2"} - "oasis-mirage" {= "0.3.0"} - "oasis-mirage" {= "0.3.0a"} -] -available: [ ocaml-version >= "3.12.1" ] diff --git a/repo/darwin/packages/upstream/oasis.0.4.10/url b/repo/darwin/packages/upstream/oasis.0.4.10/url deleted file mode 100644 index b9fcd1cc0..000000000 --- a/repo/darwin/packages/upstream/oasis.0.4.10/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://forge.ocamlcore.org/frs/download.php/1694/oasis-0.4.10.tar.gz" -checksum: "84de67188d6c1ba4499aee6d4cb8cb54" diff --git a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/url b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/url deleted file mode 100644 index 9d8b523d3..000000000 --- a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/url +++ /dev/null @@ -1,3 +0,0 @@ -http: - "https://github.com/let-def/ocaml-migrate-parsetree/archive/1.0.1.tar.gz" -checksum: "b2abce65e3e9057af3fe96fa8e9d088b" diff --git a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/descr b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.2/descr similarity index 100% rename from repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/descr rename to repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.2/descr diff --git a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.2/opam similarity index 72% rename from repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam rename to repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.2/opam index 76acd5c48..ab6476b0a 100644 --- a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam +++ b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.2/opam @@ -4,15 +4,17 @@ authors: [ "Frédéric Bour " "Jérémie Dimino " ] +license: "LGPL-2.1" homepage: "https://github.com/let-def/ocaml-migrate-parsetree" bug-reports: "https://github.com/let-def/ocaml-migrate-parsetree/issues" -license: "LGPL-2.1" -tags: ["syntax" "org:ocamllabs"] dev-repo: "git://github.com/let-def/ocaml-migrate-parsetree.git" -build: ["jbuilder" "build" "-p" name "-j" jobs] +tags: [ "syntax" "org:ocamllabs" ] +build: [ + ["jbuilder" "build" "-p" name "-j" jobs] +] depends: [ "result" "ocamlfind" {build} - "jbuilder" {build & >= "1.0+beta7"} + "jbuilder" {build & >= "1.0+beta10"} ] -available: [ocaml-version >= "4.02.0"] +available: ocaml-version >= "4.02.0" diff --git a/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.2/url b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.2/url new file mode 100644 index 000000000..2d6a9f515 --- /dev/null +++ b/repo/darwin/packages/upstream/ocaml-migrate-parsetree.1.0.2/url @@ -0,0 +1,3 @@ +http: + "https://github.com/let-def/ocaml-migrate-parsetree/archive/v1.0.2.tar.gz" +checksum: "7bb4f5a054a27fffb4b925dbde38816b" diff --git a/repo/darwin/packages/upstream/ocamlify.0.0.1/descr b/repo/darwin/packages/upstream/ocamlify.0.0.1/descr deleted file mode 100644 index a3241a781..000000000 --- a/repo/darwin/packages/upstream/ocamlify.0.0.1/descr +++ /dev/null @@ -1,5 +0,0 @@ -Include files in OCaml code -OCamlify allows to create OCaml source code by including whole files -into OCaml string or string list. The code generated can be compiled -as a standard OCaml file. It allows embedding external resources as -OCaml code. diff --git a/repo/darwin/packages/upstream/ocamlify.0.0.1/files/ocamlify.install b/repo/darwin/packages/upstream/ocamlify.0.0.1/files/ocamlify.install deleted file mode 100644 index 133e9cb64..000000000 --- a/repo/darwin/packages/upstream/ocamlify.0.0.1/files/ocamlify.install +++ /dev/null @@ -1 +0,0 @@ -bin: ["_build/src/ocamlify"] diff --git a/repo/darwin/packages/upstream/ocamlify.0.0.1/opam b/repo/darwin/packages/upstream/ocamlify.0.0.1/opam deleted file mode 100644 index 545466712..000000000 --- a/repo/darwin/packages/upstream/ocamlify.0.0.1/opam +++ /dev/null @@ -1,11 +0,0 @@ -opam-version: "1.2" -maintainer: "https://github.com/ocaml/opam-repository/issues" -build: [ - ["ocaml" "setup.ml" "-configure" "--prefix" prefix] - ["ocaml" "setup.ml" "-build"] -] -depends: [ - "ocamlfind" - "ocamlbuild" {build} -] -install: ["ocaml" "setup.ml" "-install"] diff --git a/repo/darwin/packages/upstream/ocamlify.0.0.1/url b/repo/darwin/packages/upstream/ocamlify.0.0.1/url deleted file mode 100644 index 6f3f2bb8b..000000000 --- a/repo/darwin/packages/upstream/ocamlify.0.0.1/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://forge.ocamlcore.org/frs/download.php/379/ocamlify-0.0.1.tar.gz" -checksum: "bcd97ad0f7203019019997197451dbf0" diff --git a/repo/darwin/packages/upstream/ocamlmod.0.0.8/descr b/repo/darwin/packages/upstream/ocamlmod.0.0.8/descr deleted file mode 100644 index b15d3452c..000000000 --- a/repo/darwin/packages/upstream/ocamlmod.0.0.8/descr +++ /dev/null @@ -1 +0,0 @@ -Generate OCaml modules from source files diff --git a/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml b/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml deleted file mode 100644 index 0d23853fc..000000000 --- a/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml +++ /dev/null @@ -1,7 +0,0 @@ -open Printf - -let () = - let dir = Sys.argv.(1) in - (try Sys.chdir dir - with _ -> eprintf "Cannot change directory to %s\n%!" dir); - exit (Sys.command "ocaml setup.ml -uninstall") diff --git a/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install b/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install deleted file mode 100644 index c6cfc2de5..000000000 --- a/repo/darwin/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install +++ /dev/null @@ -1,6 +0,0 @@ -etc: [ - "setup.ml" - "setup.data" - "setup.log" - "_oasis_remove_.ml" -] diff --git a/repo/darwin/packages/upstream/ocamlmod.0.0.8/opam b/repo/darwin/packages/upstream/ocamlmod.0.0.8/opam deleted file mode 100644 index 11ff03d8d..000000000 --- a/repo/darwin/packages/upstream/ocamlmod.0.0.8/opam +++ /dev/null @@ -1,25 +0,0 @@ -opam-version: "1.2" -maintainer: "opam-devel@lists.ocaml.org" -homepage: "https://forge.ocamlcore.org/projects/ocamlmod/" -bug-reports: "https://forge.ocamlcore.org/tracker/?group_id=244" -dev-repo: "darcs://https://forge.ocamlcore.org/anonscm/darcs/ocamlmod/ocamlmod" -authors: [ "Sylvain Le Gall" ] -license: "LGPL-2.1 with OCaml linking exception" -build: [ - ["ocaml" "setup.ml" "-configure" "--prefix" prefix] - ["ocaml" "setup.ml" "-build"] -] -install: ["ocaml" "setup.ml" "-install"] -remove: [ - ["ocaml" "%{etc}%/ocamlmod/_oasis_remove_.ml" "%{etc}%/ocamlmod"] -] -build-test: [ - ["ocaml" "setup.ml" "-configure" "--enable-tests"] - ["ocaml" "setup.ml" "-build"] - ["ocaml" "setup.ml" "-test"] -] -depends: [ - "ocamlfind" {build} - "ounit" {test & >= "2.0.0"} - "ocamlbuild" {build} -] diff --git a/repo/darwin/packages/upstream/ocamlmod.0.0.8/url b/repo/darwin/packages/upstream/ocamlmod.0.0.8/url deleted file mode 100644 index 8708b34e9..000000000 --- a/repo/darwin/packages/upstream/ocamlmod.0.0.8/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://forge.ocamlcore.org/frs/download.php/1544/ocamlmod-0.0.8.tar.gz" -checksum: "411e5b3f3321945fc53d9377a1a17f91" diff --git a/repo/darwin/packages/upstream/ppx_ast.v0.9.1/opam b/repo/darwin/packages/upstream/ppx_ast.v0.9.1/opam index 24c5055c5..6cb14be19 100644 --- a/repo/darwin/packages/upstream/ppx_ast.v0.9.1/opam +++ b/repo/darwin/packages/upstream/ppx_ast.v0.9.1/opam @@ -13,4 +13,4 @@ depends: [ "ocaml-compiler-libs" {>= "v0.9" & < "v0.10"} "ocaml-migrate-parsetree" {>= "0.4"} ] -available: [ ocaml-version >= "4.03.0" ] +available: [ ocaml-version >= "4.03.0" & ocaml-version < "4.06.0" ] diff --git a/repo/darwin/packages/upstream/prometheus.0.3/url b/repo/darwin/packages/upstream/prometheus.0.3/url deleted file mode 100644 index cce5118b0..000000000 --- a/repo/darwin/packages/upstream/prometheus.0.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/prometheus/releases/download/v0.3/prometheus-0.3.tbz" -checksum: "dcf7cf2cb603d350bfa401ac82c8bff1" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/prometheus.0.3/descr b/repo/darwin/packages/upstream/prometheus.0.4/descr similarity index 100% rename from repo/darwin/packages/upstream/prometheus.0.3/descr rename to repo/darwin/packages/upstream/prometheus.0.4/descr diff --git a/repo/darwin/packages/upstream/prometheus.0.3/opam b/repo/darwin/packages/upstream/prometheus.0.4/opam similarity index 100% rename from repo/darwin/packages/upstream/prometheus.0.3/opam rename to repo/darwin/packages/upstream/prometheus.0.4/opam diff --git a/repo/darwin/packages/upstream/prometheus.0.4/url b/repo/darwin/packages/upstream/prometheus.0.4/url new file mode 100644 index 000000000..f9d8e3453 --- /dev/null +++ b/repo/darwin/packages/upstream/prometheus.0.4/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/prometheus/releases/download/v0.4/prometheus-0.4.tbz" +checksum: "c29ace053a914b5eac5487185af3e050" diff --git a/repo/darwin/packages/upstream/ptime.0.8.3/descr b/repo/darwin/packages/upstream/ptime.0.8.3/descr deleted file mode 100644 index f77827c8d..000000000 --- a/repo/darwin/packages/upstream/ptime.0.8.3/descr +++ /dev/null @@ -1,20 +0,0 @@ -POSIX time for OCaml - -Ptime has platform independent POSIX time support in pure OCaml. It -provides a type to represent a well-defined range of POSIX timestamps -with picosecond precision, conversion with date-time values, -conversion with [RFC 3339 timestamps][rfc3339] and pretty printing to a -human-readable, locale-independent representation. - -The additional Ptime_clock library provides access to a system POSIX -clock and to the system's current time zone offset. - -Ptime is not a calendar library. - -Ptime depends on the `result` compatibility package. Ptime_clock -depends on your system library. Ptime_clock's optional JavaScript -support depends on [js_of_ocaml][jsoo]. Ptime and its libraries are -distributed under the ISC license. - -[rfc3339]: http://tools.ietf.org/html/rfc3339 -[jsoo]: http://ocsigen.org/js_of_ocaml/ diff --git a/repo/darwin/packages/upstream/ptime.0.8.3/opam b/repo/darwin/packages/upstream/ptime.0.8.3/opam deleted file mode 100644 index b34f28961..000000000 --- a/repo/darwin/packages/upstream/ptime.0.8.3/opam +++ /dev/null @@ -1,21 +0,0 @@ -opam-version: "1.2" -maintainer: "Daniel Bünzli " -authors: ["Daniel Bünzli "] -homepage: "http://erratique.ch/software/ptime" -doc: "http://erratique.ch/software/ptime/doc" -dev-repo: "http://erratique.ch/repos/ptime.git" -bug-reports: "https://github.com/dbuenzli/ptime/issues" -tags: [ "time" "posix" "system" "org:erratique" ] -license: "ISC" -available: [ ocaml-version >= "4.01.0"] -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "result" -] -depopts: [ "js_of_ocaml" ] -build:[[ - "ocaml" "pkg/pkg.ml" "build" - "--pinned" "%{pinned}%" - "--with-js_of_ocaml" "%{js_of_ocaml:installed}%" ]] diff --git a/repo/darwin/packages/upstream/ptime.0.8.3/url b/repo/darwin/packages/upstream/ptime.0.8.3/url deleted file mode 100644 index 0043089e1..000000000 --- a/repo/darwin/packages/upstream/ptime.0.8.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://erratique.ch/software/ptime/releases/ptime-0.8.3.tbz" -checksum: "bf84f6bfedce30349cffc9eb52ac7574" \ No newline at end of file diff --git a/repo/darwin/packages/upstream/tls.0.8.0/descr b/repo/darwin/packages/upstream/tls.0.8.0/descr deleted file mode 100644 index 6b52ac617..000000000 --- a/repo/darwin/packages/upstream/tls.0.8.0/descr +++ /dev/null @@ -1,15 +0,0 @@ -Transport Layer Security purely in OCaml - -Transport Layer Security (TLS) is probably the most widely deployed security -protocol on the Internet. It provides communication privacy to prevent -eavesdropping, tampering, and message forgery. Furthermore, it optionally -provides authentication of the involved endpoints. TLS is commonly deployed for -securing web services ([HTTPS](http://tools.ietf.org/html/rfc2818)), emails, -virtual private networks, and wireless networks. - -TLS uses asymmetric cryptography to exchange a symmetric key, and optionally -authenticate (using X.509) either or both endpoints. It provides algorithmic -agility, which means that the key exchange method, symmetric encryption -algorithm, and hash algorithm are negotiated. - -Read [further](https://nqsb.io) and our [Usenix Security 2015 paper](https://usenix15.nqsb.io). \ No newline at end of file diff --git a/repo/darwin/packages/upstream/tls.0.8.0/opam b/repo/darwin/packages/upstream/tls.0.8.0/opam deleted file mode 100644 index 885801c41..000000000 --- a/repo/darwin/packages/upstream/tls.0.8.0/opam +++ /dev/null @@ -1,55 +0,0 @@ -opam-version: "1.2" -name: "tls" -homepage: "https://github.com/mirleft/ocaml-tls" -dev-repo: "https://github.com/mirleft/ocaml-tls.git" -bug-reports: "https://github.com/mirleft/ocaml-tls/issues" -doc: "https://mirleft.github.io/ocaml-tls/doc" -author: ["David Kaloper " "Hannes Mehnert "] -maintainer: ["Hannes Mehnert " "David Kaloper "] -license: "BSD2" - -build: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" - "--tests" "false" - "--with-lwt" "%{lwt:installed}%" - "--with-mirage" "%{mirage-flow-lwt+mirage-kv-lwt+mirage-clock:installed}%" ] -] -build-test: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" - "--tests" "true" - "--with-lwt" "%{lwt:installed}%" - "--with-mirage" "%{mirage-flow-lwt+mirage-kv-lwt+mirage-clock:installed}%" ] - ["ocaml" "pkg/pkg.ml" "test"] -] - -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "ppx_tools" {build} - "ppx_deriving" {build} - "ppx_sexp_conv" {build} - "result" - "ppx_cstruct" {build} - "cstruct" {>= "1.9.0"} - "sexplib" - "nocrypto" {>= "0.5.4"} - "x509" {>= "0.5.0"} - "ounit" {test} - "ptime" {>= "0.8.1"} (* only necessary for mirage subpackage, but unable to express this here *) -] -depopts: [ - "lwt" - "mirage-flow-lwt" - "mirage-kv-lwt" - "mirage-clock" -] -conflicts: [ - "lwt" {<"2.4.8"} - "mirage-net-xen" {<"1.3.0"} - "mirage-types" {<"3.0.0"} - "sexplib" {= "v0.9.0"} -] - -tags: [ "org:mirage"] -available: [ ocaml-version >= "4.02.2" ] diff --git a/repo/darwin/packages/upstream/tls.0.8.0/url b/repo/darwin/packages/upstream/tls.0.8.0/url deleted file mode 100644 index 2e5aa559a..000000000 --- a/repo/darwin/packages/upstream/tls.0.8.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirleft/ocaml-tls/releases/download/0.8.0/tls-0.8.0.tbz" -checksum: "c81f72d53d0551a3d792d275a1ea095f" diff --git a/repo/darwin/packages/upstream/vchan.3.0.0/descr b/repo/darwin/packages/upstream/vchan.3.0.0/descr deleted file mode 100644 index c79c90334..000000000 --- a/repo/darwin/packages/upstream/vchan.3.0.0/descr +++ /dev/null @@ -1,4 +0,0 @@ -Xen Vchan implementation -Vchan is a high performance inter-domain communications protocol using -shared memory. This implementation runs in both userspace and -kernelspace using Mirage. diff --git a/repo/darwin/packages/upstream/vchan.3.0.0/opam b/repo/darwin/packages/upstream/vchan.3.0.0/opam deleted file mode 100644 index 3829a9617..000000000 --- a/repo/darwin/packages/upstream/vchan.3.0.0/opam +++ /dev/null @@ -1,37 +0,0 @@ -opam-version: "1.2" -maintainer: "jonathan.ludlam@eu.citrix.com" -authors: [ - "Vincent Bernardoff" - "Jon Ludlam" - "David Scott" -] -homepage: "http://github.com/mirage/ocaml-vchan" -bug-reports: "http://github.com/mirage/ocaml-vchan/issues" -dev-repo: "http://github.com/mirage/ocaml-vchan.git" -doc: "http://mirage.github.io/ocaml-vchan" -license: "ISC" - -build: [ - [ "jbuilder" "subst"] {pinned} - [ "jbuilder" "build" "-p" name "-j" jobs ] -] - -depends: [ - "ocamlfind" {build} - "jbuilder" {build & >="1.0+beta9"} - "lwt" {>= "2.5.0"} - "cstruct" {>= "3.0.0"} - "ppx_tools" {build} - "ppx_sexp_conv" {build & >="v0.9"} - "ppx_cstruct" {build} - "io-page" - "mirage-flow-lwt" {>= "1.0.0"} - "xenstore" {>= "1.2.2"} - "xenstore_transport" - "sexplib" - "cmdliner" - "result" - "ounit" {test} -] -available: [ocaml-version >= "4.03.0"] -tags: "org:mirage" diff --git a/repo/darwin/packages/upstream/vchan.3.0.0/url b/repo/darwin/packages/upstream/vchan.3.0.0/url deleted file mode 100644 index 21a38a30f..000000000 --- a/repo/darwin/packages/upstream/vchan.3.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-vchan/releases/download/3.0.0/vchan-3.0.0.tbz" -checksum: "8be9a2d7df23fdf8983daecef3454b5d" diff --git a/repo/darwin/packages/upstream/x509.0.5.3/descr b/repo/darwin/packages/upstream/x509.0.5.3/descr deleted file mode 100644 index e8211a6c6..000000000 --- a/repo/darwin/packages/upstream/x509.0.5.3/descr +++ /dev/null @@ -1,4 +0,0 @@ -X.509 certificate (RFC5280) library - -Library for X.509 certificate parsing, serialization and authentication. -Supports path validation (RFC5280) and hostname verification (RFC6125). diff --git a/repo/darwin/packages/upstream/x509.0.5.3/opam b/repo/darwin/packages/upstream/x509.0.5.3/opam deleted file mode 100644 index 67b9333e4..000000000 --- a/repo/darwin/packages/upstream/x509.0.5.3/opam +++ /dev/null @@ -1,40 +0,0 @@ -opam-version: "1.2" -name: "x509" -homepage: "https://github.com/mirleft/ocaml-x509" -dev-repo: "https://github.com/mirleft/ocaml-x509.git" -bug-reports: "https://github.com/mirleft/ocaml-x509/issues" -authors: [ "David Kaloper " "Hannes Mehnert " ] -maintainer: [ "Hannes Mehnert " "David Kaloper " ] -license: "BSD2" - -build: [ - [ "./configure" "--prefix" prefix ] - [ make ] -] -install: [ make "install" ] -remove: [ "ocamlfind" "remove" "x509" ] - -depends: [ - "ocamlfind" {build} - "oasis" {build} - "ocamlbuild" {build} - "ppx_deriving" {build} - "ppx_sexp_conv" {build} - "cstruct" {>= "1.6.0"} - "sexplib" - "asn1-combinators" {>= "0.1.1"} - "nocrypto" {>= "0.5.3"} - "base-bytes" - "ounit" {test} - "cstruct-unix" {test} -] -conflicts: [ - "sexplib" {= "v0.9.0"} -] -build-test: [ - [ "./configure" "--%{ounit:enable}%-tests" ] - [ make "test" ] -] - -tags: [ "org:mirage" ] -available: [ ocaml-version >= "4.02.2" ] diff --git a/repo/darwin/packages/upstream/x509.0.5.3/url b/repo/darwin/packages/upstream/x509.0.5.3/url deleted file mode 100644 index 4e2ef2e42..000000000 --- a/repo/darwin/packages/upstream/x509.0.5.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirleft/ocaml-x509/archive/0.5.3.tar.gz" -checksum: "8efe2bca5a80f7d35e730980fbaebc5c" diff --git a/repo/darwin/packages/upstream/xenstore.1.4.0/descr b/repo/darwin/packages/upstream/xenstore.1.4.0/descr deleted file mode 100644 index 80cdcd00e..000000000 --- a/repo/darwin/packages/upstream/xenstore.1.4.0/descr +++ /dev/null @@ -1 +0,0 @@ -Xenstore protocol clients and server diff --git a/repo/darwin/packages/upstream/xenstore.1.4.0/opam b/repo/darwin/packages/upstream/xenstore.1.4.0/opam deleted file mode 100644 index 4d4b1cabe..000000000 --- a/repo/darwin/packages/upstream/xenstore.1.4.0/opam +++ /dev/null @@ -1,29 +0,0 @@ -opam-version: "1.2" -maintainer: "dave@recoil.org" -authors: [ - "Vincent Hanquez" - "Thomas Gazagnaire" - "Dave Scott" - "Anil Madhavapeddy" - "Vincent Bernardoff" -] -homepage: "https://github.com/mirage/ocaml-xenstore" -bug-reports: "https://github.com/mirage/ocaml-xenstore/issues" -dev-repo: "https://github.com/mirage/ocaml-xenstore.git" -doc: "https://mirage.github.io/ocaml-xenstore" - -build: [ - [ "jbuilder" "subst"] {pinned} - [ "jbuilder" "build" "-p" name "-j" jobs ] -] - -depends: [ - "ocamlfind" {build} - "jbuilder" {build & >="1.0+beta9"} - "cstruct" {>= "2.4.0"} - "ppx_cstruct" {build} - "ppx_tools" {build} - "lwt" - "ounit" {build} -] -available: [ ocaml-version >= "4.02.0" ] diff --git a/repo/darwin/packages/upstream/xenstore.1.4.0/url b/repo/darwin/packages/upstream/xenstore.1.4.0/url deleted file mode 100644 index 491c9d972..000000000 --- a/repo/darwin/packages/upstream/xenstore.1.4.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-xenstore/releases/download/1.4.0/xenstore-1.4.0.tbz" -checksum: "28ccfd531f6b4db58e6ed476162d0746" diff --git a/repo/darwin/packages/upstream/xenstore_transport.0.9.6/descr b/repo/darwin/packages/upstream/xenstore_transport.0.9.6/descr deleted file mode 100644 index 33dd1f168..000000000 --- a/repo/darwin/packages/upstream/xenstore_transport.0.9.6/descr +++ /dev/null @@ -1,6 +0,0 @@ -Low-level libraries for connecting to a xenstore service on a xen host. - -These libraries contain the IO functions for communicating with a -xenstore service on a xen host. One subpackage deals with regular Unix -threads and another deals with Lwt co-operative threads. - diff --git a/repo/darwin/packages/upstream/xenstore_transport.0.9.6/opam b/repo/darwin/packages/upstream/xenstore_transport.0.9.6/opam deleted file mode 100644 index 1d912af99..000000000 --- a/repo/darwin/packages/upstream/xenstore_transport.0.9.6/opam +++ /dev/null @@ -1,35 +0,0 @@ -opam-version: "1.2" -authors: [ - "Christian Lindig" - "David Scott" - "Euan Harris" - "John Else" - "Jon Ludlam" - "Jonathan Davies" - "Marcello Seri" - "Si Beaumont" - "Thomas Sanders" - "Vincent Bernardoff" -] -maintainer: "dave@recoil.org" -homepage: "http://github.com/xapi-project/ocaml-xenstore-clients" -bug-reports: "http://github.com/xapi-project/ocaml-xenstore-clients/issues" -dev-repo: "http://github.com/xapi-project/ocaml-xenstore-clients.git" -doc: "http://xapi-project.github.io/ocaml-xenstore-clients" -license: "LGPL" - -tags: [ - "org:mirage" - "org:xapi-project" -] -build: [ - [ "jbuilder" "subst"] {pinned} - [ "jbuilder" "build" "-p" name "-j" jobs ] -] - -depends: [ - "ocamlfind" {build} - "jbuilder" {build & >="1.0+beta9"} - "lwt" - "xenstore" {> "1.2.1"} -] diff --git a/repo/darwin/packages/upstream/xenstore_transport.0.9.6/url b/repo/darwin/packages/upstream/xenstore_transport.0.9.6/url deleted file mode 100644 index 9a3cda369..000000000 --- a/repo/darwin/packages/upstream/xenstore_transport.0.9.6/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/xapi-project/ocaml-xenstore-clients/archive/0.9.6.tar.gz" -checksum: "36412ce160ee14c61a1ef782de12f16e" diff --git a/repo/darwin/packages/upstream/zarith.1.5/descr b/repo/darwin/packages/upstream/zarith.1.5/descr deleted file mode 100644 index 0eb288aba..000000000 --- a/repo/darwin/packages/upstream/zarith.1.5/descr +++ /dev/null @@ -1,5 +0,0 @@ -Implements arithmetic and logical operations over arbitrary-precision integers -The Zarith library implements arithmetic and logical operations over -arbitrary-precision integers. It uses GMP to efficiently implement -arithmetic over big integers. Small integers are represented as Caml -unboxed integers, for speed and space economy. diff --git a/repo/darwin/packages/upstream/zarith.1.5/opam b/repo/darwin/packages/upstream/zarith.1.5/opam deleted file mode 100644 index db7d880cd..000000000 --- a/repo/darwin/packages/upstream/zarith.1.5/opam +++ /dev/null @@ -1,21 +0,0 @@ -opam-version: "1.2" -maintainer: "Vincent Bernardoff " -authors: "Xavier Leroy" -homepage: "https://github.com/ocaml/Zarith" -bug-reports: "https://github.com/ocaml/Zarith/issues" -dev-repo: "https://github.com/ocaml/Zarith.git" -build: [ - ["./configure"] { os != "openbsd" & os != "freebsd" & os != "darwin"} - ["sh" "-exc" "LDFLAGS=\"$LDFLAGS -L/usr/local/lib\" CFLAGS=\"$CFLAGS -I/usr/local/include\" ./configure"] { os = "openbsd" | os = "freebsd" } - ["sh" "-exc" "LDFLAGS=\"$LDFLAGS -L/opt/local/lib -L/usr/local/lib\" CFLAGS=\"$CFLAGS -I/opt/local/include -I/usr/local/include\" ./configure"] { os = "darwin" } - [make] -] -install: [ - [make "install"] -] -remove: ["ocamlfind" "remove" "zarith"] -depends: [ - "ocamlfind" - "conf-gmp" - "conf-perl" {build} -] diff --git a/repo/darwin/packages/upstream/zarith.1.5/url b/repo/darwin/packages/upstream/zarith.1.5/url deleted file mode 100644 index 647addc57..000000000 --- a/repo/darwin/packages/upstream/zarith.1.5/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/ocaml/Zarith/archive/release-1.5.tar.gz" -checksum: "2b037ad0e8145bf62979ea96e7a0ce24" diff --git a/repo/win32/packages/upstream/asn1-combinators.0.1.3/descr b/repo/win32/packages/upstream/asn1-combinators.0.1.3/descr deleted file mode 100644 index 5c406f983..000000000 --- a/repo/win32/packages/upstream/asn1-combinators.0.1.3/descr +++ /dev/null @@ -1,10 +0,0 @@ -Define ASN.1 grammars in OCaml - - -asn1-combinators is a library for declarative definitions of ASN.1 grammars, -embedded in OCaml. These definitions are strongly typed and allow parsing and -serialization. - -Presently, only BER and DER encoding and supported. - -asn1-combinators is distributed under the ISC license. \ No newline at end of file diff --git a/repo/win32/packages/upstream/asn1-combinators.0.1.3/opam b/repo/win32/packages/upstream/asn1-combinators.0.1.3/opam deleted file mode 100644 index a9b58dacd..000000000 --- a/repo/win32/packages/upstream/asn1-combinators.0.1.3/opam +++ /dev/null @@ -1,26 +0,0 @@ -opam-version: "1.2" -authors: ["David Kaloper Meršinjak "] -maintainer: "David Kaloper Meršinjak " -homepage: "https://github.com/mirleft/ocaml-asn1-combinators" -doc: "https://mirleft.github.io/ocaml-asn1-combinators/doc" -license: "ISC" -dev-repo: "https://github.com/mirleft/ocaml-asn1-combinators.git" -bug-reports: "https://github.com/mirleft/ocaml-asn1-combinators/issues" -tags: [ "org:mirage" ] -available: [ ocaml-version >= "4.01.0" ] -build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" ] -build-test: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "true" ] - [ "ocaml" "pkg/pkg.ml" "test" ] -] -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "cstruct" {>= "1.2.0"} - "result" - "zarith" - "ounit" {test} -] -depopts: [] -conflicts: [ "cstruct" {< "1.2.0"} ] diff --git a/repo/win32/packages/upstream/asn1-combinators.0.1.3/url b/repo/win32/packages/upstream/asn1-combinators.0.1.3/url deleted file mode 100644 index 2fad82f6d..000000000 --- a/repo/win32/packages/upstream/asn1-combinators.0.1.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirleft/ocaml-asn1-combinators/releases/download/v0.1.3/asn1-combinators-0.1.3.tbz" -checksum: "ce625d1fb6903aa8d40b27671ccf742c" \ No newline at end of file diff --git a/repo/win32/packages/upstream/conduit-lwt.1.0.0/descr b/repo/win32/packages/upstream/conduit-lwt.1.0.0/descr deleted file mode 100644 index 34d65f589..000000000 --- a/repo/win32/packages/upstream/conduit-lwt.1.0.0/descr +++ /dev/null @@ -1,37 +0,0 @@ -Network conduit library - -The `conduit` library takes care of establishing and listening for -TCP and SSL/TLS connections for the Lwt and Async libraries. - -The reason this library exists is to provide a degree of abstraction -from the precise SSL library used, since there are a variety of ways -to bind to a library (e.g. the C FFI, or the Ctypes library), as well -as well as which library is used (just OpenSSL for now). - -By default, OpenSSL is used as the preferred connection library, but -you can force the use of the pure OCaml TLS stack by setting the -environment variable `CONDUIT_TLS=native` when starting your program. - -### Modules - -Source code is in `lib/`. - -* `Conduit_lwt_unix` has the Lwt UNIX modules. -* `Conduit_async` has the Core/Async modules. - -There are also resolvers that map URIs to Conduit endpoints. -See for the online `ocamldoc` -for more details. - -### Debugging - -Some of the `Lwt_unix`-based modules use a non-empty `CONDUIT_DEBUG` -environment variable to output debugging information to standard error. -Just set this variable when running the program to see what URIs -are being resolved to. - -### Further Informartion - -* **WWW:** https://github.com/mirage/ocaml-conduit -* **E-mail:** -* **Bugs:** https://github.com/mirage/ocaml-conduit/issues \ No newline at end of file diff --git a/repo/win32/packages/upstream/conduit-lwt.1.0.0/opam b/repo/win32/packages/upstream/conduit-lwt.1.0.0/opam deleted file mode 100644 index bf4eb16e8..000000000 --- a/repo/win32/packages/upstream/conduit-lwt.1.0.0/opam +++ /dev/null @@ -1,20 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire" "Rudi Grinberg"] -homepage: "https://github.com/mirage/ocaml-conduit" -dev-repo: "https://github.com/mirage/ocaml-conduit.git" -bug-reports: "https://github.com/mirage/ocaml-conduit/issues" -tags: "org:mirage" -license: "ISC" - -build: [ - ["jbuilder" "subst" "-p" name "--name" name] {pinned} - ["jbuilder" "build" "-p" name "-j" jobs] -] -depends: [ - "base-unix" - "jbuilder" {build & >="1.0+beta9"} - "conduit" {>="1.0.0"} - "lwt" {>="3.0.0"} -] -available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/conduit-lwt.1.0.0/url b/repo/win32/packages/upstream/conduit-lwt.1.0.0/url deleted file mode 100644 index f7ff75a56..000000000 --- a/repo/win32/packages/upstream/conduit-lwt.1.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-conduit/releases/download/v1.0.0/conduit-1.0.0.tbz" -checksum: "4656f150b9f98603c21d00c8f0aa1a9b" diff --git a/repo/win32/packages/upstream/conf-gmp.1/descr b/repo/win32/packages/upstream/conf-gmp.1/descr deleted file mode 100644 index c409e3439..000000000 --- a/repo/win32/packages/upstream/conf-gmp.1/descr +++ /dev/null @@ -1,2 +0,0 @@ -Virtual package relying on a GMP lib system installation. -This package can only install if the GMP lib is installed on the system. diff --git a/repo/win32/packages/upstream/conf-gmp.1/files/test-win.sh b/repo/win32/packages/upstream/conf-gmp.1/files/test-win.sh deleted file mode 100755 index f62b29d98..000000000 --- a/repo/win32/packages/upstream/conf-gmp.1/files/test-win.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env dash - -cc=$(ocamlc -config | awk '/^bytecomp_c_compiler/ {for(i=2;i<=NF;i++) printf "%s ", $i}') -$cc -c $CFLAGS test.c diff --git a/repo/win32/packages/upstream/conf-gmp.1/files/test.c b/repo/win32/packages/upstream/conf-gmp.1/files/test.c deleted file mode 100644 index 74e2843b7..000000000 --- a/repo/win32/packages/upstream/conf-gmp.1/files/test.c +++ /dev/null @@ -1,8 +0,0 @@ -#include -#ifndef __GMP_H__ -#error "No GMP header" -#endif - -void test(void) { - __gmp_init(); -} diff --git a/repo/win32/packages/upstream/conf-gmp.1/opam b/repo/win32/packages/upstream/conf-gmp.1/opam deleted file mode 100644 index 38d44c9a9..000000000 --- a/repo/win32/packages/upstream/conf-gmp.1/opam +++ /dev/null @@ -1,24 +0,0 @@ -opam-version: "1.2" -maintainer: "nbraud" -author: "nbraud" -homepage: "http://gmplib.org/" -bug-reports: "https://github.com/ocaml/opam-repository/issues" -dev-repo: "https://github.com/ocaml/opam-repository.git" -license: "GPL" -build: [ - ["sh" "-exc" "cc -c $CFLAGS -I/usr/local/include test.c"] {os != "darwin" & os != "win32"} - ["sh" "-exc" "cc -c $CFLAGS -I/opt/local/include -I/usr/local/include test.c"] {os = "darwin"} - ["./test-win.sh"] { os = "win32" } -] -depexts: [ - [["debian"] ["libgmp-dev"]] - [["ubuntu"] ["libgmp-dev"]] - [["osx" "homebrew"] ["gmp"]] - [["centos"] ["gmp" "gmp-devel"]] - [["fedora"] ["gmp" "gmp-devel"]] - [["openbsd"] ["gmp"]] - [["freebsd"] ["gmp"]] - [["alpine"] ["gmp-dev"]] - [["opensuse"] ["gmp-devel"]] - [["win32" "cygwinports"] ["gmp"]] -] diff --git a/repo/win32/packages/upstream/conf-m4.1/opam b/repo/win32/packages/upstream/conf-m4.1/opam index 6f2a64f2c..a0aaf1a6a 100644 --- a/repo/win32/packages/upstream/conf-m4.1/opam +++ b/repo/win32/packages/upstream/conf-m4.1/opam @@ -12,9 +12,6 @@ depexts: [ [["centos"] ["m4"]] [["alpine"] ["m4"]] [["nixpkgs"] ["m4"]] - [["fedora"] ["m4"]] - [["centos"] ["m4"]] - [["alpine"] ["m4"]] [["oraclelinux"] ["m4"]] [["archlinux"] ["m4"]] ] diff --git a/repo/win32/packages/upstream/conf-perl.1/descr b/repo/win32/packages/upstream/conf-perl.1/descr deleted file mode 100644 index a0520188b..000000000 --- a/repo/win32/packages/upstream/conf-perl.1/descr +++ /dev/null @@ -1,2 +0,0 @@ -Virtual package relying on perl -This package can only install if the perl program is installed on the system. diff --git a/repo/win32/packages/upstream/conf-perl.1/opam b/repo/win32/packages/upstream/conf-perl.1/opam deleted file mode 100644 index 2010b2430..000000000 --- a/repo/win32/packages/upstream/conf-perl.1/opam +++ /dev/null @@ -1,15 +0,0 @@ -opam-version: "1.2" -maintainer: "tim@gfxmonk.net" -homepage: "https://www.perl.org/" -bug-reports: "https://github.com/ocaml/opam-repository/issues" -dev-repo: "https://github.com/ocaml/opam-repository.git" -license: "GPL-1+" -build: [["perl" "--version"]] -depexts: [ - [["debian"] ["perl"]] - [["ubuntu"] ["perl"]] - [["alpine"]["perl"]] - [["nixpkgs"] ["perl"]] - [["archlinux"] ["perl"]] - [["fedora"] ["perl-Pod-Html"]] -] diff --git a/repo/win32/packages/upstream/cpuid.0.1.1/descr b/repo/win32/packages/upstream/cpuid.0.1.1/descr deleted file mode 100644 index 6ed960e99..000000000 --- a/repo/win32/packages/upstream/cpuid.0.1.1/descr +++ /dev/null @@ -1,26 +0,0 @@ -Detect CPU features - - -cpuid allows detection of CPU features from OCaml. - -cpuid is distributed under the ISC license. - -## Installation - -cpuid can be installed with `opam`: - - opam install cpuid - -If you don't use `opam` consult the [`opam`](opam) file for build -instructions. - -## Documentation - -The documentation and API reference is automatically generated by -`ocamldoc` from the interfaces. It can be consulted [online][doc] -and there is a generated version in the `doc` directory of the -distribution. - -[doc]: https://pqwy.github.io/cpuid/doc - -[![Build Status](https://travis-ci.org/pqwy/cpuid.svg?branch=master)](https://travis-ci.org/pqwy/cpuid) \ No newline at end of file diff --git a/repo/win32/packages/upstream/cpuid.0.1.1/opam b/repo/win32/packages/upstream/cpuid.0.1.1/opam deleted file mode 100644 index fc08f3543..000000000 --- a/repo/win32/packages/upstream/cpuid.0.1.1/opam +++ /dev/null @@ -1,19 +0,0 @@ -opam-version: "1.2" -maintainer: "David Kaloper Meršinjak " -authors: ["David Kaloper Meršinjak "] -homepage: "https://github.com/pqwy/cpuid" -doc: "https://pqwy.github.io/cpuid/doc" -license: "ISC" -dev-repo: "https://github.com/pqwy/cpuid.git" -bug-reports: "https://github.com/pqwy/cpuid/issues" -tags: [] -available: [ ocaml-version >= "4.01.0" ] -build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" ] -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "ocb-stubblr" {build} - "result" ] -depopts: [] -conflicts: [ "ocb-stubblr" {<"0.1.0"} ] diff --git a/repo/win32/packages/upstream/cpuid.0.1.1/url b/repo/win32/packages/upstream/cpuid.0.1.1/url deleted file mode 100644 index 248d3235b..000000000 --- a/repo/win32/packages/upstream/cpuid.0.1.1/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/pqwy/cpuid/releases/download/v0.1.1/cpuid-0.1.1.tbz" -checksum: "717a6bf371bd083ea588ccd96f328dc2" \ No newline at end of file diff --git a/repo/win32/packages/upstream/lwt.3.1.0/opam b/repo/win32/packages/upstream/lwt.3.1.0/opam index 061211f3f..94e883ba1 100644 --- a/repo/win32/packages/upstream/lwt.3.1.0/opam +++ b/repo/win32/packages/upstream/lwt.3.1.0/opam @@ -24,7 +24,7 @@ build: [ build-test: [ [ "jbuilder" "runtest" "-p" name ] ] depends: [ - "cppo" {build} + "cppo" {build & >= "1.1.0"} "jbuilder" {build & >= "1.0+beta10"} # We are only using ocamlfind during configuration of the Unix binding. "ocamlfind" {build & >= "1.5.0"} diff --git a/repo/win32/packages/upstream/mirage-conduit.3.0.1/descr b/repo/win32/packages/upstream/mirage-conduit.3.0.1/descr deleted file mode 100644 index cb46f15b9..000000000 --- a/repo/win32/packages/upstream/mirage-conduit.3.0.1/descr +++ /dev/null @@ -1,35 +0,0 @@ -Network conduit library - -The `conduit` library takes care of establishing and listening for -TCP and SSL/TLS connections for the Lwt and Async libraries. - -The reason this library exists is to provide a degree of abstraction -from the precise SSL library used, since there are a variety of ways -to bind to a library (e.g. the C FFI, or the Ctypes library), as well -as well as which library is used (just OpenSSL for now). - -By default, OpenSSL is used as the preferred connection library, but -you can force the use of the pure OCaml TLS stack by setting the -environment variable `CONDUIT_TLS=native` when starting your program. - -The opam packages available are: - -- `conduit`: the main `Conduit` module -- `conduit-lwt`: the portable Lwt implementation -- `conduit-lwt-unix`: the Lwt/Unix implementation -- `conduit-async` the Jane Street Async implementation -- `mirage-conduit`: the MirageOS compatible implementation - -### Debugging - -Some of the `Lwt_unix`-based modules use a non-empty `CONDUIT_DEBUG` -environment variable to output debugging information to standard error. -Just set this variable when running the program to see what URIs -are being resolved to. - -### Further Informartion - -* **API Docs:** http://docs.mirage.io/ -* **WWW:** https://github.com/mirage/ocaml-conduit -* **E-mail:** -* **Bugs:** https://github.com/mirage/ocaml-conduit/issues \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-conduit.3.0.1/opam b/repo/win32/packages/upstream/mirage-conduit.3.0.1/opam deleted file mode 100644 index 4fdcac603..000000000 --- a/repo/win32/packages/upstream/mirage-conduit.3.0.1/opam +++ /dev/null @@ -1,25 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: ["Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire"] -homepage: "https://github.com/mirage/ocaml-conduit" -dev-repo: "https://github.com/mirage/ocaml-conduit.git" -bug-reports: "https://github.com/mirage/ocaml-conduit/issues" -tags: "org:mirage" -license: "ISC" - -build: [ - ["jbuilder" "subst" "-p" name "--name" name] {pinned} - ["jbuilder" "build" "-p" name "-j" jobs] -] - -depends: [ - "jbuilder" {build & >="1.0+beta10"} - "cstruct" {>= "3.0.0"} - "mirage-types-lwt" {>= "3.0.0"} - "mirage-flow-lwt" {>= "1.2.0"} - "mirage-dns" {>= "3.0.0"} - "conduit-lwt" - "vchan" {>= "3.0.0"} - "tls" {>="0.8.0"} -] -available: [ocaml-version >="4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-conduit.3.0.1/url b/repo/win32/packages/upstream/mirage-conduit.3.0.1/url deleted file mode 100644 index a11f363f0..000000000 --- a/repo/win32/packages/upstream/mirage-conduit.3.0.1/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-conduit/releases/download/v1.0.1/conduit-1.0.1.tbz" -checksum: "ef2095d59d93303697c944f9d404e64d" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-dns.3.0.0/descr b/repo/win32/packages/upstream/mirage-dns.3.0.0/descr deleted file mode 100644 index 84cefc577..000000000 --- a/repo/win32/packages/upstream/mirage-dns.3.0.0/descr +++ /dev/null @@ -1,29 +0,0 @@ -DNS client and server implementation in pure OCaml - -This is a pure OCaml implementation of the DNS protocol. It is intended to be -a reasonably high-performance implementation, but clarity is preferred rather -than low-level performance hacks. - -[![Build Status](https://travis-ci.org/mirage/ocaml-dns.svg?branch=master)](https://travis-ci.org/mirage/ocaml-dns) - -To build it, please use the [OPAM](https://opam.ocaml.org) package manager (1.2+): - - opam pin add dns . - -This will install the dependencies needed and give you a working development -version of the library. - -Packages: - -* `lib/` contains the core DNS protocol, which is packed into the `Dns` module. -* `lib_test/` contains unit tests and sample uses of the library. - In particular, `time_server` is a simple dynamic responder. - -Areas that need work: - -* We need an Lwt-based client iterative resolver - Patches for this are highly welcome! -* EDNS0 extensions -* DNSSEC extensions (using [nocrypto](https://github.com/mirleft/ocaml-nocrypto/)) -* TC bit and TCP fallback -* mDNS resolver \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-dns.3.0.0/opam b/repo/win32/packages/upstream/mirage-dns.3.0.0/opam deleted file mode 100644 index 31af65175..000000000 --- a/repo/win32/packages/upstream/mirage-dns.3.0.0/opam +++ /dev/null @@ -1,24 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -homepage: "https://github.com/mirage/ocaml-dns" -dev-repo: "https://github.com/mirage/ocaml-dns.git" -bug-reports: "https://github.com/mirage/ocaml-dns/issues" -license: "ISC" -authors: [ "Anil Madhavapeddy" "Tim Deegan" "Richard Mortier" "Haris Rotsos" - "David Sheets" "Thomas Gazagnaire" "Luke Dunstan" ] - -build: [ - ["jbuilder" "subst"] {pinned} - ["jbuilder" "build" "-p" name "-j" jobs] -] - -depends: [ - "jbuilder" {>="1.0+beta9"} - "dns-lwt" - "duration" - "mirage-stack-lwt" - "mirage-kv-lwt" - "mirage-time-lwt" - "mirage-profile" {>="0.8.0"} -] -available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-dns.3.0.0/url b/repo/win32/packages/upstream/mirage-dns.3.0.0/url deleted file mode 100644 index 6eb7b78ec..000000000 --- a/repo/win32/packages/upstream/mirage-dns.3.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-dns/releases/download/v1.0.0/dns-1.0.0.tbz" -checksum: "5fe4efe11671253950f89036a6cc1a21" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-http.3.2.0/descr b/repo/win32/packages/upstream/mirage-http.3.2.0/descr deleted file mode 100644 index 65cfabe55..000000000 --- a/repo/win32/packages/upstream/mirage-http.3.2.0/descr +++ /dev/null @@ -1,27 +0,0 @@ -An OCaml library for HTTP clients and servers - -[![Join the chat at https://gitter.im/mirage/ocaml-cohttp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mirage/ocaml-cohttp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -Cohttp is an OCaml library for creating HTTP daemons. It has a portable -HTTP parser, and implementations using various asynchronous programming -libraries: - -* `Cohttp_lwt_unix` uses the [Lwt](http://ocsigen.org/lwt) library, and - specifically the UNIX bindings. -* `Cohttp_async` uses the [Async](https://realworldocaml.org/v1/en/html/concurrent-programming-with-async.html) - library. -* `Cohttp_lwt` exposes an OS-independent Lwt interface, which is used - by the [Mirage](http://www.openmirage.org) interface - to generate standalone microkernels (see the [mirage-http](https://github.com/mirage/mirage-http) - repository). -* `Cohttp_lwt_xhr` compiles to a JavaScript module that maps the Cohttp - calls to XMLHTTPRequests. This is used to compile OCaml libraries like - the GitHub bindings to JavaScript and still run efficiently. - -You can implement other targets using the parser very easily. Look at the `IO` -signature in `lib/s.mli` and implement that in the desired backend. - -You can activate some runtime debugging by setting `COHTTP_DEBUG` to any -value, and all requests and responses will be written to stderr. Further -debugging of the connection layer can be obtained by setting `CONDUIT_DEBUG` -to any value. \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-http.3.2.0/opam b/repo/win32/packages/upstream/mirage-http.3.2.0/opam deleted file mode 100644 index 41e29dda8..000000000 --- a/repo/win32/packages/upstream/mirage-http.3.2.0/opam +++ /dev/null @@ -1,30 +0,0 @@ -opam-version: "1.2" -maintainer: "anil@recoil.org" -authors: [ - "Anil Madhavapeddy" - "Thomas Gazagnaire" -] -homepage: "https://github.com/mirage/ocaml-cohttp" -bug-reports: "https://github.com/mirage/ocaml-cohttp/issues" -license: "ISC" -tags: ["org:mirage" "org:xapi-project"] -dev-repo: "https://github.com/mirage/ocaml-cohttp.git" -build: [ - ["jbuilder" "subst" "-n" name] {pinned} - ["jbuilder" "build" "-p" name "-j" jobs] -] -build-test: [["jbuilder" "runtest" "-p" name "-j" jobs]] -depends: [ - "jbuilder" {build & >= "1.0+beta10"} - "result" - "mirage-flow-lwt" {>= "1.2.0"} - "mirage-channel-lwt" {>= "3.0.0"} - "conduit" {>= "0.99"} - "mirage-conduit" {>= "3.0.0"} - "lwt" {>= "2.4.3"} - "cohttp" {>="0.99.0"} - "cohttp-lwt" - "astring" - "magic-mime" -] -available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-http.3.2.0/url b/repo/win32/packages/upstream/mirage-http.3.2.0/url deleted file mode 100644 index f85b2284a..000000000 --- a/repo/win32/packages/upstream/mirage-http.3.2.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-cohttp/releases/download/v0.99.0/cohttp-0.99.0.tbz" -checksum: "a789a9ed492005257bdb217e2248da0d" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-no-solo5.1/descr b/repo/win32/packages/upstream/mirage-no-solo5.1/descr deleted file mode 100644 index fe8ccd209..000000000 --- a/repo/win32/packages/upstream/mirage-no-solo5.1/descr +++ /dev/null @@ -1 +0,0 @@ -Virtual package conflicting with mirage-solo5 diff --git a/repo/win32/packages/upstream/mirage-no-solo5.1/opam b/repo/win32/packages/upstream/mirage-no-solo5.1/opam deleted file mode 100644 index aaaef8fd9..000000000 --- a/repo/win32/packages/upstream/mirage-no-solo5.1/opam +++ /dev/null @@ -1,6 +0,0 @@ -opam-version: "1.2" -maintainer: "mirageos-devel@lists.xenproject.org" -authors: ["mirageos-devel@lists.xenproject.org"] -homepage: "https://mirage.io" -license: "BSD2" -conflicts: [ "mirage-solo5" ] diff --git a/repo/win32/packages/upstream/mirage-no-xen.1/descr b/repo/win32/packages/upstream/mirage-no-xen.1/descr deleted file mode 100644 index fe69ce3c9..000000000 --- a/repo/win32/packages/upstream/mirage-no-xen.1/descr +++ /dev/null @@ -1 +0,0 @@ -Virtual package conflicting with mirage-xen diff --git a/repo/win32/packages/upstream/mirage-no-xen.1/opam b/repo/win32/packages/upstream/mirage-no-xen.1/opam deleted file mode 100644 index 34c598b39..000000000 --- a/repo/win32/packages/upstream/mirage-no-xen.1/opam +++ /dev/null @@ -1,6 +0,0 @@ -opam-version: "1.2" -maintainer: "mirageos-devel@lists.xenproject.org" -authors: ["mirageos-devel@lists.xenproject.org"] -homepage: "https://mirage.io" -license: "BSD2" -conflicts: [ "mirage-xen" ] diff --git a/repo/win32/packages/upstream/nocrypto.0.5.4/descr b/repo/win32/packages/upstream/nocrypto.0.5.4/descr deleted file mode 100644 index 3ca64e089..000000000 --- a/repo/win32/packages/upstream/nocrypto.0.5.4/descr +++ /dev/null @@ -1,9 +0,0 @@ -Simpler crypto - - -nocrypto is a small cryptographic library that puts emphasis on the applicative -style and ease of use. It includes basic ciphers (AES, 3DES, RC4), hashes (MD5, -SHA1, SHA2), public-key primitives (RSA, DSA, DH) and a strong RNG (Fortuna). - -RSA timing attacks are countered by blinding. AES timing attacks are avoided by -delegating to AES-NI. \ No newline at end of file diff --git a/repo/win32/packages/upstream/nocrypto.0.5.4/opam b/repo/win32/packages/upstream/nocrypto.0.5.4/opam deleted file mode 100644 index 200a3ca0d..000000000 --- a/repo/win32/packages/upstream/nocrypto.0.5.4/opam +++ /dev/null @@ -1,41 +0,0 @@ -opam-version: "1.2" -homepage: "https://github.com/mirleft/ocaml-nocrypto" -dev-repo: "https://github.com/mirleft/ocaml-nocrypto.git" -bug-reports: "https://github.com/mirleft/ocaml-nocrypto/issues" -doc: "https://mirleft.github.io/ocaml-nocrypto/doc" -authors: ["David Kaloper "] -maintainer: "David Kaloper " -license: "ISC" -tags: [ "org:mirage" ] -available: [ ocaml-version >= "4.02.0" ] - -build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" - "--with-lwt" "%{lwt:installed}%" - "--xen" "%{mirage-xen:installed}%" - "--freestanding" "%{mirage-solo5:installed}%"] - -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "cpuid" {build} - "ocb-stubblr" {build} - "ppx_deriving" {build} - "ppx_sexp_conv" {build} - "ounit" {test} - "cstruct" {>="2.4.0"} - "cstruct-lwt" - "zarith" - "lwt" - "sexplib" - ("mirage-no-xen" | ("mirage-xen" & "mirage-entropy" & "zarith-xen")) - ("mirage-no-solo5" | ("mirage-solo5" & "mirage-entropy" & "zarith-freestanding")) -] - -conflicts: [ - "topkg" {<"0.8.0"} - "ocb-stubblr" {<"0.1.0"} - "mirage-xen" {<"2.2.0"} - "sexplib" {="v0.9.0"} -] - diff --git a/repo/win32/packages/upstream/nocrypto.0.5.4/url b/repo/win32/packages/upstream/nocrypto.0.5.4/url deleted file mode 100644 index ec05a1382..000000000 --- a/repo/win32/packages/upstream/nocrypto.0.5.4/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirleft/ocaml-nocrypto/releases/download/v0.5.4/nocrypto-0.5.4.tbz" -checksum: "c331a7a4d2a563d1d5ed581aeb849011" diff --git a/repo/win32/packages/upstream/oasis.0.4.10/descr b/repo/win32/packages/upstream/oasis.0.4.10/descr deleted file mode 100644 index 826e6942e..000000000 --- a/repo/win32/packages/upstream/oasis.0.4.10/descr +++ /dev/null @@ -1,23 +0,0 @@ -Tooling for building OCaml libraries and applications - -OASIS generates a full configure, build and install system for your -application. It starts with a simple `_oasis` file at the toplevel of -your project and creates everything required. - -OASIS leverages existing OCaml tooling to perform most of it's work. -In fact, it might be more appropriate to think of it as simply the -glue that binds these other subsystems together and coordinates the -work that they do. It should support the following tools: - -* OCamlbuild -* OMake -* OCamlMakefile (todo), -* ocaml-autoconf (todo) - -It also features a do-it-yourself command line invocation and an -internal configure/install scheme. Libraries are managed through -findlib. It has been tested on GNU Linux and Windows. - -It also allows to have standard entry points and description. It helps -to integrates your libraries and software with third parties tools -like OPAM. diff --git a/repo/win32/packages/upstream/oasis.0.4.10/files/oasis-0.4.10.patch b/repo/win32/packages/upstream/oasis.0.4.10/files/oasis-0.4.10.patch deleted file mode 100644 index 9973119b5..000000000 --- a/repo/win32/packages/upstream/oasis.0.4.10/files/oasis-0.4.10.patch +++ /dev/null @@ -1,2417 +0,0 @@ ---- ./myocamlbuild.ml -+++ ./myocamlbuild.ml -@@ -107,7 +107,7 @@ - ;; - - (* OASIS_START *) --(* DO NOT EDIT (digest: abd4c3624ec7c742aae7dbd96c89cd14) *) -+(* DO NOT EDIT (digest: f54b1f8d97dfa848f6d79c1c3a40cf79) *) - module OASISGettext = struct - # 22 "src/oasis/OASISGettext.ml" - -@@ -279,6 +279,28 @@ - else - s - -+ let exists f str = -+ let rec iter i = -+ if i < 0 then -+ false -+ else if f str.[i] then -+ true -+ else -+ iter (pred i) -+ in -+ iter (String.length str - 1) -+ -+ let is_digit c = -+ '0' <= c && c <= '9' -+ -+ let is_alpha c = -+ ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') -+ -+ let is_whitespace = -+ function -+ | ' ' | '\r' | '\n' | '\t' -> true -+ | _ -> false -+ - end - - module OASISUtils = struct -@@ -542,7 +564,7 @@ - end - - --# 437 "myocamlbuild.ml" -+# 459 "myocamlbuild.ml" - module BaseEnvLight = struct - # 22 "src/base/BaseEnvLight.ml" - -@@ -622,7 +644,7 @@ - end - - --# 517 "myocamlbuild.ml" -+# 539 "myocamlbuild.ml" - module MyOCamlbuildFindlib = struct - # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" - -@@ -699,7 +721,9 @@ - with Not_found -> s - - (* ocamlfind command *) -- let ocamlfind x = S[Sh (exec_from_conf "ocamlfind"); x] -+ let ocamlfind x = S[Sh ( -+ Ocamlbuild_pack.Shell.quote_filename_if_needed -+ (exec_from_conf "ocamlfind") ); x] - - (* This lists all supported packages. *) - let find_packages () = -@@ -983,7 +1007,7 @@ - end - - --# 878 "myocamlbuild.ml" -+# 902 "myocamlbuild.ml" - open Ocamlbuild_plugin;; - let package_default = - { -@@ -1283,7 +1307,7 @@ - - let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;; - --# 1179 "myocamlbuild.ml" -+# 1203 "myocamlbuild.ml" - (* OASIS_STOP *) - - open Ocamlbuild_plugin;; ---- ./setup.ml -+++ ./setup.ml -@@ -21,9 +21,9 @@ - (******************************************************************************) - - (* OASIS_START *) --(* DO NOT EDIT (digest: 82f71dd677dc1c6e3170c19b8f78d912) *) -+(* DO NOT EDIT (digest: fe19643829fc00739fbab75e4c7fe6a5) *) - (* -- Regenerated by OASIS v0.4.10~HEAD -+ Regenerated by OASIS v0.4.9 - Visit http://oasis.forge.ocamlcore.org for more information and - documentation about functions used in this file. - *) -@@ -198,6 +198,28 @@ - else - s - -+ let exists f str = -+ let rec iter i = -+ if i < 0 then -+ false -+ else if f str.[i] then -+ true -+ else -+ iter (pred i) -+ in -+ iter (String.length str - 1) -+ -+ let is_digit c = -+ '0' <= c && c <= '9' -+ -+ let is_alpha c = -+ ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') -+ -+ let is_whitespace = -+ function -+ | ' ' | '\r' | '\n' | '\t' -> true -+ | _ -> false -+ - end - - module OASISUtils = struct -@@ -473,6 +495,118 @@ - - module Unix = OASISUnixPath - -+ let bash_cmd = ref ( fun () -> "" ) -+ -+ let use_bash () = ( !bash_cmd () ) <> "" -+ -+ -+ (* generic quote and unixquote are taken from ocaml source *) -+ let generic_quote quotequote s = -+ let l = String.length s in -+ let b = Buffer.create (l + 20) in -+ Buffer.add_char b '\''; -+ for i = 0 to l - 1 do -+ if s.[i] = '\'' then -+ Buffer.add_string b quotequote -+ else -+ Buffer.add_char b s.[i] -+ done; -+ Buffer.add_char b '\''; -+ Buffer.contents b -+ -+ let unixquote = generic_quote "'\\''" -+ -+ let win = Sys.os_type = "Win32" -+ -+ let quote str = -+ if win && use_bash () then -+ unixquote str -+ else -+ quote str -+ -+ (* uniform_path (only called, if Sys.os_type = "Win32") -+ * - enforces uniform path seperators -+ * - strips trailing slashes (exceptions in case of C:\ and / ) -+ * - removes (some) unnecessary file components like ./././ -+ *) -+ -+ let get_naccu accu str first pos = -+ (* I assume c//d is identic to c/d -+ * the only exception (Network devices \\xyz\asdf) -+ * is covered in uniform_path -+ *) -+ if first = pos then -+ accu -+ else -+ let nlen = pos - first in -+ let nstr = String.sub str first nlen in -+ (* test/././ is the same as test *) -+ if nlen = 1 && nstr = "." then -+ accu -+ (* a/b/../ is the same as a *) -+ else if nlen = 2 && nstr = ".." then -+ match accu with -+ | [] -> [ nstr ] -+ | ".."::_ -> nstr::accu -+ | hd::tl -> tl -+ else -+ nstr::accu -+ -+ let is_path_sep = function -+ | '\\' | '/' -> true -+ | _ -> false -+ -+ -+ let uniform_path path_sep = function -+ | "" -> "" (* Raise an exception? Or an possible intermediate result? -+ * Filename.basename and dirname also don't raise exceptions *) -+ | str -> -+ let rec iter accu str len first pos = -+ if pos >= len then -+ List.rev (get_naccu accu str first pos) -+ else -+ let next = succ pos in -+ match is_path_sep str.[pos] with -+ | true -> iter (get_naccu accu str first pos) str len next next -+ | false -> iter accu str len first next -+ in -+ let is_unix_root = is_path_sep str.[0] in -+ let len = String.length str in -+ let next_sep = len > 1 && is_path_sep str.[1] in -+ let is_network_root = is_unix_root && next_sep in -+ let is_currel = str.[0] = '.' && ( next_sep || len = 1 ) in -+ let l = iter [] str len 0 0 in -+ (* Trailing slashes are normally stripped. -+ * This is not possible in case of root folders -+ * Sys.file_exists "C:" is false, Sys.file_exists "C:\\" true -+ *) -+ let l_min = -+ match l with -+ | [] -> [ "" ] -+ | _ -> l -+ in -+ let l = -+ if is_network_root then -+ ""::""::l_min -+ else if is_unix_root then -+ ""::l_min -+ else if is_currel then -+ "."::l -+ else -+ match l with -+ | s :: [] -> -+ (* root folders like C:\ *) -+ if String.length s = 2 && s.[1] = ':' && -+ len > 2 && is_path_sep str.[2] -+ then -+ s :: [ "" ] -+ else -+ l -+ | _ -> l -+ in -+ String.concat path_sep l -+ -+ - - let make = - function -@@ -486,22 +620,31 @@ - match Sys.os_type with - | "Unix" | "Cygwin" -> ufn - | "Win32" -> -- make -- (List.map -- (fun p -> -- if p = Unix.current_dir_name then -- current_dir_name -- else if p = Unix.parent_dir_name then -- parent_dir_name -+ let path_sep = -+ if use_bash () then -+ "/" - else -- p) -- (OASISString.nsplit ufn '/')) -+ "\\" -+ in -+ uniform_path path_sep ufn - | os_type -> - OASISUtils.failwithf - (f_ "Don't know the path format of os_type %S when translating unix \ - filename. %S") - os_type ufn - -+ (* see findlib's src/findlib/frontend.ml for details *) -+ let ocamlfind_unquote dir = -+ match Sys.os_type with -+ | "Cygwin" -+ | "Win32" -> -+ let len = String.length dir in -+ if len < 3 || dir.[0] <> '"' || dir.[len - 1] <> '"' || -+ String.contains dir ' ' = false then -+ dir -+ else -+ String.sub dir 1 (len - 2) -+ | _ -> dir - - end - -@@ -1084,8 +1227,8 @@ - - - (* Range of allowed characters *) -- let is_digit c = '0' <= c && c <= '9' -- let is_alpha c = ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') -+ let is_digit = OASISString.is_digit -+ let is_alpha = OASISString.is_alpha - let is_special = function | '.' | '+' | '-' | '~' -> true | _ -> false - - -@@ -2513,6 +2656,7 @@ - ~ctxt - ~is_native - ~source_file_exists -+ ~ext_obj - (cs, bs, obj) = - - let find_module ext modul = -@@ -2526,12 +2670,12 @@ - | [ m ] -> (find_module ".cmi" m, - find_module ".cmo" m, - find_module ".cmx" m, -- find_module ".o" m, -+ find_module ext_obj m, - fun x -> x) - | _ -> ([cs.cs_name ^ ".cmi"], - [cs.cs_name ^ ".cmo"], - [cs.cs_name ^ ".cmx"], -- [cs.cs_name ^ ".o"], -+ [cs.cs_name ^ ext_obj], - OASISUnixPath.concat bs.bs_path) - in - List.map (List.map f) ( -@@ -2891,26 +3035,170 @@ - open OASISUtils - open OASISMessage - -+ let is_dubious_char = function -+ | '+' | '~' | ':' | '.' | '-' | '_' | '/' | '\\' -> false -+ | c -> -+ OASISString.is_digit c = false && -+ OASISString.is_alpha c = false - -- (* TODO: I don't like this quote, it is there because $(rm) foo expands to -- * 'rm -f' foo... -- *) -- let run ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ -+ let win_quote_needed str = -+ let f = function -+ | 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' -+ | '_' | '-' | '~' | '.' | ':' | ',' | '\\' -> false -+ | _ -> true -+ in -+ str = "" || OASISString.exists f str -+ -+ let is_simple_command str = -+ String.length str > 0 && -+ not (OASISString.exists is_dubious_char str) -+ -+ let is_path_sep = function -+ | '/' | '\\' -> true -+ | _ -> false -+ -+ let starts_with_absolute_path cmd = -+ let len = String.length cmd in -+ if len < 3 then -+ false -+ else -+ let c0 = cmd.[0] in -+ let c1 = cmd.[1] in -+ if is_path_sep c0 && is_path_sep c1 then (* network devices: "//" *) -+ true -+ else if len = 3 then -+ false -+ else (* C:\.... *) -+ OASISString.is_alpha c0 && c1 = ':' && is_path_sep cmd.[2] -+ -+ let exe_exts = lazy -+ begin -+ let exts = -+ try -+ OASISString.nsplit -+ (Sys.getenv "PATHEXT") -+ ';' -+ with -+ | Not_found -> [] -+ in -+ let exts' = -+ List.filter -+ ( fun a -> a <> "" && a.[0] = '.' && a <> ".exe" ) -+ (List.map OASISString.lowercase_ascii exts) -+ in -+ ".exe"::exts' -+ end -+ -+ let exe_file_exists fln = -+ Sys.file_exists fln || -+ List.exists -+ (fun a -> Sys.file_exists ( fln ^ a ) ) -+ (Lazy.force exe_exts) -+ -+ -+ let quote_anyway cmd = -+ if Sys.os_type <> "Win32" then -+ false -+ else if is_simple_command cmd then -+ true -+ else -+ OASISString.exists OASISString.is_whitespace cmd && -+ starts_with_absolute_path cmd && -+ exe_file_exists cmd -+ -+ -+ let run_bash ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ let fn = Filename.temp_file "oasis-" ".sh" in -+ let fn_deleted = ref false in -+ try -+ begin -+ let ch = open_out_bin fn in -+ let ch_closed = ref false in -+ try -+ begin - let cmd = -- if quote then -- if Sys.os_type = "Win32" then -- if String.contains cmd ' ' then -- (* Double the 1st double quote... win32... sigh *) -- "\""^(Filename.quote cmd) -+ if quote || quote_anyway cmd then -+ OASISHostPath.quote (OASISHostPath.of_unix cmd) - else - cmd -+ in -+ output_string ch cmd; -+ List.iter -+ ( fun s -> output_char ch ' '; output_string ch s ) -+ args ; -+ output_char ch '\n'; -+ ch_closed:=true ; -+ close_out ch; -+ let bash = !OASISHostPath.bash_cmd () in -+ let add_quotes = ref false in -+ let shell_cmd = -+ if Sys.os_type <> "Win32" then -+ Filename.quote bash -+ else -+ if win_quote_needed bash = false then -+ bash -+ else -+ begin -+ add_quotes := true; -+ Filename.quote bash -+ end -+ in -+ let cmdline_orig = String.concat " " (cmd :: args) in -+ let cmdline = -+ let s = shell_cmd ^ " " ^ (Filename.quote fn) in -+ if !add_quotes then -+ "\"" ^ s ^ "\"" -+ else -+ s -+ in -+ info ~ctxt (f_ "Running command '%s'") cmdline_orig; -+ let ret = Sys.command cmdline in -+ fn_deleted := true; -+ Sys.remove fn; -+ match f_exit_code, ret with -+ | None, 0 -> () -+ | None, i -> -+ failwithf -+ (f_ "Command '%s' terminated with error code %d") -+ cmdline_orig i -+ | Some f, i -> -+ f i -+ end -+ with -+ | x when !ch_closed = false -> -+ close_out_noerr ch; -+ raise x -+ end -+ with -+ | x when !fn_deleted = false -> -+ (try Sys.remove fn with _ -> () ) ; -+ raise x -+ -+ let run_default ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ let add_quotes = ref false in -+ let cmd = -+ if quote || quote_anyway cmd then -+ if Sys.os_type = "Win32" then -+ begin -+ if win_quote_needed cmd = false then -+ cmd -+ else -+ begin -+ add_quotes := true; -+ Filename.quote cmd -+ end -+ end - else - Filename.quote cmd - else - cmd - in - let cmdline = -- String.concat " " (cmd :: args) -+ let s = String.concat " " (cmd :: args) in -+ match !add_quotes with -+ | true -> "\"" ^ s ^ "\"" -+ | false -> s - in - info ~ctxt (f_ "Running command '%s'") cmdline; - match f_exit_code, Sys.command cmdline with -@@ -2922,6 +3210,13 @@ - | Some f, i -> - f i - -+ let run ~ctxt ?f_exit_code ?quote cmd args = -+ if OASISHostPath.use_bash () && -+ (Sys.os_type <> "Win32" || not (Filename.check_suffix cmd ".bat")) -+ then -+ run_bash ~ctxt ?f_exit_code ?quote cmd args -+ else -+ run_default ~ctxt ?f_exit_code ?quote cmd args - - let run_read_output ~ctxt ?f_exit_code cmd args = - let fn = -@@ -3032,7 +3327,7 @@ - ) alternatives - - -- let which ~ctxt prg = -+ let which ?(plain=false) ?ctxt prg = - let path_sep = - match Sys.os_type with - | "Win32" -> -@@ -3044,11 +3339,19 @@ - let exec_ext = - match Sys.os_type with - | "Win32" -> -- "" :: (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep) -+ "" :: (List.map -+ OASISString.lowercase_ascii -+ (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep)) - | _ -> - [""] - in -+ let p = - find_file ~case_sensitive:false [path_lst; [prg]] exec_ext -+ in -+ if plain then -+ p -+ else -+ OASISHostPath.of_unix p - - - (**/**) -@@ -3065,35 +3368,54 @@ - dn - - -- let q = Filename.quote -+ let q s = OASISHostPath.quote (OASISHostPath.of_unix s) - (**/**) - -- - let cp ~ctxt ?(recurse=false) src tgt = - if recurse then -- match Sys.os_type with -- | "Win32" -> -- OASISExec.run ~ctxt -- "xcopy" [q src; q tgt; "/E"] -- | _ -> -- OASISExec.run ~ctxt -- "cp" ["-r"; q src; q tgt] -+ (* -+ 'xcopy /E' and 'cp -r' don't have the same semantic! -+ -dir2 does exist: -+ xcopy dir dir2 /E -> copys content of dir into dir2 (dir2/dir doesn't exist!) -+ cp -r dir dir2 -> copys dir to dir2 (dir2/dir does exist!) -+ -dir2 doesn't exist: -+ xcopy dir dir2 /E -> request on command line, if dir2 is an directory or file. -+ cp -r dir dir2 -> dir and dir2 have the same content (dir2/dir doesn't exist) -+ Probably, there are even more differences,.... -+ *) -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then -+ let tgt_real = -+ if Sys.file_exists tgt = false then -+ begin -+ OASISExec.run ~ctxt "md" [q tgt]; -+ tgt -+ end - else -- OASISExec.run ~ctxt -- (match Sys.os_type with -- | "Win32" -> "copy" -- | _ -> "cp") -- [q src; q tgt] -- -+ let base = Filename.basename src in -+ if base = "." then -+ tgt -+ else -+ let tgt_real = Filename.concat tgt base in -+ if Sys.file_exists tgt_real = false then -+ OASISExec.run ~ctxt "md" [q tgt_real]; -+ tgt_real -+ in -+ OASISExec.run ~ctxt "xcopy" [q src; q tgt_real; "/E" ; "/Q" ; "/Y"] -+ else -+ OASISExec.run ~ctxt "cp" ["-r"; q src; q tgt] -+ else if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then -+ OASISExec.run ~ctxt "copy" [q src; q tgt ; "/Y"] -+ else -+ OASISExec.run ~ctxt "cp" [q src; q tgt] - - let mkdir ~ctxt tgt = - OASISExec.run ~ctxt -- (match Sys.os_type with -- | "Win32" -> "md" -- | _ -> "mkdir") -+ ( if Sys.os_type = "Win32" && not (OASISHostPath.use_bash ()) then -+ "md" -+ else -+ "mkdir" ) - [q tgt] - -- - let rec mkdir_parent ~ctxt f tgt = - let tgt = - fix_dir tgt -@@ -3119,10 +3441,9 @@ - - let rmdir ~ctxt tgt = - if Sys.readdir tgt = [||] then begin -- match Sys.os_type with -- | "Win32" -> -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then - OASISExec.run ~ctxt "rd" [q tgt] -- | _ -> -+ else - OASISExec.run ~ctxt "rm" ["-r"; q tgt] - end else begin - OASISMessage.error ~ctxt -@@ -3176,7 +3497,7 @@ - end - - --# 3159 "setup.ml" -+# 3480 "setup.ml" - module BaseEnvLight = struct - # 22 "src/base/BaseEnvLight.ml" - -@@ -3256,7 +3577,7 @@ - end - - --# 3239 "setup.ml" -+# 3560 "setup.ml" - module BaseContext = struct - # 22 "src/base/BaseContext.ml" - -@@ -3347,7 +3668,7 @@ - let var_lxr = Genlex.make_lexer [] - - -- let rec var_expand str = -+ let rec var_expand ?(quoted=false) str = - let buff = - Buffer.create ((String.length str) * 2) - in -@@ -3375,7 +3696,11 @@ - | [Genlex.Ident "ocaml_escaped"; Genlex.String s] -> - String.escaped s - | [Genlex.Ident nm] -> -- var_get nm -+ let s = var_get nm in -+ if quoted then -+ OASISHostPath.quote s -+ else -+ s - | _ -> - failwithf - (f_ "Unknown expression '%s' in variable expansion of %s.") -@@ -3913,9 +4238,11 @@ - in - let findlib_dir pkg = - let dir = -+ OASISHostPath.of_unix ( -+ OASISHostPath.ocamlfind_unquote ( - OASISExec.run_read_one_line ~ctxt:!BaseContext.default - (ocamlfind ()) -- ["query"; "-format"; "%d"; pkg] -+ ["query"; "-format"; "%d"; pkg] ) ) - in - if Sys.file_exists dir && Sys.is_directory dir then - dir -@@ -4045,6 +4372,9 @@ - match nm with - | "ocaml_version" -> - "version", chop_version_suffix -+ | "standard_library" -+ | "standard_library_default" -> -+ nm, ( fun x -> OASISHostPath.of_unix x) - | _ -> nm, (fun x -> x) - in - var_redefine -@@ -4184,15 +4514,43 @@ - - - let (/) a b = -- if os_type () = Sys.os_type then -+ let os = os_type () in -+ if os = Sys.os_type then -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () then -+ OASISUnixPath.concat a b -+ else - Filename.concat a b -- else if os_type () = "Unix" || os_type () = "Cygwin" then -+ else if os = "Unix" || os = "Cygwin" then - OASISUnixPath.concat a b - else -- OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") -- (os_type ()) -+ OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") os - (**/**) - -+ let auto_bash = -+ lazy ( -+ try -+ let bash = OASISFileUtil.which ~plain:true "bash" in -+ let sh = Filename.concat (Filename.dirname bash) "sh.exe" in -+ if Sys.file_exists sh then -+ sh -+ else -+ bash -+ with -+ | Not_found | Sys_error _ -> "" ) -+ -+ let auto_bash () = -+ if Sys.os_type <> "Win32" then -+ "" -+ else -+ Lazy.force auto_bash -+ -+ let bash_cmd = -+ var_define -+ ~short_desc:(fun () -> s_ "Enforced bash shell:") -+ ~cli:CLIAuto -+ ~arg_help:"program" -+ "use_bash" -+ auto_bash - - let prefix = - p "prefix" -@@ -4200,10 +4558,30 @@ - (fun () -> - match os_type () with - | "Win32" -> -+ let getenv w = -+ try -+ Some(Sys.getenv w) -+ with -+ | Not_found -> None -+ in -+ let s = -+ if Sys.word_size = 64 then -+ getenv "ProgramW6432" -+ else -+ None -+ in -+ let s = -+ if s = None then -+ getenv "PROGRAMFILES" -+ else -+ s -+ in - let program_files = -- Sys.getenv "PROGRAMFILES" -+ match s with -+ | None -> "C:\\Program Files" -+ | Some x -> x - in -- program_files/(pkg_name ()) -+ OASISHostPath.of_unix (program_files/(pkg_name ())) - | _ -> - "/usr/local") - -@@ -4289,7 +4667,15 @@ - let docdir = - p "docdir" - (fun () -> s_ "Documentation root") -- (fun () -> "$datarootdir"/"doc"/"$pkg_name") -+ (fun () -> -+ (* TODO: (Windows only?) "$pkg_name" is not always substituted -+ * (at least if datarootdir contains spaces or other garbage) -+ * I haven't looked up why. -+ *) -+ match os_type () with -+ | "Win32" -> "$datarootdir"/"doc"/ ( pkg_name () ) -+ | _ -> "$datarootdir"/"doc"/"$pkg_name" -+ ) - - - let htmldir = -@@ -4363,9 +4749,10 @@ - ~short_desc:(fun () -> s_ "Remove a file.") - "rm" - (fun () -> -- match os_type () with -- | "Win32" -> "del" -- | _ -> "rm -f") -+ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then -+ "del" -+ else -+ "rm -f" ) - - - let rmdir = -@@ -4373,9 +4760,10 @@ - ~short_desc:(fun () -> s_ "Remove a directory.") - "rmdir" - (fun () -> -- match os_type () with -- | "Win32" -> "rd" -- | _ -> "rm -rf") -+ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then -+ "rd" -+ else -+ "rm -rf") - - - let debug = -@@ -4439,14 +4827,26 @@ - let has_native_dynlink = - let ocamlfind = ocamlfind () in - try -- let fn = -+ (* -format %d/%a doesn't work, because ocamlfind quotes %d -+ * and %a separatly *) -+ let fn1 = -+ OASISHostPath.ocamlfind_unquote ( - OASISExec.run_read_one_line - ~ctxt:!BaseContext.default - ocamlfind - ["query"; "-predicates"; "native"; "dynlink"; -- "-format"; "%d/%a"] -+ "-format"; "%d"] ) - in -- Sys.file_exists fn -+ let fn2 = -+ OASISHostPath.ocamlfind_unquote ( -+ OASISExec.run_read_one_line -+ ~ctxt:!BaseContext.default -+ ocamlfind -+ ["query"; "-predicates"; "native"; "dynlink"; -+ "-format"; "%a"] -+ ) -+ in -+ fn1 <> "" && fn2 <> "" && Sys.file_exists (Filename.concat fn1 fn2) - with _ -> - false - in -@@ -4473,6 +4873,8 @@ - rpkg := Some pkg; - List.iter (fun f -> f pkg.oasis_version) !var_cond - -+ let () = -+ OASISHostPath.bash_cmd := bash_cmd - end - - module BaseFileAB = struct -@@ -4748,6 +5150,7 @@ - ~source_file_exists:(fun fn -> - OASISFileUtil.file_exists_case (OASISHostPath.of_unix fn)) - ~is_native:(bool_of_string (is_native ())) -+ ~ext_obj:(ext_obj()) - (cs, bs, obj) - in - let evs = -@@ -4773,7 +5176,7 @@ - OASISExec.run ~ctxt:!BaseContext.default ~quote:false - (var_expand cmd) - (List.map -- var_expand -+ (var_expand ~quoted:true) - (args @ (Array.to_list extra_args))) - - -@@ -5047,9 +5450,27 @@ - - let configure ~ctxt t args = - (* Run configure *) -+ -+ (* use-bash is an exception. It's already needed to run the -+ pre-configure script. *) -+ let rec f = function -+ | [] -> -+ begin -+ try -+ let x = Sys.getenv "USE_BASH" in -+ OASISHostPath.bash_cmd := (fun () -> x); -+ with -+ _ -> () -+ end -+ | "--use-bash"::x::_ -> -+ OASISHostPath.bash_cmd := (fun () -> x); -+ | _::tl -> f tl -+ in -+ f (Array.to_list args); - BaseCustom.hook - t.package.conf_custom - (fun () -> -+ OASISHostPath.bash_cmd := BaseStandardVar.bash_cmd; - (* Reload if preconf has changed it *) - begin - try -@@ -5679,7 +6100,7 @@ - end - - --# 5662 "setup.ml" -+# 6083 "setup.ml" - module InternalConfigurePlugin = struct - # 22 "src/plugins/internal/InternalConfigurePlugin.ml" - -@@ -5959,12 +6380,21 @@ - let install_findlib_ev = "install-findlib" - - -- (* TODO: this can be more generic and used elsewhere. *) -- let win32_max_command_line_length = 8000 -- -- - let split_install_command ocamlfind findlib_name meta files = -- if Sys.os_type = "Win32" then -+ if Sys.os_type <> "Win32" then -+ ["install" :: findlib_name :: meta :: files] -+ else -+ let f s = -+ OASISHostPath.quote ( OASISHostPath.of_unix s ) -+ in -+ let files = List.map f files in -+ let meta = f meta in -+ let win32_max_command_line_length = -+ if OASISHostPath.use_bash () = false then -+ 7900 -+ else -+ 30000 -+ in - (* Arguments for the first command: *) - let first_args = ["install"; findlib_name; meta] in - (* Arguments for remaining commands: *) -@@ -6022,10 +6452,11 @@ - let cmds = split other_args others in - cmd :: cmds - in -+ if files = [] then -+ [ first_args ] -+ else - (* The first command does not use -add: *) - split first_args files -- else -- ["install" :: findlib_name :: meta :: files] - - - let install = -@@ -6482,7 +6913,7 @@ - end - - --# 6465 "setup.ml" -+# 6896 "setup.ml" - module OCamlbuildCommon = struct - # 22 "src/plugins/ocamlbuild/OCamlbuildCommon.ml" - -@@ -6854,7 +7285,7 @@ - end - - --# 6837 "setup.ml" -+# 7268 "setup.ml" - module CustomPlugin = struct - # 22 "src/plugins/custom/CustomPlugin.ml" - -@@ -6986,7 +7417,7 @@ - end - - --# 6969 "setup.ml" -+# 7400 "setup.ml" - open OASISTypes;; - - let setup_t = -@@ -11781,9 +12212,10 @@ - schema_data = PropList.Data.create (); - plugin_data = [] - }; -- oasis_fn = None; -- oasis_version = "0.4.10~HEAD"; -- oasis_digest = None; -+ oasis_fn = Some "_oasis"; -+ oasis_version = "0.4.9"; -+ oasis_digest = -+ Some "\182\141\235\016\205\021\241\230\243\205\028\228\152Ia\194"; - oasis_exec = None; - oasis_setup_args = []; - setup_update = false -@@ -11791,7 +12223,7 @@ - - let setup () = BaseSetup.setup setup_t;; - --# 11775 "setup.ml" -+# 12207 "setup.ml" - let setup_t = BaseCompat.Compat_0_4.adapt_setup_t setup_t - open BaseCompat.Compat_0_4 - (* OASIS_STOP *) ---- ./src/base/BaseBuilt.ml -+++ ./src/base/BaseBuilt.ml -@@ -165,6 +165,7 @@ - ~source_file_exists:(fun fn -> - OASISFileUtil.file_exists_case (OASISHostPath.of_unix fn)) - ~is_native:(bool_of_string (is_native ())) -+ ~ext_obj:(ext_obj()) - (cs, bs, obj) - in - let evs = ---- ./src/base/BaseCheck.ml -+++ ./src/base/BaseCheck.ml -@@ -118,9 +118,11 @@ - in - let findlib_dir pkg = - let dir = -+ OASISHostPath.of_unix ( -+ OASISHostPath.ocamlfind_unquote ( - OASISExec.run_read_one_line ~ctxt:!BaseContext.default - (ocamlfind ()) -- ["query"; "-format"; "%d"; pkg] -+ ["query"; "-format"; "%d"; pkg] ) ) - in - if Sys.file_exists dir && Sys.is_directory dir then - dir ---- ./src/base/BaseCustom.ml -+++ ./src/base/BaseCustom.ml -@@ -31,7 +31,7 @@ - OASISExec.run ~ctxt:!BaseContext.default ~quote:false - (var_expand cmd) - (List.map -- var_expand -+ (var_expand ~quoted:true) - (args @ (Array.to_list extra_args))) - - ---- ./src/base/BaseEnv.ml -+++ ./src/base/BaseEnv.ml -@@ -69,7 +69,7 @@ - let var_lxr = Genlex.make_lexer [] - - --let rec var_expand str = -+let rec var_expand ?(quoted=false) str = - let buff = - Buffer.create ((String.length str) * 2) - in -@@ -97,7 +97,11 @@ - | [Genlex.Ident "ocaml_escaped"; Genlex.String s] -> - String.escaped s - | [Genlex.Ident nm] -> -- var_get nm -+ let s = var_get nm in -+ if quoted then -+ OASISHostPath.quote s -+ else -+ s - | _ -> - failwithf - (f_ "Unknown expression '%s' in variable expansion of %s.") ---- ./src/base/BaseEnv.mli -+++ ./src/base/BaseEnv.mli -@@ -73,8 +73,9 @@ - - (** Expand variable that can be found in string. Variable follow definition of - variable for [Buffer.add_substitute]. -+ quoted is false by default - *) --val var_expand: string -> string -+val var_expand: ?quoted:bool -> string -> string - - - (** Get variable. *) ---- ./src/base/BaseOCamlcConfig.ml -+++ ./src/base/BaseOCamlcConfig.ml -@@ -116,6 +116,9 @@ - match nm with - | "ocaml_version" -> - "version", chop_version_suffix -+ | "standard_library" -+ | "standard_library_default" -> -+ nm, ( fun x -> OASISHostPath.of_unix x) - | _ -> nm, (fun x -> x) - in - var_redefine ---- ./src/base/BaseSetup.ml -+++ ./src/base/BaseSetup.ml -@@ -93,9 +93,27 @@ - - let configure ~ctxt t args = - (* Run configure *) -+ -+ (* use-bash is an exception. It's already needed to run the -+ pre-configure script. *) -+ let rec f = function -+ | [] -> -+ begin -+ try -+ let x = Sys.getenv "USE_BASH" in -+ OASISHostPath.bash_cmd := (fun () -> x); -+ with -+ _ -> () -+ end -+ | "--use-bash"::x::_ -> -+ OASISHostPath.bash_cmd := (fun () -> x); -+ | _::tl -> f tl -+ in -+ f (Array.to_list args); - BaseCustom.hook - t.package.conf_custom - (fun () -> -+ OASISHostPath.bash_cmd := BaseStandardVar.bash_cmd; - (* Reload if preconf has changed it *) - begin - try ---- ./src/base/BaseStandardVar.ml -+++ ./src/base/BaseStandardVar.ml -@@ -135,15 +135,43 @@ - - - let (/) a b = -- if os_type () = Sys.os_type then -+ let os = os_type () in -+ if os = Sys.os_type then -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () then -+ OASISUnixPath.concat a b -+ else - Filename.concat a b -- else if os_type () = "Unix" || os_type () = "Cygwin" then -+ else if os = "Unix" || os = "Cygwin" then - OASISUnixPath.concat a b - else -- OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") -- (os_type ()) -+ OASISUtils.failwithf (f_ "Cannot handle os_type %s filename concat") os - (**/**) - -+let auto_bash = -+ lazy ( -+ try -+ let bash = OASISFileUtil.which ~plain:true "bash" in -+ let sh = Filename.concat (Filename.dirname bash) "sh.exe" in -+ if Sys.file_exists sh then -+ sh -+ else -+ bash -+ with -+ | Not_found | Sys_error _ -> "" ) -+ -+let auto_bash () = -+ if Sys.os_type <> "Win32" then -+ "" -+ else -+ Lazy.force auto_bash -+ -+let bash_cmd = -+ var_define -+ ~short_desc:(fun () -> s_ "Enforced bash shell:") -+ ~cli:CLIAuto -+ ~arg_help:"program" -+ "use_bash" -+ auto_bash - - let prefix = - p "prefix" -@@ -151,10 +179,30 @@ - (fun () -> - match os_type () with - | "Win32" -> -+ let getenv w = -+ try -+ Some(Sys.getenv w) -+ with -+ | Not_found -> None -+ in -+ let s = -+ if Sys.word_size = 64 then -+ getenv "ProgramW6432" -+ else -+ None -+ in -+ let s = -+ if s = None then -+ getenv "PROGRAMFILES" -+ else -+ s -+ in - let program_files = -- Sys.getenv "PROGRAMFILES" -+ match s with -+ | None -> "C:\\Program Files" -+ | Some x -> x - in -- program_files/(pkg_name ()) -+ OASISHostPath.of_unix (program_files/(pkg_name ())) - | _ -> - "/usr/local") - -@@ -240,7 +288,15 @@ - let docdir = - p "docdir" - (fun () -> s_ "Documentation root") -- (fun () -> "$datarootdir"/"doc"/"$pkg_name") -+ (fun () -> -+ (* TODO: (Windows only?) "$pkg_name" is not always substituted -+ * (at least if datarootdir contains spaces or other garbage) -+ * I haven't looked up why. -+ *) -+ match os_type () with -+ | "Win32" -> "$datarootdir"/"doc"/ ( pkg_name () ) -+ | _ -> "$datarootdir"/"doc"/"$pkg_name" -+ ) - - - let htmldir = -@@ -314,9 +370,10 @@ - ~short_desc:(fun () -> s_ "Remove a file.") - "rm" - (fun () -> -- match os_type () with -- | "Win32" -> "del" -- | _ -> "rm -f") -+ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then -+ "del" -+ else -+ "rm -f" ) - - - let rmdir = -@@ -324,9 +381,10 @@ - ~short_desc:(fun () -> s_ "Remove a directory.") - "rmdir" - (fun () -> -- match os_type () with -- | "Win32" -> "rd" -- | _ -> "rm -rf") -+ if not (OASISHostPath.use_bash ()) && os_type () = "Win32" then -+ "rd" -+ else -+ "rm -rf") - - - let debug = -@@ -390,14 +448,26 @@ - let has_native_dynlink = - let ocamlfind = ocamlfind () in - try -- let fn = -+ (* -format %d/%a doesn't work, because ocamlfind quotes %d -+ * and %a separatly *) -+ let fn1 = -+ OASISHostPath.ocamlfind_unquote ( -+ OASISExec.run_read_one_line -+ ~ctxt:!BaseContext.default -+ ocamlfind -+ ["query"; "-predicates"; "native"; "dynlink"; -+ "-format"; "%d"] ) -+ in -+ let fn2 = -+ OASISHostPath.ocamlfind_unquote ( - OASISExec.run_read_one_line - ~ctxt:!BaseContext.default - ocamlfind - ["query"; "-predicates"; "native"; "dynlink"; -- "-format"; "%d/%a"] -+ "-format"; "%a"] -+ ) - in -- Sys.file_exists fn -+ fn1 <> "" && fn2 <> "" && Sys.file_exists (Filename.concat fn1 fn2) - with _ -> - false - in -@@ -424,3 +494,5 @@ - rpkg := Some pkg; - List.iter (fun f -> f pkg.oasis_version) !var_cond - -+let () = -+ OASISHostPath.bash_cmd := bash_cmd ---- ./src/base/BaseStandardVar.mli -+++ ./src/base/BaseStandardVar.mli -@@ -73,6 +73,9 @@ - val systhread_supported: unit -> string - - -+ -+val bash_cmd: unit -> string -+ - (** {2 Paths} - - See {{:http://www.gnu.org/prep/standards/html_node/Directory-Variables.html} GNU standards}. ---- ./src/dynrun/OASISDynRun.ml -+++ ./src/dynrun/OASISDynRun.ml -@@ -56,7 +56,12 @@ - - let setup ~ctxt setup_t = - let tmp_setup_fn = -- Filename.temp_file (setup_t.package.name^"-setup") ".ml" in -+ if Sys.os_type <> "Win32" then -+ Filename.temp_file (setup_t.package.name^"-setup") ".ml" -+ else -+ (* dirty hack, because otherwise to_unix will fail *) -+ Filename.temp_file ~temp_dir:"." ("tmp-"^setup_t.package.name^"-setup") ".ml" -+ in - let restored = ref false in - let cleanup ~ctxt () = - if not !restored then begin ---- ./src/oasis/OASISCustom.ml -+++ ./src/oasis/OASISCustom.ml -@@ -38,14 +38,14 @@ - let pre_command = - new_field_conditional schm ("Pre"^nm^"Command") - ~default:None -- (opt command_line) -+ (opt command_line_warn) - hlp_pre - (fun pkg -> (sync pkg).pre_command) - in - let post_command = - new_field_conditional schm ("Post"^nm^"Command") - ~default:None -- (opt command_line) -+ (opt command_line_warn) - hlp_post - (fun pkg -> (sync pkg).post_command) - in ---- ./src/oasis/OASISExec.ml -+++ ./src/oasis/OASISExec.ml -@@ -25,26 +25,170 @@ - open OASISUtils - open OASISMessage - -+let is_dubious_char = function -+ | '+' | '~' | ':' | '.' | '-' | '_' | '/' | '\\' -> false -+ | c -> -+ OASISString.is_digit c = false && -+ OASISString.is_alpha c = false - --(* TODO: I don't like this quote, it is there because $(rm) foo expands to -- * 'rm -f' foo... --*) --let run ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ -+let win_quote_needed str = -+ let f = function -+ | 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' -+ | '_' | '-' | '~' | '.' | ':' | ',' | '\\' -> false -+ | _ -> true -+ in -+ str = "" || OASISString.exists f str -+ -+let is_simple_command str = -+ String.length str > 0 && -+ not (OASISString.exists is_dubious_char str) -+ -+let is_path_sep = function -+ | '/' | '\\' -> true -+ | _ -> false -+ -+let starts_with_absolute_path cmd = -+ let len = String.length cmd in -+ if len < 3 then -+ false -+ else -+ let c0 = cmd.[0] in -+ let c1 = cmd.[1] in -+ if is_path_sep c0 && is_path_sep c1 then (* network devices: "//" *) -+ true -+ else if len = 3 then -+ false -+ else (* C:\.... *) -+ OASISString.is_alpha c0 && c1 = ':' && is_path_sep cmd.[2] -+ -+let exe_exts = lazy -+ begin -+ let exts = -+ try -+ OASISString.nsplit -+ (Sys.getenv "PATHEXT") -+ ';' -+ with -+ | Not_found -> [] -+ in -+ let exts' = -+ List.filter -+ ( fun a -> a <> "" && a.[0] = '.' && a <> ".exe" ) -+ (List.map OASISString.lowercase_ascii exts) -+ in -+ ".exe"::exts' -+ end -+ -+let exe_file_exists fln = -+ Sys.file_exists fln || -+ List.exists -+ (fun a -> Sys.file_exists ( fln ^ a ) ) -+ (Lazy.force exe_exts) -+ -+ -+let quote_anyway cmd = -+ if Sys.os_type <> "Win32" then -+ false -+ else if is_simple_command cmd then -+ true -+ else -+ OASISString.exists OASISString.is_whitespace cmd && -+ starts_with_absolute_path cmd && -+ exe_file_exists cmd -+ -+ -+let run_bash ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ let fn = Filename.temp_file "oasis-" ".sh" in -+ let fn_deleted = ref false in -+ try -+ begin -+ let ch = open_out_bin fn in -+ let ch_closed = ref false in -+ try -+ begin - let cmd = -- if quote then -- if Sys.os_type = "Win32" then -- if String.contains cmd ' ' then -- (* Double the 1st double quote... win32... sigh *) -- "\""^(Filename.quote cmd) -+ if quote || quote_anyway cmd then -+ OASISHostPath.quote (OASISHostPath.of_unix cmd) -+ else -+ cmd -+ in -+ output_string ch cmd; -+ List.iter -+ ( fun s -> output_char ch ' '; output_string ch s ) -+ args ; -+ output_char ch '\n'; -+ ch_closed:=true ; -+ close_out ch; -+ let bash = !OASISHostPath.bash_cmd () in -+ let add_quotes = ref false in -+ let shell_cmd = -+ if Sys.os_type <> "Win32" then -+ Filename.quote bash -+ else -+ if win_quote_needed bash = false then -+ bash -+ else -+ begin -+ add_quotes := true; -+ Filename.quote bash -+ end -+ in -+ let cmdline_orig = String.concat " " (cmd :: args) in -+ let cmdline = -+ let s = shell_cmd ^ " " ^ (Filename.quote fn) in -+ if !add_quotes then -+ "\"" ^ s ^ "\"" - else -+ s -+ in -+ info ~ctxt (f_ "Running command '%s'") cmdline_orig; -+ let ret = Sys.command cmdline in -+ fn_deleted := true; -+ Sys.remove fn; -+ match f_exit_code, ret with -+ | None, 0 -> () -+ | None, i -> -+ failwithf -+ (f_ "Command '%s' terminated with error code %d") -+ cmdline_orig i -+ | Some f, i -> -+ f i -+ end -+ with -+ | x when !ch_closed = false -> -+ close_out_noerr ch; -+ raise x -+ end -+ with -+ | x when !fn_deleted = false -> -+ (try Sys.remove fn with _ -> () ) ; -+ raise x -+ -+let run_default ~ctxt ?f_exit_code ?(quote=true) cmd args = -+ let add_quotes = ref false in -+ let cmd = -+ if quote || quote_anyway cmd then -+ if Sys.os_type = "Win32" then -+ begin -+ if win_quote_needed cmd = false then - cmd - else -+ begin -+ add_quotes := true; -+ Filename.quote cmd -+ end -+ end -+ else - Filename.quote cmd - else - cmd - in - let cmdline = -- String.concat " " (cmd :: args) -+ let s = String.concat " " (cmd :: args) in -+ match !add_quotes with -+ | true -> "\"" ^ s ^ "\"" -+ | false -> s - in - info ~ctxt (f_ "Running command '%s'") cmdline; - match f_exit_code, Sys.command cmdline with -@@ -56,6 +200,13 @@ - | Some f, i -> - f i - -+let run ~ctxt ?f_exit_code ?quote cmd args = -+ if OASISHostPath.use_bash () && -+ (Sys.os_type <> "Win32" || not (Filename.check_suffix cmd ".bat")) -+ then -+ run_bash ~ctxt ?f_exit_code ?quote cmd args -+ else -+ run_default ~ctxt ?f_exit_code ?quote cmd args - - let run_read_output ~ctxt ?f_exit_code cmd args = - let fn = ---- ./src/oasis/OASISFileTemplate.ml -+++ ./src/oasis/OASISFileTemplate.ml -@@ -496,6 +496,12 @@ - if Sys.file_exists bak then begin - info ~ctxt (f_ "Restore file '%s' with backup file '%s'.") - fn bak; -+ if Sys.os_type = "Win32" then ( -+ try -+ Sys.remove fn -+ with -+ | Sys_error _ -> () -+ ); - Sys.rename bak fn - end else begin - warning ~ctxt ---- ./src/oasis/OASISFileUtil.ml -+++ ./src/oasis/OASISFileUtil.ml -@@ -84,7 +84,7 @@ - ) alternatives - - --let which ~ctxt prg = -+let which ?(plain=false) ?ctxt prg = - let path_sep = - match Sys.os_type with - | "Win32" -> -@@ -96,11 +96,19 @@ - let exec_ext = - match Sys.os_type with - | "Win32" -> -- "" :: (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep) -+ "" :: (List.map -+ OASISString.lowercase_ascii -+ (OASISString.nsplit (Sys.getenv "PATHEXT") path_sep)) - | _ -> - [""] - in -+ let p = - find_file ~case_sensitive:false [path_lst; [prg]] exec_ext -+ in -+ if plain then -+ p -+ else -+ OASISHostPath.of_unix p - - - (**/**) -@@ -117,35 +125,54 @@ - dn - - --let q = Filename.quote -+let q s = OASISHostPath.quote (OASISHostPath.of_unix s) - (**/**) - -- - let cp ~ctxt ?(recurse=false) src tgt = - if recurse then -- match Sys.os_type with -- | "Win32" -> -- OASISExec.run ~ctxt -- "xcopy" [q src; q tgt; "/E"] -- | _ -> -- OASISExec.run ~ctxt -- "cp" ["-r"; q src; q tgt] -+ (* -+ 'xcopy /E' and 'cp -r' don't have the same semantic! -+ -dir2 does exist: -+ xcopy dir dir2 /E -> copys content of dir into dir2 (dir2/dir doesn't exist!) -+ cp -r dir dir2 -> copys dir to dir2 (dir2/dir does exist!) -+ -dir2 doesn't exist: -+ xcopy dir dir2 /E -> request on command line, if dir2 is an directory or file. -+ cp -r dir dir2 -> dir and dir2 have the same content (dir2/dir doesn't exist) -+ Probably, there are even more differences,.... -+ *) -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then -+ let tgt_real = -+ if Sys.file_exists tgt = false then -+ begin -+ OASISExec.run ~ctxt "md" [q tgt]; -+ tgt -+ end - else -- OASISExec.run ~ctxt -- (match Sys.os_type with -- | "Win32" -> "copy" -- | _ -> "cp") -- [q src; q tgt] -- -+ let base = Filename.basename src in -+ if base = "." then -+ tgt -+ else -+ let tgt_real = Filename.concat tgt base in -+ if Sys.file_exists tgt_real = false then -+ OASISExec.run ~ctxt "md" [q tgt_real]; -+ tgt_real -+ in -+ OASISExec.run ~ctxt "xcopy" [q src; q tgt_real; "/E" ; "/Q" ; "/Y"] -+ else -+ OASISExec.run ~ctxt "cp" ["-r"; q src; q tgt] -+ else if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then -+ OASISExec.run ~ctxt "copy" [q src; q tgt ; "/Y"] -+ else -+ OASISExec.run ~ctxt "cp" [q src; q tgt] - - let mkdir ~ctxt tgt = - OASISExec.run ~ctxt -- (match Sys.os_type with -- | "Win32" -> "md" -- | _ -> "mkdir") -+ ( if Sys.os_type = "Win32" && not (OASISHostPath.use_bash ()) then -+ "md" -+ else -+ "mkdir" ) - [q tgt] - -- - let rec mkdir_parent ~ctxt f tgt = - let tgt = - fix_dir tgt -@@ -171,10 +198,9 @@ - - let rmdir ~ctxt tgt = - if Sys.readdir tgt = [||] then begin -- match Sys.os_type with -- | "Win32" -> -+ if Sys.os_type = "Win32" && OASISHostPath.use_bash () = false then - OASISExec.run ~ctxt "rd" [q tgt] -- | _ -> -+ else - OASISExec.run ~ctxt "rm" ["-r"; q tgt] - end else begin - OASISMessage.error ~ctxt ---- ./src/oasis/OASISFileUtil.mli -+++ ./src/oasis/OASISFileUtil.mli -@@ -44,8 +44,7 @@ - - (** Find real filename of an executable. - *) --val which: ctxt:OASISContext.t -> host_filename -> host_filename -- -+val which: ?plain:bool -> ?ctxt:OASISContext.t -> host_filename -> host_filename - - (** Copy a file. - *) ---- ./src/oasis/OASISHostPath.ml -+++ ./src/oasis/OASISHostPath.ml -@@ -27,6 +27,118 @@ - - module Unix = OASISUnixPath - -+let bash_cmd = ref ( fun () -> "" ) -+ -+let use_bash () = ( !bash_cmd () ) <> "" -+ -+ -+(* generic quote and unixquote are taken from ocaml source *) -+let generic_quote quotequote s = -+ let l = String.length s in -+ let b = Buffer.create (l + 20) in -+ Buffer.add_char b '\''; -+ for i = 0 to l - 1 do -+ if s.[i] = '\'' then -+ Buffer.add_string b quotequote -+ else -+ Buffer.add_char b s.[i] -+ done; -+ Buffer.add_char b '\''; -+ Buffer.contents b -+ -+let unixquote = generic_quote "'\\''" -+ -+let win = Sys.os_type = "Win32" -+ -+let quote str = -+ if win && use_bash () then -+ unixquote str -+ else -+ quote str -+ -+(* uniform_path (only called, if Sys.os_type = "Win32") -+ * - enforces uniform path seperators -+ * - strips trailing slashes (exceptions in case of C:\ and / ) -+ * - removes (some) unnecessary file components like ./././ -+ *) -+ -+let get_naccu accu str first pos = -+ (* I assume c//d is identic to c/d -+ * the only exception (Network devices \\xyz\asdf) -+ * is covered in uniform_path -+ *) -+ if first = pos then -+ accu -+ else -+ let nlen = pos - first in -+ let nstr = String.sub str first nlen in -+ (* test/././ is the same as test *) -+ if nlen = 1 && nstr = "." then -+ accu -+ (* a/b/../ is the same as a *) -+ else if nlen = 2 && nstr = ".." then -+ match accu with -+ | [] -> [ nstr ] -+ | ".."::_ -> nstr::accu -+ | hd::tl -> tl -+ else -+ nstr::accu -+ -+let is_path_sep = function -+ | '\\' | '/' -> true -+ | _ -> false -+ -+ -+let uniform_path path_sep = function -+ | "" -> "" (* Raise an exception? Or an possible intermediate result? -+ * Filename.basename and dirname also don't raise exceptions *) -+ | str -> -+ let rec iter accu str len first pos = -+ if pos >= len then -+ List.rev (get_naccu accu str first pos) -+ else -+ let next = succ pos in -+ match is_path_sep str.[pos] with -+ | true -> iter (get_naccu accu str first pos) str len next next -+ | false -> iter accu str len first next -+ in -+ let is_unix_root = is_path_sep str.[0] in -+ let len = String.length str in -+ let next_sep = len > 1 && is_path_sep str.[1] in -+ let is_network_root = is_unix_root && next_sep in -+ let is_currel = str.[0] = '.' && ( next_sep || len = 1 ) in -+ let l = iter [] str len 0 0 in -+ (* Trailing slashes are normally stripped. -+ * This is not possible in case of root folders -+ * Sys.file_exists "C:" is false, Sys.file_exists "C:\\" true -+ *) -+ let l_min = -+ match l with -+ | [] -> [ "" ] -+ | _ -> l -+ in -+ let l = -+ if is_network_root then -+ ""::""::l_min -+ else if is_unix_root then -+ ""::l_min -+ else if is_currel then -+ "."::l -+ else -+ match l with -+ | s :: [] -> -+ (* root folders like C:\ *) -+ if String.length s = 2 && s.[1] = ':' && -+ len > 2 && is_path_sep str.[2] -+ then -+ s :: [ "" ] -+ else -+ l -+ | _ -> l -+ in -+ String.concat path_sep l -+ -+ - - let make = - function -@@ -40,22 +152,31 @@ - match Sys.os_type with - | "Unix" | "Cygwin" -> ufn - | "Win32" -> -- make -- (List.map -- (fun p -> -- if p = Unix.current_dir_name then -- current_dir_name -- else if p = Unix.parent_dir_name then -- parent_dir_name -+ let path_sep = -+ if use_bash () then -+ "/" - else -- p) -- (OASISString.nsplit ufn '/')) -+ "\\" -+ in -+ uniform_path path_sep ufn - | os_type -> - OASISUtils.failwithf - (f_ "Don't know the path format of os_type %S when translating unix \ - filename. %S") - os_type ufn - -+(* see findlib's src/findlib/frontend.ml for details *) -+let ocamlfind_unquote dir = -+ match Sys.os_type with -+ | "Cygwin" -+ | "Win32" -> -+ let len = String.length dir in -+ if len < 3 || dir.[0] <> '"' || dir.[len - 1] <> '"' || -+ String.contains dir ' ' = false then -+ dir -+ else -+ String.sub dir 1 (len - 2) -+ | _ -> dir - - (* END EXPORT *) - ---- ./src/oasis/OASISHostPath.mli -+++ ./src/oasis/OASISHostPath.mli -@@ -29,6 +29,27 @@ - open OASISTypes - - -+(** -+ The function should return an unix like shell, -+ that will be used to execute external commands. -+ -+ The default function returns an empty string. -+ (system default will be used) -+*) -+val bash_cmd : (unit -> host_filename) ref -+ -+(** True, if bash_cmd_program will return a non-empty -+ host_filename *) -+val use_bash: unit -> bool -+ -+ -+(** -+ On windows, the Unix quote function -+ will be used, if use_base () is true. -+ Otherwise identic to Filename.quote -+*) -+val quote: string -> string -+ - (** Create a filename out of its components. - *) - val make: host_filename list -> host_filename -@@ -57,5 +78,9 @@ - val add_extension: host_filename -> string -> host_filename - - -+(** Unquote functions for filenames from 'ocamlfind query ...' *) -+val ocamlfind_unquote: string -> string -+ -+ - (** Map for host filename. {b Not exported.} *) - module Map: OASISUtils.MapExt.S with type key = host_filename ---- ./src/oasis/OASISObject.ml -+++ ./src/oasis/OASISObject.ml -@@ -54,6 +54,7 @@ - ~ctxt - ~is_native - ~source_file_exists -+ ~ext_obj - (cs, bs, obj) = - - let find_module ext modul = -@@ -67,12 +68,12 @@ - | [ m ] -> (find_module ".cmi" m, - find_module ".cmo" m, - find_module ".cmx" m, -- find_module ".o" m, -+ find_module ext_obj m, - fun x -> x) - | _ -> ([cs.cs_name ^ ".cmi"], - [cs.cs_name ^ ".cmo"], - [cs.cs_name ^ ".cmx"], -- [cs.cs_name ^ ".o"], -+ [cs.cs_name ^ ext_obj], - OASISUnixPath.concat bs.bs_path) - in - List.map (List.map f) ( ---- ./src/oasis/OASISObject.mli -+++ ./src/oasis/OASISObject.mli -@@ -49,6 +49,7 @@ - ctxt:OASISContext.t -> - is_native:bool -> - source_file_exists:(unix_filename -> bool) -> -+ ext_obj:string -> - common_section * build_section * object_ -> - unix_filename list list - ---- ./src/oasis/OASISString.ml -+++ ./src/oasis/OASISString.ml -@@ -169,18 +169,34 @@ - else - s - --(* END EXPORT *) -+let exists f str = -+ let rec iter i = -+ if i < 0 then -+ false -+ else if f str.[i] then -+ true -+ else -+ iter (pred i) -+ in -+ iter (String.length str - 1) - --(* TODO: replace lowercase_ascii, capitalize_ascii and uncapitalize_ascii -- functions by String.*_ascii function when OCaml minimal version will be -- 4.03.0. -- *) -+let is_digit c = -+ '0' <= c && c <= '9' -+ -+let is_alpha c = -+ ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') - - let is_whitespace = - function - | ' ' | '\r' | '\n' | '\t' -> true - | _ -> false - -+(* END EXPORT *) -+ -+(* TODO: replace lowercase_ascii, capitalize_ascii and uncapitalize_ascii -+ functions by String.*_ascii function when OCaml minimal version will be -+ 4.03.0. -+ *) - - let tokenize ?(is_whitespace=is_whitespace) ?(tokens=[]) str = - let lst = ref [] in ---- ./src/oasis/OASISValues.ml -+++ ./src/oasis/OASISValues.ml -@@ -492,6 +492,38 @@ - space_separated.print (cmd :: args)) - } - -+let command_line_warn = -+ let c = command_line in -+ let is_unix_centric_operator = function -+ | "&&" | ";" | "||" -> true -+ | _ -> false -+ in -+ -+ let parse = ( fun ~ctxt s -> -+ let (cmd,args) as cmd_args = c.parse ~ctxt s in -+ if String.length cmd > 0 && cmd.[0] <> '$' then -+ begin -+ OASISMessage.warning -+ ~ctxt -+ "External commands may differ from platform to platform (%s)" -+ cmd -+ end; -+ if List.exists is_unix_centric_operator args then -+ begin -+ OASISMessage.warning -+ ~ctxt -+ "Command line '%s' seems to be *nix specific" -+ (String.concat "" (cmd::args)) -+ end; -+ cmd_args ) -+ in -+ { -+ parse ; -+ update = c.update; -+ print = c.print; -+ } -+ -+ - - let command_line_options = - { parse = (fun ~ctxt:_ s -> POSIXShell.split s); ---- ./src/oasis/OASISValues.mli -+++ ./src/oasis/OASISValues.mli -@@ -183,6 +183,9 @@ - val command_line: (string * string list) t - - -+(** As above, but emmit warnings by dubious constructs *) -+val command_line_warn : (string * string list) t -+ - (** Arguments of command line programs. See {!OASISUtils.POSIX.split} - for more information. *) - val command_line_options: string list t ---- ./src/oasis/OASISVersion.ml -+++ ./src/oasis/OASISVersion.ml -@@ -38,8 +38,8 @@ - - - (* Range of allowed characters *) --let is_digit c = '0' <= c && c <= '9' --let is_alpha c = ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') -+let is_digit = OASISString.is_digit -+let is_alpha = OASISString.is_alpha - let is_special = function | '.' | '+' | '-' | '~' -> true | _ -> false - - ---- ./src/plugins/custom/CustomPlugin.ml -+++ ./src/plugins/custom/CustomPlugin.ml -@@ -200,7 +200,7 @@ - schema - id - nm -- command_line -+ command_line_warn - (* TODO: remove when fun () -> s_ be replaced *) - (fun () -> s_ hlp) - data (fun _ t -> t.cmd_main) -@@ -211,7 +211,7 @@ - id - (nm^"Clean") - ~default:None -- (opt command_line) -+ (opt command_line_warn) - (* TODO: remove when fun () -> s_ be replaced *) - (fun () -> s_ hlp_clean) - data (fun _ t -> t.cmd_clean) -@@ -222,7 +222,7 @@ - id - (nm^"Distclean") - ~default:None -- (opt command_line) -+ (opt command_line_warn) - (* TODO: remove when fun () -> s_ be replaced *) - (fun () -> s_ hlp_distclean) - data (fun _ t -> t.cmd_distclean) -@@ -426,7 +426,7 @@ - id - "Clean" - ~default:None -- (opt command_line) -+ (opt command_line_warn) - (fun () -> - s_ "Run command to clean test step.") - test_data (fun _ t -> t.cmd_clean) -@@ -437,7 +437,7 @@ - id - "Distclean" - ~default:None -- (opt command_line) -+ (opt command_line_warn) - (fun () -> - s_ "Run command to distclean test step.") - test_data (fun _ t -> t.cmd_distclean) ---- ./src/plugins/extra/devfiles/DevFilesPlugin.ml -+++ ./src/plugins/extra/devfiles/DevFilesPlugin.ml -@@ -201,7 +201,7 @@ - Printf.bprintf buff - "setup.exe: setup.ml%s\n\ - \tocamlfind ocamlopt -o $@%s setup.ml || ocamlfind ocamlc -o $@%s setup.ml || true\n\ -- \t$(RM) setup.cmi setup.cmo setup.cmx setup.o setup.cmt\n\n" -+ \t$(RM) setup.cmi setup.cmo setup.cmx setup.o setup.obj setup.cmt\n\n" - makefile_setup_deps packages packages; - end; - Buffer.add_string buff (".PHONY: "^(String.concat " " targets)^"\n"); -@@ -226,7 +226,7 @@ - Printf.sprintf - "if [ ! -e setup.exe ] || [ _oasis -nt setup.exe ] || [ setup.ml -nt setup.exe ] || [ configure -nt setup.exe ]; then\n \ - ocamlfind ocamlopt -o setup.exe%s setup.ml || ocamlfind ocamlc -o setup.exe%s setup.ml || exit 1\n \ -- rm -f setup.cmi setup.cmo setup.cmx setup.o setup.cmt\n\ -+ rm -f setup.cmi setup.cmo setup.cmx setup.o setup.obj setup.cmt\n\ - fi\n\ - ./setup.exe -configure \"$@\"" - packages packages ---- ./src/plugins/internal/InternalInstallPlugin.ml -+++ ./src/plugins/internal/InternalInstallPlugin.ml -@@ -47,12 +47,21 @@ - let install_findlib_ev = "install-findlib" - - --(* TODO: this can be more generic and used elsewhere. *) --let win32_max_command_line_length = 8000 -- -- - let split_install_command ocamlfind findlib_name meta files = -- if Sys.os_type = "Win32" then -+ if Sys.os_type <> "Win32" then -+ ["install" :: findlib_name :: meta :: files] -+ else -+ let f s = -+ OASISHostPath.quote ( OASISHostPath.of_unix s ) -+ in -+ let files = List.map f files in -+ let meta = f meta in -+ let win32_max_command_line_length = -+ if OASISHostPath.use_bash () = false then -+ 7900 -+ else -+ 30000 -+ in - (* Arguments for the first command: *) - let first_args = ["install"; findlib_name; meta] in - (* Arguments for remaining commands: *) -@@ -110,10 +119,11 @@ - let cmds = split other_args others in - cmd :: cmds - in -+ if files = [] then -+ [ first_args ] -+ else - (* The first command does not use -add: *) - split first_args files -- else -- ["install" :: findlib_name :: meta :: files] - - - let install = ---- ./src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml -+++ ./src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml -@@ -93,7 +93,9 @@ - with Not_found -> s - - (* ocamlfind command *) --let ocamlfind x = S[Sh (exec_from_conf "ocamlfind"); x] -+let ocamlfind x = S[Sh ( -+ Ocamlbuild_pack.Shell.quote_filename_if_needed -+ (exec_from_conf "ocamlfind") ); x] - - (* This lists all supported packages. *) - let find_packages () = ---- ./src/plugins/ocamlbuild/OCamlbuildCommon.ml -+++ ./src/plugins/ocamlbuild/OCamlbuildCommon.ml -@@ -251,7 +251,7 @@ - end else begin - let extra_args = - match t.plugin_tags with -- | Some tags -> "-plugin-tags" :: ("'" ^ tags ^ "'") :: t.extra_args -+ | Some tags -> "-plugin-tags" :: ("\"" ^ tags ^ "\"") :: t.extra_args - | None -> t.extra_args - in - extra_args, ctxt ---- ./src/plugins/omake/OMakeEquip.ml -+++ ./src/plugins/omake/OMakeEquip.ml -@@ -197,6 +197,15 @@ - subst [] ' ' 0 - - -+let file_exists_case fln = -+ if Sys.file_exists fln = false then -+ false -+ else -+ let dir = Filename.dirname fln in -+ let base = Filename.basename fln in -+ let files = Array.to_list (Sys.readdir dir) in -+ List.mem base files -+ - let fixup_module_case dir name = - let name_cap = OASISUnixPath.capitalize_file name in - let name_uncap = OASISUnixPath.uncapitalize_file name in -@@ -205,7 +214,7 @@ - List.find - (fun (name,ext) -> - let file = OASISUnixPath.concat dir (name ^ ext) in -- Sys.file_exists -+ file_exists_case - (OASISHostPath.of_unix file) - ) - [ name_cap, ".ml"; ---- ./test/fake-ocamlfind/FakeOCamlfind.ml -+++ ./test/fake-ocamlfind/FakeOCamlfind.ml -@@ -30,4 +30,18 @@ - in - let args = Sys.argv in - args.(0) <- real_ocamlfind; -+ if Sys.os_type <> "Win32" then - Unix.execv real_ocamlfind args -+ else -+ let pid = -+ Unix.create_process -+ args.(0) -+ args -+ Unix.stdin -+ Unix.stdout -+ Unix.stderr -+ in -+ match snd (Unix.waitpid [] pid) with -+ | Unix.WEXITED n -> exit n -+ | Unix.WSIGNALED _ -> exit 2 (* like OCaml's uncaught exceptions *) -+ | Unix.WSTOPPED _ -> exit 1 ---- ./test/test-common/TestCommon.ml -+++ ./test/test-common/TestCommon.ml -@@ -222,6 +222,17 @@ - ~ctxt ?chdir ?foutput ?env ?exit_code ~use_stderr:true - cmd args - -+let file_exists_strict sfs fln = -+ if sfs#file_exists fln = false then -+ false -+ else if Sys.os_type <> "Win32" then -+ true -+ else -+ let fln_s = sfs#string_of_filename fln in -+ let dir = Filename.dirname fln_s in -+ let base = Filename.basename fln_s in -+ let dirs = Array.to_list (Sys.readdir dir) in -+ List.mem base dirs - - let assert_oasis_cli - ~ctxt ---- ./test/test-common/TestFullUtils.ml -+++ ./test/test-common/TestFullUtils.ml -@@ -35,11 +35,11 @@ - - - let exec fn = -- if Sys.os_type = "Win32" then -- fn^".exe" -- else -+ if Sys.os_type <> "Win32" || -+ Filename.check_suffix (OASISString.lowercase_ascii fn) ".exe" then - fn -- -+ else -+ fn ^ ".exe" - - (* Print a short version of the filename *) - let fn_printer ~root fn = FilePath.make_relative root fn -@@ -192,9 +192,14 @@ - - - (* Create tree structure for a test project and copy it there. *) --let setup_test_directories test_ctxt ~is_native ~native_dynlink dn = -+let setup_test_directories ?tmpdir_prefix test_ctxt ~is_native ~native_dynlink dn = - (* Create a temporary directory. *) -- let tmpdir = bracket_tmpdir test_ctxt in -+ let prefix = -+ match tmpdir_prefix with -+ | None -> "ounit-" -+ | Some x -> x -+ in -+ let tmpdir = bracket_tmpdir ~prefix test_ctxt in - - (* Copy sources in this temporary directory. *) - let src_dir = -@@ -256,7 +261,7 @@ - (* Precompile setup.ml to speedup the tests, if possible. *) - let rec precompile_setup_ml test_ctxt t = - let setup_exe = -- Filename.concat t.precompile_dir (Filename.chop_extension setup_ml) -+ exec (Filename.concat t.precompile_dir (Filename.chop_extension setup_ml)) - in - let full_setup_ml = in_src_dir t setup_ml in - -@@ -280,16 +285,17 @@ - let timer = timer_start "precompile_setup_ml" in - let exit_code = - FileUtil.cp ~force:FileUtil.Force [full_setup_ml] t.precompile_dir; -- Sys.command ("ocamlfind ocamlc -o "^setup_exe^" " -- ^(Filename.concat t.precompile_dir setup_ml)) -+ let f1 = Filename.quote setup_exe in -+ let f2 = Filename.quote (Filename.concat t.precompile_dir setup_ml) in -+ Sys.command ("ocamlfind ocamlc -o "^f1^" "^f2) - in - timer_stop test_ctxt timer; - if exit_code = 0 then begin - (* Compilation succeed, update the digest *) -- logf test_ctxt `Info "Compilation of setup.ml succeeds."; -+ logf test_ctxt `Info "Compilation of setup.ml (%S) succeeds." setup_exe; - `Done_for (Digest.file full_setup_ml) - end else begin -- logf test_ctxt `Warning "Compilation of setup.ml doesn't succeed."; -+ logf test_ctxt `Warning "Compilation of setup.ml (%S) doesn't succeed." setup_exe; - `Not_possible - end - in -@@ -308,7 +314,7 @@ - - | `Done_for digest -> - if (Digest.file full_setup_ml) = digest then begin -- Some (exec setup_exe) -+ Some (setup_exe) - end else begin - t.setup_ml_precompiled <- compile (); - precompile_setup_ml test_ctxt t -@@ -538,6 +544,10 @@ - | InstalledBin of filename list - - -+ -+let system = -+ (BaseOCamlcConfig.var_define "system") () -+ - (* Register a set of files expected to be built. *) - let register_installed_files test_ctxt t installed_files_lst = - let rec file_list = -@@ -605,7 +615,12 @@ - acc - | "a" -> - let fn = -- if is_win32 then FilePath.replace_extension fn "lib" else fn -+ if not is_win32 then -+ fn -+ else -+ match system with -+ | "mingw" | "mingw64" -> fn -+ | _ -> FilePath.replace_extension fn "lib" - in - if (* library matching the .cmxa *) - t.is_native || -@@ -617,7 +632,7 @@ - (* no .a matching bytecode only library. *) - acc - | "so" when is_win32 -> -- (FilePath.replace_extension fn ".dll") :: acc -+ (FilePath.replace_extension fn "dll") :: acc - | "html" when - FilePath.basename fn = "index_extensions.html" - && OASISVersion.StringVersion.compare t.ocaml_version "4.02" < 0 -> ---- ./test/test-main/TestOASISLibrary.ml -+++ ./test/test-main/TestOASISLibrary.ml -@@ -44,7 +44,7 @@ - ~ctxt - (cs, bs, lib) - (fun fn -> -- sfs#file_exists (OASISFileSystem.of_unix_filename fn)) -+ file_exists_strict sfs (OASISFileSystem.of_unix_filename fn)) - in - (List.flatten (List.rev_map snd lst)) @ acc - | Object _ | Executable _ | Flag _ | SrcRepo _ | Test _ | Doc _ -> ---- ./test/test-main/TestOASISObject.ml -+++ ./test/test-main/TestOASISObject.ml -@@ -44,7 +44,7 @@ - ~ctxt - (cs, bs, obj) - (fun fn -> -- sfs#file_exists (OASISFileSystem.of_unix_filename fn)) -+ file_exists_strict sfs (OASISFileSystem.of_unix_filename fn)) - in - (List.flatten (List.rev_map snd lst)) @ acc - | Library _ | Executable _ | Flag _ | SrcRepo _ | Test _ | Doc _ -> ---- ./test/test-main/TestPluginOCamlbuild.ml -+++ ./test/test-main/TestPluginOCamlbuild.ml -@@ -27,6 +27,26 @@ - open OASISFileTemplate - open TestFullUtils - -+let fln_normalize = -+ if Sys.os_type <> "Win32" then -+ fun a -> a -+ else -+ fun str -> -+ let str = -+ let str_lower = OASISString.lowercase_ascii str in -+ if Filename.check_suffix str_lower ".exe" then -+ Filename.chop_extension str ^ ".exe" -+ else -+ str -+ in -+ let len = String.length str in -+ let b = Buffer.create len in -+ for i = 0 to len - 1 do -+ match String.get str i with -+ | '/' -> Buffer.add_char b '\\' -+ | c -> Buffer.add_char b c -+ done; -+ Buffer.contents b - - let all_tests = - [ -@@ -52,10 +72,12 @@ - let env = BaseEnvLight.load ~filename:(in_src_dir t "setup.data") () in - let () = - assert_equal ~printer:(Printf.sprintf "%S") -- fake_ocamlfind -- (BaseEnvLight.var_get "ocamlfind" env); -+ (fln_normalize fake_ocamlfind) -+ (fln_normalize (BaseEnvLight.var_get "ocamlfind" env)); - run_ocaml_setup_ml ~extra_env test_ctxt t ["-build"] - in -+ (* ocamlbuild is called with -no-log on win32 *) -+ skip_if (Sys.os_type = "Win32") "UNIX test"; - let build_log = - file_content (in_src_dir t (Filename.concat "_build" "_log")) - in -@@ -63,11 +85,15 @@ - List.iter - (fun line -> - if OASISString.contains ~what:"ocamlfind" line then -+ let what = -+ Ocamlbuild_pack.Shell.quote_filename_if_needed -+ fake_ocamlfind -+ in - assert_bool - (Printf.sprintf - "line %S should starts with %S" - line fake_ocamlfind) -- (OASISString.starts_with ~what:fake_ocamlfind line)) -+ (OASISString.starts_with ~what line)) - (OASISString.nsplit build_log '\n')); - - "use-ocamlfind", diff --git a/repo/win32/packages/upstream/oasis.0.4.10/files/oasis.install b/repo/win32/packages/upstream/oasis.0.4.10/files/oasis.install deleted file mode 100644 index 075d45291..000000000 --- a/repo/win32/packages/upstream/oasis.0.4.10/files/oasis.install +++ /dev/null @@ -1,5 +0,0 @@ -etc: [ - "setup.ml" - "setup.data" - "setup.log" -] diff --git a/repo/win32/packages/upstream/oasis.0.4.10/opam b/repo/win32/packages/upstream/oasis.0.4.10/opam deleted file mode 100644 index 75471df27..000000000 --- a/repo/win32/packages/upstream/oasis.0.4.10/opam +++ /dev/null @@ -1,33 +0,0 @@ -opam-version: "1.2" -maintainer: "Sylvain Le Gall " -authors: [ "Sylvain Le Gall" ] -license: "LGPL-2.1 with OCaml linking exception" -homepage: "http://oasis.forge.ocamlcore.org/" -dev-repo: "git://github.com/ocaml/oasis.git" -bug-reports: "https://github.com/ocaml/oasis/issues" -build: [ - ["ocaml" "setup.ml" "-configure" "--prefix" prefix] - ["ocaml" "setup.ml" "-build"] -] -install: ["ocaml" "setup.ml" "-install"] -remove: [ - ["ocaml" "%{etc}%/oasis/setup.ml" "-C" "%{etc}%/oasis" "-uninstall"] -] -build-doc: [ "ocaml" "setup.ml" "-doc" ] -depends: [ - "base-unix" - "ocamlbuild" - "ocamlfind" {>= "1.3.1"} - "ocamlify" {build} - "ocamlmod" {build} -] -depopts: [ - "benchmark" -] -conflicts: [ - "benchmark" {< "1.2"} - "oasis-mirage" {= "0.3.0"} - "oasis-mirage" {= "0.3.0a"} -] -available: [ ocaml-version >= "3.12.1" ] -patches: "oasis-0.4.10.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/oasis.0.4.10/url b/repo/win32/packages/upstream/oasis.0.4.10/url deleted file mode 100644 index b9fcd1cc0..000000000 --- a/repo/win32/packages/upstream/oasis.0.4.10/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://forge.ocamlcore.org/frs/download.php/1694/oasis-0.4.10.tar.gz" -checksum: "84de67188d6c1ba4499aee6d4cb8cb54" diff --git a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/url b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/url deleted file mode 100644 index 9d8b523d3..000000000 --- a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/url +++ /dev/null @@ -1,3 +0,0 @@ -http: - "https://github.com/let-def/ocaml-migrate-parsetree/archive/1.0.1.tar.gz" -checksum: "b2abce65e3e9057af3fe96fa8e9d088b" diff --git a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/descr b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.2/descr similarity index 100% rename from repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/descr rename to repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.2/descr diff --git a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.2/opam similarity index 72% rename from repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam rename to repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.2/opam index 76acd5c48..ab6476b0a 100644 --- a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.1/opam +++ b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.2/opam @@ -4,15 +4,17 @@ authors: [ "Frédéric Bour " "Jérémie Dimino " ] +license: "LGPL-2.1" homepage: "https://github.com/let-def/ocaml-migrate-parsetree" bug-reports: "https://github.com/let-def/ocaml-migrate-parsetree/issues" -license: "LGPL-2.1" -tags: ["syntax" "org:ocamllabs"] dev-repo: "git://github.com/let-def/ocaml-migrate-parsetree.git" -build: ["jbuilder" "build" "-p" name "-j" jobs] +tags: [ "syntax" "org:ocamllabs" ] +build: [ + ["jbuilder" "build" "-p" name "-j" jobs] +] depends: [ "result" "ocamlfind" {build} - "jbuilder" {build & >= "1.0+beta7"} + "jbuilder" {build & >= "1.0+beta10"} ] -available: [ocaml-version >= "4.02.0"] +available: ocaml-version >= "4.02.0" diff --git a/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.2/url b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.2/url new file mode 100644 index 000000000..2d6a9f515 --- /dev/null +++ b/repo/win32/packages/upstream/ocaml-migrate-parsetree.1.0.2/url @@ -0,0 +1,3 @@ +http: + "https://github.com/let-def/ocaml-migrate-parsetree/archive/v1.0.2.tar.gz" +checksum: "7bb4f5a054a27fffb4b925dbde38816b" diff --git a/repo/win32/packages/upstream/ocamlify.0.0.1/descr b/repo/win32/packages/upstream/ocamlify.0.0.1/descr deleted file mode 100644 index a3241a781..000000000 --- a/repo/win32/packages/upstream/ocamlify.0.0.1/descr +++ /dev/null @@ -1,5 +0,0 @@ -Include files in OCaml code -OCamlify allows to create OCaml source code by including whole files -into OCaml string or string list. The code generated can be compiled -as a standard OCaml file. It allows embedding external resources as -OCaml code. diff --git a/repo/win32/packages/upstream/ocamlify.0.0.1/files/ocamlify.install b/repo/win32/packages/upstream/ocamlify.0.0.1/files/ocamlify.install deleted file mode 100644 index 133e9cb64..000000000 --- a/repo/win32/packages/upstream/ocamlify.0.0.1/files/ocamlify.install +++ /dev/null @@ -1 +0,0 @@ -bin: ["_build/src/ocamlify"] diff --git a/repo/win32/packages/upstream/ocamlify.0.0.1/opam b/repo/win32/packages/upstream/ocamlify.0.0.1/opam deleted file mode 100644 index 545466712..000000000 --- a/repo/win32/packages/upstream/ocamlify.0.0.1/opam +++ /dev/null @@ -1,11 +0,0 @@ -opam-version: "1.2" -maintainer: "https://github.com/ocaml/opam-repository/issues" -build: [ - ["ocaml" "setup.ml" "-configure" "--prefix" prefix] - ["ocaml" "setup.ml" "-build"] -] -depends: [ - "ocamlfind" - "ocamlbuild" {build} -] -install: ["ocaml" "setup.ml" "-install"] diff --git a/repo/win32/packages/upstream/ocamlify.0.0.1/url b/repo/win32/packages/upstream/ocamlify.0.0.1/url deleted file mode 100644 index 6f3f2bb8b..000000000 --- a/repo/win32/packages/upstream/ocamlify.0.0.1/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://forge.ocamlcore.org/frs/download.php/379/ocamlify-0.0.1.tar.gz" -checksum: "bcd97ad0f7203019019997197451dbf0" diff --git a/repo/win32/packages/upstream/ocamlmod.0.0.8/descr b/repo/win32/packages/upstream/ocamlmod.0.0.8/descr deleted file mode 100644 index b15d3452c..000000000 --- a/repo/win32/packages/upstream/ocamlmod.0.0.8/descr +++ /dev/null @@ -1 +0,0 @@ -Generate OCaml modules from source files diff --git a/repo/win32/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml b/repo/win32/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml deleted file mode 100644 index 0d23853fc..000000000 --- a/repo/win32/packages/upstream/ocamlmod.0.0.8/files/_oasis_remove_.ml +++ /dev/null @@ -1,7 +0,0 @@ -open Printf - -let () = - let dir = Sys.argv.(1) in - (try Sys.chdir dir - with _ -> eprintf "Cannot change directory to %s\n%!" dir); - exit (Sys.command "ocaml setup.ml -uninstall") diff --git a/repo/win32/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install b/repo/win32/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install deleted file mode 100644 index c6cfc2de5..000000000 --- a/repo/win32/packages/upstream/ocamlmod.0.0.8/files/ocamlmod.install +++ /dev/null @@ -1,6 +0,0 @@ -etc: [ - "setup.ml" - "setup.data" - "setup.log" - "_oasis_remove_.ml" -] diff --git a/repo/win32/packages/upstream/ocamlmod.0.0.8/opam b/repo/win32/packages/upstream/ocamlmod.0.0.8/opam deleted file mode 100644 index 43e897304..000000000 --- a/repo/win32/packages/upstream/ocamlmod.0.0.8/opam +++ /dev/null @@ -1,26 +0,0 @@ -opam-version: "1.2" -maintainer: "opam-devel@lists.ocaml.org" -homepage: "https://forge.ocamlcore.org/projects/ocamlmod/" -bug-reports: "https://forge.ocamlcore.org/tracker/?group_id=244" -dev-repo: "darcs://https://forge.ocamlcore.org/anonscm/darcs/ocamlmod/ocamlmod" -authors: [ "Sylvain Le Gall" ] -license: "LGPL-2.1 with OCaml linking exception" -build: [ - ["ocaml" "setup.ml" "-configure" "--prefix" prefix] - ["ocaml" "setup.ml" "-build"] -] -install: ["ocaml" "setup.ml" "-install"] -remove: [ - ["ocaml" "%{etc}%/ocamlmod/_oasis_remove_.ml" "%{etc}%/ocamlmod"] -] -build-test: [ - ["ocaml" "setup.ml" "-configure" "--enable-tests"] - ["ocaml" "setup.ml" "-build"] - ["ocaml" "setup.ml" "-test"] {os!="win32"} - ["ocaml" "setup.ml" "-test" "-ocamlmod" "_build/src/ocamlmod.byte"] {os="win32"} -] -depends: [ - "ocamlfind" {build} - "ounit" {test & >= "2.0.0"} - "ocamlbuild" {build} -] diff --git a/repo/win32/packages/upstream/ocamlmod.0.0.8/url b/repo/win32/packages/upstream/ocamlmod.0.0.8/url deleted file mode 100644 index 8708b34e9..000000000 --- a/repo/win32/packages/upstream/ocamlmod.0.0.8/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://forge.ocamlcore.org/frs/download.php/1544/ocamlmod-0.0.8.tar.gz" -checksum: "411e5b3f3321945fc53d9377a1a17f91" diff --git a/repo/win32/packages/upstream/ppx_ast.v0.9.1/opam b/repo/win32/packages/upstream/ppx_ast.v0.9.1/opam index 24c5055c5..6cb14be19 100644 --- a/repo/win32/packages/upstream/ppx_ast.v0.9.1/opam +++ b/repo/win32/packages/upstream/ppx_ast.v0.9.1/opam @@ -13,4 +13,4 @@ depends: [ "ocaml-compiler-libs" {>= "v0.9" & < "v0.10"} "ocaml-migrate-parsetree" {>= "0.4"} ] -available: [ ocaml-version >= "4.03.0" ] +available: [ ocaml-version >= "4.03.0" & ocaml-version < "4.06.0" ] diff --git a/repo/win32/packages/upstream/ptime.0.8.3/descr b/repo/win32/packages/upstream/ptime.0.8.3/descr deleted file mode 100644 index f77827c8d..000000000 --- a/repo/win32/packages/upstream/ptime.0.8.3/descr +++ /dev/null @@ -1,20 +0,0 @@ -POSIX time for OCaml - -Ptime has platform independent POSIX time support in pure OCaml. It -provides a type to represent a well-defined range of POSIX timestamps -with picosecond precision, conversion with date-time values, -conversion with [RFC 3339 timestamps][rfc3339] and pretty printing to a -human-readable, locale-independent representation. - -The additional Ptime_clock library provides access to a system POSIX -clock and to the system's current time zone offset. - -Ptime is not a calendar library. - -Ptime depends on the `result` compatibility package. Ptime_clock -depends on your system library. Ptime_clock's optional JavaScript -support depends on [js_of_ocaml][jsoo]. Ptime and its libraries are -distributed under the ISC license. - -[rfc3339]: http://tools.ietf.org/html/rfc3339 -[jsoo]: http://ocsigen.org/js_of_ocaml/ diff --git a/repo/win32/packages/upstream/ptime.0.8.3/opam b/repo/win32/packages/upstream/ptime.0.8.3/opam deleted file mode 100644 index b34f28961..000000000 --- a/repo/win32/packages/upstream/ptime.0.8.3/opam +++ /dev/null @@ -1,21 +0,0 @@ -opam-version: "1.2" -maintainer: "Daniel Bünzli " -authors: ["Daniel Bünzli "] -homepage: "http://erratique.ch/software/ptime" -doc: "http://erratique.ch/software/ptime/doc" -dev-repo: "http://erratique.ch/repos/ptime.git" -bug-reports: "https://github.com/dbuenzli/ptime/issues" -tags: [ "time" "posix" "system" "org:erratique" ] -license: "ISC" -available: [ ocaml-version >= "4.01.0"] -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "result" -] -depopts: [ "js_of_ocaml" ] -build:[[ - "ocaml" "pkg/pkg.ml" "build" - "--pinned" "%{pinned}%" - "--with-js_of_ocaml" "%{js_of_ocaml:installed}%" ]] diff --git a/repo/win32/packages/upstream/ptime.0.8.3/url b/repo/win32/packages/upstream/ptime.0.8.3/url deleted file mode 100644 index 0043089e1..000000000 --- a/repo/win32/packages/upstream/ptime.0.8.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "http://erratique.ch/software/ptime/releases/ptime-0.8.3.tbz" -checksum: "bf84f6bfedce30349cffc9eb52ac7574" \ No newline at end of file diff --git a/repo/win32/packages/upstream/tls.0.8.0/descr b/repo/win32/packages/upstream/tls.0.8.0/descr deleted file mode 100644 index 6b52ac617..000000000 --- a/repo/win32/packages/upstream/tls.0.8.0/descr +++ /dev/null @@ -1,15 +0,0 @@ -Transport Layer Security purely in OCaml - -Transport Layer Security (TLS) is probably the most widely deployed security -protocol on the Internet. It provides communication privacy to prevent -eavesdropping, tampering, and message forgery. Furthermore, it optionally -provides authentication of the involved endpoints. TLS is commonly deployed for -securing web services ([HTTPS](http://tools.ietf.org/html/rfc2818)), emails, -virtual private networks, and wireless networks. - -TLS uses asymmetric cryptography to exchange a symmetric key, and optionally -authenticate (using X.509) either or both endpoints. It provides algorithmic -agility, which means that the key exchange method, symmetric encryption -algorithm, and hash algorithm are negotiated. - -Read [further](https://nqsb.io) and our [Usenix Security 2015 paper](https://usenix15.nqsb.io). \ No newline at end of file diff --git a/repo/win32/packages/upstream/tls.0.8.0/opam b/repo/win32/packages/upstream/tls.0.8.0/opam deleted file mode 100644 index 885801c41..000000000 --- a/repo/win32/packages/upstream/tls.0.8.0/opam +++ /dev/null @@ -1,55 +0,0 @@ -opam-version: "1.2" -name: "tls" -homepage: "https://github.com/mirleft/ocaml-tls" -dev-repo: "https://github.com/mirleft/ocaml-tls.git" -bug-reports: "https://github.com/mirleft/ocaml-tls/issues" -doc: "https://mirleft.github.io/ocaml-tls/doc" -author: ["David Kaloper " "Hannes Mehnert "] -maintainer: ["Hannes Mehnert " "David Kaloper "] -license: "BSD2" - -build: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" - "--tests" "false" - "--with-lwt" "%{lwt:installed}%" - "--with-mirage" "%{mirage-flow-lwt+mirage-kv-lwt+mirage-clock:installed}%" ] -] -build-test: [ - [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" - "--tests" "true" - "--with-lwt" "%{lwt:installed}%" - "--with-mirage" "%{mirage-flow-lwt+mirage-kv-lwt+mirage-clock:installed}%" ] - ["ocaml" "pkg/pkg.ml" "test"] -] - -depends: [ - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "ppx_tools" {build} - "ppx_deriving" {build} - "ppx_sexp_conv" {build} - "result" - "ppx_cstruct" {build} - "cstruct" {>= "1.9.0"} - "sexplib" - "nocrypto" {>= "0.5.4"} - "x509" {>= "0.5.0"} - "ounit" {test} - "ptime" {>= "0.8.1"} (* only necessary for mirage subpackage, but unable to express this here *) -] -depopts: [ - "lwt" - "mirage-flow-lwt" - "mirage-kv-lwt" - "mirage-clock" -] -conflicts: [ - "lwt" {<"2.4.8"} - "mirage-net-xen" {<"1.3.0"} - "mirage-types" {<"3.0.0"} - "sexplib" {= "v0.9.0"} -] - -tags: [ "org:mirage"] -available: [ ocaml-version >= "4.02.2" ] diff --git a/repo/win32/packages/upstream/tls.0.8.0/url b/repo/win32/packages/upstream/tls.0.8.0/url deleted file mode 100644 index 2e5aa559a..000000000 --- a/repo/win32/packages/upstream/tls.0.8.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirleft/ocaml-tls/releases/download/0.8.0/tls-0.8.0.tbz" -checksum: "c81f72d53d0551a3d792d275a1ea095f" diff --git a/repo/win32/packages/upstream/vchan.3.0.0/descr b/repo/win32/packages/upstream/vchan.3.0.0/descr deleted file mode 100644 index c79c90334..000000000 --- a/repo/win32/packages/upstream/vchan.3.0.0/descr +++ /dev/null @@ -1,4 +0,0 @@ -Xen Vchan implementation -Vchan is a high performance inter-domain communications protocol using -shared memory. This implementation runs in both userspace and -kernelspace using Mirage. diff --git a/repo/win32/packages/upstream/vchan.3.0.0/opam b/repo/win32/packages/upstream/vchan.3.0.0/opam deleted file mode 100644 index 3829a9617..000000000 --- a/repo/win32/packages/upstream/vchan.3.0.0/opam +++ /dev/null @@ -1,37 +0,0 @@ -opam-version: "1.2" -maintainer: "jonathan.ludlam@eu.citrix.com" -authors: [ - "Vincent Bernardoff" - "Jon Ludlam" - "David Scott" -] -homepage: "http://github.com/mirage/ocaml-vchan" -bug-reports: "http://github.com/mirage/ocaml-vchan/issues" -dev-repo: "http://github.com/mirage/ocaml-vchan.git" -doc: "http://mirage.github.io/ocaml-vchan" -license: "ISC" - -build: [ - [ "jbuilder" "subst"] {pinned} - [ "jbuilder" "build" "-p" name "-j" jobs ] -] - -depends: [ - "ocamlfind" {build} - "jbuilder" {build & >="1.0+beta9"} - "lwt" {>= "2.5.0"} - "cstruct" {>= "3.0.0"} - "ppx_tools" {build} - "ppx_sexp_conv" {build & >="v0.9"} - "ppx_cstruct" {build} - "io-page" - "mirage-flow-lwt" {>= "1.0.0"} - "xenstore" {>= "1.2.2"} - "xenstore_transport" - "sexplib" - "cmdliner" - "result" - "ounit" {test} -] -available: [ocaml-version >= "4.03.0"] -tags: "org:mirage" diff --git a/repo/win32/packages/upstream/vchan.3.0.0/url b/repo/win32/packages/upstream/vchan.3.0.0/url deleted file mode 100644 index 21a38a30f..000000000 --- a/repo/win32/packages/upstream/vchan.3.0.0/url +++ /dev/null @@ -1,2 +0,0 @@ -http: "https://github.com/mirage/ocaml-vchan/releases/download/3.0.0/vchan-3.0.0.tbz" -checksum: "8be9a2d7df23fdf8983daecef3454b5d" diff --git a/repo/win32/packages/upstream/x509.0.5.3/descr b/repo/win32/packages/upstream/x509.0.5.3/descr deleted file mode 100644 index e8211a6c6..000000000 --- a/repo/win32/packages/upstream/x509.0.5.3/descr +++ /dev/null @@ -1,4 +0,0 @@ -X.509 certificate (RFC5280) library - -Library for X.509 certificate parsing, serialization and authentication. -Supports path validation (RFC5280) and hostname verification (RFC6125). diff --git a/repo/win32/packages/upstream/x509.0.5.3/opam b/repo/win32/packages/upstream/x509.0.5.3/opam deleted file mode 100644 index 67b9333e4..000000000 --- a/repo/win32/packages/upstream/x509.0.5.3/opam +++ /dev/null @@ -1,40 +0,0 @@ -opam-version: "1.2" -name: "x509" -homepage: "https://github.com/mirleft/ocaml-x509" -dev-repo: "https://github.com/mirleft/ocaml-x509.git" -bug-reports: "https://github.com/mirleft/ocaml-x509/issues" -authors: [ "David Kaloper " "Hannes Mehnert " ] -maintainer: [ "Hannes Mehnert " "David Kaloper " ] -license: "BSD2" - -build: [ - [ "./configure" "--prefix" prefix ] - [ make ] -] -install: [ make "install" ] -remove: [ "ocamlfind" "remove" "x509" ] - -depends: [ - "ocamlfind" {build} - "oasis" {build} - "ocamlbuild" {build} - "ppx_deriving" {build} - "ppx_sexp_conv" {build} - "cstruct" {>= "1.6.0"} - "sexplib" - "asn1-combinators" {>= "0.1.1"} - "nocrypto" {>= "0.5.3"} - "base-bytes" - "ounit" {test} - "cstruct-unix" {test} -] -conflicts: [ - "sexplib" {= "v0.9.0"} -] -build-test: [ - [ "./configure" "--%{ounit:enable}%-tests" ] - [ make "test" ] -] - -tags: [ "org:mirage" ] -available: [ ocaml-version >= "4.02.2" ] diff --git a/repo/win32/packages/upstream/x509.0.5.3/url b/repo/win32/packages/upstream/x509.0.5.3/url deleted file mode 100644 index 4e2ef2e42..000000000 --- a/repo/win32/packages/upstream/x509.0.5.3/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirleft/ocaml-x509/archive/0.5.3.tar.gz" -checksum: "8efe2bca5a80f7d35e730980fbaebc5c" diff --git a/repo/win32/packages/upstream/xenstore.1.4.0/descr b/repo/win32/packages/upstream/xenstore.1.4.0/descr deleted file mode 100644 index 80cdcd00e..000000000 --- a/repo/win32/packages/upstream/xenstore.1.4.0/descr +++ /dev/null @@ -1 +0,0 @@ -Xenstore protocol clients and server diff --git a/repo/win32/packages/upstream/xenstore.1.4.0/opam b/repo/win32/packages/upstream/xenstore.1.4.0/opam deleted file mode 100644 index 4d4b1cabe..000000000 --- a/repo/win32/packages/upstream/xenstore.1.4.0/opam +++ /dev/null @@ -1,29 +0,0 @@ -opam-version: "1.2" -maintainer: "dave@recoil.org" -authors: [ - "Vincent Hanquez" - "Thomas Gazagnaire" - "Dave Scott" - "Anil Madhavapeddy" - "Vincent Bernardoff" -] -homepage: "https://github.com/mirage/ocaml-xenstore" -bug-reports: "https://github.com/mirage/ocaml-xenstore/issues" -dev-repo: "https://github.com/mirage/ocaml-xenstore.git" -doc: "https://mirage.github.io/ocaml-xenstore" - -build: [ - [ "jbuilder" "subst"] {pinned} - [ "jbuilder" "build" "-p" name "-j" jobs ] -] - -depends: [ - "ocamlfind" {build} - "jbuilder" {build & >="1.0+beta9"} - "cstruct" {>= "2.4.0"} - "ppx_cstruct" {build} - "ppx_tools" {build} - "lwt" - "ounit" {build} -] -available: [ ocaml-version >= "4.02.0" ] diff --git a/repo/win32/packages/upstream/xenstore.1.4.0/url b/repo/win32/packages/upstream/xenstore.1.4.0/url deleted file mode 100644 index 491c9d972..000000000 --- a/repo/win32/packages/upstream/xenstore.1.4.0/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/mirage/ocaml-xenstore/releases/download/1.4.0/xenstore-1.4.0.tbz" -checksum: "28ccfd531f6b4db58e6ed476162d0746" diff --git a/repo/win32/packages/upstream/xenstore_transport.0.9.6/descr b/repo/win32/packages/upstream/xenstore_transport.0.9.6/descr deleted file mode 100644 index 33dd1f168..000000000 --- a/repo/win32/packages/upstream/xenstore_transport.0.9.6/descr +++ /dev/null @@ -1,6 +0,0 @@ -Low-level libraries for connecting to a xenstore service on a xen host. - -These libraries contain the IO functions for communicating with a -xenstore service on a xen host. One subpackage deals with regular Unix -threads and another deals with Lwt co-operative threads. - diff --git a/repo/win32/packages/upstream/xenstore_transport.0.9.6/opam b/repo/win32/packages/upstream/xenstore_transport.0.9.6/opam deleted file mode 100644 index 1d912af99..000000000 --- a/repo/win32/packages/upstream/xenstore_transport.0.9.6/opam +++ /dev/null @@ -1,35 +0,0 @@ -opam-version: "1.2" -authors: [ - "Christian Lindig" - "David Scott" - "Euan Harris" - "John Else" - "Jon Ludlam" - "Jonathan Davies" - "Marcello Seri" - "Si Beaumont" - "Thomas Sanders" - "Vincent Bernardoff" -] -maintainer: "dave@recoil.org" -homepage: "http://github.com/xapi-project/ocaml-xenstore-clients" -bug-reports: "http://github.com/xapi-project/ocaml-xenstore-clients/issues" -dev-repo: "http://github.com/xapi-project/ocaml-xenstore-clients.git" -doc: "http://xapi-project.github.io/ocaml-xenstore-clients" -license: "LGPL" - -tags: [ - "org:mirage" - "org:xapi-project" -] -build: [ - [ "jbuilder" "subst"] {pinned} - [ "jbuilder" "build" "-p" name "-j" jobs ] -] - -depends: [ - "ocamlfind" {build} - "jbuilder" {build & >="1.0+beta9"} - "lwt" - "xenstore" {> "1.2.1"} -] diff --git a/repo/win32/packages/upstream/xenstore_transport.0.9.6/url b/repo/win32/packages/upstream/xenstore_transport.0.9.6/url deleted file mode 100644 index 9a3cda369..000000000 --- a/repo/win32/packages/upstream/xenstore_transport.0.9.6/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/xapi-project/ocaml-xenstore-clients/archive/0.9.6.tar.gz" -checksum: "36412ce160ee14c61a1ef782de12f16e" diff --git a/repo/win32/packages/upstream/zarith.1.5/descr b/repo/win32/packages/upstream/zarith.1.5/descr deleted file mode 100644 index 0eb288aba..000000000 --- a/repo/win32/packages/upstream/zarith.1.5/descr +++ /dev/null @@ -1,5 +0,0 @@ -Implements arithmetic and logical operations over arbitrary-precision integers -The Zarith library implements arithmetic and logical operations over -arbitrary-precision integers. It uses GMP to efficiently implement -arithmetic over big integers. Small integers are represented as Caml -unboxed integers, for speed and space economy. diff --git a/repo/win32/packages/upstream/zarith.1.5/files/Zarith-release-1.5.patch b/repo/win32/packages/upstream/zarith.1.5/files/Zarith-release-1.5.patch deleted file mode 100644 index 1a5f4d0c3..000000000 --- a/repo/win32/packages/upstream/zarith.1.5/files/Zarith-release-1.5.patch +++ /dev/null @@ -1,236 +0,0 @@ ---- ./configure -+++ ./configure -@@ -2,11 +2,11 @@ - - # configuration script - --# This file is part of the Zarith library -+# This file is part of the Zarith library - # http://forge.ocamlcore.org/projects/zarith . - # It is distributed under LGPL 2 licensing, with static linking exception. - # See the LICENSE file included in the distribution. --# -+# - # Copyright (c) 2010-2011 Antoine Miné, Abstraction project. - # Abstraction is part of the LIENS (Laboratoire d'Informatique de l'ENS), - # a joint laboratory by: -@@ -22,7 +22,24 @@ - gmp='auto' - perf='no' - --ar='ar' -+#ar='ar' -+ar_help=$(ocamlc -config | tr -d '\015' | awk '/^system/ {print $$2}') -+case "$ar_help" in -+ *mingw64*) -+ if which x86_64-w64-mingw32-ar >/dev/null 2>&1 ; then -+ ar=x86_64-w64-mingw32-ar -+ fi -+ ;; -+ *mingw*) -+ if which i686-w64-mingw32-ar >/dev/null 2>&1 ; then -+ ar=i686-w64-mingw32-ar -+ fi -+ ;; -+ *) -+ ar='ar' -+ ;; -+esac -+ - ocaml='ocaml' - ocamlc='ocamlc' - ocamlopt='ocamlopt' -@@ -75,7 +92,7 @@ - # parse arguments - while : ; do - case "$1" in -- "") -+ "") - break;; - -installdir|--installdir) - installdir="$2" -@@ -186,7 +203,7 @@ - if test ! -x tmp.out; then r=0; fi - rm -f tmp.out - if test $r -eq 0; then echo "not found"; else echo "found"; fi -- return $r -+ return $r - } - - -@@ -204,13 +221,32 @@ - searchbinreq "$CC" - cc="$CC" - ccopt="$CFLAGS" --elif ! searchbin 'gcc'; then -+else -+ cc= -+ case "$system_help" in -+ *mingw64*) -+ if which x86_64-w64-mingw32-gcc >/dev/null 2>&1 ; then -+ cc=x86_64-w64-mingw32-gcc -+ ccopt="-O3 -Wall -Wextra $CFLAGS" -+ fi -+ ;; -+ *mingw*) -+ if which i686-w64-mingw32-gcc >/dev/null 2>&1 ; then -+ cc=i686-w64-mingw32-gcc -+ ccopt="-O3 -Wall -Wextra $CFLAGS" -+ fi -+ ;; -+ esac -+ if [ -z "$cc" ]; then -+ if ! searchbin 'gcc'; then - cc='gcc' - ccopt="-O3 -Wall -Wextra $CFLAGS" --else -+ else - searchbinreq 'cc' - cc='cc' - ccopt="-O3 -Wall -Wextra $CFLAGS" -+ fi -+ fi - fi - - # optional native-code generation -@@ -234,7 +270,7 @@ - - # directories - --if test "$ocamllibdir" = "auto"; then ocamllibdir=`ocamlc -where`; fi -+if test "$ocamllibdir" = "auto"; then ocamllibdir=`ocamlc -where | tr -d '\r'`; fi - - # fails on Cygwin: - # if test ! -f "$ocamllibdir/caml/mlvalues.h" -@@ -258,10 +294,10 @@ - # installation method - - searchbin ocamlfind --if test $? -eq 1 -a $ocamlfind != "no"; then -+if test $? -eq 1 -a $ocamlfind != "no"; then - instmeth='findlib' - if test "$installdir" = "auto" -- then installdir=`ocamlfind printconf destdir`; fi -+ then installdir=`ocamlfind printconf destdir | tr -d '\r'`; fi - else - searchbin install - if test $? -eq 1; then instmeth='install' -@@ -280,7 +316,7 @@ - - # auto-detect host - --if test "x$host" = 'xauto'; then -+if test "x$host" = 'xauto'; then - searchbin uname - if test $? -eq 0; then host='none' - else host=`. ./config.guess` -@@ -298,7 +334,7 @@ - i486-*linux-gnu|i686-*linux-gnu|i486-kfreebsd-gnu) - ccdef="-DZ_ELF -DZ_DOT_LABEL_PREFIX $ccdef" - arch='i686';; -- i686-*cygwin) -+ i686-*cygwin|x86_64-*cygwin) - if test "x$wordsize" = "x64"; then - ccdef="-DZ_COFF $ccdef" - arch='x86_64_mingw64' -@@ -306,7 +342,7 @@ - ccdef="-DZ_UNDERSCORE_PREFIX -DZ_COFF $ccdef" - arch='i686' - fi -- ;; -+ ;; - i386-*darwin* | x86_64-*darwin*) - ccdef="-DZ_UNDERSCORE_PREFIX -DZ_MACOS $ccdef" - if test "x$wordsize" = "x64"; then -@@ -326,7 +362,7 @@ - ;; - none) - ;; -- *) -+ *) - echo "unknown host $host";; - esac - -@@ -341,7 +377,7 @@ - checkinc gmp.h - if test $? -eq 1; then - checklib gmp -- if test $? -eq 1; then -+ if test $? -eq 1; then - gmp='OK' - cclib="$cclib -lgmp" - ccdef="-DHAS_GMP $ccdef" -@@ -352,7 +388,7 @@ - checkinc mpir.h - if test $? -eq 1; then - checklib mpir -- if test $? -eq 1; then -+ if test $? -eq 1; then - gmp='OK' - cclib="$cclib -lmpir" - ccdef="-DHAS_MPIR $ccdef" -@@ -386,6 +422,20 @@ - ;; - esac - -+exec_suffix='' -+so_suffix='.so' -+systype=`uname -s` -+case "$systype" in -+ CYGWIN*) -+ exec_suffix='.exe' -+ so_suffix='.dll' -+ ;; -+ MINGW*) -+ exec_suffix='.exe' -+ so_suffix='.dll' -+ ;; -+esac -+ - # dump Makefile - - cat > Makefile <" -authors: "Xavier Leroy" -homepage: "https://github.com/ocaml/Zarith" -bug-reports: "https://github.com/ocaml/Zarith/issues" -dev-repo: "https://github.com/ocaml/Zarith.git" -build: [ - ["./configure"] { os != "openbsd" & os != "freebsd" & os != "darwin"} - ["sh" "-exc" "LDFLAGS=\"$LDFLAGS -L/usr/local/lib\" CFLAGS=\"$CFLAGS -I/usr/local/include\" ./configure"] { os = "openbsd" | os = "freebsd" } - ["sh" "-exc" "LDFLAGS=\"$LDFLAGS -L/opt/local/lib -L/usr/local/lib\" CFLAGS=\"$CFLAGS -I/opt/local/include -I/usr/local/include\" ./configure"] { os = "darwin" } - [make] -] -install: [ - [make "install"] -] -remove: ["ocamlfind" "remove" "zarith"] -depends: [ - "ocamlfind" - "conf-gmp" - "conf-perl" {build} -] -patches: "Zarith-release-1.5.patch" {os = "win32"} diff --git a/repo/win32/packages/upstream/zarith.1.5/url b/repo/win32/packages/upstream/zarith.1.5/url deleted file mode 100644 index 647addc57..000000000 --- a/repo/win32/packages/upstream/zarith.1.5/url +++ /dev/null @@ -1,2 +0,0 @@ -archive: "https://github.com/ocaml/Zarith/archive/release-1.5.tar.gz" -checksum: "2b037ad0e8145bf62979ea96e7a0ce24" From 76bdeebbf3468d8c1dd06d15d23b496279d3461e Mon Sep 17 00:00:00 2001 From: David Scott Date: Thu, 3 Aug 2017 13:24:28 +0100 Subject: [PATCH 30/32] Remove watermarking for hostnet, as it is the exact same version as vpnkit Signed-off-by: Thomas Gazagnaire --- Makefile | 2 -- src/bin/depends.ml.in | 2 -- src/bin/main.ml | 8 ++++---- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index cbdd84f4d..226b6f345 100644 --- a/Makefile +++ b/Makefile @@ -30,8 +30,6 @@ src/bin/depends.ml: src/bin/depends.ml.in cp src/bin/depends.ml src/bin/depends.tmp sed -e 's/££VERSION££/$(shell git rev-parse HEAD)/g' src/bin/depends.tmp > src/bin/depends.ml cp src/bin/depends.ml src/bin/depends.tmp - sed -e 's/££HOSTNET_PINNED££/$(shell opam info hostnet -f pinned)/g' src/bin/depends.tmp > src/bin/depends.ml - cp src/bin/depends.ml src/bin/depends.tmp sed -e 's/££HVSOCK_PINNED££/$(shell opam info hvsock -f pinned)/g' src/bin/depends.tmp > src/bin/depends.ml vpnkit.tgz: vpnkit.exe diff --git a/src/bin/depends.ml.in b/src/bin/depends.ml.in index 6d1c0b4aa..579e2d398 100644 --- a/src/bin/depends.ml.in +++ b/src/bin/depends.ml.in @@ -1,6 +1,4 @@ let version = "££VERSION££" -let hostnet_version = "%{hostnet:version}%" -let hostnet_pinned = "££HOSTNET_PINNED££" let uwt_version = "%{uwt:version}%" let hvsock_version = "%{hvsock:version}%" let hvsock_pinned = "££HVSOCK_PINNED££" diff --git a/src/bin/main.ml b/src/bin/main.ml index 98aada3d8..3ea9dfb48 100644 --- a/src/bin/main.ml +++ b/src/bin/main.ml @@ -231,10 +231,10 @@ module Main(Host: Sig.HOST) = struct (try Sys.set_signal Sys.sigpipe Sys.Signal_ignore with Invalid_argument _ -> ()); Log.info (fun f -> - f "vpnkit version %s with hostnet version %s %s uwt version %s hvsock \ - version %s %s" - Depends.version Depends.hostnet_version Depends.hostnet_pinned - Depends.uwt_version Depends.hvsock_version Depends.hvsock_pinned + f "vpnkit version %s with uwt version %s hvsock version %s %s" + Depends.version + Depends.uwt_version + Depends.hvsock_version Depends.hvsock_pinned ); Log.info (fun f -> f "System SOMAXCONN is %d" !Utils.somaxconn); Utils.somaxconn := From c4d7e96362b502ac4d690fc9069fb97b9657cdb6 Mon Sep 17 00:00:00 2001 From: David Scott Date: Thu, 3 Aug 2017 13:52:48 +0100 Subject: [PATCH 31/32] opam: depend on mirage-dns Signed-off-by: David Scott --- vpnkit.opam | 1 + 1 file changed, 1 insertion(+) diff --git a/vpnkit.opam b/vpnkit.opam index 03f7028e7..3fe2eedec 100644 --- a/vpnkit.opam +++ b/vpnkit.opam @@ -64,6 +64,7 @@ depends: [ "mirage-console-unix" "mirage-clock-unix" "cohttp-lwt" {>= "0.99.0"} + "mirage-dns" "protocol-9p-unix" {>= "0.11.2"} "mirage-vnetif" {>= "0.4.0"} "uuidm" From 333d9a0785b0b4652a48ebc9bc7f8a1fdbc89f29 Mon Sep 17 00:00:00 2001 From: David Scott Date: Thu, 3 Aug 2017 13:54:03 +0100 Subject: [PATCH 32/32] AUTO: Update upstream packages Signed-off-by: David Scott --- .../packages/upstream/mirage-dns.3.0.0/descr | 29 +++++++++++++++++++ .../packages/upstream/mirage-dns.3.0.0/opam | 24 +++++++++++++++ .../packages/upstream/mirage-dns.3.0.0/url | 2 ++ .../packages/upstream/mirage-dns.3.0.0/descr | 29 +++++++++++++++++++ .../packages/upstream/mirage-dns.3.0.0/opam | 24 +++++++++++++++ .../packages/upstream/mirage-dns.3.0.0/url | 2 ++ 6 files changed, 110 insertions(+) create mode 100644 repo/darwin/packages/upstream/mirage-dns.3.0.0/descr create mode 100644 repo/darwin/packages/upstream/mirage-dns.3.0.0/opam create mode 100644 repo/darwin/packages/upstream/mirage-dns.3.0.0/url create mode 100644 repo/win32/packages/upstream/mirage-dns.3.0.0/descr create mode 100644 repo/win32/packages/upstream/mirage-dns.3.0.0/opam create mode 100644 repo/win32/packages/upstream/mirage-dns.3.0.0/url diff --git a/repo/darwin/packages/upstream/mirage-dns.3.0.0/descr b/repo/darwin/packages/upstream/mirage-dns.3.0.0/descr new file mode 100644 index 000000000..84cefc577 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-dns.3.0.0/descr @@ -0,0 +1,29 @@ +DNS client and server implementation in pure OCaml + +This is a pure OCaml implementation of the DNS protocol. It is intended to be +a reasonably high-performance implementation, but clarity is preferred rather +than low-level performance hacks. + +[![Build Status](https://travis-ci.org/mirage/ocaml-dns.svg?branch=master)](https://travis-ci.org/mirage/ocaml-dns) + +To build it, please use the [OPAM](https://opam.ocaml.org) package manager (1.2+): + + opam pin add dns . + +This will install the dependencies needed and give you a working development +version of the library. + +Packages: + +* `lib/` contains the core DNS protocol, which is packed into the `Dns` module. +* `lib_test/` contains unit tests and sample uses of the library. + In particular, `time_server` is a simple dynamic responder. + +Areas that need work: + +* We need an Lwt-based client iterative resolver + Patches for this are highly welcome! +* EDNS0 extensions +* DNSSEC extensions (using [nocrypto](https://github.com/mirleft/ocaml-nocrypto/)) +* TC bit and TCP fallback +* mDNS resolver \ No newline at end of file diff --git a/repo/darwin/packages/upstream/mirage-dns.3.0.0/opam b/repo/darwin/packages/upstream/mirage-dns.3.0.0/opam new file mode 100644 index 000000000..31af65175 --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-dns.3.0.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/ocaml-dns" +dev-repo: "https://github.com/mirage/ocaml-dns.git" +bug-reports: "https://github.com/mirage/ocaml-dns/issues" +license: "ISC" +authors: [ "Anil Madhavapeddy" "Tim Deegan" "Richard Mortier" "Haris Rotsos" + "David Sheets" "Thomas Gazagnaire" "Luke Dunstan" ] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "dns-lwt" + "duration" + "mirage-stack-lwt" + "mirage-kv-lwt" + "mirage-time-lwt" + "mirage-profile" {>="0.8.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/darwin/packages/upstream/mirage-dns.3.0.0/url b/repo/darwin/packages/upstream/mirage-dns.3.0.0/url new file mode 100644 index 000000000..6eb7b78ec --- /dev/null +++ b/repo/darwin/packages/upstream/mirage-dns.3.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-dns/releases/download/v1.0.0/dns-1.0.0.tbz" +checksum: "5fe4efe11671253950f89036a6cc1a21" \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-dns.3.0.0/descr b/repo/win32/packages/upstream/mirage-dns.3.0.0/descr new file mode 100644 index 000000000..84cefc577 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-dns.3.0.0/descr @@ -0,0 +1,29 @@ +DNS client and server implementation in pure OCaml + +This is a pure OCaml implementation of the DNS protocol. It is intended to be +a reasonably high-performance implementation, but clarity is preferred rather +than low-level performance hacks. + +[![Build Status](https://travis-ci.org/mirage/ocaml-dns.svg?branch=master)](https://travis-ci.org/mirage/ocaml-dns) + +To build it, please use the [OPAM](https://opam.ocaml.org) package manager (1.2+): + + opam pin add dns . + +This will install the dependencies needed and give you a working development +version of the library. + +Packages: + +* `lib/` contains the core DNS protocol, which is packed into the `Dns` module. +* `lib_test/` contains unit tests and sample uses of the library. + In particular, `time_server` is a simple dynamic responder. + +Areas that need work: + +* We need an Lwt-based client iterative resolver + Patches for this are highly welcome! +* EDNS0 extensions +* DNSSEC extensions (using [nocrypto](https://github.com/mirleft/ocaml-nocrypto/)) +* TC bit and TCP fallback +* mDNS resolver \ No newline at end of file diff --git a/repo/win32/packages/upstream/mirage-dns.3.0.0/opam b/repo/win32/packages/upstream/mirage-dns.3.0.0/opam new file mode 100644 index 000000000..31af65175 --- /dev/null +++ b/repo/win32/packages/upstream/mirage-dns.3.0.0/opam @@ -0,0 +1,24 @@ +opam-version: "1.2" +maintainer: "anil@recoil.org" +homepage: "https://github.com/mirage/ocaml-dns" +dev-repo: "https://github.com/mirage/ocaml-dns.git" +bug-reports: "https://github.com/mirage/ocaml-dns/issues" +license: "ISC" +authors: [ "Anil Madhavapeddy" "Tim Deegan" "Richard Mortier" "Haris Rotsos" + "David Sheets" "Thomas Gazagnaire" "Luke Dunstan" ] + +build: [ + ["jbuilder" "subst"] {pinned} + ["jbuilder" "build" "-p" name "-j" jobs] +] + +depends: [ + "jbuilder" {>="1.0+beta9"} + "dns-lwt" + "duration" + "mirage-stack-lwt" + "mirage-kv-lwt" + "mirage-time-lwt" + "mirage-profile" {>="0.8.0"} +] +available: [ocaml-version >= "4.03.0"] diff --git a/repo/win32/packages/upstream/mirage-dns.3.0.0/url b/repo/win32/packages/upstream/mirage-dns.3.0.0/url new file mode 100644 index 000000000..6eb7b78ec --- /dev/null +++ b/repo/win32/packages/upstream/mirage-dns.3.0.0/url @@ -0,0 +1,2 @@ +archive: "https://github.com/mirage/ocaml-dns/releases/download/v1.0.0/dns-1.0.0.tbz" +checksum: "5fe4efe11671253950f89036a6cc1a21" \ No newline at end of file