summary refs log tree commit diff
path: root/gnu/packages/engineering.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2021-03-05 22:56:40 +0000
committerChristopher Baines <mail@cbaines.net>2021-03-06 00:18:30 +0000
commita8448da0f4a090818104e64dd79f90b0e50d5e77 (patch)
tree494c58b4724f12cd9de0db9b0a7096de2b922c0f /gnu/packages/engineering.scm
parent4f4b749e75b38b8c08b4f67ef51c2c8740999e28 (diff)
parenta714af38d5d1046081524d859cde4cd8fd12a923 (diff)
downloadguix-a8448da0f4a090818104e64dd79f90b0e50d5e77.tar.gz
Merge branch 'master' into core-updates
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