gnu: Add cl-ana.statistical-learning.
[jackhill/guix/guix.git] / gnu / packages / electronics.scm
index 60dfa50..77b383d 100644 (file)
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (gnu packages)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages libftdi)
@@ -50,7 +55,7 @@
                (base32
                 "17ajlwgvyyrap8z7f16zcs59pksvncwbmd3mzf98wj7zqgczjaja"))))
     (build-system gnu-build-system)
-    (home-page "http://sigrok.org/wiki/Libserialport")
+    (home-page "https://sigrok.org/wiki/Libserialport")
     (synopsis "Library for using serial ports")
     (description "Libserialport is a minimal shared library written in C that is intended
 to take care of the OS-specific details when writing software that uses serial ports.")
@@ -59,7 +64,7 @@ to take care of the OS-specific details when writing software that uses serial p
 (define-public libsigrokdecode
   (package
     (name "libsigrokdecode")
-    (version "0.5.0")
+    (version "0.5.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -67,14 +72,15 @@ to take care of the OS-specific details when writing software that uses serial p
                     version ".tar.gz"))
               (sha256
                (base32
-                "1hfigfj1976qk11kfsgj75l20qvyq8c9p2h4mjw23d59rsg5ga2a"))))
+                "1h1zi1kpsgf6j2z8j8hjpv1q7n49i3fhqjn8i178rka3cym18265"))))
     (outputs '("out" "doc"))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'build 'build-doc
            (lambda _
-             (zero? (system* "doxygen"))))
+             (invoke "doxygen")
+             #t))
          (add-after 'install 'install-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (copy-recursively "doxy/html-api"
@@ -91,7 +97,7 @@ to take care of the OS-specific details when writing software that uses serial p
      `(("glib" ,glib)
        ("python" ,python)))
     (build-system gnu-build-system)
-    (home-page "http://www.sigrok.org/wiki/Libsigrokdecode")
+    (home-page "https://www.sigrok.org/wiki/Libsigrokdecode")
     (synopsis "Library providing (streaming) protocol decoding functionality")
     (description "Libsigrokdecode is a shared library written in C, which provides
 (streaming) protocol decoding functionality.")
@@ -100,7 +106,7 @@ to take care of the OS-specific details when writing software that uses serial p
 (define-public sigrok-firmware-fx2lafw
   (package
     (name "sigrok-firmware-fx2lafw")
-    (version "0.1.5")
+    (version "0.1.7")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -108,11 +114,21 @@ to take care of the OS-specific details when writing software that uses serial p
                     "sigrok-firmware-fx2lafw-" version ".tar.gz"))
               (sha256
                (base32
-                "0bbdgy4rpc00jl0l0744m2ibjlqi26bhrkjr7vplivdsjdmhjx6a"))))
+                "0fyfd82mvrcf55v5a3afq1mh1kfswk4c37qrbln6x92jm3b41x53"))))
+    (arguments
+     `(#:implicit-inputs? #f))
     (native-inputs
-     `(("sdcc" ,sdcc)))
+     `(("awk" ,gawk)
+       ("bash" ,bash)
+       ("coreutils" ,coreutils)
+       ("grep" ,grep)
+       ("gzip" ,gzip)
+       ("make" ,gnu-make)
+       ("sdcc" ,sdcc)
+       ("sed" ,sed)
+       ("tar" ,tar)))
     (build-system gnu-build-system)
-    (home-page "http://www.sigrok.org/wiki/Fx2lafw")
+    (home-page "https://www.sigrok.org/wiki/Fx2lafw")
     (synopsis "Firmware for Cypress FX2 chips")
     (description "Fx2lafw is free firmware for Cypress FX2 chips which makes them usable
 as simple logic analyzer and/or oscilloscope hardware.")
@@ -121,7 +137,7 @@ as simple logic analyzer and/or oscilloscope hardware.")
 (define-public libsigrok
   (package
     (name "libsigrok")
-    (version "0.5.0")
+    (version "0.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -129,22 +145,20 @@ as simple logic analyzer and/or oscilloscope hardware.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "197kr5ip98lxn7rv10zs35d1w0j7265s0xvckx0mq2l8kdvqd32c"))))
+                "0g6fl684bpqm5p2z4j12c62m45j1dircznjina63w392ns81yd2d"))))
     (outputs '("out" "doc"))
     (arguments
-     `(#:tests? #f ; tests need usb access
+     `(#:tests? #f                      ; tests need USB access
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'change-udev-group
            (lambda _
-             (let ((file "contrib/z60_libsigrok.rules"))
-               (substitute* file
-                 (("plugdev") "dialout"))
-               (rename-file file "contrib/60-libsigrok.rules")
-               #t)))
+             (substitute* (find-files "contrib" "\\.rules$")
+               (("plugdev") "dialout"))
+             #t))
          (add-after 'build 'build-doc
            (lambda _
-             (zero? (system* "doxygen"))))
+             (invoke "doxygen")))
          (add-after 'install 'install-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (copy-recursively "doxy/html-api"
@@ -153,10 +167,12 @@ as simple logic analyzer and/or oscilloscope hardware.")
              #t))
          (add-after 'install-doc 'install-udev-rules
            (lambda* (#:key outputs #:allow-other-keys)
-             (install-file "contrib/60-libsigrok.rules"
-                           (string-append
-                            (assoc-ref outputs "out")
-                            "/lib/udev/rules.d/"))))
+             (let* ((out   (assoc-ref outputs "out"))
+                    (rules (string-append out "/lib/udev/rules.d/")))
+               (for-each (lambda (file)
+                           (install-file file rules))
+                         (find-files "contrib" "\\.rules$"))
+               #t)))
          (add-after 'install-udev-rules 'install-fw
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((fx2lafw (assoc-ref inputs "sigrok-firmware-fx2lafw"))
@@ -164,7 +180,6 @@ as simple logic analyzer and/or oscilloscope hardware.")
                     (dir-suffix "/share/sigrok-firmware/")
                     (input-dir (string-append fx2lafw dir-suffix))
                     (output-dir (string-append out dir-suffix)))
-               (mkdir-p output-dir)
                (for-each
                 (lambda (file)
                   (install-file file output-dir))
@@ -190,7 +205,7 @@ as simple logic analyzer and/or oscilloscope hardware.")
        ("libftdi" ,libftdi)
        ("libzip" ,libzip)))
     (build-system gnu-build-system)
-    (home-page "http://www.sigrok.org/wiki/Libsigrok")
+    (home-page "https://www.sigrok.org/wiki/Libsigrok")
     (synopsis "Library which provides the basic hardware access drivers for logic
 analyzers")
     (description "@code{libsigrok} is a shared library written in C which provides the basic hardware
@@ -201,7 +216,7 @@ format support.")
 (define-public sigrok-cli
   (package
     (name "sigrok-cli")
-    (version "0.7.0")
+    (version "0.7.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -209,7 +224,7 @@ format support.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "072ylscp0ppgii1k5j07hhv7dfmni4vyhxnsvxmgqgfyq9ldjsan"))))
+                "15vpn1psriadcbl6v9swwgws7dva85ld03yv6g1mgm27kx11697m"))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -217,7 +232,7 @@ format support.")
        ("libsigrok" ,libsigrok)
        ("libsigrokdecode" ,libsigrokdecode)))
     (build-system gnu-build-system)
-    (home-page "http://sigrok.org/wiki/Sigrok-cli")
+    (home-page "https://sigrok.org/wiki/Sigrok-cli")
     (synopsis "Command-line frontend for sigrok")
     (description "Sigrok-cli is a command-line frontend for sigrok.")
     (license license:gpl3+)))
@@ -225,7 +240,7 @@ format support.")
 (define-public pulseview
   (package
     (name "pulseview")
-    (version "0.4.0")
+    (version "0.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -233,9 +248,20 @@ format support.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1f8f2342d5yam98mmcb8f9g2vslcwv486bmi4x45pxn68l82ky3q"))))
+                "0bvgmkgz37n2bi9niskpl05hf7rsj1lj972fbrgnlz25s4ywxrwy"))))
+    (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags '("-DCMAKE_CXX_FLAGS=-fext-numeric-literals")))
+     `(#:configure-flags '("-DENABLE_TESTS=y")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'remove-empty-doc-directory
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (with-directory-excursion (string-append out "/share")
+                 ;; Use RMDIR to never risk silently deleting files.
+                 (rmdir "doc/pulseview")
+                 (rmdir "doc"))
+               #t))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -246,8 +272,7 @@ format support.")
        ("libsigrokdecode" ,libsigrokdecode)
        ("qtbase" ,qtbase)
        ("qtsvg" ,qtsvg)))
-    (build-system cmake-build-system)
-    (home-page "http://www.sigrok.org/wiki/PulseView")
+    (home-page "https://www.sigrok.org/wiki/PulseView")
     (synopsis "Qt based logic analyzer, oscilloscope and MSO GUI for sigrok")
     (description "PulseView is a Qt based logic analyzer, oscilloscope and MSO GUI
 for sigrok.")