diff --git a/nix/dune-dyn.nix b/nix/dune-dyn.nix new file mode 100644 index 0000000000000000000000000000000000000000..663d90c0a8bfb649c3e3a074d8376a6336370ed1 --- /dev/null +++ b/nix/dune-dyn.nix @@ -0,0 +1,20 @@ +{ lib, buildDunePackage, dune_2, dune-ordering, pp }: + +buildDunePackage rec { + pname = "dyn"; + + useDune2 = true; + + inherit (dune_2) src version patches; + buildInputs = dune_2.buildInputs ++ [ dune-ordering pp ] ; + + minimumOCamlVersion = "4.08"; + + dontAddPrefix = true; + + meta = with lib; { + description = "Private libraries of Dune"; + maintainers = []; + license = licenses.mit; + }; +} diff --git a/nix/dune-ordering.nix b/nix/dune-ordering.nix new file mode 100644 index 0000000000000000000000000000000000000000..5c5ee063667a4d8cd03833a7d5e77ec1f72990eb --- /dev/null +++ b/nix/dune-ordering.nix @@ -0,0 +1,19 @@ +{ lib, buildDunePackage, dune_2 }: + +buildDunePackage rec { + pname = "ordering"; + + useDune2 = true; + + inherit (dune_2) src version patches; + + minimumOCamlVersion = "4.08"; + + dontAddPrefix = true; + + meta = with lib; { + description = "Private libraries of Dune"; + maintainers = []; + license = licenses.mit; + }; +} diff --git a/nix/dune-private-libs.nix b/nix/dune-private-libs.nix new file mode 100644 index 0000000000000000000000000000000000000000..57ab7265ec028a066cb039771caa62240b3d34ec --- /dev/null +++ b/nix/dune-private-libs.nix @@ -0,0 +1,20 @@ +{ lib, buildDunePackage, dune_2, csexp, pp, dune-dyn, dune-stdune, dune-ordering }: + +buildDunePackage rec { + pname = "dune-private-libs"; + + useDune2 = true; + + inherit (dune_2) src version patches; + buildInputs = dune_2.buildInputs ++ [ dune-stdune dune-dyn dune-ordering csexp pp ] ; + + minimumOCamlVersion = "4.08"; + + dontAddPrefix = true; + + meta = with lib; { + description = "Private libraries of Dune"; + maintainers = [ maintainers.marsam ]; + license = licenses.mit; + }; +} diff --git a/nix/dune-stdune.nix b/nix/dune-stdune.nix new file mode 100644 index 0000000000000000000000000000000000000000..f203355847fe47ba2cfddd4e86cb67aa4ebbb8c7 --- /dev/null +++ b/nix/dune-stdune.nix @@ -0,0 +1,20 @@ +{ lib, buildDunePackage, dune_2, dune-ordering, dune-dyn, csexp, pp }: + +buildDunePackage rec { + pname = "stdune"; + + useDune2 = true; + + inherit (dune_2) src version patches; + buildInputs = dune_2.buildInputs ++ [ dune-ordering dune-dyn csexp pp ] ; + + minimumOCamlVersion = "4.08"; + + dontAddPrefix = true; + + meta = with lib; { + description = "Private libraries of Dune"; + maintainers = []; + license = licenses.mit; + }; +} diff --git a/nix/frama-c.nix b/nix/frama-c.nix index b2c05af125643818bbe1720534998aa3b30fc347..c03f56160248c9963e1554b9548c4be314d4a109 100644 --- a/nix/frama-c.nix +++ b/nix/frama-c.nix @@ -11,11 +11,25 @@ , autoconf , findlib # Frama-C build +, apron +, camlzip +, dune_3 +, dune-site-3 , graphviz +, lablgtk3 +, lablgtk3-sourceview3 , ltl2ba -, ocamlPackages +, menhirLib +, mlgmpidl +, ocaml +, ocamlgraph +, ppx_deriving +, ppx_deriving_yojson +, yojson , which , why3 +, zarith +, zmq # Frama-C extra (other targets do not reconfigure) , dos2unix , doxygen @@ -37,11 +51,11 @@ stdenv.mkDerivation rec { wrapGAppsHook ]; - buildInputs = with ocamlPackages; [ + buildInputs = [ apron camlzip dune_3 - dune-site + dune-site-3 findlib graphviz lablgtk3 diff --git a/nix/pkgs.nix b/nix/pkgs.nix index 46ce47e4a8d02653f768db37cd34e3835380861d..410524ec23f89f3a2b943b15f4d0969a90d037d5 100644 --- a/nix/pkgs.nix +++ b/nix/pkgs.nix @@ -8,6 +8,43 @@ let ocp-indent = oself.callPackage ./ocp-indent.nix {}; psmt2-frontend = oself.callPackage ./psmt2-frontend.nix {}; why3 = oself.callPackage ./why3.nix {}; + # Nix + Dune 3 + dune-build-3 = + osuper.buildDunePackage.override { + dune_2 = oself.dune_3; + }; + dune-ordering-3 = + oself.callPackage ./dune-ordering.nix { + dune_2 = oself.dune_3; + buildDunePackage = oself.dune-build-3; + }; + dune-dyn-3 = + oself.callPackage ./dune-dyn.nix { + dune_2 = oself.dune_3; + buildDunePackage = oself.dune-build-3; + dune-ordering = oself.dune-ordering-3; + }; + dune-stdune-3 = + oself.callPackage ./dune-stdune.nix { + dune_2 = oself.dune_3; + buildDunePackage = oself.dune-build-3; + dune-ordering = oself.dune-ordering-3; + dune-dyn = oself.dune-dyn-3; + }; + dune-private-libs-3 = + oself.callPackage ./dune-private-libs.nix { + dune_2 = oself.dune_3; + buildDunePackage = oself.dune-build-3; + dune-ordering = oself.dune-ordering-3; + dune-stdune = oself.dune-stdune-3; + dune-dyn = oself.dune-dyn-3; + }; + dune-site-3 = + osuper.dune-site.override { + dune_2 = oself.dune_3; + buildDunePackage = oself.dune-build-3; + dune-private-libs = oself.dune-private-libs-3; + }; # Builds frama-c = oself.callPackage ./frama-c.nix {}; lint = oself.callPackage ./lint.nix {}; diff --git a/nix/sources.json b/nix/sources.json index 660c236a9c0ad1dcda3a808457d648908b31b8d3..7611438ae2e8127ecdfeb51b0aaefddf7b9dceb4 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -29,10 +29,10 @@ "homepage": "https://github.com/NixOS/nixpkgs", "owner": "NixOS", "repo": "nixpkgs", - "rev": "18bd82edcc752d6a0e6cce1401ba0c81353a03ca", - "sha256": "0wcc8y7c055hlx20m8x0ap6kqalfrfiw2addvlnvxlw69299rci0", + "rev": "73ad5f9e147c0d2a2061f1d4bd91e05078dc0b58", + "sha256": "01j7nhxbb2kjw38yk4hkjkkbmz50g3br7fgvad6b1cjpdvfsllds", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/18bd82edcc752d6a0e6cce1401ba0c81353a03ca.tar.gz", + "url": "https://github.com/NixOS/nixpkgs/archive/73ad5f9e147c0d2a2061f1d4bd91e05078dc0b58.tar.gz", "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" }, "why3": {