Skip to content

Commit

Permalink
cynthion: init at 0.1.7
Browse files Browse the repository at this point in the history
  • Loading branch information
carlossless committed Nov 4, 2024
1 parent 0dad0e5 commit 175fdfa
Show file tree
Hide file tree
Showing 8 changed files with 369 additions and 22 deletions.
3 changes: 3 additions & 0 deletions pkgs/by-name/cy/cynthion/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{ python3Packages }:

python3Packages.toPythonApplication python3Packages.cynthion
54 changes: 54 additions & 0 deletions pkgs/development/python-modules/apollo-fpga/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
lib,
fetchPypi,
buildPythonPackage,
pythonOlder,
setuptools,
pyusb,
pyvcd,
prompt-toolkit,
pyxdg,
deprecation,
}:

buildPythonPackage rec {
pname = "apollo-fpga";
version = "1.1.0";
pyproject = true;
disabled = pythonOlder "3.8";

src = fetchPypi {
inherit version;
pname = "apollo_fpga";
hash = "sha256-dLccmQ/2ZhQqL17JkpAhtuO5jZ3oUuIVcuYdQR0zwhQ=";
};

postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail '"setuptools-git-versioning<2"' "" \
--replace-fail 'dynamic = ["version"]' 'version = "${version}"'
'';

build-system = [
setuptools
];

dependencies = [
pyusb
pyvcd
prompt-toolkit
pyxdg
deprecation
];

pythonImportsCheck = [
"apollo_fpga"
];

meta = {
description = "microcontroller-based FPGA / JTAG programmer";
homepage = "https://github.com/greatscottgadgets/apollo";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ carlossless ];
};
}
89 changes: 89 additions & 0 deletions pkgs/development/python-modules/cynthion/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
{
lib,
fetchPypi,
fetchFromGitHub,
buildPythonPackage,
amaranth,
pythonOlder,
setuptools,
future,
libusb1,
prompt-toolkit,
pyfwup,
pyserial,
pyusb,
tabulate,
tomli,
tqdm,
pygreat,
apollo-fpga,
luna-usb,
luna-soc,
pytestCheckHook,
}:

let
amaranth_0_4 = amaranth.overridePythonAttrs rec {
version = "0.4.1";

src = fetchFromGitHub {
owner = "amaranth-lang";
repo = "amaranth";
rev = "v${version}";
sha256 = "sha256-VMgycvxkphdpWIib7aZwh588En145RgYlG2Zfi6nnDo=";
};
};
in

buildPythonPackage rec {
pname = "cynthion";
version = "0.1.7";
pyproject = true;
disabled = pythonOlder "3.8";

src = fetchPypi {
inherit pname version;
hash = "sha256-kBf3L4+2bBfdQ/6aoQcg0RG5Yt9dkS8MRCahmppBWko=";
};

postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail '"setuptools-git-versioning<2"' "" \
--replace-fail 'dynamic = ["version"]' 'version = "${version}"'
'';

build-system = [
setuptools
];

dependencies = [
future
libusb1
prompt-toolkit
pyfwup
pyserial
pyusb
tabulate
tomli
tqdm
pygreat
apollo-fpga
amaranth_0_4
luna-usb
luna-soc
];

nativeCheckInputs = [
pytestCheckHook
];

pythonImportsCheck = [ "cynthion" ];

meta = {
description = "Python package and utilities for the Great Scott Gadgets Cynthion USB Test Instrument";
homepage = "https://github.com/greatscottgadgets/cynthion";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ carlossless ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
}
44 changes: 44 additions & 0 deletions pkgs/development/python-modules/luna-soc/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
lib,
fetchPypi,
buildPythonPackage,
pythonOlder,
setuptools,
luna-usb,
}:

