Skip to content

Instantly share code, notes, and snippets.

@matthewess
Created July 28, 2019 23:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matthewess/50e3c96a1cf56ef97eac5e14ae26fd56 to your computer and use it in GitHub Desktop.
Save matthewess/50e3c96a1cf56ef97eac5e14ae26fd56 to your computer and use it in GitHub Desktop.
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index ee279d0429a..e31b43c9dc1 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -3229,6 +3229,11 @@
github = "matthewbauer";
name = "Matthew Bauer";
};
+ matthewess = {
+ email = "daringseal@gmail.com";
+ github = "matthewess";
+ name = "Matthew Ess";
+ };
matthiasbeyer = {
email = "mail@beyermatthias.de";
github = "matthiasbeyer";
diff --git a/pkgs/build-support/ocaml/default.nix b/pkgs/build-support/ocaml/default.nix
index cc2001c66e2..4ebceced20c 100644
--- a/pkgs/build-support/ocaml/default.nix
+++ b/pkgs/build-support/ocaml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, writeText, ocaml, findlib, ocamlbuild, camlp4 }:
+{ stdenv, writeText, ocaml, findlib, ocamlbuild, supportsCamlp4, camlp4 }:
{ name, version, buildInputs ? [],
createFindlibDestdir ? true,
@@ -12,6 +12,9 @@ let
defaultMeta = {
platforms = ocaml.meta.platforms or [];
};
+ defaultInputs = [ ocaml findlib ocamlbuild ] ++ (if supportsCamlp4
+ then [ camlp4 ]
+ else []);
in
assert minimumSupportedOcamlVersion != null ->
stdenv.lib.versionOlder minimumSupportedOcamlVersion ocaml.version;
@@ -19,7 +22,7 @@ in
stdenv.mkDerivation (args // {
name = "ocaml-${name}-${version}";
- buildInputs = [ ocaml findlib ocamlbuild camlp4 ] ++ buildInputs;
+ buildInputs = defaultInputs ++ buildInputs;
setupHook = if setupHook == null && hasSharedObjects
then writeText "setupHook.sh" ''
diff --git a/pkgs/development/compilers/reason/default.nix b/pkgs/development/compilers/reason/default.nix
index 1b84b934852..256b4359301 100644
--- a/pkgs/development/compilers/reason/default.nix
+++ b/pkgs/development/compilers/reason/default.nix
@@ -1,23 +1,23 @@
{ stdenv, makeWrapper, fetchFromGitHub, ocaml, findlib, dune
-, menhir, merlin_extend, ppx_tools_versioned, utop
+, cppo, menhir, merlin_extend, ppx_tools_versioned, utop
}:
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-reason-${version}";
- version = "3.3.7";
+ version = "3.5.0";
src = fetchFromGitHub {
owner = "facebook";
repo = "reason";
- rev = "4d20e5b535c29c5ef1283e65958b32996e449e5a";
- sha256 = "0f3pb61wg58g8f3wcnp1h4gpmnwmp7bq0cnqdfwldmh9cs0dqyfk";
+ rev = "5b2904620189e06d4577ff80ce42c5cbaa0675c8";
+ sha256 = "15k5l7yz2kzvj1y1w1zsd902iif648hhg5xpw221gsh8c8hg811g";
};
nativeBuildInputs = [ makeWrapper ];
propagatedBuildInputs = [ menhir merlin_extend ppx_tools_versioned ];
- buildInputs = [ ocaml findlib dune utop menhir ];
+ buildInputs = [ ocaml findlib dune utop cppo menhir ];
buildFlags = [ "build" ]; # do not "make tests" before reason lib is installed
diff --git a/pkgs/development/ocaml-modules/lambda-term/default.nix b/pkgs/development/ocaml-modules/lambda-term/default.nix
index 18fe235710f..0630f0e9d1a 100644
--- a/pkgs/development/ocaml-modules/lambda-term/default.nix
+++ b/pkgs/development/ocaml-modules/lambda-term/default.nix
@@ -1,17 +1,19 @@
-{ stdenv, fetchurl, libev, buildDunePackage, zed, lwt_log, lwt_react }:
+{ stdenv, fetchFromGitHub, libev, buildDunePackage, zed, lwt, lwt_log, lwt_react }:
buildDunePackage rec {
pname = "lambda-term";
- version = "1.13";
+ version = "2.0.1";
minimumOCamlVersion = "4.02";
- src = fetchurl {
- url = "https://github.com/diml/${pname}/archive/${version}.tar.gz";
- sha256 = "1hy5ryagqclgdm9lzh1qil5mrynlypv7mn6qm858hdcnmz9zzn0l";
+ src = fetchFromGitHub {
+ owner = "ocaml-community";
+ repo = pname;
+ rev = version;
+ sha256 = "19s4kkvqw9fds7icnqjfk76ydf9rdbjb75kid1xrm6n0vkj5n5jk";
};
- buildInputs = [ libev ];
+ buildInputs = [ lwt libev ];
propagatedBuildInputs = [ zed lwt_log lwt_react ];
hasSharedObjects = true;
diff --git a/pkgs/development/ocaml-modules/lwt/4.x.nix b/pkgs/development/ocaml-modules/lwt/4.x.nix
index 105104bc308..ffdbfdad1df 100644
--- a/pkgs/development/ocaml-modules/lwt/4.x.nix
+++ b/pkgs/development/ocaml-modules/lwt/4.x.nix
@@ -1,24 +1,24 @@
-{ stdenv, fetchzip, pkgconfig, ncurses, libev, buildDunePackage, ocaml
-, cppo, ocaml-migrate-parsetree, ppx_tools_versioned, result
+{ stdenv, fetchFromGitHub, pkgconfig, ncurses, libev, buildDunePackage, ocaml
+, cppo, ocaml-migrate-parsetree, ppx_tools_versioned, result, seq, mmap
}:
let inherit (stdenv.lib) optional versionAtLeast; in
buildDunePackage rec {
pname = "lwt";
- version = "4.1.0";
+ version = "4.2.1";
- src = fetchzip {
- url = "https://github.com/ocsigen/${pname}/archive/${version}.tar.gz";
- sha256 = "16wnc61kfj54z4q8sn9f5iik37pswz328hcz3z6rkza3kh3s6wmm";
+ src = fetchFromGitHub {
+ owner = "ocsigen";
+ repo = pname;
+ rev = version;
+ sha256 = "1hz24fyhpm7d6603v399pgxvdl236srwagqja41ljvjx83y10ysr";
};
nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ cppo ocaml-migrate-parsetree ppx_tools_versioned ]
+ buildInputs = [ cppo ocaml-migrate-parsetree ppx_tools_versioned seq ]
++ optional (!versionAtLeast ocaml.version "4.07") ncurses;
- propagatedBuildInputs = [ libev result ];
-
- configurePhase = "ocaml src/util/configure.ml -use-libev true";
+ propagatedBuildInputs = [ libev result mmap ];
meta = {
homepage = "https://ocsigen.org/lwt/";
diff --git a/pkgs/development/ocaml-modules/lwt_log/default.nix b/pkgs/development/ocaml-modules/lwt_log/default.nix
index 7eea297e3ee..5f18d0c6547 100644
--- a/pkgs/development/ocaml-modules/lwt_log/default.nix
+++ b/pkgs/development/ocaml-modules/lwt_log/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildDunePackage, lwt }:
+{ stdenv, fetchFromGitHub, buildDunePackage, lwt, seq }:
buildDunePackage rec {
pname = "lwt_log";
@@ -13,7 +13,7 @@ buildDunePackage rec {
sha256 = "1c58gkqfvyf2j11jwj2nh4iq999wj9xpnmr80hz9d0nk9fv333pi";
};
- propagatedBuildInputs = [ lwt ];
+ propagatedBuildInputs = [ lwt seq ];
meta = {
description = "Lwt logging library (deprecated)";
diff --git a/pkgs/development/ocaml-modules/lwt_react/default.nix b/pkgs/development/ocaml-modules/lwt_react/default.nix
index 41276668ecc..fb9346f9e29 100644
--- a/pkgs/development/ocaml-modules/lwt_react/default.nix
+++ b/pkgs/development/ocaml-modules/lwt_react/default.nix
@@ -1,14 +1,11 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, lwt, react }:
+{ buildDunePackage, fetchFromGitHub, ocaml, cppo, lwt, react, seq }:
-stdenv.mkDerivation rec {
- version = "1.0.1";
- name = "ocaml${ocaml.version}-lwt_react-${version}";
- src = fetchzip {
- url = https://github.com/ocsigen/lwt/releases/download/3.0.0/lwt_react-1.0.1.tar.gz;
- sha256 = "1bbz7brvdskf4angzn3q2s2s6qdnx7x8m8syayysh23gwv4c7v31";
- };
+buildDunePackage {
+ version = "1.1.2";
+ pname = "lwt_react";
+ inherit (lwt) src;
- buildInputs = [ ocaml findlib ocamlbuild ];
+ buildInputs = [ cppo seq ];
propagatedBuildInputs = [ lwt react ];
diff --git a/pkgs/development/ocaml-modules/merlin_extend/default.nix b/pkgs/development/ocaml-modules/merlin_extend/default.nix
index 79b8b69bbb5..5bba1fc54ee 100644
--- a/pkgs/development/ocaml-modules/merlin_extend/default.nix
+++ b/pkgs/development/ocaml-modules/merlin_extend/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, buildOcaml, fetchFromGitHub, cppo }:
+{ stdenv, buildDunePackage, fetchFromGitHub, cppo }:
-buildOcaml rec {
- name = "merlin_extend";
- version = "0.3";
+buildDunePackage rec {
+ pname = "merlin-extend";
+ version = "0.4";
minimumSupportedOcamlVersion = "4.02";
src = fetchFromGitHub {
owner = "let-def";
repo = "merlin-extend";
- sha256 = "1z6hybcb7ry0bkzjd0r2dlcgjnhhxdsr06x3h03sj7h5fihsc7vd";
+ sha256 = "1dxiqmm7ry24gvw6p9n4mrz37mnq4s6m8blrccsv3rb8yq82acx9";
rev = "v${version}";
};
diff --git a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
index 38050bc09a1..23940ef1499 100644
--- a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
@@ -2,13 +2,13 @@
buildDunePackage rec {
pname = "ocaml-migrate-parsetree";
- version = "1.2.0";
+ version = "1.4.0";
src = fetchFromGitHub {
owner = "ocaml-ppx";
repo = pname;
rev = "v${version}";
- sha256 = "16kas19iwm4afijv3yxd250s08absabmdcb4yj57wc8r4fmzv5dm";
+ sha256 = "0sv1p4615l8gpbah4ya2c40yr6fbvahvv3ks7zhrsgcwcq2ljyr2";
};
propagatedBuildInputs = [ ppx_derivers result ];
diff --git a/pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix b/pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix
index 363b774aaeb..2f7fc14b8a7 100644
--- a/pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib, ocaml-migrate-parsetree }:
+{ stdenv, fetchFromGitHub, ocaml, buildDunePackage, findlib, ocaml-migrate-parsetree }:
-stdenv.mkDerivation rec {
- name = "ocaml${ocaml.version}-ppx_tools_versioned-${version}";
- version = "5.1";
+buildDunePackage rec {
+ pname = "ppx_tools_versioned";
+ version = "5.2.3";
src = fetchFromGitHub {
owner = "let-def";
repo = "ppx_tools_versioned";
rev = version;
- sha256 = "1c7kvca67qpyr4hiy492yik5x31lmkhyhy5wpl0l0fbx7fr7l624";
+ sha256 = "1hcmpnw26zf70a71r3d2c2c0mn8q084gdn1r36ynng6fv9hq6j0y";
};
buildInputs = [ ocaml findlib ];
diff --git a/pkgs/development/ocaml-modules/zed/default.nix b/pkgs/development/ocaml-modules/zed/default.nix
index d9dcf1a5385..2d6eeb8925b 100644
--- a/pkgs/development/ocaml-modules/zed/default.nix
+++ b/pkgs/development/ocaml-modules/zed/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, camomile, react, dune }:
+{ stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, camomile, react, dune, charInfo_width }:
let param =
if stdenv.lib.versionAtLeast ocaml.version "4.02" then
{
- version = "1.6";
- sha256 = "00hhxcjf3bj3w2qm8nzs9x6vrqkadf4i0277s5whzy2rmiknj63v";
+ version = "2.0.2";
+ sha256 = "11gwd744xppi4na09kqira66bjgv5hnavjdfdkjjq5h1g3ds9820";
buildInputs = [ dune ];
+ propagatedBuildInputs = [ charInfo_width ];
extra = {
buildPhase = "dune build -p zed";
inherit (dune) installPhase; };
@@ -19,16 +20,19 @@ let param =
stdenv.mkDerivation (rec {
inherit (param) version;
- name = "ocaml-zed-${version}";
+ pname = "zed";
+ name = "ocaml-${pname}-${version}";
- src = fetchzip {
- url = "https://github.com/diml/zed/archive/${version}.tar.gz";
+ src = fetchFromGitHub {
+ owner = "ocaml-community";
+ repo = pname;
+ rev = version;
inherit (param) sha256;
};
buildInputs = [ ocaml findlib ocamlbuild ] ++ param.buildInputs;
- propagatedBuildInputs = [ react camomile ];
+ propagatedBuildInputs = [ react camomile ] ++ param.propagatedBuildInputs;
meta = {
description = "Abstract engine for text edition in OCaml";
diff --git a/pkgs/development/tools/ocaml/utop/default.nix b/pkgs/development/tools/ocaml/utop/default.nix
index d9e563952ea..71baf469369 100644
--- a/pkgs/development/tools/ocaml/utop/default.nix
+++ b/pkgs/development/tools/ocaml/utop/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, dune
+{ stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, dune
, lambdaTerm, cppo, makeWrapper
}:
@@ -7,12 +7,14 @@ then throw "utop is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
- version = "2.3.0";
+ version = "2.4.0";
name = "utop-${version}";
- src = fetchurl {
- url = "https://github.com/diml/utop/archive/${version}.tar.gz";
- sha256 = "1g1xf19fhzwsikp33pv1wf6wb2qdc5y7dzqi46h8c4l850cwscjh";
+ src = fetchFromGitHub {
+ owner = "ocaml-community";
+ repo = "utop";
+ rev = version;
+ sha256 = "0sklms0crkmknlgjw2lrqbyslvfjg5mrc8cnz2ar98css4509qph";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 3b807c932f0..af6f8af29c8 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -7,6 +7,8 @@ let
(lib.makeScope newScope (self: with self;
{
inherit ocaml;
+ # camlp4 has not been updated for the 4.08 compiler yet
+ supportsCamlp4 = lib.versionOlder ocaml.version "4.08";
# Libs
@@ -126,6 +128,8 @@ let
cairo2 = callPackage ../development/ocaml-modules/cairo2 { };
+ charInfo_width = callPackage ../development/ocaml-modules/charInfo_width { };
+
checkseum = callPackage ../development/ocaml-modules/checkseum { };
cil = callPackage ../development/ocaml-modules/cil { };
@@ -377,10 +381,10 @@ let
lacaml = callPackage ../development/ocaml-modules/lacaml { };
lambdaTerm-1_6 = callPackage ../development/ocaml-modules/lambda-term/1.6.nix { lwt = lwt2; };
- lambdaTerm =
- if lib.versionOlder "4.02" ocaml.version
- then callPackage ../development/ocaml-modules/lambda-term { }
- else lambdaTerm-1_6;
+ lambdaTerm-2 = callPackage ../development/ocaml-modules/lambda-term { lwt = ocaml_lwt; };
+ lambdaTerm = if lib.versionOlder "4.02" ocaml.version
+ then lambdaTerm-2
+ else lambdaTerm-1_6;
linenoise = callPackage ../development/ocaml-modules/linenoise { };
@@ -444,6 +448,8 @@ let
mlgmpidl = callPackage ../development/ocaml-modules/mlgmpidl { };
+ mmap = callPackage ../development/ocaml-modules/mmap { };
+
mparser = callPackage ../development/ocaml-modules/mparser { };
mstruct = callPackage ../development/ocaml-modules/mstruct { };
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment