From 5b57a7da123715b550d2ede8ec22ae1bde801a7d Mon Sep 17 00:00:00 2001 From: redianthus Date: Thu, 4 Dec 2025 18:23:21 +0100 Subject: [PATCH 1/3] ocamlPackages.frama-c: init at 31.0 --- .../ocaml-modules/frama-c/default.nix | 43 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 4 ++ 2 files changed, 47 insertions(+) create mode 100644 pkgs/development/ocaml-modules/frama-c/default.nix diff --git a/pkgs/development/ocaml-modules/frama-c/default.nix b/pkgs/development/ocaml-modules/frama-c/default.nix new file mode 100644 index 000000000000..2c063384748c --- /dev/null +++ b/pkgs/development/ocaml-modules/frama-c/default.nix @@ -0,0 +1,43 @@ +{ + stdenv, + pkgs, + ocaml, + findlib, + framac, + camlzip, + ocamlgraph, + menhirLib, + ppx_deriving, + yaml, + yojson, + zarith, +}: + +stdenv.mkDerivation { + pname = "ocaml${ocaml.version}-frama-c"; + inherit (framac) version meta; + + dontUnpack = true; + + buildInputs = [ findlib ]; + + propagatedBuildInputs = [ + camlzip + menhirLib + ocamlgraph + ppx_deriving + yaml + yojson + zarith + ]; + + installPhase = '' + runHook preInstall + mkdir -p $OCAMLFIND_DESTDIR + for p in ${framac}/lib/* + do + ln -s $p $OCAMLFIND_DESTDIR/ + done + runHook postInstall + ''; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index f109780364a2..39198db6626b 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -649,6 +649,10 @@ let fpath = callPackage ../development/ocaml-modules/fpath { }; + frama-c = callPackage ../development/ocaml-modules/frama-c { + framac = pkgs.framac.override { ocamlPackages = self; }; + }; + frei0r = callPackage ../development/ocaml-modules/frei0r { inherit (pkgs) frei0r; }; From 99a8fbc878a88a4ab485a0401021180ffdc157ed Mon Sep 17 00:00:00 2001 From: redianthus Date: Thu, 4 Dec 2025 16:41:57 +0100 Subject: [PATCH 2/3] ocamlPackages.frama-c-lannotate: init at 0.2.4 --- .../frama-c-lannotate/default.nix | 29 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/development/ocaml-modules/frama-c-lannotate/default.nix diff --git a/pkgs/development/ocaml-modules/frama-c-lannotate/default.nix b/pkgs/development/ocaml-modules/frama-c-lannotate/default.nix new file mode 100644 index 000000000000..2c3ddf58b9c5 --- /dev/null +++ b/pkgs/development/ocaml-modules/frama-c-lannotate/default.nix @@ -0,0 +1,29 @@ +{ + lib, + buildDunePackage, + dune-site, + fetchzip, + frama-c, +}: + +buildDunePackage (finalAttrs: { + pname = "frama-c-lannotate"; + version = "0.2.4"; + + src = fetchzip { + url = "https://git.frama-c.com/pub/ltest/lannotate/-/archive/${finalAttrs.version}/lannotate-${finalAttrs.version}.tar.bz2"; + hash = "sha256-JoD2M3R3/DcUMt33QOvwqHg4eToCgjB8riKc09TWdyc="; + }; + + propagatedBuildInputs = [ + dune-site + frama-c + ]; + + meta = { + description = "Lannotate plugin of Frama-C, part of the LTest suite"; + homepage = "https://frama-c.com/fc-plugins/ltest.html"; + license = lib.licenses.lgpl2; + maintainers = with lib.maintainers; [ redianthus ]; + }; +}) diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 39198db6626b..68905c008d2d 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -653,6 +653,8 @@ let framac = pkgs.framac.override { ocamlPackages = self; }; }; + frama-c-lannotate = callPackage ../development/ocaml-modules/frama-c-lannotate { }; + frei0r = callPackage ../development/ocaml-modules/frei0r { inherit (pkgs) frei0r; }; From 11d16855088cb24550e6c3a0feebfff3000cb42c Mon Sep 17 00:00:00 2001 From: redianthus Date: Thu, 11 Dec 2025 16:19:15 +0100 Subject: [PATCH 3/3] pkgs.framac: add missing camlzip build input --- pkgs/by-name/fr/framac/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/fr/framac/package.nix b/pkgs/by-name/fr/framac/package.nix index b3ef7520555c..62d18a181d05 100644 --- a/pkgs/by-name/fr/framac/package.nix +++ b/pkgs/by-name/fr/framac/package.nix @@ -73,6 +73,7 @@ stdenv.mkDerivation rec { ]); buildInputs = with ocamlPackages; [ + camlzip dune-site dune-configurator ocamlgraph