Browse Source

Add the ability to use system version of Node (#97)

* added @deriving package
* Add `system` node
* show system is active on fnm ls
remotes/origin/add-simple-redirecting-site
Gal Schlezinger 6 years ago committed by GitHub
parent
commit
fa65276474
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5322
      esy.lock/index.json
  2. 2
      esy.lock/opam/base.v0.11.1/opam
  3. 6
      esy.lock/opam/base64.3.2.0/opam
  4. 6
      esy.lock/opam/cohttp-lwt.2.0.0/opam
  5. 12
      esy.lock/opam/cohttp.2.1.2/opam
  6. 2
      esy.lock/opam/conduit-lwt-unix.1.4.0/opam
  7. 4
      esy.lock/opam/conduit-lwt.1.4.0/opam
  8. 4
      esy.lock/opam/conduit.1.4.0/opam
  9. 4
      esy.lock/opam/conf-m4.1/opam
  10. 10
      esy.lock/opam/conf-openssl.1/files/osx-build.sh
  11. 6
      esy.lock/opam/conf-openssl.1/opam
  12. 5
      esy.lock/opam/conf-pkg-config.1.1/opam
  13. 2
      esy.lock/opam/conf-which.1/opam
  14. 4
      esy.lock/opam/configurator.v0.11.0/opam
  15. 25
      esy.lock/opam/cppo_ocamlbuild.1.6.0/opam
  16. 7
      esy.lock/opam/dune.1.9.1/opam
  17. 31
      esy.lock/opam/fmt.0.8.6/opam
  18. 8
      esy.lock/opam/ipaddr.3.1.0/opam
  19. 45
      esy.lock/opam/logs.0.6.3/opam
  20. 68
      esy.lock/opam/lwt.4.2.1/opam
  21. 33
      esy.lock/opam/lwt_ppx.1.2.2/opam
  22. 19
      esy.lock/opam/macaddr.3.1.0/opam
  23. 2
      esy.lock/opam/merlin-extend.0.3/opam
  24. 24
      esy.lock/opam/mmap.1.1.0/opam
  25. 2
      esy.lock/opam/ocaml-migrate-parsetree.1.2.0/opam
  26. 19
      esy.lock/opam/ocamlfind.1.8.0/files/no-awk-check.patch
  27. 4
      esy.lock/opam/ocamlfind.1.8.0/opam
  28. 7
      esy.lock/opam/octavius.1.2.1/opam
  29. 8
      esy.lock/opam/ppx_derivers.1.2.1/opam
  30. 48
      esy.lock/opam/ppx_deriving.4.2.1/opam
  31. 21
      esy.lock/opam/ppx_tools.5.1+4.06.0/opam
  32. 2
      esy.lock/opam/ppx_tools_versioned.5.2.1/opam
  33. 8
      esy.lock/opam/ppxlib.0.6.0/opam
  34. 22
      esy.lock/opam/re.1.9.0/opam
  35. 23
      esy.lock/opam/seq.0.1/opam
  36. 15
      esy.lock/opam/spawn.v0.13.0/opam
  37. 27
      esy.lock/opam/stdlib-shims.0.1.0/opam
  38. 4
      esy.lock/opam/uri.2.2.0/opam
  39. 0
      esy.lock/overrides/opam__s__dune_opam__c__1.9.1_opam_override/package.json
  40. 34
      esy.lock/overrides/opam__s__merlin_extend_opam__c__0.3_opam_override/files/merlin-extend-winfix-4.2.3007.patch
  41. 5
      esy.lock/overrides/opam__s__merlin_extend_opam__c__0.3_opam_override/package.json
  42. 463
      esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/files/ocamlbuild-0.14.0.patch
  43. 27
      esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json
  44. 78
      esy.lock/overrides/opam__s__ppx__deriving_opam__c__4.2.1_opam_override/files/ppx_deriving-4.2.1.patch
  45. 15
      esy.lock/overrides/opam__s__ppx__deriving_opam__c__4.2.1_opam_override/package.json
  46. 3
      executable/Env.re
  47. 2
      executable/Use.re
  48. 3
      feature_tests/system_node/node
  49. 16
      feature_tests/system_node/run.sh
  50. 5
      library/Fs.re
  51. 6
      library/Http.re
  52. 2
      library/System.re
  53. 59
      library/Versions.re
  54. 2
      library/dune
  55. 4
      package.json
  56. 2
      test/SmokeTest.re

5322
esy.lock/index.json

File diff suppressed because it is too large Load Diff

2
esy.lock/opam/base.v0.11.1/opam

@ -9,7 +9,7 @@ build: [
["jbuilder" "build" "-p" name "-j" jobs] ["jbuilder" "build" "-p" name "-j" jobs]
] ]
depends: [ depends: [
"ocaml" {>= "4.04.1"} "ocaml" {>= "4.04.1" & < "4.08.0"}
"sexplib0" {>= "v0.11" & < "v0.12"} "sexplib0" {>= "v0.11" & < "v0.12"}
"jbuilder" {build & >= "1.0+beta18.1"} "jbuilder" {build & >= "1.0+beta18.1"}
] ]

6
esy.lock/opam/base64.3.1.0/opam → esy.lock/opam/base64.3.2.0/opam

@ -1,7 +1,7 @@
opam-version: "2.0" opam-version: "2.0"
maintainer: "mirageos-devel@lists.xenproject.org" maintainer: "mirageos-devel@lists.xenproject.org"
authors: [ "Thomas Gazagnaire" authors: [ "Thomas Gazagnaire"
"Anil Madhavapeddy" "Anil Madhavapeddy" "Calascibetta Romain"
"Peter Zotov" ] "Peter Zotov" ]
license: "ISC" license: "ISC"
homepage: "https://github.com/mirage/ocaml-base64" homepage: "https://github.com/mirage/ocaml-base64"
@ -29,6 +29,6 @@ build: [
] ]
url { url {
src: src:
"https://github.com/mirage/ocaml-base64/releases/download/v3.1.0/base64-v3.1.0.tbz" "https://github.com/mirage/ocaml-base64/releases/download/v3.2.0/base64-v3.2.0.tbz"
checksum: "md5=9847073feb4272e513d8c832904e1af7" checksum: "md5=8ac1d6145277cee57d36611d1c420f05"
} }

6
esy.lock/opam/cohttp-lwt.2.0.0/opam

