Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / ge / gerbolyze / package.nix
blob963f578dfe51e116b99c4cf0954a71dfbd9457f7
1 { lib
2 , stdenv
3 , python3Packages
4 , fetchFromGitHub
5 , gitUpdater
6 , resvg
7 }:
9 let
10   version = "3.1.9";
11   src = fetchFromGitHub {
12     owner = "jaseg";
13     repo = "gerbolyze";
14     rev = "v${version}";
15     hash = "sha256-bisLln3Y239HuJt0MkrCU+6vLLbEDxfTjEJMkcbE/wE=";
16     fetchSubmodules = true;
17   };
19   svg-flatten = stdenv.mkDerivation rec {
20     inherit version src;
21     pname = "svg-flatten";
23     sourceRoot = "${src.name}/svg-flatten";
25     postPatch = ''
26       substituteInPlace Makefile \
27         --replace "$(INSTALL) $(BUILDDIR)/$(BINARY) $(PREFIX)/bin" \
28         "$(INSTALL) $(BUILDDIR)/$(BINARY) $(PREFIX)/bin/svg-flatten" \
29     '';
31     installPhase = ''
32       runHook preInstall
33       mkdir -p $out/bin
34       PREFIX=$out make install
35       runHook postInstall
36     '';
38     meta = with lib; {
39       description = "svg-flatten SVG downconverter";
40       homepage = "https://github.com/jaseg/gerbolyze";
41       license = with licenses; [ agpl3Plus ];
42       maintainers = with maintainers; [ wulfsta ];
43       mainProgram = "svg-flatten";
44       platforms = platforms.linux;
45     };
46   };
47 in python3Packages.buildPythonApplication rec {
48   inherit version src;
49   pname = "gerbolyze";
51   format = "setuptools";
53   nativeBuildInputs = [
54     python3Packages.setuptools
55   ];
57   propagatedBuildInputs = [
58     python3Packages.beautifulsoup4
59     python3Packages.click
60     python3Packages.numpy
61     python3Packages.scipy
62     python3Packages.python-slugify
63     python3Packages.lxml
64     python3Packages.gerbonara
65     resvg
66     svg-flatten
67   ];
69   preConfigure = ''
70     # setup.py tries to execute a call to git in a subprocess, this avoids it.
71     substituteInPlace setup.py \
72       --replace "version = get_version()," \
73                 "version = '${version}'," \
75     # setup.py tries to execute a call to git in a subprocess, this avoids it.
76     substituteInPlace setup.py \
77       --replace "long_description=format_readme_for_pypi()," \
78                 "long_description='\n'.join(Path('README.rst').read_text().splitlines()),"
79   '';
81   pythonImportsCheck = [ "gerbolyze" ];
83   nativeCheckInputs = [ python3Packages.pytestCheckHook resvg svg-flatten ];
85   passthru.updateScript = gitUpdater {
86     rev-prefix = "v";
87   };
89   meta = with lib; {
90     description = "Directly render SVG overlays into Gerber and Excellon files";
91     homepage = "https://github.com/jaseg/gerbolyze";
92     license = with licenses; [ agpl3Plus ];
93     maintainers = with maintainers; [ wulfsta ];
94     mainProgram = "gerbolyze";
95     platforms = platforms.linux;
96   };