Hi,

On Tuesday, January 09, 2024 22:44 CET, Rafael Sadowski <raf...@sizeofvoid.org> 
wrote:

> On Tue Jan 09, 2024 at 10:24:14PM +0100, Sebastian Reitenbach wrote:
> > Hi,
> > 
> > below and attached an update our _very old_ version of comms/rtl-sdr. 
> > Tested with RTL-SDR BLOG on amd64.
> > Tuned in into FM radio station with rtl_fm, tracked aircrafts with rtl_adsb.
> > rtl_test, rtl_power work as well, the other binaries not really tested.
> > 
> > more or less a complete overhaul of the port, while there, take MAINTAINER.
> > 
> > comments/test reports/rants, or even OK?
> > 

Thanks Rafael, portcheck didn't told me about MODCMAKE_LDFLAGS ;)
While there, I recognized, the CFLAGS isn't even needed.

I assume you mean to change as below:

Index: Makefile
===================================================================
RCS file: /cvs/ports/comms/rtl-sdr/Makefile,v
diff -u -r1.10 Makefile
--- Makefile    20 Sep 2023 06:52:55 -0000      1.10
+++ Makefile    10 Jan 2024 08:58:20 -0000
@@ -1,32 +1,24 @@
 COMMENT=       software to turn RTL2832U into an SDR
 
-DISTNAME=      rtl-sdr-0.20130412
-REVISION=      3
+GH_ACCOUNT =   osmocom
+GH_PROJECT =   rtl-sdr
+GH_TAGNAME =   v2.0.1
 
-SHARED_LIBS=   rtlsdr 0.1
+SHARED_LIBS=   rtlsdr 0.2
 
 CATEGORIES=    comms
 
-HOMEPAGE=      http://sdr.osmocom.org/trac/wiki/rtl-sdr
+MAINTAINER =   Sebastian Reitenbach <sebas...@openbsd.org>
+HOMEPAGE=      https://osmocom.org/projects/rtl-sdr/wiki
 
 # GPLv2+
 PERMIT_PACKAGE=        Yes
 
 WANTLIB += c m pthread usb-1.0
 
-# http://cgit.osmocom.org/rtl-sdr
-SITES=         https://spacehopper.org/mirrors/
-
 MODULES=       devel/cmake
 LIB_DEPENDS=   devel/libusb1
 