buildPythonPackage rec {
pname = "luna-soc";
version = "0.2.0";
pyproject = true;
disabled = pythonOlder "3.8";

src = fetchPypi {
inherit version;
pname = "luna_soc";
hash = "sha256-Ohz/dkUuV/yoEphB7/YohuCp5GMQ//0NF1BPySg3IeU=";
};

postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail '"setuptools-git-versioning<2"' "" \
--replace-fail 'dynamic = ["version"]' 'version = "${version}"'
'';

build-system = [
setuptools
];

dependencies = [ luna-usb ];

pythonImportsCheck = [
"luna_soc"
];

meta = {
description = "Amaranth HDL libary for building USB-capable SoC designs.";
homepage = "https://github.com/greatscottgadgets/luna-soc";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ carlossless ];
};
}
87 changes: 87 additions & 0 deletions pkgs/development/python-modules/luna-usb/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
{
lib,
fetchFromGitHub,
buildPythonPackage,
pythonOlder,

# build-system
setuptools,

# dependencies
libusb1,
pyserial,
pyusb,
pyvcd,
amaranth,
usb-protocol,

# tests
pytestCheckHook,
apollo-fpga
}:

let
amaranth_0_4 = amaranth.overridePythonAttrs rec {
version = "0.4.1";

src = fetchFromGitHub {
owner = "amaranth-lang";
repo = "amaranth";
rev = "v${version}";
sha256 = "sha256-VMgycvxkphdpWIib7aZwh588En145RgYlG2Zfi6nnDo=";
};
};
in

buildPythonPackage rec {
pname = "luna-usb";
version = "0.1.2";
pyproject = true;
disabled = pythonOlder "3.8";

src = fetchFromGitHub {
owner = "greatscottgadgets";
repo = "luna";
rev = "refs/tags/${version}";
hash = "sha256-T9V0rI6vcEpM3kN/duRni6v2plCU4B379Zx07dBGKjk=";
};

postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail '"setuptools-git-versioning<2"' "" \
--replace-fail 'dynamic = ["version"]' 'version = "${version}"'
'';

build-system = [
setuptools
];

dependencies = [
libusb1
pyserial
pyusb
pyvcd
amaranth_0_4
usb-protocol
];

nativeCheckInputs = [
pytestCheckHook
apollo-fpga
];

pytestFlagsArray = [
"tests/"
];

pythonImportsCheck = [
"luna"
];

meta = {
description = "Amaranth HDL framework for monitoring, hacking, and developing USB devices";
homepage = "https://github.com/greatscottgadgets/luna";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ carlossless ];
};
}
55 changes: 33 additions & 22 deletions pkgs/development/python-modules/pygreat/default.nix
Original file line number Diff line number Diff line change
@@ -1,41 +1,52 @@
{
lib,
buildPythonPackage,
isPy3k,
fetchFromGitHub,
fetchPypi,
setuptools,
pythonOlder,
pythonRelaxDepsHook,
future,
pyusb,
}:

buildPythonPackage {
buildPythonPackage rec {
pname = "pygreat";
version = "2019.5.1.dev0";
format = "setuptools";

src = fetchFromGitHub {
owner = "greatscottgadgets";
repo = "libgreat";
rev = "14c00b7c8f036f4d467e4b1a324ffa3566b126fa";
sha256 = "1h0z83k1k4z8j36z936h61l8j3cjr3wsxr86k91v5c5h93g9dkqh";
version = "2024.0.2";
pyproject = true;
disabled = pythonOlder "3.8";

src = fetchPypi {
inherit pname version;
hash = "sha256-VGZyvGLPyA6tOVh7boz4j/6o/iQ9mRvULOleFypGHGY=";
};

propagatedBuildInputs = [
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail '"setuptools-git-versioning<2"' "" \
--replace-fail 'dynamic = ["version"]' 'version = "${version}"'
'';

build-system = [
setuptools
];

pythonRemoveDeps = [
"backports.functools-lru-cache"
];

dependencies = [
future
pyusb
];

disabled = !isPy3k;

preBuild = ''
cd host
substituteInPlace setup.py --replace "'backports.functools_lru_cache'" ""
substituteInPlace pygreat/comms.py --replace "from backports.functools_lru_cache import lru_cache as memoize_with_lru_cache" "from functools import lru_cache as memoize_with_lru_cache"
echo "$version" > ../VERSION
'';
pythonImportsCheck = [
"pygreat"
];

meta = with lib; {
meta = {
description = "Python library for talking with libGreat devices";
homepage = "https://greatscottgadgets.com/greatfet/";
license = with licenses; [ bsd3 ];
license = with lib.licenses; [ bsd3 ];
maintainers = with lib.maintainers; [ carlossless ];
};
}
Loading

0 comments on commit 175fdfa

Please sign in to comment.