Add root LICENSE and consolidate licensing into LICENSES/#77
Conversation
Consolidate the project licensing into a single root LICENSE that explains the BSD-3-Clause core (Copyright (c) 2009 free60.org) and inventories every bundled third-party component by license: BSD-3-Clause, MIT, the Broadcom CFE/USB license, public domain, GPL-2.0, GPL-3.0, LGPL-2.1, and the dual-licensed libfdt. Add a LICENSES/ directory containing the full verbatim text of each license used in the repository. Remove the now-redundant libxenon/LICENSE and devkitxenon/LICENSE; their contents are superseded by the root LICENSE. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
If there is GPLv3 code linked in, that makes the overall license GPLv3, not BSD 3-clause, from my understanding. The GPLv3 is the strongest copyleft license of them all so "takes precedence" in a way. There is also GPLv2-or-later for TinyEHCI, which is fine because that is GPLv3 compatible. Everything else seems permissive so that's fine. One problem is elf.c. As far as I can tell that is GPLv2 ONLY, which is incompatible with GPLv3 and, strictly speaking, causes a license clash. Now I don't know if that is really a big deal for this sort of hobby project which clearly keeps to the spirit of the licenses anyways, but something to keep in mind. I had no idea of this and thought the whole project was BSD 3-clause compatible, so probably a good idea for this PR to happen. NOTE: I am not a lawyer. |
|
I checked with AI as i'm also not a lawyer and i'm not very well versed in all licensing wording, compatibility etc. As long as the GPL 2.0 isn't GPLv2 ONLY we should be fine with this - the caveat as you mentioned is that the compiled output is GPL 3.0 while the parts of it can still be BSD 3-clause as setup in this. Response from my session with Gemini 3.5 Flash:
|
The thing is, that code is GPLv2 only, since it doesn't specify "or any later version". Again though, I don't know if that is really a big deal for this project.
I feel like an LLM is a pretty bad tool to use for this sort of task which requires real understanding of things. It is a (very powerful) autocomplete, not any sort of actually intelligent thing. Although it can mimic that pretty well in certain cases where it has an enormous amount of training data, with most of it being correct, neither of these things can be guaranteed. I can also tell just from that snippet that it is being overly agreeable, I wouldn't trust it to provide any real criticism or changes. |
What
Adds a single root
LICENSEthat documents how the whole project is licensed, plus aLICENSES/directory holding the full verbatim text of every license used. Removes the two older, now-redundant license files (libxenon/LICENSE,devkitxenon/LICENSE).Opening as a draft for discussion — please weigh in before we merge. Nothing here changes the actual terms of any file; it only documents and consolidates what's already in the source headers.
Why
Licensing was previously split across
libxenon/LICENSE(BSD + Broadcom) and an informaldevkitxenon/LICENSEnote, with the real picture (GPL/LGPL/MIT/public-domain components) only visible by reading individual source headers. This makes the situation explicit and self-contained.What's in it
LICENSE— BSD-3-Clause core (Copyright (c) 2009 free60.org), then a per-component breakdown grouped by license, plus a note on the GPL build toolchain and the auxiliary libs (zlib/libpng/bzip2/freetype) that the build script downloads rather than bundles.LICENSES/— full canonical texts:BSD-3-Clause,MIT,GPL-2.0,GPL-3.0,LGPL-2.1, plusLicenseRef-Broadcom-CFEandLicenseRef-Public-Domainfor the non-standard ones.Component licenses documented
Points worth a look from reviewers
SPDX-License-Identifier:headers were intentionally left out to keep this non-invasive. Open to adding them in a follow-up if the project wants full REUSE compliance.🤖 Generated with Claude Code