summaryrefslogtreecommitdiff
path: root/gnu/packages/engineering.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/engineering.scm')
-rw-r--r--gnu/packages/engineering.scm170
1 files changed, 103 insertions, 67 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 7bbf732fc9..af7bca0703 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1,9 +1,9 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
-;;; Copyright © 2016, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -21,6 +21,7 @@
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020, 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
+;;; Copyright © 2021 qblade <qblade@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -106,6 +107,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
@@ -1215,14 +1217,14 @@ use on a given system.")
(define-public libredwg
(package
(name "libredwg")
- (version "0.12")
+ (version "0.12.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/libredwg/libredwg-"
version ".tar.xz"))
(sha256
- (base32 "0z5algzi3alq166885y0qyj2gnc7gc6vhnz7nw0kwc0d236p6md8"))))
+ (base32 "1vhm3r3zr8hh0jbvv6qdykh1x14r4c1arl1qj48i4cx2dd3366mk"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-bindings")))
@@ -1522,10 +1524,36 @@ bindings for Python, Java, OCaml and more.")
(define-public python2-capstone
(package-with-python2 python-capstone))
+
+(define-public python-esptool-3.0
+ (package
+ (name "python-esptool")
+ (version "3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "esptool" version))
+ (sha256
+ (base32
+ "0d69rd9h8wrzjvfrc66vmz4qd5hly2fpdcwj2bdrlb7dbwikv5c7"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;XXX: require python-reedsolo
+ (propagated-inputs
+ `(("python-ecdsa" ,python-ecdsa)
+ ("python-pyaes" ,python-pyaes)
+ ("python-pyserial" ,python-pyserial)))
+ (home-page "https://github.com/espressif/esptool")
+ (synopsis "Bootloader utility for Espressif ESP8266 & ESP32 chips")
+ (description
+ "@code{esptool.py} is a Python-based utility to communicate with the ROM
+bootloader in Espressif ESP8266 & ESP32 series chips.")
+ (license license:gpl2+)))
+
(define-public radare2
(package
(name "radare2")
- (version "5.0.0")
+ (version "5.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1533,7 +1561,7 @@ bindings for Python, Java, OCaml and more.")
(commit version)))
(sha256
(base32
- "0aa7c27kd0l55fy5qfvxqmakp4pz6240v3hn84095qmqkzcbs420"))
+ "0hv9x31iabasj12g8f04incr1rbcdkxi3xnqn3ggp8gl4h6pf2f3"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -2365,6 +2393,21 @@ analysis and AC analysis. The engine is designed to do true mixed-mode
simulation.")
(license license:gpl3+)))
+(define-public radare2-for-cutter
+ (package
+ (inherit radare2)
+ (name "radare2")
+ (version "5.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/radareorg/radare2")
+ (commit version)))
+ (sha256
+ (base32
+ "0aa7c27kd0l55fy5qfvxqmakp4pz6240v3hn84095qmqkzcbs420"))
+ (file-name (git-file-name name version))))))
+
(define-public cutter
(package
(name "cutter")
@@ -2400,7 +2443,9 @@ simulation.")
`(("qtbase" ,qtbase)
("qtsvg" ,qtsvg)
("openssl" ,openssl)
- ("radare2" ,radare2)))
+ ;; Depends on radare2 4.5.1 officially, builds and works fine with
+ ;; radare2 5.0.0 but fails to build with radare2 5.1.1.
+ ("radare2" ,radare2-for-cutter)))
(home-page "https://github.com/radareorg/cutter")
(synopsis "GUI for radare2 reverse engineering framework")
(description "Cutter is a GUI for radare2 reverse engineering framework.
@@ -2448,7 +2493,7 @@ specification can be downloaded at @url{http://3mf.io/specification/}.")
(define-public openscad
(package
(name "openscad")
- (version "2019.05")
+ (version "2021.01")
(source
(origin
(method url-fetch)
@@ -2456,9 +2501,7 @@ specification can be downloaded at @url{http://3mf.io/specification/}.")
".src.tar.gz"))
(sha256
(base32
- "0nbgk5q5pgnw53la0kccdcpz2f4xf6d6076rkn0q08z57hkc85ha"))
- (patches (search-patches
- "openscad-parser-boost-1.72.patch"))))
+ "0n83szr88h8snccjrslr96mgw3f65x3sq726n6x5vxp5wybw4f6r"))))
(build-system cmake-build-system)
(inputs
`(("boost" ,boost)
@@ -2501,7 +2544,17 @@ specification can be downloaded at @url{http://3mf.io/specification/}.")
(with-directory-excursion "tests"
(invoke "cmake" ".")
(invoke "make")
- (invoke "ctest"))
+ (invoke "ctest" "--exclude-regex"
+ (string-join
+ (list
+ "astdumptest_allexpressions"
+ "echotest_function-literal-compare"
+ "echotest_function-literal-tests"
+ "echotest_allexpressions"
+ "lazyunion-*"
+ "pdfexporttest_centered"
+ "pdfexporttest_simple-pdf")
+ "|")))
;; strip python test files since lib dir ends up in out/share
(for-each delete-file
(find-files "libraries/MCAD" ".*\\.py"))
@@ -2894,64 +2947,47 @@ GUI.")
(license license:gpl3+)))
(define-public poke
- ;; Upstream has yet to tag any releases.
- (let ((commit "d33317a46e3b7c48130a471a48cbfea1abab70d8")
- (revision "0"))
- (package
- (name "poke")
- (version (git-version "0.0.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "git://git.savannah.gnu.org/poke.git")
- (commit commit)
- (recursive? #t)))
- (sha256
- (base32 "1dd0r1x123bqi78lrsk58rvg9c9wka0kywdyzn7g3i4hkh54xb7d"))
- (file-name (git-file-name name version))))
- (build-system gnu-build-system)
- ;; The GUI, which we elide, requires tcl and tk.
- (native-inputs `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("bison" ,bison)
- ("clisp" ,clisp)
- ("dejagnu" ,dejagnu)
- ("flex" ,flex)
- ("gettext" ,gettext-minimal)
- ("help2man" ,help2man)
- ("libtool" ,libtool)
- ("perl" ,perl)
- ("pkg-config" ,pkg-config)
- ("python-2" ,python-2)
- ("python-3" ,python-3)
- ("texinfo" ,texinfo)))
- ;; FIXME: Enable NBD support by adding `libnbd' (currently unpackaged).
- ;; FIXME: A "hyperlinks-capable" `libtexststyle' needed for the hserver.
- (inputs `(("json-c" ,json-c)
- ("libgc" ,libgc)
- ("readline" ,readline)))
- (arguments
- ;; To build the GUI, add the `--enable-gui' configure flag.
- ;; To enable the "hyperlink server", add the `--enable-hserver' flag.
- `(#:configure-flags '("--enable-mi")
- #:phases (modify-phases %standard-phases
- ;; This is a non-trivial bootstrap that needs many of the
- ;; native-inputs and thus must run after `patch-shebangs'.
- (delete 'bootstrap)
- (add-after 'patch-source-shebangs 'bootstrap
- (lambda _
- (invoke "./bootstrap" "--no-git"
- "--no-bootstrap-sync"
- "--gnulib-srcdir=gnulib")
- #t)))))
- (home-page "http://jemarch.net/poke.html")
- (synopsis "Interactive, extensible editor for binary data")
- (description "GNU poke is an interactive, extensible editor for binary
+ (package
+ (name "poke")
+ (version "1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/poke/poke-" version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "02jvla69xd0nnlg2bil2vxxxglqgylswml6h5hy2nxy0023hp4yy"))))
+
+ ;; XXX: Version 1.0 only supports 64-bit systems.
+ (supported-systems '("x86_64-linux" "aarch64-linux"))
+
+ (build-system gnu-build-system)
+ ;; The GUI, which we elide, requires tcl and tk.
+ (native-inputs `(("bison" ,bison)
+ ("clisp" ,clisp)
+ ("dejagnu" ,dejagnu)
+ ("flex" ,flex)
+ ("libtool" ,libtool)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("python-2" ,python-2)
+ ("python-3" ,python-3)))
+ ;; FIXME: Enable NBD support by adding `libnbd' (currently unpackaged).
+ (inputs `(("json-c" ,json-c)
+ ("libgc" ,libgc)
+ ("readline" ,readline)
+ ("libtextstyle" ,libtextstyle)))
+ (arguments
+ ;; To build the GUI, add the `--enable-gui' configure flag.
+ ;; To enable the "hyperlink server", add the `--enable-hserver' flag.
+ `(#:configure-flags '("--enable-mi")))
+ (home-page "http://jemarch.net/poke.html")
+ (synopsis "Interactive, extensible editor for binary data")
+ (description "GNU poke is an interactive, extensible editor for binary
data. Not limited to editing basic entities such as bits and bytes, it
provides a full-fledged procedural, interactive programming language designed
to describe data structures and to operate on them.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public pcb2gcode
(package