benchexec: init at 3.21

Co-authored-by: h7x4 <h7x4@nani.wtf>

Changed files
+62
pkgs
by-name
be
benchexec
+62
pkgs/by-name/be/benchexec/package.nix
···
+
{ lib
+
, fetchFromGitHub
+
, python3
+
, libseccomp
+
, nixosTests
+
, testers
+
, benchexec
+
}:
+
python3.pkgs.buildPythonApplication rec {
+
pname = "benchexec";
+
version = "3.21";
+
+
src = fetchFromGitHub {
+
owner = "sosy-lab";
+
repo = "benchexec";
+
rev = version;
+
hash = "sha256-bE3brmmLHZQakDKvd47I1hm9Dcsu6DrSeJyjWWtEZWI=";
+
};
+
+
pyproject = true;
+
+
nativeBuildInputs = with python3.pkgs; [ setuptools ];
+
+
# NOTE: CPU Energy Meter is not added,
+
# because BenchExec should call the wrapper configured
+
# via `security.wrappers.cpu-energy-meter`
+
# in `programs.cpu-energy-meter`, which will have the required
+
# capabilities to access MSR.
+
# If we add `cpu-energy-meter` here, BenchExec will instead call an executable
+
# without `CAP_SYS_RAWIO` and fail.
+
propagatedBuildInputs = with python3.pkgs; [
+
coloredlogs
+
lxml
+
pystemd
+
pyyaml
+
];
+
+
makeWrapperArgs = [ "--set-default LIBSECCOMP ${lib.getLib libseccomp}/lib/libseccomp.so" ];
+
+
passthru.tests =
+
let
+
testVersion = result: testers.testVersion {
+
command = "${result} --version";
+
package = benchexec;
+
};
+
in
+
{
+
nixos = nixosTests.benchexec;
+
benchexec-version = testVersion "benchexec";
+
runexec-version = testVersion "runexec";
+
table-generator-version = testVersion "table-generator";
+
containerexec-version = testVersion "containerexec";
+
};
+
+
meta = with lib; {
+
description = "A Framework for Reliable Benchmarking and Resource Measurement.";
+
homepage = "https://github.com/sosy-lab/benchexec";
+
maintainers = with maintainers; [ lorenzleutgeb ];
+
license = licenses.asl20;
+
mainProgram = "benchexec";
+
};
+
}