diff options
Diffstat (limited to 'gnu/packages/engineering.scm')
-rw-r--r-- | gnu/packages/engineering.scm | 319 |
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) |