python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / misc / pcb2gcode / default.nix
blob146233b2e029d622355a45be0209d3b488c25aaa
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , autoreconfHook
5 , pkg-config
6 , boost
7 , glibmm
8 , gtkmm2
9 , gerbv
10 , librsvg
11 , bash
12 , fetchpatch
15 stdenv.mkDerivation rec {
16   pname = "pcb2gcode";
17   version = "2.4.0";
19   src = fetchFromGitHub {
20     owner = "pcb2gcode";
21     repo = "pcb2gcode";
22     rev = "v${version}";
23     sha256 = "sha256-3VQlYtSi6yWWNuxTlBzvBtkM5hAss47xat+sEW+P79E=";
24   };
26   patches = [
27     # the patch below is part of upstream mainline, we can remove this
28     # when they make their next release
29     (fetchpatch {
30       url = "https://github.com/pcb2gcode/pcb2gcode/commit/01cd18a6d859ab1aac6c532c99be9109f083448d.patch";
31       sha256 = "sha256-5hl8KsDxSWMzXS3oRG0fBfHFq0IpZ//sU8lfY9Yp8L0=";
32     })
33   ];
35   nativeBuildInputs = [ autoreconfHook pkg-config ];
37   buildInputs = [ boost glibmm gtkmm2 gerbv librsvg ];
39   postPatch = ''
40     substituteInPlace ./Makefile.am \
41     --replace '`git describe --dirty --always --tags`' '${version}'
42   '';
44   meta = with lib; {
45     description = "Command-line tool for isolation, routing and drilling of PCBs ";
46     longDescription = ''
47       pcb2gcode is a command-line software for the isolation, routing and drilling of PCBs.
48       It takes Gerber files as input and it outputs gcode files, suitable for the milling of PCBs.
49       It also includes an Autoleveller, useful for the automatic dynamic calibration of the milling depth.
50     '';
51     homepage = "https://github.com/pcb2gcode/pcb2gcode";
52     license = licenses.gpl3Only;
53     maintainers = with maintainers; [ kritnich ];
54     platforms = platforms.linux;
55   };