mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
gnu: Add libsigrok.
* gnu/packages/electronics.scm (libsigrok): New variable. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
This commit is contained in:
parent
7a19de9c48
commit
1c12be9682
1 changed files with 83 additions and 0 deletions
|
@ -24,9 +24,12 @@ (define-module (gnu packages electronics)
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages graphviz)
|
||||
#:use-module (gnu packages libftdi)
|
||||
#:use-module (gnu packages libusb)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages sdcc))
|
||||
|
@ -111,3 +114,83 @@ (define-public sigrok-firmware-fx2lafw
|
|||
(description "Fx2lafw is free firmware for Cypress FX2 chips which makes them usable
|
||||
as simple logic analyzer and/or oscilloscope hardware.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public libsigrok
|
||||
(package
|
||||
(name "libsigrok")
|
||||
(version "0.5.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://sigrok.org/download/source/libsigrok/libsigrok-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"197kr5ip98lxn7rv10zs35d1w0j7265s0xvckx0mq2l8kdvqd32c"))))
|
||||
(outputs '("out" "doc"))
|
||||
(arguments
|
||||
`(#: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)))
|
||||
(add-after 'build 'build-doc
|
||||
(lambda _
|
||||
(zero? (system* "doxygen"))))
|
||||
(add-after 'install 'install-doc
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(copy-recursively "doxy/html-api"
|
||||
(string-append (assoc-ref outputs "doc")
|
||||
"/share/doc/libsigrok"))
|
||||
#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/"))))
|
||||
(add-after 'install-udev-rules 'install-fw
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((fx2lafw (assoc-ref inputs "sigrok-firmware-fx2lafw"))
|
||||
(out (assoc-ref outputs "out"))
|
||||
(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))
|
||||
(find-files input-dir ".")))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("check" ,check)
|
||||
("doxygen" ,doxygen)
|
||||
("graphviz" ,graphviz)
|
||||
("sigrok-firmware-fx2lafw" ,sigrok-firmware-fx2lafw)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("python" ,python)
|
||||
("zlib" ,zlib)))
|
||||
;; libsigrokcxx.pc lists "glibmm" in Requires
|
||||
;; libsigrok.pc lists "libserialport", "libusb", "libftdi" and "libzip" in
|
||||
;; Requires.private and "glib" in Requires
|
||||
(propagated-inputs
|
||||
`(("glib" ,glib)
|
||||
("glibmm" ,glibmm)
|
||||
("libserialport" ,libserialport)
|
||||
("libusb" ,libusb)
|
||||
("libftdi" ,libftdi)
|
||||
("libzip" ,libzip)))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://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
|
||||
access drivers for logic analyzers and other supported devices, as well as input/output file
|
||||
format support.")
|
||||
(license license:gpl3+)))
|
||||
|
|
Loading…
Reference in a new issue