diff options
Diffstat (limited to 'pkgs/by-name/ki/kikit')
-rw-r--r-- | pkgs/by-name/ki/kikit/default.nix | 89 | ||||
-rw-r--r-- | pkgs/by-name/ki/kikit/package.nix | 2 | ||||
-rw-r--r-- | pkgs/by-name/ki/kikit/solidpython/default.nix | 66 |
3 files changed, 157 insertions, 0 deletions
diff --git a/pkgs/by-name/ki/kikit/default.nix b/pkgs/by-name/ki/kikit/default.nix new file mode 100644 index 000000000000..e8356fd0a0ff --- /dev/null +++ b/pkgs/by-name/ki/kikit/default.nix @@ -0,0 +1,89 @@ +{ bc +, zip +, lib +, fetchFromGitHub +, bats +, buildPythonApplication +, pythonOlder +, callPackage +, kicad +, numpy +, click +, markdown2 +, openscad +, pytestCheckHook +, commentjson +, wxpython +, pcbnew-transition +, pybars3 +, versioneer +, shapely_1_8 +}: +let + solidpython = callPackage ./solidpython { }; +in +buildPythonApplication rec { + pname = "kikit"; + version = "1.5.0"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "yaqwsx"; + repo = "KiKit"; + rev = "refs/tags/v${version}"; + hash = "sha256-f8FB6EEy9Ch4LcMKd9PADXV9QrSb7e22Ui86G6AnQKE="; + }; + + propagatedBuildInputs = [ + kicad + numpy + click + markdown2 + # OpenSCAD is an optional dependency (see + # https://github.com/yaqwsx/KiKit/blob/v1.5.0/docs/installation/intro.md#optional-dependencies). + openscad + commentjson + # https://github.com/yaqwsx/KiKit/issues/575 + wxpython + pcbnew-transition + pybars3 + # https://github.com/yaqwsx/KiKit/issues/574 + shapely_1_8 + # https://github.com/yaqwsx/KiKit/issues/576 + solidpython + ]; + + nativeBuildInputs = [ + versioneer + bc + zip + ]; + + nativeCheckInputs = [ + pytestCheckHook + bats + ]; + + pythonImportsCheck = [ + "kikit" + ]; + + preCheck = '' + export PATH=$PATH:$out/bin + + make test-system + + # pytest needs to run in a subdir. See https://github.com/yaqwsx/KiKit/blob/v1.3.0/Makefile#L43 + cd test/units + ''; + + meta = with lib; { + description = "Automation for KiCAD boards"; + homepage = "https://github.com/yaqwsx/KiKit/"; + changelog = "https://github.com/yaqwsx/KiKit/releases/tag/v${version}"; + maintainers = with maintainers; [ jfly matusf ]; + license = licenses.mit; + }; +} diff --git a/pkgs/by-name/ki/kikit/package.nix b/pkgs/by-name/ki/kikit/package.nix new file mode 100644 index 000000000000..5f1daa8aa5cd --- /dev/null +++ b/pkgs/by-name/ki/kikit/package.nix @@ -0,0 +1,2 @@ +{ python3 }: +(python3.pkgs.callPackage ./default.nix { }) diff --git a/pkgs/by-name/ki/kikit/solidpython/default.nix b/pkgs/by-name/ki/kikit/solidpython/default.nix new file mode 100644 index 000000000000..c03637907a36 --- /dev/null +++ b/pkgs/by-name/ki/kikit/solidpython/default.nix @@ -0,0 +1,66 @@ +# SolidPython is an unmaintained library with old dependencies. +{ buildPythonPackage +, callPackage +, fetchFromGitHub +, fetchFromGitLab +, fetchpatch +, lib +, pythonRelaxDepsHook + +, poetry-core +, prettytable +, pypng +, ply +, setuptools +, euclid3 +}: +buildPythonPackage rec { + pname = "solidpython"; + version = "1.1.3"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "SolidCode"; + repo = "SolidPython"; + rev = "d962740d600c5dfd69458c4559fc416b9beab575"; + hash = "sha256-3fJta2a5c8hV9FPwKn5pj01aBtsCGSRCz3vvxR/5n0Q="; + }; + + nativeBuildInputs = [ + poetry-core + pythonRelaxDepsHook + ]; + + propagatedBuildInputs = [ + ply + setuptools + euclid3 + + prettytable + ]; + + pythonRelaxDeps = [ + # SolidPython has PrettyTable pinned to a hyper-specific version due to + # some ancient bug with Poetry. They aren't interested in unpinning because + # SolidPython v1 seems to be deprecated in favor of v2: + # https://github.com/SolidCode/SolidPython/issues/207 + "PrettyTable" + ]; + + pythonRemoveDeps = [ + # The pypng dependency is only used in an example script. + "pypng" + ]; + + pythonImportsCheck = [ + "solid" + ]; + + meta = with lib; { + description = "Python interface to the OpenSCAD declarative geometry language"; + homepage = "https://github.com/SolidCode/SolidPython"; + changelog = "https://github.com/SolidCode/SolidPython/releases/tag/v${version}"; + maintainers = with maintainers; [ jfly ]; + license = licenses.lgpl21Plus; + }; +} |