diff --git a/default.nix b/default.nix index 0e254867e..0c377702e 100644 --- a/default.nix +++ b/default.nix @@ -18,8 +18,8 @@ let }; protocols = [ protocol005 protocol006 ]; master = { - rev = "60b977cd"; - sha256 = "1v9v5z5i3cs9jw48m3xx9w4fqkns37nn464fr7hds7wgmwfmf1sp"; + rev = "0737ae7a"; + sha256 = "0hp4dh5xazgs894bx1v77vc1zfcgwg3ls3mqy3ylvrnbhhqx0m3x"; patches = [ ./nix/fix-master.patch ] ++ patches; inherit protocols; }; diff --git a/nix/default.nix b/nix/default.nix index 40404e283..611a7b012 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -5,7 +5,97 @@ branchInfo: let - oca = pkgs.ocaml-ng.ocamlPackages_4_07.overrideScope' (self: super: { + oca = pkgs.ocaml-ng.ocamlPackages_4_09.overrideScope' (self: super: { + sexplib0 = self.callPackage ({ stdenv, fetchFromGitHub, buildDunePackage }: + buildDunePackage rec { + pname = "sexplib0"; + version = "0.13.0"; + + minimumOCamlVersion = "4.04.2"; + + src = fetchFromGitHub { + owner = "janestreet"; + repo = "${pname}"; + rev = "v${version}"; + sha256 = "1b1bk0xs1hqa12qs5y4h1yl3mq6xml4ya2570dyhdn1j0fbw4g3y"; + }; + + buildInputs = [ ]; + doCheck = true; + }) { }; + parsexp = self.callPackage + ({ stdenv, fetchFromGitHub, buildDunePackage, sexplib0, base }: + buildDunePackage rec { + pname = "parsexp"; + version = "0.13.0"; + + minimumOCamlVersion = "4.04.2"; + + src = fetchFromGitHub { + owner = "janestreet"; + repo = "${pname}"; + rev = "v${version}"; + sha256 = "0fsxy5lpsvfadj8m2337j8iprs294dfikqxjcas7si74nskx6l38"; + }; + + buildInputs = [ sexplib0 base ]; + doCheck = true; + }) { }; + sexplib = self.callPackage + ({ stdenv, fetchFromGitHub, buildDunePackage, sexplib0, base, num, parsexp }: + buildDunePackage rec { + pname = "sexplib"; + version = "0.13.0"; + + minimumOCamlVersion = "4.04.2"; + + src = fetchFromGitHub { + owner = "janestreet"; + repo = "${pname}"; + rev = "v${version}"; + sha256 = "059ypcyirw00x6dqa33x49930pwxcr3i72qz5pf220js2ai2nzhn"; + }; + + buildInputs = [ sexplib0 base num parsexp ]; + doCheck = true; + }) { }; + base = self.callPackage + ({ stdenv, fetchFromGitHub, buildDunePackage, sexplib0 }: + buildDunePackage rec { + pname = "base"; + version = "0.13.1"; + + minimumOCamlVersion = "4.04.2"; + + src = fetchFromGitHub { + owner = "janestreet"; + repo = "${pname}"; + rev = "v${version}"; + sha256 = "08a5aymcgr5svvm8v0v20msd5cad64m6maakfbhz4172g7kd9jzw"; + }; + + buildInputs = [ sexplib0 ]; + doCheck = true; + }) { }; + stdio = self.callPackage + ({ stdenv, fetchFromGitHub, buildDunePackage, base, sexplib0 }: + + buildDunePackage rec { + pname = "stdio"; + version = "0.13.0"; + + minimumOCamlVersion = "4.04.2"; + + src = fetchFromGitHub { + owner = "janestreet"; + repo = "${pname}"; + rev = "v${version}"; + sha256 = "1hkj9vh8n8p3n5pvx7053xis1pfmqd8p7shjyp1n555xzimfxzgh"; + }; + + buildInputs = [ base sexplib0 ]; + doCheck = true; + }) { }; bigstring = self.callPackage ({ stdenv, fetchFromGitHub, buildDunePackage, base }: @@ -59,7 +149,7 @@ let buildInputs = [ ocamlbuild ]; buildPhase = "make build"; installPhase = '' - mkdir -p $out/lib/ocaml/4.07.1/site-lib + mkdir -p $out/lib/ocaml/4.09.0/site-lib make install ''; doCheck = false; @@ -93,7 +183,7 @@ let minimumOCamlVersion = "4.03"; buildPhase = ""; installPhase = '' - mkdir -p $out/lib/ocaml/4.07.1/site-lib + mkdir -p $out/lib/ocaml/4.09.0/site-lib make install ''; @@ -145,7 +235,7 @@ let make ''; installPhase = '' - mkdir -p $out/lib/ocaml/4.07.1/site-lib + mkdir -p $out/lib/ocaml/4.09.0/site-lib make install-findlib ''; @@ -193,7 +283,13 @@ let rev = "v${version}"; sha256 = "0v4lxc6g9mavx8nk7djzsvx1blw5wsjn2cg6k6a35fyv64xmwd73"; }; - propagatedBuildInputs = o.propagatedBuildInputs ++ [ self.sexplib ]; + propagatedBuildInputs = o.propagatedBuildInputs ++ [ self.sexplib self.parsexp ]; + }); + cstruct-sexp = super.cstruct-sexp.overrideDerivation (o: rec { + propagatedBuildInputs = o.propagatedBuildInputs ++ [ self.parsexp self.sexplib0 self.base ]; + }); + ppx_cstruct = super.ppx_cstruct.overrideDerivation (o: rec { + propagatedBuildInputs = o.propagatedBuildInputs ++ [ self.parsexp ]; }); conduit-lwt-unix = super.conduit-lwt-unix.overrideDerivation (o: rec { version = "2.0.1"; @@ -206,16 +302,116 @@ let propagatedBuildInputs = [ self.conduit-lwt self.logs self.tls ]; }); cohttp = super.cohttp.overrideDerivation (o: rec { - version = "2.3.0"; - name = "cohttp-2.3.0"; + version = "2.5.1"; + name = "cohttp-2.5.1"; src = pkgs.fetchFromGitHub { owner = "mirage"; repo = "ocaml-${o.pname}"; rev = "v${version}"; - sha256 = "0fag9zhv1lhbq1p4p1cmbav009x2d79kq3iv04pisj5y071qhhvr"; + sha256 = "1rjdsc2d3y65rlqpjq3xqjjr1wxzqqbyjdg5z29vajncvyrpzk1z"; }; propagatedBuildInputs = o.propagatedBuildInputs ++ [ self.stdlib-shims ]; }); + ocaml-compilers-libs = self.callPackage + ({ stdenv, fetchFromGitHub, buildDunePackage }: + buildDunePackage rec { + pname = "ocaml-compilers-libs"; + version = "0.12.1"; + src = pkgs.fetchFromGitHub { + owner = "janestreet"; + repo = "${pname}"; + rev = "v${version}"; + sha256 = "0jkhwmkrfq3ss5bv6i3m861alcr4ypngs6ci6bmzv3yfl7s8bwdf"; + }; + propagatedBuildInputs = [ ]; + }) { }; + ppx_derivers = self.callPackage + ({ stdenv, fetchFromGitHub, buildDunePackage, base, sexplib0, stdio }: + buildDunePackage rec { + pname = "ppx_derivers"; + version = "1.2.1"; + src = pkgs.fetchFromGitHub { + owner = "ocaml-ppx"; + repo = "${pname}"; + rev = "${version}"; + sha256 = "0yqvqw58hbx1a61wcpbnl9j30n495k23qmyy2xwczqs63mn2nkpn"; + }; + propagatedBuildInputs = [ base sexplib0 stdio ]; + }) { }; + ppxlib = self.callPackage ({ stdenv, fetchFromGitHub, buildDunePackage, base + , sexplib0, stdio, ppx_derivers, ocaml-compiler-libs + , ocaml-migrate-parsetree }: + buildDunePackage rec { + pname = "ppxlib"; + minimumOCamlVersion = "4.04"; + version = "0.12.0"; + src = pkgs.fetchFromGitHub { + owner = "ocaml-ppx"; + repo = "${pname}"; + rev = "${version}"; + sha256 = "1cg0is23c05k1rc94zcdz452p9zn11dpqxm1pnifwx5iygz3w0a1"; + }; + propagatedBuildInputs = [ + base + sexplib0 + stdio + ppx_derivers + ocaml-compiler-libs + ocaml-migrate-parsetree + ]; + }) { }; + ppx_sexp_conv = self.callPackage + ({ stdenv, fetchFromGitHub, buildDunePackage, base, sexplib0, ppxlib }: + buildDunePackage rec { + pname = "ppx_sexp_conv"; + minimumOCamlVersion = "4.04"; + version = "0.13.0"; + src = pkgs.fetchFromGitHub { + owner = "janestreet"; + repo = "${pname}"; + rev = "v${version}"; + sha256 = "0jkhwmkrfq3ss6bv6i3m871alcr4xpngs6ci6bmzv3yfl7s8bwdf"; + }; + propagatedBuildInputs = [ base sexplib0 ppxlib ]; + }) { }; + cohttp-lwt = super.cohttp-lwt.overrideDerivation (o: rec { + version = "2.5.1"; + name = "cohttp-lwt"; + src = pkgs.fetchFromGitHub { + owner = "mirage"; + repo = "ocaml-cohttp"; + rev = "v${version}"; + sha256 = "1rjdsc2d3y65rlqpjq3xqjjr1wxzqqbyjdg5z29vajncvyrpzk1z"; + }; + propagatedBuildInputs = o.propagatedBuildInputs + ++ [ self.stdlib-shims self.sexplib0 self.ppx_sexp_conv ]; + }); + fieldslib = self.callPackage + ({ stdenv, fetchFromGitHub, buildDunePackage, base, sexplib0 }: + buildDunePackage rec { + pname = "fieldslib"; + version = "0.13.0"; + src = pkgs.fetchFromGitHub { + owner = "janestreet"; + repo = "${pname}"; + rev = "v${version}"; + sha256 = "0nsl0i9vjk73pr70ksxqa65rd5v84jzdaazryfdy6i4a5sfg7bxa"; + }; + propagatedBuildInputs = [ base sexplib0 ]; + }) { }; + ppx_fields_conv = self.callPackage ({ stdenv, fetchFromGitHub + , buildDunePackage, base, sexplib0, ppxlib, fieldslib }: + buildDunePackage rec { + pname = "ppx_fields_conv"; + version = "0.13.0"; + src = pkgs.fetchFromGitHub { + owner = "janestreet"; + repo = "${pname}"; + rev = "v${version}"; + sha256 = "0biw0fgphj522bj9wgjk263i2w92vnpaabzr5zn0grihp4yqy8w4"; + }; + propagatedBuildInputs = [ base sexplib0 ppxlib fieldslib ]; + }) { }; domain-name = self.callPackage ({ stdenv, fetchFromGitHub, buildDunePackage, fmt, astring }: buildDunePackage rec { @@ -245,7 +441,7 @@ let buildInputs = [ ocamlbuild ]; buildPhase = ""; installPhase = '' - mkdir -p $out/lib/ocaml/4.07.1/site-lib + mkdir -p $out/lib/ocaml/4.09.0/site-lib make install ''; doCheck = false; @@ -266,8 +462,8 @@ let buildInputs = [ pprint astring base ]; buildPhase = ""; installPhase = '' - mkdir -p $out/lib/ocaml/4.07.1/site-lib - mkdir -p $out/lib/ocaml/4.07.1/bin + mkdir -p $out/lib/ocaml/4.09.0/site-lib + mkdir -p $out/lib/ocaml/4.09.0/bin make install ''; doCheck = false; @@ -281,6 +477,10 @@ let rev = "v${version}"; sha256 = "064j9pzy01p3dv947khqyn7fkjbs3jmrqsg8limb4abnlaqxxs2s"; }; + propagatedBuildInputs = o.propagatedBuildInputs ++ [ self.parsexp self.sexplib0 self.base ]; + }); + nocrypto = super.nocrypto.overrideDerivation (o: rec { + propagatedBuildInputs = o.propagatedBuildInputs ++ [ self.parsexp ]; }); fmt = super.fmt.overrideDerivation (o: rec { version = "0.8.8"; @@ -352,13 +552,187 @@ let doCheck = false; }) { }; + data-encoding = self.callPackage ({ buildDunePackage, json-data-encoding + , json-data-encoding-bson, ezjsonm, zarith, uri, ocplib-endian }: + buildDunePackage rec { + pname = "data-encoding"; + version = "0.2"; + + minimumOCamlVersion = "4.03"; + src = builtins.fetchTarball { + url = + "https://gitlab.com/nomadic-labs/data-encoding/-/archive/0.2/data-encoding-0.2.tar.gz"; + sha256 = "0d9c2ix2imqk4r0jfhnwak9laarlbsq9kmswvbnjzdm2g0hwin1d"; + }; + buildInputs = [ + json-data-encoding + json-data-encoding-bson + ezjsonm + zarith + uri + ocplib-endian + ]; + doCheck = false; + }) { }; + + resto = self.callPackage ({ buildDunePackage, json-data-encoding + , json-data-encoding-bson, uri, ocplib-endian, lwt4 }: + buildDunePackage rec { + pname = "resto"; + version = "0.4"; + + minimumOCamlVersion = "4.03"; + src = builtins.fetchTarball { + url = + "https://gitlab.com/nomadic-labs/resto/-/archive/v0.4/resto-v0.4.tar.gz"; + sha256 = "0v0cyf8na21fnvy3abhhnnw8msh16dqcrp61pzaxj839rm62h3vy"; + }; + buildInputs = + [ json-data-encoding json-data-encoding-bson uri ocplib-endian lwt4 ]; + doCheck = false; + }) { }; + + resto-json = self.callPackage ({ buildDunePackage, json-data-encoding + , json-data-encoding-bson, uri, ocplib-endian, lwt4, resto }: + buildDunePackage rec { + pname = "resto-json"; + version = "0.4"; + + minimumOCamlVersion = "4.03"; + src = builtins.fetchTarball { + url = + "https://gitlab.com/nomadic-labs/resto/-/archive/v0.4/resto-v0.4.tar.gz"; + sha256 = "0v0cyf8na21fnvy3abhhnnw8msh16dqcrp61pzaxj839rm62h3vy"; + }; + buildInputs = [ + json-data-encoding + json-data-encoding-bson + uri + ocplib-endian + lwt4 + resto + ]; + doCheck = false; + }) { }; + + resto-directory = self.callPackage ({ buildDunePackage, json-data-encoding + , json-data-encoding-bson, uri, ocplib-endian, lwt4, resto, resto-json }: + buildDunePackage rec { + pname = "resto-directory"; + version = "0.4"; + + minimumOCamlVersion = "4.03"; + src = builtins.fetchTarball { + url = + "https://gitlab.com/nomadic-labs/resto/-/archive/v0.4/resto-v0.4.tar.gz"; + sha256 = "0v0cyf8na21fnvy3abhhnnw8msh16dqcrp61pzaxj839rm62h3vy"; + }; + buildInputs = [ + json-data-encoding + json-data-encoding-bson + uri + ocplib-endian + lwt4 + resto + resto-json + ]; + doCheck = false; + }) { }; + + resto-cohttp = self.callPackage ({ buildDunePackage, json-data-encoding + , json-data-encoding-bson, uri, ocplib-endian, lwt4, resto, resto-json + , resto-directory, cohttp-lwt }: + buildDunePackage rec { + pname = "resto-cohttp"; + version = "0.4"; + + minimumOCamlVersion = "4.03"; + src = builtins.fetchTarball { + url = + "https://gitlab.com/nomadic-labs/resto/-/archive/v0.4/resto-v0.4.tar.gz"; + sha256 = "0v0cyf8na21fnvy3abhhnnw8msh16dqcrp61pzaxj839rm62h3vy"; + }; + buildInputs = [ + json-data-encoding + json-data-encoding-bson + uri + ocplib-endian + lwt4 + resto + resto-json + resto-directory + cohttp-lwt + ]; + doCheck = false; + }) { }; + + resto-cohttp-client = self.callPackage ({ buildDunePackage + , json-data-encoding, json-data-encoding-bson, uri, ocplib-endian, lwt4 + , resto, resto-json, resto-directory, cohttp-lwt, resto-cohttp }: + buildDunePackage rec { + pname = "resto-cohttp-client"; + version = "0.4"; + + minimumOCamlVersion = "4.03"; + src = builtins.fetchTarball { + url = + "https://gitlab.com/nomadic-labs/resto/-/archive/v0.4/resto-v0.4.tar.gz"; + sha256 = "0v0cyf8na21fnvy3abhhnnw8msh16dqcrp61pzaxj839rm62h3vy"; + }; + buildInputs = [ + json-data-encoding + json-data-encoding-bson + uri + ocplib-endian + lwt4 + resto + resto-json + resto-directory + cohttp-lwt + resto-cohttp + ]; + doCheck = false; + }) { }; + + resto-cohttp-server = self.callPackage ({ buildDunePackage + , json-data-encoding, json-data-encoding-bson, uri, ocplib-endian, lwt4 + , resto, resto-json, resto-directory, cohttp-lwt, resto-cohttp + , cohttp-lwt-unix }: + buildDunePackage rec { + pname = "resto-cohttp-server"; + version = "0.4"; + + minimumOCamlVersion = "4.03"; + src = builtins.fetchTarball { + url = + "https://gitlab.com/nomadic-labs/resto/-/archive/v0.4/resto-v0.4.tar.gz"; + sha256 = "0v0cyf8na21fnvy3abhhnnw8msh16dqcrp61pzaxj839rm62h3vy"; + }; + buildInputs = [ + json-data-encoding + json-data-encoding-bson + uri + ocplib-endian + lwt4 + resto + resto-json + resto-directory + cohttp-lwt + resto-cohttp + cohttp-lwt-unix + ]; + doCheck = false; + }) { }; + tezos = self.callPackage ({ stdenv, fetchgit, buildDunePackage, base , bigstring, cohttp-lwt, cohttp-lwt-unix, cstruct, ezjsonm, hex, ipaddr , js_of_ocaml, cmdliner, easy-format, tls, lwt4, lwt_log, mtime , ocplib-endian, ptime, re, rresult, stdio, uri, uutf, zarith, libusb1 , hidapi, gmp, irmin, alcotest, dum, genspio, ocamlgraph, findlib , digestif, ocp-ocamlres, pprint, upx, json-data-encoding - , json-data-encoding-bson, lwt-canceler, lwt-watcher }: + , json-data-encoding-bson, lwt-canceler, lwt-watcher, data-encoding, resto + , resto-directory, resto-cohttp, resto-cohttp-client, resto-cohttp-server + }: buildDunePackage rec { pname = "tezos"; version = "0.0.1"; @@ -412,12 +786,18 @@ let json-data-encoding-bson lwt-canceler lwt-watcher + data-encoding + resto + resto-directory + resto-cohttp + resto-cohttp-client + resto-cohttp-server ] ++ [ libusb1 libusb1.out (gmp.override { withStatic = true; }) upx ]; doCheck = false; protocolsNames = map (x: x.protocolName) branchInfo.protocols; buildPhase = '' # tezos-node build requires ocp-ocamlres binary in PATH - PATH=$PATH:${ocp-ocamlres}/lib/ocaml/4.07.1/bin + PATH=$PATH:${ocp-ocamlres}/lib/ocaml/4.09.0/bin install_files=() for protocol_name in $protocolsNames; do protocol_suffix=$(echo "$protocol_name" | tr "_" "-") diff --git a/nix/fix-master.patch b/nix/fix-master.patch index a1de82466..aa28ad483 100644 --- a/nix/fix-master.patch +++ b/nix/fix-master.patch @@ -142,7 +142,7 @@ index e4c9a7c..2a5f941 100644 (alias (name runtest_lint) diff --git a/src/lib_protocol_compiler/dune b/src/lib_protocol_compiler/dune -index 1142419..d8086b4 100644 +index 0902181..30fe55b 100644 --- a/src/lib_protocol_compiler/dune +++ b/src/lib_protocol_compiler/dune @@ -65,7 +65,7 @@ @@ -155,12 +155,12 @@ index 1142419..d8086b4 100644 (executable diff --git a/vendors/index/src/unix/dune b/vendors/index/src/unix/dune -index 2981490..655fa7f 100644 +index 49e819d..833a3f4 100644 --- a/vendors/index/src/unix/dune +++ b/vendors/index/src/unix/dune @@ -2,4 +2,4 @@ (public_name index.unix) (name index_unix) - (c_names pread pwrite) -- (libraries index logs logs.threaded threads unix)) -+ (libraries index logs threads unix)) + (c_names fsync pread pwrite) +- (libraries fmt index logs logs.threaded threads.posix unix)) ++ (libraries fmt index logs threads.posix unix)) diff --git a/nix/static.nix b/nix/static.nix index 61a8a8b11..6e9a779f6 100644 --- a/nix/static.nix +++ b/nix/static.nix @@ -9,7 +9,7 @@ let })).overrideDerivation (o: if o.stdenv.hostPlatform != o.stdenv.buildPlatform then { preConfigure = '' - configureFlagsArray+=("-cc" "$CC" "-as" "$AS" "-partialld" "$LD -r") + configureFlagsArray+=("CC=$CC" "AS=$AS" "PARTIALLD=$LD -r") ''; configureFlags = o.configureFlags ++ [ "-host ${o.stdenv.hostPlatform.config} -target ${o.stdenv.targetPlatform.config}" @@ -23,7 +23,7 @@ let }); dds = x: x.overrideAttrs (o: { dontDisableStatic = true; }); nixpkgs-fixed = builtins.fetchTarball - "https://github.com/serokell/nixpkgs/archive/ocaml-cross-fixes.tar.gz"; + "https://github.com/serokell/nixpkgs/archive/ocaml-cross-fixes-new.tar.gz"; pkgsNative = import nixpkgs-fixed { }; pkgs = import nixpkgs-fixed { crossSystem = pkgsNative.lib.systems.examples.musl64; @@ -34,17 +34,17 @@ let getent = self.musl-bin; getconf = self.musl-bin; libev = dds super.libev; - libusb1 = dds (super.libusb1.override { systemd = self.eudev; }); + libusb1 = dds (super.libusb1.override { systemd = self.eudev; enableSystemd = true; }); hidapi = dds (super.hidapi.override { systemd = self.eudev; }); glib = (super.glib.override { libselinux = null; }).overrideAttrs (o: { mesonFlags = o.mesonFlags ++ [ "-Dselinux=disabled" ]; }); eudev = dds (super.eudev.overrideAttrs (o: { nativeBuildInputs = o.nativeBuildInputs ++ [ super.gperf ]; })); opaline = fixOcamlBuild (super.opaline.override { - ocamlPackages = self.ocaml-ng.ocamlPackages_4_07; + ocamlPackages = self.ocaml-ng.ocamlPackages_4_09; }); ocaml-ng = super.ocaml-ng // { - ocamlPackages_4_07 = super.ocaml-ng.ocamlPackages_4_07.overrideScope' + ocamlPackages_4_09 = super.ocaml-ng.ocamlPackages_4_09.overrideScope' (oself: osuper: { ocaml = fixOcaml osuper.ocaml; findlib = fixOcamlBuild osuper.findlib;