summary refs log tree commit diff
path: root/gnu/packages/radio.scm
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 /gnu/packages/radio.scm
parent38adfcd6f5f772695c8958022c1c0fcd9e7aa988 (diff)
downloadguix-9703a51048fbc1d322595d676ff0d63b1eb89304.tar.gz
gnu: Add rfcat.
* gnu/packages/radio.scm (rfcat): New variable.
Diffstat (limited to 'gnu/packages/radio.scm')
-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)))))