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.scm319
1 files changed, 183 insertions, 136 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 9dc8b7e9ce..fb96a4440c 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2019 Jovany Leandro G.C <bit4bit@riseup.net>
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -44,6 +45,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
+ #:use-module (guix build-system qt)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
@@ -792,138 +794,123 @@ language.")
(define-public ao
(deprecated-package "ao-cad" libfive))
+;; TODO Add doc https://gitlab.com/kicad/services/kicad-doc/-/tree/master
(define-public kicad
- (package
- (name "kicad")
- (version "5.1.5")
- (source
- (origin
- (method url-fetch)
- (file-name (string-append name "-" version ".tar.xz"))
- (uri (string-append
- "https://launchpad.net/kicad/" (version-major version)
- ".0/" version "/+download/kicad-" version ".tar.xz"))
- (sha256
- (base32 "0x3417f2pa7p65s9f7l49rqbnrzy8gz6i0n07mlbxqbnm0fmlql0"))))
- (build-system cmake-build-system)
- (arguments
- `(#:out-of-source? #t
- #: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")
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'wrap-program
- ;; Ensure correct Python at runtime.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (python (assoc-ref inputs "python"))
- (file (string-append out "/bin/kicad"))
- (path (string-append
- out
- "/lib/python"
- ,(version-major+minor
- (package-version python))
- "/site-packages:"
- (getenv "PYTHONPATH"))))
- (wrap-program file
- `("PYTHONPATH" ":" prefix (,path))
- `("PATH" ":" prefix
- (,(string-append python "/bin:")))))
- #t)))))
- (native-inputs
- `(("boost" ,boost)
- ("gettext" ,gnu-gettext)
- ("pkg-config" ,pkg-config)
- ("swig" ,swig)
- ("zlib" ,zlib)))
- (inputs
- `(("cairo" ,cairo)
- ("curl" ,curl)
- ("desktop-file-utils" ,desktop-file-utils)
- ("glew" ,glew)
- ("glm" ,glm)
- ("hicolor-icon-theme" ,hicolor-icon-theme)
- ("libngspice" ,libngspice)
- ("libsm" ,libsm)
- ("mesa" ,mesa)
- ("opencascade-oce" ,opencascade-oce)
- ("openssl" ,openssl)
- ("python" ,python)
- ("wxwidgets" ,wxwidgets)
- ("wxpython" ,python-wxpython)))
- (home-page "https://kicad-pcb.org/")
- (synopsis "Electronics Design Automation Suite")
- (description "Kicad is a program for the formation of printed circuit
+ (package
+ (name "kicad")
+ (version "5.1.5")
+ (source
+ (origin
+ (method url-fetch)
+ (file-name (string-append name "-" version ".tar.xz"))
+ (uri (string-append
+ "https://launchpad.net/kicad/" (version-major version)
+ ".0/" version "/+download/kicad-" version ".tar.xz"))
+ (sha256
+ (base32 "0x3417f2pa7p65s9f7l49rqbnrzy8gz6i0n07mlbxqbnm0fmlql0"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:out-of-source? #t
+ #: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")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-translations
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (copy-recursively (assoc-ref inputs "kicad-i18l")
+ (assoc-ref outputs "out"))
+ #t))
+ (add-after 'install 'wrap-program
+ ;; Ensure correct Python at runtime.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (python (assoc-ref inputs "python"))
+ (file (string-append out "/bin/kicad"))
+ (path (string-append
+ out
+ "/lib/python"
+ ,(version-major+minor
+ (package-version python))
+ "/site-packages:"
+ (getenv "PYTHONPATH"))))
+ (wrap-program file
+ `("PYTHONPATH" ":" prefix (,path))
+ `("PATH" ":" prefix
+ (,(string-append python "/bin:")))))
+ #t)))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "KICAD_TEMPLATE_DIR")
+ (files '("share/kicad/template")))
+ (search-path-specification
+ (variable "KICAD_SYMBOL_DIR") ; symbol path
+ (files '("share/kicad/library")))
+ (search-path-specification
+ (variable "KISYSMOD") ; footprint path
+ (files '("share/kicad/modules")))
+ (search-path-specification
+ (variable "KISYS3DMOD") ; 3D model path
+ (files '("share/kicad/modules/packages3d")))))
+ (native-inputs
+ `(("boost" ,boost)
+ ("desktop-file-utils" ,desktop-file-utils)
+ ("gettext" ,gnu-gettext)
+ ("kicad-i18l" ,kicad-i18l)
+ ("pkg-config" ,pkg-config)
+ ("swig" ,swig)
+ ("zlib" ,zlib)))
+ (inputs
+ `(("cairo" ,cairo)
+ ("curl" ,curl)
+ ("glew" ,glew)
+ ("glm" ,glm)
+ ("hicolor-icon-theme" ,hicolor-icon-theme)
+ ("libngspice" ,libngspice)
+ ("libsm" ,libsm)
+ ("mesa" ,mesa)
+ ("opencascade-oce" ,opencascade-oce)
+ ("openssl" ,openssl)
+ ("python" ,python-wrapper)
+ ("wxwidgets" ,wxwidgets)
+ ("wxpython" ,python-wxpython)))
+ (home-page "https://kicad-pcb.org/")
+ (synopsis "Electronics Design Automation Suite")
+ (description "Kicad is a program for the formation of printed circuit
boards and electrical circuits. The software has a number of programs that
perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing
electrical diagrams), gerbview (viewing Gerber files) and others.")
- (license license:gpl3+)))
+ (license license:gpl3+)))
-(define-public kicad-library
- (let ((version "4.0.7"))
- (package
- (name "kicad-library")
- (version version)
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://kicad-downloads.s3.cern.ch/libraries/kicad-library-"
- version ".tar.gz"))
- (sha256
- (base32 "1azb7v1y3l6j329r9gg7f4zlg0wz8nh4s4i5i0l9s4yh9r6i9zmv"))))
- (build-system cmake-build-system)
- (arguments
- `(#:out-of-source? #t
- #:tests? #f ; no tests
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'install-footprints ; from footprints tarball
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (invoke "tar" "xvf"
- (assoc-ref inputs "kicad-footprints")
- "-C" (string-append (assoc-ref outputs "out")
- "/share/kicad/modules")
- "--strip-components=1")))
- ;; We change the default global footprint file, which is generated if
- ;; it doesn't exist in user's home directory, from the one using the
- ;; github plugin, to the one using the KISYSMOD environment path.
- (add-after 'install-footprints 'use-pretty-footprint-table
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (template-dir (string-append out "/share/kicad/template"))
- (fp-lib-table (string-append template-dir "/fp-lib-table")))
- (delete-file fp-lib-table)
- (copy-file (string-append fp-lib-table ".for-pretty")
- fp-lib-table))
- #t)))))
- (native-search-paths
- (list (search-path-specification
- (variable "KISYSMOD") ; footprint path
- (files '("share/kicad/modules")))
- (search-path-specification
- (variable "KISYS3DMOD") ; 3D model path
- (files '("share/kicad/modules/packages3d")))))
- ;; Kicad distributes footprints in a separate tarball.
- (native-inputs
- `(("kicad-footprints"
- ,(origin
- (method url-fetch)
- (uri (string-append
- "http://downloads.kicad-pcb.org/libraries/kicad-footprints-"
- version ".tar.gz"))
- (sha256
- (base32
- "08qrz5zzsb5127jlnv24j0sgiryd5nqwg3lfnwi8j9a25agqk13j"))))))
- (home-page "https://kicad-pcb.org/")
- (synopsis "Libraries for kicad")
- (description "This package provides Kicad component, footprint and 3D
-render model libraries.")
- (license license:lgpl2.0+))))
+(define kicad-i18l
+ (package
+ (name "kicad-i18l")
+ (version "5.1.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/kicad/code/kicad-i18n.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1rfpifl8vky1gba2angizlb2n7mwmsiai3r6ip6qma60wdj8sbd3"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'build)
+ (delete 'check))))
+ (native-inputs
+ `(("gettext" ,gnu-gettext)))
+ (home-page "https://kicad-pcb.org/")
+ (synopsis "KiCad GUI translations")
+ (description "This package contains the po files that are used for the GUI
+translations for KiCad.")
+ (license license:gpl3+)))
(define-public kicad-symbols
(package
@@ -942,9 +929,9 @@ render model libraries.")
(arguments
`(#:tests? #f)) ; no tests exist
(home-page "https://kicad-pcb.org/")
- (synopsis "Official KiCad schematic symbol libraries for KiCad 5")
+ (synopsis "Official KiCad schematic symbol libraries")
(description "This package contains the official KiCad schematic symbol
-libraries for KiCad 5.")
+libraries.")
;; TODO: Exception: "To the extent that the creation of electronic designs
;; that use 'Licensed Material' can be considered to be 'Adapted Material',
;; then the copyright holder waives article 3 of the license with respect to
@@ -953,6 +940,58 @@ libraries for KiCad 5.")
;; See <https://github.com/KiCad/kicad-symbols/blob/master/LICENSE.md>.
(license license:cc-by-sa4.0)))
+(define-public kicad-footprints
+ (package
+ (inherit kicad-symbols)
+ (name "kicad-footprints")
+ (version "5.1.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/KiCad/kicad-footprints.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1c4whgn14qhz4yqkl46w13p6rpv1k0hsc9s9h9368fxfcz9knb2j"))))
+ (synopsis "Official KiCad footprint libraries")
+ (description "This package contains the official KiCad footprint libraries.")))
+
+(define-public kicad-packages3d
+ (package
+ (inherit kicad-symbols)
+ (name "kicad-packages3d")
+ (version "5.1.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/KiCad/kicad-packages3d.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0cff2ms1bsw530kqb1fr1m2pjixyxzwa81mxgac3qpbcf8fnpvaz"))))
+ (synopsis "Official KiCad 3D model libraries")
+ (description "This package contains the official KiCad 3D model libraries.")))
+
+(define-public kicad-templates
+ (package
+ (inherit kicad-symbols)
+ (name "kicad-templates")
+ (version "5.1.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/KiCad/kicad-templates.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0cs3bm3zb5ngw5ldn0lzw5bvqm4kvcidyrn76438alffwiz2b15g"))))
+ (synopsis "Official KiCad project and worksheet templates")
+ (description "This package contains the official KiCad project and
+worksheet templates.")))
+
(define-public linsmith
(package
(name "linsmith")
@@ -1310,12 +1349,20 @@ bindings for Python, Java, OCaml and more.")
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://radare.org/")
- (synopsis "Portable reversing framework")
+ (synopsis "Reverse engineering framework")
(description
- "Radare project started as a forensics tool, a scriptable commandline
-hexadecimal editor able to open disk files, but later support for analyzing
-binaries, disassembling code, debugging programs, attaching to remote gdb
-servers, ...")
+ "Radare2 is a complete framework for reverse-engineering, debugging, and
+analyzing binaries. It is composed of a set of small utilities that can be
+used together or independently from the command line.
+
+Radare2 is built around a scriptable disassembler and hexadecimal editor that
+support a variety of executable formats for different processors and operating
+systems, through multiple back ends for local and remote files and disk
+images.
+
+It can also compare (@dfn{diff}) binaries with graphs and extract information
+like relocation symbols. It is able to deal with malformed binaries, making
+it suitable for security research and analysis.")
(license license:lgpl3)))
(define-public asco
@@ -2248,7 +2295,7 @@ full programmatic control over your models.")
(sha256
(base32
"170hk1kgrvsddrwykp24wyj0cha78zzmzbf50gn98x7ngqqs395s"))))
- (build-system cmake-build-system)
+ (build-system qt-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("graphviz" ,graphviz)
@@ -2274,7 +2321,7 @@ full programmatic control over your models.")
("python-pyside-2-tools" ,python-pyside-2-tools)
("python-shiboken-2" ,python-shiboken-2)
("python-wrapper" ,python-wrapper)
- ("qtbase" ,qtbase)
+ ("qtbase" ,qtbase-patched)
("qtsvg" ,qtsvg)
("qtx11extras" ,qtx11extras)
("qtxmlpatterns" ,qtxmlpatterns)