@ -27,10 +27,10 @@ bug-reports: "https://github.com/mirage/ocaml-cohttp/issues"
depends: [ depends: [
"ocaml" {>= "4.04.1"} "ocaml" {>= "4.04.1"}
"dune" {build & >= "1.1.0"} "dune" {build & >= "1.1.0"}
"cohttp" {>= "1.0.0"} "cohttp" {>= "2.0.0"}
"lwt" {>= "2.5.0"} "lwt" {>= "2.5.0"}
"sexplib0" {< "v0.12"} "sexplib0" {< "v0.13"}
"ppx_sexp_conv" {>= "v0.9.0" & < "v0.12"} "ppx_sexp_conv" {>= "v0.9.0" & < "v0.13"}
"logs" "logs"
] ]
build: [ build: [

12
esy.lock/opam/cohttp.2.0.0/opam → esy.lock/opam/cohttp.2.1.2/opam

@ -36,10 +36,10 @@ depends: [
"dune" {build & >= "1.1.0"} "dune" {build & >= "1.1.0"}
"re" {>= "1.7.2"} "re" {>= "1.7.2"}
"uri" {>= "2.0.0"} "uri" {>= "2.0.0"}
"fieldslib" {< "v0.12"} "fieldslib"
"sexplib0" {< "v0.12"} "sexplib0"
"ppx_fields_conv" {>= "v0.9.0" & < "v0.12"} "ppx_fields_conv" {>= "v0.9.0"}
"ppx_sexp_conv" {>= "v0.9.0" & < "v0.12"} "ppx_sexp_conv" {>= "v0.9.0"}
"stringext" "stringext"
"base64" {>= "3.1.0"} "base64" {>= "3.1.0"}
"fmt" {with-test} "fmt" {with-test}
@ -54,6 +54,6 @@ build: [
dev-repo: "git+https://github.com/mirage/ocaml-cohttp.git" dev-repo: "git+https://github.com/mirage/ocaml-cohttp.git"
url { url {
src: src:
"https://github.com/mirage/ocaml-cohttp/releases/download/v2.0.0/cohttp-v2.0.0.tbz" "https://github.com/mirage/ocaml-cohttp/releases/download/v2.1.2/cohttp-v2.1.2.tbz"
checksum: "md5=c354599fdb4f2625b6510182de0fc86b" checksum: "md5=1bdde705d853175c67666b45bf3edc43"
} }

2
esy.lock/opam/conduit-lwt-unix.1.4.0/opam

@ -11,7 +11,7 @@ depends: [
"ocaml" {>= "4.03.0"} "ocaml" {>= "4.03.0"}
"dune" {build} "dune" {build}
"base-unix" "base-unix"
"ppx_sexp_conv" {< "v0.12"} "ppx_sexp_conv" {< "v0.13"}
"conduit-lwt" {>="1.4.0"} "conduit-lwt" {>="1.4.0"}
"lwt" {>= "3.0.0"} "lwt" {>= "3.0.0"}
"uri" {>= "1.9.4"} "uri" {>= "1.9.4"}

4
esy.lock/opam/conduit-lwt.1.4.0/opam

@ -11,8 +11,8 @@ depends: [
"ocaml" {>= "4.03.0"} "ocaml" {>= "4.03.0"}
"dune" {build} "dune" {build}
"base-unix" "base-unix"
"ppx_sexp_conv" {< "v0.12"} "ppx_sexp_conv" {< "v0.13"}
"sexplib" {< "v0.12"} "sexplib" {< "v0.13"}
"conduit" {="1.4.0"} "conduit" {="1.4.0"}
"lwt" {>= "3.0.0"} "lwt" {>= "3.0.0"}
] ]

4
esy.lock/opam/conduit.1.4.0/opam

@ -11,8 +11,8 @@ bug-reports: "https://github.com/mirage/ocaml-conduit/issues"
depends: [ depends: [
"ocaml" {>= "4.03.0"} "ocaml" {>= "4.03.0"}
"dune" {build} "dune" {build}
"ppx_sexp_conv" {< "v0.12"} "ppx_sexp_conv" {< "v0.13"}
"sexplib" {< "v0.12"} "sexplib" {< "v0.13"}
"astring" "astring"
"uri" "uri"
"result" "result"

4
esy.lock/opam/conf-m4.1/opam

@ -14,8 +14,8 @@ depexts: [
["m4"] {os-distribution = "alpine"} ["m4"] {os-distribution = "alpine"}
["m4"] {os-distribution = "nixos"} ["m4"] {os-distribution = "nixos"}
["m4"] {os-family = "suse"} ["m4"] {os-family = "suse"}
["m4"] {os-distribution = "oraclelinux"} ["m4"] {os-distribution = "ol"}
["m4"] {os-distribution = "archlinux"} ["m4"] {os-distribution = "arch"}
] ]
synopsis: "Virtual package relying on m4" synopsis: "Virtual package relying on m4"
description: description:

10
esy.lock/opam/conf-openssl.1/files/osx-build.sh

@ -1,5 +1,15 @@
#!/bin/sh #!/bin/sh
# Try just executing pkg-config openssl before looking
# explicitly for Nix -> Homebrew -> MacPorts.
# This handles the case where the user has set
# PKG_CONFIG_PATH themselves.
res=$(pkg-config openssl)
if [ $? -eq 0 ]; then
echo $res
exit 0
fi
if [ -e "$HOME/.nix-profile/lib/pkgconfig/openssl.pc" ]; then if [ -e "$HOME/.nix-profile/lib/pkgconfig/openssl.pc" ]; then
# Nix on macOS # Nix on macOS
res=$(env PKG_CONFIG_PATH=$HOME/.nix-profile/lib/pkgconfig pkg-config openssl) res=$(env PKG_CONFIG_PATH=$HOME/.nix-profile/lib/pkgconfig pkg-config openssl)

6
esy.lock/opam/conf-openssl.1/opam

@ -14,17 +14,17 @@ depexts: [
["libssl-dev"] {os-distribution = "debian"} ["libssl-dev"] {os-distribution = "debian"}
["libssl-dev"] {os-distribution = "ubuntu"} ["libssl-dev"] {os-distribution = "ubuntu"}
["openssl-devel"] {os-distribution = "centos"} ["openssl-devel"] {os-distribution = "centos"}
["openssl-devel"] {os-distribution = "oraclelinux"} ["openssl-devel"] {os-distribution = "ol"}
["openssl-devel"] {os-distribution = "fedora"} ["openssl-devel"] {os-distribution = "fedora"}
["openssl"] {os = "macos" & os-distribution = "homebrew"} ["openssl"] {os = "macos" & os-distribution = "homebrew"}
["openssl"] {os = "macos" & os-distribution = "macports"} ["openssl"] {os = "macos" & os-distribution = "macports"}
["libressl-dev"] {os-distribution = "alpine"} ["libressl-dev"] {os-distribution = "alpine"}
["openssl"] {os-distribution = "nixos"} ["openssl"] {os-distribution = "nixos"}
["openssl"] {os-distribution = "archlinux"} ["openssl"] {os-distribution = "arch"}
["libopenssl-devel"] {os-family = "suse"} ["libopenssl-devel"] {os-family = "suse"}
] ]
synopsis: "Virtual package relying on an OpenSSL system installation" synopsis: "Virtual package relying on an OpenSSL system installation"
description: description:
"This package can only install if OpenSSL is installed on the system." "This package can only install if OpenSSL is installed on the system."
extra-files: ["osx-build.sh" "md5=978504ca8c262cde48a71da6f11f2073"] extra-files: ["osx-build.sh" "md5=e216c6189d0dfb4185521c8ace09fe40"]
flags: conf flags: conf

5
esy.lock/opam/conf-pkg-config.1.1/opam

@ -19,17 +19,18 @@ post-messages: [
depexts: [ depexts: [
["pkg-config"] {os-distribution = "debian"} ["pkg-config"] {os-distribution = "debian"}
["pkg-config"] {os-distribution = "ubuntu"} ["pkg-config"] {os-distribution = "ubuntu"}
["pkg-config"] {os-distribution = "archlinux"} ["pkg-config"] {os-distribution = "arch"}
["pkgconfig"] {os-distribution = "fedora"} ["pkgconfig"] {os-distribution = "fedora"}
["pkgconfig"] {os-distribution = "centos"} ["pkgconfig"] {os-distribution = "centos"}
["pkgconfig"] {os-distribution = "mageia"} ["pkgconfig"] {os-distribution = "mageia"}
["pkgconfig"] {os-distribution = "rhel"} ["pkgconfig"] {os-distribution = "rhel"}
["pkgconfig"] {os-distribution = "oraclelinux"} ["pkgconfig"] {os-distribution = "ol"}
["pkgconfig"] {os-distribution = "alpine"} ["pkgconfig"] {os-distribution = "alpine"}
["devel/pkgconf"] {os = "freebsd"} ["devel/pkgconf"] {os = "freebsd"}
["devel/pkgconf"] {os = "openbsd"} ["devel/pkgconf"] {os = "openbsd"}
["pkg-config"] {os = "macos" & os-distribution = "homebrew"} ["pkg-config"] {os = "macos" & os-distribution = "homebrew"}
["pkgconf"] {os = "freebsd"} ["pkgconf"] {os = "freebsd"}
["pkg-config"] {os-distribution = "cygwinports"}
] ]
synopsis: "Virtual package relying on pkg-config installation" synopsis: "Virtual package relying on pkg-config installation"
description: """ description: """

2
esy.lock/opam/conf-which.1/opam

@ -12,7 +12,7 @@ depexts: [
["debianutils"] {os-distribution = "debian"} ["debianutils"] {os-distribution = "debian"}
["debianutils"] {os-distribution = "ubuntu"} ["debianutils"] {os-distribution = "ubuntu"}
["which"] {os-distribution = "nixos"} ["which"] {os-distribution = "nixos"}
["which"] {os-distribution = "archlinux"} ["which"] {os-distribution = "arch"}
] ]
synopsis: "Virtual package relying on which" synopsis: "Virtual package relying on which"
description: description:

4
esy.lock/opam/configurator.v0.11.0/opam

@ -11,8 +11,8 @@ build: [
conflicts: [ "jbuilder" { = "1.0+beta19" } ] conflicts: [ "jbuilder" { = "1.0+beta19" } ]
depends: [ depends: [
"ocaml" {>= "4.04.1"} "ocaml" {>= "4.04.1"}
"base" {>= "v0.11" & < "v0.12"} "base" {>= "v0.11"}
"stdio" {>= "v0.11" & < "v0.12"} "stdio" {>= "v0.11"}
"jbuilder" {build & >= "1.0+beta18.1"} "jbuilder" {build & >= "1.0+beta18.1"}
] ]
synopsis: "Helper library for gathering system configuration" synopsis: "Helper library for gathering system configuration"

25
esy.lock/opam/cppo_ocamlbuild.1.6.0/opam

@ -0,0 +1,25 @@
opam-version: "2.0"
maintainer: "martin@mjambon.com"
authors: ["Martin Jambon"]
homepage: "http://mjambon.com/cppo.html"
dev-repo: "git+https://github.com/mjambon/cppo.git"
bug-reports: "https://github.com/mjambon/cppo/issues"
license: "BSD-3-Clause"
build: [
["jbuilder" "subst" "-p" name] {pinned}
["jbuilder" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml"
"jbuilder" {build & >= "1.0+beta10"}
"ocamlbuild"
"ocamlfind"
"cppo" {>= "1.6.0"}
]
synopsis: "ocamlbuild support for cppo, OCaml-friendly source preprocessor"
url {
src: "https://github.com/mjambon/cppo/archive/v1.6.0.tar.gz"
checksum: "md5=aee411b3546bc5d198c71ae9185cade4"
}

7
esy.lock/opam/dune.1.7.2/opam → esy.lock/opam/dune.1.9.1/opam

@ -42,6 +42,9 @@ packages across several versions of OCaml and gives cross-compilation
for free. for free.
""" """
url { url {
src: "https://github.com/ocaml/dune/releases/download/1.7.2/dune-1.7.2.tbz" src: "https://github.com/ocaml/dune/releases/download/1.9.1/dune-1.9.1.tbz"
checksum: "md5=41d273840f1edd9c4585e9e45d07c129" checksum: [
"sha256=c9a1e258a14d96fd95fb525e7659c371e8b1d253905e3d39c5b2efa280b4927c"
"sha512=842d0aa7fbe97bc5a0fde974fa9ddd95d8e2f60a7018b60779cf782282e2bc362f4ae347cd7795b857a8e05ebb9d82f1236c0e4d1e7ec10d3b210028bc2058c1"
]
} }

31
esy.lock/opam/fmt.0.8.5/opam → esy.lock/opam/fmt.0.8.6/opam

@ -1,22 +1,20 @@
opam-version: "2.0" opam-version: "2.0"
maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>" maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"
authors: [ authors: [ "The fmt programmers" ]
"Daniel Bünzli <daniel.buenzl i@erratique.ch>" homepage: "https://erratique.ch/software/fmt"
"Gabriel Radanne" doc: "https://erratique.ch/software/fmt"
] dev-repo: "git+https://erratique.ch/repos/fmt.git"
homepage: "http://erratique.ch/software/fmt"
doc: "http://erratique.ch/software/fmt"
dev-repo: "git+http://erratique.ch/repos/fmt.git"
bug-reports: "https://github.com/dbuenzli/fmt/issues" bug-reports: "https://github.com/dbuenzli/fmt/issues"
tags: [ "string" "format" "pretty-print" "org:erratique" ] tags: [ "string" "format" "pretty-print" "org:erratique" ]
license: "ISC" license: "ISC"
depends: [ depends: [
"ocaml" {>= "4.01.0"} "ocaml" {>= "4.03.0"}
"ocamlfind" {build} "ocamlfind" {build}
"ocamlbuild" {build} "ocamlbuild" {build}
"topkg" {build & >= "0.9.0"} "topkg" {build & >= "0.9.0"}
"result" # Can be removed once ocaml >= 4.07
"uchar" "seq"
"stdlib-shims"
] ]
depopts: [ "base-unix" "cmdliner" ] depopts: [ "base-unix" "cmdliner" ]
conflicts: [ "cmdliner" {< "0.9.8"} ] conflicts: [ "cmdliner" {< "0.9.8"} ]
@ -25,8 +23,10 @@ build: [[
"--dev-pkg" "%{pinned}%" "--dev-pkg" "%{pinned}%"
"--with-base-unix" "%{base-unix:installed}%" "--with-base-unix" "%{base-unix:installed}%"
"--with-cmdliner" "%{cmdliner:installed}%" ]] "--with-cmdliner" "%{cmdliner:installed}%" ]]
synopsis: "OCaml Format pretty-printer combinators"
description: """ synopsis: """OCaml Format pretty-printer combinators"""
description: """\
Fmt exposes combinators to devise `Format` pretty-printing functions. Fmt exposes combinators to devise `Format` pretty-printing functions.
Fmt depends only on the OCaml standard library. The optional `Fmt_tty` Fmt depends only on the OCaml standard library. The optional `Fmt_tty`
@ -36,8 +36,9 @@ provides command line support for Fmt depends on [`Cmdliner`][cmdliner].
Fmt is distributed under the ISC license. Fmt is distributed under the ISC license.
[cmdliner]: http://erratique.ch/software/cmdliner""" [cmdliner]: http://erratique.ch/software/cmdliner
"""
url { url {
src: "http://erratique.ch/software/fmt/releases/fmt-0.8.5.tbz" archive: "https://erratique.ch/software/fmt/releases/fmt-0.8.6.tbz"
checksum: "md5=77b64aa6f20f09de28f2405d6195f12c" checksum: "5407789e5f0ea42272ca19353b1abfd3"
} }

8
esy.lock/opam/ipaddr.3.0.0/opam → esy.lock/opam/ipaddr.3.1.0/opam

@ -30,9 +30,9 @@ depends: [
"ocaml" {>= "4.04.0"} "ocaml" {>= "4.04.0"}
"dune" {build} "dune" {build}
"macaddr" "macaddr"
"sexplib0" {< "v0.12"} "sexplib0"
"ounit" {with-test} "ounit" {with-test}
"ppx_sexp_conv" {with-test & < "v0.12"} "ppx_sexp_conv" {with-test}
] ]
build: [ build: [
["dune" "subst"] {pinned} ["dune" "subst"] {pinned}
@ -42,6 +42,6 @@ build: [
dev-repo: "git+https://github.com/mirage/ocaml-ipaddr.git" dev-repo: "git+https://github.com/mirage/ocaml-ipaddr.git"
url { url {
src: src:
"https://github.com/mirage/ocaml-ipaddr/releases/download/3.0.0/ipaddr-3.0.0.tbz" "https://github.com/mirage/ocaml-ipaddr/releases/download/v3.1.0/ipaddr-v3.1.0.tbz"
checksum: "md5=29248b09ead9ac272cd0f4c8ae934082" checksum: "md5=471a594563bb9c3dd91ae912b5ffd6ed"
} }

45
esy.lock/opam/logs.0.6.2/opam → esy.lock/opam/logs.0.6.3/opam

@ -1,26 +1,26 @@
opam-version: "2.0" opam-version: "2.0"
maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>" maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"
authors: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"] authors: ["The logs programmers"]
homepage: "http://erratique.ch/software/logs" homepage: "https://erratique.ch/software/logs"
doc: "http://erratique.ch/software/logs/doc" doc: "https://erratique.ch/software/logs/doc"
dev-repo: "git+http://erratique.ch/repos/logs.git" dev-repo: "git+https://erratique.ch/repos/logs.git"
bug-reports: "https://github.com/dbuenzli/logs/issues" bug-reports: "https://github.com/dbuenzli/logs/issues"
tags: [ "log" "system" "org:erratique" ] tags: [ "log" "system" "org:erratique" ]
license: "ISC" license: "ISC"
depends: [ depends: [
"ocaml" {>= "4.01.0"} "ocaml" {>= "4.03.0"}
"ocamlfind" {build} "ocamlfind" {build}
"ocamlbuild" {build} "ocamlbuild" {build}
"topkg" {build} "topkg" {build}
"result" "mtime" {with-test} ]
"mtime" {with-test}
]
depopts: [ depopts: [
"js_of_ocaml" "js_of_ocaml"
"fmt" "fmt"
"cmdliner" "cmdliner"
"lwt" ] "lwt" ]
conflicts: [ "cmdliner" {< "0.9.8"} ] conflicts: [
"js_of_ocaml" { < "3.3.0" } ]
build: [[ build: [[
"ocaml" "pkg/pkg.ml" "build" "ocaml" "pkg/pkg.ml" "build"
"--pinned" "%{pinned}%" "--pinned" "%{pinned}%"
@ -28,8 +28,10 @@ build: [[
"--with-fmt" "%{fmt:installed}%" "--with-fmt" "%{fmt:installed}%"
"--with-cmdliner" "%{cmdliner:installed}%" "--with-cmdliner" "%{cmdliner:installed}%"
"--with-lwt" "%{lwt:installed}%" ]] "--with-lwt" "%{lwt:installed}%" ]]
synopsis: "Logging infrastructure for OCaml"
description: """ synopsis: """Logging infrastructure for OCaml"""
description: """\
Logs provides a logging infrastructure for OCaml. Logging is performed Logs provides a logging infrastructure for OCaml. Logging is performed
on sources whose reporting level can be set independently. Log message on sources whose reporting level can be set independently. Log message
report is decoupled from logging and is handled by a reporter. report is decoupled from logging and is handled by a reporter.
@ -37,21 +39,22 @@ report is decoupled from logging and is handled by a reporter.
A few optional log reporters are distributed with the base library and A few optional log reporters are distributed with the base library and
the API easily allows to implement your own. the API easily allows to implement your own.
`Logs` depends only on the `result` compatibility package. The `Logs` has no dependencies. The optional `Logs_fmt` reporter on OCaml
optional `Logs_fmt` reporter on OCaml formatters depends on [Fmt][fmt]. formatters depends on [Fmt][fmt]. The optional `Logs_browser`
The optional `Logs_browser` reporter that reports to the web browser reporter that reports to the web browser console depends on
console depends on [js_of_ocaml][jsoo]. The optional `Logs_cli` library [js_of_ocaml][jsoo]. The optional `Logs_cli` library that provides
that provides command line support for controlling Logs depends on command line support for controlling Logs depends on
[`Cmdliner`][cmdliner]. The optional `Logs_lwt` library that provides Lwt logging [`Cmdliner`][cmdliner]. The optional `Logs_lwt` library that provides
functions depends on [`Lwt`][lwt] Lwt logging functions depends on [`Lwt`][lwt]
Logs and its reporters are distributed under the ISC license. Logs and its reporters are distributed under the ISC license.
[fmt]: http://erratique.ch/software/fmt [fmt]: http://erratique.ch/software/fmt
[jsoo]: http://ocsigen.org/js_of_ocaml/ [jsoo]: http://ocsigen.org/js_of_ocaml/
[cmdliner]: http://erratique.ch/software/cmdliner [cmdliner]: http://erratique.ch/software/cmdliner
[lwt]: http://ocsigen.org/lwt/""" [lwt]: http://ocsigen.org/lwt/
"""
url { url {
src: "http://erratique.ch/software/logs/releases/logs-0.6.2.tbz" archive: "https://erratique.ch/software/logs/releases/logs-0.6.3.tbz"
checksum: "md5=19f824c02c83c6dddc3bfb6459e4743e" checksum: "370e4c802588f73d0777c59bc414b57b"
} }

68
esy.lock/opam/lwt.4.1.0/opam → esy.lock/opam/lwt.4.2.1/opam

@ -1,60 +1,58 @@
opam-version: "2.0" opam-version: "2.0"
version: "4.1.0"
synopsis: "Promises and event-driven I/O"
license: "MIT"
homepage: "https://github.com/ocsigen/lwt"
doc: "https://ocsigen.org/lwt/manual/"
bug-reports: "https://github.com/ocsigen/lwt/issues"
authors: [
"Jérôme Vouillon"
"Jérémie Dimino"
]
maintainer: [ maintainer: [
"Anton Bachin <antonbachin@yahoo.com>" "Anton Bachin <antonbachin@yahoo.com>"
"Mauricio Fernandez <mfp@acm.org>" "Mauricio Fernandez <mfp@acm.org>"
"Simon Cruanes <simon.cruanes.2007@m4x.org>" "Simon Cruanes <simon.cruanes.2007@m4x.org>"
] ]
authors: [
"Jérôme Vouillon"
"Jérémie Dimino"
]
homepage: "https://github.com/ocsigen/lwt"
doc: "https://ocsigen.org/lwt/manual/"
bug-reports: "https://github.com/ocsigen/lwt/issues"
license: "LGPL with OpenSSL linking exception"
dev-repo: "git+https://github.com/ocsigen/lwt.git" dev-repo: "git+https://github.com/ocsigen/lwt.git"
build: [
[ "ocaml" "src/util/configure.ml" "-use-libev" "%{conf-libev:installed}%" ]
[ "jbuilder" "build" "-p" name "-j" jobs ]
]
depends: [ depends: [
"ocaml" {>= "4.02.0"}
"cppo" {build & >= "1.1.0"} "cppo" {build & >= "1.1.0"}
"jbuilder" {build & >= "1.0+beta14"} "dune" {build}
"ocamlfind" {build & >= "1.7.3-1"} "mmap" # mmap is needed as long as Lwt supports OCaml < 4.06.0.
"result" "ocaml" {>= "4.02.0"}
"result" # result is needed as long as Lwt supports OCaml 4.02.
"seq" # seq is needed as long as Lwt supports OCaml < 4.07.0.
"bisect_ppx" {dev & >= "1.3.0"}
"ocamlfind" {dev & >= "1.7.3-1"}
] ]
depopts: [ depopts: [
"base-threads" "base-threads"
"base-unix" "base-unix"
"conf-libev" "conf-libev"
] ]
# In practice, Lwt requires OCaml >= 4.02.3, as that is a constraint of the
# dependency jbuilder. conflicts: [
messages: [ "ocaml-variants" {= "4.02.1+BER"}
"For the PPX, please install package lwt_ppx" ]
{!lwt_ppx:installed}
"For the Camlp4 syntax, please install package lwt_camlp4" build: [
{camlp4:installed & !lwt_camlp4:installed} ["dune" "build" "-p" name "-j" jobs]
"For Lwt_log and Lwt_daemon, please install package lwt_log"
{!lwt_log:installed}
] ]
synopsis: "Promises, concurrency, and parallelized I/O"
description: """ description: "A promise is a value that may become determined in the future.
A promise is a value that may become determined in the future.
Lwt provides typed, composable promises. Promises that are resolved by I/O are Lwt provides typed, composable promises. Promises that are resolved by I/O are
resolved by Lwt in parallel. resolved by Lwt in parallel.
Meanwhile, OCaml code, including code creating and waiting on promises, runs in Meanwhile, OCaml code, including code creating and waiting on promises, runs in
a single thread by default. This reduces the need for locks or other a single thread by default. This reduces the need for locks or other
synchronization primitives. Code can be run in parallel on an opt-in basis.""" synchronization primitives. Code can be run in parallel on an opt-in basis."
conflicts: [
"ocaml-variants" {= "4.02.1+BER"}
]
url { url {
src: "https://github.com/ocsigen/lwt/archive/4.1.0.tar.gz" src: "https://github.com/ocsigen/lwt/archive/4.2.1.tar.gz"
checksum: "md5=e919bee206f18b3d49250ecf9584fde7" checksum: "md5=9d648386ca0a9978eb9487de36b781cc"
} }

33
esy.lock/opam/lwt_ppx.1.2.1/opam → esy.lock/opam/lwt_ppx.1.2.2/opam

@ -1,30 +1,33 @@
opam-version: "2.0" opam-version: "2.0"
version: "1.2.1"
maintainer: [ synopsis: "PPX syntax for Lwt, providing something similar to async/await from JavaScript"
"Anton Bachin <antonbachin@yahoo.com>"
] license: "MIT"
homepage: "https://github.com/ocsigen/lwt"
doc: "https://ocsigen.org/lwt/api/Ppx_lwt"
bug-reports: "https://github.com/ocsigen/lwt/issues"
authors: [ authors: [
"Gabriel Radanne" "Gabriel Radanne"
] ]
homepage: "https://github.com/ocsigen/lwt" maintainer: [
doc: "https://ocsigen.org/lwt/api/Ppx_lwt" "Anton Bachin <antonbachin@yahoo.com>"
]
dev-repo: "git+https://github.com/ocsigen/lwt.git" dev-repo: "git+https://github.com/ocsigen/lwt.git"
bug-reports: "https://github.com/ocsigen/lwt/issues"
license: "LGPL with OpenSSL linking exception"
depends: [ depends: [
"ocaml" {>= "4.02.0"} "dune" {build}
"jbuilder" {build & >= "1.0+beta14"}
"lwt" "lwt"
"ocaml" {>= "4.02.0"}
"ocaml-migrate-parsetree" "ocaml-migrate-parsetree"
"ppx_tools_versioned" {>= "5.0.1"} "ppx_tools_versioned" {>= "5.0.1"}
] ]
build: [ build: [
["jbuilder" "build" "-p" name "-j" jobs] ["dune" "build" "-p" name "-j" jobs]
] ]
synopsis:
"PPX syntax for Lwt, providing something similar to async/await from JavaScript"
url { url {
src: "https://github.com/ocsigen/lwt/archive/4.1.0.tar.gz" src: "https://github.com/ocsigen/lwt/archive/4.2.0.tar.gz"
checksum: "md5=e919bee206f18b3d49250ecf9584fde7" checksum: "md5=2ce7827948adc611319f9449e4519070"
} }

19
esy.lock/opam/macaddr.3.0.0/opam → esy.lock/opam/macaddr.3.1.0/opam

@ -2,17 +2,6 @@ opam-version: "2.0"
maintainer: "anil@recoil.org" maintainer: "anil@recoil.org"
authors: ["David Sheets" "Anil Madhavapeddy" "Hugo Heuzard"] authors: ["David Sheets" "Anil Madhavapeddy" "Hugo Heuzard"]
synopsis: "A library for manipulation of MAC address representations" synopsis: "A library for manipulation of MAC address representations"
description: """
Manipulate 48-bit Ethernet MAC addresses using this library.
There are the following ocamlfind libraries included as part of this
package:
- `macaddr`: The `Macaddr` module for MAC address manipulation.
- `macaddr.top`: Toplevel printers for Macaddr.
- `macaddr.sexp`: S-expression converters for Macaddr.
"""
license: "ISC" license: "ISC"
tags: ["org:mirage" "org:xapi-project"] tags: ["org:mirage" "org:xapi-project"]
homepage: "https://github.com/mirage/ocaml-ipaddr" homepage: "https://github.com/mirage/ocaml-ipaddr"
@ -21,9 +10,9 @@ bug-reports: "https://github.com/mirage/ocaml-ipaddr/issues"
depends: [ depends: [
"ocaml" {>= "4.04.0"} "ocaml" {>= "4.04.0"}
"dune" {build} "dune" {build}
"sexplib0" {< "v0.12"} "sexplib0"
"ounit" {with-test} "ounit" {with-test}
"ppx_sexp_conv" {with-test & < "v0.12"} "ppx_sexp_conv" {with-test}
] ]
conflicts: [ "ipaddr" {< "3.0.0"} ] conflicts: [ "ipaddr" {< "3.0.0"} ]
build: [ build: [
@ -33,6 +22,6 @@ build: [
dev-repo: "git+https://github.com/mirage/ocaml-ipaddr.git" dev-repo: "git+https://github.com/mirage/ocaml-ipaddr.git"
url { url {
src: src:
"https://github.com/mirage/ocaml-ipaddr/releases/download/3.0.0/ipaddr-3.0.0.tbz" "https://github.com/mirage/ocaml-ipaddr/releases/download/v3.1.0/ipaddr-v3.1.0.tbz"
checksum: "md5=29248b09ead9ac272cd0f4c8ae934082" checksum: "md5=471a594563bb9c3dd91ae912b5ffd6ed"
} }

2
esy.lock/opam/merlin-extend.0.3/opam

@ -9,7 +9,7 @@ build: [make]
install: [make "install"] install: [make "install"]
remove: ["ocamlfind" "remove" "merlin_extend"] remove: ["ocamlfind" "remove" "merlin_extend"]
depends: [ depends: [
"ocaml" {>= "4.02.3"} "ocaml" {>= "4.02.3" & < "4.08.0"}
"ocamlfind" {build} "ocamlfind" {build}
"cppo" {build} "cppo" {build}
] ]

24
esy.lock/opam/mmap.1.1.0/opam

@ -0,0 +1,24 @@
opam-version: "2.0"
maintainer: "jeremie@dimino.org"
authors: ["Jérémie Dimino <jeremie@dimino.org>" "Anton Bachin" ]
homepage: "https://github.com/mirage/mmap"
bug-reports: "https://github.com/mirage/mmap/issues"
doc: "https://mirage.github.io/mmap/"
dev-repo: "git+https://github.com/mirage/mmap.git"
license: "LGPL 2.1 with linking exception"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "4.02.3"}
"dune" {build & >= "1.6"}
]
synopsis: "File mapping functionality"
description: """
This project provides a Mmap.map_file functions for mapping files in memory.
"""
url {
src:
"https://github.com/mirage/mmap/releases/download/v1.1.0/mmap-v1.1.0.tbz"
checksum: "md5=8c5d5fbc537296dc525867535fb878ba"
}

2
esy.lock/opam/ocaml-migrate-parsetree.1.2.0/opam

@ -17,7 +17,7 @@ depends: [
"result" "result"
"ppx_derivers" "ppx_derivers"
"dune" {build & >= "1.6.0"} "dune" {build & >= "1.6.0"}
"ocaml" {>= "4.02.3"} "ocaml" {>= "4.02.3" & < "4.08.0"}
] ]
synopsis: "Convert OCaml parsetrees between different versions" synopsis: "Convert OCaml parsetrees between different versions"
description: """ description: """

19
esy.lock/opam/ocamlfind.1.8.0/files/no-awk-check.patch

@ -0,0 +1,19 @@
commit 40142bc941e6e308686e86be6fc2da92f346a22f
Author: Kate <kit.ty.kate@disroot.org>
Date: Tue Mar 19 16:29:06 2019 +0000
Remove awk from the set of checked unix tools as it's not used anywhere
diff --git a/configure b/configure
index d9b587c..20e8dca 100755
--- a/configure
+++ b/configure
@@ -184,7 +184,7 @@ echo "Configuring core..."
# Some standard Unix tools must be available:
-for tool in sed awk ocaml ocamlc uname rm make cat m4 dirname basename; do
+for tool in sed ocaml ocamlc uname rm make cat m4 dirname basename; do
if in_path $tool; then true; else
echo "configure: $tool not in PATH; this is required" 1>&2
exit 1

4
esy.lock/opam/ocamlfind.1.8.0/opam

@ -3,6 +3,7 @@ maintainer: "Thomas Gazagnaire <thomas@gazagnaire.org>"
homepage: "http://projects.camlcity.org/projects/findlib.html" homepage: "http://projects.camlcity.org/projects/findlib.html"
bug-reports: "https://gitlab.camlcity.org/gerd/lib-findlib/issues" bug-reports: "https://gitlab.camlcity.org/gerd/lib-findlib/issues"
dev-repo: "git+https://gitlab.camlcity.org/gerd/lib-findlib.git" dev-repo: "git+https://gitlab.camlcity.org/gerd/lib-findlib.git"
patches: ["no-awk-check.patch"]
build: [ build: [
[ [
"./configure" "./configure"
@ -15,6 +16,7 @@ build: [
"-config" "-config"
"%{lib}%/findlib.conf" "%{lib}%/findlib.conf"
"-no-custom" "-no-custom"
"-no-camlp4" {!ocaml:preinstalled & ocaml:version >= "4.02.0"}
"-no-topfind" {ocaml:preinstalled} "-no-topfind" {ocaml:preinstalled}
] ]
[make "all"] [make "all"]
@ -36,6 +38,7 @@ remove: [
man man
"-config" "-config"
"%{lib}%/findlib.conf" "%{lib}%/findlib.conf"
"-no-camlp4" {!ocaml:preinstalled & ocaml:version >= "4.02.0"}
"-no-topfind" {ocaml:preinstalled} "-no-topfind" {ocaml:preinstalled}
] ]
[make "uninstall"] [make "uninstall"]
@ -56,6 +59,7 @@ authors: "Gerd Stolpmann <gerd@gerd-stolpmann.de>"
extra-files: [ extra-files: [
["ocamlfind.install" "md5=06f2c282ab52d93aa6adeeadd82a2543"] ["ocamlfind.install" "md5=06f2c282ab52d93aa6adeeadd82a2543"]
["ocaml-stub" "md5=181f259c9e0bad9ef523e7d4abfdf87a"] ["ocaml-stub" "md5=181f259c9e0bad9ef523e7d4abfdf87a"]
["no-awk-check.patch" "md5=0378123bf1a45fccdea434c053ddb687"]
] ]
url { url {
src: "http://download.camlcity.org/download/findlib-1.8.0.tar.gz" src: "http://download.camlcity.org/download/findlib-1.8.0.tar.gz"

7
esy.lock/opam/octavius.1.2.0/opam → esy.lock/opam/octavius.1.2.1/opam

@ -1,6 +1,4 @@
version: "1.2.0"
opam-version: "2.0" opam-version: "2.0"
name: "octavius"
maintainer: "leo@lpw25.net" maintainer: "leo@lpw25.net"
authors: [ "Leo White <leo@lpw25.net>" ] authors: [ "Leo White <leo@lpw25.net>" ]
homepage: "https://github.com/ocaml-doc/octavius" homepage: "https://github.com/ocaml-doc/octavius"
@ -12,7 +10,6 @@ tags: ["doc" "ocamldoc" "org:ocaml-doc"]
depends: [ depends: [
"ocaml" {>= "4.03.0"} "ocaml" {>= "4.03.0"}
"ocamlfind" {build}
"jbuilder" {build & >= "1.0+beta7"} "jbuilder" {build & >= "1.0+beta7"}
] ]
build: [ build: [
@ -22,6 +19,6 @@ build: [
synopsis: "Ocamldoc comment syntax parser" synopsis: "Ocamldoc comment syntax parser"
description: "Octavius is a library to parse the `ocamldoc` comment syntax." description: "Octavius is a library to parse the `ocamldoc` comment syntax."
url { url {
src: "https://github.com/ocaml-doc/octavius/archive/v1.2.0.tar.gz" src: "https://github.com/ocaml-doc/octavius/archive/v1.2.1.tar.gz"
checksum: "md5=3e6049c39045354853d9dc3a197133ac" checksum: "md5=fe5f2e1ea8eba9f8c618580a34942bf1"
} }

8
esy.lock/opam/ppx_derivers.1.0/opam → esy.lock/opam/ppx_derivers.1.2.1/opam

@ -6,11 +6,11 @@ homepage: "https://github.com/ocaml-ppx/ppx_derivers"
bug-reports: "https://github.com/ocaml-ppx/ppx_derivers/issues" bug-reports: "https://github.com/ocaml-ppx/ppx_derivers/issues"
dev-repo: "git://github.com/ocaml-ppx/ppx_derivers.git" dev-repo: "git://github.com/ocaml-ppx/ppx_derivers.git"
build: [ build: [
["jbuilder" "build" "-p" name "-j" jobs] ["dune" "build" "-p" name "-j" jobs]
] ]
depends: [ depends: [
"ocaml" "ocaml"
"jbuilder" {build & >= "1.0+beta7"} "dune" {build}
] ]
synopsis: "Shared [@@deriving] plugin registry" synopsis: "Shared [@@deriving] plugin registry"
description: """ description: """
@ -18,6 +18,6 @@ Ppx_derivers is a tiny package whose sole purpose is to allow
ppx_deriving and ppx_type_conv to inter-operate gracefully when linked ppx_deriving and ppx_type_conv to inter-operate gracefully when linked
as part of the same ocaml-migrate-parsetree driver.""" as part of the same ocaml-migrate-parsetree driver."""
url { url {
src: "https://github.com/ocaml-ppx/ppx_derivers/archive/1.0.tar.gz" src: "https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz"
checksum: "md5=4ddce8f43fdb9b0ef0ab6a7cbfebc3e3" checksum: "md5=5dc2bf130c1db3c731fe0fffc5648b41"
} }

48
esy.lock/opam/ppx_deriving.4.2.1/opam

@ -0,0 +1,48 @@
opam-version: "2.0"
maintainer: "whitequark <whitequark@whitequark.org>"
authors: [ "whitequark <whitequark@whitequark.org>" ]
license: "MIT"
homepage: "https://github.com/whitequark/ppx_deriving"
doc: "https://whitequark.github.io/ppx_deriving"
bug-reports: "https://github.com/whitequark/ppx_deriving/issues"
dev-repo: "git+https://github.com/whitequark/ppx_deriving.git"
tags: [ "syntax" ]
substs: [ "pkg/META" ]
build: [
[
"ocaml"
"pkg/build.ml"
"native=%{ocaml:native-dynlink}%"
"native-dynlink=%{ocaml:native-dynlink}%"
]
[
"ocamlbuild"
"-classic-display"
"-use-ocamlfind"
"src_test/test_ppx_deriving.byte"
"--"
] {with-test}
[make "doc"] {with-doc}
]
depends: [
"ocaml" {> "4.03.0"}
"ocamlbuild" {build}
"ocamlfind" {build & >= "1.6.0"}
"cppo" {build}
"cppo_ocamlbuild" {build}
"ocaml-migrate-parsetree"
"ppx_derivers"
"ppx_tools" {>= "4.02.3"}
"result"
"ounit" {with-test}
]
available: opam-version >= "1.2"
synopsis: "Type-driven code generation for OCaml >=4.02"
description: """
ppx_deriving provides common infrastructure for generating
code based on type definitions, and a set of useful plugins
for common tasks."""
url {
src: "https://github.com/ocaml-ppx/ppx_deriving/archive/v4.2.1.tar.gz"
checksum: "md5=2195fccf2a527c3ff9ec5b4e36e2f0a8"
}

21
esy.lock/opam/ppx_tools.5.1+4.06.0/opam

@ -0,0 +1,21 @@
opam-version: "2.0"
maintainer: "alain.frisch@lexifi.com"
authors: [ "Alain Frisch <alain.frisch@lexifi.com>" ]
license: "MIT"
homepage: "https://github.com/ocaml-ppx/ppx_tools"
bug-reports: "https://github.com/ocaml-ppx/ppx_tools/issues"
dev-repo: "git://github.com/ocaml-ppx/ppx_tools.git"
tags: [ "syntax" ]
build: [[make "all"]]
install: [[make "install"]]
remove: [["ocamlfind" "remove" "ppx_tools"]]
depends: [
"ocaml" {>= "4.06.0" & < "4.08"}
"ocamlfind" {>= "1.5.0"}
]
synopsis: "Tools for authors of ppx rewriters and other syntactic tools"
flags: light-uninstall
url {
src: "https://github.com/ocaml-ppx/ppx_tools/archive/5.1+4.06.0.tar.gz"
checksum: "md5=6ba2e9690b1f579ba562b86022d1c308"
}

2
esy.lock/opam/ppx_tools_versioned.5.2.1/opam

@ -17,7 +17,7 @@ build: [
depends: [ depends: [
"ocaml" {>= "4.02.0"} "ocaml" {>= "4.02.0"}
"jbuilder" {build & >= "1.0+beta17"} "jbuilder" {build & >= "1.0+beta17"}
"ocaml-migrate-parsetree" {>= "1.0.10"} "ocaml-migrate-parsetree" {>= "1.0.10" & < "1.3.0"}
] ]
synopsis: "A variant of ppx_tools based on ocaml-migrate-parsetree" synopsis: "A variant of ppx_tools based on ocaml-migrate-parsetree"
url { url {

8
esy.lock/opam/ppxlib.0.5.0/opam → esy.lock/opam/ppxlib.0.6.0/opam

@ -15,12 +15,12 @@ run-test: [
] ]
depends: [ depends: [
"ocaml" {>= "4.04.1"} "ocaml" {>= "4.04.1"}
"base" {>= "v0.11.0" & < "v0.12"} "base" {>= "v0.11.0" & < "v0.13"}
"dune" {build} "dune" {build}
"ocaml-compiler-libs" {>= "v0.11.0"} "ocaml-compiler-libs" {>= "v0.11.0"}
"ocaml-migrate-parsetree" {>= "1.0.9"} "ocaml-migrate-parsetree" {>= "1.0.9"}
"ppx_derivers" {>= "1.0"} "ppx_derivers" {>= "1.0"}
"stdio" {>= "v0.11.0" & < "v0.12"} "stdio" {>= "v0.11.0" & < "v0.13"}
"ocamlfind" {with-test} "ocamlfind" {with-test}
] ]
synopsis: "Base library and tools for ppx rewriters" synopsis: "Base library and tools for ppx rewriters"
@ -37,6 +37,6 @@ A comprehensive toolbox for ppx development. It features:
""" """
url { url {
src: src:
"https://github.com/ocaml-ppx/ppxlib/releases/download/0.5.0/ppxlib-0.5.0.tbz" "https://github.com/ocaml-ppx/ppxlib/releases/download/0.6.0/ppxlib-0.6.0.tbz"
checksum: "md5=bb278ff6e819e0e4a4d8a005bb2512a4" checksum: "md5=e2d129139891c135acc6d52a3fa9f731"
} }

22
esy.lock/opam/re.1.7.3/opam → esy.lock/opam/re.1.9.0/opam

@ -1,4 +1,5 @@
opam-version: "2.0" opam-version: "2.0"
maintainer: "rudi.grinberg@gmail.com" maintainer: "rudi.grinberg@gmail.com"
authors: [ authors: [
"Jerome Vouillon" "Jerome Vouillon"
@ -11,16 +12,20 @@ license: "LGPL-2.0 with OCaml linking exception"
homepage: "https://github.com/ocaml/ocaml-re" homepage: "https://github.com/ocaml/ocaml-re"
bug-reports: "https://github.com/ocaml/ocaml-re/issues" bug-reports: "https://github.com/ocaml/ocaml-re/issues"
dev-repo: "git+https://github.com/ocaml/ocaml-re.git" dev-repo: "git+https://github.com/ocaml/ocaml-re.git"
build: [ build: [
["jbuilder" "subst" "-p" name] {pinned} ["dune" "subst"] {pinned}
["jbuilder" "build" "-p" name "-j" jobs] ["dune" "build" "-p" name "-j" jobs]
["jbuilder" "runtest" "-p" name "-j" jobs] {with-test} ["dune" "runtest" "-p" name "-j" jobs] {with-test}
] ]
depends: [ depends: [
"ocaml" {>= "4.02.3"} "ocaml" {>= "4.02"}
"jbuilder" {build & >= "1.0+beta10"} "dune" {build}
"ounit" {with-test} "ounit" {with-test}
"seq"
] ]
synopsis: "RE is a regular expression library for OCaml" synopsis: "RE is a regular expression library for OCaml"
description: """ description: """
Pure OCaml regular expressions with: Pure OCaml regular expressions with:
@ -28,9 +33,10 @@ Pure OCaml regular expressions with:
* Posix extended regular expressions (module Re.Posix) * Posix extended regular expressions (module Re.Posix)
* Emacs-style regular expressions (module Re.Emacs) * Emacs-style regular expressions (module Re.Emacs)
* Shell-style file globbing (module Re.Glob) * Shell-style file globbing (module Re.Glob)
* Compatibility layer for OCaml's built-in Str module (module Re.Str)""" * Compatibility layer for OCaml's built-in Str module (module Re.Str)
"""
url { url {
src: src:
"https://github.com/ocaml/ocaml-re/releases/download/1.7.3/re-1.7.3.tbz" "https://github.com/ocaml/ocaml-re/releases/download/1.9.0/re-1.9.0.tbz"
checksum: "md5=d2a74ca77216861bce4449600a132de9" checksum: "md5=bddaed4f386a22cace7850c9c7dac296"
} }

23
esy.lock/opam/seq.0.1/opam

@ -0,0 +1,23 @@
opam-version: "2.0"
maintainer: "simon.cruanes.2007@m4x.org"
authors: "Simon Cruanes"
homepage: "https://github.com/c-cube/seq/"
bug-reports: "https://github.com/c-cube/seq/issues"
license: "GPL"
tags: ["iterator" "seq" "pure" "list" "compatibility" "cascade"]
dev-repo: "git+https://github.com/c-cube/seq.git"
build: [make "build"]
install: [make "install"]
remove: [ "ocamlfind" "remove" "seq" ]
depends: [
"ocaml" {< "4.07.0"}
"ocamlfind" {build}
"ocamlbuild" {build}
]
synopsis:
"Compatibility package for OCaml's standard iterator type starting from 4.07."
flags: light-uninstall
url {
src: "https://github.com/c-cube/seq/archive/0.1.tar.gz"
checksum: "md5=0e87f9709541ed46ecb6f414bc31458c"
}

15
esy.lock/opam/spawn.v0.12.0/opam → esy.lock/opam/spawn.v0.13.0/opam

@ -7,11 +7,15 @@ dev-repo: "git+https://github.com/janestreet/spawn.git"
doc: "https://janestreet.github.io/spawn/" doc: "https://janestreet.github.io/spawn/"
license: "Apache-2.0" license: "Apache-2.0"
build: [ build: [
["jbuilder" "build" "-p" name "-j" jobs] ["dune" "build" "-p" name "-j" jobs]
# We don't test with OCaml < 4.04 as older versions of ppx_expect
# don't work with dune
["dune" "runtest" "-p" name "-j" jobs] {with-test & ocaml >= "4.04" }
] ]
depends: [ depends: [
"dune" {build}
"ppx_expect" {with-test}
"ocaml" {>= "4.02.3"} "ocaml" {>= "4.02.3"}
"jbuilder" {build & >= "1.0+beta18.1"}
] ]
synopsis: "Spawning sub-processes" synopsis: "Spawning sub-processes"
description: """ description: """
@ -30,9 +34,10 @@ sub-process. For instance if a command is not found, you get a proper
claimed that nowadays fork is as fast as vfork, however in practice claimed that nowadays fork is as fast as vfork, however in practice
fork takes time proportional to the process memory while vfork is fork takes time proportional to the process memory while vfork is
constant time. In application using a lot of memory, vfork can be constant time. In application using a lot of memory, vfork can be
thousands of times faster than fork.""" thousands of times faster than fork.
"""
url { url {
src: src:
"https://github.com/janestreet/spawn/releases/download/v0.12.0/spawn-v0.12.0.tbz" "https://github.com/janestreet/spawn/releases/download/v0.13.0/spawn-v0.13.0.tbz"
checksum: "md5=f9c770cbe3856e6ed5b92ba3ce7c691c" checksum: "md5=6eaadbf8f9231415b51658da6b8b090f"
} }

27
esy.lock/opam/stdlib-shims.0.1.0/opam

@ -0,0 +1,27 @@
opam-version: "2.0"
maintainer: "The stdlib-shims programmers"
authors: "The stdlib-shims programmers"
homepage: "https://github.com/ocaml/stdlib-shims"
doc: "https://ocaml.github.io/stdlib-shims/"
dev-repo: "git+https://github.com/ocaml/stdlib-shims.git"
bug-reports: "https://github.com/ocaml/stdlib-shims/issues"
tags: ["stdlib" "compatibility" "org:ocaml"]
license: ["typeof OCaml system"]
depends: [
"dune" {build}
"ocaml" {>= "4.02.3"}
]
build: [ "dune" "build" "-p" name "-j" jobs ]
synopsis: "Backport some of the new stdlib features to older compiler"
description: """
Backport some of the new stdlib features to older compiler,
such as the Stdlib module.
This allows projects that require compatibility with older compiler to
use these new features in their code.
"""
url {
src:
"https://github.com/ocaml/stdlib-shims/releases/download/0.1.0/stdlib-shims-0.1.0.tbz"
checksum: "md5=12b5704eed70c6bff5ac39a16db1425d"
}

4
esy.lock/opam/uri.2.2.0/opam

@ -16,9 +16,9 @@ depends: [
"ocaml" {>= "4.04.0"} "ocaml" {>= "4.04.0"}
"dune" {build & >= "1.2.0"} "dune" {build & >= "1.2.0"}
"ounit" {with-test & >= "1.0.2"} "ounit" {with-test & >= "1.0.2"}
"ppx_sexp_conv" {build & >= "v0.9.0" & < "v0.12"} "ppx_sexp_conv" {build & >= "v0.9.0" & < "v0.13"}
"re" {>= "1.7.2"} "re" {>= "1.7.2"}
"sexplib0" {< "v0.12"} "sexplib0" {< "v0.13"}
"stringext" {>= "1.4.0"} "stringext" {>= "1.4.0"}
] ]
build: [ build: [

0
esy.lock/overrides/opam__s__dune_opam__c__1.7.2_opam_override/package.json → esy.lock/overrides/opam__s__dune_opam__c__1.9.1_opam_override/package.json

34
esy.lock/overrides/opam__s__merlin_extend_opam__c__0.3_opam_override/files/merlin-extend-winfix-4.2.3007.patch

@ -0,0 +1,34 @@
--- ./extend_helper.ml
+++ ./extend_helper.ml
@@ -1,13 +1,6 @@
-(*pp cppo -V OCAML:`ocamlc -version` *)
open Parsetree
open Extend_protocol
-#if OCAML_VERSION < (4, 3, 0)
-# define CONST_STRING Asttypes.Const_string
-#else
-# define CONST_STRING Parsetree.Pconst_string
-#endif
-
(** Default implementation for [Reader_def.print_outcome] using
[Oprint] from compiler-libs *)
let print_outcome_using_oprint ppf = function
@@ -28,7 +21,7 @@
pstr_loc = Location.none;
pstr_desc = Pstr_eval ({
pexp_loc = Location.none;
- pexp_desc = Pexp_constant (CONST_STRING (msg, None));
+ pexp_desc = Pexp_constant (Asttypes.Const_string (msg, None));
pexp_attributes = [];
}, []);
}]
@@ -112,7 +105,7 @@
let msg = match payload with
| PStr [{
pstr_desc = Pstr_eval ({
- pexp_desc = Pexp_constant (CONST_STRING (msg, _));
+ pexp_desc = Pexp_constant (Asttypes.Const_string (msg, _));
}, _);
}] -> msg
| _ -> "Warning: extension produced an incorrect syntax-error node"

5
esy.lock/overrides/opam__s__merlin_extend_opam__c__0.3_opam_override/package.json

@ -1,9 +1,12 @@
{ {
"buildEnv": {
"PATCH_CMD": "#{ocaml.version == '4.2.3007' ? 'patch -p1 < merlin-extend-winfix-4.2.3007.patch' : 'patch -p1 < merlin-extend-winfix.patch'}"
},
"build": [ "build": [
[ [
"bash", "bash",
"-c", "-c",
"#{os == 'windows' ? 'patch -p1 < merlin-extend-winfix.patch' : 'true'}" "#{os == 'windows' ? $PATCH_CMD : 'true'}"
], ],
[ [
"make" "make"

463
esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/files/ocamlbuild-0.14.0.patch

@ -0,0 +1,463 @@
--- ./Makefile
+++ ./Makefile
@@ -213,7 +213,7 @@
rm -f man/ocamlbuild.1
man/options_man.byte: src/ocamlbuild_pack.cmo
- $(OCAMLC) $^ -I src man/options_man.ml -o man/options_man.byte
+ $(OCAMLC) -I +unix unix.cma $^ -I src man/options_man.ml -o man/options_man.byte
clean::
rm -f man/options_man.cm*
--- ./src/command.ml
+++ ./src/command.ml
@@ -148,9 +148,10 @@
let self = string_of_command_spec_with_calls call_with_tags call_with_target resolve_virtuals in
let b = Buffer.create 256 in
(* The best way to prevent bash from switching to its windows-style
- * quote-handling is to prepend an empty string before the command name. *)
+ * quote-handling is to prepend an empty string before the command name.
+ * space seems to work, too - and the ouput is nicer *)
if Sys.os_type = "Win32" then
- Buffer.add_string b "''";
+ Buffer.add_char b ' ';
let first = ref true in
let put_space () =
if !first then
@@ -260,7 +261,7 @@
let execute_many ?(quiet=false) ?(pretend=false) cmds =
add_parallel_stat (List.length cmds);
- let degraded = !*My_unix.is_degraded || Sys.os_type = "Win32" in
+ let degraded = !*My_unix.is_degraded in
let jobs = !jobs in
if jobs < 0 then invalid_arg "jobs < 0";
let max_jobs = if jobs = 0 then None else Some jobs in
--- ./src/findlib.ml
+++ ./src/findlib.ml
@@ -66,9 +66,6 @@
(fun command -> lexer & Lexing.from_string & run_and_read command)
command
-let run_and_read command =
- Printf.ksprintf run_and_read command
-
let rec query name =
try
Hashtbl.find packages name
@@ -135,7 +132,8 @@
with Not_found -> s
let list () =
- List.map before_space (split_nl & run_and_read "%s list" ocamlfind)
+ let cmd = Shell.quote_filename_if_needed ocamlfind ^ " list" in
+ List.map before_space (split_nl & run_and_read cmd)
(* The closure algorithm is easy because the dependencies are already closed
and sorted for each package. We only have to make the union. We could also
--- ./src/main.ml
+++ ./src/main.ml
@@ -162,6 +162,9 @@
Tags.mem "traverse" tags
|| List.exists (Pathname.is_prefix path_name) !Options.include_dirs
|| List.exists (Pathname.is_prefix path_name) target_dirs)
+ && ((* beware: !Options.build_dir is an absolute directory *)
+ Pathname.normalize !Options.build_dir
+ <> Pathname.normalize (Pathname.pwd/path_name))
end
end
end
--- ./src/my_std.ml
+++ ./src/my_std.ml
@@ -271,13 +271,107 @@
try Array.iter (fun x -> if x = basename then raise Exit) a; false
with Exit -> true
+let command_plain = function
+| [| |] -> 0
+| margv ->
+ let rec waitpid a b =
+ match Unix.waitpid a b with
+ | exception (Unix.Unix_error(Unix.EINTR,_,_)) -> waitpid a b
+ | x -> x
+ in
+ let pid = Unix.(create_process margv.(0) margv stdin stdout stderr) in
+ let pid', process_status = waitpid [] pid in
+ assert (pid = pid');
+ match process_status with
+ | Unix.WEXITED n -> n
+ | Unix.WSIGNALED _ -> 2 (* like OCaml's uncaught exceptions *)
+ | Unix.WSTOPPED _ -> 127
+
+(* can't use Lexers because of circular dependency *)
+let split_path_win str =
+ let rec aux pos =
+ try
+ let i = String.index_from str pos ';' in
+ let len = i - pos in
+ if len = 0 then
+ aux (succ i)
+ else
+ String.sub str pos (i - pos) :: aux (succ i)
+ with Not_found | Invalid_argument _ ->
+ let len = String.length str - pos in
+ if len = 0 then [] else [String.sub str pos len]
+ in
+ aux 0
+
+let windows_shell = lazy begin
+ let rec iter = function
+ | [] -> [| "bash.exe" ; "--norc" ; "--noprofile" |]
+ | hd::tl ->
+ let dash = Filename.concat hd "dash.exe" in
+ if Sys.file_exists dash then [|dash|] else
+ let bash = Filename.concat hd "bash.exe" in
+ if Sys.file_exists bash = false then iter tl else
+ (* if sh.exe and bash.exe exist in the same dir, choose sh.exe *)
+ let sh = Filename.concat hd "sh.exe" in
+ if Sys.file_exists sh then [|sh|] else [|bash ; "--norc" ; "--noprofile"|]
+ in
+ split_path_win (try Sys.getenv "PATH" with Not_found -> "") |> iter
+end
+
+let prep_windows_cmd cmd =
+ (* workaround known ocaml bug, remove later *)
+ if String.contains cmd '\t' && String.contains cmd ' ' = false then
+ " " ^ cmd
+ else
+ cmd
+
+let run_with_shell = function
+| "" -> 0
+| cmd ->
+ let cmd = prep_windows_cmd cmd in
+ let shell = Lazy.force windows_shell in
+ let qlen = Filename.quote cmd |> String.length in
+ (* old versions of dash had problems with bs *)
+ try
+ if qlen < 7_900 then
+ command_plain (Array.append shell [| "-ec" ; cmd |])
+ else begin
+ (* it can still work, if the called command is a cygwin tool *)
+ let ch_closed = ref false in
+ let file_deleted = ref false in
+ let fln,ch =
+ Filename.open_temp_file
+ ~mode:[Open_binary]
+ "ocamlbuildtmp"
+ ".sh"
+ in
+ try
+ let f_slash = String.map ( fun x -> if x = '\\' then '/' else x ) fln in
+ output_string ch cmd;
+ ch_closed:= true;
+ close_out ch;
+ let ret = command_plain (Array.append shell [| "-e" ; f_slash |]) in
+ file_deleted:= true;
+ Sys.remove fln;
+ ret
+ with
+ | x ->
+ if !ch_closed = false then
+ close_out_noerr ch;
+ if !file_deleted = false then
+ (try Sys.remove fln with _ -> ());
+ raise x
+ end
+ with
+ | (Unix.Unix_error _) as x ->
+ (* Sys.command doesn't raise an exception, so run_with_shell also won't
+ raise *)
+ Printexc.to_string x ^ ":" ^ cmd |> prerr_endline;
+ 1
+
let sys_command =
- match Sys.os_type with
- | "Win32" -> fun cmd ->
- if cmd = "" then 0 else
- let cmd = "bash --norc -c " ^ Filename.quote cmd in
- Sys.command cmd
- | _ -> fun cmd -> if cmd = "" then 0 else Sys.command cmd
+ if Sys.win32 then run_with_shell
+ else fun cmd -> if cmd = "" then 0 else Sys.command cmd
(* FIXME warning fix and use Filename.concat *)
let filename_concat x y =
--- ./src/my_std.mli
+++ ./src/my_std.mli
@@ -69,3 +69,6 @@
val split_ocaml_version : (int * int * int * string) option
(** (major, minor, patchlevel, rest) *)
+
+val windows_shell : string array Lazy.t
+val prep_windows_cmd : string -> string
--- ./src/ocamlbuild_executor.ml
+++ ./src/ocamlbuild_executor.ml
@@ -34,6 +34,8 @@
job_stdin : out_channel;
job_stderr : in_channel;
job_buffer : Buffer.t;
+ job_pid : int;
+ job_tmp_file: string option;
mutable job_dying : bool;
};;
@@ -76,6 +78,61 @@
in
loop 0
;;
+
+let open_process_full_win cmd env =
+ let (in_read, in_write) = Unix.pipe () in
+ let (out_read, out_write) = Unix.pipe () in
+ let (err_read, err_write) = Unix.pipe () in
+ Unix.set_close_on_exec in_read;
+ Unix.set_close_on_exec out_write;
+ Unix.set_close_on_exec err_read;
+ let inchan = Unix.in_channel_of_descr in_read in
+ let outchan = Unix.out_channel_of_descr out_write in
+ let errchan = Unix.in_channel_of_descr err_read in
+ let shell = Lazy.force Ocamlbuild_pack.My_std.windows_shell in
+ let test_cmd =
+ String.concat " " (List.map Filename.quote (Array.to_list shell)) ^
+ "-ec " ^
+ Filename.quote (Ocamlbuild_pack.My_std.prep_windows_cmd cmd) in
+ let argv,tmp_file =
+ if String.length test_cmd < 7_900 then
+ Array.append
+ shell
+ [| "-ec" ; Ocamlbuild_pack.My_std.prep_windows_cmd cmd |],None
+ else
+ let fln,ch = Filename.open_temp_file ~mode:[Open_binary] "ocamlbuild" ".sh" in
+ output_string ch (Ocamlbuild_pack.My_std.prep_windows_cmd cmd);
+ close_out ch;
+ let fln' = String.map (function '\\' -> '/' | c -> c) fln in
+ Array.append
+ shell
+ [| "-c" ; fln' |], Some fln in
+ let pid =
+ Unix.create_process_env argv.(0) argv env out_read in_write err_write in
+ Unix.close out_read;
+ Unix.close in_write;
+ Unix.close err_write;
+ (pid, inchan, outchan, errchan,tmp_file)
+
+let close_process_full_win (pid,inchan, outchan, errchan, tmp_file) =
+ let delete tmp_file =
+ match tmp_file with
+ | None -> ()
+ | Some x -> try Sys.remove x with Sys_error _ -> () in
+ let tmp_file_deleted = ref false in
+ try
+ close_in inchan;
+ close_out outchan;
+ close_in errchan;
+ let res = snd(Unix.waitpid [] pid) in
+ tmp_file_deleted := true;
+ delete tmp_file;
+ res
+ with
+ | x when tmp_file <> None && !tmp_file_deleted = false ->
+ delete tmp_file;
+ raise x
+
(* ***)
(*** execute *)
(* XXX: Add test for non reentrancy *)
@@ -130,10 +187,16 @@
(*** add_job *)
let add_job cmd rest result id =
(*display begin fun oc -> fp oc "Job %a is %s\n%!" print_job_id id cmd; end;*)
- let (stdout', stdin', stderr') = open_process_full cmd env in
+ let (pid,stdout', stdin', stderr', tmp_file) =
+ if Sys.win32 then open_process_full_win cmd env else
+ let a,b,c = open_process_full cmd env in
+ -1,a,b,c,None
+ in
incr jobs_active;
- set_nonblock (doi stdout');
- set_nonblock (doi stderr');
+ if not Sys.win32 then (
+ set_nonblock (doi stdout');
+ set_nonblock (doi stderr');
+ );
let job =
{ job_id = id;
job_command = cmd;
@@ -143,7 +206,9 @@
job_stdin = stdin';
job_stderr = stderr';
job_buffer = Buffer.create 1024;
- job_dying = false }
+ job_dying = false;
+ job_tmp_file = tmp_file;
+ job_pid = pid }
in
outputs := FDM.add (doi stdout') job (FDM.add (doi stderr') job !outputs);
jobs := JS.add job !jobs;
@@ -199,6 +264,7 @@
try
read fd u 0 (Bytes.length u)
with
+ | Unix.Unix_error(Unix.EPIPE,_,_) when Sys.win32 -> 0
| Unix.Unix_error(e,_,_) ->
let msg = error_message e in
display (fun oc -> fp oc
@@ -241,14 +307,19 @@
decr jobs_active;
(* PR#5371: we would get EAGAIN below otherwise *)
- clear_nonblock (doi job.job_stdout);
- clear_nonblock (doi job.job_stderr);
-
+ if not Sys.win32 then (
+ clear_nonblock (doi job.job_stdout);
+ clear_nonblock (doi job.job_stderr);
+ );
do_read ~loop:true (doi job.job_stdout) job;
do_read ~loop:true (doi job.job_stderr) job;
outputs := FDM.remove (doi job.job_stdout) (FDM.remove (doi job.job_stderr) !outputs);
jobs := JS.remove job !jobs;
- let status = close_process_full (job.job_stdout, job.job_stdin, job.job_stderr) in
+ let status =
+ if Sys.win32 then
+ close_process_full_win (job.job_pid, job.job_stdout, job.job_stdin, job.job_stderr, job.job_tmp_file)
+ else
+ close_process_full (job.job_stdout, job.job_stdin, job.job_stderr) in
let shown = ref false in
--- ./src/ocamlbuild_unix_plugin.ml
+++ ./src/ocamlbuild_unix_plugin.ml
@@ -48,12 +48,22 @@
end
let run_and_open s kont =
+ let s_orig = s in
+ let s =
+ (* Be consistent! My_unix.run_and_open uses My_std.sys_command and
+ sys_command uses bash. *)
+ if Sys.win32 = false then s else
+ let l = match Lazy.force My_std.windows_shell |> Array.to_list with
+ | hd::tl -> (Filename.quote hd)::tl
+ | _ -> assert false in
+ "\"" ^ (String.concat " " l) ^ " -ec " ^ Filename.quote (" " ^ s) ^ "\""
+ in
let ic = Unix.open_process_in s in
let close () =
match Unix.close_process_in ic with
| Unix.WEXITED 0 -> ()
| Unix.WEXITED _ | Unix.WSIGNALED _ | Unix.WSTOPPED _ ->
- failwith (Printf.sprintf "Error while running: %s" s) in
+ failwith (Printf.sprintf "Error while running: %s" s_orig) in
let res = try
kont ic
with e -> (close (); raise e)
--- ./src/options.ml
+++ ./src/options.ml
@@ -174,11 +174,24 @@
build_dir := Filename.concat (Sys.getcwd ()) s
else
build_dir := s
+
+let slashify =
+ if Sys.win32 then fun p -> String.map (function '\\' -> '/' | x -> x) p
+ else fun p ->p
+
+let sb () =
+ match Sys.os_type with
+ | "Win32" ->
+ (try set_binary_mode_out stdout true with _ -> ());
+ | _ -> ()
+
+
let spec = ref (
let print_version () =
+ sb ();
Printf.printf "ocamlbuild %s\n%!" Ocamlbuild_config.version; raise Exit_OK
in
- let print_vnum () = print_endline Ocamlbuild_config.version; raise Exit_OK in
+ let print_vnum () = sb (); print_endline Ocamlbuild_config.version; raise Exit_OK in
Arg.align
[
"-version", Unit print_version , " Display the version";
@@ -257,8 +270,8 @@
"-build-dir", String set_build_dir, "<path> Set build directory (implies no-links)";
"-install-lib-dir", Set_string Ocamlbuild_where.libdir, "<path> Set the install library directory";
"-install-bin-dir", Set_string Ocamlbuild_where.bindir, "<path> Set the install binary directory";
- "-where", Unit (fun () -> print_endline !Ocamlbuild_where.libdir; raise Exit_OK), " Display the install library directory";
- "-which", String (fun cmd -> print_endline (find_tool cmd); raise Exit_OK), "<command> Display path to the tool command";
+ "-where", Unit (fun () -> sb (); print_endline (slashify !Ocamlbuild_where.libdir); raise Exit_OK), " Display the install library directory";
+ "-which", String (fun cmd -> sb (); print_endline (slashify (find_tool cmd)); raise Exit_OK), "<command> Display path to the tool command";
"-ocamlc", set_cmd ocamlc, "<command> Set the OCaml bytecode compiler";
"-plugin-ocamlc", set_cmd plugin_ocamlc, "<command> Set the OCaml bytecode compiler \
used when building myocamlbuild.ml (only)";
--- ./src/pathname.ml
+++ ./src/pathname.ml
@@ -84,6 +84,26 @@
| x :: xs -> x :: normalize_list xs
let normalize x =
+ let x =
+ if Sys.win32 = false then
+ x
+ else
+ let len = String.length x in
+ let b = Bytes.create len in
+ for i = 0 to pred len do
+ match x.[i] with
+ | '\\' -> Bytes.set b i '/'
+ | c -> Bytes.set b i c
+ done;
+ if len > 1 then (
+ let c1 = Bytes.get b 0 in
+ let c2 = Bytes.get b 1 in
+ if c2 = ':' && c1 >= 'a' && c1 <= 'z' &&
+ ( len = 2 || Bytes.get b 2 = '/') then
+ Bytes.set b 0 (Char.uppercase_ascii c1)
+ );
+ Bytes.unsafe_to_string b
+ in
if Glob.eval not_normal_form_re x then
let root, paths = split x in
join root (normalize_list paths)
--- ./src/shell.ml
+++ ./src/shell.ml
@@ -24,12 +24,26 @@
| 'a'..'z' | 'A'..'Z' | '0'..'9' | '.' | '-' | '/' | '_' | ':' | '@' | '+' | ',' -> loop (pos + 1)
| _ -> false in
loop 0
+
+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 unix_quote = generic_quote "'\\''"
+
let quote_filename_if_needed s =
if is_simple_filename s then s
(* We should probably be using [Filename.unix_quote] except that function
* isn't exported. Users on Windows will have to live with not being able to
* install OCaml into c:\o'caml. Too bad. *)
- else if Sys.os_type = "Win32" then Printf.sprintf "'%s'" s
+ else if Sys.os_type = "Win32" then unix_quote s
else Filename.quote s
let chdir dir =
reset_filesys_cache ();
@@ -37,7 +51,7 @@
let run args target =
reset_readdir_cache ();
let cmd = String.concat " " (List.map quote_filename_if_needed args) in
- if !*My_unix.is_degraded || Sys.os_type = "Win32" then
+ if !*My_unix.is_degraded then
begin
Log.event cmd target Tags.empty;
let st = sys_command cmd in

27
esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json

@ -0,0 +1,27 @@
{
"build": [
[
"bash",
"-c",
"#{os == 'windows' ? 'patch -p1 < ocamlbuild-0.14.0.patch' : 'true'}"
],
[
"make",
"-f",
"configure.make",
"all",
"OCAMLBUILD_PREFIX=#{self.install}",
"OCAMLBUILD_BINDIR=#{self.bin}",
"OCAMLBUILD_LIBDIR=#{self.lib}",
"OCAMLBUILD_MANDIR=#{self.man}",
"OCAMLBUILD_NATIVE=true",
"OCAMLBUILD_NATIVE_TOOLS=true"
],
[
"make",
"check-if-preinstalled",
"all",
"#{os == 'windows' ? 'install' : 'opam-install'}"
]
]
}

78
esy.lock/overrides/opam__s__ppx__deriving_opam__c__4.2.1_opam_override/files/ppx_deriving-4.2.1.patch

@ -0,0 +1,78 @@
--- ./pkg/topkg.ml
+++ ./pkg/topkg.ml
@@ -152,7 +152,63 @@
module Exts : Exts = struct
let interface = [".mli"; ".cmi"; ".cmti"]
let interface_opt = ".cmx" :: interface
- let c_library = if Sys.win32 then [".lib"] else [".a"]
+ let c_library =
+ match Sys.win32 with
+ | false -> [".a"]
+ | true ->
+ let input_line ch =
+ try
+ let s = input_line ch in
+ let len = String.length s in
+ if len > 0 && Sys.os_type = "Win32" && s.[len-1] = '\r' then
+ Some (String.sub s 0 (pred len))
+ else
+ Some s
+ with
+ | End_of_file -> None
+ in
+ let rec get_ext_lib ch =
+ match input_line ch with
+ | None -> ".a"
+ | Some s ->
+ let len = String.length s in
+ if len < 11 || s.[0] <> 'e' || String.sub s 0 9 <> "ext_lib: " then
+ get_ext_lib ch
+ else
+ String.sub s 9 (len - 9)
+ in
+ let get_ext_lib fln =
+ let ch = open_in fln in
+ let ch_closed = ref false in
+ try
+ let res = get_ext_lib ch in
+ ch_closed := true;
+ close_in ch ;
+ res
+ with
+ | x when !ch_closed = false ->
+ close_in_noerr ch;
+ raise x
+ in
+ let e_null = if Sys.win32 then " 2>NUL" else " 2>/dev/null" in
+ let fln = Filename.temp_file "get_ext" ".txt" in
+ let cleanup = lazy (try Sys.remove fln with Sys_error _ -> ()) in
+ try
+ let qfln = Filename.quote fln in
+ let cmd = "ocamlfind ocamlc -config > " ^ qfln ^ e_null in
+ let ec = Sys.command cmd in
+ if ec <> 0 then (
+ let cmd = "ocamlc -config > " ^ qfln ^ e_null in
+ let ec = Sys.command cmd in
+ if ec <> 0 then
+ failwith (Printf.sprintf "couldn't call ocamlc -config");
+ );
+ let res = get_ext_lib fln in
+ Lazy.force cleanup;
+ [res]
+ with
+ | x -> Lazy.force cleanup; raise x
+
let c_dll_library = if Sys.win32 then [".dll"] else [".so"]
let library = [".cma"; ".cmxa"; ".cmxs"] @ c_library
let module_library = (interface_opt @ library)
@@ -258,7 +314,9 @@
let src, dst =
if not auto then src, dst else
let dst = match dst with
- | None -> Some (Filename.basename src)
+ | None ->
+ let src = if Sys.os_type <> "Win32" then src else src ^ ".exe" in
+ Some (Filename.basename src)
| Some _ as dst -> dst
in
let src = if Env.native then src ^ ".native" else src ^ ".byte" in

15
esy.lock/overrides/opam__s__ppx__deriving_opam__c__4.2.1_opam_override/package.json

@ -0,0 +1,15 @@
{
"build": [
[
"bash",
"-c",
"#{os == 'windows' ? 'patch -p1 < ppx_deriving-4.2.1.patch' : 'true'}"
],
[
"ocaml",
"pkg/build.ml",
"native=true",
"native-dynlink=true"
]
]
}

3
executable/Env.re

@ -24,7 +24,7 @@ let rec makeTemporarySymlink = () => {
}; };
}; };
let rec printUseOnCd = (~shell) => let printUseOnCd = (~shell) =>
switch (shell) { switch (shell) {
| System.Shell.Bash => {| | System.Shell.Bash => {|
__fnmcd () { __fnmcd () {
@ -72,7 +72,6 @@ let rec printUseOnCd = (~shell) =>
let run = let run =
(~forceShell, ~multishell, ~nodeDistMirror, ~fnmDir, ~useOnCd, ~logLevel) => { (~forceShell, ~multishell, ~nodeDistMirror, ~fnmDir, ~useOnCd, ~logLevel) => {
open Lwt;
open System.Shell; open System.Shell;
let%lwt shell = let%lwt shell =

2
executable/Use.re

@ -19,12 +19,14 @@ let switchVersion = (~version, ~quiet) => {
switch (parsedVersion) { switch (parsedVersion) {
| Local(version) => Versions.Local.toDirectory(version) |> Lwt.return | Local(version) => Versions.Local.toDirectory(version) |> Lwt.return
| Alias(alias) => Versions.Aliases.toDirectory(alias) |> Lwt.return | Alias(alias) => Versions.Aliases.toDirectory(alias) |> Lwt.return
| System => Versions.Local.systemVersion.fullPath |> Lwt.return
}; };
let versionName = let versionName =
switch (parsedVersion) { switch (parsedVersion) {
| Local(v) => v | Local(v) => v
| Alias(v) => v | Alias(v) => v
| System => "system"
}; };
let destination = Filename.concat(versionPath, "installation"); let destination = Filename.concat(versionPath, "installation");

3
feature_tests/system_node/node

@ -0,0 +1,3 @@
#!/bin/bash
echo "custom build"

16
feature_tests/system_node/run.sh

@ -0,0 +1,16 @@
#!/bin/bash
set -e
PATH="$(pwd)":$PATH # simulating a custom `node`
eval "$(fnm env --multi)"
fnm install 10
fnm use 10
fnm use system
NVER="$(node -v)"
if [ "$NVER" != "custom build" ]; then
echo "Expected \`node -v\` to be resolved to the system Node.js, but got $NVER"
exit 1
fi

5
library/Fs.re

@ -42,3 +42,8 @@ let exists = path => {
}; };
let realpath = Filename.realpath; let realpath = Filename.realpath;
let try_readlink = path =>
try (Ok(Unix.readlink(path))) {
| err => Error(err)
};

6
library/Http.re

@ -1,6 +1,5 @@
open Lwt; open Lwt;
open Cohttp; open Cohttp;
open Cohttp_lwt;
open Cohttp_lwt_unix; open Cohttp_lwt_unix;
type response = { type response = {
@ -15,7 +14,7 @@ exception Not_found(response);
let throwOnKnownErrors = let throwOnKnownErrors =
fun fun
| {status: 404} as r => Lwt.fail(Not_found(r)) | {status: 404, _} as r => Lwt.fail(Not_found(r))
| r => Lwt.return(r); | r => Lwt.return(r);
let rec makeRequest = url => let rec makeRequest = url =>
@ -37,6 +36,7 @@ let rec makeRequest = url =>
); );
let download = (url, ~into) => { let download = (url, ~into) => {
let%lwt _ = makeRequest(url) >>= (({body}) => Fs.writeFile(into, body)); let%lwt _ =
makeRequest(url) >>= (({body, _}) => Fs.writeFile(into, body));
Lwt.return(); Lwt.return();
}; };

2
library/System.re

@ -23,7 +23,7 @@ module Shell = {
let parentPid = List.nth(psResult, 0); let parentPid = List.nth(psResult, 0);
let executable = List.nth(psResult, 1) |> Filename.basename; let executable = List.nth(psResult, 1) |> Filename.basename;
Lwt.return_some((parentPid, executable)); Lwt.return_some((parentPid, executable));
| [_, ...xs] => Lwt.return_none | [_, ..._] => Lwt.return_none
}; };
}; };

59
library/Versions.re

@ -31,6 +31,8 @@ module Local = {
aliases: list(string), aliases: list(string),
}; };
let systemVersion: t = {name: "system", fullPath: "/dev/null", aliases: []};
let toDirectory = name => Filename.concat(Directories.nodeVersions, name); let toDirectory = name => Filename.concat(Directories.nodeVersions, name);
let getLatestInstalledNameByPrefix = prefix => { let getLatestInstalledNameByPrefix = prefix => {
@ -44,7 +46,7 @@ module Local = {
_ => Lwt.return_nil, _ => Lwt.return_nil,
); );
switch (versions) { switch (versions) {
| [version, ...xs] => Lwt.return_some(version) | [version, ..._xs] => Lwt.return_some(version)
| [] => Lwt.return_none | [] => Lwt.return_none
}; };
}; };
@ -136,8 +138,8 @@ module Remote = {
|> List.map(x => { |> List.map(x => {
let parts = String.split_on_char('/', x) |> List.rev; let parts = String.split_on_char('/', x) |> List.rev;
switch (parts) { switch (parts) {
| ["", x, ...xs] => x ++ "/" | ["", x, ..._xs] => x ++ "/"
| [x, ...xs] => x | [x, ..._xs] => x
| [] => "" | [] => ""
}; };
}); });
@ -169,16 +171,25 @@ let endsWith = (~suffix, str) => {
exception No_Download_For_System(System.NodeOS.t, System.NodeArch.t); exception No_Download_For_System(System.NodeOS.t, System.NodeArch.t);
let getCurrentVersion = () => let getCurrentVersion = () => {
switch (Fs.realpath(Directories.currentVersion)) { switch (Fs.realpath(Directories.currentVersion)) {
| installationPath => | installationPath =>
let fullPath = Filename.dirname(installationPath); let fullPath = Filename.dirname(installationPath);
Some( Some(
Local.{fullPath, name: Core.Filename.basename(fullPath), aliases: []}, Local.{fullPath, name: Core.Filename.basename(fullPath), aliases: []},
); );
| exception (Unix.Unix_error(_, _, _)) => None | exception (Unix.Unix_error(_, _, _)) =>
switch (Fs.try_readlink(Directories.currentVersion)) {
| Ok(x)
when
Core.String.substr_index(x, ~pattern=Local.systemVersion.fullPath)
== Some(0) =>
Some(Local.systemVersion)
| Ok(_)
| Error(_) => None
}
}; };
};
let getInstalledVersions = () => { let getInstalledVersions = () => {
let%lwt versions = let%lwt versions =
Fs.readdir(Directories.nodeVersions) |> Lwt.map(List.sort(compare)) Fs.readdir(Directories.nodeVersions) |> Lwt.map(List.sort(compare))
@ -192,6 +203,7 @@ let getInstalledVersions = () => {
aliases: Opt.(Aliases.VersionAliasMap.find_opt(name, aliases) or []), aliases: Opt.(Aliases.VersionAliasMap.find_opt(name, aliases) or []),
} }
) )
|> List.append([Local.systemVersion])
|> Lwt.return; |> Lwt.return;
}; };
@ -223,7 +235,6 @@ let getRemoteVersions = () => {
let getRemoteLatestVersionByPrefix = prefix => { let getRemoteLatestVersionByPrefix = prefix => {
open Remote; open Remote;
open Lwt;
let%lwt remoteVersions = getRemoteVersions(); let%lwt remoteVersions = getRemoteVersions();
@ -234,7 +245,7 @@ let getRemoteLatestVersionByPrefix = prefix => {
|> List.sort(flip(compare)); |> List.sort(flip(compare));
switch (compatibleVersions) { switch (compatibleVersions) {
| [version, ...vs] => Lwt.return_some(version) | [version, ..._vs] => Lwt.return_some(version)
| [] => Lwt.return_none | [] => Lwt.return_none
}; };
}; };
@ -287,24 +298,30 @@ let getFileToDownload = (~version, ~os, ~arch) => {
}; };
type t = type t =
| System
| Alias(string) | Alias(string)
| Local(string); | Local(string);
let parse = version => { let parse = version => {
let formattedVersion = format(version); let formattedVersion = format(version);
let aliasPath = Aliases.toDirectory(version);
let versionPath = Local.toDirectory(formattedVersion); if (formattedVersion == Local.systemVersion.name) {
Lwt.return_some(System);
let%lwt aliasExists = Fs.exists(aliasPath) } else {
and versionExists = Fs.exists(versionPath) let aliasPath = Aliases.toDirectory(version);
and versionByPrefixPath = let versionPath = Local.toDirectory(formattedVersion);
Local.getLatestInstalledNameByPrefix(formattedVersion);
let%lwt aliasExists = Fs.exists(aliasPath)
switch (versionExists, aliasExists, versionByPrefixPath) { and versionExists = Fs.exists(versionPath)
| (true, _, _) => Some(Local(formattedVersion)) |> Lwt.return and versionByPrefixPath =
| (_, true, _) => Some(Alias(version)) |> Lwt.return Local.getLatestInstalledNameByPrefix(formattedVersion);
| (_, false, Some(version)) => Some(Local(version)) |> Lwt.return
| (false, false, None) => Lwt.return_none switch (versionExists, aliasExists, versionByPrefixPath) {
| (true, _, _) => Some(Local(formattedVersion)) |> Lwt.return
| (_, true, _) => Some(Alias(version)) |> Lwt.return
| (_, false, Some(version)) => Some(Local(version)) |> Lwt.return
| (false, false, None) => Lwt.return_none
};
}; };
}; };

2
library/dune

@ -8,5 +8,5 @@
; Other libraries list this name in their package.json 'require' field to use this library. ; Other libraries list this name in their package.json 'require' field to use this library.
(public_name fnm.lib) (public_name fnm.lib)
(libraries pastel.lib str core lwt ssl lwt_ssl lambdasoup semver cohttp cohttp-lwt cohttp-lwt-unix console.lib ) (libraries pastel.lib str core lwt ssl lwt_ssl lambdasoup semver cohttp cohttp-lwt cohttp-lwt-unix console.lib )
(preprocess ( pps lwt_ppx ppx_let )) ; From package.json preprocess field (preprocess ( pps lwt_ppx ppx_let ppx_deriving.show )) ; From package.json preprocess field
) )

4
package.json

@ -28,7 +28,8 @@
"preprocess": [ "preprocess": [
"pps", "pps",
"lwt_ppx", "lwt_ppx",
"ppx_let" "ppx_let",
"ppx_deriving.show"
], ],
"require": [ "require": [
"pastel.lib", "pastel.lib",
@ -85,6 +86,7 @@
"@opam/lwt": "*", "@opam/lwt": "*",
"@opam/lwt_ppx": "*", "@opam/lwt_ppx": "*",
"@opam/ppx_let": "*", "@opam/ppx_let": "*",
"@opam/ppx_deriving": "*",
"@opam/cohttp": "*", "@opam/cohttp": "*",
"@opam/cohttp-lwt": "*", "@opam/cohttp-lwt": "*",
"@opam/cohttp-lwt-unix": "*", "@opam/cohttp-lwt-unix": "*",

2
test/SmokeTest.re

@ -1,6 +1,6 @@
open TestFramework; open TestFramework;
describe("Smoke test", ({test}) => { describe("Smoke test", ({test, _}) => {
test("Tests run!", ({expect}) => test("Tests run!", ({expect}) =>
expect.int(1).toBe(1) expect.int(1).toBe(1)
); );

Loading…
Cancel
Save