diff mbox series

[bug#38650] hackrf: new package

Message ID 33d8820578a5011bfd66f694b32f2e60d273469d.camel@librehacker.com
State Accepted
Headers show
Series [bug#38650] hackrf: new package | expand

Commit Message

Christopher Howard Dec. 17, 2019, 2:45 p.m. UTC
Patch is attached for new package `hackrf'. Installing this package
installs the userspace hackrf utilities and C library. To install the
hackrf udev rules, you must add this package as a system service via
modify-services. E.g.:

'''
  (services
   (modify-services
    (append
     #| your other services |#
    (udev-service-type config =>
     (udev-configuration (inherit config)
      (rules (cons hackrf
                   (udev-configuration-rules config)))))))
'''

And also you need to add your local user to the `dialout' group. I did
a simple test with my HackRF One and hackrf_info was able to detect the
board, indicating that package works on x86_64.

Comments

Danny Milosavljevic Dec. 23, 2019, 8 a.m. UTC | #1
Hi,

thanks for the patch!

Please, if possible, ask upstream to provide a release.

It's not a good idea to use a random git commit in an official GNU distribution--
much better to just have them release a version.

On Tue, 17 Dec 2019 05:45:14 -0900
Christopher Howard <christopher@librehacker.com> wrote:

> Patch is attached for new package `hackrf'. Installing this package
> installs the userspace hackrf utilities and C library. To install the
> hackrf udev rules, you must add this package as a system service via
> modify-services. E.g.:
> 
> '''
>   (services
>    (modify-services
>     (append
>      #| your other services |#
>     (udev-service-type config =>
>      (udev-configuration (inherit config)
>       (rules (cons hackrf
>                    (udev-configuration-rules config)))))))
> '''
> And also you need to add your local user to the `dialout' group. 

Please document that in the description so it's not lost (description
can do texinfo markup).
Jack Hill Dec. 23, 2019, 9:17 p.m. UTC | #2
Hi,

I believe that the new gnu/packages/hackrf.scm file also need to be added 
to gnu/local.mk

Best,
Jack
Christopher Howard Dec. 24, 2019, 7:05 a.m. UTC | #3
HackRF team says they are preparing a new release, but it may be a few
weeks yet.
Christopher Baines March 31, 2020, 8:22 p.m. UTC | #4
Christopher Howard <christopher@librehacker.com> writes:

> HackRF team says they are preparing a new release, but it may be a few
> weeks yet.

Looks like there's been a new release now:

  https://github.com/mossmann/hackrf/releases/tag/v2018.01.1

Just letting you know in case you don't :)

Chris
Christopher Howard April 1, 2020, 12:12 a.m. UTC | #5
Hi, that is the release from two years ago.
Christopher Baines April 1, 2020, 5:22 p.m. UTC | #6
Christopher Howard <christopher@librehacker.com> writes:

> Hi, that is the release from two years ago.

Ah, sorry, I saw January and didn't notice the year!
diff mbox series

Patch

From 68c43c038675b142deddfa5cf8f4c4d62125ed11 Mon Sep 17 00:00:00 2001
From: Christopher Howard <christopher@librehacker.com>
Date: Tue, 17 Dec 2019 05:22:52 -0900
Subject: [PATCH] hackrf: new package

---
 gnu/packages/hackrf.scm | 72 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 gnu/packages/hackrf.scm

diff --git a/gnu/packages/hackrf.scm b/gnu/packages/hackrf.scm
new file mode 100644
index 0000000000..9b225573a2
--- /dev/null
+++ b/gnu/packages/hackrf.scm
@@ -0,0 +1,72 @@ 
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Christopher Howard <christopher@librehacker.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages hackrf)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages algebra)
+  #:use-module (gnu packages libusb)
+  #:use-module (gnu packages pkg-config))
+
+(define-public hackrf
+  ;; Using a git commit because there have been many many commits
+  ;; since the relase two years ago
+  (let ((commit "e9c6c2d2e6f9c2e903c1e69de9a48aa4b28a1e55")
+        (revision "0"))
+    (package
+     (name "hackrf")
+     (version (git-version "2018.01.1" revision commit))
+     (source
+      (origin (method git-fetch)
+	      (uri (git-reference
+		    (url "https://github.com/mossmann/hackrf.git")
+		    (commit commit)))
+	      (file-name (git-file-name name version))
+	      (sha256
+	       (base32 "0vqlr0nph9r7wpqn81ghhdbb131803b8wi328iaz37304mrr6hkw"))))
+     (build-system cmake-build-system)
+     (arguments
+      '(#:configure-flags
+        (list "-DUDEV_RULES_GROUP=dialout"
+	      (string-append "-DUDEV_RULES_PATH="
+                             (assoc-ref %outputs "out")
+			     "/lib/udev/rules.d"))
+        #:phases
+	(modify-phases %standard-phases
+	  (add-before 'configure 'enter-source-directory
+		      (lambda _ (chdir "host") #t))
+	  (add-before 'install-license-files 'leave-source-directory
+		      (lambda _ (chdir "..") #t)))
+        #:tests? #f))                  ; no test suite
+     (native-inputs
+      `(("pkg-config" ,pkg-config)))
+     (inputs
+      `(("fftw" ,fftw)
+        ("fftwf" ,fftwf)
+	("libusb" ,libusb)))
+     (home-page "https://greatscottgadgets.com/hackrf/")
+     (synopsis "User-space library and utilities for HackRF SDR")
+     (description
+      "Command line utilities and a C library for controlling the HackRF
+Software Defined Radio (SDR) over USB.")
+     (license license:gpl2))))
-- 
2.24.0