Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 buildPythonPackage, 4 pythonOlder, 5 fetchFromGitHub, 6 pdm-backend, 7 jschon, 8 pyvcd, 9 jinja2, 10 importlib-resources, 11 importlib-metadata, 12 git, 13 14 # for tests 15 pytestCheckHook, 16 symbiyosys, 17 yices, 18 yosys, 19}: 20 21buildPythonPackage rec { 22 pname = "amaranth"; 23 format = "pyproject"; 24 version = "0.5.1"; 25 disabled = pythonOlder "3.8"; 26 27 src = fetchFromGitHub { 28 owner = "amaranth-lang"; 29 repo = "amaranth"; 30 rev = "refs/tags/v${version}"; 31 hash = "sha256-76wuxWz6RikFFJH+5kte57GcVhusJKtcMo5M/2U+Cl8="; 32 }; 33 34 nativeBuildInputs = [ 35 git 36 pdm-backend 37 ]; 38 39 dependencies = 40 [ 41 jschon 42 jinja2 43 pyvcd 44 ] 45 ++ lib.optional (pythonOlder "3.9") importlib-resources 46 ++ lib.optional (pythonOlder "3.8") importlib-metadata; 47 48 nativeCheckInputs = [ 49 pytestCheckHook 50 symbiyosys 51 yices 52 yosys 53 ]; 54 55 pythonImportsCheck = [ "amaranth" ]; 56 57 meta = with lib; { 58 description = "Modern hardware definition language and toolchain based on Python"; 59 mainProgram = "amaranth-rpc"; 60 homepage = "https://amaranth-lang.org/docs/amaranth"; 61 license = licenses.bsd2; 62 maintainers = with maintainers; [ 63 thoughtpolice 64 pbsds 65 ]; 66 }; 67}