Browse Source

Rewrite fnm in Rust (merge fnm.rs into fnm) — adding Windows support! (#246)

remotes/origin/add-with-shims
Gal Schlezinger 4 years ago committed by GitHub
parent
commit
9ba282a705
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      .ci/bootstrap
  2. 10
      .ci/create-static-binary.sh
  3. 26
      .ci/esy-build-steps.yml
  4. 13
      .ci/install.sh
  5. 5
      .ci/pre-commit-hook
  6. 43
      .ci/prepare-fnm-package.js
  7. 62
      .ci/prepare-version.js
  8. 43
      .ci/print-licenses.js
  9. 11
      .ci/publish-build-cache.yml
  10. 23
      .ci/restore-build-cache.yml
  11. 4
      .dockerignore
  12. 5
      .gitattributes
  13. 67
      .github/workflows/refmt.yml
  14. 175
      .github/workflows/rust.yml
  15. 19
      .gitignore
  16. 2048
      Cargo.lock
  17. 41
      Cargo.toml
  18. 18
      Dockerfile
  19. 74
      azure-pipelines.yml
  20. 3
      build.rs
  21. 1
      dune
  22. 2
      dune-project
  23. 3
      esy.lock/.gitattributes
  24. 3
      esy.lock/.gitignore
  25. 7055
      esy.lock/index.json
  26. 38
      esy.lock/opam/asn1-combinators.0.2.2/opam
  27. 38
      esy.lock/opam/astring.0.8.3/opam
  28. 34
      esy.lock/opam/atd.2.0.0/opam
  29. 29
      esy.lock/opam/atdgen-runtime.2.0.0/opam
  30. 44
      esy.lock/opam/atdgen.2.0.0/opam
  31. 9
      esy.lock/opam/base-bytes.base/opam
  32. 6
      esy.lock/opam/base-threads.base/opam
  33. 6
      esy.lock/opam/base-unix.base/opam
  34. 36
      esy.lock/opam/base.v0.13.1/opam
  35. 38
      esy.lock/opam/base64.3.3.0/opam
  36. 23
      esy.lock/opam/bigarray-compat.1.0.0/opam
  37. 45
      esy.lock/opam/biniou.1.2.1/opam
  38. 36
      esy.lock/opam/cmdliner.1.0.4/opam
  39. 53
      esy.lock/opam/cohttp-lwt-unix.2.5.1/opam
  40. 49
      esy.lock/opam/cohttp-lwt.2.5.1/opam
  41. 64
      esy.lock/opam/cohttp.2.5.1/opam
  42. 39
      esy.lock/opam/conduit-lwt-unix.2.0.2/opam
  43. 32
      esy.lock/opam/conduit-lwt.2.0.2/opam
  44. 56
      esy.lock/opam/conduit.2.0.2/opam
  45. 22
      esy.lock/opam/conf-m4.1/opam
  46. 18
      esy.lock/opam/conf-perl.1/opam
  47. 37
      esy.lock/opam/cppo.1.6.6/opam
  48. 22
      esy.lock/opam/cpuid.0.1.2/opam
  49. 35
      esy.lock/opam/cstruct-lwt.5.1.1/opam
  50. 39
      esy.lock/opam/cstruct-sexp.5.1.1/opam
  51. 37
      esy.lock/opam/cstruct.5.1.1/opam
  52. 37
      esy.lock/opam/domain-name.0.3.0/opam
  53. 43
      esy.lock/opam/dune-configurator.2.3.1/opam
  54. 42
      esy.lock/opam/dune-private-libs.2.3.1/opam
  55. 54
      esy.lock/opam/dune.2.3.1/opam
  56. 46
      esy.lock/opam/easy-format.1.3.2/opam
  57. 27
      esy.lock/opam/fieldslib.v0.13.0/opam
  58. 44
      esy.lock/opam/fmt.0.8.8/opam
  59. 36
      esy.lock/opam/gmap.0.3.0/opam
  60. 35
      esy.lock/opam/ipaddr-sexp.4.0.0/opam
  61. 51
      esy.lock/opam/ipaddr.4.0.0/opam
  62. 39
      esy.lock/opam/jbuilder.1.0+beta20.2/opam
  63. 37
      esy.lock/opam/jsonm.1.0.1/opam
  64. 32
      esy.lock/opam/junit.2.0.2/opam
  65. 46
      esy.lock/opam/lambdasoup.0.7.0/opam
  66. 64
      esy.lock/opam/logs.0.7.0/opam
  67. 62
      esy.lock/opam/lwt.5.1.2/opam
  68. 34
      esy.lock/opam/lwt_ppx.2.0.0/opam
  69. 40
      esy.lock/opam/macaddr.4.0.0/opam
  70. 41
      esy.lock/opam/magic-mime.1.1.2/opam
  71. 53
      esy.lock/opam/markup.0.8.2/opam
  72. 27
      esy.lock/opam/menhir.20200211/opam
  73. 25
      esy.lock/opam/menhirLib.20200211/opam
  74. 25
      esy.lock/opam/menhirSdk.20200211/opam
  75. 29
      esy.lock/opam/merlin-extend.0.5/opam
  76. 71
      esy.lock/opam/merlin.3.3.3/opam
  77. 8
      esy.lock/opam/mirage-no-solo5.1/opam
  78. 8
      esy.lock/opam/mirage-no-xen.1/opam
  79. 24
      esy.lock/opam/mmap.1.1.0/opam
  80. 47
      esy.lock/opam/nocrypto.0.5.4-2/files/0001-add-missing-runtime-dependencies-in-_tags.patch
  81. 39
      esy.lock/opam/nocrypto.0.5.4-2/files/0002-add-ppx_sexp_conv-as-a-runtime-dependency-in-the-pac.patch
  82. 146
      esy.lock/opam/nocrypto.0.5.4-2/files/0003-Auto-detect-ppx_sexp_conv-runtime-library.patch
  83. 38
      esy.lock/opam/nocrypto.0.5.4-2/files/0004-pack-package-workaround-ocamlbuild-272.patch
  84. 32
      esy.lock/opam/nocrypto.0.5.4-2/files/0005-use-modern-cstruct-findlib.patch
  85. 24
      esy.lock/opam/nocrypto.0.5.4-2/files/0006-explicit-dependency-on-sexplib.patch
  86. 58
      esy.lock/opam/nocrypto.0.5.4-2/files/0007-mirage-entropy.patch
  87. 95
      esy.lock/opam/nocrypto.0.5.4-2/opam
  88. 59
      esy.lock/opam/num.1.3/files/installation-warning.patch
  89. 34
      esy.lock/opam/num.1.3/opam
  90. 23
      esy.lock/opam/ocaml-compiler-libs.v0.12.1/opam
  91. 37
      esy.lock/opam/ocaml-migrate-parsetree.1.6.0/opam
  92. 36
      esy.lock/opam/ocamlbuild.0.14.0/opam
  93. 4
      esy.lock/opam/ocamlfind.1.8.1/files/ocaml-stub
  94. 6
      esy.lock/opam/ocamlfind.1.8.1/files/ocamlfind.install
  95. 50
      esy.lock/opam/ocamlfind.1.8.1/opam
  96. 22
      esy.lock/opam/ocb-stubblr.0.1.1-1/files/custom-cclib.patch
  97. 33
      esy.lock/opam/ocb-stubblr.0.1.1-1/files/use-OPAM_SWITCH_PREFIX.patch
  98. 56
      esy.lock/opam/ocb-stubblr.0.1.1-1/opam
  99. 33
      esy.lock/opam/ocplib-endian.1.0/opam
  100. 43
      esy.lock/opam/parsexp.v0.13.0/opam
  101. Some files were not shown because too many files have changed in this diff Show More

11
.ci/bootstrap

@ -1,11 +0,0 @@ @@ -1,11 +0,0 @@
#!/bin/bash
GIT_ROOT=$(git rev-parse --show-toplevel)
if [ "$GIT_ROOT" == "" ]; then
echo "Git root cannot be empty"
exit 1
fi
rm -f $GIT_ROOT/.git/hooks/pre-commit &> /dev/null
ln -s $GIT_ROOT/.ci/pre-commit-hook $GIT_ROOT/.git/hooks/pre-commit

10
.ci/create-static-binary.sh

@ -1,10 +0,0 @@ @@ -1,10 +0,0 @@
#!/bin/bash
echo "Building binary in docker"
docker build . -t schlez/fnm-static-binary
echo "Copying to ./fnm"
docker run --rm -v $(pwd):$(pwd) --workdir $(pwd) schlez/fnm-static-binary cp /app/_esy/default/build/default/executable/FnmApp.exe ./fnm
strip ./fnm

26
.ci/esy-build-steps.yml

@ -1,26 +0,0 @@ @@ -1,26 +0,0 @@
# Cross-platform set of build steps for building esy projects
steps:
- task: NodeTool@0
inputs:
versionSpec: '8.9'
- script: npm install -g esy@latest
displayName: 'npm install -g esy@latest'
- script: esy
displayName: 'esy install'
- script: esy verify-fnm-package
displayName: 'Verify Fnm__Package.re file'
- script: esy pesy
displayName: 'esy pesy'
- script: esy build
displayName: 'esy build'
- script: esy test
displayName: 'esy test'
- script: esy x fnm.exe
displayName: 'Run the main binary'
- script: esy ls-libs
continueOnError: true
displayName: 'Show all libraries including this package lib'
- script: esy release
displayName: 'Test Creation of Prebuilt Binary Releases'
continueOnError: true

13
.ci/install.sh

@ -76,15 +76,20 @@ download_fnm() { @@ -76,15 +76,20 @@ download_fnm() {
echo "Downloading $URL..."
mkdir -p "$INSTALL_DIR" &>/dev/null
curl --progress-bar -L "$URL" -o "$DOWNLOAD_DIR/$FILENAME.zip"
if [ 0 -ne $? ]; then
if ! curl --progress-bar -L "$URL" -o "$DOWNLOAD_DIR/$FILENAME.zip"; then
echo "Download failed. Check that the release/filename are correct."
exit 1
fi
unzip -q "$DOWNLOAD_DIR/$FILENAME.zip" -d "$DOWNLOAD_DIR"
mv "$DOWNLOAD_DIR/$FILENAME/fnm" "$INSTALL_DIR/fnm"
if [ -f "$DOWNLOAD_DIR/fnm" ]; then
mv "$DOWNLOAD_DIR/fnm" "$INSTALL_DIR/fnm"
else
mv "$DOWNLOAD_DIR/$FILENAME/fnm" "$INSTALL_DIR/fnm"
fi
chmod u+x "$INSTALL_DIR/fnm"
fi
}
@ -133,7 +138,7 @@ ensure_containing_dir_exists() { @@ -133,7 +138,7 @@ ensure_containing_dir_exists() {
}
setup_shell() {
CURRENT_SHELL=$(basename $SHELL)
CURRENT_SHELL="$(basename "$SHELL")"
if [ "$CURRENT_SHELL" == "zsh" ]; then
CONF_FILE=$HOME/.zshrc

5
.ci/pre-commit-hook

@ -1,5 +0,0 @@ @@ -1,5 +0,0 @@
#!/bin/bash
set -e
npx lint-staged

43
.ci/prepare-fnm-package.js

@ -1,43 +0,0 @@ @@ -1,43 +0,0 @@
#!/usr/bin/env node
const fs = require("fs");
const path = require("path");
const cp = require("child_process");
const jestDiff = require("jest-diff");
const version = require("../package.json").version;
const filepath = path.resolve(__dirname, "..", "library", "Fnm__Package.re");
main({ failOnDifference: process.argv[2] === "--fail-on-difference" });
function generateModule() {
const moduleText = `
let version = "${version}";
`;
return cp.execSync(`esy refmt`, { input: moduleText }).toString();
}
function readFile() {
try {
return fs.readFileSync(filepath, "utf8");
} catch (e) {
return "";
}
}
function main({ failOnDifference }) {
const result = generateModule();
if (failOnDifference) {
const currentContents = readFile();
if (currentContents !== result) {
console.log(jestDiff(result, currentContents));
console.log(
"Fnm__Package.re is outdated! Please update it with `esy update-fnm-package`."
);
process.exit(1);
}
}
fs.writeFileSync(filepath, result);
}

62
.ci/prepare-version.js

@ -1,62 +0,0 @@ @@ -1,62 +0,0 @@
#!/usr/bin/env node
const fs = require("fs");
const cp = require("child_process");
const ARGUMENTS = process.argv.slice(2);
const versions = {
patch: "patch",
minor: "minor",
major: "major"
};
if (!ARGUMENTS[0]) {
console.log(
[
"esy version:prepare, prepare a new fnm version",
"",
"Usage:",
"------",
"",
" esy version:prepare patch - to prepare a patch version (X.X.X+1)",
" esy version:prepare minor - to prepare a minor version (X.X+1.0)",
" esy version:prepare major - to prepare a major version (X+1.0.0)"
].join("\n")
);
process.exit(1);
}
const versionType = versions[ARGUMENTS[0].toLowerCase()];
if (!versionType) {
throw new Error("Version (argument 0) must be one of major/minor/patch.");
}
const pkgJson = JSON.parse(fs.readFileSync("./package.json", "utf8"));
pkgJson.version = changeVersion(versionType, pkgJson.version);
fs.writeFileSync("./package.json", JSON.stringify(pkgJson, null, 2));
exec("git fetch origin");
exec("esy update-fnm-package");
exec("esy verify-fnm-package");
exec("esy build");
exec("./docs/record_screen.sh");
exec(`esy changelog`, { NEXT_VERSION: `v${pkgJson.version}` });
function exec(command, env) {
console.log(`$ ${command}`);
return cp.execSync(command, {
stdio: "inherit",
env: { ...process.env, ...env }
});
}
function changeVersion(type, version) {
const [major, minor, patch] = version.split(".").map(x => parseFloat(x, 10));
switch (type) {
case "patch":
return [major, minor, patch + 1].join(".");
case "minor":
return [major, minor + 1, 0].join(".");
case "major":
return [major + 1, 0, 0].join(".");
}
}

43
.ci/print-licenses.js

@ -1,43 +0,0 @@ @@ -1,43 +0,0 @@
#!/usr/bin/env node
const { execSync } = require("child_process");
const groupByMap = (xs, fn, mapFn) => {
const grouped = {};
for (const x of xs) {
const key = fn(x);
grouped[key] = grouped[key] || [];
grouped[key].push(mapFn(x));
}
return grouped;
};
const licenses = execSync('grep -r "license:" esy.lock')
.toString()
.split("\n")
.map(x => x.trim())
.filter(Boolean)
.map(line => {
const [path, , license] = line.split(":");
const dependency = path
.split("/")
.slice(1)
.join("/")
.match(/^(.+)\/[^/]+$/)[1];
return { dependency, license: JSON.parse(license.trim()) };
});
const byLicense = groupByMap(
licenses,
({ license }) => license,
({ dependency }) => dependency
);
for (const [license, packages] of Object.entries(byLicense)) {
console.log(`${license}:`);
for (const package of packages) {
console.log(` - ${package}`);
}
}

11
.ci/publish-build-cache.yml

@ -1,11 +0,0 @@ @@ -1,11 +0,0 @@
# Steps for publishing project cache
steps:
- task: PublishBuildArtifacts@1
displayName: 'Cache: Upload install folder'
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
inputs:
pathToPublish: '$(ESY__CACHE_INSTALL_PATH)'
artifactName: 'cache-$(Agent.OS)-install'
parallel: true
parallelCount: 8

23
.ci/restore-build-cache.yml

@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
# Steps for restoring project cache
steps:
- task: DownloadBuildArtifacts@0
condition: and(succeeded(), ne(variables['Build.SourceBranch'], 'refs/heads/master'))
displayName: 'Cache: Restore install'
inputs:
buildType: 'specific'
project: '$(System.TeamProject)'
pipeline: '$(Build.DefinitionName)'
branchName: 'refs/heads/master'
buildVersionToDownload: 'latestFromBranch'
downloadType: 'single'
artifactName: 'cache-$(Agent.OS)-install'
downloadPath: '$(System.ArtifactsDirectory)'
continueOnError: true
- task: CopyFiles@2
condition: and(succeeded(), ne(variables['Build.SourceBranch'], 'refs/heads/master'))
inputs:
sourceFolder: '$(System.ArtifactsDirectory)\cache-$(Agent.OS)-install'
targetFolder: '$(ESY__CACHE_INSTALL_PATH)'
continueOnError: true

4
.dockerignore

@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
_build
_esy
node_modules
Dockerfile

5
.gitattributes vendored

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
*__Fish.snap linguist-language=fish
*__Zsh.snap linguist-language=Shell
*__Bash.snap linguist-language=Shell
*__PowerShell.snap linguist-language=PowerShell
*__WinCmd.snap linguist-language=Batchfile

67
.github/workflows/refmt.yml

@ -1,67 +0,0 @@ @@ -1,67 +0,0 @@
name: Check formatting
on:
pull_request:
push:
branches:
- master
# consider using docker: ocaml/opam2:4.06
# - sudo apt-get update && apt-get install -y m4
# - opam update && opam install reason
# - refmt # is new
jobs:
# build:
# name: build project
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@master
# with:
# fetch-depth: 1
# - uses: actions/setup-node@v1
# with:
# node-version: '10.x'
# - run: npm install -g esy@latest
# - run: esy i
# - run: esy b
# - run: esy export-dependencies
# - run: tar -czf build.tar.gz _export
# - uses: actions/upload-artifact@master
# with:
# name: cache-linux-build-dependencies
# path: build.tar.gz
test_refmt:
name: run refmt
runs-on: ubuntu-latest
# needs: [build]
steps:
- uses: actions/checkout@master
with:
fetch-depth: 1
- uses: actions/setup-node@v1
with:
node-version: '10.x'
# - run: npm install -g esy@latest
# - uses: actions/download-artifact@master
# with:
# name: cache-linux-build-dependencies
# - run: tar -xzf cache-linux-build-dependencies/build.tar.gz
# - run: esy import-build _export/*
# - run: esy i
# - run: esy fmt
- run: npm i -g esy@latest
- run: esy @fmt i
- run: esy @fmt refmt --in-place */*.re
# - run: ./scripts/fmt_all.sh
# name: refmt all the files
- run: |
if [ -n "$(git status --porcelain)" ]; then
echo "There are differences:"
git status --porcelain
echo "----"
echo ""
echo 'Please run `esy fmt` locally to fix the issues.'
exit 1
fi
name: "Throw if something changed"

175
.github/workflows/rust.yml

@ -0,0 +1,175 @@ @@ -0,0 +1,175 @@
name: Rust
on: [push]
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable
- uses: actions/checkout@v1
- name: cargo fmt
run: cargo fmt -- --check
unit_tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable
- uses: actions/checkout@v1
- name: Run tests
run: cargo test -- --skip=feature_tests
e2e_tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- name: Install Fish and Zsh using brew
if: "startsWith(matrix.os, 'macOS')"
run: brew install fish zsh
- name: Install Fish and Zsh using apt
if: "startsWith(matrix.os, 'ubuntu')"
run: sudo apt-get install -y fish zsh
- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable
- uses: actions/checkout@v1
- name: Run tests
run: cargo test -- feature_tests
build_release:
runs-on: windows-latest
name: "Release build for Windows"
steps:
- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable
- uses: actions/checkout@v1
- name: Build release binary
run: cargo build --release
env:
RUSTFLAGS: "-C target-feature=+crt-static"
- name: Compress binary using UPX
run: |
choco install upx
upx target/release/fnm.exe
- uses: actions/upload-artifact@v2
with:
name: fnm-windows
path: target/release/fnm.exe
build_macos_release:
runs-on: macOS-latest
name: "Release build for MacOS"
steps:
- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable
- uses: actions/checkout@v1
- name: Build release binary
run: cargo build --release
env:
LZMA_API_STATIC: "true"
- name: Strip binary from debug symbols
run: strip target/release/fnm
- name: List dynamically linked libraries
run: otool -L target/release/fnm
- name: Compress binary using UPX
run: |
brew install upx
upx target/release/fnm
- uses: actions/upload-artifact@v2
with:
name: fnm-macos
path: target/release/fnm
build_static_linux_binary:
name: "Build static Linux binary"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build static binary
run: |
sudo chown -R 1000:1000 .
docker run --rm -v "$(pwd)":/home/rust/src ekidd/rust-musl-builder:stable \
cargo build --release
sudo chown -R $(whoami):$(whoami) .
- name: Compress binary using UPX
run: |
sudo apt-get install -y upx
upx target/x86_64-unknown-linux-musl/release/fnm
- uses: actions/upload-artifact@v2
with:
name: fnm-linux
path: target/x86_64-unknown-linux-musl/release/fnm
# benchmark_on_linux:
# name: Performance Benchmarks (Linux)
# needs: [build_static_linux_binary]
# runs-on: ubuntu-latest
# steps:
# - uses: octokit/request-action@v2.x
# id: get_master_workflows
# with:
# route: GET /repos/:repository/actions/runs
# repository: ${{ github.repository }}
# branch: master
# status: completed
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - uses: octokit/request-action@v2.x
# id: get_latest_artifacts
# with:
# route: GET /repos/:repository/actions/runs/:workflow_id/artifacts
# repository: ${{ github.repository }}
# workflow_id: ${{ fromJson(steps.get_master_workflows.outputs.data).workflow_runs[0].id }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - name: "Take the output"
# run: |
# URL=$(echo '${{ steps.get_latest_artifacts.outputs.data }}' | jq -r '.artifacts | map(select(.name == "fnm-linux")) | .[0].archive_download_url')
# curl -L $URL -H 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' > /tmp/fnm-latest.zip
# mkdir ~/.fnm-latest
# unzip -d ~/.fnm-latest /tmp/fnm-latest.zip
# ls -lah ~/.fnm-latest
# - uses: actions/checkout@v2
# - name: Install Hyperfine
# run: |
# wget https://github.com/sharkdp/hyperfine/releases/download/v1.10.0/hyperfine_1.10.0_amd64.deb
# sudo dpkg -i hyperfine_1.10.0_amd64.deb
# - name: Install fnm-reason for Linux
# run: curl -fsSL https://github.com/Schniz/fnm/raw/master/.ci/install.sh | bash -s -- --skip-shell
# - name: Install nvm
# run: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
# - uses: actions/download-artifact@v2
# with:
# name: fnm-linux
# path: target/release/
# - name: "Run benchmarks"
# run: bash benchmarks/run
# - name: Read basic.md for the generated report
# id: basic_result
# uses: juliangruber/read-file-action@v1
# with:
# path: benchmarks/results/basic.md
# - uses: octokit/request-action@v2.x
# id: get_latest_release
# with:
# route: POST /repos/:repository/commits/:commit_sha/comments
# repository: ${{ github.repository }}
# commit_sha: ${{ github.sha }}
# body: |
# |
# ${{ steps.basic_result.outputs.content }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

19
.gitignore vendored

@ -1,15 +1,6 @@ @@ -1,15 +1,6 @@
npm-debug.log
.merlin
yarn-error.log
node_modules
node_modules/
_build
_release
_esy/
fnm.install
.DS_Store
*.install
.tmp
docs/screen_recording
.idea
.fnmTmp
/benchmarks/results
/target
**/*.rs.bk
feature_tests/.tmp
*.log

2048
Cargo.lock generated

File diff suppressed because it is too large Load Diff

41
Cargo.toml

@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
[package]
name = "fnm"
version = "0.1.0"
authors = ["Gal Schlezinger <gal@spitfire.co.il>"]
edition = "2018"
build = "build.rs"
[dependencies]
serde = { version = "1.0.115", features = ["derive"] }
clap = "2.33.3"
structopt = "0.3.16"
reqwest = { version = "0.10.7", features = ["blocking", "json"] }
serde_json = "1.0.57"
chrono = { version = "0.4.15", features = ["serde"] }
tar = "0.4.29"
xz2 = "0.1.6"
semver = "0.10.0"
dirs = "3.0.1"
colored = "2.0.0"
zip = "0.5.6"
tempfile = "3.1.0"
indoc = "1.0.2"
snafu = { version = "0.6.8", features = ["backtrace"] }
log = "0.4.11"
env_logger = "0.7.1"
atty = "0.2.14"
encoding_rs_io = "0.1.7"
[dev-dependencies]
pretty_assertions = "0.6.1"
duct = "0.13.4"
test-env-log = "0.2.2"
shell-escape = "0.1.5"
insta = { version = "0.16.1", features = ["backtrace"] }
serial_test = "0.4.0"
[build-dependencies]
embed-resource = "1.3.3"
[target.'cfg(windows)'.dependencies]
csv = "1.1.3"

18
Dockerfile

@ -1,18 +0,0 @@ @@ -1,18 +0,0 @@
FROM frolvlad/alpine-glibc
RUN apk add --no-cache nodejs bash npm curl g++ make m4 patch gmp-dev perl git jq perl-utils libressl-dev coreutils
USER root
RUN npm -g config set user root
RUN npm i -g esy@latest
WORKDIR /app
ADD . /app
RUN jq '. | .buildDirs.executable.flags |= . + ["-ccopt", "-static"]' package.json > package.json.new && mv package.json.new package.json
RUN npx esy i
RUN npx esy verify-fnm-package
RUN npx esy pesy
RUN npx esy b
RUN npx esy test

74
azure-pipelines.yml

@ -1,74 +0,0 @@ @@ -1,74 +0,0 @@
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
name: $(Build.SourceVersion)
jobs:
- job: Linux
timeoutInMinutes: 0
pool:
vmImage: 'Ubuntu 16.04'
variables:
ESY__CACHE_INSTALL_PATH: /home/vsts/.esy/3_____________________________________________________________________/i/
ESY__CACHE_SOURCE_TARBALL_PATH: /home/vsts/.esy/source/i
steps:
# TODO: Uncomment both this and 'publish-build-cache' below to enable build caching for Linux.
# - template: .ci/restore-build-cache.yml
- script: sudo apt-get install -y fish
- script: .ci/create-static-binary.sh
- script: ./feature_tests/run.sh $(pwd)/fnm
# - script: bash .ci/prepare-static-build.sh
# - template: .ci/esy-build-steps.yml
# - template: .ci/publish-build-cache.yml
- task: PublishBuildArtifacts@1
displayName: 'Save artifact'
inputs:
PathtoPublish: fnm
ArtifactName: fnm-linux
- job: MacOS
timeoutInMinutes: 0
pool:
vmImage: 'macOS 10.14'
variables:
ESY__CACHE_INSTALL_PATH: /Users/vsts/.esy/3____________________________________________________________________/i/
ESY__CACHE_SOURCE_TARBALL_PATH: /Users/vsts/.esy/source/i
steps:
# TODO: Uncomment both this and 'publish-build-cache' below to enable build caching for Mac.
# - template: .ci/restore-build-cache.yml
- script: brew install fish gmp
- script: sudo rm $(brew --prefix gmp)/lib/*.dylib
# remove /usr/local/lib/libgmp.dylib
- template: .ci/esy-build-steps.yml
- script: cp _esy/default/build/default/executable/FnmApp.exe _esy/default/build/fnm
- script: otool -L _esy/default/build/fnm
displayName: 'list dynamic libraries'
- script: strip _esy/default/build/fnm
- script: ./feature_tests/run.sh $(pwd)/_esy/default/build/fnm
# - template: .ci/publish-build-cache.yml
- task: PublishBuildArtifacts@1
displayName: 'Save artifact'
inputs:
PathtoPublish: '_esy/default/build/fnm'
ArtifactName: fnm-macos
- job: Release
timeoutInMinutes: 0
displayName: Release
dependsOn:
- Linux
- MacOS
condition: succeeded()
pool:
vmImage: ubuntu-16.04
steps:
- task: PublishBuildArtifacts@1
displayName: 'Release Package'
inputs:
PathtoPublish: '.'
ArtifactName: npm-package

3
build.rs

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
fn main() {
embed_resource::compile("fnm-manifest.rc");
}

1
dune

@ -1 +0,0 @@ @@ -1 +0,0 @@
(dirs (:standard \ node_modules \ _esy))

2
dune-project

@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
(lang dune 1.6)
(name fnm)

3
esy.lock/.gitattributes vendored

@ -1,3 +0,0 @@ @@ -1,3 +0,0 @@
# Set eol to LF so files aren't converted to CRLF-eol on Windows.
* text eol=lf linguist-generated

3
esy.lock/.gitignore vendored

@ -1,3 +0,0 @@ @@ -1,3 +0,0 @@
# Reset any possible .gitignore, we want all esy.lock to be un-ignored.
!*

7055
esy.lock/index.json

File diff suppressed because it is too large Load Diff

38
esy.lock/opam/asn1-combinators.0.2.2/opam

@ -1,38 +0,0 @@ @@ -1,38 +0,0 @@
opam-version: "2.0"
authors: "David Kaloper Meršinjak"
maintainer: "David Kaloper Meršinjak <dk505@cam.ac.uk>"
homepage: "https://github.com/mirleft/ocaml-asn1-combinators"
doc: "https://mirleft.github.io/ocaml-asn1-combinators/doc"
license: "ISC"
dev-repo: "git+https://github.com/mirleft/ocaml-asn1-combinators.git"
bug-reports: "https://github.com/mirleft/ocaml-asn1-combinators/issues"
synopsis: "Embed typed ASN.1 grammars in OCaml"
build: [ ["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs ]
["dune" "runtest" "-p" name "-j" jobs] {with-test} ]
depends: [
"ocaml" {>="4.05.0"}
"dune" {>= "1.2.0"}
"cstruct" {>= "1.6.0"}
"zarith"
"bigarray-compat"
"stdlib-shims"
"ptime"
"alcotest" {with-test}
]
description: """
asn1-combinators is a library for expressing ASN.1 in OCaml. Skip the notation
part of ASN.1, and embed the abstract syntax directly in the language. These
abstract syntax representations can be used for parsing, serialization, or
random testing.
The only ASN.1 encodings currently supported are BER and DER.
"""
url {
src:
"https://github.com/mirleft/ocaml-asn1-combinators/releases/download/v0.2.2/asn1-combinators-v0.2.2.tbz"
checksum: [
"sha256=c9ebd5f9def090003918081cac680224eaefbf3def8aed8fe532b711a71d3631"
"sha512=199dda83814d7782183d67f9cdd6f5e8f036cbc1bcddec7ffd4adfd415ae024d1f7c720835eb173ab5e7455ed89acb99f88d0a30402c3edbfe6ca8a7182b217b"
]
}

38
esy.lock/opam/astring.0.8.3/opam

@ -1,38 +0,0 @@ @@ -1,38 +0,0 @@
opam-version: "2.0"
maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"
authors: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]
homepage: "http://erratique.ch/software/astring"
doc: "http://erratique.ch/software/astring/doc"
dev-repo: "git+http://erratique.ch/repos/astring.git"
bug-reports: "https://github.com/dbuenzli/astring/issues"
tags: [ "string" "org:erratique" ]
license: "ISC"
depends: [
"ocaml" {>= "4.01.0"}
"ocamlfind" {build}
"ocamlbuild" {build}
"topkg" {build}
"base-bytes"
]
build: [[
"ocaml" "pkg/pkg.ml" "build"
"--pinned" "%{pinned}%" ]]
synopsis: "Alternative String module for OCaml"
description: """
Astring exposes an alternative `String` module for OCaml. This module
tries to balance minimality and expressiveness for basic, index-free,
string processing and provides types and functions for substrings,
string sets and string maps.
Remaining compatible with the OCaml `String` module is a non-goal. The
`String` module exposed by Astring has exception safe functions,
removes deprecated and rarely used functions, alters some signatures
and names, adds a few missing functions and fully exploits OCaml's
newfound string immutability.
Astring depends only on the OCaml standard library. It is distributed
under the ISC license."""
url {
src: "http://erratique.ch/software/astring/releases/astring-0.8.3.tbz"
checksum: "md5=c5bf6352b9ac27fbeab342740f4fa870"
}

34
esy.lock/opam/atd.2.0.0/opam

@ -1,34 +0,0 @@ @@ -1,34 +0,0 @@
opam-version: "2.0"
maintainer: "martin@mjambon.com"
authors: ["Martin Jambon"]
homepage: "https://github.com/mjambon/atd"
bug-reports: "https://github.com/mjambon/atd/issues"
dev-repo: "git://github.com/mjambon/atd.git"
build: [
["jbuilder" "subst" "-p" name] {pinned}
["jbuilder" "build" "-p" name "-j" jobs]
]
# Restore when https://github.com/mjambon/atd/issues/121 is resolved.
# build-test: [
# ["jbuilder" "runtest" "-p" name]
# ]
depends: [
"ocaml" {>= "4.03.0"}
"jbuilder"
"menhir" {build}
"easy-format"
]
synopsis: "Parser for the ATD data format description language"
description: """
ATD is the OCaml library providing a parser for the ATD language and
various utilities. ATD stands for Adjustable Type Definitions in
reference to its main property of supporting annotations that allow a
good fit with a variety of data formats."""
url {
src: "https://github.com/mjambon/atd/releases/download/2.0.0/atd-2.0.0.tbz"
checksum: "md5=14e47609397c524ea0eae7c3f14f7ccf"
}

29
esy.lock/opam/atdgen-runtime.2.0.0/opam

@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
opam-version: "2.0"
maintainer: "martin@mjambon.com"
authors: ["Martin Jambon"]
homepage: "https://github.com/mjambon/atd"
bug-reports: "https://github.com/mjambon/atd/issues"
dev-repo: "git://github.com/mjambon/atd.git"
build: [
["jbuilder" "subst" "-p" name] {pinned}
["jbuilder" "build" "-p" name "-j" jobs]
]
# Restore when https://github.com/mjambon/atd/issues/121 is resolved.
# build-test: [
# ["jbuilder" "runtest" "-p" name]
# ]
depends: [
"ocaml" {>= "4.02.3"}
"jbuilder"
"biniou" {>= "1.0.6"}
"yojson" {>= "1.2.1"}
]
synopsis: "Runtime library for code generated by atdgen."
url {
src: "https://github.com/mjambon/atd/releases/download/2.0.0/atd-2.0.0.tbz"
checksum: "md5=14e47609397c524ea0eae7c3f14f7ccf"
}

44
esy.lock/opam/atdgen.2.0.0/opam

@ -1,44 +0,0 @@ @@ -1,44 +0,0 @@
opam-version: "2.0"
maintainer: "martin@mjambon.com"
authors: ["Martin Jambon"]
homepage: "https://github.com/mjambon/atd"
bug-reports: "https://github.com/mjambon/atd/issues"
dev-repo: "git://github.com/mjambon/atd.git"
build: [
["jbuilder" "subst" "-p" name] {pinned}
["jbuilder" "build" "-p" name "-j" jobs]
]
# Restore when https://github.com/mjambon/atd/issues/121 is resolved.
# build-test: [
# ["jbuilder" "runtest" "-p" name]
# ]
depends: [
"ocaml" {>= "4.03.0"}
"jbuilder"
"atd" {>= "2.0.0"}
"atdgen-runtime" {>= "2.0.0"}
"biniou" {>= "1.0.6"}
"yojson" {>= "1.2.1"}
]
synopsis:
"Generates efficient JSON serializers, deserializers and validators"
description: """
Atdgen is a command-line program that takes as input type definitions in the
ATD syntax and produces OCaml code suitable for data serialization and
deserialization.
Two data formats are currently supported, these are biniou and JSON.
Atdgen-biniou and Atdgen-json will refer to Atdgen used in one context or the
other.
Atdgen was designed with efficiency and durability in mind. Software authors
are encouraged to use Atdgen directly and to write tools that may reuse part of
Atdgen’s source code."""
url {
src: "https://github.com/mjambon/atd/releases/download/2.0.0/atd-2.0.0.tbz"
checksum: "md5=14e47609397c524ea0eae7c3f14f7ccf"
}

9
esy.lock/opam/base-bytes.base/opam

@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
opam-version: "2.0"
maintainer: " "
authors: " "
homepage: " "
depends: [
"ocaml" {>= "4.02.0"}
"ocamlfind" {>= "1.5.3"}
]
synopsis: "Bytes library distributed with the OCaml compiler"

6
esy.lock/opam/base-threads.base/opam

@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
opam-version: "2.0"
maintainer: "https://github.com/ocaml/opam-repository/issues"
description: """
Threads library distributed with the OCaml compiler
"""

6
esy.lock/opam/base-unix.base/opam

@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
opam-version: "2.0"
maintainer: "https://github.com/ocaml/opam-repository/issues"
description: """
Unix library distributed with the OCaml compiler
"""

36
esy.lock/opam/base.v0.13.1/opam

@ -1,36 +0,0 @@ @@ -1,36 +0,0 @@
opam-version: "2.0"
maintainer: "opensource@janestreet.com"
authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
homepage: "https://github.com/janestreet/base"
bug-reports: "https://github.com/janestreet/base/issues"
dev-repo: "git+https://github.com/janestreet/base.git"
doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/base/index.html"
license: "MIT"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "4.04.2"}
"sexplib0" {>= "v0.13" & < "v0.14"}
"dune" {>= "1.5.1"}
"dune-configurator"
]
synopsis: "Full standard library replacement for OCaml"
description: "
Full standard library replacement for OCaml
Base is a complete and portable alternative to the OCaml standard
library. It provides all standard functionalities one would expect
from a language standard library. It uses consistent conventions
across all of its module.
Base aims to be usable in any context. As a result system dependent
features such as I/O are not offered by Base. They are instead
provided by companion libraries such as stdio:
https://github.com/janestreet/stdio
"
url {
src: "https://github.com/janestreet/base/archive/v0.13.1.tar.gz"
checksum: "md5=296457416f9a8b75e6edfc3b1140e384"
}

38
esy.lock/opam/base64.3.3.0/opam

@ -1,38 +0,0 @@ @@ -1,38 +0,0 @@
opam-version: "2.0"
maintainer: "mirageos-devel@lists.xenproject.org"
authors: [ "Thomas Gazagnaire"
"Anil Madhavapeddy" "Calascibetta Romain"
"Peter Zotov" ]
license: "ISC"
homepage: "https://github.com/mirage/ocaml-base64"
doc: "http://mirage.github.io/ocaml-base64/"
bug-reports: "https://github.com/mirage/ocaml-base64/issues"
dev-repo: "git+https://github.com/mirage/ocaml-base64.git"
synopsis: "Base64 encoding for OCaml"
description: """
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.
"""
depends: [
"ocaml" {>="4.03.0"}
"base-bytes"
"dune-configurator"
"dune" {>= "2.0"}
"bos" {with-test}
"rresult" {with-test}
"alcotest" {with-test & < "1.0.0"}
]
build: [
["dune" "subst"]
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name] {with-test}
]
url {
src:
"https://github.com/mirage/ocaml-base64/releases/download/v3.3.0/base64-v3.3.0.tbz"
checksum: [
"sha256=3ae91334f029ccd96690b598010f94e55811095d14a37d52f1724e5eca0f35cc"
"sha512=818103de0ac03b9a04f5aafc119341522bf69e57dfbd038b321f92ab8cbf7fc7084ca3012086baece12da94d4d5448eb927f70b741025a13d49e93ca6ea27d41"
]
}

23
esy.lock/opam/bigarray-compat.1.0.0/opam

@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
opam-version: "2.0"
synopsis: "Compatibility library to use Stdlib.Bigarray when possible"
maintainer: "Lucas Pluvinage <lucas.pluvinage@gmail.com>"
authors: "Lucas Pluvinage <lucas.pluvinage@gmail.com>"
license: "ISC"
homepage: "https://github.com/mirage/bigarray-compat"
bug-reports: "https://github.com/mirage/bigarray-compat/issues"
depends: [
"ocaml" {>= "4.03.0"}
"dune" {>= "1.0"}
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
]
dev-repo: "git+https://github.com/mirage/bigarray-compat.git"
url {
src: "https://github.com/mirage/bigarray-compat/archive/v1.0.0.tar.gz"
checksum: [
"md5=1cc7c25382a8900bada34aadfd66632e"
"sha512=c365fee15582aca35d7b05268cde29e54774ad7df7be56762b4aad78ca1409d4326ad3b34af0f1cc2c7b872837290a9cd9ff43b47987c03bba7bba32fe8a030f"
]
}

45
esy.lock/opam/biniou.1.2.1/opam

@ -1,45 +0,0 @@ @@ -1,45 +0,0 @@
opam-version: "2.0"
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
["dune" "build" "-p" name "@doc"] {with-doc}
]
maintainer: ["martin@mjambon.com"]
authors: ["Martin Jambon"]
bug-reports: "https://github.com/mjambon/biniou/issues"
homepage: "https://github.com/mjambon/biniou"
doc: "https://mjambon.github.io/biniou/"
license: "BSD-3-Clause"
dev-repo: "git+https://github.com/mjambon/biniou.git"
synopsis:
"Binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve"
description: """
Biniou (pronounced "be new") is a binary data format designed for speed, safety,
ease of use and backward compatibility as protocols evolve. Biniou is vastly
equivalent to JSON in terms of functionality but allows implementations several
times faster (4 times faster than yojson), with 25-35% space savings.
Biniou data can be decoded into human-readable form without knowledge of type
definitions except for field and variant names which are represented by 31-bit
hashes. A program named bdump is provided for routine visualization of biniou
data files.
The program atdgen is used to derive OCaml-Biniou serializers and deserializers
from type definitions.
Biniou format specification: mjambon.github.io/atdgen-doc/biniou-format.txt"""
depends: [
"easy-format"
"dune" {>= "1.10"}
"ocaml" {>= "4.02.3"}
]
url {
src:
"https://github.com/mjambon/biniou/releases/download/1.2.1/biniou-1.2.1.tbz"
checksum: [
"sha256=35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335"
"sha512=82670cc77bf3e869ee26e5fbe5a5affa45a22bc8b6c4bd7e85473912780e0111baca59b34a2c14feae3543ce6e239d7fddaeab24b686a65bfe642cdb91d27ebf"
]
}

36
esy.lock/opam/cmdliner.1.0.4/opam

@ -1,36 +0,0 @@ @@ -1,36 +0,0 @@
opam-version: "2.0"
maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"
authors: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]
homepage: "http://erratique.ch/software/cmdliner"
doc: "http://erratique.ch/software/cmdliner/doc/Cmdliner"
dev-repo: "git+http://erratique.ch/repos/cmdliner.git"
bug-reports: "https://github.com/dbuenzli/cmdliner/issues"
tags: [ "cli" "system" "declarative" "org:erratique" ]
license: "ISC"
depends:[ "ocaml" {>= "4.03.0"} ]
build: [[ make "all" "PREFIX=%{prefix}%" ]]
install:
[[make "install" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%" ]
[make "install-doc" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%" ]]
synopsis: """Declarative definition of command line interfaces for OCaml"""
description: """\
Cmdliner allows the declarative definition of command line interfaces
for OCaml.
It provides a simple and compositional mechanism to convert command
line arguments to OCaml values and pass them to your functions. The
module automatically handles syntax errors, help messages and UNIX man
page generation. It supports programs with single or multiple commands
and respects most of the [POSIX][1] and [GNU][2] conventions.
Cmdliner has no dependencies and is distributed under the ISC license.
[1]: http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html
[2]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html
"""
url {
archive: "http://erratique.ch/software/cmdliner/releases/cmdliner-1.0.4.tbz"
checksum: "fe2213d0bc63b1e10a2d0aa66d2fc8d9"
}

53
esy.lock/opam/cohttp-lwt-unix.2.5.1/opam

@ -1,53 +0,0 @@ @@ -1,53 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: [
"Anil Madhavapeddy"
"Stefano Zacchiroli"
"David Sheets"
"Thomas Gazagnaire"
"David Scott"
"Rudi Grinberg"
"Andy Ray"
]
synopsis: "CoHTTP implementation for Unix and Windows using Lwt"
description: """
An implementation of an HTTP client and server using the Lwt
concurrency library. See the `Cohttp_lwt_unix` module for information
on how to use this. The package also installs `cohttp-curl-lwt`
and a `cohttp-server-lwt` binaries for quick uses of a HTTP(S)
client and server respectively.
Although the name implies that this only works under Unix, it
should also be fine under Windows too."""
license: "ISC"
tags: ["org:mirage" "org:xapi-project"]
homepage: "https://github.com/mirage/ocaml-cohttp"
doc: "https://mirage.github.io/ocaml-cohttp/"
bug-reports: "https://github.com/mirage/ocaml-cohttp/issues"
depends: [
"ocaml" {>= "4.04.1"}
"dune" {>= "1.1.0"}
"conduit-lwt-unix" {>= "1.0.3"}
"cmdliner"
"magic-mime"
"logs"
"fmt" {>= "0.8.2"}
"cohttp-lwt" {=version}
"lwt" {>= "3.0.0"}
"base-unix"
"ounit" {with-test}
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
dev-repo: "git+https://github.com/mirage/ocaml-cohttp.git"
url {
src:
"https://github.com/mirage/ocaml-cohttp/releases/download/v2.5.1/cohttp-v2.5.1.tbz"
checksum: [
"sha256=268de1479bf010c16f1de1ab5f9c75595dfdcafb2017ed4e73f8773b620da946"
"sha512=051aa57ad631ba766f22f6ebc0746545fc74ca1180206c695deb1ca73800f7ea436c88f95a0bb1d78a8dc1da0685a19553cdacd04667893022215bedbc2b880a"
]
}

49
esy.lock/opam/cohttp-lwt.2.5.1/opam

@ -1,49 +0,0 @@ @@ -1,49 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: [
"Anil Madhavapeddy"
"Stefano Zacchiroli"
"David Sheets"
"Thomas Gazagnaire"
"David Scott"
"Rudi Grinberg"
"Andy Ray"
]
synopsis: "CoHTTP implementation using the Lwt concurrency library"
description: """
This is a portable implementation of HTTP that uses the Lwt
concurrency library to multiplex IO. It implements as much of the
logic in an OS-independent way as possible, so that more specialised
modules can be tailored for different targets. For example, you
can install `cohttp-lwt-unix` or `cohttp-lwt-jsoo` for a Unix or
JavaScript backend, or `cohttp-mirage` for the MirageOS unikernel
version of the library. All of these implementations share the same
IO logic from this module."""
license: "ISC"
tags: ["org:mirage" "org:xapi-project"]
homepage: "https://github.com/mirage/ocaml-cohttp"
doc: "https://mirage.github.io/ocaml-cohttp/"
bug-reports: "https://github.com/mirage/ocaml-cohttp/issues"
depends: [
"ocaml" {>= "4.04.1"}
"dune" {>= "1.1.0"}
"cohttp" {=version}
"lwt" {>= "2.5.0"}
"sexplib0"
"ppx_sexp_conv" {>= "v0.13.0"}
"logs"
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
dev-repo: "git+https://github.com/mirage/ocaml-cohttp.git"
url {
src:
"https://github.com/mirage/ocaml-cohttp/releases/download/v2.5.1/cohttp-v2.5.1.tbz"
checksum: [
"sha256=268de1479bf010c16f1de1ab5f9c75595dfdcafb2017ed4e73f8773b620da946"
"sha512=051aa57ad631ba766f22f6ebc0746545fc74ca1180206c695deb1ca73800f7ea436c88f95a0bb1d78a8dc1da0685a19553cdacd04667893022215bedbc2b880a"
]
}

64
esy.lock/opam/cohttp.2.5.1/opam

@ -1,64 +0,0 @@ @@ -1,64 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: [
"Anil Madhavapeddy"
"Stefano Zacchiroli"
"David Sheets"
"Thomas Gazagnaire"
"David Scott"
"Rudi Grinberg"
"Andy Ray"
]
synopsis: "An OCaml library for HTTP clients and servers"
description: """
Cohttp is an OCaml library for creating HTTP daemons. It has a portable
HTTP parser, and implementations using various asynchronous programming
libraries.
See the cohttp-async, cohttp-lwt, cohttp-lwt-unix, cohttp-lwt-jsoo and
cohttp-mirage libraries for concrete implementations for particular
targets.
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."""
license: "ISC"
tags: ["org:mirage" "org:xapi-project"]
homepage: "https://github.com/mirage/ocaml-cohttp"
doc: "https://mirage.github.io/ocaml-cohttp/"
bug-reports: "https://github.com/mirage/ocaml-cohttp/issues"
depends: [
"ocaml" {>= "4.04.1"}
"dune" {>= "1.1.0"}
"re" {>= "1.9.0"}
"uri" {>= "2.0.0"}
"uri-sexp"
"fieldslib"
"sexplib0"
"ppx_fields_conv" {>= "v0.9.0"}
"ppx_sexp_conv" {>= "v0.13.0"}
"stringext"
"base64" {>= "3.1.0"}
"stdlib-shims"
"fmt" {with-test}
"jsonm" {build}
"alcotest" {with-test}
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
dev-repo: "git+https://github.com/mirage/ocaml-cohttp.git"
url {
src:
"https://github.com/mirage/ocaml-cohttp/releases/download/v2.5.1/cohttp-v2.5.1.tbz"
checksum: [
"sha256=268de1479bf010c16f1de1ab5f9c75595dfdcafb2017ed4e73f8773b620da946"
"sha512=051aa57ad631ba766f22f6ebc0746545fc74ca1180206c695deb1ca73800f7ea436c88f95a0bb1d78a8dc1da0685a19553cdacd04667893022215bedbc2b880a"
]
}

39
esy.lock/opam/conduit-lwt-unix.2.0.2/opam

@ -1,39 +0,0 @@ @@ -1,39 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: [
"Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire" "Rudi Grinberg"
]
license: "ISC"
tags: "org:mirage"
homepage: "https://github.com/mirage/ocaml-conduit"
bug-reports: "https://github.com/mirage/ocaml-conduit/issues"
depends: [
"ocaml" {>= "4.03.0"}
"dune"
"base-unix"
"ppx_sexp_conv" {>= "v0.9.0" & < "v0.14"}
"conduit-lwt" {=version}
"lwt" {>= "3.0.0"}
"uri" {>= "1.9.4"}
"ipaddr" {>= "4.0.0"}
"ipaddr-sexp"
]
depopts: ["tls" "lwt_ssl" "launchd"]
conflicts: [
"tls" {< "0.8.0"}
"ssl" {< "0.5.9"}
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
]
dev-repo: "git+https://github.com/mirage/ocaml-conduit.git"
synopsis: "A network connection establishment library for Lwt_unix"
url {
src:
"https://github.com/mirage/ocaml-conduit/releases/download/v2.0.2/conduit-v2.0.2.tbz"
checksum: [
"sha256=2510372ed98c7e0446d788317a435f752d900d72df0fbe4c353f5e5bfb9d1dd2"
"sha512=3e25b754c84dd603acbb4d810b532c3cfb273808b9bf9a17890e40b79e65529d17cd66d613a447cb2a7f51f0522f17d46ab0ade5c79cb2a3c8565efd484238ae"
]
}

32
esy.lock/opam/conduit-lwt.2.0.2/opam

@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: [
"Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire" "Rudi Grinberg"
]
license: "ISC"
tags: "org:mirage"
homepage: "https://github.com/mirage/ocaml-conduit"
bug-reports: "https://github.com/mirage/ocaml-conduit/issues"
depends: [
"ocaml" {>= "4.03.0"}
"dune"
"base-unix"
"ppx_sexp_conv" {>= "v0.9.0" & < "v0.14"}
"sexplib" {< "v0.14"}
"conduit" {=version}
"lwt" {>= "3.0.0"}
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
]
dev-repo: "git+https://github.com/mirage/ocaml-conduit.git"
synopsis: "A portable network connection establishment library using Lwt"
url {
src:
"https://github.com/mirage/ocaml-conduit/releases/download/v2.0.2/conduit-v2.0.2.tbz"
checksum: [
"sha256=2510372ed98c7e0446d788317a435f752d900d72df0fbe4c353f5e5bfb9d1dd2"
"sha512=3e25b754c84dd603acbb4d810b532c3cfb273808b9bf9a17890e40b79e65529d17cd66d613a447cb2a7f51f0522f17d46ab0ade5c79cb2a3c8565efd484238ae"
]
}

56
esy.lock/opam/conduit.2.0.2/opam

@ -1,56 +0,0 @@ @@ -1,56 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: [
"Anil Madhavapeddy" "Thomas Leonard" "Thomas Gazagnaire" "Rudi Grinberg"
]
license: "ISC"
tags: "org:mirage"
homepage: "https://github.com/mirage/ocaml-conduit"
doc: "https://mirage.github.io/ocaml-conduit/"
bug-reports: "https://github.com/mirage/ocaml-conduit/issues"
depends: [
"ocaml" {>= "4.03.0"}
"dune"
"ppx_sexp_conv" {>= "v0.9.0" & < "v0.14"}
"sexplib" {< "v0.14"}
"astring"
"uri"
"logs" {>= "0.5.0"}
"ipaddr" {>= "4.0.0"}
"ipaddr-sexp"
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
]
dev-repo: "git+https://github.com/mirage/ocaml-conduit.git"
synopsis: "A network connection establishment library"
description: """
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 useful opam packages available that extend this library 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
- `conduit-mirage`: the MirageOS compatible implementation
"""
url {
src:
"https://github.com/mirage/ocaml-conduit/releases/download/v2.0.2/conduit-v2.0.2.tbz"
checksum: [
"sha256=2510372ed98c7e0446d788317a435f752d900d72df0fbe4c353f5e5bfb9d1dd2"
"sha512=3e25b754c84dd603acbb4d810b532c3cfb273808b9bf9a17890e40b79e65529d17cd66d613a447cb2a7f51f0522f17d46ab0ade5c79cb2a3c8565efd484238ae"
]
}

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

@ -1,22 +0,0 @@ @@ -1,22 +0,0 @@
opam-version: "2.0"
maintainer: "tim@gfxmonk.net"
homepage: "http://www.gnu.org/software/m4/m4.html"
bug-reports: "https://github.com/ocaml/opam-repository/issues"
authors: "GNU Project"
license: "GPL-3.0-only"
build: [["sh" "-exc" "echo | m4"]]
depexts: [
["m4"] {os-family = "debian"}
["m4"] {os-distribution = "fedora"}
["m4"] {os-distribution = "rhel"}
["m4"] {os-distribution = "centos"}
["m4"] {os-distribution = "alpine"}
["m4"] {os-distribution = "nixos"}
["m4"] {os-family = "suse"}
["m4"] {os-distribution = "ol"}
["m4"] {os-distribution = "arch"}
]
synopsis: "Virtual package relying on m4"
description:
"This package can only install if the m4 binary is installed on the system."
flags: conf

18
esy.lock/opam/conf-perl.1/opam

@ -1,18 +0,0 @@ @@ -1,18 +0,0 @@
opam-version: "2.0"
maintainer: "tim@gfxmonk.net"
homepage: "https://www.perl.org/"
bug-reports: "https://github.com/ocaml/opam-repository/issues"
license: "GPL-1.0-or-later"
authors: "Larry Wall"
build: [["perl" "--version"]]
depexts: [
["perl"] {os-family = "debian"}
["perl"] {os-distribution = "alpine"}
["perl"] {os-distribution = "nixos"}
["perl"] {os-distribution = "arch"}
["perl-Pod-Html"] {os-distribution = "fedora"}
]
synopsis: "Virtual package relying on perl"
description:
"This package can only install if the perl program is installed on the system."
flags: conf

37
esy.lock/opam/cppo.1.6.6/opam

@ -1,37 +0,0 @@ @@ -1,37 +0,0 @@
opam-version: "2.0"
maintainer: "martin@mjambon.com"
authors: "Martin Jambon"
license: "BSD-3-Clause"
homepage: "http://mjambon.com/cppo.html"
doc: "https://ocaml-community.github.io/cppo/"
bug-reports: "https://github.com/ocaml-community/cppo/issues"
depends: [
"ocaml" {>= "4.03"}
"dune" {>= "1.0"}
"base-unix"
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
dev-repo: "git+https://github.com/ocaml-community/cppo.git"
synopsis: "Code preprocessor like cpp for OCaml"
description: """
Cppo is an equivalent of the C preprocessor for OCaml programs.
It allows the definition of simple macros and file inclusion.
Cppo is:
* more OCaml-friendly than cpp
* easy to learn without consulting a manual
* reasonably fast
* simple to install and to maintain
"""
url {
src: "https://github.com/ocaml-community/cppo/releases/download/v1.6.6/cppo-v1.6.6.tbz"
checksum: [
"sha256=e7272996a7789175b87bb998efd079794a8db6625aae990d73f7b4484a07b8a0"
"sha512=44ecf9d225d9e45490a2feac0bde04865ca398dba6c3579e3370fcd1ea255707b8883590852af8b2df87123801062b9f3acce2455c092deabf431f9c4fb8d8eb"
]
}

22
esy.lock/opam/cpuid.0.1.2/opam

@ -1,22 +0,0 @@ @@ -1,22 +0,0 @@
opam-version: "2.0"
maintainer: "David Kaloper Meršinjak <dk505@cam.ac.uk>"
authors: ["David Kaloper Meršinjak <dk505@cam.ac.uk>"]
homepage: "https://github.com/pqwy/cpuid"
doc: "https://pqwy.github.io/cpuid/doc"
license: "ISC"
dev-repo: "git+https://github.com/pqwy/cpuid.git"
bug-reports: "https://github.com/pqwy/cpuid/issues"
build: [ ["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs ]
["dune" "runtest"] {with-test} ]
depends: [
"ocaml" {>="4.03.0"}
"dune" {>= "1.7"}
]
synopsis: "Detect CPU features"
description: "CPUID"
url {
src:
"https://github.com/pqwy/cpuid/releases/download/v0.1.2/cpuid-v0.1.2.tbz"
checksum: "md5=21079a17bcf6cfe92e2f706b9d0d6d8d"
}

35
esy.lock/opam/cstruct-lwt.5.1.1/opam

@ -1,35 +0,0 @@ @@ -1,35 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire"
"Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott"
"Mindy Preston" "Thomas Leonard" "Etienne Millon" ]
homepage: "https://github.com/mirage/ocaml-cstruct"
license: "ISC"
dev-repo: "git+https://github.com/mirage/ocaml-cstruct.git"
bug-reports: "https://github.com/mirage/ocaml-cstruct/issues"
doc: "https://mirage.github.io/ocaml-cstruct/"
tags: [ "org:mirage" "org:ocamllabs" ]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "4.03.0"}
"base-unix"
"dune"
"lwt"
"cstruct" {=version}
]
synopsis: "Access C-like structures directly from OCaml"
description: """
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."""
url {
src:
"https://github.com/mirage/ocaml-cstruct/releases/download/v5.1.1/cstruct-v5.1.1.tbz"
checksum: [
"sha256=55d1f42cb85f7872fee499c5ed382aea17b06d55d1709e071d1ba85c7a09fef3"
"sha512=c3aa9a5a9125a1d022506a76fd7cdf32b21edcdc9df1202d8a9f382d02a28a33fea9a958f79e9302907ade1fce3f166b620c320aed6486e3efcc9a7464379cab"
]
}

39
esy.lock/opam/cstruct-sexp.5.1.1/opam

@ -1,39 +0,0 @@ @@ -1,39 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire"
"Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott"
"Mindy Preston" "Thomas Leonard" "Anton Kochkov" "Etienne Millon" ]
homepage: "https://github.com/mirage/ocaml-cstruct"
license: "ISC"
dev-repo: "git+https://github.com/mirage/ocaml-cstruct.git"
bug-reports: "https://github.com/mirage/ocaml-cstruct/issues"
doc: "https://mirage.github.io/ocaml-cstruct/"
tags: [ "org:mirage" "org:ocamllabs" ]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
depends: [
"ocaml" {>= "4.03.0"}
"dune"
"sexplib"
"cstruct" {=version}
"alcotest" {with-test}
]
synopsis: "S-expression serialisers for C-like structures"
description: """
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.
This library provides Sexplib serialisers for the Cstruct.t values."""
url {
src:
"https://github.com/mirage/ocaml-cstruct/releases/download/v5.1.1/cstruct-v5.1.1.tbz"
checksum: [
"sha256=55d1f42cb85f7872fee499c5ed382aea17b06d55d1709e071d1ba85c7a09fef3"
"sha512=c3aa9a5a9125a1d022506a76fd7cdf32b21edcdc9df1202d8a9f382d02a28a33fea9a958f79e9302907ade1fce3f166b620c320aed6486e3efcc9a7464379cab"
]
}

37
esy.lock/opam/cstruct.5.1.1/opam

@ -1,37 +0,0 @@ @@ -1,37 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire"
"Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott"
"Mindy Preston" "Thomas Leonard" "Anton Kochkov" "Etienne Millon" ]
homepage: "https://github.com/mirage/ocaml-cstruct"
license: "ISC"
dev-repo: "git+https://github.com/mirage/ocaml-cstruct.git"
bug-reports: "https://github.com/mirage/ocaml-cstruct/issues"
doc: "https://mirage.github.io/ocaml-cstruct/"
tags: [ "org:mirage" "org:ocamllabs" ]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
depends: [
"ocaml" {>= "4.03.0"}
"dune"
"bigarray-compat"
"alcotest" {with-test}
]
conflicts: [ "js_of_ocaml" {<"3.5.0"} ]
synopsis: "Access C-like structures directly from OCaml"
description: """
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."""
url {
src:
"https://github.com/mirage/ocaml-cstruct/releases/download/v5.1.1/cstruct-v5.1.1.tbz"
checksum: [
"sha256=55d1f42cb85f7872fee499c5ed382aea17b06d55d1709e071d1ba85c7a09fef3"
"sha512=c3aa9a5a9125a1d022506a76fd7cdf32b21edcdc9df1202d8a9f382d02a28a33fea9a958f79e9302907ade1fce3f166b620c320aed6486e3efcc9a7464379cab"
]
}

37
esy.lock/opam/domain-name.0.3.0/opam

@ -1,37 +0,0 @@ @@ -1,37 +0,0 @@
opam-version: "2.0"
maintainer: "Hannes Mehnert <hannes@mehnert.org>"
authors: "Hannes Mehnert <hannes@mehnert.org>"
license: "ISC"
homepage: "https://github.com/hannesm/domain-name"
doc: "https://hannesm.github.io/domain-name/doc"
bug-reports: "https://github.com/hannesm/domain-name/issues"
depends: [
"ocaml" {>= "4.04.2"}
"dune"
"fmt"
"astring"
"alcotest" {with-test}
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
dev-repo: "git+https://github.com/hannesm/domain-name.git"
synopsis: "RFC 1035 Internet domain names"
description: """
A domain name is a sequence of labels separated by dots, such as `foo.example`.
Each label may contain any bytes. The length of each label may not exceed 63
charactes. The total length of a domain name is limited to 253 (byte
representation is 255), but other protocols (such as SMTP) may apply even
smaller limits. A domain name label is case preserving, comparison is done in a
case insensitive manner.
"""
url {
src:
"https://github.com/hannesm/domain-name/releases/download/v0.3.0/domain-name-v0.3.0.tbz"
checksum: [
"sha256=4dd9ed1bc619886d1adcaff14edfb503dedb77fc0b7a28d88d213aa1c44d6c8a"
"sha512=8229766b20a44622d3a94250c6909dbe64269aab6dde8dd13f6b1c027d63e119658fd35b459c6556817ab583bbfdbc5dbea97d3022f590184d70a72ecd7c0a34"
]
}

43
esy.lock/opam/dune-configurator.2.3.1/opam

@ -1,43 +0,0 @@ @@ -1,43 +0,0 @@
opam-version: "2.0"
synopsis: "Helper library for gathering system configuration"
description: """
dune-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.
Among other things, dune-configurator allows one to:
- test if a C program compiles
- query pkg-config
- import #define from OCaml header files
- generate config.h file
"""
maintainer: ["Jane Street Group, LLC <opensource@janestreet.com>"]
authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
license: "MIT"
homepage: "https://github.com/ocaml/dune"
doc: "https://dune.readthedocs.io/"
bug-reports: "https://github.com/ocaml/dune/issues"
depends: [
"dune" {>= "2.3"}
"dune-private-libs" {= version}
]
dev-repo: "git+https://github.com/ocaml/dune.git"
build: [
["dune" "subst"] {pinned}
[
"dune"
"build"
"-p"
name
"-j"
jobs
"@install"
"@doc" {with-doc}
]
]
url {
src: "https://github.com/ocaml/dune/releases/download/2.3.1/dune-2.3.1.tbz"
checksum: [
"sha256=b2b3dd9cdfd34ef8c4583ea8c52c3503c2395bf94c264af19d6450547e12f5cb"
"sha512=023fe4ddf743b8de24de0d7d2e6d5d0f85e459c5044aa4ba3de02cf63113d54d79004cc8ea8f7a958b324e9cbeef0845ec6a0f65454bc6a2e635e8944d28a0f9"
]
}

42
esy.lock/opam/dune-private-libs.2.3.1/opam

@ -1,42 +0,0 @@ @@ -1,42 +0,0 @@
opam-version: "2.0"
synopsis: "Private libraries of Dune"
description: """
!!!!!!!!!!!!!!!!!!!!!!
!!!!! DO NOT USE !!!!!
!!!!!!!!!!!!!!!!!!!!!!
This package contains code that is shared between various dune-xxx
packages. However, it is not meant for public consumption and provides
no stability guarantee.
"""
maintainer: ["Jane Street Group, LLC <opensource@janestreet.com>"]
authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
license: "MIT"
homepage: "https://github.com/ocaml/dune"
doc: "https://dune.readthedocs.io/"
bug-reports: "https://github.com/ocaml/dune/issues"
depends: [
"dune" {>= "2.3"}
"ocaml" {>= "4.07"}
]
dev-repo: "git+https://github.com/ocaml/dune.git"
build: [
["dune" "subst"] {pinned}
[
"dune"
"build"
"-p"
name
"-j"
jobs
"@install"
"@doc" {with-doc}
]
]
url {
src: "https://github.com/ocaml/dune/releases/download/2.3.1/dune-2.3.1.tbz"
checksum: [
"sha256=b2b3dd9cdfd34ef8c4583ea8c52c3503c2395bf94c264af19d6450547e12f5cb"
"sha512=023fe4ddf743b8de24de0d7d2e6d5d0f85e459c5044aa4ba3de02cf63113d54d79004cc8ea8f7a958b324e9cbeef0845ec6a0f65454bc6a2e635e8944d28a0f9"
]
}

54
esy.lock/opam/dune.2.3.1/opam

@ -1,54 +0,0 @@ @@ -1,54 +0,0 @@
opam-version: "2.0"
synopsis: "Fast, portable, and opinionated build system"
description: """
dune is a build system that was designed to simplify the release of
Jane Street packages. It reads metadata from "dune" files following a
very simple s-expression syntax.
dune is fast, has very low-overhead, and supports parallel builds on
all platforms. It has no system dependencies; all you need to build
dune or packages using dune is OCaml. You don't need make or bash
as long as the packages themselves don't use bash explicitly.
dune supports multi-package development by simply dropping multiple
repositories into the same directory.
It also supports multi-context builds, such as building against
several opam roots/switches simultaneously. This helps maintaining
packages across several versions of OCaml and gives cross-compilation
for free.
"""
maintainer: ["Jane Street Group, LLC <opensource@janestreet.com>"]
authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
license: "MIT"
homepage: "https://github.com/ocaml/dune"
doc: "https://dune.readthedocs.io/"
bug-reports: "https://github.com/ocaml/dune/issues"
conflicts: [
"dune-configurator" {< "2.3.0"}
"odoc" {< "1.3.0"}
"dune-release" {< "1.3.0"}
"jbuilder" {= "transition"}
]
dev-repo: "git+https://github.com/ocaml/dune.git"
build: [
# opam 2 sets OPAM_SWITCH_PREFIX, so we don't need a hardcoded path
["ocaml" "configure.ml" "--libdir" lib] {opam-version < "2"}
["ocaml" "bootstrap.ml" "-j" jobs]
["./dune.exe" "build" "-p" name "--profile" "dune-bootstrap" "-j" jobs]
]
depends: [
# Please keep the lower bound in sync with .travis.yml, dune-project
# and min_ocaml_version in bootstrap.ml
("ocaml" {>= "4.07"} | ("ocaml" {< "4.07~~"} & "ocamlfind-secondary"))
"base-unix"
"base-threads"
]
url {
src: "https://github.com/ocaml/dune/releases/download/2.3.1/dune-2.3.1.tbz"
checksum: [
"sha256=b2b3dd9cdfd34ef8c4583ea8c52c3503c2395bf94c264af19d6450547e12f5cb"
"sha512=023fe4ddf743b8de24de0d7d2e6d5d0f85e459c5044aa4ba3de02cf63113d54d79004cc8ea8f7a958b324e9cbeef0845ec6a0f65454bc6a2e635e8944d28a0f9"
]
}

46
esy.lock/opam/easy-format.1.3.2/opam

@ -1,46 +0,0 @@ @@ -1,46 +0,0 @@
opam-version: "2.0"
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
["dune" "build" "-p" name "@doc"] {with-doc}
]
maintainer: ["martin@mjambon.com" "rudi.grinberg@gmail.com"]
authors: ["Martin Jambon"]
bug-reports: "https://github.com/mjambon/easy-format/issues"
homepage: "https://github.com/mjambon/easy-format"
doc: "https://mjambon.github.io/easy-format/"
license: "BSD-3-Clause"
dev-repo: "git+https://github.com/mjambon/easy-format.git"
synopsis:
"High-level and functional interface to the Format module of the OCaml standard library"
description: """
This module offers a high-level and functional interface to the Format module of
the OCaml standard library. It is a pretty-printing facility, i.e. it takes as
input some code represented as a tree and formats this code into the most
visually satisfying result, breaking and indenting lines of code where
appropriate.
Input data must be first modelled and converted into a tree using 3 kinds of
nodes:
* atoms
* lists
* labelled nodes
Atoms represent any text that is guaranteed to be printed as-is. Lists can model
any sequence of items such as arrays of data or lists of definitions that are
labelled with something like "int main", "let x =" or "x:"."""
depends: [
"dune" {>= "1.10"}
"ocaml" {>= "4.02.3"}
]
url {
src:
"https://github.com/mjambon/easy-format/releases/download/1.3.2/easy-format-1.3.2.tbz"
checksum: [
"sha256=3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926"
"sha512=e39377a2ff020ceb9ac29e8515a89d9bdbc91dfcfa871c4e3baafa56753fac2896768e5d9822a050dc1e2ade43c8967afb69391a386c0a8ecd4e1f774e236135"
]
}

27
esy.lock/opam/fieldslib.v0.13.0/opam

@ -1,27 +0,0 @@ @@ -1,27 +0,0 @@
opam-version: "2.0"
maintainer: "opensource@janestreet.com"
authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
homepage: "https://github.com/janestreet/fieldslib"
bug-reports: "https://github.com/janestreet/fieldslib/issues"
dev-repo: "git+https://github.com/janestreet/fieldslib.git"
doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/fieldslib/index.html"
license: "MIT"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "4.04.2"}
"base" {>= "v0.13" & < "v0.14"}
"dune" {>= "1.5.1"}
]
synopsis: "Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values"
description: "
Part of Jane Street's Core library
The Core suite of libraries is an industrial strength alternative to
OCaml's standard library that was developed by Jane Street, the
largest industrial user of OCaml.
"
url {
src: "https://ocaml.janestreet.com/ocaml-core/v0.13/files/fieldslib-v0.13.0.tar.gz"
checksum: "md5=3ac72dc49e43416c8b6fa0897bd4838b"
}

44
esy.lock/opam/fmt.0.8.8/opam

@ -1,44 +0,0 @@ @@ -1,44 +0,0 @@
opam-version: "2.0"
maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"
authors: [ "The fmt programmers" ]
homepage: "https://erratique.ch/software/fmt"
doc: "https://erratique.ch/software/fmt"
dev-repo: "git+https://erratique.ch/repos/fmt.git"
bug-reports: "https://github.com/dbuenzli/fmt/issues"
tags: [ "string" "format" "pretty-print" "org:erratique" ]
license: "ISC"
depends: [
"ocaml" {>= "4.05.0"}
"ocamlfind" {build}
"ocamlbuild" {build}
"topkg" {build & >= "0.9.0"}
# Can be removed once ocaml >= 4.07
"seq"
"stdlib-shims"
]
depopts: [ "base-unix" "cmdliner" ]
conflicts: [ "cmdliner" {< "0.9.8"} ]
build: [[
"ocaml" "pkg/pkg.ml" "build"
"--dev-pkg" "%{pinned}%"
"--with-base-unix" "%{base-unix:installed}%"
"--with-cmdliner" "%{cmdliner:installed}%" ]]
synopsis: """OCaml Format pretty-printer combinators"""
description: """\
Fmt exposes combinators to devise `Format` pretty-printing functions.
Fmt depends only on the OCaml standard library. The optional `Fmt_tty`
library that allows to setup formatters for terminal color output
depends on the Unix library. The optional `Fmt_cli` library that
provides command line support for Fmt depends on [`Cmdliner`][cmdliner].
Fmt is distributed under the ISC license.
[cmdliner]: http://erratique.ch/software/cmdliner
"""
url {
archive: "https://erratique.ch/software/fmt/releases/fmt-0.8.8.tbz"
checksum: "473490fcfdf3ff0a8ccee226b873d4b2"
}

36
esy.lock/opam/gmap.0.3.0/opam

@ -1,36 +0,0 @@ @@ -1,36 +0,0 @@
opam-version: "2.0"
maintainer: "Hannes Mehnert <hannes@mehnert.org>"
authors: "Hannes Mehnert <hannes@mehnert.org>"
license: "ISC"
homepage: "https://github.com/hannesm/gmap"
doc: "https://hannesm.github.io/gmap/doc"
bug-reports: "https://github.com/hannesm/gmap/issues"
depends: [
"ocaml" {>= "4.04.2"}
"dune"
"alcotest" {with-test}
"fmt" {with-test}
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
dev-repo: "git+https://github.com/hannesm/gmap.git"
synopsis: "Heterogenous maps over a GADT"
description: """
Gmap exposes the functor `Make` which takes a key type (a
[GADT](https://en.wikipedia.org/wiki/Generalized_algebraic_data_type) 'a key)
and outputs a type-safe Map where each 'a key is associated with a 'a value.
This removes the need for additional packing. It uses OCaml's stdlib
[Map](http://caml.inria.fr/pub/docs/manual-ocaml/libref/Map.html) data
structure.
"""
url {
src:
"https://github.com/hannesm/gmap/releases/download/0.3.0/gmap-0.3.0.tbz"
checksum: [
"sha256=04dd9e6226ac8f8fb4ccb6021048702e34a482fb9c1d240d3852829529507c1c"
"sha512=71616981f5a15d6b2a47e18702083e52e81f6547076085b1489f676f50b0cc47c7c2c4fa19cb581e2878dc3d4f7133d0c50d8b51a8390be0e6e30318907d81d3"
]
}

35
esy.lock/opam/ipaddr-sexp.4.0.0/opam

@ -1,35 +0,0 @@ @@ -1,35 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: ["David Sheets" "Anil Madhavapeddy" "Hugo Heuzard"]
synopsis: "A library for manipulation of IP address representations usnig sexp"
description: """
Sexp convertions for ipaddr
"""
license: "ISC"
tags: ["org:mirage" "org:xapi-project"]
homepage: "https://github.com/mirage/ocaml-ipaddr"
doc: "https://mirage.github.io/ocaml-ipaddr/"
bug-reports: "https://github.com/mirage/ocaml-ipaddr/issues"
depends: [
"ocaml" {>= "4.04.0"}
"dune" {>="1.9.0"}
"ipaddr" {=version}
"ipaddr-cstruct" {with-test & =version}
"ounit" {with-test}
"ppx_sexp_conv" {>= "v0.9.0" & < "v0.14"}
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
dev-repo: "git+https://github.com/mirage/ocaml-ipaddr.git"
url {
src:
"https://github.com/mirage/ocaml-ipaddr/releases/download/v4.0.0/ipaddr-v4.0.0.tbz"
checksum: [
"sha256=6f4abf9c210b20ccddf4610691a87b8c870790d8f71d4a7edcfca9e21b59fc29"
"sha512=ca55a8cfa8b84c0a2f4e1fe7afb4c582066bbb562efb94169c0347e441ce076dc426d191772edb869eca6bd77f42f7141378181057ad8886da25ef915a9ee57f"
]
}

51
esy.lock/opam/ipaddr.4.0.0/opam

@ -1,51 +0,0 @@ @@ -1,51 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: ["David Sheets" "Anil Madhavapeddy" "Hugo Heuzard"]
synopsis: "A library for manipulation of IP (and MAC) address representations"
description: """
Features:
* Depends only on sexplib (conditionalization under consideration)
* oUnit-based tests
* IPv4 and IPv6 support
* IPv4 and IPv6 CIDR prefix support
* IPv4 and IPv6 [CIDR-scoped address](http://tools.ietf.org/html/rfc4291#section-2.3) support
* `Ipaddr.V4` and `Ipaddr.V4.Prefix` modules are `Map.OrderedType`
* `Ipaddr.V6` and `Ipaddr.V6.Prefix` modules are `Map.OrderedType`
* `Ipaddr` and `Ipaddr.Prefix` modules are `Map.OrderedType`
* `Ipaddr_unix` in findlib subpackage `ipaddr.unix` provides compatibility with the standard library `Unix` module
* `Ipaddr_top` in findlib subpackage `ipaddr.top` provides top-level pretty printers (requires compiler-libs default since OCaml 4.0)
* IP address scope classification
* IPv4-mapped addresses in IPv6 (::ffff:0:0/96) are an embedding of IPv4
* MAC-48 (Ethernet) address support
* `Macaddr` is a `Map.OrderedType`
* All types have sexplib serializers/deserializers
"""
license: "ISC"
tags: ["org:mirage" "org:xapi-project"]
homepage: "https://github.com/mirage/ocaml-ipaddr"
doc: "https://mirage.github.io/ocaml-ipaddr/"
bug-reports: "https://github.com/mirage/ocaml-ipaddr/issues"
depends: [
"ocaml" {>= "4.04.0"}
"dune" {>="1.9.0"}
"macaddr" {=version}
"sexplib0" {< "v0.14"}
"domain-name" {>= "0.3.0"}
"ounit" {with-test}
"ppx_sexp_conv" {with-test & >= "v0.9.0" & < "v0.14"}
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
dev-repo: "git+https://github.com/mirage/ocaml-ipaddr.git"
url {
src:
"https://github.com/mirage/ocaml-ipaddr/releases/download/v4.0.0/ipaddr-v4.0.0.tbz"
checksum: [
"sha256=6f4abf9c210b20ccddf4610691a87b8c870790d8f71d4a7edcfca9e21b59fc29"
"sha512=ca55a8cfa8b84c0a2f4e1fe7afb4c582066bbb562efb94169c0347e441ce076dc426d191772edb869eca6bd77f42f7141378181057ad8886da25ef915a9ee57f"
]
}

39
esy.lock/opam/jbuilder.1.0+beta20.2/opam

@ -1,39 +0,0 @@ @@ -1,39 +0,0 @@
opam-version: "2.0"
maintainer: "opensource@janestreet.com"
authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
homepage: "https://github.com/ocaml/dune"
bug-reports: "https://github.com/ocaml/dune/issues"
dev-repo: "git+https://github.com/ocaml/dune.git"
license: "Apache-2.0"
build: [
["ocaml" "configure.ml" "--libdir" lib]
["ocaml" "bootstrap.ml"]
["./boot.exe" "--subst"] {pinned}
["./boot.exe" "-j" jobs]
]
synopsis: "Fast, portable and opinionated build system"
description: """
jbuilder is a build system that was designed to simplify the release
of Jane Street packages. It reads metadata from "jbuild" files
following a very simple s-expression syntax.
jbuilder is fast, it has very low-overhead and support parallel builds
on all platforms. It has no system dependencies, all you need to build
jbuilder and packages using jbuilder is OCaml. You don't need or make
or bash as long as the packages themselves don't use bash explicitely.
jbuilder supports multi-package development by simply dropping multiple
repositories into the same directory.
It also supports multi-context builds, such as building against
several opam roots/switches simultaneously. This helps maintaining
packages across several versions of OCaml and gives cross-compilation
for free."""
depends: [
"ocaml" {>= "4.02.3"}
]
url {
src:
"https://github.com/ocaml/dune/releases/download/1.0%2Bbeta20.2/jbuilder-1.0+beta20.2.tbz"
checksum: "md5=fbe8c3b1facb206cac3fb8932b5dd5d9"
}

37
esy.lock/opam/jsonm.1.0.1/opam

@ -1,37 +0,0 @@ @@ -1,37 +0,0 @@
opam-version: "2.0"
maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"
authors: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]
homepage: "http://erratique.ch/software/jsonm"
doc: "http://erratique.ch/software/jsonm/doc/Jsonm"
dev-repo: "git+http://erratique.ch/repos/jsonm.git"
bug-reports: "https://github.com/dbuenzli/jsonm/issues"
tags: [ "json" "codec" "org:erratique" ]
license: "ISC"
depends: [
"ocaml" {>= "4.01.0"}
"ocamlfind" {build}
"ocamlbuild" {build}
"topkg" {build}
"uchar"
"uutf" {>= "1.0.0"}
]
build:[[
"ocaml" "pkg/pkg.ml" "build"
"--pinned" "%{pinned}%" ]]
synopsis: "Non-blocking streaming JSON codec for OCaml"
description: """
Jsonm is a non-blocking streaming codec to decode and encode the JSON
data format. It can process JSON text without blocking on IO and
without a complete in-memory representation of the data.
The alternative "uncut" codec also processes whitespace and
(non-standard) JSON with JavaScript comments.
Jsonm is made of a single module and depends on [Uutf][uutf]. It is distributed
under the ISC license.
[uutf]: http://erratique.ch/software/uutf"""
url {
src: "http://erratique.ch/software/jsonm/releases/jsonm-1.0.1.tbz"
checksum: "md5=e2ca39eaefd55b8d155c4f1ec5885311"
}

32
esy.lock/opam/junit.2.0.2/opam

@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
opam-version: "2.0"
maintainer: "Louis Roché <louis@louisroche.net>"
authors: "Louis Roché <louis@louisroche.net>"
homepage: "https://github.com/Khady/ocaml-junit"
bug-reports: "https://github.com/Khady/ocaml-junit/issues"
license: "LGPLv3+ with OCaml linking exception"
dev-repo: "git+https://github.com/Khady/ocaml-junit.git"
doc: "https://khady.github.io/ocaml-junit/"
tags: ["junit" "jenkins"]
depends: [
"dune" {>= "1.0"}
"ptime"
"tyxml" {>= "4.0.0"}
"odoc" {with-doc & >= "1.1.1"}
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
["dune" "build" "-p" name "-j" jobs] {with-doc}
]
name: "junit"
synopsis: "JUnit XML reports generation library"
description: "JUnit XML reports generation library"
url {
src:
"https://github.com/Khady/ocaml-junit/releases/download/2.0.2/junit-2.0.2.tbz"
checksum: [
"sha256=fda941b653613a4a5731f9b3557364b12baa341daa13c01676c9eb8d64e96b01"
"sha512=5a9fa803c4861748bb8482fc51197420bf3cc3b9540989a489c4ffb65fdd02386aaa60437eae29182209dae0903b0e537c095249e19d395a451b8e8214f15f03"
]
}

46
esy.lock/opam/lambdasoup.0.7.0/opam

@ -1,46 +0,0 @@ @@ -1,46 +0,0 @@
opam-version: "2.0"
synopsis: "Easy functional HTML scraping and manipulation with CSS selectors"
version: "0.7.0"
license: "MIT"
homepage: "https://github.com/aantron/lambdasoup"
doc: "https://aantron.github.io/lambdasoup"
bug-reports: "https://github.com/aantron/lambdasoup/issues"
authors: "Anton Bachin <antonbachin@yahoo.com>"
maintainer: "Anton Bachin <antonbachin@yahoo.com>"
dev-repo: "git+https://github.com/aantron/lambdasoup.git"
depends: [
# As a consequence of depending on Dune, Lambda Soup requires OCaml 4.02.3.
"dune"
"markup" {>= "0.7.1"}
"ocaml" {>= "4.02.0"}
"bisect_ppx" {dev & >= "2.0.0"}
"ounit" {with-test}
]
build: [
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
description: """
Lambda Soup is an HTML scraping library inspired by Python's Beautiful Soup. It
provides lazy traversals from HTML nodes to their parents, children, siblings,
etc., and to nodes matching CSS selectors. The traversals can be manipulated
using standard functional combinators such as fold, filter, and map.
The DOM tree is mutable. You can use Lambda Soup for automatic HTML rewriting in
scripts. Lambda Soup rewrites its own ocamldoc page this way.
A major goal of Lambda Soup is to be easy to use, including in interactive
sessions, and to have a minimal learning curve. It is a very simple library.
"""
url {
src: "https://github.com/aantron/lambdasoup/archive/0.7.0.tar.gz"
checksum: "md5=2bb2c7d8a6ac4e12aa7dbdfcbaac0dd8"
}

64
esy.lock/opam/logs.0.7.0/opam

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

62
esy.lock/opam/lwt.5.1.2/opam

@ -1,62 +0,0 @@ @@ -1,62 +0,0 @@
opam-version: "2.0"
synopsis: "Promises and event-driven I/O"
version: "5.1.2"
license: "MIT"
homepage: "https://github.com/ocsigen/lwt"
doc: "https://ocsigen.org/lwt"
bug-reports: "https://github.com/ocsigen/lwt/issues"
authors: [
"Jérôme Vouillon"
"Jérémie Dimino"
]
maintainer: [
"Anton Bachin <antonbachin@yahoo.com>"
]
dev-repo: "git+https://github.com/ocsigen/lwt.git"
depends: [
"cppo" {build & >= "1.1.0"}
"dune" {>= "1.7.0"}
"dune-configurator"
"mmap" {>= "1.1.0"} # mmap is needed as long as Lwt supports OCaml < 4.06.0.
"ocaml" {>= "4.02.0"}
"ocplib-endian"
"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: [
"base-threads"
"base-unix"
"conf-libev"
]
conflicts: [
"ocaml-variants" {= "4.02.1+BER"}
]
build: [
["dune" "exec" "src/unix/config/discover.exe" "--root" "." "--" "--save"
"--use-libev" "%{conf-libev:installed}%"]
["dune" "build" "-p" name "-j" jobs]
]
description: "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
resolved by Lwt in parallel.
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
synchronization primitives. Code can be run in parallel on an opt-in basis."
url {
src: "https://github.com/ocsigen/lwt/archive/5.1.2.tar.gz"
checksum: "md5=dc4005582a6ab32227f5ff90cb480dbe"
}

34
esy.lock/opam/lwt_ppx.2.0.0/opam

@ -1,34 +0,0 @@ @@ -1,34 +0,0 @@
opam-version: "2.0"
synopsis: "PPX syntax for Lwt, providing something similar to async/await from JavaScript"
version: "2.0.0"
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: [
"Gabriel Radanne"
]
maintainer: [
"Anton Bachin <antonbachin@yahoo.com>"
]
dev-repo: "git+https://github.com/ocsigen/lwt.git"
depends: [
"dune" {>= "1.1"}
"lwt"
"ocaml" {>= "4.02.0"}
"ocaml-migrate-parsetree" {>= "1.4.0"}
"ppx_tools_versioned" {>= "5.2.3"}
]
build: [
["dune" "build" "-p" name "-j" jobs]
]
url {
src: "https://github.com/ocsigen/lwt/archive/5.0.0.tar.gz"
checksum: "md5=a4ffc0e3aa692d2e7d800f4cf2dd3db0"
}

40
esy.lock/opam/macaddr.4.0.0/opam

@ -1,40 +0,0 @@ @@ -1,40 +0,0 @@
opam-version: "2.0"
maintainer: "anil@recoil.org"
authors: ["David Sheets" "Anil Madhavapeddy" "Hugo Heuzard"]
synopsis: "A library for manipulation of MAC address representations"
license: "ISC"
tags: ["org:mirage" "org:xapi-project"]
homepage: "https://github.com/mirage/ocaml-ipaddr"
doc: "https://mirage.github.io/ocaml-ipaddr/"
bug-reports: "https://github.com/mirage/ocaml-ipaddr/issues"
depends: [
"ocaml" {>= "4.04.0"}
"dune" {>="1.9.0"}
"ounit" {with-test}
"ppx_sexp_conv" {with-test & >= "v0.9.0" & < "v0.14"}
]
conflicts: [ "ipaddr" {< "3.0.0"} ]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
dev-repo: "git+https://github.com/mirage/ocaml-ipaddr.git"
description: """
A library for manipulation of MAC address representations.
Features:
* oUnit-based tests
* MAC-48 (Ethernet) address support
* `Macaddr` is a `Map.OrderedType`
* All types have sexplib serializers/deserializers optionally via the `Macaddr_sexp` library.
"""
url {
src:
"https://github.com/mirage/ocaml-ipaddr/releases/download/v4.0.0/ipaddr-v4.0.0.tbz"
checksum: [
"sha256=6f4abf9c210b20ccddf4610691a87b8c870790d8f71d4a7edcfca9e21b59fc29"
"sha512=ca55a8cfa8b84c0a2f4e1fe7afb4c582066bbb562efb94169c0347e441ce076dc426d191772edb869eca6bd77f42f7141378181057ad8886da25ef915a9ee57f"
]
}

41
esy.lock/opam/magic-mime.1.1.2/opam

@ -1,41 +0,0 @@ @@ -1,41 +0,0 @@
opam-version: "2.0"
name: "magic-mime"
synopsis: "Map filenames to common MIME types"
description: """
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
e-mail. It is generated from the `mime.types` file found in Unix systems, but
has no dependency on a filesystem since it includes the contents of the
database as an ML datastructure.
For example, here's how to lookup MIME types in the [utop] REPL:
#require "magic-mime";;
Magic_mime.lookup "/foo/bar.txt";;
- : bytes = "text/plain"
Magic_mime.lookup "bar.css";;
- : bytes = "text/css"
"""
maintainer: "Anil Madhavapeddy <anil@recoil.org>"
authors: ["Anil Madhavapeddy" "Maxence Guesdon"]
license: "ISC"
homepage: "https://github.com/mirage/ocaml-magic-mime"
doc: "https://mirage.github.io/ocaml-magic-mime/"
bug-reports: "https://github.com/mirage/ocaml-magic-mime/issues"
dev-repo: "git+https://github.com/mirage/ocaml-magic-mime.git"
depends: [
"ocaml" {>= "4.03.0"}
"dune"
]
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
]
url {
src:
"https://github.com/mirage/ocaml-magic-mime/releases/download/v1.1.2/magic-mime-v1.1.2.tbz"
checksum: [
"sha256=0c590bbc747531b56d392ee8f063d879df1e2026ba2dfa2d1bc98c9a9acb04eb"
"sha512=8264db78adc2c75b8adabc23c26ad34eab98383bd3a8f2068f2236ff3425d653c0238fbd7361e55a3d70d843413ef8671b6e97293074b4d3a1e300628d5292ab"
]
}

53
esy.lock/opam/markup.0.8.2/opam

@ -1,53 +0,0 @@ @@ -1,53 +0,0 @@
opam-version: "2.0"
synopsis: "Error-recovering functional HTML5 and XML parsers and writers"
version: "0.8.2"
license: "MIT"
homepage: "https://github.com/aantron/markup.ml"
doc: "http://aantron.github.io/markup.ml"
bug-reports: "https://github.com/aantron/markup.ml/issues"
authors: "Anton Bachin <antonbachin@yahoo.com>"
maintainer: "Anton Bachin <antonbachin@yahoo.com>"
dev-repo: "git+https://github.com/aantron/markup.ml.git"
depends: [
"dune"
"ocaml" {>= "4.02.0"}
"uchar"
"uutf" {>= "1.0.0"}
"bisect_ppx" {dev & >= "2.0.0"}
"ounit" {dev}
]
# Markup.ml implicitly requires OCaml 4.02.3, as this is a contraint of Dune.
build: [
["dune" "build" "-p" name "-j" jobs]
]
description: """
Markup.ml provides an HTML parser and an XML parser. The parsers are wrapped in
a simple interface: they are functions that transform byte streams to parsing
signal streams. Streams can be manipulated in various ways, such as processing
by fold, filter, and map, assembly into DOM tree structures, or serialization
back to HTML or XML.
Both parsers are based on their respective standards. The HTML parser, in
particular, is based on the state machines defined in HTML5.
The parsers are error-recovering by default, and accept fragments. This makes it
very easy to get a best-effort parse of some input. The parsers can, however, be
easily configured to be strict, and to accept only full documents.
Apart from this, the parsers are streaming (do not build up a document in
memory), non-blocking (can be used with threading libraries), lazy (do not
consume input unless the signal stream is being read), and process the input in
a single pass. They automatically detect the character encoding of the input
stream, and convert everything to UTF-8."""
url {
src: "https://github.com/aantron/markup.ml/archive/0.8.2.tar.gz"
checksum: "md5=0fe6b3a04d941ca40a5efdd082f1183d"
}

27
esy.lock/opam/menhir.20200211/opam

@ -1,27 +0,0 @@ @@ -1,27 +0,0 @@
opam-version: "2.0"
maintainer: "francois.pottier@inria.fr"
authors: [
"François Pottier <francois.pottier@inria.fr>"
"Yann Régis-Gianas <yrg@pps.univ-paris-diderot.fr>"
]
homepage: "http://gitlab.inria.fr/fpottier/menhir"
dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"
bug-reports: "menhir@inria.fr"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "4.02.3"}
"dune" {>= "2.2.0"}
"menhirLib" {= version}
"menhirSdk" {= version}
]
synopsis: "An LR(1) parser generator"
url {
src:
"https://gitlab.inria.fr/fpottier/menhir/repository/20200211/archive.tar.gz"
checksum: [
"md5=01577e5f15380c35bdaa8fd818204560"
"sha512=a686c4b047d5236c425afcd7f179964191268ff448b8d18510579d742a7256855049bc4fe568bb8f1b0d6cbfb758d95cd05e621e3410b75245bb799d623725d6"
]
}

25
esy.lock/opam/menhirLib.20200211/opam

@ -1,25 +0,0 @@ @@ -1,25 +0,0 @@
opam-version: "2.0"
maintainer: "francois.pottier@inria.fr"
authors: [
"François Pottier <francois.pottier@inria.fr>"
"Yann Régis-Gianas <yrg@pps.univ-paris-diderot.fr>"
]
homepage: "http://gitlab.inria.fr/fpottier/menhir"
dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"
bug-reports: "menhir@inria.fr"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "4.02.3"}
"dune" {>= "2.0.0"}
]
synopsis: "Runtime support library for parsers generated by Menhir"
url {
src:
"https://gitlab.inria.fr/fpottier/menhir/repository/20200211/archive.tar.gz"
checksum: [
"md5=01577e5f15380c35bdaa8fd818204560"
"sha512=a686c4b047d5236c425afcd7f179964191268ff448b8d18510579d742a7256855049bc4fe568bb8f1b0d6cbfb758d95cd05e621e3410b75245bb799d623725d6"
]
}

25
esy.lock/opam/menhirSdk.20200211/opam

@ -1,25 +0,0 @@ @@ -1,25 +0,0 @@
opam-version: "2.0"
maintainer: "francois.pottier@inria.fr"
authors: [
"François Pottier <francois.pottier@inria.fr>"
"Yann Régis-Gianas <yrg@pps.univ-paris-diderot.fr>"
]
homepage: "http://gitlab.inria.fr/fpottier/menhir"
dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"
bug-reports: "menhir@inria.fr"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "4.02.3"}
"dune" {>= "2.0.0"}
]
synopsis: "Compile-time library for auxiliary tools related to Menhir"
url {
src:
"https://gitlab.inria.fr/fpottier/menhir/repository/20200211/archive.tar.gz"
checksum: [
"md5=01577e5f15380c35bdaa8fd818204560"
"sha512=a686c4b047d5236c425afcd7f179964191268ff448b8d18510579d742a7256855049bc4fe568bb8f1b0d6cbfb758d95cd05e621e3410b75245bb799d623725d6"
]
}

29
esy.lock/opam/merlin-extend.0.5/opam

@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
opam-version: "2.0"
maintainer: "Frederic Bour <frederic.bour@lakaban.net>"
authors: "Frederic Bour <frederic.bour@lakaban.net>"
homepage: "https://github.com/let-def/merlin-extend"
bug-reports: "https://github.com/let-def/merlin-extend"
license: "MIT"
dev-repo: "git+https://github.com/let-def/merlin-extend.git"
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"dune" {>= "1.0"}
"cppo" {build}
"ocaml" {>= "4.02.3"}
]
synopsis: "A protocol to provide custom frontend to Merlin"
description: """
This protocol allows to replace the OCaml frontend of Merlin.
It extends what used to be done with the `-pp' flag to handle a few more cases."""
doc: "https://let-def.github.io/merlin-extend"
url {
src:
"https://github.com/let-def/merlin-extend/releases/download/v0.5/merlin-extend-v0.5.tbz"
checksum: [
"sha256=ca3a38c360c7d4827eb4789abf7a6aa4b6e3b4e3c3ef69a5be64dce4601ec227"
"sha512=55c5a3637337abb8ca8db679128a81ca8ccce567bc214d55b2e6444dc0e905b74c64d629bdea2457d0fe4be5306414feefcdbc4d4761fdafd59aa107550936b6"
]
}

71
esy.lock/opam/merlin.3.3.3/opam

@ -1,71 +0,0 @@ @@ -1,71 +0,0 @@
opam-version: "2.0"
maintainer: "defree@gmail.com"
authors: "The Merlin team"
homepage: "https://github.com/ocaml/merlin"
bug-reports: "https://github.com/ocaml/merlin/issues"
dev-repo: "git+https://github.com/ocaml/merlin.git"
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
depends: [
"ocaml" {>= "4.02.1" & < "4.10"}
"dune" {>= "1.8.0"}
"ocamlfind" {>= "1.5.2"}
"yojson" {>= "1.6.0"}
"mdx" {with-test & >= "1.3.0"}
"conf-jq" {with-test}
]
synopsis:
"Editor helper, provides completion, typing and source browsing in Vim and Emacs"
description:
"Merlin is an assistant for editing OCaml code. It aims to provide the features available in modern IDEs: error reporting, auto completion, source browsing and much more."
post-messages: [
"merlin installed.
Quick setup for VIM
-------------------
Append this to your .vimrc to add merlin to vim's runtime-path:
let g:opamshare = substitute(system('opam config var share'),'\\n$','','''')
execute \"set rtp+=\" . g:opamshare . \"/merlin/vim\"
Also run the following line in vim to index the documentation:
:execute \"helptags \" . g:opamshare . \"/merlin/vim/doc\"
Quick setup for EMACS
-------------------
Add opam emacs directory to your load-path by appending this to your .emacs:
(let ((opam-share (ignore-errors (car (process-lines \"opam\" \"config\" \"var\" \"share\")))))
(when (and opam-share (file-directory-p opam-share))
;; Register Merlin
(add-to-list 'load-path (expand-file-name \"emacs/site-lisp\" opam-share))
(autoload 'merlin-mode \"merlin\" nil t nil)
;; Automatically start it in OCaml buffers
(add-hook 'tuareg-mode-hook 'merlin-mode t)
(add-hook 'caml-mode-hook 'merlin-mode t)
;; Use opam switch to lookup ocamlmerlin binary
(setq merlin-command 'opam)))
Take a look at https://github.com/ocaml/merlin for more information
Quick setup with opam-user-setup
--------------------------------
Opam-user-setup support Merlin.
$ opam user-setup install
should take care of basic setup.
See https://github.com/OCamlPro/opam-user-setup
"
{success & !user-setup:installed}
]
url {
src:
"https://github.com/ocaml/merlin/releases/download/v3.3.3/merlin-v3.3.3.tbz"
checksum: [
"sha256=72909ef47eea1f6fca13b4109a34dccf8fe3923a3c026f1ed1db9eb5ee9aae15"
"sha512=2a5f39d966be56c1322982effc05bc98fd5f66cd12f1f76953f8daa9eca74a58c92a186854f4e601e2f0bb038720691446e7591b4613982accded3e579fedb23"
]
}

8
esy.lock/opam/mirage-no-solo5.1/opam

@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
opam-version: "2.0"
maintainer: "mirageos-devel@lists.xenproject.org"
authors: ["mirageos-devel@lists.xenproject.org"]
homepage: "https://mirage.io"
license: "BSD-2-Clause"
conflicts: [ "mirage-solo5" ]
synopsis: "Virtual package conflicting with mirage-solo5"
depends: ["ocaml"]

8
esy.lock/opam/mirage-no-xen.1/opam

@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
opam-version: "2.0"
maintainer: "mirageos-devel@lists.xenproject.org"
authors: ["mirageos-devel@lists.xenproject.org"]
homepage: "https://mirage.io"
license: "BSD-2-Clause"
conflicts: [ "mirage-xen" ]
synopsis: "Virtual package conflicting with mirage-xen"
depends: ["ocaml"]

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

@ -1,24 +0,0 @@ @@ -1,24 +0,0 @@
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-only with OCaml-LGPL-linking-exception"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml"
"dune" {>= "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"
}

47
esy.lock/opam/nocrypto.0.5.4-2/files/0001-add-missing-runtime-dependencies-in-_tags.patch

@ -1,47 +0,0 @@ @@ -1,47 +0,0 @@
From 6f97531287a3e3ee749f2277248af28bdc85b8e4 Mon Sep 17 00:00:00 2001
From: Gabriel Scherer <gabriel.scherer@gmail.com>
Date: Mon, 26 Mar 2018 16:09:16 +0200
Subject: [PATCH 1/4] add missing runtime dependencies in _tags
Binaries in <bench/*>, <tests/*> depend on ppx_sexp_conv's runtime
library within ppx_sexp_conv.
The packed modules <src/nocrypto.cm{x,o}> also depend on the package
ppx_sexp_conv: its presence at pack-creation time influences the
generated .cmi interface, see
https://github.com/ocaml/opam-repository/pull/11628#issuecomment-375697444
Note: the package ppx_sexp_conv.runtime-lib would suffice, but it is
only available as such under recent ppx_sexp_conv versions, so its
explicit use would make the build description (needlessly)
incompatible with older ppx_sexp_conv versions.
---
_tags | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/_tags b/_tags
index 6d4e7de..c2a6610 100644
--- a/_tags
+++ b/_tags
@@ -7,6 +7,7 @@ true: package(bytes), package(cstruct)
<src/*.ml{,i}>: package(zarith), package(sexplib), package(ppx_sexp_conv)
<src/*.cm{x,o}> and not <src/nocrypto.cmx>: for-pack(Nocrypto)
<src/*.cm{,x}a>: link_stubs(src/libnocrypto_stubs)
+<src/nocrypto.cm{x,o}>: package(ppx_sexp_conv)
<unix>: include
<unix/*.ml{,i}>: package(unix), package(bytes)
@@ -19,7 +20,7 @@ true: package(bytes), package(cstruct)
<**/*.c>: ccopt(--std=c99 -Wall -Wextra -O3)
-<bench/*>: use_nocrypto, package(zarith), package(cstruct.unix)
-<tests/*>: use_nocrypto, package(zarith), package(oUnit)
+<bench/*>: use_nocrypto, package(zarith), package(ppx_sexp_conv)
+<tests/*>: use_nocrypto, package(zarith), package(ppx_sexp_conv), package(oUnit)
<rondom>: -traverse
--
2.18.0

39
esy.lock/opam/nocrypto.0.5.4-2/files/0002-add-ppx_sexp_conv-as-a-runtime-dependency-in-the-pac.patch

@ -1,39 +0,0 @@ @@ -1,39 +0,0 @@
From dc799fd2a66c41ca7729201a5d038cd403ca1de6 Mon Sep 17 00:00:00 2001
From: Gabriel Scherer <gabriel.scherer@gmail.com>
Date: Tue, 27 Mar 2018 12:00:23 +0200
Subject: [PATCH 2/4] add ppx_sexp_conv as a runtime dependency in the
packaging metadata
---
opam | 2 +-
pkg/META | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/opam b/opam
index ad1dbc7..c35570b 100644
--- a/opam
+++ b/opam
@@ -20,7 +20,7 @@ depends: [
"topkg" {build}
"cpuid" {build}
"ocb-stubblr" {build}
- "ppx_sexp_conv" {build}
+ "ppx_sexp_conv"
"oUnit" {test}
"cstruct"
"zarith"
diff --git a/pkg/META b/pkg/META
index 242b2bb..a7929c7 100644
--- a/pkg/META
+++ b/pkg/META
@@ -1,6 +1,6 @@
version = "0.5.4"
description = "Simple crypto for the modern age"
-requires = "cstruct zarith sexplib"
+requires = "cstruct zarith sexplib ppx_sexp_conv"
archive(byte) = "nocrypto.cma"
archive(native) = "nocrypto.cmxa"
plugin(byte) = "nocrypto.cma"
--
2.18.0

146
esy.lock/opam/nocrypto.0.5.4-2/files/0003-Auto-detect-ppx_sexp_conv-runtime-library.patch

@ -1,146 +0,0 @@ @@ -1,146 +0,0 @@
From ad9278021a65d423e30765e58110848adda4b13e Mon Sep 17 00:00:00 2001
From: Jeremie Dimino <jeremie@dimino.org>
Date: Fri, 11 May 2018 15:44:47 +0200
Subject: [PATCH 3/4] Auto-detect ppx_sexp_conv runtime library
---
myocamlbuild.ml | 25 ++++++++++++++++++++++---
pkg/META | 43 -------------------------------------------
pkg/META.in | 43 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 65 insertions(+), 46 deletions(-)
delete mode 100644 pkg/META
create mode 100644 pkg/META.in
diff --git a/myocamlbuild.ml b/myocamlbuild.ml
index 2752315..7b29635 100644
--- a/myocamlbuild.ml
+++ b/myocamlbuild.ml
@@ -1,5 +1,24 @@
open Ocamlbuild_plugin
-let () = dispatch Ocb_stubblr.(
- init & ccopt ~tags:["accelerate"] "-DACCELERATE -msse2 -maes"
-)
+let runtime_deps_of_ppx ppx =
+ (Findlib.query "ppx_sexp_conv").dependencies
+ |> List.filter_opt (fun { Findlib.name; _ } ->
+ if name = ppx || name = "ppx_deriving" then
+ None
+ else
+ Some name)
+
+let () = dispatch (fun hook ->
+ Ocb_stubblr.(
+ init & ccopt ~tags:["accelerate"] "-DACCELERATE -msse2 -maes"
+ ) hook;
+ match hook with
+ | After_rules ->
+ let meta = "pkg/META" in
+ let meta_in = meta ^ ".in" in
+ rule meta ~dep:meta_in ~prod:meta (fun _ _ ->
+ let deps = String.concat " " (runtime_deps_of_ppx "ppx_sexp_conv") in
+ Echo([String.subst "PPX_SEXP_CONV_RUNTIME" deps
+ (Pathname.read meta_in)],
+ meta))
+ | _ -> ())
diff --git a/pkg/META b/pkg/META
deleted file mode 100644
index a7929c7..0000000
--- a/pkg/META
+++ /dev/null
@@ -1,43 +0,0 @@
-version = "0.5.4"
-description = "Simple crypto for the modern age"
-requires = "cstruct zarith sexplib ppx_sexp_conv"
-archive(byte) = "nocrypto.cma"
-archive(native) = "nocrypto.cmxa"
-plugin(byte) = "nocrypto.cma"
-plugin(native) = "nocrypto.cmxs"
-xen_linkopts = "-lnocrypto_stubs+mirage-xen"
-freestanding_linkopts = "-lnocrypto_stubs+mirage-freestanding"
-exists_if = "nocrypto.cma"
-
-package "unix" (
- version = "0.5.4"
- description = "Simple crypto for the modern age"
- requires = "nocrypto unix bytes"
- archive(byte) = "nocrypto_unix.cma"
- archive(native) = "nocrypto_unix.cmxa"
- plugin(byte) = "nocrypto_unix.cma"
- plugin(native) = "nocrypto_unix.cmxs"
- exists_if = "nocrypto_unix.cma"
-)
-
-package "lwt" (
- version = "0.5.4"
- description = "Simple crypto for the modern age"
- requires = "nocrypto nocrypto.unix lwt.unix cstruct.lwt"
- archive(byte) = "nocrypto_lwt.cma"
- archive(native) = "nocrypto_lwt.cmxa"
- plugin(byte) = "nocrypto_lwt.cma"
- plugin(native) = "nocrypto_lwt.cmxs"
- exists_if = "nocrypto_lwt.cma"
-)
-
-package "mirage" (
- version = "0.5.4"
- description = "Simple crypto for the modern age"
- requires = "nocrypto lwt mirage-entropy"
- archive(byte) = "nocrypto_mirage.cma"
- archive(native) = "nocrypto_mirage.cmxa"
- plugin(byte) = "nocrypto_mirage.cma"
- plugin(native) = "nocrypto_mirage.cmxs"
- exists_if = "nocrypto_mirage.cma"
-)
diff --git a/pkg/META.in b/pkg/META.in
new file mode 100644
index 0000000..0b263d7
--- /dev/null
+++ b/pkg/META.in
@@ -0,0 +1,43 @@
+version = "0.5.4"
+description = "Simple crypto for the modern age"
+requires = "cstruct zarith sexplib PPX_SEXP_CONV_RUNTIME"
+archive(byte) = "nocrypto.cma"
+archive(native) = "nocrypto.cmxa"
+plugin(byte) = "nocrypto.cma"
+plugin(native) = "nocrypto.cmxs"
+xen_linkopts = "-lnocrypto_stubs+mirage-xen"
+freestanding_linkopts = "-lnocrypto_stubs+mirage-freestanding"
+exists_if = "nocrypto.cma"
+
+package "unix" (
+ version = "0.5.4"
+ description = "Simple crypto for the modern age"
+ requires = "nocrypto unix bytes"
+ archive(byte) = "nocrypto_unix.cma"
+ archive(native) = "nocrypto_unix.cmxa"
+ plugin(byte) = "nocrypto_unix.cma"
+ plugin(native) = "nocrypto_unix.cmxs"
+ exists_if = "nocrypto_unix.cma"
+)
+
+package "lwt" (
+ version = "0.5.4"
+ description = "Simple crypto for the modern age"
+ requires = "nocrypto nocrypto.unix lwt.unix cstruct.lwt"
+ archive(byte) = "nocrypto_lwt.cma"
+ archive(native) = "nocrypto_lwt.cmxa"
+ plugin(byte) = "nocrypto_lwt.cma"
+ plugin(native) = "nocrypto_lwt.cmxs"
+ exists_if = "nocrypto_lwt.cma"
+)
+
+package "mirage" (
+ version = "0.5.4"
+ description = "Simple crypto for the modern age"
+ requires = "nocrypto lwt mirage-entropy"
+ archive(byte) = "nocrypto_mirage.cma"
+ archive(native) = "nocrypto_mirage.cmxa"
+ plugin(byte) = "nocrypto_mirage.cma"
+ plugin(native) = "nocrypto_mirage.cmxs"
+ exists_if = "nocrypto_mirage.cma"
+)
--
2.18.0

38
esy.lock/opam/nocrypto.0.5.4-2/files/0004-pack-package-workaround-ocamlbuild-272.patch

@ -1,38 +0,0 @@ @@ -1,38 +0,0 @@
From 063b3496340fe4c3544b532ec0d27797b7917bb4 Mon Sep 17 00:00:00 2001
From: Gabriel Scherer <gabriel.scherer@gmail.com>
Date: Mon, 26 Mar 2018 16:07:45 +0200
Subject: [PATCH 4/4] pack+package: workaround ocamlbuild#272
ocamlbuild should pass -package(...) flags to ocamlfind when building
a -pack-ed file, see
https://github.com/ocaml/opam-repository/pull/11628#issuecomment-375697444
---
myocamlbuild.ml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/myocamlbuild.ml b/myocamlbuild.ml
index 7b29635..7a5cdb6 100644
--- a/myocamlbuild.ml
+++ b/myocamlbuild.ml
@@ -8,9 +8,17 @@ let runtime_deps_of_ppx ppx =
else
Some name)
+let ocamlfind_and_pack = function
+ | After_rules ->
+ if !Options.use_ocamlfind then
+ pflag ["ocaml"; "pack"] "package"
+ (fun pkg -> S [A "-package"; A pkg]);
+ | _ -> ()
+
let () = dispatch (fun hook ->
Ocb_stubblr.(
init & ccopt ~tags:["accelerate"] "-DACCELERATE -msse2 -maes"
+ & ocamlfind_and_pack
) hook;
match hook with
| After_rules ->
--
2.18.0

32
esy.lock/opam/nocrypto.0.5.4-2/files/0005-use-modern-cstruct-findlib.patch

@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
From 063b3496340fe4c3544b532ec0d27797b7917bb4 Mon Sep 17 00:00:00 2001
From: Anil Madhavapeddy <anil@recoil.org>
Date: Tue, 12 Mar 2019 09:07:13 +0000
Subject: [PATCH 5/5] use modern cstruct findlib
see https://discuss.ocaml.org/t/psa-cstruct-3-4-0-removes-old-ocamlfind-subpackage-aliases/3275
--- a/_tags.orig 2019-03-12 09:03:58.000000000 +0000
+++ b/_tags 2019-03-12 09:04:12.000000000 +0000
@@ -13,7 +13,7 @@
<unix/*.ml{,i}>: package(unix), package(bytes)
<lwt>: include
-<lwt/*.ml{,i}>: package(lwt.unix), package(cstruct.lwt)
+<lwt/*.ml{,i}>: package(lwt.unix), package(cstruct-lwt)
<mirage>: include
<mirage/*.ml{,i}>: package(lwt), package(mirage-entropy)
--- a/pkg/META.in.orig 2019-03-12 09:03:19.000000000 +0000
+++ b/pkg/META.in 2019-03-12 09:03:33.000000000 +0000
@@ -23,7 +23,7 @@
package "lwt" (
version = "0.5.4"
description = "Simple crypto for the modern age"
- requires = "nocrypto nocrypto.unix lwt.unix cstruct.lwt"
+ requires = "nocrypto nocrypto.unix lwt.unix cstruct-lwt"
archive(byte) = "nocrypto_lwt.cma"
archive(native) = "nocrypto_lwt.cmxa"
plugin(byte) = "nocrypto_lwt.cma"
--
2.18.0

24
esy.lock/opam/nocrypto.0.5.4-2/files/0006-explicit-dependency-on-sexplib.patch

@ -1,24 +0,0 @@ @@ -1,24 +0,0 @@
From 063b3496340fe4c3544b532ec0d27797b7917bb4 Mon Sep 17 00:00:00 2001
From: Anil Madhavapeddy <anil@recoil.org>
Date: Tue, 26 Mar 2019 20:07:13 +0000
Subject: [PATCH 6/6] explicitly depend on sexplib
Need to explicitly depend on sexplib rather than hope
it is a transitive dependency of cstruct. This lets
cstruct.4.0.0 work which makes sexplib optional.
--- a/_tags.orig 2019-03-26 20:33:33.000000000 +0000
+++ b/_tags 2019-03-26 20:33:42.000000000 +0000
@@ -1,7 +1,7 @@
true: color(always)
true: bin_annot, safe_string
true: warn(A-4-29-33-40-41-42-43-34-44-48)
-true: package(bytes), package(cstruct)
+true: package(bytes), package(sexplib), package(cstruct)
<src>: include
<src/*.ml{,i}>: package(zarith), package(sexplib), package(ppx_sexp_conv)
--
2.18.0

58
esy.lock/opam/nocrypto.0.5.4-2/files/0007-mirage-entropy.patch

@ -1,58 +0,0 @@ @@ -1,58 +0,0 @@
From: Hannes Mehnert <hannes@mehnert.org>
Subject: [PATCH 1/1] compile mirage-entropy sublibrary if mirage-entropy is installed
Previously the compilation depended on mirage-xen or ocaml-freestanding being
present, but _tags show the dependency is actually mirage-entropy.
--- a/opam 2019-11-02 13:38:17.202429000 +0100
+++ b/opam 2019-11-02 13:39:19.173535000 +0100
@@ -12,6 +12,7 @@
build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false"
"--with-lwt" "%{lwt:installed}%"
+ "--with-mirage" "%{mirage-entropy:installed}%"
"--xen" "%{mirage-xen:installed}%"
"--freestanding" "%{ocaml-freestanding:installed}%"]
@@ -26,11 +27,11 @@
"cstruct"
"zarith"
"sexplib"
- ("mirage-no-xen" | ("mirage-xen" & "mirage-entropy" & "zarith-xen"))
- ("mirage-no-solo5" | ("mirage-solo5" & "mirage-entropy" & "zarith-freestanding"))
+ ("mirage-no-xen" | ("mirage-xen" & "zarith-xen"))
+ ("mirage-no-solo5" | ("mirage-solo5" & "zarith-freestanding"))
]
-depopts: [ "lwt" ]
+depopts: [ "lwt" "mirage-entropy" ]
conflicts: [
"topkg" {<"0.8.0"}
"ocb-stubblr" {<"0.1.0"}
--- a/pkg/pkg.ml 2017-02-01 00:43:04.000000000 +0100
+++ b/pkg/pkg.ml 2019-11-02 13:37:30.295780000 +0100
@@ -11,6 +11,7 @@
let unix = Conf.with_pkg ~default:true "unix"
let lwt = Conf.with_pkg ~default:false "lwt"
+let mirage_entropy = Conf.with_pkg ~default:false "mirage"
let xen = Conf.(key "xen" bool ~absent:false
~doc:"Build Mirage/Xen support.")
let fs = Conf.(key "freestanding" bool ~absent:false
@@ -39,12 +40,14 @@
let unix = Conf.value c unix in
let lwt = Conf.value c lwt && unix
and xen = Conf.value c xen
- and fs = Conf.value c fs in
+ and fs = Conf.value c fs
+ and mirage_entropy = Conf.value c mirage_entropy
+ in
Ok [ Pkg.clib "src/libnocrypto_stubs.clib";
Pkg.mllib "src/nocrypto.mllib";
Pkg.mllib ~cond:unix "unix/nocrypto_unix.mllib";
Pkg.mllib ~cond:lwt "lwt/nocrypto_lwt.mllib";
- Pkg.mllib ~cond:(xen||fs) "mirage/nocrypto_mirage.mllib";
+ Pkg.mllib ~cond:mirage_entropy "mirage/nocrypto_mirage.mllib";
Pkg.test "tests/testrunner";
Pkg.test ~run:false "bench/speed";
mirage ~xen ~fs "src/libnocrypto_stubs.clib"; ]

95
esy.lock/opam/nocrypto.0.5.4-2/opam

@ -1,95 +0,0 @@ @@ -1,95 +0,0 @@
opam-version: "2.0"
homepage: "https://github.com/mirleft/ocaml-nocrypto"
dev-repo: "git+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 <david@numm.org>"]
maintainer: "David Kaloper <david@numm.org>"
license: "ISC"
tags: [ "org:mirage" ]
build: ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false"
"--jobs" "1"
"--with-lwt" "%{lwt:installed}%"
"--with-mirage" "%{mirage-entropy:installed}%"
"--xen" "%{mirage-xen:installed}%"
"--freestanding" "%{mirage-solo5:installed}%"]
depends: [
"ocaml" {>= "4.02.0"}
"ocamlfind" {build}
"ocamlbuild" {build}
"topkg" {build}
"cpuid" {build}
"ocb-stubblr" {build}
"ppx_deriving"
"ppx_sexp_conv" {>= "113.33.01" & != "v0.11.0" & < "v0.14"}
"ounit" {with-test}
"cstruct" {>= "3.0.0"}
"cstruct-lwt"
"zarith"
"lwt"
"sexplib" {< "v0.14"}
"mirage-no-xen" | ("mirage-xen" & "zarith-xen")
"mirage-no-solo5" | ("mirage-solo5" & "zarith-freestanding")
]
depopts: [ "mirage-entropy" ]
conflicts: [
"topkg" {<"0.9.1"}
"ocb-stubblr" {<"0.1.0"}
"mirage-xen" {<"2.2.0"}
"sexplib" {="v0.9.0"}
"ocaml" {= "4.08.0"}
]
patches: [
"0001-add-missing-runtime-dependencies-in-_tags.patch"
"0002-add-ppx_sexp_conv-as-a-runtime-dependency-in-the-pac.patch"
"0003-Auto-detect-ppx_sexp_conv-runtime-library.patch"
"0004-pack-package-workaround-ocamlbuild-272.patch"
"0005-use-modern-cstruct-findlib.patch"
"0006-explicit-dependency-on-sexplib.patch"
"0007-mirage-entropy.patch"
]
synopsis: "Simpler crypto"
description: """
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."""
extra-files: [
[
"0007-mirage-entropy.patch"
"md5=bb3368e3fd64857a6d05e1a3e61f08cf"
]
[
"0006-explicit-dependency-on-sexplib.patch"
"md5=7f552e18ba304eb4e1e19d66d19b7888"
]
[
"0005-use-modern-cstruct-findlib.patch"
"md5=4d4aab890f0ca9327d83548c32d64efc"
]
[
"0004-pack-package-workaround-ocamlbuild-272.patch"
"md5=94615e4a8d5976e9e75c3b031d3484f1"
]
[
"0003-Auto-detect-ppx_sexp_conv-runtime-library.patch"
"md5=871b3f904cf87527b7390993d5598884"
]
[
"0002-add-ppx_sexp_conv-as-a-runtime-dependency-in-the-pac.patch"
"md5=06962f4f2f5b4c3f1e39293b3d3528f2"
]
[
"0001-add-missing-runtime-dependencies-in-_tags.patch"
"md5=ae679a096e14c0a0ecb881bc7432cc2a"
]
]
url {
src:
"https://github.com/mirleft/ocaml-nocrypto/releases/download/v0.5.4/nocrypto-0.5.4.tbz"
checksum: "md5=c331a7a4d2a563d1d5ed581aeb849011"
}

59
esy.lock/opam/num.1.3/files/installation-warning.patch

@ -1,59 +0,0 @@ @@ -1,59 +0,0 @@
From db8d748b2cad0adc2698e9fcf28727083a711bae Mon Sep 17 00:00:00 2001
From: David Allsopp <david.allsopp@metastack.com>
Date: Wed, 24 Jan 2018 16:01:56 +0000
Subject: [PATCH] Warn about installations broken by previous faulty package
---
Makefile | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/Makefile b/Makefile
index b40e588..d4dcd70 100644
--- a/Makefile
+++ b/Makefile
@@ -14,9 +14,42 @@ install:
$(MAKE) -C src install
$(MAKE) -C toplevel install
+OCAMLFIND_DIR:=$(dir $(shell command -v ocamlfind 2>/dev/null))
+OCAMLC_DIR:=$(dir $(shell command -v ocamlc 2>/dev/null))
+NUM_INSTALLED:=$(shell ocamlfind query num 2>/dev/null)
+
+ifeq ($(NUM_INSTALLED),)
+# The num findlib package is not already present - wohoo!
+OUR_FAULT=no
+else
+ifeq ($(OCAMLFIND_DIR),$(OCAMLC_DIR))
+# The num findlib package is present, but ocamlc and ocamlfind are in the
+# same place, which means that either we're looking at a system-installed
+# ocamlfind (which isn't supported), or the user has done something else
+# nefarious and doesn't deserve our sympathy (or, at least, our potentially
+# unhelpful advice)
+OUR_FAULT=no
+else
+# The num findlib package package is present, and ocamlc and ocamlfind reside
+# in different directories, which means that we're almost certainly looking at
+# a system switch which has been damaged by a previous num package installation
+# on an OS which didn't protect the system lib directory.
+OUR_FAULT=probably
+endif
+endif
+
findlib-install:
+ifeq ($(OUR_FAULT),no)
$(MAKE) -C src findlib-install
$(MAKE) -C toplevel install
+else
+ @echo "\033[0;31m[ERROR]\033[m It appears that the num library was previously installed to your system"
+ @echo " compiler's lib directory, probably by a faulty opam package."
+ @echo " You will need to remove arith_flags.*, arith_status.*, big_int.*,"
+ @echo " int_misc.*, nat.*, num.*, ratio.*, nums.*, libnums.* and"
+ @echo " stublibs/dllnums.* from $(shell ocamlc -where)."
+ @false
+endif
uninstall:
$(MAKE) -C src uninstall
--
2.14.1

34
esy.lock/opam/num.1.3/opam

@ -1,34 +0,0 @@ @@ -1,34 +0,0 @@
opam-version: "2.0"
maintainer: "Xavier Leroy <xavier.leroy@inria.fr>"
authors: [
"Valérie Ménissier-Morain"
"Pierre Weis"
"Xavier Leroy"
]
license: "LGPL-2.1-only with OCaml-LGPL-linking-exception"
homepage: "https://github.com/ocaml/num/"
bug-reports: "https://github.com/ocaml/num/issues"
dev-repo: "git+https://github.com/ocaml/num.git"
build: [
[make]
]
install: [
make
"install" {!ocaml:preinstalled}
"findlib-install" {ocaml:preinstalled}
]
depends: [
"ocaml" {>= "4.06.0"}
"ocamlfind" {build & >= "1.7.3"}
]
conflicts: [ "base-num" ]
patches: [ "installation-warning.patch" ]
synopsis:
"The legacy Num library for arbitrary-precision integer and rational arithmetic"
extra-files: [
["installation-warning.patch" "md5=93c92bf6da6bae09d068da42b1bbaaac"]
]
url {
src: "https://github.com/ocaml/num/archive/v1.3.tar.gz"
checksum: "md5=f074e12325e84ebc883b37e5db10403d"
}

23
esy.lock/opam/ocaml-compiler-libs.v0.12.1/opam

@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
opam-version: "2.0"
maintainer: "opensource@janestreet.com"
authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
homepage: "https://github.com/janestreet/ocaml-compiler-libs"
bug-reports: "https://github.com/janestreet/ocaml-compiler-libs/issues"
dev-repo: "git+https://github.com/janestreet/ocaml-compiler-libs.git"
license: "Apache-2.0"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "4.04.1"}
"dune" {>= "1.5.1"}
]
synopsis: "OCaml compiler libraries repackaged"
description: """
This packages exposes the OCaml compiler libraries repackages under
the toplevel names Ocaml_common, Ocaml_bytecomp, Ocaml_optcomp, ..."""
url {
src:
"https://github.com/janestreet/ocaml-compiler-libs/archive/v0.12.1.tar.gz"
checksum: "md5=2f929af7c764a3f681a5671f271210c4"
}

37
esy.lock/opam/ocaml-migrate-parsetree.1.6.0/opam

@ -1,37 +0,0 @@ @@ -1,37 +0,0 @@
opam-version: "2.0"
maintainer: "frederic.bour@lakaban.net"
authors: [
"Frédéric Bour <frederic.bour@lakaban.net>"
"Jérémie Dimino <jeremie@dimino.org>"
]
license: "LGPL-2.1 with OCaml linking exception"
homepage: "https://github.com/ocaml-ppx/ocaml-migrate-parsetree"
bug-reports: "https://github.com/ocaml-ppx/ocaml-migrate-parsetree/issues"
dev-repo: "git+https://github.com/ocaml-ppx/ocaml-migrate-parsetree.git"
doc: "https://ocaml-ppx.github.io/ocaml-migrate-parsetree/"
tags: [ "syntax" "org:ocamllabs" ]
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"result"
"ppx_derivers"
"dune" {>= "1.9.0"}
"ocaml" {>= "4.02.3"}
]
synopsis: "Convert OCaml parsetrees between different versions"
description: """
Convert OCaml parsetrees between different versions
This library converts parsetrees, outcometree and ast mappers between
different OCaml versions. High-level functions help making PPX
rewriters independent of a compiler version.
"""
url {
src:
"https://github.com/ocaml-ppx/ocaml-migrate-parsetree/releases/download/v1.6.0/ocaml-migrate-parsetree-v1.6.0.tbz"
checksum: [
"sha256=9b018e7d25114ce17fc0b82b7cd7c927b84ebb6b043aa987fa7731c2484de33f"
"sha512=e03a5fe44ecf43683c764a7285a65bfa80639c09badf422661723bc3483d6d799c47c1ead34c2caa289a37e1b4b46d809c8cc56537d5c76e6004849d2d8a305f"
]
}

36
esy.lock/opam/ocamlbuild.0.14.0/opam

@ -1,36 +0,0 @@ @@ -1,36 +0,0 @@
opam-version: "2.0"
maintainer: "Gabriel Scherer <gabriel.scherer@gmail.com>"
authors: ["Nicolas Pouillard" "Berke Durak"]
homepage: "https://github.com/ocaml/ocamlbuild/"
bug-reports: "https://github.com/ocaml/ocamlbuild/issues"
license: "LGPL-2.1-only with OCaml-LGPL-linking-exception"
doc: "https://github.com/ocaml/ocamlbuild/blob/master/manual/manual.adoc"
dev-repo: "git+https://github.com/ocaml/ocamlbuild.git"
build: [
[
make
"-f"
"configure.make"
"all"
"OCAMLBUILD_PREFIX=%{prefix}%"
"OCAMLBUILD_BINDIR=%{bin}%"
"OCAMLBUILD_LIBDIR=%{lib}%"
"OCAMLBUILD_MANDIR=%{man}%"
"OCAML_NATIVE=%{ocaml:native}%"
"OCAML_NATIVE_TOOLS=%{ocaml:native}%"
]
[make "check-if-preinstalled" "all" "opam-install"]
]
conflicts: [
"base-ocamlbuild"
"ocamlfind" {< "1.6.2"}
]
synopsis:
"OCamlbuild is a build system with builtin rules to easily build most OCaml projects."
depends: [
"ocaml" {>= "4.03"}
]
url {
src: "https://github.com/ocaml/ocamlbuild/archive/0.14.0.tar.gz"
checksum: "sha256=87b29ce96958096c0a1a8eeafeb6268077b2d11e1bf2b3de0f5ebc9cf8d42e78"
}

4
esy.lock/opam/ocamlfind.1.8.1/files/ocaml-stub

@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
#!/bin/sh
BINDIR=$(dirname "$(command -v ocamlc)")
"$BINDIR/ocaml" -I "$OCAML_TOPLEVEL_PATH" "$@"

6
esy.lock/opam/ocamlfind.1.8.1/files/ocamlfind.install

@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
bin: [
"src/findlib/ocamlfind" {"ocamlfind"}
"?src/findlib/ocamlfind_opt" {"ocamlfind"}
"?tools/safe_camlp4"
]
toplevel: ["src/findlib/topfind"]

50
esy.lock/opam/ocamlfind.1.8.1/opam

@ -1,50 +0,0 @@ @@ -1,50 +0,0 @@
opam-version: "2.0"
synopsis: "A library manager for OCaml"
maintainer: "Thomas Gazagnaire <thomas@gazagnaire.org>"
authors: "Gerd Stolpmann <gerd@gerd-stolpmann.de>"
homepage: "http://projects.camlcity.org/projects/findlib.html"
bug-reports: "https://gitlab.camlcity.org/gerd/lib-findlib/issues"
dev-repo: "git+https://gitlab.camlcity.org/gerd/lib-findlib.git"
description: """
Findlib is a library manager for OCaml. It provides a convention how
to store libraries, and a file format ("META") to describe the
properties of libraries. There is also a tool (ocamlfind) for
interpreting the META files, so that it is very easy to use libraries
in programs and scripts.
"""
build: [
[
"./configure"
"-bindir"
bin
"-sitelib"
lib
"-mandir"
man
"-config"
"%{lib}%/findlib.conf"
"-no-custom"
"-no-camlp4" {!ocaml:preinstalled & ocaml:version >= "4.02.0"}
"-no-topfind" {ocaml:preinstalled}
]
[make "all"]
[make "opt"] {ocaml:native}
]
install: [
[make "install"]
["install" "-m" "0755" "ocaml-stub" "%{bin}%/ocaml"] {ocaml:preinstalled}
]
depends: [
"ocaml" {>= "4.00.0"}
"conf-m4" {build}
]
extra-files: [
["ocamlfind.install" "md5=06f2c282ab52d93aa6adeeadd82a2543"]
["ocaml-stub" "md5=181f259c9e0bad9ef523e7d4abfdf87a"]
]
url {
src: "http://download.camlcity.org/download/findlib-1.8.1.tar.gz"
checksum: "md5=18ca650982c15536616dea0e422cbd8c"
mirrors: "http://download2.camlcity.org/download/findlib-1.8.1.tar.gz"
}
depopts: ["graphics"]

22
esy.lock/opam/ocb-stubblr.0.1.1-1/files/custom-cclib.patch

@ -1,22 +0,0 @@ @@ -1,22 +0,0 @@
From d51b3f3a49f159469e00d23524db915f19bb0127 Mon Sep 17 00:00:00 2001
From: Hannes Mehnert <hannes@mehnert.org>
Date: Tue, 3 Oct 2017 13:55:16 +0100
Subject: [PATCH] bytecode / custom needs -cclib as well
---
src/ocb_stubblr.ml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ocb_stubblr.ml b/src/ocb_stubblr.ml
index b68c37a..a0ee035 100644
--- a/src/ocb_stubblr.ml
+++ b/src/ocb_stubblr.ml
@@ -160,7 +160,7 @@ let link_flag () =
S [A switch; A ("-l"^name)]
and dep flag = Pathname.([remove_extension flag -.- "a"]) in
pflag ["link"; "ocaml"; "library"; "byte"] tag (libarg "-dllib");
- pflag ["link"; "ocaml"; "library"; "native"] tag (libarg "-cclib");
+ pflag ["link"; "ocaml"; "library"] tag (libarg "-cclib");
pdep ["link"; "ocaml"] tag dep;
pdep ["compile"; "ocaml"] tag dep
(* XXX sneak in '-I' for compile;ocaml;program ?? *)

33
esy.lock/opam/ocb-stubblr.0.1.1-1/files/use-OPAM_SWITCH_PREFIX.patch

@ -1,33 +0,0 @@ @@ -1,33 +0,0 @@
From f1c9340f3ab973ad1e8dcc4b7065bbe6cfaa028f Mon Sep 17 00:00:00 2001
From: David Allsopp <david.allsopp@metastack.com>
Date: Sun, 1 Jul 2018 09:54:32 +0100
Subject: [PATCH] Use OPAM_SWITCH_PREFIX before opam config var prefix
opam 2's sandbox doesn't expose the mount point for the opam root.
Signed-off-by: David Allsopp <david.allsopp@metastack.com>
---
src/ocb_stubblr.ml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/ocb_stubblr.ml b/src/ocb_stubblr.ml
index b68c37a..2cc5332 100644
--- a/src/ocb_stubblr.ml
+++ b/src/ocb_stubblr.ml
@@ -31,11 +31,15 @@ module Pkg_config = struct
(* XXX Would be nice to move pkg-config results to a build artefact. *)
- let opam_prefix =
+ let opam_prefix_cmd =
let cmd = "opam config var prefix" in
lazy ( try run_and_read cmd with Failure _ ->
error_msgf "error running opam")
+ let opam_prefix =
+ lazy (try Sys.getenv "OPAM_SWITCH_PREFIX"
+ with Not_found -> Lazy.force opam_prefix_cmd)
+
let var = "PKG_CONFIG_PATH"
let path () =

56
esy.lock/opam/ocb-stubblr.0.1.1-1/opam

@ -1,56 +0,0 @@ @@ -1,56 +0,0 @@
opam-version: "2.0"
maintainer: "David Kaloper Meršinjak <david@numm.org>"
authors: ["David Kaloper Meršinjak <david@numm.org>"]
homepage: "https://github.com/pqwy/ocb-stubblr"
doc: "https://pqwy.github.io/ocb-stubblr/doc"
license: "ISC"
dev-repo: "git+https://github.com/pqwy/ocb-stubblr.git"
bug-reports: "https://github.com/pqwy/ocb-stubblr/issues"
tags: ["ocamlbuild"]
depends: [
"ocaml" {>= "4.01.0"}
"ocamlfind" {build}
"ocamlbuild" {>= "0.9.3" | < "0.9.0"}
"topkg" {>= "0.8.1"}
"astring"
]
build: [ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" "--tests" "false" ]
patches: [
"custom-cclib.patch"
"use-OPAM_SWITCH_PREFIX.patch"
]
synopsis: "OCamlbuild plugin for C stubs"
description: """
Do you get excited by C stubs? Do they sometimes make you swoon, and even faint,
and in the end no `cmxa`s get properly linked -- not to mention correct
multi-lib support?
Do you wish that the things that excite you the most, would excite you just a
little less? Then ocb-stubblr is just the library for you.
ocb-stubblr is about ten lines of code that you need to repeat over, over, over
and over again if you are using `ocamlbuild` to build OCaml projects that
contain C stubs -- now with 100% more lib!
It does what everyone wants to do with `.clib` files in their project
directories. It can also clone the `.clib` and arrange for multiple compilations
with different sets of discovered `cflags`.
ocb-stubblr is distributed under the ISC license."""
url {
src:
"https://github.com/pqwy/ocb-stubblr/releases/download/v0.1.1/ocb-stubblr-0.1.1.tbz"
checksum: "md5=607720dd18ca51e40645b42df5c1273e"
}
extra-files: [
[
"custom-cclib.patch"
"md5=d479b52a50d53dd79da2d6eea2a9a9e3"
]
[
"use-OPAM_SWITCH_PREFIX.patch"
"md5=a7271bb1f862bd3da4ffd9caa87ca76f"
]
]

33
esy.lock/opam/ocplib-endian.1.0/opam

@ -1,33 +0,0 @@ @@ -1,33 +0,0 @@
opam-version: "2.0"
authors: "Pierre Chambart"
maintainer: "pierre.chambart@ocamlpro.com"
homepage: "https://github.com/OCamlPro/ocplib-endian"
build: [
["ocaml" "setup.ml" "-configure" "--disable-debug" "--prefix" prefix]
["ocaml" "setup.ml" "-build"]
]
install: [
["ocaml" "setup.ml" "-install"]
]
remove: ["ocamlfind" "remove" "ocplib-endian"]
depends: [
"ocaml"
"base-bytes"
"ocamlfind"
"cppo" {>= "1.1.0"}
"ocamlbuild" {build}
]
dev-repo: "git+https://github.com/OCamlPro/ocplib-endian.git"
bug-reports: "https://github.com/OCamlPro/ocplib-endian/issues"
synopsis:
"Optimised functions to read and write int16/32/64 from strings and bigarrays, based on new primitives added in version 4.01."
description: """
The library implements three modules:
* [EndianString](https://github.com/OCamlPro/ocplib-endian/blob/master/src/endianString.cppo.mli) works directly on strings, and provides submodules BigEndian and LittleEndian, with their unsafe counter-parts;
* [EndianBytes](https://github.com/OCamlPro/ocplib-endian/blob/master/src/endianBytes.cppo.mli) works directly on bytes, and provides submodules BigEndian and LittleEndian, with their unsafe counter-parts;
* [EndianBigstring](https://github.com/OCamlPro/ocplib-endian/blob/master/src/endianBigstring.cppo.mli) works on bigstrings (Bigarrays of chars), and provides submodules BigEndian and LittleEndian, with their unsafe counter-parts;"""
flags: light-uninstall
url {
src: "https://github.com/OCamlPro/ocplib-endian/archive/1.0.tar.gz"
checksum: "md5=74b45ba33e189283170a748c2a3ed477"
}

43
esy.lock/opam/parsexp.v0.13.0/opam

@ -1,43 +0,0 @@ @@ -1,43 +0,0 @@
opam-version: "2.0"
maintainer: "opensource@janestreet.com"
authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
homepage: "https://github.com/janestreet/parsexp"
bug-reports: "https://github.com/janestreet/parsexp/issues"
dev-repo: "git+https://github.com/janestreet/parsexp.git"
doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/parsexp/index.html"
license: "MIT"
build: [
["dune" "build" "-p" name "-j" jobs]
]
depends: [
"ocaml" {>= "4.04.2"}
"base" {>= "v0.13" & < "v0.14"}
"sexplib0" {>= "v0.13" & < "v0.14"}
"dune" {>= "1.5.1"}
]
synopsis: "S-expression parsing library"
description: "
This library provides generic parsers for parsing S-expressions from
strings or other medium.
The library is focused on performances but still provide full generic
parsers that can be used with strings, bigstrings, lexing buffers,
character streams or any other sources effortlessly.
It provides three different class of parsers:
- the normal parsers, producing [Sexp.t] or [Sexp.t list] values
- the parsers with positions, building compact position sequences so
that one can recover original positions in order to report properly
located errors at little cost
- the Concrete Syntax Tree parsers, produce values of type
[Parsexp.Cst.t] which record the concrete layout of the s-expression
syntax, including comments
This library is portable and doesn't provide IO functions. To read
s-expressions from files or other external sources, you should use
parsexp_io.
"
url {
src: "https://ocaml.janestreet.com/ocaml-core/v0.13/files/parsexp-v0.13.0.tar.gz"
checksum: "md5=08d2f6eca6a1eda735bf030d2581da43"
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save