diff options
Diffstat (limited to 'gnu/packages/engineering.scm')
-rw-r--r-- | gnu/packages/engineering.scm | 170 |
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 |