summary refs log tree commit diff
path: root/gnu/packages/engineering.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/engineering.scm')
-rw-r--r--gnu/packages/engineering.scm141
1 files changed, 95 insertions, 46 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index e0fe0f354f..23133a50eb 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -23,7 +23,7 @@
 ;;; Copyright © 2020, 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
 ;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com>
-;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
 ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
@@ -97,6 +97,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)               ;FIXME: for pcb
@@ -716,6 +717,43 @@ ready for production.")
     ;; released under GPLv3+.
     (license (list license:gpl3+ license:cc-by-sa3.0))))
 
+(define-public qelectrotech
+  (package
+    (name "qelectrotech")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://git.tuxfamily.org/qet/qet.git/"
+                           "snapshot/qet-" version ".tar.gz"))
+       (sha256
+        (base32 "0w70fqwhqqzga1kfp34v8z1xf9988nvvi3d5gwl2sg429p9mpsk2"))))
+    (build-system qt-build-system)
+    (arguments
+     ;; XXX: tests are built for the CMake build option but it seems to be
+     ;; broken in 0.8.0.
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               ;; Patch hardcoded path before running qmake.
+               (substitute* "qelectrotech.pro" (("\\/usr\\/local") out))
+               (invoke "qmake")))))))
+    (native-inputs
+     (list pkg-config qttools))
+    (inputs
+     (list kcoreaddons kwidgetsaddons qtbase-5 qtsvg sqlite))
+    (home-page "https://qelectrotech.org/")
+    (synopsis "CAD/CAE editor focusing on schematics drawing features")
+    (description "QElectroTech, or QET in short, is a desktop application to
+create diagrams and schematics.  The software is primarily intended to create
+electrical documentation but it can also be used to draw any kinds of diagrams,
+such as those made in pneumatics, hydraulics, process industries, electronics,
+and others.")
+    (license license:gpl2+)))
+
 (define-public gerbv
   (package
     (name "gerbv")
@@ -830,7 +868,10 @@ function calls into the geometry kernel: everything is visible to the user.
 Even fundamental, primitive shapes are represented as code in the user-level
 language.")
       (license (list license:mpl2.0               ;library
-                     license:gpl2+)))))           ;Guile bindings and GUI
+                     license:gpl2+))              ;Guile bindings and GUI
+
+      ;; Mark as tunable to take advantage of SIMD code in Eigen.
+      (properties '((tunable? . #t))))))
 
 (define-public inspekt3d
   (let ((commit "703f52ccbfedad2bf5240bf8183d1b573c9d54ef")
@@ -884,7 +925,7 @@ Emacs).")
 (define-public kicad
   (package
     (name "kicad")
-    (version "5.1.10")
+    (version "5.1.12")
     (source
      (origin
        (method git-fetch)
@@ -892,7 +933,7 @@ Emacs).")
              (url "https://gitlab.com/kicad/code/kicad.git")
              (commit version)))
        (sha256
-        (base32 "10ix560bqy0lprnik1bprxw9ix4g8w2ipvyikx551ak9ryvgwjcc"))
+        (base32 "0kgikchqxds3mp71nkg307mr4c1dgv8akbmksz4w9x8jg4i1mfqq"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
@@ -900,9 +941,12 @@ Emacs).")
        #:tests? #f                      ; no tests
        #:build-type "Release"
        #:configure-flags
-       (list "-DKICAD_SCRIPTING_PYTHON3=ON"
-             "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
-             "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
+       ,#~(list
+           "-DKICAD_SCRIPTING_PYTHON3=ON"
+           "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
+           "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
+           (string-append "-DOCC_INCLUDE_DIR="
+                          #$(this-package-input "opencascade-occt") "/include/opencascade"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-ngspice-detection
@@ -978,7 +1022,7 @@ Emacs).")
        ("libngspice" ,libngspice)
        ("libsm" ,libsm)
        ("mesa" ,mesa)
-       ("opencascade-oce" ,opencascade-oce)
+       ("opencascade-occt" ,opencascade-occt)
        ("openssl" ,openssl)
        ("python" ,python-wrapper)
        ("wxwidgets" ,wxwidgets)
@@ -1030,7 +1074,7 @@ translations for KiCad.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "005ljkb7liayvyj4vxd5ncrknfbhnk6xvyjk43qz810hrp1fv0hk"))))
+                "026cz4zm903i75yhdvzha2nsnk4c0w07q3gd3xw3jmsmn18imgm3"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags (list "-DBUILD_FORMATS=html")
@@ -1064,7 +1108,7 @@ translations for KiCad.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0n25rq32jwyigfw26faqraillwv6zbi2ywy26dkz5zqlf5xp56ad"))))
+                "1zdajim409570xzis53kmrbdcf7000v2vmc90f49h214lrx2zhr2"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; no tests exist
@@ -1093,7 +1137,7 @@ libraries.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0gyqxryda273hjn2rv8dha461j9bjh054y5dlpiw1wiha65lrf9i"))))
+                "0qpii55dgv2gxqg1qq0dngdnbb9din790qi5qv0l6qqrzx843h5s"))))
     (synopsis "Official KiCad footprint libraries")
     (description "This package contains the official KiCad footprint libraries.")))
 
