Created
December 2, 2019 06:45
-
-
Save yorickvP/c273e44ce52d37eb3c8de196e9f8c438 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ pkgs ? import <nixpkgs> { } }: | |
let | |
oca = pkgs.ocaml-ng.ocamlPackages_4_07.overrideScope' (self: super: { | |
# tezosPackage = self.callPackage ({ buildDunePackage, fetchgit }: (args: | |
# buildDunePackage ({ | |
# version = "0.0.1"; | |
# minimumOCamlVersion = "4.07"; | |
# #src = ./.; | |
# src = fetchgit { | |
# url = "https://gitlab.com/tezos/tezos.git/"; | |
# rev = "2613d9058252322183ec1bc45d69dcc12ea1b51c"; | |
# sha256 = "1hxf87a5sw1s6h1af2hc7gwy0ji3070yrpp8vmsl5zirf65ahjyl"; | |
# }; | |
# preInstall = '' | |
# cp src/*/*.install . | |
# ''; | |
# } // args))) {}; | |
bigstring = self.callPackage | |
({ stdenv, fetchFromGitHub, buildDunePackage, base }: | |
buildDunePackage rec { | |
pname = "bigstring"; | |
version = "0.2"; | |
minimumOCamlVersion = "4.03"; | |
src = fetchFromGitHub { | |
owner = "c-cube"; | |
repo = "ocaml-${pname}"; | |
rev = version; | |
sha256 = "0ypdf29cmwmjm3djr5ygz8ls81dl41a4iz1xx5gbcdpbrdiapb77"; | |
}; | |
buildInputs = [ base ]; | |
doCheck = true; | |
}) { }; | |
nonstd = self.callPackage | |
({ stdenv, fetchgit, buildDunePackage, base }: | |
buildDunePackage rec { | |
pname = "nonstd"; | |
version = "0.0.3"; | |
minimumOCamlVersion = "4.03"; | |
src = fetchgit { | |
url = "https://bitbucket.org/smondet/nonstd.git"; | |
rev = "${pname}.${version}"; | |
sha256 = "0ccjwcriwm8fv29ij1cnbc9win054kb6pfga3ygzdbjpjb778j46"; | |
}; | |
#doCheck = true; | |
}) { }; | |
sosa = self.callPackage | |
({ stdenv, fetchFromGitHub, buildDunePackage, ocamlbuild }: | |
buildDunePackage rec { | |
pname = "sosa"; | |
version = "0.3.0"; | |
minimumOCamlVersion = "4.03"; | |
src = fetchFromGitHub { | |
owner = "hammerlab"; | |
repo = "${pname}"; | |
rev = "${pname}.${version}"; | |
sha256 = "053hdv6ww0q4mivajj4iyp7krfvgq8zajq9d8x4mia4lid7j0dyk"; | |
}; | |
buildInputs = [ ocamlbuild ]; | |
buildPhase = "make build"; | |
installPhase = '' | |
mkdir -p $out/lib/ocaml/4.07.1/site-lib | |
make install | |
''; | |
doCheck = false; | |
}) { }; | |
genspio = self.callPackage | |
({ stdenv, fetchFromGitHub, buildDunePackage, nonstd, sosa, base }: | |
buildDunePackage rec { | |
pname = "genspio"; | |
version = "0.0.2"; | |
minimumOCamlVersion = "4.03"; | |
src = fetchFromGitHub { | |
owner = "hammerlab"; | |
repo = "${pname}"; | |
rev = "genspio.${version}"; | |
sha256 = "0cp6p1f713sfv4p2r03bzvjvakzn4ili7hf3a952b3w1k39hv37x"; | |
}; | |
propagatedBuildInputs = [ nonstd sosa ]; | |
configurePhase = "ocaml please.mlt configure"; | |
doCheck = false; | |
}) { }; | |
dum = self.callPackage | |
({ stdenv, fetchFromGitHub, buildDunePackage, easy-format }: | |
buildDunePackage rec { | |
pname = "dum"; | |
version = "1.0.1"; | |
minimumOCamlVersion = "4.03"; | |
buildPhase = ""; | |
installPhase = '' | |
mkdir -p $out/lib/ocaml/4.07.1/site-lib | |
make install | |
''; | |
src = fetchFromGitHub { | |
owner = "mjambon"; | |
repo = "${pname}"; | |
rev = "v${version}"; | |
sha256 = "0yrxl97szjc0s2ghngs346x3y0xszx2chidgzxk93frjjpsr1mlr"; | |
}; | |
buildInputs = [ easy-format ]; | |
doCheck = false; | |
}) { }; | |
hidapi = self.callPackage | |
({ stdenv, fetchFromGitHub, buildDunePackage, hidapi, bigstring, pkg-config }: | |
buildDunePackage rec { | |
pname = "hidapi"; | |
version = "1.1.1"; | |
minimumOCamlVersion = "4.03"; | |
src = fetchFromGitHub { | |
owner = "vbmithr"; | |
repo = "ocaml-${pname}"; | |
rev = version; | |
sha256 = "1qhc8iby3i54zflbi3yrnhpg62pwdl6g2sfnykgashjy7ghh495y"; | |
}; | |
buildInputs = [ bigstring hidapi pkg-config ]; | |
doCheck = true; | |
}) { hidapi = pkgs.hidapi; }; | |
irmin = self.callPackage | |
({ stdenv, fetchFromGitHub, buildDunePackage, fmt, uri, jsonm, lwt4, logs, base64, digestif, ocamlgraph, astring, hex, alcotest }: | |
buildDunePackage rec { | |
pname = "irmin"; | |
version = "1.4.0"; | |
minimumOCamlVersion = "4.03"; | |
src = fetchFromGitHub { | |
owner = "mirage"; | |
repo = pname; | |
rev = version; | |
sha256 = "0f272h9d0hs0wn5m30348wx7vz7524yk40wx5lx895vv3r3p7q7c"; | |
}; | |
buildInputs = [ fmt uri jsonm lwt4 base64 logs astring hex alcotest ]; | |
propagatedBuildInputs = [ ocamlgraph digestif ]; | |
doCheck = true; | |
}) { }; | |
ipaddr = super.ipaddr.overrideDerivation (o: rec { | |
version = "4.0.0"; | |
src = pkgs.fetchFromGitHub { | |
owner = "mirage"; | |
repo = "ocaml-${o.pname}"; | |
rev = "v${version}"; | |
sha256 = "1ywhabdji7hqrmr07dcxlsxf5zndagrdxx378csi5bv3c5n9547z"; | |
}; | |
buildPhase = "dune build -p ipaddr,macaddr,ipaddr-sexp"; | |
propagatedBuildInputs = o.propagatedBuildInputs ++ [ self.domain-name ]; | |
}); | |
conduit = super.conduit.overrideDerivation (o: rec { | |
version = "2.0.1"; | |
src = pkgs.fetchFromGitHub { | |
owner = "mirage"; | |
repo = "ocaml-${o.pname}"; | |
rev = "v${version}"; | |
sha256 = "0v4lxc6g9mavx8nk7djzsvx1blw5wsjn2cg6k6a35fyv64xmwd73"; | |
}; | |
propagatedBuildInputs = o.propagatedBuildInputs ++ [ self.sexplib ]; | |
}); | |
conduit-lwt-unix = super.conduit-lwt-unix.overrideDerivation (o: rec { | |
version = "2.0.1"; | |
src = pkgs.fetchFromGitHub { | |
owner = "mirage"; | |
repo = "ocaml-${o.pname}"; | |
rev = "v${version}"; | |
sha256 = "0v4lxc6g9mavx8nk7djzsvx1blw5wsjn2cg6k6a35fyv64xmwd73"; | |
}; | |
propagatedBuildInputs = [ self.conduit-lwt self.logs self.tls ]; | |
}); | |
cohttp = super.cohttp.overrideDerivation (o: rec { | |
version = "2.3.0"; | |
name = "cohttp-2.3.0"; | |
src = pkgs.fetchFromGitHub { | |
owner = "mirage"; | |
repo = "ocaml-${o.pname}"; | |
rev = "v${version}"; | |
sha256 = "0fag9zhv1lhbq1p4p1cmbav009x2d79kq3iv04pisj5y071qhhvr"; | |
}; | |
propagatedBuildInputs = o.propagatedBuildInputs ++ [ self.stdlib-shims ]; | |
}); | |
domain-name = self.callPackage ({ stdenv, fetchFromGitHub, buildDunePackage, fmt, astring }: | |
buildDunePackage rec { | |
pname = "domain-name"; | |
version = "0.3.0"; | |
src = pkgs.fetchFromGitHub { | |
owner = "hannesm"; | |
repo = "${pname}"; | |
rev = "v${version}"; | |
sha256 = "06l82k27wa446k0sd799i73rrqwwmqfm542blkx6bbm2xpxaz2cm"; | |
}; | |
propagatedBuildInputs = [ fmt astring ]; | |
}) {}; | |
tezos = self.callPackage ({ stdenv, fetchgit, buildDunePackage, base | |
, bigstring, cohttp-lwt, cohttp-lwt-unix, cstruct, ezjsonm, hex, | |
ipaddr, js_of_ocaml, cmdliner, easy-format, ocp-ocamlres, tls, | |
lwt4, lwt_log, mtime, ocplib-endian, ptime, re, rresult, stdio, uri, uutf | |
, zarith, libusb1, hidapi, gmp, irmin, alcotest, dum, genspio, pprint, ocamlgraph,findlib, digestif }: | |
buildDunePackage rec { | |
pname = "tezos"; | |
version = "0.0.1"; | |
minimumOCamlVersion = "4.07"; | |
#src = ./.; | |
#patches = [ ./fix.patch ]; # babylonnet | |
patches = [ ./fix-mainnet.patch ]; | |
src = fetchgit { | |
url = "https://gitlab.com/tezos/tezos.git/"; | |
# babylonnet: | |
#rev = "b8731913f21091e14dea9c2b6657e768c1342650"; | |
#sha256 = "1pakf1s6bg76fq42mb8fj1immz9g9wwimd522cpx8k28zf0hkl5i"; | |
# mainnet: | |
rev = "94f779a7517f04d1786d710b0b8deea7a9c1f762"; | |
sha256 = "16lxilng5q8fr2ll6h4hf7wlvac6nmw4cx10cbgzj5ks090bl97r"; | |
}; | |
preInstall = '' | |
cp src/*/*.install . | |
''; | |
buildInputs = [ | |
base bigstring cohttp-lwt cohttp-lwt-unix cstruct ezjsonm | |
irmin hex ipaddr /*rmin*/ hidapi lwt4 lwt_log mtime ocplib-endian | |
ptime re rresult digestif | |
stdio uri uutf zarith #cmdliner easy-format js_of_ocaml ocp-ocamlres tls | |
# alcotest dum pprint | |
#ocamlgraph findlib genspio | |
] ++ [ libusb1 libusb1.out (gmp.override { withStatic = true; }) ]; | |
doCheck = false; | |
buildPhase = "dune build src/bin_client/tezos-client.install"; | |
installPhase = '' | |
mkdir -p $out/bin | |
cp _build/default/src/bin_client/main_client.exe $out/bin/tezos-client | |
cp _build/default/src/bin_client/main_admin.exe $out/bin/tezos-admin | |
''; | |
}) { }; | |
}); | |
in oca.tezos |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment