summaryrefslogtreecommitdiff
path: root/gnu/packages/engineering.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-01-30 11:33:18 +0200
committerEfraim Flashner <efraim@flashner.co.il>2023-01-30 12:39:40 +0200
commit4cf1acc7f3033b50b0bf19e02c9f522d522d338c (patch)
tree9fd64956ee60304c15387eb394cd649e49f01467 /gnu/packages/engineering.scm
parentedb8c09addd186d9538d43b12af74d6c7aeea082 (diff)
parent595b53b74e3ef57a1c0c96108ba86d38a170a241 (diff)
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts: doc/guix.texi gnu/local.mk gnu/packages/admin.scm gnu/packages/base.scm gnu/packages/chromium.scm gnu/packages/compression.scm gnu/packages/databases.scm gnu/packages/diffoscope.scm gnu/packages/freedesktop.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/guile.scm gnu/packages/inkscape.scm gnu/packages/llvm.scm gnu/packages/openldap.scm gnu/packages/pciutils.scm gnu/packages/ruby.scm gnu/packages/samba.scm gnu/packages/sqlite.scm gnu/packages/statistics.scm gnu/packages/syndication.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/copy.scm guix/scripts/home.scm
Diffstat (limited to 'gnu/packages/engineering.scm')
-rw-r--r--gnu/packages/engineering.scm207
1 files changed, 144 insertions, 63 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 5c84b9ede0..14beec9d28 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
-;;; Copyright © 2016, 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2020-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
@@ -16,7 +16,7 @@
;;; 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 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020, 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
@@ -81,6 +81,7 @@
#:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
+ #:use-module (gnu packages code)
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
@@ -669,7 +670,7 @@ multipole-accelerated algorithm.")
(define-public fritzing
(package
(name "fritzing")
- (version "0.9.3b")
+ (version "0.9.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -678,7 +679,7 @@ multipole-accelerated algorithm.")
(file-name (git-file-name name version))
(sha256
(base32
- "0hpyc550xfhr6gmnc85nq60w00rm0ljm0y744dp0z88ikl04f4s3"))))
+ "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -687,24 +688,18 @@ multipole-accelerated algorithm.")
(lambda* (#:key inputs outputs #:allow-other-keys)
(copy-recursively (assoc-ref inputs "fritzing-parts-db")
"parts")
- ;; Make compatible with libgit2 > 0.24
- (substitute* "src/version/partschecker.cpp"
- (("error = git_remote_connect\\(remote, GIT_DIRECTION_FETCH, &callbacks\\)")
- "error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, NULL, NULL)"))
-
;; Use system libgit2 and boost.
(substitute* "phoenix.pro"
- (("^LIBGIT2INCLUDE =.*")
- (string-append "LIBGIT2INCLUDE="
- (assoc-ref inputs "libgit2") "/include\n"))
- (("^ LIBGIT2LIB =.*")
- (string-append " LIBGIT2LIB="
- (assoc-ref inputs "libgit2") "/lib\n")))
- ;; This file checks for old versions of Boost, insisting on
- ;; having us download the boost sources and placing them in the
- ;; build directory.
- (substitute* "pri/utils.pri"
- (("error\\(") "message("))
+ (("^LIBGIT_STATIC.*")
+ (string-append "LIBGIT2INCLUDE=" (assoc-ref inputs "libgit2") "/include\n"
+ "LIBGIT2LIB=" (assoc-ref inputs "libgit2") "/lib\n"
+ "INCLUDEPATH += $$LIBGIT2INCLUDE\n"
+ "LIBS += -L$$LIBGIT2LIB -lgit2\n"))
+ (("^.*pri/libgit2detect.pri.") ""))
+ ;; Trick the internal mechanism to load the parts
+ (substitute* "src/version/partschecker.cpp"
+ ((".*git_libgit2_init.*")
+ "return \"083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs\";"))
(let ((out (assoc-ref outputs "out")))
(invoke "qmake"
@@ -723,11 +718,11 @@ multipole-accelerated algorithm.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/fritzing/fritzing-parts")
- (commit version)))
+ (commit (string-append "release_" version))))
(file-name (git-file-name "fritzing-parts" version))
(sha256
(base32
- "1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1"))))))
+ "0wsvn57v6n0ygnhk2my94rrfzb962z1cj4d1xmp1farwck3811h6"))))))
(home-page "https://fritzing.org")
(synopsis "Electronic circuit design")
(description
@@ -949,7 +944,7 @@ Emacs).")
(define-public kicad
(package
(name "kicad")
- (version "6.0.7")
+ (version "6.0.10")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -957,7 +952,7 @@ Emacs).")
(commit version)))
(sha256
(base32
- "10bqn99nif9zyi5v0lkic3na2vac5lgacw01ayil359vaw7d0pzy"))
+ "0pz8d96imc0q3nh7npr5zf0jkzi94wchvw57spcrgqfac9yrld3q"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@@ -970,6 +965,7 @@ Emacs).")
#$(this-package-input "opencascade-occt")
"/include/opencascade")
"-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
+ "-DKICAD_USE_EGL=ON" ;because wxWidgets uses EGL
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
#:phases
(modify-phases %standard-phases
@@ -980,16 +976,6 @@ Emacs).")
(string-append "NGSPICE_DLL_FILE=\""
(assoc-ref inputs "libngspice")
"/lib/libngspice.so\"")))))
- (add-after 'unpack 'fix-python-detection
- (lambda _
- (substitute* "CMakeModules/FindPythonLibs.cmake"
- (("_PYTHON3_VERSIONS 3\\.8 3\\.7")
- "_PYTHON3_VERSIONS 3.9 3.8 3.7"))))
- (add-after 'unpack 'add-missing-include
- (lambda _
- (substitute* "common/lib_tree_model.cpp"
- (("#include <eda_pattern_match.h>" all)
- (string-append "#include <algorithm>\n" all)))))
(add-after 'install 'wrap-program
;; Ensure correct Python at runtime.
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -1042,7 +1028,8 @@ Emacs).")
python-wrapper
gtk+
wxwidgets
- python-wxpython))
+ python-wxpython
+ gdk-pixbuf))
(home-page "https://www.kicad.org/")
(synopsis "Electronics Design Automation Suite")
(description
@@ -1064,7 +1051,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(file-name (git-file-name name version))
(sha256
(base32
- "15arkjjbzd4k09crhsrizmj8ljwpv6xjm59k58pfbd5pmqkklh2d"))))
+ "06aw8f1pnh63dscv2bkii0cpr2m5yc4baka3avszsxnv8mqn0hwx"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html")
@@ -1098,7 +1085,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(file-name (git-file-name name version))
(sha256
(base32
- "006ksx8r6cm6q7v701nalggivp21cmysj8p9zc18y3sch8n1mj4g"))))
+ "1fwnr8x345jbifk71rhyd4b88c4ijp2rcw3pmivnwfb444hbr1lp"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests exist
@@ -1127,7 +1114,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
- "0c5fm4hlkka0ms43j02kbv7s9yrlkffn0jz6649ac3gpx6pk8lbf"))))
+ "1rs05n1wjb2w3x7xqkkijbdxyw3fj0fph8znvnsxp9bgwaaipd4h"))))
(synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries.")))
@@ -1144,7 +1131,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
- "0rdhwyhknrc63sc5ykmq097rzrl36zibnkls7q5hf54lrhn0n3k4"))))
+ "0nmvfchp25i4bkx6yf7fz1rwy7w6whj2w7mlp02ag3w5v4f137vz"))))
(synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries.")))
@@ -1643,7 +1630,7 @@ bindings for Python, Java, OCaml and more.")
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir-and-fix-setup-py
- (lambda _
+ (lambda* (#:key inputs #:allow-other-keys)
(chdir "bindings/python")
;; Do not build the library again, because we already have it.
(substitute* "setup.py" ((".* build_libraries.*") ""))
@@ -1651,8 +1638,13 @@ bindings for Python, Java, OCaml and more.")
;; library.
(substitute* "capstone/__init__.py"
(("pkg_resources.resource_filename.*")
- (string-append "'" (assoc-ref %build-inputs "capstone") "/lib',\n")))
- #t)))))))
+ (string-append "'" (dirname (search-input-file
+ inputs "lib/libcapstone.so"))
+ "',\n")))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "check")))))))))
(define-public python-esptool-3.0
@@ -1786,7 +1778,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#236>.
(package
(name "libngspice")
- (version "37")
+ (version "38")
(source
(origin
(method url-fetch)
@@ -1797,7 +1789,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
"old-releases/" version
"/ngspice-" version ".tar.gz")))
(sha256
- (base32 "1gpcic6b6xk3g4956jcsqljf33kj5g43cahmydq6m8rn39sadvlv"))))
+ (base32 "0mkw66d2isyyxssziwramd08amd7l1qm6dfg86r5s5kvqkv24gic"))))
(build-system gnu-build-system)
(arguments
`(;; No tests for libngspice exist.
@@ -2299,7 +2291,7 @@ engineers for reverse engineers.")
(define-public lib3mf
(package
(name "lib3mf")
- (version "2.1.1")
+ (version "2.2.0")
(source
(origin
(method git-fetch)
@@ -2308,20 +2300,48 @@ engineers for reverse engineers.")
(file-name (git-file-name name version))
(sha256
(base32
- "1417xlxc1y5jnipixhbjfrrjgkrprbbraj8647sff9051m3hpxc3"))))
+ "05zqvnzmi7j8rhp2mrskvxf1bxl7kb4c72dfx4y86219i1hx7i2q"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete pre-compiled ACT.
+ (delete-file-recursively "AutomaticComponentToolkit/bin")
+
+ ;; Remove bundled software. Preserve cpp-base64 as it has been
+ ;; modified and cannot easily be unbundled.
+ (for-each delete-file-recursively
+ '("Include/Libraries/libzip"
+ "Include/Libraries/zlib"
+ "Source/Libraries/libzip"
+ "Source/Libraries/zlib"))
+
+ ;; Adjust header includes such that system headers are found.
+ (substitute* '("Include/Common/OPC/NMR_OpcPackageReader.h"
+ "Include/Common/Platform/NMR_ImportStream_ZIP.h"
+ "Include/Common/Platform/NMR_ExportStream_ZIP.h"
+ "Include/Common/Platform/NMR_ImportStream_Compressed.h"
+ "Include/Common/Platform/NMR_ExportStream_Compressed.h"
+ "Source/Common/Platform/NMR_PortableZIPWriterEntry.cpp")
+ (("Libraries/libzip/") "")
+ (("Libraries/zlib/") ""))))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DUSE_INCLUDED_ZLIB=0"
"-DUSE_INCLUDED_LIBZIP=0"
"-DUSE_INCLUDED_GTEST=0"
- "-DUSE_INCLUDED_SSL=0")))
+ "-DUSE_INCLUDED_SSL=0")
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'provide-act
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (let ((act (search-input-file (or native-inputs inputs)
+ "bin/act"))
+ (dir "AutomaticComponentToolkit/bin"))
+ (mkdir-p dir)
+ (symlink act (string-append dir "/act.linux"))))))))
(native-inputs
- (list googletest pkg-config))
+ (list automatic-component-toolkit googletest pkg-config))
(inputs
- `(("libuuid" ,util-linux "lib")
- ("libzip" ,libzip)
- ("libressl" ,libressl)
- ("zlib" ,zlib)))
+ (list `(,util-linux "lib") libzip libressl zlib))
(synopsis "Implementation of the 3D Manufacturing Format (3MF) file standard")
(description
"Lib3MF is a C++ implementation of the 3D Manufacturing Format (3MF) file
@@ -2442,7 +2462,7 @@ comments.")))
(define-public freecad
(package
(name "freecad")
- (version "0.20.1")
+ (version "0.20.2")
(source
(origin
(method git-fetch)
@@ -2451,7 +2471,7 @@ comments.")))
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1pgkjlahisqjvi3dd7ywj1zwhsl3wn3p15sifbmrdfdmw9is3z2b"))))
+ (base32 "0wsfz2jqfhmqshyr1n4qxcc3c6a96gyll4h34vn2zzvvcnncn9rb"))))
(build-system qt-build-system)
(native-inputs
(list doxygen
@@ -2585,6 +2605,36 @@ arithmetic operations on fields, entity location functionalities, and
interpolation toolkit.")
(license license:gpl3+)))
+(define-public cgns
+ (package
+ (name "cgns")
+ (version "4.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/CGNS/CGNS")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0jig1y7lv9qk1ri2gqws7ffpajmhxnank7gbyna9hfaghsxdlnvd"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags
+ '(list "-DCGNS_ENABLE_TESTS=ON"
+ "-DCGNS_ENABLE_FORTRAN=ON")))
+ (inputs (list hdf5 gfortran))
+ (home-page "https://cgns.org/")
+ (synopsis "Read and write computational fluid dynamics analysis data")
+ (description "This package provides software that reads, writes, and
+modifies data in the @dfn{CFD General Notation System} (CGNS) format. The
+format is meant for recording and recovering computer data associated with the
+numerical solution of fluid dynamics equations. The format is a conceptual
+entity established by the documentation; the software is a physical product
+supplied to enable developers to access and produce data recorded in that
+format.")
+ (license license:zlib)))
+
(define-public libarea
(let ((revision "1")
(commit "8f8bac811c10f1f01fda0d742a18591f61dd76ee"))
@@ -2794,13 +2844,13 @@ program that can perform mesh processing tasks in batch mode, without a GUI.")
(define-public poke
(package
(name "poke")
- (version "2.4")
+ (version "3.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/poke/poke-" version
".tar.gz"))
(sha256
- (base32 "0ivfzslpdy0n9wcdjyascnqczppaxcq0x4x6hblqqwy62xcjh7l4"))
+ (base32 "1pbs6587wcbgdhn4v4l896nzdv7ymgpdmyls95y3534z7krv5abr"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -2851,7 +2901,11 @@ program that can perform mesh processing tasks in batch mode, without a GUI.")
(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")))
+ `(#:configure-flags
+ '("--enable-mi"
+ "--disable-static"
+ ;; The emacs files are provided in emacs-poke.
+ "--with-lispdir=/tmp/share/emacs")))
(home-page "https://www.gnu.org/software/poke/#documentation")
(synopsis "Editing of arbitrary binary data")
(description "GNU poke is an interactive, extensible editor for binary data.
@@ -2860,6 +2914,24 @@ full-fledged procedural, interactive programming language designed to describe
data structures and to operate on them.")
(license license:gpl3+)))
+(define-public emacs-poke
+ (package
+ (inherit poke)
+ (name "emacs-poke")
+ (build-system emacs-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'expand-load-path 'change-working-directory
+ (lambda _ (chdir "etc"))))))
+ (inputs '())
+ (native-inputs '())
+ (synopsis "GNU Poke major modes for Emacs")
+ (description
+ "This package provides two Emacs major modes for working with GNU Poke:
+@code{Poke Ras mode} and @code{Poke Map mode}.")))
+
(define-public pcb2gcode
;; Take some additional commits after v2.4.0 to fix build against
;; geos 3.10.1.
@@ -3279,7 +3351,7 @@ visualization, matrix manipulation.")
(define-public prusa-slicer
(package
(name "prusa-slicer")
- (version "2.4.2")
+ (version "2.5.0")
(source
(origin
(method git-fetch)
@@ -3288,7 +3360,7 @@ visualization, matrix manipulation.")
(url "https://github.com/prusa3d/PrusaSlicer")
(commit (string-append "version_" version))))
(file-name (git-file-name name version))
- (sha256 (base32 "17p56f0zmiryy8k4da02in1l6yxniz286gf9yz8s1gaz5ksqj4af"))
+ (sha256 (base32 "17ic92ww2ny0frxyv7ajwdwa0fq70ygq562ik8sh94jx67jvxdy0"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -3337,15 +3409,19 @@ visualization, matrix manipulation.")
hidapi
ilmbase
libigl
+ libjpeg-turbo
libpng
mesa
mpfr
nlopt
+ opencascade-occt
openvdb
pango
tbb
eudev
- wxwidgets
+ ;; prusa-slicer 2.5 segfaults on startup with wxwidgets 3.2
+ ;; See https://github.com/prusa3d/PrusaSlicer/issues/8299
+ wxwidgets-3.0
zlib))
(home-page "https://www.prusa3d.com/prusaslicer/")
(synopsis "G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)")
@@ -3400,6 +3476,11 @@ BOM creation and has a lot of extra features.")
#:configure-flags '("-DBUILD_EXAMPLES=OFF")
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-protobuf-compatibility
+ (lambda _
+ (substitute* "src/Socket_p.h"
+ (("stream\\.SetTotalBytesLimit\\(message_size_maximum,.*\\);")
+ "stream.SetTotalBytesLimit(message_size_maximum);"))))
(add-before 'configure 'fix-python-sitearch
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "cmake/FindSIP.cmake"
@@ -3863,7 +3944,7 @@ form, numpad.
(define-public rizin
(package
(name "rizin")
- (version "0.4.0")
+ (version "0.4.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3871,7 +3952,7 @@ form, numpad.
version "/rizin-src-v" version ".tar.xz"))
(sha256
(base32
- "0nkb6v9lks25w5sv5s6p2ghgqnnnsf39md8nlx1cy4z89xlaisq9"))))
+ "1f5zzlnr2na4hkvcwn4n9cjlk6595945vwrw89pa683qk5mrb7b6"))))
(build-system meson-build-system)
(arguments
(list