1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, click
5, colorlog
6, gitpython
7, pluggy
8, pyelftools
9, pytablewriter
10, pytestCheckHook
11, pyyaml
12, ruamel-yaml
13, pythonOlder
14}:
15
16buildPythonPackage rec {
17 pname = "riscv-isac";
18 version = "0.17.0";
19 format = "setuptools";
20
21 disabled = pythonOlder "3.7";
22
23 src = fetchFromGitHub {
24 owner = "riscv-software-src";
25 repo = pname;
26 rev = "refs/tags/${version}";
27 hash = "sha256-I0RsvSCrSlNGVj8z+WUQx6vbdNkKCRyMFvNx+0mTBAE=";
28 };
29
30 postPatch = ''
31 substituteInPlace riscv_isac/requirements.txt \
32 --replace "pyelftools==0.26" "pyelftools" \
33 --replace "pytest" ""
34 '';
35
36 propagatedBuildInputs = [
37 click
38 colorlog
39 gitpython
40 pluggy
41 pyelftools
42 pytablewriter
43 pyyaml
44 ruamel-yaml
45 ];
46
47 nativeCheckInputs = [
48 pytestCheckHook
49 ];
50
51 pythonImportsCheck = [
52 "riscv_isac"
53 ];
54
55 meta = with lib; {
56 description = "An ISA coverage extraction tool";
57 homepage = "https://github.com/riscv/riscv-isac";
58 changelog = "https://github.com/riscv-software-src/riscv-isac/blob/${version}/CHANGELOG.md";
59 license = licenses.bsd3;
60 maintainers = with maintainers; [ genericnerdyusername ];
61 };
62}