aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/engineering.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/engineering.scm')
-rw-r--r--gnu/packages/engineering.scm138
1 files changed, 111 insertions, 27 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 6f449f0c39..3f891b0629 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
-;;; Copyright © 2020,2021 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020,2021,2024 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020, 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
@@ -868,6 +868,8 @@ is commonly used to represent printed circuit board (PCB) layouts. Gerbv lets
you load several files on top of each other, do measurements on the displayed
image, etc. Besides viewing Gerbers, you may also view Excellon drill files
as well as pick-place files.")
+ ;; This CVE has been fixed in version 2.10.0.
+ (properties '((lint-hidden-cve . ("CVE-2023-4508"))))
(license license:gpl2+)))
(define-public translate2geda
@@ -2092,8 +2094,10 @@ an embedded event driven algorithm.")
(inherit libngspice)
(name "ngspice")
(arguments
- (substitute-keyword-arguments (package-arguments libngspice)
- ((#:tests? _ #f) #t)
+ (substitute-keyword-arguments
+ (strip-keyword-arguments
+ (list #:tests?)
+ (package-arguments libngspice))
((#:configure-flags flags)
#~(cons "--with-readline=yes"
(delete "--with-ngshared"
@@ -2665,9 +2669,14 @@ specification can be downloaded at @url{http://3mf.io/specification/}.")
(substitute* "pyvisa/shell.py"
(("from .thirdparty import prettytable")
"import prettytable")))))))
- (native-inputs (list python-pytest))
- (propagated-inputs (list python-dataclasses python-prettytable
- python-typing-extensions))
+ (native-inputs
+ (list python-pytest
+ python-setuptools
+ python-wheel))
+ (propagated-inputs
+ (list python-dataclasses
+ python-prettytable
+ python-typing-extensions))
(home-page "https://pyvisa.readthedocs.io/en/latest/")
(synopsis "Python binding for the VISA library")
(description "PyVISA is a Python package for support of the
@@ -2748,6 +2757,12 @@ Newton-Raphson power flow solvers in the C++ library lightsim2grid, and the
"0idr730zdwlxdqyvh3s24720pxrjhwixih24gbqzipgp8nh0713i"))
(file-name (git-file-name name version))))
(build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags '(list ;; Missing docscrape dependency.
+ "--ignore=doc/sphinxext/tests/test_docscrape.py"
+ ;; these test require network
+ "--ignore=skrf/tests/test_network.py")))
(propagated-inputs (list python-matplotlib
python-networkx
python-numpy
@@ -2926,10 +2941,37 @@ full programmatic control over your models.")
OpenSCAD code. It supports syntax highlighting, indenting and refilling of
comments.")))
+(define-public ondsel-solver
+ (let ((commit "2e3659c4bce3e6885269e0cb3d640261b2a91108")
+ (revision "1"))
+ (package
+ (name "ondsel-solver")
+ ;; There's no tagged release
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Ondsel-Development/OndselSolver")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1bgk3asyz47r1kvdgcz8q7sh1g29przdsx9ib1jqqbc0nv8ww68v"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f)) ;; Tests require Google's gtest and gmock
+ ;; The company is shutting down, so https://ondsel.com may not exist for long
+ (home-page "https://github.com/Ondsel-Development/OndselSolver")
+ (synopsis "Assembly Constraints and Multibody Dynamics code")
+ (description
+ "The OndselSolver library for assembly constraints and multibody
+dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
+ (license license:lgpl2.1+))))
+
(define-public freecad
(package
(name "freecad")
- (version "0.21.2")
+ (version "1.0.0")
(source
(origin
(method git-fetch)
@@ -2938,12 +2980,19 @@ comments.")))
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0s720q6vxlh78jzahqp69nl8wagb42l05dym5aqhfnr31dx666hc"))
- ;; https://github.com/FreeCAD/FreeCAD/pull/11496
- (patches (search-patches "freecad-vtk-9.3.patch"))))
+ (base32 "0wwymcfgi0cybj7m6awflk8c7n6iy97lpgpfhfncx3zwvjrxv588"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; not required, because 3D mouse support if OFF
+ (delete-file-recursively "src/3rdParty/3Dconnexion")
+ (delete-file-recursively "src/3rdParty/GSL") ;; c++-gsl
+ (delete-file-recursively "src/3rdParty/OndselSolver") ;; ondsel-solver
+ (delete-file-recursively "src/3rdParty/OpenGL"))))) ;; glext.h from mesa
(build-system qt-build-system)
(native-inputs
- (list doxygen
+ (list c++-gsl
+ doxygen
graphviz
qttools-5
pkg-config
@@ -2973,6 +3022,7 @@ comments.")))
libxmu
lz4
netcdf
+ ondsel-solver
opencascade-occt
openmpi
proj
@@ -2995,14 +3045,19 @@ comments.")))
tbb-2020 ; Same version as opencascade-occt
vtk
xerces-c
+ yaml-cpp
zlib))
(arguments
- `(#:tests? #f ; Project has no tests
+ `(#:tests? #f ;; Project has tests, but they are a pain to build
#:configure-flags
,#~(list
"-DBUILD_QT5=ON"
"-DBUILD_FLAT_MESH:BOOL=ON"
"-DBUILD_ENABLE_CXX_STD:STRING=C++17"
+ "-DENABLE_DEVELOPER_TESTS=OFF" ;; see the above: #:tests? comment
+ "-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=ON" ;; unbundle ondsel-solver
+ ;; Do not try to install modules into system python
+ "-DINSTALL_TO_SITEPACKAGES=OFF"
(string-append "-DCMAKE_INSTALL_LIBDIR=" #$output "/lib"))
#:phases
(modify-phases %standard-phases
@@ -4248,6 +4303,34 @@ larger project called Cura.")
compiled translations. Prebuilt Firmware files are removed.")
(license license:agpl3)))
+(define-public udis86
+ (let ((commit "5336633af70f3917760a6d441ff02d93477b0c86")
+ (revision "0"))
+ (package
+ (name "udis86")
+ (version (git-version "1.7.2" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/canihavesomecoffee/udis86")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0y5z1169wff578jylpafsww4px4y6gickhcs885a9c660d8xs9qy"))))
+ (build-system gnu-build-system)
+ (native-inputs (list autoconf automake libtool python-minimal-wrapper))
+ ;; Fork of <https://github.com/vmt/udis86>.
+ (home-page "https://github.com/canihavesomecoffee/udis86")
+ (synopsis "Disassembler library for x86 and x86-64")
+ (description
+ "Udis86 is a disassembler for the x86 and x86-64 class of instruction
+set architectures. It consists of a C library called @code{libudis86} which
+provides a clean and simple interface to decode and inspect a stream of raw
+binary data as disassembled instructions in a structured manner, and a command
+line tool called @command{udcli} that incorporates the library.")
+ (license license:bsd-2))))
+
(define-public uranium
(package
(name "uranium")
@@ -4709,11 +4792,18 @@ more.")
"0bazk3k2dyzlrh7yxs4pc76m5ysm7riia3ncg7as3xr4y9dy29bx"))))
(build-system pyproject-build-system)
(native-inputs
- (list python-pytest-asyncio python-pytest-runner python-asynctest
- python-pytest-mock))
+ (list python-asynctest
+ python-pytest-asyncio
+ python-pytest-mock
+ python-pytest-runner
+ python-setuptools
+ python-wheel))
(propagated-inputs
- (list python-aiofiles python-aiosqlite python-cryptography
- python-importlib-metadata python-dateutil python-pytz
+ (list python-aiofiles
+ python-aiosqlite
+ python-cryptography
+ python-dateutil python-pytz
+ python-importlib-metadata
python-sortedcontainers))
(synopsis "OPC UA / IEC 62541 client and server library")
(description "This package provides an OPC UA / IEC 62541 client and
@@ -4724,16 +4814,17 @@ server for Python and pypy3.")
(define-public cadabra2
(package
(name "cadabra2")
- (version "2.4.5.6")
+ (version "2.5.8")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kpeeters/cadabra2")
- (commit version)))
+ (commit version)
+ (recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32
- "1c0832q156kl83dz1wpjw4wf2f68fg7421wxwzahnr2r7xxvgrvl"))))
+ "0pcijvvv75x6408r6slkwljhqb4l4csnk6dhf5333dv9j9cm76ck"))))
(build-system cmake-build-system)
(arguments
(list
@@ -4748,20 +4839,13 @@ server for Python and pypy3.")
(assoc-ref %outputs "out")))
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'patch-dependencies
- (lambda _
- (substitute* "cmake/modules/FindGLIBMM.cmake"
- (("glibmm-2[.]4") "glibmm-2.68"))
- (substitute* "client_server/ComputeThread.cc"
- (("sigc::slot<void>[(][)]") "{}")
- (("Glib::SPAWN_") "Glib::SpawnFlags::"))))
(add-before 'check 'prepare-checks
(lambda _
(setenv "HOME" "/tmp"))))))
(native-inputs
(list pkg-config))
(inputs
- (list glibmm gmp python boost gtkmm-3 sqlite python-gmpy2 python-sympy
+ (list glibmm-2.66 gmp python boost gtkmm-3 sqlite python-gmpy2 python-sympy
python-mpmath python-matplotlib texlive-dvipng
`(,util-linux "lib")))
(synopsis "Computer algebra system geared towards field theory")