← Spektra RF · Licences & source

Third-Party Notices

Spektra's distributed bundles (the macOS .app/.dmg, the Windows installer, and their PyInstaller sidecar) incorporate the third-party components listed below. This file is grouped by which part of the distribution each component ships in. See LICENSE.md for the split between Spektra's own proprietary App code and its GPL-3.0-or-later Engine code.

Python sidecar (the Engine's runtime and its Python dependencies)

Component Version License Source
Spektra Engine (this project's 24 GPL files, see LICENSE.md) GPL-3.0-or-later this repository
pyrtlsdr 0.4.0 GPL-3.0-or-later pyrtlsdr-0.4.0.dist-info/METADATA (dist/rfscanner-backend-arm64/_internal/) → License: GPL-3.0-or-later
pyrtlsdrlib (wrapper) 0.0.4 MIT pyrtlsdrlib-0.0.4.dist-info/METADATA (the .venv-soapy used by the arm64 spec) → License-Expression: MIT
numpy 2.5.0 BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0 numpy-2.5.0.dist-info/METADATA (dist/rfscanner-backend-arm64/_internal/) License-Expression (quoted verbatim — numpy is a composite of several BSD-family and public-domain-equivalent licenses across its bundled subcomponents, not a single "BSD" license)
websockets 16.0 BSD-3-Clause websockets-16.0.dist-info/METADATA (dist/rfscanner-backend-arm64/_internal/) License-Expression
pyserial 3.5 (pinned) BSD-3-Clause Pinned in requirements.txt and declared as a hiddenimport in every sidecar spec (serial, serial.serialposix, serial.tools.list_ports*) because sources/serial_source.py/sources/tinysa_source.py support serial-attached devices. Bundled inside the sidecar's PyInstaller PYZ archive (pure-Python, so it is not a folder under _internal/); presence verified with pyi-archive_viewer -l -r (lists serial, serial.serialposix, serial.tools.list_ports) and by the sidecar's --selftest-serial exit-0 self-check. License taken from the upstream pyserial project.
CPython (frozen into the sidecar) 3.14.6 PSF-2.0 dist/rfscanner-backend-arm64/_internal/python3.14 (frozen interpreter directory) + .venv-soapy/bin/python3 -V (the venv the arm64 spec builds from)
PyInstaller 6.20.0 GPL-2.0-or-later, WITH a bootloader exception pyinstaller-6.20.0.dist-info/METADATA → "License: GPLv2-or-later with a special exception which allows to use PyInstaller to build and distribute non-free programs (including commercial ones)". PyInstaller is a build tool, not a runtime dependency shipped as source — its bootloader exception is exactly what permits bundling it into a non-free, commercial distribution like Spektra's App.

Native libraries bundled for macOS/Windows (loaded by the Engine at runtime)

Component Version License Source
librtlsdr (bundled dylibs via pyrtlsdrlib) 0.9git GPL-2.0-or-later pyrtlsdrlib/lib/custom_build/librtlsdr.0.9git.dylib — this is the dylib actually loaded at runtime (the custom_build/ tree, not the stock lib/ tree). Note: pyrtlsdrlib/lib/build-meta.json (the stock, non-custom_build metadata file) still reports tag_name: v0.8.0 for a differently-named librtlsdr.0.8git.dylib — that is stale, pre-custom-build metadata and does not describe what ships; do not "correct" this version back to it. Upstream: https://gitea.osmocom.org/sdr/rtl-sdr
libusb bundled dylib (libusb-1.0.0.dylib) LGPL-2.1-or-later brew info --json=v2 libusblicense: LGPL-2.1-or-later
SoapySDR 0.8.1 (libSoapySDR.0.8.1.dylib) BSL-1.0 (Boost Software License 1.0) brew info --json=v2 soapysdrlicense: BSL-1.0
libhackrf dist/.../SoapySDR/../libhackrf.0.dylib (via vendor/soapy-arm64/) GPL-2.0-or-later brew info --json=v2 hackrflicense: GPL-2.0-or-later. Bundled because HackRF support is one of the sidecar spec's binaries= entries — omitting it here would understate what actually ships.
libairspy dist/.../vendor/soapy-arm64/libairspy.0.dylib GPL-2.0-or-later brew info --json=v2 airspylicense: GPL-2.0-or-later. Same rationale as libhackrf above — genuinely bundled, not optional.
OpenSSL 3 (libcrypto.3.dylib, libssl.3.dylib) 3.x (bundled by the CPython 3.14 framework build) Apache-2.0 brew info --json=v2 openssl@3license: Apache-2.0; present at dist/rfscanner-backend-arm64/_internal/libcrypto.3.dylib and .../libssl.3.dylib.
xz / liblzma (liblzma.5.dylib) bundled by the CPython 3.14 framework build 0BSD brew info --json=v2 xz — the liblzma library itself is 0BSD (public-domain-equivalent); the xz project's CLI/build tooling separately carries GPL-2.0-or-later components not bundled here. Present at dist/rfscanner-backend-arm64/_internal/liblzma.5.dylib.
zstd (libzstd.1.dylib) bundled by the CPython 3.14 framework build BSD-3-Clause brew info --json=v2 zstd — the core libzstd library ships under the BSD license (the zstd project separately offers a GPL-2.0 alternative for some build/CLI components, not applicable to the bundled dylib). Present at dist/rfscanner-backend-arm64/_internal/libzstd.1.dylib.
mpdecimal (libmpdec.4.dylib) 4.0.1 BSD-2-Clause brew info --json=v2 mpdecimallicense: BSD-2-Clause. Bundled as CPython's decimal module backend. Present at dist/rfscanner-backend-arm64/_internal/libmpdec.4.dylib.
SoapyHackRF plugin (SoapySDR/modules0.8/libHackRFSupport.so) 0.3.4 MIT brew info --json=v2 soapyhackrflicense: MIT, version 0.3.4; confirmed against upstream pothosware/SoapyHackRF repository license. Present at dist/rfscanner-backend-arm64/_internal/SoapySDR/modules0.8/libHackRFSupport.so.
SoapyAirspy plugin (SoapySDR/modules0.8/libairspySupport.so) 0.2.0 MIT Homebrew formula pothosware/homebrew-pothos/soapyairspy builds tag soapy-airspy-0.2.0; confirmed MIT against upstream pothosware/SoapyAirspy repository license (brew's own license field is blank for this formula). Present at dist/rfscanner-backend-arm64/_internal/SoapySDR/modules0.8/libairspySupport.so.
SoapySDR Python binding (_SoapySDR.so) 0.8.1 BSL-1.0 (Boost Software License 1.0), same as SoapySDR itself The SWIG-generated Python binding ships as part of the soapysdr Homebrew formula (same license/version as the libSoapySDR entry above). Present at dist/rfscanner-backend-arm64/_internal/_SoapySDR.so.

Tauri shell (Rust)

Component Version License Source
Tauri 2.11 MIT OR Apache-2.0 src-tauri/Cargo.toml
tauri-plugin-shell 2 MIT OR Apache-2.0 src-tauri/Cargo.toml
tauri-plugin-opener 2.5.4 MIT OR Apache-2.0 src-tauri/Cargo.toml
tauri-plugin-dialog 2.7.2 MIT OR Apache-2.0 src-tauri/Cargo.toml
tauri-plugin-fs 2.5.1 MIT OR Apache-2.0 src-tauri/Cargo.toml

Frontend (vendored, not CDN-loaded)

Component Version License Source
jsPDF 3.0.1 (js/vendor/jspdf.umd.min.js) MIT js/vendor/VERSIONS.md. Copyright (c) 2010-2021 James Hall (james@parall.ax), https://github.com/MrRio/jsPDF; 2015-2021 yWorks GmbH, http://www.yworks.com. Full license header is preserved verbatim at the top of the vendored file.
IBM Plex Sans + IBM Plex Mono v20 web subsets (css/fonts/*.woff2) OFL-1.1 Full text at licenses/OFL-1.1-IBM-Plex.txt. Copyright © 2017 IBM Corp. with Reserved Font Name "Plex", https://github.com/IBM/plex. The 39 .woff2 files are the unmodified per-script subsets Google Fonts serves for these families; they were self-hosted (quick-260828-fnt) so Spektra's first paint never touches the network — see css/fonts.css for the regeneration procedure. The OFL's Reserved Font Name clause is respected: the files are redistributed unmodified and are not renamed.

Windows installer resources

Component Version License Source
Zadig 2.9 GPL-3.0 build-tauri-windows.ps1:160 + .github/workflows/windows-build.yml:76 download it; NSIS installer/driver-hook.nsh ships a shortcut to it. GitHub API repo license for pbatard/libwdi (the project Zadig ships from) → GPL-3.0. The GPL-3.0 designation is libwdi's repository-level license; the Zadig end-user application built from libwdi is distributed here unmodified as a separate installer-convenience executable, not linked into or modified by Spektra's own code — Spektra ships the Zadig binary as-is (an aggregation) rather than incorporating libwdi source into its own build.

Written offer for source code (GPL / LGPL components)

For every component listed above under a GPL or LGPL license — the Spektra Engine itself, librtlsdr, libhackrf, libairspy, libusb, and Zadig (via its libwdi origin) — Squaresmile Media offers to provide, without charge except the cost of physically performing source distribution, complete corresponding machine-readable source code, for a period of at least three (3) years from the date this product was distributed to you.

  • Spektra Engine. Complete corresponding source for the Spektra Engine (the 24 GPL-3.0-or-later files enumerated in LICENSE.md) is attached to every release as spektra-engine-src-<version>.zip — see LICENSE.md for the exact file list and scripts/make-engine-source.sh for how that archive is built.
  • Native GPL/LGPL libraries (librtlsdr, libhackrf, libairspy, libusb, libwdi/Zadig). Source for these upstream projects is available from the upstream URLs listed in the table above, and also on request from the licensor (the same contact as below) — Squaresmile Media does not modify these libraries' source, so redistributing the unmodified upstream source on request satisfies the same three-year written-offer obligation.

To request source, contact:

support@squaresmile.de — or by post: Squaresmile Media (Timothy Schulz), Düsseldorfer Straße 131, 51063 Köln, Germany. The current engine-source archive is also published alongside every release on https://www.squaresmile.de/spektra.

This written offer is provided to satisfy the source-availability obligations of the GPL-2.0-or-later, GPL-3.0-or-later, and LGPL-2.1-or-later licenses for the respective components above.

Verbatim from the Spektra 3.19.0 release. Download THIRD-PARTY-NOTICES.md · SHA-256 1191f8db279cedab18be52b818bd37a1efaf66bedcbbd93530fd22e9650bef0f