-NO_TEST=       Yes
-
-# rtl_tcp, rtl_adsb and rtl_fm require asynchronous mode which is
-# not currently working. additionally, rtl_adsb and rtl_fm have mutex
-# issues (unlocking already-unlocked mutex). other programs have been
-# patched to force synchronous mode.   update DESCR if fixing these.
-post-install:
-       cd ${PREFIX}/bin && rm rtl_adsb rtl_tcp
+MODCMAKE_LDFLAGS=-L${LOCALBASE}/lib
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/comms/rtl-sdr/distinfo,v
diff -u -r1.1.1.1 distinfo
--- distinfo    21 Apr 2013 11:45:08 -0000      1.1.1.1
+++ distinfo    10 Jan 2024 08:58:20 -0000
@@ -1,2 +1,2 @@
-SHA256 (rtl-sdr-0.20130412.tar.gz) = 
yziYeP445KTe5VWGCLV2QSRNjTryKrgk/qvSJyCdGKU=
-SIZE (rtl-sdr-0.20130412.tar.gz) = 112343
+SHA256 (rtl-sdr-2.0.1.tar.gz) = 7pt2VozelGdIFumfkYsBcY+d2IoYBKMieAjA73RPvBg=
+SIZE (rtl-sdr-2.0.1.tar.gz) = 135727
Index: patches/patch-include_rtl-sdr_h
===================================================================
RCS file: patches/patch-include_rtl-sdr_h
diff -N patches/patch-include_rtl-sdr_h
--- patches/patch-include_rtl-sdr_h     15 Oct 2022 12:29:29 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
-From 92df068dc5acae9e671eefe1f80626319819c52b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ji=C5=99=C3=AD=20Pinkava?= <j...@seznam.cz>
-Date: Tue, 17 Mar 2015 13:21:09 +0100
-Subject: [PATCH] New functions rtlsdr_set_tuner_bandwidth()
-
-Index: include/rtl-sdr.h
---- include/rtl-sdr.h.orig
-+++ include/rtl-sdr.h
-@@ -215,6 +215,15 @@ RTLSDR_API int rtlsdr_get_tuner_gains(rtlsdr_dev_t *de
- RTLSDR_API int rtlsdr_set_tuner_gain(rtlsdr_dev_t *dev, int gain);
- 
- /*!
-+ * Set the bandwidth for the device.
-+ *
-+ * \param dev the device handle given by rtlsdr_open()
-+ * \param bw bandwidth in Hz. Zero means automatic BW selection.
-+ * \return 0 on success
-+ */
-+RTLSDR_API int rtlsdr_set_tuner_bandwidth(rtlsdr_dev_t *dev, uint32_t bw);
-+
-+/*!
-  * Get actual gain the device is configured to.
-  *
-  * \param dev the device handle given by rtlsdr_open()
Index: patches/patch-src_CMakeLists_txt
===================================================================
RCS file: patches/patch-src_CMakeLists_txt
diff -N patches/patch-src_CMakeLists_txt
--- patches/patch-src_CMakeLists_txt    11 Mar 2022 18:26:30 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
---- src/CMakeLists.txt.orig    Fri Apr 12 21:51:14 2013
-+++ src/CMakeLists.txt Sun Apr 21 12:17:27 2013
-@@ -101,12 +101,17 @@ target_link_libraries(rtl_adsb rtlsdr_shared
- if(UNIX)
- target_link_libraries(rtl_fm m)
- target_link_libraries(rtl_adsb m)
--if(APPLE)
--    target_link_libraries(rtl_test m)
--else()
--    target_link_libraries(rtl_test m rt)
--endif()
--endif()
-+
-+include(CheckFunctionExists)
-+check_function_exists(clock_gettime LIBRT_LIBC_HAS_CLOCK_GETTIME)
-+if(LIBRT_LIBC_HAS_CLOCK_GETTIME)
-+    set(LIBRT_LIBRARIES)
-+else(LIBRT_LIBC_HAS_CLOCK_GETTIME)
-+    find_library(LIBRT_LIBRARIES NAMES rt )
-+endif(LIBRT_LIBC_HAS_CLOCK_GETTIME)
-+
-+target_link_libraries(rtl_test m ${LIBRT_LIBRARIES})
-+endif(UNIX)
- 
- if(WIN32)
- target_link_libraries(rtl_sdr libgetopt_static)
Index: patches/patch-src_librtlsdr_c
===================================================================
RCS file: patches/patch-src_librtlsdr_c
diff -N patches/patch-src_librtlsdr_c
--- patches/patch-src_librtlsdr_c       15 Oct 2022 12:29:29 -0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,100 +0,0 @@
-First chunks:
-From 92df068dc5acae9e671eefe1f80626319819c52b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ji=C5=99=C3=AD=20Pinkava?= <j...@seznam.cz>
-Date: Tue, 17 Mar 2015 13:21:09 +0100
-Subject: [PATCH] New functions rtlsdr_set_tuner_bandwidth()
-
-Index: src/librtlsdr.c
---- src/librtlsdr.c.orig
-+++ src/librtlsdr.c
-@@ -85,6 +85,7 @@ struct rtlsdr_dev {
-       rtlsdr_tuner_iface_t *tuner;
-       uint32_t tun_xtal; /* Hz */
-       uint32_t freq; /* Hz */
-+      uint32_t bw;
-       uint32_t offs_freq; /* Hz */
-       int corr; /* ppm */
-       int gain; /* tenth dB */
-@@ -906,6 +907,24 @@ int rtlsdr_get_tuner_gains(rtlsdr_dev_t *dev, int *gai
-       }
- }
- 
-+int rtlsdr_set_tuner_bandwidth(rtlsdr_dev_t *dev, uint32_t bw)
-+{
-+      int r = 0;
-+
-+      if (!dev || !dev->tuner)
-+              return -1;
-+
-+      if (dev->tuner->set_bw) {
-+              rtlsdr_set_i2c_repeater(dev, 1);
-+              r = dev->tuner->set_bw(dev, bw > 0 ? bw : dev->rate);
-+              rtlsdr_set_i2c_repeater(dev, 0);
-+              if (r)
-+                      return r;
-+              dev->bw = bw;
-+      }
-+      return r;
-+}
-+
- int rtlsdr_set_tuner_gain(rtlsdr_dev_t *dev, int gain)
- {
-       int r = 0;
-@@ -989,14 +1008,14 @@ int rtlsdr_set_sample_rate(rtlsdr_dev_t *dev, uint32_t
-       if ( ((double)samp_rate) != real_rate )
-               fprintf(stderr, "Exact sample rate is: %f Hz\n", real_rate);
- 
-+      dev->rate = (uint32_t)real_rate;
-+
-       if (dev->tuner && dev->tuner->set_bw) {
-               rtlsdr_set_i2c_repeater(dev, 1);
--              dev->tuner->set_bw(dev, (int)real_rate);
-+              dev->tuner->set_bw(dev, dev->bw > 0 ? dev->bw : dev->rate);
-               rtlsdr_set_i2c_repeater(dev, 0);
-       }
- 
--      dev->rate = (uint32_t)real_rate;
--
-       tmp = (rsamp_ratio >> 16);
-       r |= rtlsdr_demod_write_reg(dev, 1, 0x9f, tmp, 2);
-       tmp = rsamp_ratio & 0xffff;
-@@ -1112,6 +1131,7 @@ int rtlsdr_get_direct_sampling(rtlsdr_dev_t *dev)
- int rtlsdr_set_offset_tuning(rtlsdr_dev_t *dev, int on)
- {
-       int r = 0;
-+      int bw;
- 
-       if (!dev)
-               return -1;
-@@ -1128,7 +1148,14 @@ int rtlsdr_set_offset_tuning(rtlsdr_dev_t *dev, int on
- 
-       if (dev->tuner && dev->tuner->set_bw) {
-               rtlsdr_set_i2c_repeater(dev, 1);
--              dev->tuner->set_bw(dev, on ? (2 * dev->offs_freq) : dev->rate);
-+              if (on) {
-+                      bw = 2 * dev->offs_freq;
-+              } else if (dev->bw > 0) {
-+                      bw = dev->bw;
-+              } else {
-+                      bw = dev->rate;
-+              }
-+              dev->tuner->set_bw(dev, bw);
-               rtlsdr_set_i2c_repeater(dev, 0);
-       }
- 
-@@ -1340,10 +1367,12 @@ int rtlsdr_open(rtlsdr_dev_t **out_dev, uint32_t index
-       r = libusb_open(device, &dev->devh);
-       if (r < 0) {
-               libusb_free_device_list(list, 1);
--              fprintf(stderr, "usb_open error %d\n", r);
-+              fprintf(stderr, "libusb_open error %s (%d)\n", 
libusb_error_name(r), r);
-               if(r == LIBUSB_ERROR_ACCESS)
--                      fprintf(stderr, "Please fix the device permissions, 
e.g. "
--                      "by installing the udev rules file rtl-sdr.rules\n");
-+                      fprintf(stderr, "No permission to access the relevant 
/dev/ugen devices.\n");
-+              else if(r == LIBUSB_ERROR_NO_DEVICE)
-+                      fprintf(stderr, "Check that you have sufficient 
/dev/ugen nodes for your device.\n"
-+                          "You may need to run sh MAKEDEV ugen[number].\n");
-               goto err;
-       }
- 
Index: patches/patch-src_rtl_fm_c
===================================================================
RCS file: patches/patch-src_rtl_fm_c
diff -N patches/patch-src_rtl_fm_c
--- patches/patch-src_rtl_fm_c  11 Mar 2022 18:26:30 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,74 +0,0 @@
---- src/rtl_fm.c.orig  Fri Apr 12 21:51:14 2013
-+++ src/rtl_fm.c       Tue Apr 23 15:42:34 2013
-@@ -128,6 +128,7 @@ void usage(void)
-               "\t[-E sets lower edge tuning (default: center)]\n"
-               "\t[-N enables NBFM mode (default: on)]\n"
-               "\t[-W enables WBFM mode (default: off)]\n"
-+              "\t[-S force sync output (default: async)]\n"
-               "\t (-N -s 170k -o 4 -A fast -r 32k -l 0 -D)\n"
-               "\tfilename (a '-' dumps samples to stdout)\n"
-               "\t (omitting the filename also uses stdout)\n\n"
-@@ -723,12 +724,22 @@ int main(int argc, char **argv)
-       uint32_t dev_index = 0;
-       int device_count;
-       int ppm_error = 0;
-+#ifdef __OpenBSD__
-+      int sync_mode = 1;
-+#else
-+      int sync_mode = 0;
-+#endif
-       char vendor[256], product[256], serial[256];
-+      pthread_mutexattr_t attr;
-+
-       fm_init(&fm);
--      pthread_mutex_init(&data_ready, NULL);
--      pthread_mutex_init(&data_write, NULL);
-+      pthread_mutexattr_init(&attr);
-+      pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL);
-+      pthread_mutex_init(&data_ready, &attr);
-+      pthread_mutex_init(&data_write, &attr);
-+      pthread_mutexattr_destroy(&attr);
- 
--      while ((opt = getopt(argc, argv, "d:f:g:s:b:l:o:t:r:p:EFA:NWMULRDC")) 
!= -1) {
-+      while ((opt = getopt(argc, argv, "d:f:g:s:b:l:o:t:r:p:EFA:NWMULRDSC")) 
!= -1) {
-               switch (opt) {
-               case 'd':
-                       dev_index = atoi(optarg);
-@@ -815,6 +826,9 @@ int main(int argc, char **argv)
-               case 'R':
-                       fm.mode_demod = &raw_demod;
-                       break;
-+              case 'S':
-+                      sync_mode = 1;
-+                      break;
-               default:
-                       usage();
-                       break;
-@@ -921,9 +935,24 @@ int main(int argc, char **argv)
-               fprintf(stderr, "WARNING: Failed to reset buffers.\n");}
- 
-       pthread_create(&demod_thread, NULL, demod_thread_fn, (void *)(&fm));
--      rtlsdr_read_async(dev, rtlsdr_callback, (void *)(&fm),
--                            DEFAULT_ASYNC_BUF_NUMBER,
--                            lcm_post[fm.post_downsample] * 
DEFAULT_BUF_LENGTH);
-+      if (sync_mode) {
-+              fprintf(stderr, "Reading samples in sync mode...\n");
-+              while (!do_exit) {
-+                      r = rtlsdr_read_sync(dev, &fm.buf,
-+                                           lcm_post[fm.post_downsample] * 
DEFAULT_BUF_LENGTH,
-+                                           &fm.buf_len);
-+                      if (r < 0) {
-+                              fprintf(stderr, "WARNING: sync read failed.\n");
-+                              break;
-+                      }
-+                      full_demod(&fm);
-+              }
-+      } else {
-+              fprintf(stderr, "Reading samples in async mode...\n");
-+              rtlsdr_read_async(dev, rtlsdr_callback, (void *)(&fm),
-+                                DEFAULT_ASYNC_BUF_NUMBER,
-+                                lcm_post[fm.post_downsample] * 
DEFAULT_BUF_LENGTH);
-+      }
- 
-       if (do_exit) {
-               fprintf(stderr, "\nUser cancel, exiting...\n");}
Index: patches/patch-src_rtl_sdr_c
===================================================================
RCS file: patches/patch-src_rtl_sdr_c
diff -N patches/patch-src_rtl_sdr_c
--- patches/patch-src_rtl_sdr_c 11 Mar 2022 18:26:30 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
---- src/rtl_sdr.c.orig Sun Apr 21 11:58:32 2013
-+++ src/rtl_sdr.c      Sun Apr 21 11:59:23 2013
-@@ -110,7 +110,12 @@ int main(int argc, char **argv)
-       int n_read;
-       int r, opt;
-       int i, gain = 0;
-+#ifdef __OpenBSD__
-+      /* XXX async doesn't work yet */
-+      int sync_mode = 1;
-+#else
-       int sync_mode = 0;
-+#endif
-       FILE *file;
-       uint8_t *buffer;
-       uint32_t dev_index = 0;
Index: patches/patch-src_rtl_test_c
===================================================================
RCS file: patches/patch-src_rtl_test_c
diff -N patches/patch-src_rtl_test_c
--- patches/patch-src_rtl_test_c        11 Mar 2022 18:26:30 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
---- src/rtl_test.c.orig        Sun Apr 21 11:58:32 2013
-+++ src/rtl_test.c     Sun Apr 21 11:59:31 2013
-@@ -210,7 +210,12 @@ int main(int argc, char **argv)
-       int n_read;
-       int r, opt;
-       int i, tuner_benchmark = 0;
-+#ifdef __OpenBSD__
-+      /* XXX async doesn't work yet */
-+      int sync_mode = 1;
-+#else
-       int sync_mode = 0;
-+#endif
-       uint8_t *buffer;
-       uint32_t dev_index = 0;
-       uint32_t samp_rate = DEFAULT_SAMPLE_RATE;
Index: pkg/DESCR
===================================================================
RCS file: /cvs/ports/comms/rtl-sdr/pkg/DESCR,v
diff -u -r1.2 DESCR
--- pkg/DESCR   23 Apr 2013 14:50:19 -0000      1.2
+++ pkg/DESCR   10 Jan 2024 08:58:20 -0000
@@ -9,10 +9,7 @@
                (narrow band FM, wide band FM, AM and SSB)
 rtl_sdr:       tunes the device and captures raw data to a file
 rtl_test:      check the possible tuning range
-
-Asynchronous mode is NOT currently supported on OpenBSD; some programs
-have been modified to force synchronous mode, the following are not yet
-available:
-
+rtl_biast:     turn the RTL-SDR.com bias tee or any GPIO ON and OFF
+rtl_power:     simple FFT logger
 rtl_adsb:      simple ADS-B decoder (aircraft tracking)
 rtl_tcp:       provides a network server for remote access to an SDR
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/comms/rtl-sdr/pkg/PLIST,v
diff -u -r1.4 PLIST
--- pkg/PLIST   11 Mar 2022 18:26:30 -0000      1.4
+++ pkg/PLIST   10 Jan 2024 08:58:20 -0000
@@ -1,9 +1,19 @@
+@bin bin/rtl_adsb
+@bin bin/rtl_biast
 @bin bin/rtl_eeprom
 @bin bin/rtl_fm
+@bin bin/rtl_power
 @bin bin/rtl_sdr
+@bin bin/rtl_tcp
 @bin bin/rtl_test
 include/rtl-sdr.h
 include/rtl-sdr_export.h
-lib/librtlsdr.a
+lib/cmake/
+lib/cmake/rtlsdr/
+lib/cmake/rtlsdr/rtlsdrConfig.cmake
+lib/cmake/rtlsdr/rtlsdrConfigVersion.cmake
+lib/cmake/rtlsdr/rtlsdrTargets${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/rtlsdr/rtlsdrTargets.cmake
+@static-lib lib/librtlsdr.a
 @lib lib/librtlsdr.so.${LIBrtlsdr_VERSION}
 lib/pkgconfig/librtlsdr.pc

Reply via email to