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.scm194
1 files changed, 119 insertions, 75 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 88f541d2e9..e0f7199d2e 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; 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-2019, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -37,6 +37,7 @@
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022, 2023 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2023 Theofilos Pechlivanis <theofilos.pechlivanis@gmail.com>
+;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -54,24 +55,24 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages engineering)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix gexp)
- #:use-module (guix git-download)
- #:use-module (guix svn-download)
- #:use-module (guix monads)
- #:use-module (guix store)
- #:use-module (guix utils)
- #:use-module ((srfi srfi-1) #:hide (zip))
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system ant)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system emacs)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix monads)
+ #:use-module (guix packages)
+ #:use-module (guix store)
+ #:use-module (guix svn-download)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
@@ -84,12 +85,10 @@
#: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)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
- #:use-module (gnu packages gawk)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages digest)
#:use-module (gnu packages docbook)
@@ -99,6 +98,7 @@
#:use-module (gnu packages fontutils)
#:use-module (gnu packages fpga)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
#:use-module (gnu packages geo)
@@ -114,19 +114,21 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages image)
- #:use-module (gnu packages image-processing)
#:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages image-processing)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux) ;FIXME: for pcb
#:use-module (gnu packages lisp)
#:use-module (gnu packages m4)
- #:use-module (gnu packages maths)
#:use-module (gnu packages man)
- #:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
+ #:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages openkinect)
+ #:use-module (gnu packages openkinect)
#:use-module (gnu packages parallel)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
@@ -150,20 +152,20 @@
#:use-module (gnu packages swig)
#:use-module (gnu packages tbb)
#:use-module (gnu packages tcl)
+ #:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages text-editors)
#:use-module (gnu packages time)
- #:use-module (gnu packages tree-sitter)
#:use-module (gnu packages tls)
- #:use-module (gnu packages tex)
+ #:use-module (gnu packages tree-sitter)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
- #:use-module (gnu packages xml)
- #:use-module (gnu packages xiph)
- #:use-module (gnu packages openkinect)
#:use-module (gnu packages xdisorg)
- #:use-module (gnu packages xorg))
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg)
+ #:use-module ((srfi srfi-1) #:hide (zip)))
(define-public librecad
(package
@@ -713,58 +715,58 @@ multipole-accelerated algorithm.")
(package
(name "fritzing")
(version "0.9.6")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fritzing/fritzing-app")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs"))))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fritzing/fritzing-app")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (copy-recursively (assoc-ref inputs "fritzing-parts-db")
- "parts")
- ;; Use system libgit2 and boost.
- (substitute* "phoenix.pro"
- (("^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"
- (string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," out "/lib")
- (string-append "PREFIX=" out)
- "phoenix.pro")))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ ;; Integrate parts library
+ (copy-recursively
+ (string-append #$(this-package-native-input "fritzing-parts")
+ "/share/library")
+ "parts")
+ ;; Use system libgit2 and boost.
+ (substitute* "phoenix.pro"
+ (("^LIBGIT_STATIC.*")
+ (string-append
+ "LIBGIT2INCLUDE=" #$(this-package-input "libgit2") "/include\n"
+ "LIBGIT2LIB=" #$(this-package-input "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\";"))
+ ;; XXX: NixOS and Gento have a phase where they generate part
+ ;; SQLite library, have proper investigation if it's required in
+ ;; Guix as well.
+ (invoke "qmake"
+ (string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," #$output "/lib")
+ (string-append "PREFIX=" #$output)
+ "phoenix.pro"))))))
+ (native-inputs
+ (list fritzing-parts))
(inputs
- `(("qtbase" ,qtbase-5)
- ("qtserialport" ,qtserialport)
- ("qtsvg-5" ,qtsvg-5)
- ("libgit2" ,libgit2)
- ("boost" ,boost)
- ("zlib" ,zlib)
- ("fritzing-parts-db"
- ,(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fritzing/fritzing-parts")
- (commit (string-append "release_" version))))
- (file-name (git-file-name "fritzing-parts" version))
- (sha256
- (base32
- "0wsvn57v6n0ygnhk2my94rrfzb962z1cj4d1xmp1farwck3811h6"))))))
+ (list boost
+ libgit2
+ qtbase-5
+ ;; TODO: Needs to be renamed to qtserialport-5. when version 6 is
+ ;; packed.
+ qtserialport
+ qtsvg-5
+ zlib))
(home-page "https://fritzing.org")
(synopsis "Electronic circuit design")
(description
@@ -778,6 +780,43 @@ ready for production.")
;; released under GPLv3+.
(license (list license:gpl3+ license:cc-by-sa3.0))))
+(define-public fritzing-parts
+ ;; XXX: Release of the parts stopped in 2016 and it looks like develop
+ ;; branch has latest changes comparing to other branches.
+ (let ((commit "d61d63de9294343b1b6e86f149e78e4b1d3a0009")
+ (revision "0"))
+ (package
+ (name "fritzing-parts")
+ (version (git-version "0.9.6" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fritzing/fritzing-parts")
+ (commit commit)))
+ (file-name (git-file-name "fritzing-parts" version))
+ (sha256
+ (base32 "0g39ja1aqw5qx8alf61m6zcy6y78j9ky556x6x1cnd6g7kkzd861"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan
+ #~'(("." "share/library/"
+ #:exclude-regexp (".github.*"
+ ".gitignore"
+ "CONTRIBUTING.md"
+ "LICENSE.txt"
+ "README.md")))
+ #:modules '(((guix build gnu-build-system) #:prefix gnu:)
+ (guix build copy-build-system)
+ (guix build utils)
+ (ice-9 match))))
+ (home-page "https://fritzing.org")
+ (synopsis "Electronic components (parts library) for use in the Fritzing app")
+ (description "This package contains all part definitions that are
+required for Fritzing app.")
+ (license license:cc-by-sa3.0))))
+
(define-public qelectrotech
(package
(name "qelectrotech")
@@ -2242,7 +2281,11 @@ parallel computing platforms. It also supports serial execution.")
#t)))))
(inputs
(list coreutils
- gcc-toolchain
+
+ ;; Lazily resolve the gcc-toolchain to avoid a circular dependency.
+ (module-ref (resolve-interface '(gnu packages commencement))
+ 'gcc-toolchain)
+
guile-2.2
perl
pkg-config
@@ -2406,7 +2449,7 @@ simulation.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/radareorg/cutter")
+ (url "https://github.com/rizinorg/cutter")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -2436,7 +2479,7 @@ simulation.")
;; 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-for-cutter))
- (home-page "https://github.com/radareorg/cutter")
+ (home-page "https://cutter.re")
(synopsis "GUI for radare2 reverse engineering framework")
(description "Cutter is a GUI for radare2 reverse engineering framework.
Its goal is making an advanced andcustomizable reverse-engineering platform
@@ -2687,7 +2730,7 @@ comments.")))
(define-public freecad
(package
(name "freecad")
- (version "0.20.2")
+ (version "0.21.0")
(source
(origin
(method git-fetch)
@@ -2696,7 +2739,7 @@ comments.")))
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0wsfz2jqfhmqshyr1n4qxcc3c6a96gyll4h34vn2zzvvcnncn9rb"))))
+ (base32 "1i1wv3swnnimmn3kwphb2fcmsc64z96rcg7fhfsgqxcbyrygw6w7"))))
(build-system qt-build-system)
(native-inputs
(list doxygen
@@ -2710,6 +2753,7 @@ comments.")))
coin3D
double-conversion
eigen
+ fmt
fontconfig
freetype
gl2ps