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.scm377
1 files changed, 234 insertions, 143 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index b39c9ecb47..3b8bcd9194 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -67,6 +67,7 @@
#:use-module (gnu packages curl)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages digest)
+ #:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
@@ -102,6 +103,7 @@
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
@@ -272,14 +274,14 @@ utilities.")
(package
(inherit geda-gaf)
(name "lepton-eda")
- (version "1.9.11-20200604")
+ (version "1.9.13-20201211")
(home-page "https://github.com/lepton-eda/lepton-eda")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit version)))
(sha256
(base32
- "091y8h7wcr9smwhb1wf12sj27n5jrannbj3y6qq3q2gwiifiz8sd"))
+ "0xfx6d0pyfrxr1c0nm4pbmb716hng78rgizaa6vsas9347n4kk1n"))
(file-name (git-file-name name version))))
(native-inputs
`(("autoconf" ,autoconf)
@@ -293,56 +295,93 @@ utilities.")
,@(package-native-inputs geda-gaf)))
(inputs
`(("glib" ,glib)
- ("gtk" ,gtk+-2)
+ ("gtk" ,gtk+)
+ ("gtksheet" ,gtksheet)
("guile" ,guile-2.2)
("shared-mime-info" ,shared-mime-info)
("m4" ,m4)
("pcb" ,pcb)))
(arguments
- (substitute-keyword-arguments (package-arguments geda-gaf)
- ((#:configure-flags flags ''())
- ;; When running "make", the POT files are built with the build time as
- ;; their "POT-Creation-Date". Later on, "make" notices that .pot
- ;; files were updated and goes on to run "msgmerge"; as a result, the
- ;; non-deterministic POT-Creation-Date finds its way into .po files,
- ;; and then in .gmo files. To avoid that, simply make sure 'msgmerge'
- ;; never runs. See <https://bugs.debian.org/792687>.
- `(cons "ac_cv_path_MSGMERGE=true" ,flags))
- ((#:phases phases '%standard-phases)
- `(modify-phases %standard-phases
- (add-before 'bootstrap 'prepare
- (lambda _
- ;; Some of the scripts there are invoked by autogen.sh.
- (for-each patch-shebang (find-files "build-tools"))
-
- ;; Make sure 'msgmerge' can modify the PO files.
- (for-each (lambda (po)
- (chmod po #o666))
- (find-files "." "\\.po$"))
-
- ;; This would normally be created by invoking 'git', but it
- ;; doesn't work here.
- (call-with-output-file "version.h"
- (lambda (port)
- (format port "#define PACKAGE_DATE_VERSION \"~a\"~%"
- ,(string-drop version
- (+ 1 (string-index version #\-))))
- (format port "#define PACKAGE_DOTTED_VERSION \"~a\"~%"
- ,(string-take version
- (string-index version #\-)))
- (format port "#define PACKAGE_GIT_COMMIT \"cabbag3\"~%")))
- #t))
- (add-after 'install 'compile-scheme-files
- (lambda* (#:key outputs #:allow-other-keys)
- (invoke "make" "precompile")
- (for-each (lambda (program)
- (wrap-program program
- `("GUILE_LOAD_COMPILED_PATH" ":" prefix
- (,(string-append (assoc-ref outputs "out")
- "/share/lepton-eda/ccache/")))))
- (find-files (string-append (assoc-ref outputs "out") "/bin")
- ".*"))
- #t))))))
+ `(#:configure-flags
+ (let ((pcb (assoc-ref %build-inputs "pcb")))
+ ;; When running "make", the POT files are built with the build time as
+ ;; their "POT-Creation-Date". Later on, "make" notices that .pot
+ ;; files were updated and goes on to run "msgmerge"; as a result, the
+ ;; non-deterministic POT-Creation-Date finds its way into .po files,
+ ;; and then in .gmo files. To avoid that, simply make sure 'msgmerge'
+ ;; never runs. See <https://bugs.debian.org/792687>.
+ (list "ac_cv_path_MSGMERGE=true"
+ "--with-gtk3"
+ (string-append "--with-pcb-datadir=" pcb "/share")
+ (string-append "--with-pcb-lib-path="
+ pcb "/share/pcb/pcblib-newlib:"
+ pcb "/share/pcb/newlib")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-dynamic-link
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "libleptongui/scheme/schematic/ffi.scm.in"
+ (("@LIBLEPTONGUI@")
+ (string-append (assoc-ref outputs "out")
+ "/lib/libleptongui.so")))
+ (substitute* '("libleptongui/scheme/schematic/ffi/gtk.scm.in"
+ "libleptonattrib/lepton-attrib.scm")
+ (("@LIBGTK@")
+ (string-append (assoc-ref inputs "gtk")
+ "/lib/libgtk-3.so")))
+ (substitute* "liblepton/scheme/lepton/ffi.scm.in"
+ (("@LIBLEPTON@")
+ (string-append (assoc-ref outputs "out")
+ "/lib/liblepton.so")))
+ (substitute* "libleptonattrib/lepton-attrib.scm"
+ (("@LIBLEPTONATTRIB@")
+ (string-append (assoc-ref outputs "out")
+ "/lib/libleptonattrib.so")))
+ (substitute* "liblepton/scheme/lepton/log.scm.in"
+ (("@LIBGLIB@")
+ (string-append (assoc-ref inputs "glib")
+ "/lib/libglib-2.0.so")))
+
+ ;; For finding libraries when running tests before installation.
+ (setenv "LIBLEPTONGUI"
+ (string-append (getcwd)
+ "/libleptongui/src/.libs/libleptongui.so"))
+ (setenv "LIBLEPTON"
+ (string-append (getcwd)
+ "/libleptongui/src/.libs/liblepton.so"))
+ (setenv "LD_LIBRARY_PATH"
+ (string-append (getcwd) "/libleptonattrib/src/.libs/:"
+ (getenv "LIBRARY_PATH")))
+ #t))
+ (add-before 'bootstrap 'prepare
+ (lambda _
+ ;; Some of the scripts there are invoked by autogen.sh.
+ (for-each patch-shebang (find-files "build-tools"))
+
+ ;; Make sure 'msgmerge' can modify the PO files.
+ (for-each (lambda (po)
+ (chmod po #o666))
+ (find-files "." "\\.po$"))
+
+ ;; This would normally be created by invoking 'git', but it
+ ;; doesn't work here.
+ (call-with-output-file "version.h"
+ (lambda (port)
+ (format port "#define PACKAGE_DATE_VERSION \"~a\"~%"
+ ,(string-drop version
+ (+ 1 (string-index version #\-))))
+ (format port "#define PACKAGE_DOTTED_VERSION \"~a\"~%"
+ ,(string-take version
+ (string-index version #\-)))
+ (format port "#define PACKAGE_GIT_COMMIT \"cabbag3\"~%")))
+ #t))
+ (add-after 'install 'compile-scheme-files
+ (lambda* (#:key outputs #:allow-other-keys)
+ (unsetenv "LIBLEPTONGUI")
+ (unsetenv "LIBLEPTON")
+ (unsetenv "LD_LIBRARY_PATH")
+ (invoke "make" "precompile")
+ #t)))))
(description
"Lepton EDA ia an @dfn{electronic design automation} (EDA) tool set
forked from gEDA/gaf in late 2016. EDA tools are used for electrical circuit
@@ -849,7 +888,6 @@ The viewer can be used interactively with a REPL (for example Geiser in
Emacs).")
(license license:gpl3+))))
-;; TODO Add doc https://gitlab.com/kicad/services/kicad-doc/-/tree/master
(define-public kicad
(package
(name "kicad")
@@ -899,6 +937,9 @@ Emacs).")
#t)))))
(native-search-paths
(list (search-path-specification
+ (variable "KICAD") ; to find kicad-doc
+ (files '("")))
+ (search-path-specification
(variable "KICAD_TEMPLATE_DIR")
(files '("share/kicad/template")))
(search-path-specification
@@ -970,6 +1011,46 @@ translations for KiCad.")
(define-public kicad-i18l
(deprecated-package "kicad-i18l" kicad-i18n))
+(define-public kicad-doc
+ (package
+ (name "kicad-doc")
+ (version "5.1.6")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/kicad/services/kicad-doc.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "03kvss8a0xrjnfvkwymm0vfd7rn9ix7i926xdzz9jg9iycrjfj3g"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags (list "-DBUILD_FORMATS=html")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'build)
+ (add-before 'install 'set-perl-env
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "PERL5LIB"
+ (string-append (assoc-ref inputs "perl-unicode-linebreak")
+ "/lib/perl5/site_perl" ":"
+ (getenv "PERL5LIB")))
+ #t))
+ (delete 'check))))
+ (native-inputs
+ `(("asciidoc" ,asciidoc)
+ ("gettext" ,gettext-minimal)
+ ("git" ,git-minimal)
+ ("perl" ,perl)
+ ("perl-unicode-linebreak" ,perl-unicode-linebreak)
+ ("po4a" ,po4a)
+ ("source-highlight" ,source-highlight)))
+ (home-page "https://kicad.org")
+ (synopsis "KiCad official documentation")
+ (description "This repository contains the official KiCad documentation.")
+ (license license:gpl3+)))
+
(define-public kicad-symbols
(package
(name "kicad-symbols")
@@ -1077,7 +1158,7 @@ the 'showing the effect of'-style of operation.")
(define-public volk
(package
(name "volk")
- (version "2.4.0")
+ (version "2.4.1")
(source
(origin
(method git-fetch)
@@ -1087,7 +1168,7 @@ the 'showing the effect of'-style of operation.")
(recursive? #t))) ; for cpu_features git submodule
(file-name (git-file-name name version))
(sha256
- (base32 "14y0988r5qi1h3yvkivx5ihccn8r15910lq30r8iy71ih190r5m9"))))
+ (base32 "1mkqiw0i2fbbsk46zvk8yv5swl7ifhq6y1dlfphq8dsmkvxckqby"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@@ -1133,22 +1214,23 @@ use on a given system.")
(define-public libredwg
(package
(name "libredwg")
- (version "0.11")
+ (version "0.11.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/libredwg/libredwg-"
version ".tar.xz"))
(sha256
- (base32 "1vd7ii32k5447z7k4w9s005hv1ffpj6dyf1w40x6c53qksrblny2"))))
+ (base32 "1xx6y6ckm4mzqln8y8lqf5frcn2b32ypc0d0h9dzpz6363zh7pdn"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-bindings")))
(native-inputs
`(("libxml2" ,libxml2)
("parallel" ,parallel)
+ ("perl" ,perl)
("pkg-config" ,pkg-config)
- ("python" ,python)
+ ("python" ,python-wrapper)
("python-libxml2" ,python-libxml2)))
(inputs
`(("pcre2" ,pcre2)))
@@ -2432,101 +2514,110 @@ full programmatic control over your models.")
(license license:gpl2+)))
(define-public freecad
- (package
- (name "freecad")
- (version "0.18.4")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/FreeCAD/FreeCAD")
- (commit version)))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Fix build with Python 3.8, see
- ;; <https://tracker.freecadweb.org/view.php?id=4143>.
- (substitute* "src/Base/swigpyrun.inl"
- (("PyObject \\*modules = interp->modules;")
- "PyObject *modules = PyEval_GetBuiltins();"))
- #t))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "170hk1kgrvsddrwykp24wyj0cha78zzmzbf50gn98x7ngqqs395s"))))
- (build-system qt-build-system)
- (native-inputs
- `(("doxygen" ,doxygen)
- ("graphviz" ,graphviz)
- ("qttools" ,qttools)
- ("pkg-config" ,pkg-config)
- ("swig" ,swig)))
- (inputs
- `(("boost" ,boost)
- ("coin3D" ,coin3D)
- ("eigen" ,eigen)
- ("freetype" ,freetype)
- ("glew" ,glew)
- ("hdf5" ,hdf5-1.10)
- ("libarea" ,libarea)
- ("libmedfile" ,libmedfile)
- ("libspnav" ,libspnav)
- ("libxi" ,libxi)
- ("libxmu" ,libxmu)
- ("openmpi" ,openmpi)
- ("opencascade-occt" ,opencascade-occt)
- ("python-matplotlib" ,python-matplotlib)
- ("python-pyside-2" ,python-pyside-2)
- ("python-pyside-2-tools" ,python-pyside-2-tools)
- ("python-shiboken-2" ,python-shiboken-2)
- ("python-wrapper" ,python-wrapper)
- ("qtbase" ,qtbase)
- ("qtsvg" ,qtsvg)
- ("qtx11extras" ,qtx11extras)
- ("qtxmlpatterns" ,qtxmlpatterns)
- ;; qtwebkit is optional. We remove it currently, because it takes
- ;; much time to compile and substitutes are often unavailable
- ;;("qtwebkit" ,qtwebkit)
- ("tbb" ,tbb)
- ("vtk" ,vtk)
- ("xerces-c" ,xerces-c)
- ("zlib" ,zlib)))
- (arguments
- `(#:tests? #f
- #:configure-flags
- (list
- "-DBUILD_QT5=ON"
- (string-append "-DCMAKE_INSTALL_LIBDIR="
- (assoc-ref %outputs "out") "/lib"))
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'restore-pythonpath
- (lambda _
- (substitute* "src/Main/MainGui.cpp"
- (("_?putenv\\(\"PYTHONPATH=\"\\);") ""))
- #t))
- (add-after 'install 'wrap-pythonpath
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (wrap-program (string-append out "/bin/FreeCAD")
- (list "PYTHONPATH"
- 'prefix (list (getenv "PYTHONPATH")))))
- #t)))))
- (home-page "https://www.freecadweb.org/")
- (synopsis "Your Own 3D Parametric Modeler")
- (description
- "FreeCAD is a general purpose feature-based, parametric 3D modeler for
+ (let ((commit-ref "7616153b3c31ace006169cdc2fdafab484498858")
+ (revision "1"))
+ (package
+ (name "freecad")
+ (version (git-version "0.18.5" revision commit-ref))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FreeCAD/FreeCAD")
+ (commit commit-ref)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "16965yxnp2pq7nm8z3p0pjkzjdyq62vfrj8j3nk26bwc898czyn2"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("graphviz" ,graphviz)
+ ("qttools" ,qttools)
+ ("pkg-config" ,pkg-config)
+ ("python-pyside-2-tools" ,python-pyside-2-tools)
+ ("swig" ,swig)))
+ (inputs
+ `(("boost" ,boost)
+ ("coin3D" ,coin3D)
+ ("eigen" ,eigen)
+ ("freetype" ,freetype)
+ ("glew" ,glew)
+ ("hdf5" ,hdf5-1.10)
+ ("libarea" ,libarea)
+ ("libmedfile" ,libmedfile)
+ ("libspnav" ,libspnav)
+ ("libxi" ,libxi)
+ ("libxmu" ,libxmu)
+ ("openmpi" ,openmpi)
+ ("opencascade-occt" ,opencascade-occt)
+ ("python-matplotlib" ,python-matplotlib)
+ ("python-pyside-2" ,python-pyside-2)
+ ("python-shiboken-2" ,python-shiboken-2)
+ ("python-pivy" ,python-pivy)
+ ("python-wrapper" ,python-wrapper)
+ ("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)
+ ("qtx11extras" ,qtx11extras)
+ ("qtxmlpatterns" ,qtxmlpatterns)
+ ("qtwebkit" ,qtwebkit)
+ ("tbb" ,tbb)
+ ("vtk" ,vtk)
+ ("xerces-c" ,xerces-c)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f
+ #:configure-flags
+ (list
+ "-DBUILD_QT5=ON"
+ (string-append "-DCMAKE_INSTALL_LIBDIR=" (assoc-ref %outputs "out") "/lib")
+ (string-append "-DPYSIDE2UICBINARY="
+ (assoc-ref %build-inputs "python-pyside-2-tools")
+ "/bin/uic")
+ (string-append "-DPYSIDE2RCCBINARY="
+ (assoc-ref %build-inputs "python-pyside-2-tools")
+ "/bin/rcc")
+ "-DPYSIDE_LIBRARY=PySide2::pyside2"
+ (string-append
+ "-DPYSIDE_INCLUDE_DIR="
+ (assoc-ref %build-inputs "python-pyside-2") "/include;"
+ (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2;"
+ (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtCore;"
+ (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtWidgets;"
+ (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtGui;")
+ "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
+ (string-append "-DSHIBOKEN_INCLUDE_DIR="
+ (assoc-ref %build-inputs "python-shiboken-2")
+ "/include/shiboken2"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'restore-pythonpath
+ (lambda _
+ (substitute* "src/Main/MainGui.cpp"
+ (("_?putenv\\(\"PYTHONPATH=\"\\);") ""))
+ #t))
+ (add-after 'install 'wrap-pythonpath
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/bin/FreeCAD")
+ (list "PYTHONPATH"
+ 'prefix (list (getenv "PYTHONPATH")))))
+ #t)))))
+ (home-page "https://www.freecadweb.org/")
+ (synopsis "Your Own 3D Parametric Modeler")
+ (description
+ "FreeCAD is a general purpose feature-based, parametric 3D modeler for
CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and
product design but also fits a wider range of uses in engineering, such as
architecture or other engineering specialties. It is 100% Open Source (LGPL2+
license) and extremely modular, allowing for very advanced extension and
customization.")
- (license
- (list
- license:lgpl2.1+
- license:lgpl2.0+
- license:gpl3+
- license:bsd-3))))
+ (license
+ (list
+ license:lgpl2.1+
+ license:lgpl2.0+
+ license:gpl3+
+ license:bsd-3)))))
(define-public libmedfile
(package