diff --git a/pkgs/development/tools/analysis/ikos/default.nix b/pkgs/development/tools/analysis/ikos/default.nix index 50f4f552e0ff..40f9a9e40b33 100644 --- a/pkgs/development/tools/analysis/ikos/default.nix +++ b/pkgs/development/tools/analysis/ikos/default.nix @@ -4,26 +4,28 @@ }: let - python = python3.withPackages (ps: with ps; [ + inherit (python3.pkgs) + setuptools + wheel + build + installer + wrapPython pygments - ]); + ; in stdenv.mkDerivation rec { pname = "ikos"; - version = "3.1"; + version = "3.2"; src = fetchFromGitHub { owner = "NASA-SW-VnV"; repo = "ikos"; rev = "v${version}"; - hash = "sha256-scaFkUhCkIi41iR6CGPbEndzXkgqTKMb3PDNvhgVbCE="; + hash = "sha256-zWWfmjYgqhAztGivAJwZ4+yRrAHxgU1CF1Y7vVr95UA="; }; - patches = [ (fetchpatch { - url = "https://github.com/NASA-SW-VnV/ikos/commit/2e647432427b3f0dbb639e0371d976ab6406f290.patch"; - hash = "sha256-ffzjlqEp4qp76Kwl5zpyQlg/xUMt8aLDSSP4XA4ndS8="; - }) + patches = [ # Fix build with GCC 13 # https://github.com/NASA-SW-VnV/ikos/pull/262 (fetchpatch { @@ -31,15 +33,35 @@ stdenv.mkDerivation rec { url = "https://github.com/NASA-SW-VnV/ikos/commit/73c816641fb9780f0d3b5e448510363a3cf21ce2.patch"; hash = "sha256-bkeSAtxrL+z+6QNiGOWSg7kN8XiZqMxlJiu5Dquhca0="; }) + # Fix an error in ikos-view; Pygments>=2.12 no longer passes outfile to wrap. + ./formatter-wrap.patch ]; - nativeBuildInputs = [ cmake ]; - buildInputs = [ boost tbb gmp clang llvm sqlite python + nativeBuildInputs = [ cmake setuptools wheel build installer wrapPython ]; + buildInputs = [ boost tbb gmp clang llvm sqlite python3 ocamlPackages.apron mpfr ppl doxygen graphviz ]; + propagatedBuildInputs = [ + pygments + ]; - cmakeFlags = [ "-DAPRON_ROOT=${ocamlPackages.apron}" ]; + cmakeFlags = [ + "-DAPRON_ROOT=${ocamlPackages.apron}" + "-DINSTALL_PYTHON_VIRTUALENV=off" + "-DPYTHON_VENV_EXECUTABLE=${python3}/bin/python" + ]; - postBuild = "make doc"; + postBuild = '' + make doc + ${python3}/bin/python -m build --no-isolation --outdir dist/ --wheel analyzer/python + ''; + + postInstall = '' + ${python3}/bin/python -m installer --prefix "$out" dist/*.whl + ''; + + postFixup = '' + wrapPythonPrograms + ''; meta = with lib; { homepage = "https://github.com/NASA-SW-VnV/ikos"; diff --git a/pkgs/development/tools/analysis/ikos/formatter-wrap.patch b/pkgs/development/tools/analysis/ikos/formatter-wrap.patch new file mode 100644 index 000000000000..ee4edec70eba --- /dev/null +++ b/pkgs/development/tools/analysis/ikos/formatter-wrap.patch @@ -0,0 +1,13 @@ +diff --git a/analyzer/python/ikos/view.py b/analyzer/python/ikos/view.py +index 4e9ed5d..6643db8 100644 +--- a/analyzer/python/ikos/view.py ++++ b/analyzer/python/ikos/view.py +@@ -422,7 +422,7 @@ class Formatter(HtmlFormatter): + self.call_contexts = {} + self.checks = {} + +- def wrap(self, source, outfile): ++ def wrap(self, source): + return self._wrap_code(source) + + def _wrap_code(self, source):