(address . guix-patches@gnu.org)(name . Arun Isaac)(address . arunisaac@systemreboot.net)
* gnu/packages/boost.scm (boost-for-pcb2gcode): New variable.
* gnu/packages/engineering.scm (pcb2gcode): New variable.
---
gnu/packages/boost.scm | 27 +++++++++++++++++++-
gnu/packages/engineering.scm | 48 ++++++++++++++++++++++++++++++++++++
2 files changed, 74 insertions(+), 1 deletion(-)
Toggle diff (103 lines)
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index b83bd73a39..3919f7fa70 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2015, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
@@ -150,6 +150,31 @@ across a broad spectrum of applications.")
(delete 'provide-libboost_python)))))
(properties '((hidden? . #t)))))
+(define-public boost-for-pcb2gcode
+ ;; Older version for pcb2gcode
+ (package
+ (inherit boost)
+ (version "1.66.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/boost/boost/" version "/boost_"
+ (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "1aaw48cmimsskzgiclwn0iifp62a5iw9cbqrhfari876af1828ap"))))
+ (arguments (substitute-keyword-arguments (package-arguments boost)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ ;; This was removed after boost-1.67.
+ (add-before 'configure 'more-bin-sh-patching
+ (lambda _
+ (substitute* "tools/build/doc/bjam.qbk"
+ (("/bin/sh") (which "sh")))))
+ (delete 'provide-libboost_python)))))
+ (properties '((hidden? . #t)))))
+
(define-public boost-sync
(let ((commit "c72891d9b90e2ceb466ec859f640cd012b2d8709")
(version "1.55")
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 359503e9e1..4f59f0b391 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -2062,3 +2062,51 @@ purpose circuit simulator and can perform DC and transient analyses, fourier
analysis and AC analysis. The engine is designed to do true mixed-mode
simulation.")
(license license:gpl3+)))
+
+(define-public pcb2gcode
+ (package
+ (name "pcb2gcode")
+ (version "2.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pcb2gcode/pcb2gcode")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "08y6b5ybwh4fwn6gja0lbmmk7vwpz7axza3bwljbc10n9wbpqwfk"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(;; pcb2gcode requires boost < 1.67. See configure.ac.
+ ("boost" ,boost-for-pcb2gcode)
+ ("gerbv" ,gerbv)
+ ("glibmm" ,glibmm)
+ ("gtkmm" ,gtkmm-2)
+ ("librsvg" ,librsvg)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--with-boost=" (assoc-ref %build-inputs "boost")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-failing-tests
+ (lambda _
+ (substitute* "Makefile.am"
+ ;; gerberimporter_tests fail since they slightly overshoot the
+ ;; specified error threshold. Disable it for this release.
+ (("gerberimporter_tests ") "")
+ (("^gerberimporter_tests_" all) (string-append "#" all)))
+ #t)))))
+ (home-page "https://github.com/pcb2gcode/pcb2gcode")
+ (synopsis "Generate G-code for milling PCBs")
+ (description "pcb2gcode is a command-line program for isolation routing
+and drilling of PCBs. It takes Gerber files as input and outputs G-code files
+for the milling of PCBs. It also includes an autoleveller for the automatic
+dynamic calibration of the milling depth.")
+ (license license:gpl3+)))
--
2.21.0