41103e3b5e
- 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>
38 lines
2.5 KiB
Markdown
38 lines
2.5 KiB
Markdown
# 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.
|