From bfc0959511519af01c9f04ff171fd188f81d731d Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Mon, 27 Nov 2017 19:08:40 +0000 Subject: ocamlPackages.cstruct: 2.3.2 -> 3.0.2 --- pkgs/development/ocaml-modules/cstruct/1.9.0.nix | 36 +++++++++++++++ pkgs/development/ocaml-modules/cstruct/default.nix | 52 +++++++++------------- pkgs/development/ocaml-modules/cstruct/lwt.nix | 12 +++++ pkgs/development/ocaml-modules/cstruct/ppx.nix | 13 ++++++ pkgs/development/ocaml-modules/cstruct/unix.nix | 12 +++++ .../development/ocaml-modules/nocrypto/default.nix | 6 +-- pkgs/development/ocaml-modules/otr/default.nix | 4 +- pkgs/development/ocaml-modules/tls/default.nix | 4 +- pkgs/development/ocaml-modules/x509/default.nix | 6 ++- pkgs/top-level/ocaml-packages.nix | 15 +++++-- 10 files changed, 115 insertions(+), 45 deletions(-) create mode 100644 pkgs/development/ocaml-modules/cstruct/1.9.0.nix create mode 100644 pkgs/development/ocaml-modules/cstruct/lwt.nix create mode 100644 pkgs/development/ocaml-modules/cstruct/ppx.nix create mode 100644 pkgs/development/ocaml-modules/cstruct/unix.nix diff --git a/pkgs/development/ocaml-modules/cstruct/1.9.0.nix b/pkgs/development/ocaml-modules/cstruct/1.9.0.nix new file mode 100644 index 00000000000..25f84826ec1 --- /dev/null +++ b/pkgs/development/ocaml-modules/cstruct/1.9.0.nix @@ -0,0 +1,36 @@ +{ stdenv, writeText, fetchFromGitHub, ocaml, ocamlbuild, ocplib-endian, sexplib, findlib, ppx_tools +, async ? null, lwt ? null +}: + +assert stdenv.lib.versionAtLeast ocaml.version "4.01"; + +let version = "1.9.0"; in + +let opt = b: "--${if b != null then "en" else "dis"}able"; in + +stdenv.mkDerivation { + name = "ocaml${ocaml.version}-cstruct-${version}"; + + src = fetchFromGitHub { + owner = "mirage"; + repo = "ocaml-cstruct"; + rev = "v${version}"; + sha256 = "1c1j21zgmxi9spq23imy7byn50qr7hlds1cfpzxlsx9dp309jngy"; + }; + + configureFlags = [ "${opt lwt}-lwt" "${opt async}-async" "${opt ppx_tools}-ppx" ]; + + buildInputs = [ ocaml findlib ocamlbuild ppx_tools lwt async ]; + propagatedBuildInputs = [ ocplib-endian sexplib ]; + + createFindlibDestdir = true; + dontStrip = true; + + meta = with stdenv.lib; { + homepage = https://github.com/mirage/ocaml-cstruct; + description = "Map OCaml arrays onto C-like structs"; + license = stdenv.lib.licenses.isc; + maintainers = [ maintainers.vbgl maintainers.ericbmerritt ]; + platforms = ocaml.meta.platforms or []; + }; +} diff --git a/pkgs/development/ocaml-modules/cstruct/default.nix b/pkgs/development/ocaml-modules/cstruct/default.nix index 0278b0f2655..ad24415f160 100644 --- a/pkgs/development/ocaml-modules/cstruct/default.nix +++ b/pkgs/development/ocaml-modules/cstruct/default.nix @@ -1,40 +1,28 @@ -{ stdenv, writeText, fetchFromGitHub, ocaml, ocamlbuild, ocplib-endian, sexplib, findlib, ppx_tools -, async ? null, lwt ? null -}: +{ stdenv, fetchurl, ocaml, jbuilder, findlib, sexplib, ocplib-endian }: -assert stdenv.lib.versionAtLeast ocaml.version "4.01"; +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-cstruct-${version}"; + version = "3.0.2"; + src = fetchurl { + url = "https://github.com/mirage/ocaml-cstruct/releases/download/v${version}/cstruct-${version}.tbz"; + sha256 = "03caxcyzfjmbnnwa15zy9s1ckkl4sc834d1qkgi4jcs3zqchvd8z"; + }; -let param = - if stdenv.lib.versionAtLeast ocaml.version "4.02" - then { version = "2.3.2"; sha256 = "1fykack86hvvqhwngddyxxqlwm3xjljfaszsjbdrvjlrd1nlg079"; } - else { version = "1.9.0"; sha256 = "1c1j21zgmxi9spq23imy7byn50qr7hlds1cfpzxlsx9dp309jngy"; }; -in + unpackCmd = "tar -xjf $curSrc"; -let opt = b: "--${if b != null then "en" else "dis"}able"; in + buildInputs = [ ocaml jbuilder findlib ]; -stdenv.mkDerivation { - name = "ocaml${ocaml.version}-cstruct-${param.version}"; + propagatedBuildInputs = [ sexplib ocplib-endian ]; - src = fetchFromGitHub { - owner = "mirage"; - repo = "ocaml-cstruct"; - rev = "v${param.version}"; - inherit (param) sha256; - }; + buildPhase = "jbuilder build -p cstruct"; - configureFlags = [ "${opt lwt}-lwt" "${opt async}-async" "${opt ppx_tools}-ppx" ]; + inherit (jbuilder) installPhase; - buildInputs = [ ocaml findlib ocamlbuild ppx_tools lwt async ]; - propagatedBuildInputs = [ ocplib-endian sexplib ]; - - createFindlibDestdir = true; - dontStrip = true; - - meta = with stdenv.lib; { - homepage = https://github.com/mirage/ocaml-cstruct; - description = "Map OCaml arrays onto C-like structs"; - license = stdenv.lib.licenses.isc; - maintainers = [ maintainers.vbgl maintainers.ericbmerritt ]; - platforms = ocaml.meta.platforms or []; - }; + meta = { + description = "Access C-like structures directly from OCaml"; + license = stdenv.lib.licenses.isc; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (src.meta) homepage; + inherit (ocaml.meta) platforms; + }; } diff --git a/pkgs/development/ocaml-modules/cstruct/lwt.nix b/pkgs/development/ocaml-modules/cstruct/lwt.nix new file mode 100644 index 00000000000..065716e6852 --- /dev/null +++ b/pkgs/development/ocaml-modules/cstruct/lwt.nix @@ -0,0 +1,12 @@ +{ stdenv, ocaml, cstruct, lwt }: + +assert stdenv.lib.versionAtLeast ocaml.version "4.02"; + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-cstruct-lwt-${version}"; + inherit (cstruct) version src unpackCmd buildInputs installPhase meta; + + propagatedBuildInputs = [ cstruct lwt ]; + + buildPhase = "${cstruct.buildPhase}-lwt"; +} diff --git a/pkgs/development/ocaml-modules/cstruct/ppx.nix b/pkgs/development/ocaml-modules/cstruct/ppx.nix new file mode 100644 index 00000000000..9d19e1751e2 --- /dev/null +++ b/pkgs/development/ocaml-modules/cstruct/ppx.nix @@ -0,0 +1,13 @@ +{ stdenv, ocaml, cstruct, ppx_tools_versioned }: + +assert stdenv.lib.versionAtLeast ocaml.version "4.02"; + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-ppx_cstruct-${version}"; + inherit (cstruct) version src unpackCmd installPhase meta; + + buildInputs = cstruct.buildInputs ++ [ ppx_tools_versioned ]; + propagatedBuildInputs = [ cstruct ]; + + buildPhase = "jbuilder build -p ppx_cstruct"; +} diff --git a/pkgs/development/ocaml-modules/cstruct/unix.nix b/pkgs/development/ocaml-modules/cstruct/unix.nix new file mode 100644 index 00000000000..2a614579fcc --- /dev/null +++ b/pkgs/development/ocaml-modules/cstruct/unix.nix @@ -0,0 +1,12 @@ +{ stdenv, ocaml, cstruct }: + +assert stdenv.lib.versionAtLeast ocaml.version "4.02"; + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-cstruct-unix-${version}"; + inherit (cstruct) version src unpackCmd buildInputs installPhase meta; + + propagatedBuildInputs = [ cstruct ]; + + buildPhase = "${cstruct.buildPhase}-unix"; +} diff --git a/pkgs/development/ocaml-modules/nocrypto/default.nix b/pkgs/development/ocaml-modules/nocrypto/default.nix index c68584957c6..a7fa59e1446 100644 --- a/pkgs/development/ocaml-modules/nocrypto/default.nix +++ b/pkgs/development/ocaml-modules/nocrypto/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, opam, topkg , cpuid, ocb-stubblr , cstruct, zarith, ppx_sexp_conv, sexplib -, lwt ? null +, cstruct-lwt ? null }: with stdenv.lib; -let withLwt = lwt != null; in +let withLwt = cstruct-lwt != null; in stdenv.mkDerivation rec { name = "ocaml${ocaml.version}-nocrypto-${version}"; @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { buildInputs = [ ocaml findlib ocamlbuild topkg opam cpuid ocb-stubblr ppx_sexp_conv ]; - propagatedBuildInputs = [ cstruct zarith sexplib ] ++ optional withLwt lwt; + propagatedBuildInputs = [ cstruct zarith sexplib ] ++ optional withLwt cstruct-lwt; buildPhase = '' LD_LIBRARY_PATH=${cpuid}/lib/ocaml/${ocaml.version}/site-lib/stubslibs/ \ diff --git a/pkgs/development/ocaml-modules/otr/default.nix b/pkgs/development/ocaml-modules/otr/default.nix index dfee365cd75..39e7ce754d2 100644 --- a/pkgs/development/ocaml-modules/otr/default.nix +++ b/pkgs/development/ocaml-modules/otr/default.nix @@ -1,5 +1,5 @@ {stdenv, buildOcaml, fetchFromGitHub, ocamlbuild, findlib, topkg, ocaml, opam, - ppx_tools, ppx_sexp_conv, cstruct, sexplib, result, nocrypto, astring}: + ppx_tools, ppx_sexp_conv, cstruct, ppx_cstruct, sexplib, result, nocrypto, astring}: let ocamlFlags = "-I ${findlib}/lib/ocaml/${ocaml.version}/site-lib/"; in @@ -16,7 +16,7 @@ buildOcaml rec { sha256 = "07zzix5mfsasqpqdx811m0x04gp8mq1ayf4b64998k98027v01rr"; }; - buildInputs = [ ocamlbuild findlib topkg ppx_tools ppx_sexp_conv opam ]; + buildInputs = [ ocamlbuild findlib topkg ppx_tools ppx_sexp_conv opam ppx_cstruct ]; propagatedBuildInputs = [ cstruct sexplib result nocrypto astring ]; buildPhase = '' diff --git a/pkgs/development/ocaml-modules/tls/default.nix b/pkgs/development/ocaml-modules/tls/default.nix index b38138c5573..8c146102ad1 100644 --- a/pkgs/development/ocaml-modules/tls/default.nix +++ b/pkgs/development/ocaml-modules/tls/default.nix @@ -1,5 +1,5 @@ { stdenv, buildOcaml, fetchFromGitHub, findlib, ocamlbuild, ocaml_oasis -, ppx_tools, ppx_sexp_conv, result, x509, nocrypto, cstruct, ounit +, ppx_tools, ppx_sexp_conv, result, x509, nocrypto, cstruct, ppx_cstruct, cstruct-unix, ounit , lwt ? null}: with stdenv.lib; @@ -19,7 +19,7 @@ buildOcaml rec { sha256 = "19q2hzxiasz9pzczgb63kikg0mc9mw98dfvch5falf2rincycj24"; }; - buildInputs = [ ocamlbuild findlib ocaml_oasis ppx_sexp_conv ounit ]; + buildInputs = [ ocamlbuild findlib ocaml_oasis ppx_sexp_conv ounit ppx_cstruct cstruct-unix ]; propagatedBuildInputs = [ cstruct nocrypto result x509 ] ++ optional withLwt lwt; diff --git a/pkgs/development/ocaml-modules/x509/default.nix b/pkgs/development/ocaml-modules/x509/default.nix index ab82f6abdcb..316035b4054 100644 --- a/pkgs/development/ocaml-modules/x509/default.nix +++ b/pkgs/development/ocaml-modules/x509/default.nix @@ -1,4 +1,6 @@ -{stdenv, buildOcaml, fetchFromGitHub, ocaml, findlib, asn1-combinators, nocrypto, ounit, ocaml_oasis, ppx_sexp_conv}: +{ stdenv, buildOcaml, fetchFromGitHub, ocaml, findlib, asn1-combinators, nocrypto +, ounit, ocaml_oasis, ppx_sexp_conv, cstruct-unix +}: buildOcaml rec { name = "x509"; @@ -13,7 +15,7 @@ buildOcaml rec { sha256 = "07cc3z6h87460z3f4vz8nlczw5jkc4vjhix413z9x6nral876rn7"; }; - buildInputs = [ ocaml ocaml_oasis findlib ounit ppx_sexp_conv ]; + buildInputs = [ ocaml ocaml_oasis findlib ounit ppx_sexp_conv cstruct-unix ]; propagatedBuildInputs = [ asn1-combinators nocrypto ]; configureFlags = "--enable-tests"; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 36c2669d29c..04e7b16e56b 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -176,10 +176,17 @@ let cryptokit = callPackage ../development/ocaml-modules/cryptokit { }; - cstruct = callPackage ../development/ocaml-modules/cstruct { + cstruct = + if lib.versionAtLeast ocaml.version "4.2" + then callPackage ../development/ocaml-modules/cstruct {} + else callPackage ../development/ocaml-modules/cstruct/1.9.0.nix { lwt = ocaml_lwt; }; + + cstruct-lwt = callPackage ../development/ocaml-modules/cstruct/lwt.nix { lwt = ocaml_lwt; }; + cstruct-unix = callPackage ../development/ocaml-modules/cstruct/unix.nix {}; + csv = if lib.versionAtLeast ocaml.version "4.2" then callPackage ../development/ocaml-modules/csv { } @@ -380,9 +387,7 @@ let mtime = callPackage ../development/ocaml-modules/mtime { }; - nocrypto = callPackage ../development/ocaml-modules/nocrypto { - lwt = ocaml_lwt; - }; + nocrypto = callPackage ../development/ocaml-modules/nocrypto { }; notty = callPackage ../development/ocaml-modules/notty { lwt = ocaml_lwt; @@ -570,6 +575,8 @@ let then callPackage ../development/ocaml-modules/ppx_blob {} else null; + ppx_cstruct = callPackage ../development/ocaml-modules/cstruct/ppx.nix {}; + ppx_derivers = callPackage ../development/ocaml-modules/ppx_derivers {}; ppx_deriving = -- cgit 1.4.1