summary refs log tree commit diff
path: root/gnu/packages/engineering.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/engineering.scm')
-rw-r--r--gnu/packages/engineering.scm128
1 files changed, 112 insertions, 16 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index f11ce71f5a..8ef9a5c277 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -59,6 +60,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages groff)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages image)
@@ -76,6 +78,7 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages wxwidgets)
@@ -224,6 +227,74 @@ tool to forward annotation from your schematic to layout using PCB; some minor
 utilities.")
     (license license:gpl2+)))
 
+(define-public lepton-eda
+  ;; This is a fork of gEDA/gaf started in late 2016.  One of its goal is to
+  ;; keep and to extend Guile support.
+  (package
+    (inherit geda-gaf)
+    (name "lepton-eda")
+    (version "1.9.5-20180820")
+    (home-page "https://github.com/lepton-eda/lepton-eda")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (sha256
+               (base32
+                "1ayaccvw18zh4g7a4x5jf6yxkphi5xafb0hpc732g59qkgwfcmlr"))
+              (file-name (git-file-name name version))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("gettext" ,gnu-gettext)
+       ("texinfo" ,texinfo)
+       ("groff" ,groff)
+       ("which" ,which)
+       ,@(package-native-inputs geda-gaf)))
+    ;; For now it's Guile 2.0, not 2.2.
+    (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 ,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))))))
+    (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
+design, schematic capture, simulation, prototyping, and production.  Lepton
+EDA includes tools for schematic capture, attribute management, bill of
+materials (BOM) generation, netlisting into over 20 netlist formats, analog
+and digital simulation, and printed circuit board (PCB) layout, and many other
+features.")))
+
 (define-public pcb
   (package
     (name "pcb")
@@ -610,24 +681,19 @@ language.")
 (define-public ao
   (deprecated-package "ao-cad" libfive))
 
-;; We use kicad from a git commit, because support for boost 1.61.0 has been
-;; recently added.
 (define-public kicad
-  (let ((commit "5f4599fb56da4dd748845ab10abec02961d477f3")
-        (revision "2"))
     (package
       (name "kicad")
-      (version (string-append "4.0-" revision "."
-                              (string-take commit 7)))
+      (version "5.0.0")
       (source
        (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://git.launchpad.net/kicad")
-               (commit commit)))
+         (method url-fetch)
+         (file-name (string-append name "-" version ".tar.xz"))
+         (uri (string-append
+                "https://launchpad.net/kicad/5.0/" version "/+download/" name
+                "-" version ".tar.xz"))
          (sha256
-          (base32 "1833pln2975gmc5s18xf7s8m9vg834lmxxdjk0wlk3lq7bvjjnff"))
-         (file-name (string-append name "-" version "-checkout"))))
+          (base32 "17nqjszyvd25wi6550j981whlnb1wxzmlanljdjihiki53j84x9p"))))
       (build-system cmake-build-system)
       (arguments
        `(#:out-of-source? #t
@@ -636,8 +702,6 @@ language.")
          #:configure-flags
          (list "-DKICAD_STABLE_VERSION=ON"
                "-DKICAD_REPO_NAME=stable"
-               ,(string-append "-DKICAD_BUILD_VERSION=4.0-"
-                               (string-take commit 7))
                "-DKICAD_SKIP_BOOST=ON"; Use our system's boost library.
                "-DKICAD_SCRIPTING=ON"
                "-DKICAD_SCRIPTING_MODULES=ON"
@@ -653,6 +717,13 @@ language.")
                "-DBUILD_GITHUB_PLUGIN=OFF")
          #:phases
          (modify-phases %standard-phases
+           (add-after 'unpack 'adjust-boost-include
+             (lambda _
+               ;; The location of this header changed in Boost 1.66.
+               (substitute* "3d-viewer/3d_cache/3d_cache.cpp"
+                 (("boost/uuid/sha1\\.hpp")
+                  "boost/uuid/detail/sha1.hpp"))
+               #t))
            (add-after 'install 'wrap-program
              ;; Ensure correct Python at runtime.
              (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -684,6 +755,7 @@ language.")
          ("libngspice" ,libngspice)
          ("libsm" ,libsm)
          ("mesa" ,mesa)
+         ("opencascade-oce" ,opencascade-oce)
          ("openssl" ,openssl)
          ("python" ,python-2)
          ("wxwidgets" ,wxwidgets-gtk2)
@@ -694,7 +766,7 @@ language.")
 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"))
@@ -758,6 +830,30 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
 render model libraries.")
       (license license:lgpl2.0+))))
 
+(define-public kicad-symbols
+  (package
+    (name "kicad-symbols")
+    (version "5.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/KiCad/kicad-symbols.git")
+                    (commit version)))
+              (file-name (string-append "kicad-symbols-" version "-checkout"))
+              (sha256
+               (base32
+                "18z5vpdq7hy2mpvm5vz1dz3ra3a5iybavvlzi8q2bmmdb6gsvf64"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ; No tests exist
+    (home-page "http://kicad-pcb.org/")
+    (synopsis "Official KiCad schematic symbol libraries for KiCad 5")
+    (description "This package contains the official KiCad schematic symbol
+libraries for KiCad 5.")
+    ;; 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 these designs and any generated files which use data provided as part of the 'Licensed Material'."
+    ;; See <https://github.com/KiCad/kicad-symbols/blob/master/LICENSE.md>.
+    (license license:cc-by-sa4.0)))
+
 (define-public linsmith
   (package
     (name "linsmith")
@@ -1031,7 +1127,7 @@ language, ADMS transforms Verilog-AMS code into other target languages.")
              (setenv "LDFLAGS"  (string-append "-Wl,-rpath="
                                                (assoc-ref outputs "out") "/lib"))
              #t)))))
-    (home-page "http://www.capstone-engine.org")
+    (home-page "https://www.capstone-engine.org")
     (synopsis "Lightweight multi-platform, multi-architecture disassembly framework")
     (description
      "Capstone is a lightweight multi-platform, multi-architecture disassembly