aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Le Vaillant <glv@posteo.net>2021-06-03 18:17:07 +0200
committerGuillaume Le Vaillant <glv@posteo.net>2021-06-03 19:01:52 +0200
commit9703a51048fbc1d322595d676ff0d63b1eb89304 (patch)
tree7b1919720eebffcebd26cd08ea59eadfc474166c
parent38adfcd6f5f772695c8958022c1c0fcd9e7aa988 (diff)
downloadguix-9703a51048fbc1d322595d676ff0d63b1eb89304.tar
guix-9703a51048fbc1d322595d676ff0d63b1eb89304.tar.gz
gnu: Add rfcat.
* gnu/packages/radio.scm (rfcat): New variable.
-rw-r--r--gnu/packages/radio.scm56
1 files changed, 56 insertions, 0 deletions
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 1145c12c87..c0b1ed13e0 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -1952,3 +1952,59 @@ acts a general-purpose software FSK modem, and includes support for various
standard FSK protocols such as Bell103, Bell202, RTTY, TTY/TDD, NOAA SAME, and
Caller-ID.")
(license license:gpl3+)))
+
+(define-public rfcat
+ ;; Use a commit for now because some fixes to make rfcat work with
+ ;; Python 3 instead of Python 2 are not in a release yet.
+ (let ((commit "725bf79af27d47cdec64107317c1c8fe3f7ad7b8")
+ (revision "1"))
+ (package
+ (name "rfcat")
+ (version (git-version "1.9.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/atlas0fd00m/rfcat")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0dbc6n4pxsa73wzxny773khc73r1dn3ma5hi7xv76vcykjvzkdi3"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-future" ,python-future)
+ ("python-ipython" ,python-ipython)
+ ("python-numpy" ,python-numpy)
+ ("python-pyserial" ,python-pyserial)
+ ("python-pyside-2" ,python-pyside-2)
+ ("python-pyusb" ,python-pyusb)))
+ (arguments
+ `(#:tests? #f ; Tests want to use a serial port
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-permissions
+ (lambda _
+ (make-file-writable "rflib/rflib_version.py")))
+ (add-after 'install 'install-udev-rules
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "etc/udev/rules.d/20-rfcat.rules"
+ (string-append (assoc-ref outputs "out")
+ "/lib/udev/rules.d")))))))
+ (home-page "https://github.com/atlas0fd00m/rfcat")
+ (synopsis "Program to control some radio dongles")
+ (description
+ "@code{rfcat} is a program to control some radio dongles operating in
+ISM bands.
+
+Supported dongles:
+@itemize
+@item YARD Stick One
+@item cc1111emk
+@item chronos watch dongle
+@item imme (limited support)
+@end itemize
+
+To install the rfcat udev rules, you must extend @code{udev-service-type} with
+this package. E.g.: @code{(udev-rules-service 'rfcat rfcat)}")
+ (license (list license:bsd-3
+ license:gpl2)))))