65 lines
1.5 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
bison,
diffutils,
flex,
python3,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "check-sieve";
version = "0.11";
src = fetchFromGitHub {
owner = "dburkart";
repo = "check-sieve";
tag = "check-sieve-${version}";
hash = "sha256-vmfHXjcZ5J/+kO3/a0p8krLOuC67+q8SxcPJgW+UaTw=";
};
nativeBuildInputs = [
bison
flex
];
nativeCheckInputs = [
(python3.withPackages (p: [ p.setuptools ]))
];
# https://github.com/dburkart/check-sieve/issues/67
# Remove after the next (>0.10) release
env.NIX_CFLAGS_COMPILE = "-Wno-error=unused-result";
installPhase = ''
runHook preInstall
install -Dm755 check-sieve -t $out/bin
runHook postInstall
'';
preCheck = ''
substituteInPlace test/AST/util.py \
--replace-fail "/usr/bin/diff" "${diffutils}/bin/diff"
# Disable flaky tests: https://github.com/dburkart/check-sieve/issues/68
# Remove after the next (>0.10) release
rm -rf test/{6785,7352}
'';
doCheck = true;
passthru.updateScript = nix-update-script {
extraArgs = [ "--version-regex=check-sieve-(.*)" ];
};
meta = {
description = "Syntax checker for mail sieves";
mainProgram = "check-sieve";
homepage = "https://github.com/dburkart/check-sieve";
changelog = "https://github.com/dburkart/check-sieve/blob/${src.tag}/ChangeLog";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ eilvelia ];
};
}