# 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](https://github.com/philippe44/cspot) (philippe44 fork, `external/cspot`) | Spotify Connect | GPL-3.0-or-later | Our patches: `components/spotify/patches/cspot` | | [bell](https://github.com/philippe44/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.