Files
nixpkgs/pkgs/by-name/ow/owi/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

95 lines
1.9 KiB
Nix

{
lib,
ocaml-ng,
fetchFromGitHub,
llvmPackages,
rustc,
zig,
makeWrapper,
unstableGitUpdater,
nixosTests,
}:
let
ocamlPackages = ocaml-ng.ocamlPackages_5_2;
in
ocamlPackages.buildDunePackage {
pname = "owi";
version = "0.2-unstable-2025-09-25";
src = fetchFromGitHub {
owner = "ocamlpro";
repo = "owi";
rev = "3c5ea7f07bf0c530286870bfb37010e44b75677d";
fetchSubmodules = true;
hash = "sha256-3YGNm60ro9DzjxnjRpE2b1fde4tCxo+y8DM8nS73Hwc=";
};
nativeBuildInputs = with ocamlPackages; [
findlib
menhir
# unwrapped because wrapped tries to enforce a target and the build
# script wants to do its own thing
llvmPackages.clang-unwrapped
# lld + llc isn't included in unwrapped, so we pull it in here
llvmPackages.bintools-unwrapped
makeWrapper
rustc
zig
];
buildInputs = with ocamlPackages; [
bos
cmdliner
digestif
dolmen_type
dune-build-info
dune-site
hc
integers
menhirLib
ocaml_intrinsics
patricia-tree
prelude
processor
scfg
sedlex
smtml
uutf
xmlm
yojson
z3
zarith
];
postInstall = ''
wrapProgram $out/bin/owi \
--prefix PATH : ${
lib.makeBinPath [
llvmPackages.bintools-unwrapped
llvmPackages.clang-unwrapped
rustc
zig
]
}
'';
doCheck = false;
passthru = {
updateScript = unstableGitUpdater { };
tests = { inherit (nixosTests) owi; };
};
meta = {
description = "Symbolic execution for Wasm, C, C++, Rust and Zig";
homepage = "https://ocamlpro.github.io/owi/";
downloadPage = "https://github.com/OCamlPro/owi";
license = lib.licenses.agpl3Plus;
maintainers = [ lib.maintainers.ethancedwards8 ];
teams = with lib.teams; [ ngi ];
mainProgram = "owi";
badPlatforms = lib.platforms.darwin;
};
}