Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rtl-sdr for openSUSE:Factory checked in at 2026-08-12 16:12:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rtl-sdr (Old) and /work/SRC/openSUSE:Factory/.rtl-sdr.new.17972 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rtl-sdr" Wed Aug 12 16:12:22 2026 rev:14 rq:1370777 version:2.0.3 Changes: -------- --- /work/SRC/openSUSE:Factory/rtl-sdr/rtl-sdr.changes 2026-04-25 21:43:25.212610071 +0200 +++ /work/SRC/openSUSE:Factory/.rtl-sdr.new.17972/rtl-sdr.changes 2026-08-12 16:13:33.449133007 +0200 @@ -1,0 +2,14 @@ +Wed Aug 12 05:22:14 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to version 2.0.3: + * Add support for the RTL-SDR Blog V4 Lite dongle + * Bypass the tracking filter on HF to reduce insertion loss + * Fix application hang on USB transfer errors + * Correct the release version recorded in CMakeLists.txt + * Allow building with CMake 4 +- Drop patches included upstream: + * 0002-Change-version-number.patch + * 0003-Fix-application-hang-on-usb-error.patch +- Unpack from librtlsdr-2.0.3 as upstream repository was renamed + +------------------------------------------------------------------- Old: ---- 0002-Change-version-number.patch 0003-Fix-application-hang-on-usb-error.patch rtl-sdr-2.0.2.tar.gz New: ---- rtl-sdr-2.0.3.tar.gz ----------(Old B)---------- Old:- Drop patches included upstream: * 0002-Change-version-number.patch * 0003-Fix-application-hang-on-usb-error.patch Old: * 0002-Change-version-number.patch * 0003-Fix-application-hang-on-usb-error.patch - Unpack from librtlsdr-2.0.3 as upstream repository was renamed ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rtl-sdr.spec ++++++ --- /var/tmp/diff_new_pack.0eQaQx/_old 2026-08-12 16:13:34.265167475 +0200 +++ /var/tmp/diff_new_pack.0eQaQx/_new 2026-08-12 16:13:34.265167475 +0200 @@ -1,7 +1,7 @@ # # spec file for package rtl-sdr # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,18 +19,15 @@ %define sover 0 %define libname librtlsdr%{sover} %define rtlsdr_group rtlsdr - Name: rtl-sdr -Version: 2.0.2 +Version: 2.0.3 Release: 0 Summary: Support programs for RTL2832 License: GPL-2.0-or-later -URL: http://sdr.osmocom.org/trac/wiki/rtl-sdr +URL: https://sdr.osmocom.org/trac/wiki/rtl-sdr #Git-Clone: https://git.osmocom.org/rtl-sdr Source: https://github.com/steve-m/librtlsdr/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Patch0: 0001-Better-udev-handling.patch -Patch1: 0002-Change-version-number.patch -Patch2: 0003-Fix-application-hang-on-usb-error.patch BuildRequires: cmake >= 3.7.2 BuildRequires: gcc-c++ BuildRequires: pkgconfig @@ -64,7 +61,9 @@ Library headers for rtl-sdr driver. %prep -%autosetup -p1 +# Upstream repository was renamed from rtl-sdr to librtlsdr, so the +# generated GitHub archive now unpacks into librtlsdr-%%{version} +%autosetup -p1 -n librtlsdr-%{version} %build %cmake \ @@ -103,8 +102,9 @@ %{_bindir}/rtl_test %files -n %{libname} -%{_libdir}/librtlsdr.so.%{sover}* -%{_libdir}/librtlsdr.so.%{version} +# Upstream sets the library VERSION from CMakeLists.txt, which has drifted +# from the release tag before, so do not tie this glob to %%{version} +%{_libdir}/librtlsdr.so.* %files udev %{_udevrulesdir}/rtl-sdr.rules ++++++ rtl-sdr-2.0.2.tar.gz -> rtl-sdr-2.0.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/CMakeLists.txt new/librtlsdr-2.0.3/CMakeLists.txt --- old/rtl-sdr-2.0.2/CMakeLists.txt 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/CMakeLists.txt 2026-08-12 00:11:56.000000000 +0200 @@ -19,7 +19,7 @@ ######################################################################## # Project setup ######################################################################## -cmake_minimum_required(VERSION 3.7.2) +cmake_minimum_required(VERSION 3.7.2...4.2.0) # workaround for https://gitlab.kitware.com/cmake/cmake/issues/16967 if(${CMAKE_VERSION} VERSION_LESS "3.12.0") @@ -43,7 +43,7 @@ # Set the version information here set(VERSION_INFO_MAJOR_VERSION 2) # increment major on api compatibility changes set(VERSION_INFO_MINOR_VERSION 0) # increment minor on feature-level changes -set(VERSION_INFO_PATCH_VERSION 1) # increment patch for bug fixes and docs +set(VERSION_INFO_PATCH_VERSION 3) # increment patch for bug fixes and docs include(Version) # setup version info ######################################################################## diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/contrib/jenkins.sh new/librtlsdr-2.0.3/contrib/jenkins.sh --- old/rtl-sdr-2.0.2/contrib/jenkins.sh 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/contrib/jenkins.sh 2026-08-12 00:11:56.000000000 +0200 @@ -32,10 +32,20 @@ $MAKE $PARALLEL_MAKE LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || cat-testlogs.sh + +# Prepare to run "make distcheck" by first running configure without +# --enable-werror. "make distcheck" runs configure again, and if -Werror is set +# the configure script itself will fail build its AC_CHECK_LIB test program, +# resulting in "checking for atan2 in -lm" -> "result: no" and then attempting +# to link rtl_test without -lm, which then fails. +# https://bug-libtool.gnu.narkive.com/YrSM40bs/lt-lib-m-and-gcc +./configure + LD_LIBRARY_PATH="$inst/lib" \ DISTCHECK_CONFIGURE_FLAGS="--enable-werror" \ $MAKE distcheck \ || cat-testlogs.sh + $MAKE maintainer-clean osmo-clean-workspace.sh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/debian/changelog new/librtlsdr-2.0.3/debian/changelog --- old/rtl-sdr-2.0.2/debian/changelog 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/debian/changelog 2026-08-12 00:11:56.000000000 +0200 @@ -1,3 +1,26 @@ +rtl-sdr (2.0.3) unstable; urgency=medium + + [ Oliver Smith ] + * contrib/jenkins: fix running "make distcheck" + + [ Ramon Smits ] + * Fix application hang on USB transfer errors + + [ Steve Markgraf ] + * Use CMake <min>...<max> syntax to get rid of deprecation warnings + * debian: drop invalid kfreebsd build-dep, switch to pkgconf + * debian: fix AppStream metadata validation + * debian: add man page for rtl_biast + * debian: fix wrong program name in rtl_fm man page header + + [ Joshua Grieve ] + * Make include relative to project for use with FetchContent + + [ rtlsdrblog ] + * Add RTL-SDR Blog V4L Support + + -- Steve Markgraf <[email protected]> Wed, 12 Aug 2026 00:02:45 +0200 + rtl-sdr (2.0.2) unstable; urgency=medium [ Mikael Falkvidd ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/debian/control new/librtlsdr-2.0.3/debian/control --- old/rtl-sdr-2.0.2/debian/control 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/debian/control 2026-08-12 00:11:56.000000000 +0200 @@ -4,10 +4,8 @@ Maintainer: A. Maitland Bottoms <[email protected]> Build-Depends: cmake, debhelper (>= 10~), - libusb-1.0-0-dev [linux-any], - libusb-dev [hurd-i386], - libusb2-dev [kfreebsd-any], - pkg-config + libusb-1.0-0-dev, + pkgconf Standards-Version: 4.1.4 Homepage: http://sdr.osmocom.org/trac/wiki/rtl-sdr Vcs-Browser: https://salsa.debian.org/bottoms/pkg-rtl-sdr diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/debian/copyright new/librtlsdr-2.0.3/debian/copyright --- old/rtl-sdr-2.0.2/debian/copyright 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/debian/copyright 2026-08-12 00:11:56.000000000 +0200 @@ -1,10 +1,6 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: rtl-sdr -Upstream-Contact: http://sdr.osmocom.org/trac/wiki/rtl-sdr -Source: - git clone git://git.osmocom.org/rtl-sdr.git - The upstream package source tarball was generated from the tag: - git archive --format=tar --prefix=rtl-sdr-0.5.2.7.3ab6/ 3ab6ff | gzip > ../rtl-sdr_0.5.2.7.3ab6.orig.tar.gz +Upstream-Contact: https://osmocom.org/projects/rtl-sdr Comment: Debian packages sponsored by A. Maitland Bottoms, based upon packaging work by Adam Cécile. @@ -14,20 +10,24 @@ Dimitri Stolnikov <[email protected]> Hoernchen <[email protected]> Kyle Keen <[email protected]> -Copyright: 2012,2013 OSMOCOM Project +Copyright: 2012,2013-2020 OSMOCOM Project License: GPL-2.0+ Files: * -Copyright: 2012, 2013, OSMOCOM Project +Copyright: 2012, 2013-2020, OSMOCOM Project License: GPL-3+ Files: debian/* Copyright: 2013 Adam Cécile (Le_Vert) <[email protected]> - 2012,2013 A. Maitland Bottoms <[email protected]> + 2012,2013-2020 A. Maitland Bottoms <[email protected]> License: GPL-2.0+ +Files: debian/org.osmocom.librtlsdr.metainfo.xml +Copyright: 2018-2024 A. Maitland Bottoms <[email protected]> +License: MIT + Files: debian/librtlsdr0.udev -Copyright: 2012, 2013, Osmocom rtl-sdr project +Copyright: 2012, 2013, 2023, Osmocom rtl-sdr project License: GPL-3+ Files: debian/rtl_adsb.1 @@ -190,7 +190,7 @@ GNU General Public License for more details. . You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/> + along with this program. If not, see <https://www.gnu.org/licenses/> . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". @@ -207,7 +207,7 @@ GNU General Public License for more details. . You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. + along with this program. If not, see <https://www.gnu.org/licenses/>. . On Debian systems, the complete text of the GNU Lesser General Public License can be found in "/usr/share/common-licenses/GPL-3". @@ -228,3 +228,24 @@ . On Debian systems, the complete text of the GNU Lesser General Public License can be found in "/usr/share/common-licenses/LGPL-2". + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + . + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/debian/librtlsdr0.install new/librtlsdr-2.0.3/debian/librtlsdr0.install --- old/rtl-sdr-2.0.2/debian/librtlsdr0.install 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/debian/librtlsdr0.install 2026-08-12 00:11:56.000000000 +0200 @@ -1,2 +1,2 @@ usr/lib/*/lib*.so.* -debian/librtlsdr0.metainfo.xml usr/share/metainfo +debian/org.osmocom.librtlsdr.metainfo.xml usr/share/metainfo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/debian/librtlsdr0.metainfo.xml new/librtlsdr-2.0.3/debian/librtlsdr0.metainfo.xml --- old/rtl-sdr-2.0.2/debian/librtlsdr0.metainfo.xml 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/debian/librtlsdr0.metainfo.xml 1970-01-01 01:00:00.000000000 +0100 @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<component> - <id>librtlsdr0</id> - <metadata_license>GPL-2+</metadata_license> - <name>librtlsdr0</name> - <summary>Control of rtl-sdr radio receiver</summary> - <description> - <p> -rtl-sdr is a software defined radio (SDR) receiver software for certain -low-cost DVB-T/DAB(+) USB dongles based on the Realtek RTL2832U chip. - </p> - </description> - <provides> - <modalias>usb:v0BDAp2832d*</modalias> - <modalias>usb:v0BDAp2838d*</modalias> - <modalias>usb:v0413p6680d*</modalias> - <modalias>usb:v0413p6F0Fd*</modalias> - <modalias>usb:v0458p707Fd*</modalias> - <modalias>usb:v0CCDp00A9d*</modalias> - <modalias>usb:v0CCDp00B3d*</modalias> - <modalias>usb:v0CCDp00B4d*</modalias> - <modalias>usb:v0CCDp00B5d*</modalias> - <modalias>usb:v0CCDp00B7d*</modalias> - <modalias>usb:v0CCDp00B8d*</modalias> - <modalias>usb:v0CCDp00B9d*</modalias> - <modalias>usb:v0CCDp00C0d*</modalias> - <modalias>usb:v0CCDp00C6d*</modalias> - <modalias>usb:v0CCDp00D3d*</modalias> - <modalias>usb:v0CCDp00D7d*</modalias> - <modalias>usb:v0CCDp00E0d*</modalias> - <modalias>usb:v1554p5020d*</modalias> - <modalias>usb:v15F4p0131d*</modalias> - <modalias>usb:v15F4p0133d*</modalias> - <modalias>usb:v185Bp0620d*</modalias> - <modalias>usb:v185Bp0650d*</modalias> - <modalias>usb:v185Bp0680d*</modalias> - <modalias>usb:v1B80pD393d*</modalias> - <modalias>usb:v1B80pD394d*</modalias> - <modalias>usb:v1B80pD395d*</modalias> - <modalias>usb:v1B80pD397d*</modalias> - <modalias>usb:v1B80pD398d*</modalias> - <modalias>usb:v1B80pD39Dd*</modalias> - <modalias>usb:v1B80pD3A4d*</modalias> - <modalias>usb:v1B80pD3A8d*</modalias> - <modalias>usb:v1B80pD3AFd*</modalias> - <modalias>usb:v1B80pD3B0d*</modalias> - <modalias>usb:v1D19p1101d*</modalias> - <modalias>usb:v1D19p1102d*</modalias> - <modalias>usb:v1D19p1103d*</modalias> - <modalias>usb:v1D19p1104d*</modalias> - <modalias>usb:v1F4DpA803d*</modalias> - <modalias>usb:v1F4DpB803d*</modalias> - <modalias>usb:v1F4DpC803d*</modalias> - <modalias>usb:v1F4DpD286d*</modalias> - <modalias>usb:v1F4DpD803d*</modalias> - </provides> -</component> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/debian/org.osmocom.librtlsdr.metainfo.xml new/librtlsdr-2.0.3/debian/org.osmocom.librtlsdr.metainfo.xml --- old/rtl-sdr-2.0.2/debian/org.osmocom.librtlsdr.metainfo.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/librtlsdr-2.0.3/debian/org.osmocom.librtlsdr.metainfo.xml 2026-08-12 00:11:56.000000000 +0200 @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<component> + <id>org.osmocom.librtlsdr</id> + <metadata_license>MIT</metadata_license> + <project_license>GPL-2.0-or-later</project_license> + <name>librtlsdr0</name> + <summary>Control of rtl-sdr radio receiver</summary> + <description> + <p> +rtl-sdr is a software defined radio (SDR) receiver software for certain +low-cost DVB-T/DAB(+) USB dongles based on the Realtek RTL2832U chip. + </p> + </description> + <provides> + <modalias>usb:v0BDAp2832d*</modalias> + <modalias>usb:v0BDAp2838d*</modalias> + <modalias>usb:v0413p6680d*</modalias> + <modalias>usb:v0413p6F0Fd*</modalias> + <modalias>usb:v0458p707Fd*</modalias> + <modalias>usb:v0CCDp00A9d*</modalias> + <modalias>usb:v0CCDp00B3d*</modalias> + <modalias>usb:v0CCDp00B4d*</modalias> + <modalias>usb:v0CCDp00B5d*</modalias> + <modalias>usb:v0CCDp00B7d*</modalias> + <modalias>usb:v0CCDp00B8d*</modalias> + <modalias>usb:v0CCDp00B9d*</modalias> + <modalias>usb:v0CCDp00C0d*</modalias> + <modalias>usb:v0CCDp00C6d*</modalias> + <modalias>usb:v0CCDp00D3d*</modalias> + <modalias>usb:v0CCDp00D7d*</modalias> + <modalias>usb:v0CCDp00E0d*</modalias> + <modalias>usb:v1554p5020d*</modalias> + <modalias>usb:v15F4p0131d*</modalias> + <modalias>usb:v15F4p0133d*</modalias> + <modalias>usb:v185Bp0620d*</modalias> + <modalias>usb:v185Bp0650d*</modalias> + <modalias>usb:v185Bp0680d*</modalias> + <modalias>usb:v1B80pD393d*</modalias> + <modalias>usb:v1B80pD394d*</modalias> + <modalias>usb:v1B80pD395d*</modalias> + <modalias>usb:v1B80pD397d*</modalias> + <modalias>usb:v1B80pD398d*</modalias> + <modalias>usb:v1B80pD39Dd*</modalias> + <modalias>usb:v1B80pD3A4d*</modalias> + <modalias>usb:v1B80pD3A8d*</modalias> + <modalias>usb:v1B80pD3AFd*</modalias> + <modalias>usb:v1B80pD3B0d*</modalias> + <modalias>usb:v1D19p1101d*</modalias> + <modalias>usb:v1D19p1102d*</modalias> + <modalias>usb:v1D19p1103d*</modalias> + <modalias>usb:v1D19p1104d*</modalias> + <modalias>usb:v1F4DpA803d*</modalias> + <modalias>usb:v1F4DpB803d*</modalias> + <modalias>usb:v1F4DpC803d*</modalias> + <modalias>usb:v1F4DpD286d*</modalias> + <modalias>usb:v1F4DpD803d*</modalias> + </provides> +</component> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/debian/rtl-sdr.manpages new/librtlsdr-2.0.3/debian/rtl-sdr.manpages --- old/rtl-sdr-2.0.2/debian/rtl-sdr.manpages 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/debian/rtl-sdr.manpages 2026-08-12 00:11:56.000000000 +0200 @@ -1,4 +1,5 @@ debian/rtl_adsb.1 +debian/rtl_biast.1 debian/rtl_eeprom.1 debian/rtl_fm.1 debian/rtl_power.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/debian/rtl_biast.1 new/librtlsdr-2.0.3/debian/rtl_biast.1 --- old/rtl-sdr-2.0.2/debian/rtl_biast.1 1970-01-01 01:00:00.000000000 +0100 +++ new/librtlsdr-2.0.3/debian/rtl_biast.1 2026-08-12 00:11:56.000000000 +0200 @@ -0,0 +1,50 @@ +.TH "rtl_biast" 1 "2.0.3" RTL-SDR "User Commands" +.SH NAME +rtl_biast \- a tool for turning the bias tee or any GPIO on and off +.SH SYNOPSIS +.B rtl_biast [OPTIONS] +.SH DESCRIPTION +Switch the bias tee power supply of an RTL2832 based receiver on or off. +Many receivers provide a bias tee to feed DC power out over the antenna +connector, for example to supply an external low noise amplifier or an +active antenna. +.LP +The bias tee is driven by GPIO 0 of the RTL2832. Receivers that wire it +to a different pin, or that expose further GPIOs, can be controlled with +the -g option. +.LP +The setting is not reset when rtl_biast exits. The bias tee stays in the +state it was left in until it is switched off again, either by another +call to rtl_biast or by a client program that disables it explicitly. +.SH OPTIONS +.IP "-d device_index or serial (default: 0)" +.IP "-b bias_on (default: 0)" +.IP "-g GPIO select (default: 0)" +.SH EXAMPLES +.IP "To turn the bias tee of the first device on, call" + rtl_biast -d 0 -b 1 +.IP "To turn it off again, call" + rtl_biast -d 0 -b 0 +.IP "To switch GPIO 1 instead of the bias tee, call" + rtl_biast -d 0 -g 1 -b 1 +.SH SEE ALSO +RTL-SDR wiki documentation: +.B http://sdr.osmocom.org/trac/wiki/rtl-sdr +.LP +Other rtl-sdr programs: +.sp +rtl_adsb(1), rtl_eeprom(1), rtl_fm(1), rtl_power(1), rtl_sdr(1), rtl_tcp(1), rtl_test(1) +.SH AUTHOR +This manual page was written for the osmocom rtl-sdr project. +.SH COPYRIGHT +Copyright (c) 2012 Steve Markgraf <[email protected]> +.LP +This program 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 2 of the License, or +(at your option) any later version. +.LP +This program 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. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/debian/rtl_fm.1 new/librtlsdr-2.0.3/debian/rtl_fm.1 --- old/rtl-sdr-2.0.2/debian/rtl_fm.1 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/debian/rtl_fm.1 2026-08-12 00:11:56.000000000 +0200 @@ -1,4 +1,4 @@ -.TH "rtl_adsb" 1 "0.5.0" RTL-SDR "User Commands" +.TH "rtl_fm" 1 "0.5.0" RTL-SDR "User Commands" .SH NAME rtl_fm \- a simple FM demodulator for RTL2832 based DVB-T receivers .SH DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/src/CMakeLists.txt new/librtlsdr-2.0.3/src/CMakeLists.txt --- old/rtl-sdr-2.0.2/src/CMakeLists.txt 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/src/CMakeLists.txt 2026-08-12 00:11:56.000000000 +0200 @@ -22,7 +22,7 @@ tuner_e4k.c tuner_fc0012.c tuner_fc0013.c tuner_fc2580.c tuner_r82xx.c) target_link_libraries(rtlsdr ${LIBUSB_LIBRARIES} ${THREADS_PTHREADS_LIBRARY}) target_include_directories(rtlsdr PUBLIC - $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include> + $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> # <prefix>/include ${LIBUSB_INCLUDE_DIRS} ${THREADS_PTHREADS_INCLUDE_DIR} @@ -40,7 +40,7 @@ tuner_e4k.c tuner_fc0012.c tuner_fc0013.c tuner_fc2580.c tuner_r82xx.c) target_link_libraries(rtlsdr ${LIBUSB_LIBRARIES} ${THREADS_PTHREADS_LIBRARY}) target_include_directories(rtlsdr_static PUBLIC - $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include> + $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> # <prefix>/include ${LIBUSB_INCLUDE_DIRS} ${THREADS_PTHREADS_INCLUDE_DIR} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/src/librtlsdr.c new/librtlsdr-2.0.3/src/librtlsdr.c --- old/rtl-sdr-2.0.2/src/librtlsdr.c 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/src/librtlsdr.c 2026-08-12 00:11:56.000000000 +0200 @@ -1563,7 +1563,12 @@ reg = rtlsdr_i2c_read_reg(dev, R820T_I2C_ADDR, R82XX_CHECK_ADDR); if (reg == R82XX_CHECK_VAL) { fprintf(stderr, "Found Rafael Micro R820T tuner\n"); + + if (rtlsdr_check_dongle_model(dev, "RTLSDRBlog", "Blog V4L")) + fprintf(stderr, "RTL-SDR Blog V4 Lite Detected\n"); + dev->tuner_type = RTLSDR_TUNER_R820T; + goto found; } @@ -1732,7 +1737,6 @@ LIBUSB_TRANSFER_NO_DEVICE == xfer->status) { #endif dev->dev_lost = 1; - rtlsdr_cancel_async(dev); fprintf(stderr, "cb transfer status: %d, " "canceling...\n", xfer->status); #ifndef _WIN32 @@ -1930,6 +1934,11 @@ break; } + /* Check if device was lost due to transfer errors */ + if (dev->dev_lost && RTLSDR_RUNNING == dev->async_status) { + dev->async_status = RTLSDR_CANCELING; + } + if (RTLSDR_CANCELING == dev->async_status) { next_status = RTLSDR_INACTIVE; @@ -1973,6 +1982,9 @@ dev->async_status = next_status; + if (dev->dev_lost) + return -1; + return r; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/src/rtl_fm.c new/librtlsdr-2.0.3/src/rtl_fm.c --- old/rtl-sdr-2.0.2/src/rtl_fm.c 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/src/rtl_fm.c 2026-08-12 00:11:56.000000000 +0200 @@ -809,7 +809,11 @@ static void *dongle_thread_fn(void *arg) { struct dongle_state *s = arg; - rtlsdr_read_async(s->dev, rtlsdr_callback, s, 0, s->buf_len); + int r = rtlsdr_read_async(s->dev, rtlsdr_callback, s, 0, s->buf_len); + if (r != 0 && !do_exit) { + fprintf(stderr, "\nDevice error detected, async read returned: %d\n", r); + do_exit = 1; + } return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rtl-sdr-2.0.2/src/tuner_r82xx.c new/librtlsdr-2.0.3/src/tuner_r82xx.c --- old/rtl-sdr-2.0.2/src/tuner_r82xx.c 2024-04-23 11:42:58.000000000 +0200 +++ new/librtlsdr-2.0.3/src/tuner_r82xx.c 2026-08-12 00:11:56.000000000 +0200 @@ -503,7 +503,7 @@ if (rc < 0) return rc; - if (priv->cfg->rafael_chip == CHIP_R828D) + if (priv->cfg->rafael_chip == CHIP_R828D || rtlsdr_check_dongle_model(priv->rtl_dev, "RTLSDRBlog", "Blog V4L")) vco_power_ref = 1; vco_fine_tune = (data[4] & 0x30) >> 4; @@ -1125,6 +1125,7 @@ { int rc = -1; int is_rtlsdr_blog_v4; + int is_rtlsdr_blog_v4l; uint32_t upconvert_freq; uint32_t lo_freq; uint8_t air_cable1_in; @@ -1135,10 +1136,11 @@ uint8_t air_in; is_rtlsdr_blog_v4 = rtlsdr_check_dongle_model(priv->rtl_dev, "RTLSDRBlog", "Blog V4"); + is_rtlsdr_blog_v4l = rtlsdr_check_dongle_model(priv->rtl_dev, "RTLSDRBlog", "Blog V4L"); /* if it's an RTL-SDR Blog V4, automatically upconvert by 28.8 MHz if we tune to HF * so that we don't need to manually set any upconvert offset in the SDR software */ - upconvert_freq = is_rtlsdr_blog_v4 ? ((freq < MHZ(28.8)) ? (freq + MHZ(28.8)) : freq) : freq; + upconvert_freq = (is_rtlsdr_blog_v4 || is_rtlsdr_blog_v4l) ? ((freq < MHZ(28.8)) ? (freq + MHZ(28.8)) : freq) : freq; lo_freq = upconvert_freq + priv->int_freq; @@ -1165,6 +1167,19 @@ */ band = (freq <= MHZ(28.8)) ? HF : ((freq > MHZ(28.8) && freq < MHZ(250)) ? VHF : UHF); + /* bypass tracking filter for HF to reduce insertion loss, + * the upconverter path doesn't benefit from it. + * Must be outside band-change guard since r82xx_set_mux + * re-applies the tracking filter on every frequency change. */ + if (band == HF) { + rc = r82xx_write_reg_mask(priv, 0x1a, 0x40, 0xc3); + if (rc < 0) + goto err; + rc = r82xx_write_reg(priv, 0x1b, 0x00); + if (rc < 0) + goto err; + } + /* switch between tuner inputs on the RTL-SDR Blog V4 */ if (band != priv->input) { priv->input = band; @@ -1187,6 +1202,52 @@ rc = r82xx_write_reg_mask(priv, 0x05, cable_1_in, 0x40); if (rc < 0) + goto err; + + /* activate air_in (UHF input) */ + air_in = (band == UHF) ? 0x00 : 0x20; + rc = r82xx_write_reg_mask(priv, 0x05, air_in, 0x20); + + if (rc < 0) + goto err; + } + } + else if (is_rtlsdr_blog_v4l) + { + /* select tuner band based on frequency and only switch if there is a band change + *(to avoid excessive register writes when tuning rapidly) + */ + band = (freq <= MHZ(28.8)) ? HF : UHF; + + /* bypass tracking filter for HF to reduce insertion loss, + * the upconverter path doesn't benefit from it. + * Must be outside band-change guard since r82xx_set_mux + * re-applies the tracking filter on every frequency change. */ + if (band == HF) { + rc = r82xx_write_reg_mask(priv, 0x1a, 0x40, 0xc3); + if (rc < 0) + goto err; + rc = r82xx_write_reg(priv, 0x1b, 0x00); + if (rc < 0) + goto err; + } + + /* switch between tuner inputs on the RTL-SDR Blog V4L */ + if (band != priv->input) { + priv->input = band; + + cable_1_in = (band == HF) ? 0x40 : 0x00; + + /* Control upconverter GPIO switch on newer batches */ + rc = rtlsdr_set_bias_tee_gpio(priv->rtl_dev, 5, !cable_1_in); + + if (rc < 0) + goto err; + + /* activate cable 1 (HF input) */ + rc = r82xx_write_reg_mask(priv, 0x05, cable_1_in, 0x40); + + if (rc < 0) goto err; /* activate air_in (UHF input) */
