diff --git a/pkgs/by-name/libresoc-nmigen/bigfloat.nix b/pkgs/by-name/libresoc-nmigen/bigfloat.nix index 27044682a..e74ba18b2 100644 --- a/pkgs/by-name/libresoc-nmigen/bigfloat.nix +++ b/pkgs/by-name/libresoc-nmigen/bigfloat.nix @@ -1,10 +1,10 @@ { lib, - python39Packages, + python3Packages, fetchFromGitHub, mpfr, }: -python39Packages.buildPythonPackage rec { +python3Packages.buildPythonPackage rec { pname = "bigfloat"; version = "0.4.0"; pyproject = true; @@ -16,12 +16,12 @@ python39Packages.buildPythonPackage rec { hash = "sha256-HgbwA0YksF/LDiD8WrcQZKilU6J94zSkgIyR+UUf+do="; }; - build-system = with python39Packages; [ + build-system = with python3Packages; [ cython setuptools ]; - propagatedBuildInputs = [ mpfr ] ++ (with python39Packages; [ six ]); + propagatedBuildInputs = [ mpfr ] ++ (with python3Packages; [ six ]); meta = { description = "Arbitrary-precision correctly-rounded floating-point arithmetic, via MPFR."; diff --git a/pkgs/by-name/libresoc-nmigen/ieee754fpu.nix b/pkgs/by-name/libresoc-nmigen/ieee754fpu.nix index 3b0971ce6..8300b0862 100644 --- a/pkgs/by-name/libresoc-nmigen/ieee754fpu.nix +++ b/pkgs/by-name/libresoc-nmigen/ieee754fpu.nix @@ -1,6 +1,6 @@ { lib, - python39Packages, + python3Packages, fetchFromLibresoc, bigfloat, sfpy, @@ -9,9 +9,10 @@ nmigen, pytest-output-to-files, }: -python39Packages.buildPythonPackage rec { +python3Packages.buildPythonPackage rec { pname = "ieee754fpu"; - version = "unstable-2024-03-31"; + version = "0-unstable-2024-03-31"; + pyproject = true; src = fetchFromLibresoc { inherit pname; @@ -23,6 +24,10 @@ python39Packages.buildPythonPackage rec { touch ./src/ieee754/part{,_ass,_cat,_repl}/__init__.py ''; + build-system = with python3Packages; [ + setuptools + ]; + propagatedBuildInputs = [ nmutil ]; nativeCheckInputs = @@ -33,7 +38,7 @@ python39Packages.buildPythonPackage rec { sfpy bigfloat ] - ++ (with python39Packages; [ + ++ (with python3Packages; [ pytestCheckHook pytest-xdist ]); diff --git a/pkgs/by-name/libresoc-nmigen/libresoc-c4m-jtag.nix b/pkgs/by-name/libresoc-nmigen/libresoc-c4m-jtag.nix index b08b88ab8..f46e70265 100644 --- a/pkgs/by-name/libresoc-nmigen/libresoc-c4m-jtag.nix +++ b/pkgs/by-name/libresoc-nmigen/libresoc-c4m-jtag.nix @@ -1,15 +1,15 @@ { lib, fetchFromLibresoc, - python39, - python39Packages, + python3Packages, nmigen-soc, - nmigen, + modgrammar, }: -python39Packages.buildPythonPackage rec { +python3Packages.buildPythonPackage rec { pname = "c4m-jtag"; version = "unstable-2024-03-31"; realVersion = "0.3.dev243+g${lib.substring 0 7 src.rev}"; + pyproject = true; src = fetchFromLibresoc { inherit pname; @@ -21,8 +21,11 @@ python39Packages.buildPythonPackage rec { export SETUPTOOLS_SCM_PRETEND_VERSION="${realVersion}" ''; - nativeBuildInputs = with python39Packages; [ setuptools-scm ]; - propagatedBuildInputs = [ nmigen-soc ]; + nativeBuildInputs = with python3Packages; [ setuptools-scm ]; + propagatedBuildInputs = [ + nmigen-soc + modgrammar + ]; pythonImportsCheck = [ "c4m.nmigen.jtag.tap" ]; diff --git a/pkgs/by-name/libresoc-nmigen/libresoc-pyelftools.nix b/pkgs/by-name/libresoc-nmigen/libresoc-pyelftools.nix index 38b815e5a..1b87450b1 100644 --- a/pkgs/by-name/libresoc-nmigen/libresoc-pyelftools.nix +++ b/pkgs/by-name/libresoc-nmigen/libresoc-pyelftools.nix @@ -1,11 +1,12 @@ { lib, - python39Packages, + python3Packages, fetchFromGitHub, }: -python39Packages.pyelftools.overrideAttrs (_: rec { +python3Packages.pyelftools.overrideAttrs (_: rec { name = "pyelftools"; version = "unstable-2024-03-31"; + pyproject = true; # upstream Libre-SOC uses a mirror, # and while this would be best handled as github.com/Libre-SOC-mirrors copy, diff --git a/pkgs/by-name/libresoc-nmigen/mdis.nix b/pkgs/by-name/libresoc-nmigen/mdis.nix index 65f120cc6..c5f71337e 100644 --- a/pkgs/by-name/libresoc-nmigen/mdis.nix +++ b/pkgs/by-name/libresoc-nmigen/mdis.nix @@ -1,17 +1,20 @@ { lib, - python39Packages, + python3Packages, fetchPypi, }: -python39Packages.buildPythonPackage rec { +python3Packages.buildPythonPackage rec { pname = "mdis"; version = "0.5.1"; + pyproject = true; src = fetchPypi { inherit pname version; sha256 = "sha256-gvXtP8NO5XPDAs0XMbGknG79FscN/7lxqmF1kg3nhxg="; }; + build-system = with python3Packages; [ setuptools ]; + meta = { description = "Python dispatching library"; homepage = "https://git.libre-soc.org/?p=mdis.git"; diff --git a/pkgs/by-name/libresoc-nmigen/modgrammar.nix b/pkgs/by-name/libresoc-nmigen/modgrammar.nix new file mode 100644 index 000000000..c089eb590 --- /dev/null +++ b/pkgs/by-name/libresoc-nmigen/modgrammar.nix @@ -0,0 +1,32 @@ +{ + lib, + python3, + fetchPypi, +}: + +python3.pkgs.buildPythonApplication rec { + pname = "modgrammar"; + version = "0.10"; + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-uVfMnMW8xNo7B5XWPTPUIc8o2xhqyrdPg4R96DEfoJo="; + }; + + build-system = [ + python3.pkgs.setuptools + python3.pkgs.wheel + ]; + + pythonImportsCheck = [ + "modgrammar" + ]; + + meta = { + description = "Modular grammar-parsing engine"; + homepage = "https://pypi.org/project/modgrammar/"; + license = lib.licenses.bsd2; + mainProgram = "modgrammar"; + }; +} diff --git a/pkgs/by-name/libresoc-nmigen/nmigen-soc.nix b/pkgs/by-name/libresoc-nmigen/nmigen-soc.nix index 8e3b25d7b..851a6673e 100644 --- a/pkgs/by-name/libresoc-nmigen/nmigen-soc.nix +++ b/pkgs/by-name/libresoc-nmigen/nmigen-soc.nix @@ -1,14 +1,15 @@ { lib, - python39Packages, + python3Packages, fetchFromGitLab, nmigen, }: -python39Packages.buildPythonPackage rec { +python3Packages.buildPythonPackage rec { pname = "nmigen-soc"; version = "unstable-2024-03-31"; # python setup.py --version realVersion = "0.1.dev243+g${lib.substring 0 7 src.rev}"; + pyproject = true; # NOTE(jleightcap): libresoc's nmigen-soc fork has been renamed to https://github.com/amaranth-lang/amaranth-soc. # suffers from the same rename issue as the previous commit with renaming issue as nmigen/amaranth @@ -22,8 +23,8 @@ python39Packages.buildPythonPackage rec { rev = "fd2aaa336283cff2e46f489bf3897780cd217b8b"; # HEAD @ version date }; - nativeBuildInputs = with python39Packages; [ setuptools-scm ]; - propagatedBuildInputs = with python39Packages; [ + nativeBuildInputs = with python3Packages; [ setuptools-scm ]; + propagatedBuildInputs = with python3Packages; [ nmigen setuptools ]; @@ -32,7 +33,7 @@ python39Packages.buildPythonPackage rec { export SETUPTOOLS_SCM_PRETEND_VERSION="${realVersion}" ''; - nativeCheckInputs = with python39Packages; [ pytestCheckHook ]; + nativeCheckInputs = with python3Packages; [ pytestCheckHook ]; meta = { description = "Python toolbox for building complex digital hardware"; diff --git a/pkgs/by-name/libresoc-nmigen/nmigen.nix b/pkgs/by-name/libresoc-nmigen/nmigen.nix index 2a7cf8db5..5e3b6ae78 100644 --- a/pkgs/by-name/libresoc-nmigen/nmigen.nix +++ b/pkgs/by-name/libresoc-nmigen/nmigen.nix @@ -2,15 +2,16 @@ lib, fetchFromGitLab, git, - python39Packages, + python3Packages, symbiyosys, yices, yosys, }: -python39Packages.buildPythonPackage rec { +python3Packages.buildPythonPackage rec { pname = "nmigen"; version = "0-unstable-2022-09-27"; realVersion = "0.3.dev243+g${lib.substring 0 7 src.rev}"; + pyproject = true; # libresoc's nmigen fork has been renamed to https://github.com/amaranth-lang/amaranth # amaranth is packaged in nixpkgs but we can't just override a few of the attributes the way we did for pyelftools, @@ -31,11 +32,11 @@ python39Packages.buildPythonPackage rec { export SETUPTOOLS_SCM_PRETEND_VERSION="${realVersion}" ''; - nativeBuildInputs = [ git ] ++ (with python39Packages; [ setuptools-scm ]); + nativeBuildInputs = [ git ] ++ (with python3Packages; [ setuptools-scm ]); propagatedBuildInputs = [ yosys ] - ++ (with python39Packages; [ + ++ (with python3Packages; [ jinja2 pyvcd ]); @@ -44,7 +45,11 @@ python39Packages.buildPythonPackage rec { symbiyosys yices yosys - ] ++ (with python39Packages; [ pytestCheckHook ]); + ] ++ (with python3Packages; [ pytestCheckHook ]); + + pythonRelaxDeps = [ + "pyvcd" + ]; # TODO: upstream nixpkgs Amaranth package uses a patch for Python >3.8 compatibility in setuptools: # https://github.com/amaranth-lang/amaranth/commit/64771a065a280fa683c1e6692383bec4f59f20fa.patch diff --git a/pkgs/by-name/libresoc-nmigen/nmutil.nix b/pkgs/by-name/libresoc-nmigen/nmutil.nix index 53a645a83..bc45f3008 100644 --- a/pkgs/by-name/libresoc-nmigen/nmutil.nix +++ b/pkgs/by-name/libresoc-nmigen/nmutil.nix @@ -1,15 +1,16 @@ { lib, fetchFromLibresoc, - python39Packages, + python3Packages, symbiyosys, yices, nmigen, pytest-output-to-files, }: -python39Packages.buildPythonPackage { +python3Packages.buildPythonPackage { pname = "libresoc-nmutil"; # Libre-SOC's bespoke fork version = "0-unstable-2022-11-16"; + pyproject = true; src = fetchFromLibresoc { pname = "nmutil"; @@ -22,12 +23,16 @@ python39Packages.buildPythonPackage { sed -i "s/read_ilang/read_rtlil/g" build/lib/nmutil/*.py src/nmutil/*.py ''; + build-system = with python3Packages; [ + setuptools + ]; + propagatedNativeBuildInputs = [ symbiyosys yices ] - ++ (with python39Packages; [ + ++ (with python3Packages; [ pyvcd ]); @@ -37,7 +42,7 @@ python39Packages.buildPythonPackage { symbiyosys yices ] - ++ (with python39Packages; [ + ++ (with python3Packages; [ pytestCheckHook pytest-xdist pytest-output-to-files diff --git a/pkgs/by-name/libresoc-nmigen/openpower-isa.nix b/pkgs/by-name/libresoc-nmigen/openpower-isa.nix index 55e9ddd9e..93bc87f3f 100644 --- a/pkgs/by-name/libresoc-nmigen/openpower-isa.nix +++ b/pkgs/by-name/libresoc-nmigen/openpower-isa.nix @@ -1,6 +1,6 @@ { lib, - python39, + python3, fetchFromLibresoc, pkgsCross, writeShellApplication, @@ -12,13 +12,14 @@ mdis, }: let - python = python39; - pythonPackages = python39.pkgs; + python = python3; + pythonPackages = python3.pkgs; in pythonPackages.buildPythonPackage rec { name = "libresoc-openpower-isa"; pname = "openpower-isa"; - version = "unstable-2024-03-31"; + version = "0-unstable-2024-03-31"; + pyproject = true; src = fetchFromLibresoc { inherit pname; @@ -50,6 +51,10 @@ pythonPackages.buildPythonPackage rec { ./prefixed-openpower-isa-tools.patch ]; + build-system = with pythonPackages; [ + setuptools + ]; + # Native is the build machine architecture (e.g. x86_64 linux) # This will run a python emulator of the target architecture, which is PowerPC for this project # The assembler has to run on native but target PowerPC assembly @@ -69,6 +74,10 @@ pythonPackages.buildPythonPackage rec { pygdbmi ]); + pythonRelaxDeps = [ + "pygdbmi" + ]; + # TODO: potential upstream work postInstall = '' diff --git a/pkgs/by-name/libresoc-nmigen/package.nix b/pkgs/by-name/libresoc-nmigen/package.nix index dcba305c5..438002f49 100644 --- a/pkgs/by-name/libresoc-nmigen/package.nix +++ b/pkgs/by-name/libresoc-nmigen/package.nix @@ -1,7 +1,7 @@ { newScope, fetchFromGitHub, - python39, + python3, }: let python = @@ -28,21 +28,21 @@ let }); }; in - python39.override { + python3.override { inherit packageOverrides; self = python; }; callPackage = newScope { - python39 = python; - python39Packages = python.pkgs; + python3 = python; + python3Packages = python.pkgs; }; lib = callPackage ./lib.nix { }; inherit (lib) fetchFromLibresoc; libresoc-c4m-jtag = callPackage ./libresoc-c4m-jtag.nix { - inherit fetchFromLibresoc nmigen nmigen-soc; + inherit fetchFromLibresoc nmigen-soc modgrammar; }; libresoc-ieee754fpu = callPackage ./ieee754fpu.nix { inherit @@ -75,6 +75,7 @@ let inherit fetchFromLibresoc; }; pytest-output-to-files = callPackage ./pytest-output-to-files.nix { inherit fetchFromLibresoc; }; + modgrammar = callPackage ./modgrammar.nix { }; in callPackage ./soc.nix { inherit diff --git a/pkgs/by-name/libresoc-nmigen/power-instruction-analyzer.nix b/pkgs/by-name/libresoc-nmigen/power-instruction-analyzer.nix index 6606f67a7..d0e440caf 100644 --- a/pkgs/by-name/libresoc-nmigen/power-instruction-analyzer.nix +++ b/pkgs/by-name/libresoc-nmigen/power-instruction-analyzer.nix @@ -1,13 +1,13 @@ { lib, - python39Packages, + python3Packages, rustPlatform, fetchFromLibresoc, }: -python39Packages.buildPythonPackage rec { +python3Packages.buildPythonPackage rec { pname = "power-instruction-analyzer"; version = "0.2.0"; - format = "pyproject"; + pyproject = true; src = fetchFromLibresoc { inherit pname; diff --git a/pkgs/by-name/libresoc-nmigen/pytest-output-to-files.nix b/pkgs/by-name/libresoc-nmigen/pytest-output-to-files.nix index 8e2541779..7cf78a0c6 100644 --- a/pkgs/by-name/libresoc-nmigen/pytest-output-to-files.nix +++ b/pkgs/by-name/libresoc-nmigen/pytest-output-to-files.nix @@ -1,11 +1,12 @@ { lib, fetchFromLibresoc, - python39Packages, + python3Packages, }: -python39Packages.buildPythonPackage rec { +python3Packages.buildPythonPackage rec { pname = "pytest-output-to-files"; version = "unstable-2024-03-31"; + pyproject = true; src = fetchFromLibresoc { inherit pname; @@ -13,7 +14,8 @@ python39Packages.buildPythonPackage rec { hash = "sha256-ES8zZ9s6wGcqw60NoN4tZf/Dq/sBvl+UDYrXuOgfMxI="; }; - nativeCheckInputs = with python39Packages; [ pytestCheckHook ]; + build-system = with python3Packages; [ setuptools ]; + nativeCheckInputs = with python3Packages; [ pytestCheckHook ]; meta = { description = "A pytest plugin that shortens test output with the full output stored in files"; diff --git a/pkgs/by-name/libresoc-nmigen/sfpy.nix b/pkgs/by-name/libresoc-nmigen/sfpy.nix index d958de46a..3ce5f5d20 100644 --- a/pkgs/by-name/libresoc-nmigen/sfpy.nix +++ b/pkgs/by-name/libresoc-nmigen/sfpy.nix @@ -1,9 +1,9 @@ { lib, - python39Packages, + python3Packages, fetchFromGitHub, }: -python39Packages.buildPythonPackage rec { +python3Packages.buildPythonPackage rec { pname = "sfpy"; version = "0.6.0"; pyproject = true; @@ -21,7 +21,7 @@ python39Packages.buildPythonPackage rec { --replace-fail "make pic" "make" ''; - build-system = with python39Packages; [ + build-system = with python3Packages; [ cython_0 setuptools ]; diff --git a/pkgs/by-name/libresoc-nmigen/soc.nix b/pkgs/by-name/libresoc-nmigen/soc.nix index deaf45704..7b675d160 100644 --- a/pkgs/by-name/libresoc-nmigen/soc.nix +++ b/pkgs/by-name/libresoc-nmigen/soc.nix @@ -1,6 +1,6 @@ { lib, - python39Packages, + python3Packages, fetchFromLibresoc, yosys, libresoc-c4m-jtag, @@ -10,10 +10,11 @@ power-instruction-analyzer, pytest-output-to-files, }: -python39Packages.buildPythonPackage rec { +python3Packages.buildPythonPackage rec { name = "soc"; pname = name; version = "unstable-2024-03-31"; + pyproject = true; src = fetchFromLibresoc { inherit pname; @@ -34,14 +35,14 @@ python39Packages.buildPythonPackage rec { libresoc-openpower-isa nmigen-soc yosys - ] ++ (with python39Packages; [ cached-property ]); + ] ++ (with python3Packages; [ cached-property ]); nativeCheckInputs = [ power-instruction-analyzer pytest-output-to-files ] - ++ (with python39Packages; [ + ++ (with python3Packages; [ pytest-xdist pytestCheckHook ]); diff --git a/pkgs/by-name/libresoc-verilog/pinmux.nix b/pkgs/by-name/libresoc-verilog/pinmux.nix index 1fbf9b38b..fee9bd301 100644 --- a/pkgs/by-name/libresoc-verilog/pinmux.nix +++ b/pkgs/by-name/libresoc-verilog/pinmux.nix @@ -1,7 +1,7 @@ { stdenv, fetchFromLibresoc, - python39, + python3, }: stdenv.mkDerivation rec { name = "libresoc-pinmux"; @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { hash = "sha256-Tux2RvcRmlpXMsHwve/+5rOyBRSThg9MVW2NGP3ZJxs="; }; - nativeBuildInputs = [ python39 ]; + nativeBuildInputs = [ python3 ]; buildPhase = '' runHook preBuild