git: 209e7e00502c - main - comms/hydrasdr: New port host library for new software defined radio

From: Diane Bruce <db_at_FreeBSD.org>
Date: Sat, 09 Aug 2025 20:50:22 UTC
The branch main has been updated by db:

URL: https://cgit.FreeBSD.org/ports/commit/?id=209e7e00502c03d1afb280e53b3edf81d242765a

commit 209e7e00502c03d1afb280e53b3edf81d242765a
Author:     Diane Bruce <db@FreeBSD.org>
AuthorDate: 2025-08-09 20:46:10 +0000
Commit:     Diane Bruce <db@FreeBSD.org>
CommitDate: 2025-08-09 20:46:10 +0000

    comms/hydrasdr: New port host library for new software defined radio
    
    This library provides a user mode API for controlling a USB radio receiver.
    Manfacturer info here: https://hydrasdr.com/
    The device is very similar to the Airspy RFONE so the port will look similar.
    Note that this new device uses a different VID/PID.
    
    PR:             288494
    <If and which Problem Report is related.>
---
 comms/Makefile                                     |  1 +
 comms/hydrasdr/Makefile                            | 28 ++++++++++++++++++++++
 comms/hydrasdr/distinfo                            |  3 +++
 .../files/patch-libhydrasdr_CMakeLists.txt         | 22 +++++++++++++++++
 comms/hydrasdr/pkg-descr                           |  2 ++
 comms/hydrasdr/pkg-plist                           | 21 ++++++++++++++++
 6 files changed, 77 insertions(+)

diff --git a/comms/Makefile b/comms/Makefile
index 2fdb7d70fe2e..ca0cef090c7a 100644
--- a/comms/Makefile
+++ b/comms/Makefile
@@ -62,6 +62,7 @@
     SUBDIR += hamlib
     SUBDIR += hcidump
     SUBDIR += hidapi
+    SUBDIR += hydrasdr
     SUBDIR += ibp
     SUBDIR += iceoryx
     SUBDIR += inspectrum
diff --git a/comms/hydrasdr/Makefile b/comms/hydrasdr/Makefile
new file mode 100644
index 000000000000..56e29c080a83
--- /dev/null
+++ b/comms/hydrasdr/Makefile
@@ -0,0 +1,28 @@
+PORTNAME=	hydrasdr
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.0.2
+CATEGORIES=	comms hamradio
+
+MAINTAINER=	unitrunker@gmail.com
+COMMENT=	HydraSDR RFONE's host library and associated tools
+WWW=		https://hydrasdr.com/
+
+LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/hydrasdr-tools/LICENSE.md
+
+USES=		cmake pkgconfig
+USE_GITHUB=	yes
+GH_PROJECT=	rfone_host
+USE_LDCONFIG=	yes
+
+CMAKE_OFF=	INSTALL_UDEV_RULES
+CMAKE_ARGS=	-DLIBUSB_LIBRARIES="/usr/lib/libusb.so" \
+		-DLIBUSB_INCLUDE_DIR="/usr/include"
+OPTIONS_DEFINE_amd64=	SIMD
+OPTIONS_DEFINE_i386=	SIMD
+OPTIONS_DEFAULT_amd64=	SIMD
+OPTIONS_DEFAULT_i386=	SIMD
+
+SIMD_CFLAGS=	-DFREEBSD_USE_SIMD -msse -msse2 -mfpmath=sse -mmmx
+
+.include <bsd.port.mk>
diff --git a/comms/hydrasdr/distinfo b/comms/hydrasdr/distinfo
new file mode 100644
index 000000000000..80c529e2c654
--- /dev/null
+++ b/comms/hydrasdr/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1753631782
+SHA256 (hydrasdr-rfone_host-v1.0.2_GH0.tar.gz) = 4d5d47bd5f34479073b50229e95be606d6236714c048af97ed356ab090f158ac
+SIZE (hydrasdr-rfone_host-v1.0.2_GH0.tar.gz) = 270469
diff --git a/comms/hydrasdr/files/patch-libhydrasdr_CMakeLists.txt b/comms/hydrasdr/files/patch-libhydrasdr_CMakeLists.txt
new file mode 100644
index 000000000000..609c02a6a7c4
--- /dev/null
+++ b/comms/hydrasdr/files/patch-libhydrasdr_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- libhydrasdr/CMakeLists.txt.orig	2025-07-17 22:22:04 UTC
++++ libhydrasdr/CMakeLists.txt
+@@ -108,11 +108,18 @@ CONFIGURE_FILE(
+     ${CMAKE_CURRENT_BINARY_DIR}/libhydrasdr.pc
+ @ONLY)
+ 
++STRING(COMPARE EQUAL ${BSD} "FreeBSD" FREEBSD)
++if (FREEBSD)
+ INSTALL(
+     FILES ${CMAKE_CURRENT_BINARY_DIR}/libhydrasdr.pc
++    DESTINATION libdata${LIB_SUFFIX}/pkgconfig
++)
++else()
++INSTALL(
++    FILES ${CMAKE_CURRENT_BINARY_DIR}/libhydrasdr.pc
+     DESTINATION lib${LIB_SUFFIX}/pkgconfig
+ )
+-
++endif()
+ ########################################################################
+ # Create uninstall target
+ ########################################################################
diff --git a/comms/hydrasdr/pkg-descr b/comms/hydrasdr/pkg-descr
new file mode 100644
index 000000000000..e965ee7c72ad
--- /dev/null
+++ b/comms/hydrasdr/pkg-descr
@@ -0,0 +1,2 @@
+Host software for HydraSDR RFONE, a tiny, efficient and ultra evolutive
+software defined radio.
diff --git a/comms/hydrasdr/pkg-plist b/comms/hydrasdr/pkg-plist
new file mode 100644
index 000000000000..684527fd20c7
--- /dev/null
+++ b/comms/hydrasdr/pkg-plist
@@ -0,0 +1,21 @@
+bin/hydrasdr_calibrate
+bin/hydrasdr_gpio
+bin/hydrasdr_gpiodir
+bin/hydrasdr_info
+bin/hydrasdr_lib_version
+bin/hydrasdr_r82x
+bin/hydrasdr_reset
+bin/hydrasdr_rx
+bin/hydrasdr_set_rf_port
+bin/hydrasdr_si5351c
+bin/hydrasdr_spiflash
+include/libhydrasdr/filters.h
+include/libhydrasdr/hydrasdr.h
+include/libhydrasdr/hydrasdr_commands.h
+include/libhydrasdr/iqconverter_float.h
+include/libhydrasdr/iqconverter_int16.h
+lib/libhydrasdr.a
+lib/libhydrasdr.so
+lib/libhydrasdr.so.0
+lib/libhydrasdr.so.1.0.2
+libdata/pkgconfig/libhydrasdr.pc