diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 3ef847be6d1f2a2..39579e5ac7d30e9 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5130,6 +5130,16 @@ githubId = 313929; name = "Gabriel Ebner"; }; + genericnerdyusername = { + name = "GenericNerdyUsername"; + email = "genericnerdyusername@proton.me"; + + github = "GenericNerdyUsername"; + githubId = 111183546; + keys = [{ + fingerprint = "58CE D4BE 6B10 149E DA80 A990 2F48 6356 A4CB 30F3"; + }]; + }; genofire = { name = "genofire"; email = "geno+dev@fireorbit.de"; diff --git a/pkgs/applications/virtualization/sail-riscv/default.nix b/pkgs/applications/virtualization/sail-riscv/default.nix new file mode 100644 index 000000000000000..dd80c9dc4152269 --- /dev/null +++ b/pkgs/applications/virtualization/sail-riscv/default.nix @@ -0,0 +1,47 @@ +{ stdenv +, fetchFromGitHub + +, arch + +, ocamlPackages +, ncurses +, ocaml +, zlib +, z3 +}: + + +stdenv.mkDerivation rec { + pname = "sail-riscv"; + version = "0.5"; + + nativeBuildInputs = with ocamlPackages; [ sail ocamlbuild findlib ncurses ocaml zlib.dev z3 ]; + + src = fetchFromGitHub { + owner = "riscv"; + repo = pname; + rev = version; + hash = "sha256-7PZNNUMaCZEBf0lOCqkquewRgZPooBOjIbGF7JlLnEo="; + }; + + ARCH = arch; + + outputs = [ "out" "ocaml_emu" "isabelle_model" "coq_model" "hol4_model" ]; + + preConfigure = "sed 's/^SAIL:=$(/SAIL:=sail #/' -i Makefile"; + + SAIL_DIR = "${ocamlPackages.sail}/share/sail"; + SAIL = "sail"; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + cp c_emulator/riscv_sim_${arch} $out/bin + mkdir -p $ocaml_emu/bin + cp ocaml_emulator/riscv_ocaml_sim_${arch} $ocaml_emu/bin + cp -r generated_definitions/coq/ $coq_model + cp -r generated_definitions/isabelle/ $isabelle_model + cp -r generated_definitions/hol4/ $hol4_model + runHook postInstall + ''; +} diff --git a/pkgs/development/compilers/riscv-gnu-toolchain/default.nix b/pkgs/development/compilers/riscv-gnu-toolchain/default.nix new file mode 100644 index 000000000000000..e3d8d4b1bcc4d85 --- /dev/null +++ b/pkgs/development/compilers/riscv-gnu-toolchain/default.nix @@ -0,0 +1,125 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchurl + +, gcc12 +, glibc +, newlib +, gdb +, qemu +, musl +, spike +, riscv-pk + +, autoconf +, curl +, automake +, python3 +, libmpc +, gawk +, bison +, flex +, texinfo +, gperf +, libtool +, expat +, gmp +, mpfr +, flock + +, srcs ? { + binutils = { + url = "mirror://gnu/binutils/binutils-2.39.tar.bz2"; + hash = "sha256-2iSoT+8iAQLdJAQt8G/eqFHCYUpTd/hu/6KPM7exYUg="; + }; + dejagnu = { + url = "mirror://gnu/dejagnu/dejagnu-1.6.3.tar.gz"; + hash = "sha256-h9rvrNeVi0pp+IxoVtvRY0JhljxBQHnQw3H1ic1mouM="; + }; + gcc = { + url = gcc12.cc.src.url; + hash = gcc12.cc.src.outputHash; + }; + glibc = { + url = glibc.src.url; + hash = glibc.src.outputHash; + }; + newlib = { + url = newlib.src.url; + hash = "sha256-8pbjcvUTJCJNOHzBFtw3pr05cZh1Z0b5OisC6aXUAVQ="; + }; + gdb = { + url = gdb.src.url; + hash = gdb.src.outputHash; + }; + qemu = { + url = qemu.src.url; + hash = qemu.src.outputHash; + }; + musl = { + url = musl.src.url; + hash = musl.src.outputHash; + }; + spike = { + url = spike.src.url; + hash = "sha256-mynCIP7R6GfjvqS1xWXyYpI31SWk2f4WaGmcRAYAOh8="; + }; + pk = { + url = riscv-pk.src.url; + hash = "sha256-Rf6ACDD0WptZK6XU/bdDo+TCEmZT+DTZBKXKuScQf/Y="; + }; +} + +, isa ? "rv64gc" +, withLinux ? false +}: +with lib; +let + +extract = file: stdenv.mkDerivation { + name = file.name + "-unpacked"; + src = file; + dontPatch = true; + dontConfigure = true; + dontBuild = true; + installPhase = "cp -r . $out"; + dontFixup = true; +}; + +srcs_fetched = mapAttrs (name: value: if value ? outPath then value else fetchurl value) srcs; +srcs_extracted = mapAttrs (name: value: extract value) srcs_fetched; +srcFlags = mapAttrsToList (name: value: "--with-${name}-src=${value}") srcs_extracted; + +in stdenv.mkDerivation rec { + pname = "riscv-gnu-toolchain-" + isa; + version = "2023.01.04"; + + buildInputs = [ autoconf automake flock curl python3 libmpc gawk bison flex texinfo gperf libtool expat.dev gmp.dev mpfr.dev ]; + hardeningDisable = [ "format" ]; + + patches = [ ./nodotgit.patch ]; + configureFlags = [ + "--with-arch=${isa}" + ] ++ + srcFlags ++ + optional withLinux "--enable-linux"; + + preConfigure = '' + patchShebangs . + ''; + + src = fetchFromGitHub { + owner = "riscv-collab"; + repo = pname; + rev = version; + hash = "sha256-PXPQ/ho+fOudZRErnyQZTVFdceWGBF+geo+3y0tkNm4="; + }; + + meta = with lib; { + homepage = "https://github.com/riscv-collab/riscv-gnu-toolchain"; + description = "RISC-V C and C++ cross-compiler"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = with licenses; [ bsd3 gpl2 lgpl21 ]; + }; +} diff --git a/pkgs/development/compilers/riscv-gnu-toolchain/nodotgit.patch b/pkgs/development/compilers/riscv-gnu-toolchain/nodotgit.patch new file mode 100644 index 000000000000000..52677d597387488 --- /dev/null +++ b/pkgs/development/compilers/riscv-gnu-toolchain/nodotgit.patch @@ -0,0 +1,15 @@ +diff --git a/Makefile.in b/Makefile.in +index 09c5772..a988d0d 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -279,9 +279,7 @@ GCCPKGVER := + endif + + $(srcdir)/%/.git: +- cd $(srcdir) && \ +- flock `git rev-parse --git-dir`/config git submodule init $(dir $@) && \ +- flock `git rev-parse --git-dir`/config git submodule update $(dir $@) ++ true + + # + # GLIBC diff --git a/pkgs/development/ocaml-modules/lem/default.nix b/pkgs/development/ocaml-modules/lem/default.nix new file mode 100644 index 000000000000000..0a40c81c2e1d2d0 --- /dev/null +++ b/pkgs/development/ocaml-modules/lem/default.nix @@ -0,0 +1,46 @@ +{ stdenv +, fetchFromGitHub +, lib +, ncurses +, makeWrapper + +, ocamlbuild +, findlib +, ocaml +, num +, zarith +}: + +stdenv.mkDerivation rec { + pname = "lem"; + version = "2022-12-10"; + + minimalOCamlVersion = "4.07"; + + nativeBuildInputs = [ makeWrapper ocamlbuild findlib ocaml ]; + buildInputs = [ ncurses num ]; + propagatedBuildInputs = [ zarith ]; + + installFlags = "INSTALL_DIR=$(out)"; + + preInstall = "mkdir -p $OCAMLFIND_DESTDIR"; + postInstall = '' + mv $out/bin/lem $out/bin/.lem_wrapped + makeWrapper $out/bin/.lem_wrapped $out/bin/lem --set LEMLIB $out/share/lem/library + ''; + + src = fetchFromGitHub { + owner = "rems-project"; + repo = pname; + rev = version; + hash = "sha256-ZQgcuIVRkJS0KtpzjbO4OPHGg6B0TadWA6XpRir30y8="; + }; + + + meta = with lib; { + homepage = "https://github.com/rems-project/lem"; + description = "A tool for lightweight executable mathematics"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = with licenses; [ bsd3 gpl2 ]; + }; +} diff --git a/pkgs/development/ocaml-modules/linksem/default.nix b/pkgs/development/ocaml-modules/linksem/default.nix new file mode 100644 index 000000000000000..a7674ac3dea16bb --- /dev/null +++ b/pkgs/development/ocaml-modules/linksem/default.nix @@ -0,0 +1,35 @@ +{ lib +, fetchFromGitHub +, stdenv + +, findlib +, ocaml +, lem +, num +}: + +stdenv.mkDerivation rec { + pname = "linksem"; + version = "0.8"; + + minimalOCamlVersion = "4.06"; + + nativeBuildInputs = [ findlib ocaml ]; + buildInputs = [ lem num ]; + + preInstall = "mkdir -p $OCAMLFIND_DESTDIR"; + + src = fetchFromGitHub { + owner = "rems-project"; + repo = pname; + rev = version; + hash = "sha256-7/YfDK3TruKCckMzAPLRrwBkHRJcX1S+AzXHWRxkZPA="; + }; + + meta = with lib; { + homepage = "https://github.com/rems-project/linksem"; + description = "Linksem is a formalisation of substantial parts of ELF linking and DWARF debug information"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.bsd2; + }; +} diff --git a/pkgs/development/ocaml-modules/sail/default.nix b/pkgs/development/ocaml-modules/sail/default.nix new file mode 100644 index 000000000000000..739bbcad8e0a64b --- /dev/null +++ b/pkgs/development/ocaml-modules/sail/default.nix @@ -0,0 +1,67 @@ +{ lib +, fetchFromGitHub +, buildDunePackage + +, base64 +, omd +, menhir +, ott +, linenoise +, dune-site +, pprint +, makeWrapper +, lem +, z3 +, linksem +, num +}: + +buildDunePackage rec { + pname = "sail"; + version = "0.15"; + + src = fetchFromGitHub { + owner = "rems-project"; + repo = "sail"; + rev = version; + hash = "sha256-eNdFOSzkniNvSCZeORRJ/IYAu+9P4HSouwmhd4BQLPk="; + }; + + duneVersion = "3"; + minimalOCamlVersion = "4.08"; + + SAIL_DIR = "$out"; + + nativeBuildInputs = [ base64 omd menhir ott linenoise dune-site pprint makeWrapper ]; + + propagatedBuildInputs = [ lem z3 linksem num ]; + + buildPhase = '' + runHook preBuild + rm -r aarch* # Remove code derived from non-bsd2 arm spec + rm -r snapshots # Some of this might be derived from stuff in the aarch dir, it builds fine without it + dune build --release ''${enableParallelBuild:+-j $NIX_BUILD_CORES} + runHook postBuild + ''; + checkPhase = '' + runHook preCheck + dune runtest ''${enableParallelBuild:+-j $NIX_BUILD_CORES} + runHook postCheck + ''; + installPhase = '' + runHook preInstall + dune install --prefix $out --libdir $OCAMLFIND_DESTDIR + runHook postInstall + ''; + postInstall = '' + mv $out/bin/sail $out/bin/.sail_wrapped + makeWrapper $out/bin/.sail_wrapped $out/bin/sail --set SAIL_DIR $out/share/sail + ''; + + meta = with lib; { + homepage = "https://github.com/rems-project/sail"; + description = "Sail is a language for describing the instruction-set architecture (ISA) semantics of processors"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.bsd2; + }; +} diff --git a/pkgs/development/python-modules/dataproperty/default.nix b/pkgs/development/python-modules/dataproperty/default.nix new file mode 100644 index 000000000000000..9d40be563d8e7f7 --- /dev/null +++ b/pkgs/development/python-modules/dataproperty/default.nix @@ -0,0 +1,29 @@ +{ buildPythonPackage +, mbstrdecoder +, typepy + +, fetchFromGitHub +, lib +}: + +buildPythonPackage rec { + pname = "dataproperty"; + version = "0.55.0"; + + propagatedBuildInputs = [ mbstrdecoder typepy ]; + doCheck = false; + + src = fetchFromGitHub { + owner = "thombashi"; + repo = pname; + rev = "v${version}"; + hash = "sha256-ODSrKZ8M/ni9r2gkVIKWaKkdr+3AVi4INkEKJ+cmb44="; + }; + + meta = with lib; { + homepage = "https://github.com/thombashi/dataproperty"; + description = "A Python library for extract property from data"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/fusesoc/default.nix b/pkgs/development/python-modules/fusesoc/default.nix new file mode 100644 index 000000000000000..f7a56bc517d46a7 --- /dev/null +++ b/pkgs/development/python-modules/fusesoc/default.nix @@ -0,0 +1,38 @@ +{ buildPythonPackage +, fetchPypi +, lib + +, verilog +, verilator +, gnumake +, gcc + +, edalize +, pyparsing +, pyyaml +, simplesat +, ipyxact + +, setuptools-scm +}: +buildPythonPackage rec { + pname = "fusesoc"; + version = "1.12.0"; + + propagatedBuildInputs = [ edalize pyparsing pyyaml simplesat ipyxact verilog verilator gnumake gcc ]; + nativeBuildInputs = [ setuptools-scm ]; + + src = fetchPypi { + inherit pname version; + hash = "sha256-hHDBQmCxcdwEtbisqOSB78fE3TkLv4opcdTDMHlWxYA="; + }; + + meta = with lib; { + homepage = "https://github.com/olofk/fusesoc"; + description = "A package manager and build tools for HDL code"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.bsd3; + }; +} + + diff --git a/pkgs/development/python-modules/ipyxact/default.nix b/pkgs/development/python-modules/ipyxact/default.nix new file mode 100644 index 000000000000000..55c91dc02ecdbb6 --- /dev/null +++ b/pkgs/development/python-modules/ipyxact/default.nix @@ -0,0 +1,31 @@ +{ buildPythonPackage +, fetchFromGitHub +, lib + +, pyyaml + +, six +, lxml +}: + +buildPythonPackage rec { + pname = "ipyxact"; + version = "0.3.2"; + + propagatedBuildInputs = [ pyyaml ]; + checkInputs = [ six lxml ]; + + src = fetchFromGitHub { + owner = "olofk"; + repo = pname; + rev = "v${version}"; + hash = "sha256-myD+NnqcxxaSAV7qZa8xqeciaiFqFePqIzd7sb/2GXA="; + }; + + meta = with lib; { + homepage = "https://github.com/olofk/ipyxact"; + description = "IP-XACT parser"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/mbstrdecoder/default.nix b/pkgs/development/python-modules/mbstrdecoder/default.nix new file mode 100644 index 000000000000000..dbd0e2d5208138b --- /dev/null +++ b/pkgs/development/python-modules/mbstrdecoder/default.nix @@ -0,0 +1,28 @@ +{ buildPythonPackage +, chardet + +, fetchFromGitHub +, lib +}: + +buildPythonPackage rec { + pname = "mbstrdecoder"; + version = "1.1.1"; + + propagatedBuildInputs = [ chardet ]; + doCheck = false; + + src = fetchFromGitHub { + owner = "thombashi"; + repo = pname; + rev = "v${version}"; + hash = "sha256-U8F+mWKDulIRvvhswmdGnxKjM2qONQybViQ5TLZbLDY="; + }; + + meta = with lib; { + homepage = "https://github.com/thombashi/mbstrdecoder"; + description = "mbstrdecoder is a Python library for multi-byte character string decoder"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/okonomiyaki/default.nix b/pkgs/development/python-modules/okonomiyaki/default.nix new file mode 100644 index 000000000000000..96a39d7136c2af9 --- /dev/null +++ b/pkgs/development/python-modules/okonomiyaki/default.nix @@ -0,0 +1,40 @@ +{ buildPythonPackage +, fetchFromGitHub +, lib + +, attrs +, distro +, jsonschema +, six +, zipfile2 + +, hypothesis +, mock +, packaging +, testfixtures +}: + +buildPythonPackage rec { + pname = "okonomiyaki"; + version = "1.3.2"; + + propagatedBuildInputs = [ distro attrs jsonschema six zipfile2 ]; + + preCheck = "sed 's/runtime_info = PythonRuntime.from_running_python()/raise unittest.SkipTest() #/' -i /build/source/okonomiyaki/runtimes/tests/test_runtime.py"; + checkInputs = [ hypothesis mock packaging testfixtures ]; + + src = fetchFromGitHub { + owner = "enthought"; + repo = pname; + rev = version; + hash = "sha256-eWCOuGtdjBGThAyu15aerclkSWC593VGDPHJ98l30iY="; + }; + + meta = with lib; { + homepage = "https://github.com/enthought/okonomiyaki"; + description = "Okonomiyaki is an experimental library aimed at consolidating a lot of our low-level code used for Enthought's eggs"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.bsd3; + }; + +} diff --git a/pkgs/development/python-modules/pytablewriter/default.nix b/pkgs/development/python-modules/pytablewriter/default.nix new file mode 100644 index 000000000000000..4e475f8d6a1f17b --- /dev/null +++ b/pkgs/development/python-modules/pytablewriter/default.nix @@ -0,0 +1,35 @@ +{ buildPythonPackage +, dataproperty +, mbstrdecoder +, pathvalidate +, setuptools +, tabledata +, tcolorpy +, typepy + +, fetchFromGitHub +, lib +}: + +buildPythonPackage rec { + pname = "pytablewriter"; + version = "0.64.2"; + + propagatedBuildInputs = [ dataproperty mbstrdecoder pathvalidate setuptools tabledata tcolorpy typepy ]; + + doCheck = false; + + src = fetchFromGitHub { + owner = "thombashi"; + repo = pname; + rev = "v${version}"; + hash = "sha256-+IOHnmdd9g3SoHyITJJtbJ0/SAAmwWmwX5XeqsO34EM="; + }; + + meta = with lib; { + homepage = "https://github.com/thombashi/pytablewriter"; + description = "pytablewriter is a python library to write a table in various formats"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/riscof/default.nix b/pkgs/development/python-modules/riscof/default.nix new file mode 100644 index 000000000000000..08d9c1cdce135cc --- /dev/null +++ b/pkgs/development/python-modules/riscof/default.nix @@ -0,0 +1,32 @@ +{ buildPythonPackage +, fetchFromGitHub +, lib +, git + +, riscv-isac +, riscv-config +, jinja2 +}: + +buildPythonPackage rec { + pname = "riscof"; + version = "1.25.2"; + + propagatedBuildInputs = [ riscv-isac riscv-config jinja2 ]; + GIT_PYTHON_GIT_EXECUTABLE = "${git}/bin/git"; + + patches = [ ./make_writeable.patch ./gitpython-version.patch ]; + src = fetchFromGitHub { + owner = "riscv-software-src"; + repo = pname; + rev = "1.25.2"; + hash = "sha256-6jiKBGj4NN038/qq3ze+L0MYpQEEaN5xt4CTWu0i4qs="; + }; + + meta = with lib; { + homepage = "https://github.com/riscv-software-src/riscof"; + description = "RISCOF is a RISC-V Architectural Test Framework"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.bsd3; + }; +} diff --git a/pkgs/development/python-modules/riscof/gitpython-version.patch b/pkgs/development/python-modules/riscof/gitpython-version.patch new file mode 100644 index 000000000000000..ea5f84da32bea29 --- /dev/null +++ b/pkgs/development/python-modules/riscof/gitpython-version.patch @@ -0,0 +1,10 @@ +diff --git a/riscof/requirements.txt b/riscof/requirements.txt +index 6fc0519..da51ab3 100644 +--- a/riscof/requirements.txt ++++ b/riscof/requirements.txt +@@ -1,4 +1,4 @@ +-GitPython==3.1.17 ++GitPython + click>=7.1.2 + Jinja2>=2.10.1 + pytz>=2019.1 diff --git a/pkgs/development/python-modules/riscof/make_writeable.patch b/pkgs/development/python-modules/riscof/make_writeable.patch new file mode 100644 index 000000000000000..938f9913a7ade3e --- /dev/null +++ b/pkgs/development/python-modules/riscof/make_writeable.patch @@ -0,0 +1,25 @@ +diff --git a/riscof/cli.py b/riscof/cli.py +index 26af62e..9d0ddbf 100644 +--- a/riscof/cli.py ++++ b/riscof/cli.py +@@ -502,6 +502,7 @@ def setup(dutname,refname,work_dir): + src = os.path.join(constants.root, "Templates/setup/model/") + dest = os.path.join(cwd, dutname) + distutils.dir_util.copy_tree(src, dest) ++ os.system(f"chmod +w -R '{dest}'") + + os.rename(cwd+'/'+dutname+'/model_isa.yaml', + cwd+'/'+dutname+'/'+dutname+'_isa.yaml') +@@ -525,10 +526,12 @@ def setup(dutname,refname,work_dir): + src = os.path.join(constants.root, "Templates/setup/sail_cSim/") + dest = os.path.join(cwd, refname) + distutils.dir_util.copy_tree(src, dest) ++ os.system(f"chmod +w -R '{dest}'") + else: + src = os.path.join(constants.root, "Templates/setup/reference/") + dest = os.path.join(cwd, refname) + distutils.dir_util.copy_tree(src, dest) ++ os.system(f"chmod +w -R '{dest}'") + os.rename(cwd+'/'+refname+'/riscof_model.py', + cwd+'/'+refname+'/riscof_'+refname+'.py') + with open(cwd+'/'+refname+'/riscof_'+refname+'.py', 'r') as file : diff --git a/pkgs/development/python-modules/riscv-config/default.nix b/pkgs/development/python-modules/riscv-config/default.nix new file mode 100644 index 000000000000000..aebc27c831ad71b --- /dev/null +++ b/pkgs/development/python-modules/riscv-config/default.nix @@ -0,0 +1,29 @@ +{ buildPythonPackage +, fetchFromGitHub +, lib + +, cerberus +, pyyaml +, ruamel-yaml +}: + +buildPythonPackage rec { + pname = "riscv-config"; + version = "3.5.0"; + + propagatedBuildInputs = [ cerberus pyyaml ruamel-yaml ]; + + src = fetchFromGitHub { + owner = "riscv-software-src"; + repo = pname; + rev = version; + hash = "sha256-HKmHrvOF4OOzoILrBJG46UOKow5gRxMcXXiI6f34dPc="; + }; + + meta = with lib; { + homepage = "https://github.com/riscv/riscv-config"; + description = "RISC-V configuration validator"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.bsd3; + }; +} diff --git a/pkgs/development/python-modules/riscv-isac/default.nix b/pkgs/development/python-modules/riscv-isac/default.nix new file mode 100644 index 000000000000000..8318c5a17cb468f --- /dev/null +++ b/pkgs/development/python-modules/riscv-isac/default.nix @@ -0,0 +1,33 @@ +{ buildPythonPackage +, click +, colorlog +, gitpython +, pyelftools +, pytablewriter +, pytest +, pyyaml +, ruamel-yaml + +, fetchFromGitHub +, lib +}: + +buildPythonPackage rec { + pname = "riscv-isac"; + version = "0.16.1"; + src = fetchFromGitHub { + owner = "riscv-software-src"; + repo = pname; + rev = version; + hash = "sha256-Krjr9bvpoOeNfMbYj/QbJ+Y+AVLjwrzj8KKMUXCfnMA="; + }; + patches = [ ./pyelftools-version.patch ]; + propagatedBuildInputs = [ click colorlog gitpython pyelftools pytablewriter pytest pyyaml ruamel-yaml ]; + + meta = with lib; { + homepage = "https://github.com/riscv/riscv-isac"; + description = "riscv-isac is an ISA coverage extraction tool"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.bsd3; + }; +} diff --git a/pkgs/development/python-modules/riscv-isac/pyelftools-version.patch b/pkgs/development/python-modules/riscv-isac/pyelftools-version.patch new file mode 100644 index 000000000000000..9f5bf26364691e7 --- /dev/null +++ b/pkgs/development/python-modules/riscv-isac/pyelftools-version.patch @@ -0,0 +1,12 @@ +diff --git a/riscv_isac/requirements.txt b/riscv_isac/requirements.txt +--- a/riscv_isac/requirements.txt ++++ b/riscv_isac/requirements.txt +@@ -2,7 +2,7 @@ click + gitpython + ruamel.yaml>=0.16.0 + pyyaml +-pyelftools==0.26 ++pyelftools + colorlog + pytest + pytablewriter diff --git a/pkgs/development/python-modules/simplesat/default.nix b/pkgs/development/python-modules/simplesat/default.nix new file mode 100644 index 000000000000000..c5c995e59bbbc6e --- /dev/null +++ b/pkgs/development/python-modules/simplesat/default.nix @@ -0,0 +1,47 @@ +{ buildPythonPackage +, fetchFromGitHub +, writeText +, lib + +, attrs +, six +, okonomiyaki +}: + +let + + versionFile = writeText "simplesat_ver" '' + # THIS FILE IS GENERATED FROM SETUP_EXT + version = '0.8.2' + full_version = '0.8.2' + git_revision = '4ce881644c872e629358e31f37bc8d099ce42591' + is_released = True + + msi_version = '0.8.2.843' + + version_info = (0, 8, 2, 'final', 0) + ''; + +in buildPythonPackage rec { + pname = "simplesat"; + version = "0.8.2"; + + propagatedBuildInputs = [ attrs six okonomiyaki ]; + + src = fetchFromGitHub { + owner = "enthought"; + repo = "sat-solver"; + rev = "v${version}"; + hash = "sha256-6BQn1W2JGrMmNqgxi+sXx06XzNMcvwqYGMkpD0SSpT8="; + }; + + preConfigure = "cp ${versionFile} simplesat/_version.py"; + setuptoolsCheckPhase = "true"; + + meta = with lib; { + homepage = "https://github.com/enthought/sat-solver"; + description = "Prototype for SAT-based dependency handling"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.bsd3; + }; +} diff --git a/pkgs/development/python-modules/tabledata/default.nix b/pkgs/development/python-modules/tabledata/default.nix new file mode 100644 index 000000000000000..24b2677e3d74a93 --- /dev/null +++ b/pkgs/development/python-modules/tabledata/default.nix @@ -0,0 +1,31 @@ +{ buildPythonPackage +, dataproperty +, typepy + +, fetchFromGitHub +, lib +}: + +buildPythonPackage rec { + pname = "tabledata"; + version = "1.3.0"; + + propagatedBuildInputs = [ dataproperty typepy ]; + + # test inputs introduce a circular dependency + doCheck = false; + + src = fetchFromGitHub { + owner = "thombashi"; + repo = pname; + rev = "v${version}"; + hash = "sha256-6Nkdc32cp9wbmw7cnBn5VAJKfqxNunyxExuZ9b+qWNY="; + }; + + meta = with lib; { + homepage = "https://github.com/thombashi/tabledata"; + description = "tabledata is a python library to represent tabular data"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/tcolorpy/default.nix b/pkgs/development/python-modules/tcolorpy/default.nix new file mode 100644 index 000000000000000..1b743ee1007499a --- /dev/null +++ b/pkgs/development/python-modules/tcolorpy/default.nix @@ -0,0 +1,24 @@ +{ buildPythonPackage +, fetchFromGitHub +, lib +}: + +buildPythonPackage rec { + pname = "tcolorpy"; + version = "0.1.2"; + doCheck = false; + + src = fetchFromGitHub { + owner = "thombashi"; + repo = pname; + rev = "v${version}"; + hash = "sha256-duMbeKygEuGVcg4+gQRfClww3rs5AsmJR1VQBo7KWFY="; + }; + + meta = with lib; { + homepage = "https://github.com/thombashi/tcolorpy"; + description = "tcolopy is a Python library to apply true color for terminal text"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/typepy/default.nix b/pkgs/development/python-modules/typepy/default.nix new file mode 100644 index 000000000000000..258c0a8d6866a6b --- /dev/null +++ b/pkgs/development/python-modules/typepy/default.nix @@ -0,0 +1,31 @@ +{ buildPythonPackage +, mbstrdecoder +, python-dateutil +, pytz +, packaging + +, fetchFromGitHub +, lib +}: + +buildPythonPackage rec { + pname = "typepy"; + version = "1.3.0"; + + propagatedBuildInputs = [ mbstrdecoder python-dateutil pytz packaging ]; + doCheck = false; + + src = fetchFromGitHub { + owner = "thombashi"; + repo = pname; + rev = "v${version}"; + hash = "sha256-J6SgVd2m0wOVr2ZV/pryRcJrn+BYTGstAUQO349c2lE="; + }; + + meta = with lib; { + homepage = "https://github.com/thombashi/typepy"; + description = "typepy is a Python library for variable type checker/validator/converter at a run time"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/zipfile2/default.nix b/pkgs/development/python-modules/zipfile2/default.nix new file mode 100644 index 000000000000000..a9b83f8071c3fcd --- /dev/null +++ b/pkgs/development/python-modules/zipfile2/default.nix @@ -0,0 +1,25 @@ +{ buildPythonPackage +, fetchFromGitHub +, lib +}: + +buildPythonPackage rec { + pname = "zipfile2"; + version = "0.0.12"; + + doCheck = false; + + src = fetchFromGitHub { + owner = "cournape"; + repo = pname; + rev = "v${version}"; + hash = "sha256-BwcEgW4XrQqz0Jmtbyxf8q0mWTJXv2dL3Tk7N/IYuMI="; + }; + + meta = with lib; { + homepage = "https://github.com/cournape/zipfile2"; + description = "A backwards-compatible improved zipfile class"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.psfl; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 185916a11bc8afa..324a929d7caf720 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -26319,6 +26319,21 @@ with pkgs; rfkill_udev = callPackage ../os-specific/linux/rfkill/udev.nix { }; + riscv-gnu-toolchain-rv64gc-linux = callPackage ../development/compilers/riscv-gnu-toolchain { + isa = "rv64gc"; + withLinux = true; + }; + + riscv-gnu-toolchain-rv64gc = callPackage ../development/compilers/riscv-gnu-toolchain { + isa = "rv64gc"; + withLinux = false; + }; + + riscv-gnu-toolchain-rv32gc = callPackage ../development/compilers/riscv-gnu-toolchain { + isa = "rv32gc"; + withLinux = false; + }; + riscv-pk = callPackage ../misc/riscv-pk { }; ristate = callPackage ../tools/misc/ristate { }; @@ -32129,7 +32144,7 @@ with pkgs; eiskaltdcpp = libsForQt5.callPackage ../applications/networking/p2p/eiskaltdcpp { }; - qdirstat = libsForQt5.callPackage ../applications/misc/qdirstat {}; + qdirstat = libsForQt5.callPackage ../applications/misc/qdirstat { }; qemu = callPackage ../applications/virtualization/qemu { inherit (darwin.apple_sdk.frameworks) CoreServices Cocoa Hypervisor vmnet; @@ -37859,6 +37874,14 @@ with pkgs; sailsd = callPackage ../misc/sailsd { }; + sail-riscv-rv32 = callPackage ../applications/virtualization/sail-riscv { + arch = "RV32"; + }; + + sail-riscv-rv64 = callPackage ../applications/virtualization/sail-riscv { + arch = "RV64"; + }; + shc = callPackage ../tools/security/shc { }; shellz = callPackage ../tools/security/shellz { }; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 03bd642550f1815..af6daffe108df90 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -738,6 +738,8 @@ let lastfm = callPackage ../development/ocaml-modules/lastfm { }; + lem = callPackage ../development/ocaml-modules/lem { }; + lens = callPackage ../development/ocaml-modules/lens { }; letsencrypt = callPackage ../development/ocaml-modules/letsencrypt { }; @@ -752,6 +754,8 @@ let linenoise = callPackage ../development/ocaml-modules/linenoise { }; + linksem = callPackage ../development/ocaml-modules/linksem { }; + llvm = callPackage ../development/ocaml-modules/llvm { libllvm = pkgs.llvmPackages_10.libllvm; }; @@ -1233,6 +1237,8 @@ let rock = callPackage ../development/ocaml-modules/rock { }; + sail = callPackage ../development/ocaml-modules/sail { }; + samplerate = callPackage ../development/ocaml-modules/samplerate { }; secp256k1 = callPackage ../development/ocaml-modules/secp256k1 { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 43a5fd410bd1a14..d88b76558a535f5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2229,6 +2229,8 @@ self: super: with self; { datapoint = callPackage ../development/python-modules/datapoint { }; + dataproperty = callPackage ../development/python-modules/dataproperty { }; + dataset = callPackage ../development/python-modules/dataset { }; datasets = callPackage ../development/python-modules/datasets { }; @@ -3625,6 +3627,8 @@ self: super: with self; { fusepy = callPackage ../development/python-modules/fusepy { }; + fusesoc = callPackage ../development/python-modules/fusesoc { }; + future = callPackage ../development/python-modules/future { }; future-fstrings = callPackage ../development/python-modules/future-fstrings { }; @@ -4711,6 +4715,8 @@ self: super: with self; { ipywidgets = callPackage ../development/python-modules/ipywidgets { }; + ipyxact = callPackage ../development/python-modules/ipyxact { }; + irc = callPackage ../development/python-modules/irc { }; ircrobots = callPackage ../development/python-modules/ircrobots { }; @@ -5734,6 +5740,8 @@ self: super: with self; { mbddns = callPackage ../development/python-modules/mbddns { }; + mbstrdecoder = callPackage ../development/python-modules/mbstrdecoder { }; + mccabe = callPackage ../development/python-modules/mccabe { }; mcstatus = callPackage ../development/python-modules/mcstatus { }; @@ -6549,6 +6557,8 @@ self: super: with self; { oemthermostat = callPackage ../development/python-modules/oemthermostat { }; + okonomiyaki = callPackage ../development/python-modules/okonomiyaki { }; + olefile = callPackage ../development/python-modules/olefile { }; oletools = callPackage ../development/python-modules/oletools { }; @@ -8886,6 +8896,8 @@ self: super: with self; { pytabix = callPackage ../development/python-modules/pytabix { }; + pytablewriter = callPackage ../development/python-modules/pytablewriter { }; + pytado = callPackage ../development/python-modules/pytado { }; pytaglib = callPackage ../development/python-modules/pytaglib { }; @@ -9990,6 +10002,12 @@ self: super: with self; { ripser = callPackage ../development/python-modules/ripser { }; + riscof = callPackage ../development/python-modules/riscof { }; + + riscv-config = callPackage ../development/python-modules/riscv-config { }; + + riscv-isac = callPackage ../development/python-modules/riscv-isac { }; + rising = callPackage ../development/python-modules/rising { }; ritassist = callPackage ../development/python-modules/ritassist { }; @@ -10481,6 +10499,8 @@ self: super: with self; { simplenote = callPackage ../development/python-modules/simplenote { }; + simplesat = callPackage ../development/python-modules/simplesat { }; + simple-di = callPackage ../development/python-modules/simple-di { }; simple-rest-client = callPackage ../development/python-modules/simple-rest-client { }; @@ -11117,6 +11137,8 @@ self: super: with self; { tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { }; + tabledata = callPackage ../development/python-modules/tabledata { }; + tables = callPackage ../development/python-modules/tables { }; tablib = callPackage ../development/python-modules/tablib { }; @@ -11155,6 +11177,8 @@ self: super: with self; { tbm-utils = callPackage ../development/python-modules/tbm-utils { }; + tcolorpy = callPackage ../development/python-modules/tcolorpy { }; + tcxparser = callPackage ../development/python-modules/tcxparser { }; tcxreader = callPackage ../development/python-modules/tcxreader { }; @@ -11675,6 +11699,8 @@ self: super: with self; { typeguard = callPackage ../development/python-modules/typeguard { }; + typepy = callPackage ../development/python-modules/typepy { }; + typer = callPackage ../development/python-modules/typer { }; types-colorama = callPackage ../development/python-modules/types-colorama { }; @@ -12552,6 +12578,8 @@ self: super: with self; { zimports = callPackage ../development/python-modules/zimports { }; + zipfile2 = callPackage ../development/python-modules/zipfile2 { }; + zipfile36 = callPackage ../development/python-modules/zipfile36 { }; zipp = callPackage ../development/python-modules/zipp { };