Files
aes67-ESP32-P4/THIRD_PARTY.md
T
bsncubed 41103e3b5e Licences: MIT for the AES67 core and web page, GPL-3.0 for the rest
- LICENSE (GPL-3.0) at the root; an MIT LICENSE in each components/aes67_*
  and in web/, so they travel with the code when reused.
- THIRD_PARTY.md: third-party code and licences, and the known conflict of
  the Espressif binary audio libraries with GPL-3.0 (firmware contains cspot).
- CLAUDE.md: rule to keep GPL code out of the core; phase 2 item to replace
  the Espressif binaries (opencore-aacdec, Speex resampler).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 08:37:38 +10:00

2.5 KiB

Licences

This project

Part Licence
AES67 core: components/aes67_* (each has its own LICENSE) MIT
Web page: web/index.html (web/LICENSE) MIT
Everything else: main/, components/spotify/ (incl. our cspot/bell patches), tools/, docs, build files GPL-3.0-or-later (LICENSE)

The core is MIT so it can be reused in other AES67 projects, including closed ones. It must not depend on GPL code: nothing in components/aes67_* may include or link cspot or main/.

The firmware image as a whole contains cspot (GPL-3.0), so anyone who distributes the firmware (a .bin or a flashed board) must do so under GPL-3.0, with the complete corresponding source.

Third-party code in the firmware

Code Used for Licence Notes
cspot (philippe44 fork, external/cspot) Spotify Connect GPL-3.0-or-later Our patches: components/spotify/patches/cspot
bell (cspot submodule) cspot's I/O and utilities no licence file Part of the cspot project; licence to be confirmed with the author
tremor (via bell) Vorbis decoding (Spotify) BSD-3-Clause (Xiph.Org)
nanopb (via bell) Protobuf (Spotify protocol) zlib
ESP-IDF, incl. mbedTLS, esp_http_server, esp_eth Platform, TLS, web server, Ethernet Apache-2.0 mbedTLS is dual Apache-2.0 / GPL-2.0-or-later
lwIP TCP/IP BSD-3-Clause
FreeRTOS RTOS MIT
cJSON JSON MIT
espressif/mdns mDNS Apache-2.0
espressif/esp_audio_codec AAC decoding (HLS) Espressif Modified MIT, prebuilt binary Only allowed with Espressif chips; no source
espressif/esp_audio_effects, gmf_fft 44.1 → 48 kHz conversion Espressif Modified MIT; esp_audio_effects is a prebuilt binary as above

Algorithms: pink noise uses Paul Kellet's filter and a xorshift32 generator (both public domain).

Known conflict

The two Espressif binary libraries can't be distributed under GPL-3.0: there is no source, and "Espressif chips only" is an additional restriction that GPL-3.0 forbids. A firmware image containing both them and cspot therefore can't be distributed in line with GPL-3.0. Private use is not affected.

Planned fix (phase 2 in CLAUDE.md): replace them with open code, e.g. opencore-aacdec (Apache-2.0, already in bell/external) for AAC and the Speex resampler (BSD) for the sample-rate conversion. The Speex resampler can also do the fine rate steering the clock-drift correction needs.