Merge pull request #228539 from ligolang/ligo--0_64_2

ligo: 0.60.0 -> 0.64.2
This commit is contained in:
Ulrik Strid 2023-05-03 10:01:27 +02:00 committed by GitHub
commit 4edb4dca94
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 325 additions and 117 deletions

View file

@ -6,21 +6,29 @@
, ocamlPackages
, cacert
, ocaml-crunch
, jq
, mustache-go
, yaml2json
, tezos-rust-libs
}:
ocamlPackages.buildDunePackage rec {
pname = "ligo";
version = "0.60.0";
version = "0.64.2";
src = fetchFromGitLab {
owner = "ligolang";
repo = "ligo";
rev = version;
sha256 = "sha256-gyMSpy+F3pF2Kv1ygUs20mrspJ6GtJ6ySyZD7zfZj2w=";
sha256 = "sha256-/XUJFDH1pv65VeZt57P+AiCegTwCn7OWdaa0D8sw7CI=";
fetchSubmodules = true;
};
# The build picks this up for ligo --version
LIGO_VERSION = version;
CHANGELOG_PATH = "./changelog.txt";
# This is a hack to work around the hack used in the dune files
OPAM_SWITCH_PREFIX = "${tezos-rust-libs}";
duneVersion = "3";
@ -33,6 +41,10 @@ ocamlPackages.buildDunePackage rec {
ocamlPackages.crunch
ocamlPackages.menhir
ocamlPackages.ocaml-recovery-parser
# deps for changelog
jq
mustache-go
yaml2json
];
buildInputs = with ocamlPackages; [
@ -60,13 +72,19 @@ ocamlPackages.buildDunePackage rec {
lambda-term
tar-unix
parse-argv
hacl-star
prometheus
# lsp
linol
linol-lwt
ocaml-lsp
# Test helpers deps
qcheck
qcheck-alcotest
alcotest-lwt
# vendored tezos' deps
aches
aches-lwt
tezos-plonk
tezos-bls12-381-polynomial
ctypes
@ -78,13 +96,10 @@ ocamlPackages.buildDunePackage rec {
lwt-canceler
ipaddr
bls12-381
bls12-381-legacy
bls12-381-signature
ptime
mtime
lwt_log
ringo
ringo-lwt
secp256k1-internal
resto
resto-directory
@ -97,6 +112,13 @@ ocamlPackages.buildDunePackage rec {
simple-diff
];
preBuild = ''
# The scripts use `nix-shell` in the shebang which seems to fail
sed -i -e '1,5d' ./scripts/changelog-generation.sh
sed -i -e '1,5d' ./scripts/changelog-json.sh
./scripts/changelog-generation.sh
'';
nativeCheckInputs = [
cacert
ocamlPackages.ca-certs

View file

@ -1,37 +1,50 @@
{ lib, fetchFromGitLab, rustPlatform }:
{ lib, fetchFromGitLab, stdenv, llvmPackages_12, cargo }:
rustPlatform.buildRustPackage rec {
stdenv.mkDerivation rec {
version = "1.5";
pname = "tezos-rust-libs";
version = "1.0";
src = fetchFromGitLab {
owner = "tezos";
repo = "tezos-rust-libs";
rev = "v${version}";
sha256 = "1ffkzbvb0ls4wk9205g3xh2c26cmwnl68x43gh6dm9z4xsic94v5";
sha256 = "sha256-SuCqDZDXmWdGI/GN+3nYcUk66jnW5FQQaeTB76/rvaw=";
};
cargoSha256 = "0dgyqfr3dvvdwdi1wvpd7v9j21740jy4zwrwiwknw7csb4bq9wfx";
nativeBuildInputs = [ llvmPackages_12.llvm cargo ];
propagatedBuildDeps = [ llvmPackages_12.libllvm ];
preBuild = ''
mkdir .cargo
mv cargo-config .cargo/config
buildPhase = ''
runHook preBuild
cargo build \
--target-dir target-librustzcash \
--package librustzcash \
--release
cargo build \
--target-dir target-wasmer \
--package wasmer-c-api \
--no-default-features \
--features singlepass,cranelift,wat,middlewares,universal \
--release
runHook postBuild
'';
postInstall = ''
cp -r rustc-bls12-381/include $out/include
cp -r librustzcash/include $out
cp -r $out/lib $out/tmp
mkdir $out/lib/tezos-rust-libs
mv $out/tmp/ $out/lib/tezos-rust-libs/
installPhase = ''
runHook preInstall
mkdir -p $out/lib/tezos-rust-libs/rust
cp "librustzcash/include/librustzcash.h" \
"target-librustzcash/release/librustzcash.a" \
"wasmer-2.3.0/lib/c-api/wasm.h" \
"wasmer-2.3.0/lib/c-api/wasmer.h" \
"target-wasmer/release/libwasmer.a" \
"$out/lib/tezos-rust-libs"
cp -r "librustzcash/include/rust" "$out/lib/tezos-rust-libs"
runHook postInstall
'';
doCheck = true;
meta = {
homepage = "https://gitlab.com/tezos/tezos-rust-libs";
description = "Tezos: all rust dependencies and their dependencies";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
cargoVendorDir = "./vendor";
}

View file

@ -0,0 +1,16 @@
{ lib, buildDunePackage, ringo }:
buildDunePackage {
pname = "aches";
inherit (ringo) src version;
propagatedBuildInputs = [
ringo
];
meta = {
description = "Caches (bounded-size stores) for in-memory values and for resources";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,17 @@
{ lib, buildDunePackage, ringo, aches, lwt }:
buildDunePackage {
pname = "aches-lwt";
inherit (ringo) src version;
propagatedBuildInputs = [
aches
lwt
];
meta = {
description = "Caches (bounded-size stores) for Lwt promises";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,26 @@
{ lib
, fetchurl
, buildDunePackage
, topkg
, findlib
, ocamlbuild
, ocaml
}:
buildDunePackage rec {
pname = "asetmap";
version = "0.8.1";
src = fetchurl {
url = "https://github.com/dbuenzli/asetmap/archive/refs/tags/v${version}.tar.gz";
sha256 = "051ky0k62xp4inwi6isif56hx5ggazv4jrl7s5lpvn9cj8329frj";
};
strictDeps = true;
nativeBuildInputs = [ topkg findlib ocamlbuild ocaml ];
buildInputs = [ topkg ];
inherit (topkg) buildPhase installPhase;
meta = { inherit (ocaml.meta) platforms; };
}

View file

@ -0,0 +1,27 @@
{ lib
, fetchFromGitLab
, buildDunePackage
, bls12-381
}:
buildDunePackage rec {
pname = "bls12-381-hash";
version = "1.0.0";
src = fetchFromGitLab {
owner = "nomadic-labs";
repo = "cryptography/ocaml-bls12-381-hash";
rev = "${version}";
sha256 = "sha256-cfsSVmN4rbKcLcPcy6NduZktJhPXiVdK75LypmaSe9I=";
};
duneVersion = "3";
propagatedBuildInputs = [ bls12-381 ];
meta = {
description = "Implementation of some cryptographic hash primitives using the scalar field of BLS12-381";
license = lib.licenses.mit;
homepage = "https://gitlab.com/nomadic-labs/privacy-team";
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -1,40 +0,0 @@
{ lib
, buildDunePackage
, fetchFromGitLab
, bls12-381-gen
, ctypes
, ff-pbt
, ff-sig
, tezos-rust-libs
, zarith
, alcotest
}:
buildDunePackage rec {
pname = "bls12-381-legacy";
inherit (bls12-381-gen) version src doCheck;
duneVersion = "3";
minimalOCamlVersion = "4.08";
propagatedBuildInputs = [
bls12-381-gen
ctypes
ff-pbt
ff-sig
tezos-rust-libs
zarith
];
checkInputs = [
alcotest
];
meta = {
homepage = "https://gitlab.com/dannywillems/ocaml-bls12-381";
description = "UNIX version of BLS12-381 primitives, not implementating the virtual package bls12-381";
license = lib.licenses.mit;
};
}

View file

@ -16,7 +16,7 @@
buildDunePackage rec {
pname = "data-encoding";
version = "0.6";
version = "0.7.1";
duneVersion = "3";
minimalOCamlVersion = "4.10";
@ -25,7 +25,7 @@ buildDunePackage rec {
owner = "nomadic-labs";
repo = "data-encoding";
rev = "v${version}";
hash = "sha256-oQEV7lTG+/q1UcPsepPM4yN4qia6tEtRPkTkTVdGXE0=";
hash = "sha256-V3XiCCtoU+srOI+KVSJshtaSJLBJ4m4o10GpBfdYKCU=";
};
propagatedBuildInputs = [

View file

@ -1,11 +1,12 @@
{ lib, buildDunePackage, hacl-star-raw, zarith, cppo }:
{ lib, buildDunePackage, hacl-star-raw, zarith, cppo, alcotest, secp256k1-internal, qcheck-core, cstruct }:
buildDunePackage {
pname = "hacl-star";
inherit (hacl-star-raw) version src meta doCheck minimalOCamlVersion;
useDune2 = true;
duneVersion = "3";
propagatedBuildInputs = [
hacl-star-raw
@ -16,5 +17,10 @@ buildDunePackage {
cppo
];
strictDeps = true;
checkInputs = [
alcotest
secp256k1-internal
qcheck-core
cstruct
];
}

View file

@ -1,17 +1,25 @@
{ lib, which, stdenv, fetchzip, ocaml, findlib, hacl-star, ctypes, cppo }:
{ lib
, which
, stdenv
, fetchzip
, opaline
, cmake
, ocaml
, findlib
, hacl-star
, ctypes
, cppo
}:
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-hacl-star-raw";
version = "0.4.5";
version = "0.7.0";
src = fetchzip {
url = "https://github.com/project-everest/hacl-star/releases/download/ocaml-v${version}/hacl-star.${version}.tar.gz";
sha256 = "1330vgbf5krlkvifby96kyk13xhmihajk2w5hgf2761jrljmnnrs";
url = "https://github.com/cryspen/hacl-packages/releases/download/ocaml-v${version}/hacl-star.${version}.tar.gz";
sha256 = "sha256-jJtxVYhQgP8ItfLhQ2wcF8RKNRnYhB2j0nR7/YH1NfY=";
stripRoot = false;
};
sourceRoot = "./source/raw";
minimalOCamlVersion = "4.08";
# strictoverflow is disabled because it breaks aarch64-darwin
@ -21,18 +29,34 @@ stdenv.mkDerivation rec {
patchShebangs ./
'';
preInstall = ''
mkdir -p $OCAMLFIND_DESTDIR/stublibs
buildPhase = ''
runHook preBuild
make -C hacl-star-raw build-c
make -C hacl-star-raw build-bindings
runHook postBuild
'';
installTargets = "install-hacl-star-raw";
installPhase = ''
runHook preInstall
echo $OCAMLFIND_DESTDIR
mkdir $out
mkdir -p $OCAMLFIND_DESTDIR/stublibs
make -C hacl-star-raw install
runHook postInstall
'';
dontUseCmakeConfigure = true;
dontAddPrefix = true;
dontAddStaticConfigureFlags = true;
configurePlatforms = [];
createFindlibDestdir = true;
nativeBuildInputs = [
which
cmake
ocaml
findlib
];
@ -41,7 +65,7 @@ stdenv.mkDerivation rec {
ctypes
];
nativeCheckInputs = [
checkInputs = [
cppo
];
@ -50,9 +74,9 @@ stdenv.mkDerivation rec {
doCheck = true;
meta = {
inherit (ocaml.meta) platforms;
description = "Auto-generated low-level OCaml bindings for EverCrypt/HACL*";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.ulrikstrid ];
platforms = ocaml.meta.platforms;
};
}

View file

@ -0,0 +1,27 @@
{ lib, fetchFromGitHub, buildDunePackage, yojson, logs, lsp, ppx_yojson_conv_lib }:
buildDunePackage
rec {
pname = "linol";
version = "2023-04-25";
minimalOCamlVersion = "4.08";
duneVersion = "3";
src = fetchFromGitHub {
owner = "c-cube";
repo = "linol";
# Brings support for newer LSP
rev = "439534e0c5b7a3fbf93ba05fae7d171426153763";
sha256 = "sha256-EW35T7KUc/L1Zy4+oaJOC6mlVpbvhTfnU3NNFGoZAJg=";
};
propagatedBuildInputs = [ yojson logs lsp ppx_yojson_conv_lib ];
meta = with lib; {
description = "LSP server library";
license = licenses.mit;
maintainers = [ maintainers.ulrikstrid ];
homepage = "https://github.com/c-cube/linol";
};
}

View file

@ -0,0 +1,19 @@
{ lib, buildDunePackage, linol, jsonrpc, lwt, yojson }:
buildDunePackage {
pname = "linol-lwt";
inherit (linol) version src;
duneVersion = "3";
propagatedBuildInputs = [
linol
jsonrpc
lwt
yojson
];
meta = linol.meta // {
description = "LSP server library (with Lwt for concurrency)";
};
}

View file

@ -0,0 +1,29 @@
{ lib
, fetchFromGitLab
, buildDunePackage
, zarith
, ff-sig
}:
buildDunePackage rec {
pname = "polynomial";
version = "0.4.0";
duneVersion = "3";
src = fetchFromGitLab {
owner = "nomadic-labs";
repo = "cryptography/ocaml-polynomial";
rev = version;
sha256 = "sha256-is/PrYLCwStHiQsNq5OVRCwHdXjO2K2Z7FrXgytRfAU=";
};
propagatedBuildInputs = [ zarith ff-sig ];
doCheck = false; # circular dependencies
meta = {
description = "Polynomials over finite field";
license = lib.licenses.mit;
homepage = "https://gitlab.com/nomadic-labs/ocaml-polynomial";
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, fetchurl, buildDunePackage, astring, asetmap, fmt, re, lwt, alcotest }:
buildDunePackage rec {
pname = "prometheus";
version = "1.2";
src = fetchurl {
url = "https://github.com/mirage/prometheus/releases/download/v${version}/prometheus-${version}.tbz";
sha256 = "sha256-g2Q6ApprbecdFANO7i6U/v8dCHVcSkHVg9wVMKtVW8s=";
};
duneVersion = "3";
propagatedBuildInputs = [
astring
asetmap
fmt
re
lwt
alcotest
];
meta = {
description = "Client library for Prometheus monitoring";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -2,22 +2,18 @@
buildDunePackage rec {
pname = "ringo";
version = "0.9";
version = "1.0.0";
src = fetchFromGitLab {
owner = "nomadic-labs";
repo = "ringo";
rev = "v${version}";
sha256 = "sha256-lPb+WrRsmtOow9BX9FW4HoILlsTuuMrVlK0XPcXWZ9U=";
sha256 = "sha256-9HW3M27BxrEPbF8cMHwzP8FmJduUInpQQAE2672LOuU=";
};
minimalOCamlVersion = "4.05";
doCheck = true;
# If we just run the test as is it will try to test ringo-lwt
checkPhase = "dune build @test/runtest";
meta = {
description = "Caches (bounded-size key-value stores) and other bounded-size stores";
license = lib.licenses.mit;

View file

@ -1,17 +0,0 @@
{ lib, buildDunePackage, ringo, lwt }:
buildDunePackage {
pname = "ringo-lwt";
inherit (ringo) version src doCheck;
minimalOCamlVersion = "4.08";
propagatedBuildInputs = [
ringo
lwt
];
meta = ringo.meta // {
description = "Lwt-wrappers for Ringo caches";
};
}

View file

@ -8,21 +8,21 @@
, alcotest-lwt
, bisect_ppx
, qcheck-alcotest
,
, ppx_repr
}:
buildDunePackage rec {
pname = "tezos-bls12-381-polynomial";
version = "0.1.3";
version = "1.0.1";
duneVersion = "3";
src = fetchFromGitLab {
owner = "nomadic-labs/cryptography";
repo = "privacy-team";
rev = "v${version}";
sha256 = "sha256-H1Wog3GItTIVsawr9JkyyKq+uGqbTQPTR1dacpmxLbs=";
sha256 = "sha256-5qDa/fQoTypjaceQ0MBzt0rM+0hSJcpGlXMGAZKRboo=";
};
propagatedBuildInputs = [ bls12-381 data-encoding bigstringaf ];
propagatedBuildInputs = [ ppx_repr bls12-381 data-encoding bigstringaf ];
checkInputs = [ alcotest alcotest-lwt bisect_ppx qcheck-alcotest ];

View file

@ -2,7 +2,9 @@
, buildDunePackage
, hacl-star
, bls12-381
, bls12-381-hash
, tezos-bls12-381-polynomial
, polynomial
, data-encoding
, hex
, stdint
@ -22,12 +24,14 @@ buildDunePackage rec {
propagatedBuildInputs = [
hacl-star
bls12-381
bls12-381-hash
tezos-bls12-381-polynomial
data-encoding
hex
stdint
ff
mec
polynomial
];
checkInputs = [ alcotest qcheck-alcotest bisect_ppx ];

View file

@ -9,6 +9,8 @@ let
inherit ocaml;
### A ###
aches = callPackage ../development/ocaml-modules/aches { };
aches-lwt = callPackage ../development/ocaml-modules/aches/lwt.nix { };
afl-persistent = callPackage ../development/ocaml-modules/afl-persistent { };
@ -38,6 +40,8 @@ let
arp = callPackage ../development/ocaml-modules/arp { };
asetmap = callPackage ../development/ocaml-modules/asetmap { };
asn1-combinators = callPackage ../development/ocaml-modules/asn1-combinators { };
astring = callPackage ../development/ocaml-modules/astring { };
@ -100,7 +104,7 @@ let
bls12-381 = callPackage ../development/ocaml-modules/bls12-381 { };
bls12-381-gen = callPackage ../development/ocaml-modules/bls12-381/gen.nix { };
bls12-381-legacy = callPackage ../development/ocaml-modules/bls12-381/legacy.nix { };
bls12-381-hash = callPackage ../development/ocaml-modules/bls12-381-hash { };
bls12-381-signature = callPackage ../development/ocaml-modules/bls12-381-signature { };
@ -845,6 +849,10 @@ let
linksem = callPackage ../development/ocaml-modules/linksem { };
linol = callPackage ../development/ocaml-modules/linol { };
linol-lwt = callPackage ../development/ocaml-modules/linol/lwt.nix { };
llvm = callPackage ../development/ocaml-modules/llvm {
libllvm = pkgs.llvmPackages_10.libllvm;
};
@ -1303,6 +1311,8 @@ let
inherit (pkgs) coreutils imagemagick;
};
polynomial = callPackage ../development/ocaml-modules/polynomial { };
portaudio = callPackage ../development/ocaml-modules/portaudio {
inherit (pkgs) portaudio;
};
@ -1380,6 +1390,8 @@ let
process = callPackage ../development/ocaml-modules/process { };
prometheus = callPackage ../development/ocaml-modules/prometheus { };
progress = callPackage ../development/ocaml-modules/progress { };
promise_jsoo = callPackage ../development/ocaml-modules/promise_jsoo { };
@ -1452,7 +1464,6 @@ let
rfc7748 = callPackage ../development/ocaml-modules/rfc7748 { };
ringo = callPackage ../development/ocaml-modules/ringo { };
ringo-lwt = callPackage ../development/ocaml-modules/ringo/lwt.nix { };
rock = callPackage ../development/ocaml-modules/rock { };