@@ -1110,7 +1154,7 @@ libraries.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1szcin52fcsyb55bj7xq7lz6ig187dpz3lk7blwab7b9c4dn3c3y"))))
+                "12w7m5nbk9kcnlnlg4sk1sd7xgb9i2kxfi0jcbd0phs89qyl7wjr"))))
     (synopsis "Official KiCad 3D model libraries")
     (description "This package contains the official KiCad 3D model libraries.")))
 
@@ -1127,7 +1171,7 @@ libraries.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1a8xfcbdbb4ylrb5m7n2jjk9kwvgmlx1pmnn2cwj327a2b3m4jjs"))))
+                "1fbhn1l3j2rwc29aida9b408wif55i23bp9ddcs7dvf83smjm05g"))))
     (synopsis "Official KiCad project and worksheet templates")
     (description "This package contains the official KiCad project and
 worksheet templates.")))
@@ -1608,10 +1652,9 @@ bindings for Python, Java, OCaml and more.")
         (base32
          "0d69rd9h8wrzjvfrc66vmz4qd5hly2fpdcwj2bdrlb7dbwikv5c7"))))
     (build-system python-build-system)
-    (arguments
-     `(#:tests? #f))                    ;XXX: require python-reedsolo
     (propagated-inputs
-     (list python-ecdsa python-pyaes python-pyserial))
+     (list python-ecdsa python-pyaes python-pyserial python-reedsolo
+           python-cryptography python-bitstring))
     (home-page "https://github.com/espressif/esptool")
     (synopsis "Bootloader utility for Espressif ESP8266 & ESP32 chips")
     (description
@@ -2387,7 +2430,7 @@ comments.")))
 (define-public freecad
   (package
     (name "freecad")
-    (version "0.19.2")
+    (version "0.19.3")
     (source
      (origin
        (method git-fetch)
@@ -2396,7 +2439,7 @@ comments.")))
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0fhjv0x3dix1c7jml91yx63z9xifjlbhjbcdb73lw80smpxrq7mm"))
+        (base32 "1dkiwnqr6bhi2d90hz7ijqd872144c9n9xxpd1vbrmxr2x8cfl88"))
        (patches (search-patches "freecad-vtk9.patch"
                                 "freecad-boost-serialization.patch"))))
     (build-system qt-build-system)
@@ -2434,13 +2477,16 @@ comments.")))
            python-gitpython
            python-matplotlib
            python-pivy
+           python-ply
            python-pyside-2
            python-pyyaml
            python-shiboken-2
            python-wrapper
            qtbase-5
+           qtdeclarative
            qtsvg
-           qtwebkit
+           qtwebchannel
+           qtwebengine
            qtx11extras
            qtxmlpatterns
            sqlite
@@ -3148,7 +3194,7 @@ visualization, matrix manipulation.")
 (define-public prusa-slicer
   (package
     (name "prusa-slicer")
-    (version "2.3.3")
+    (version "2.4.0")
     (source
      (origin
        (method git-fetch)
@@ -3157,7 +3203,7 @@ visualization, matrix manipulation.")
          (url "https://github.com/prusa3d/PrusaSlicer")
          (commit (string-append "version_" version))))
        (file-name (git-file-name name version))
-       (sha256 (base32 "0w0synqi3iz9aigsgv6x1c6sg123fasbx19h4w3ic1l48r8qmpwm"))
+       (sha256 (base32 "1mb7v0khrmsgy3inmh4mjn709jlhx422kvbnrhsqziph2wwak9bz"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -3192,32 +3238,35 @@ visualization, matrix manipulation.")
     (native-inputs
      (list pkg-config))
     (inputs
-     `(("boost" ,boost)
-       ("cereal" ,cereal)
-       ("cgal" ,cgal)
-       ("curl" ,curl)
-       ("dbus" ,dbus)
-       ("eigen" ,eigen)
-       ("expat" ,expat)
-       ("glew" ,glew)
-       ("glib" ,glib)
-       ("gmp" ,gmp)
-       ("gtk" ,gtk+)
-       ("hidapi" ,hidapi)
-       ("ilmbase" ,ilmbase)
-       ("libigl" ,libigl)
-       ("libpng" ,libpng)
-       ("mesa" ,mesa)
-       ("mpfr" ,mpfr)
-       ("nlopt" ,nlopt)
-       ("openvdb" ,openvdb)
-       ("pango" ,pango)
-       ("tbb" ,tbb)
-       ("udev" ,eudev)
-       ("wxwidgets" ,wxwidgets)
-       ("zlib" ,zlib)))
+     (list boost
+           cereal
+           cgal
+           curl
+           dbus
+           eigen
+           expat
+           glew
+           glib
+           gmp
+           gtk+
+           hidapi
+           ilmbase
+           libigl
+           libpng
+           mesa
+           mpfr
+           nlopt
+           openvdb
+           pango
+           tbb
+           eudev
+           wxwidgets
+           zlib))
     (home-page "https://www.prusa3d.com/prusaslicer/")
     (synopsis "G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)")
     (description "PrusaSlicer takes 3D models (STL, OBJ, AMF) and converts them into
 G-code instructions for FFF printers or PNG layers for mSLA 3D printers.")
-    (license license:agpl3)))
+    (license license:agpl3)
+
+    ;; Mark as tunable to take advantage of SIMD code in Eigen and in libigl.
+    (properties '((tunable? . #t)))))