From baecb72980d2a9bf9adca51cda73410d988fc812 Mon Sep 17 00:00:00 2001 From: rvem Date: Tue, 24 Mar 2020 11:19:47 +0300 Subject: [PATCH] [#26] Bump master branch revision. Problem: https://gitlab.com/tezos/tezos/-/merge_requests/1624 was merged, changes from this MR is required for some other projects and it's convenient to use static binaries from this repo in it. Also, OCaml compiler version for tezos was updated to 4.09. Solution: Update compiler version, bump various libraries. Bump master branch revision. --- default.nix | 4 +- nix/default.nix | 406 +++++++++++++++++++++++++++++++++++++++++-- nix/fix-master.patch | 10 +- nix/static.nix | 10 +- 4 files changed, 405 insertions(+), 25 deletions(-) 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;