0021. Apache-2.0, with a contributor licence agreement
Questa pagina è in inglese: in italiano ci sono per ora i tutorial e il glossario; menu, ricerca e navigazione sono in italiano.
- Status: accepted (supersedes 0002)
- Date: 2026-10-09
Context
Section titled “Context”Decision 0002 chose AGPL-3.0-or-later or a commercial licence, because the framework then linked JUCE (AGPLv3 or commercial) and Tracktion Engine (GPLv3 or later, or commercial). That is no longer true: the cores are pure C++20, the default adapters use permissive libraries (decision 0015), and the JUCE and Tracktion adapters live in the shuffle_juce satellite, which an application uses only if it chooses those backends.
A copyleft licence on the framework itself now restricts every application for the sake of an optional backend. It keeps the framework out of closed-source products unless a commercial licence is negotiated, it makes static linking on iOS and Android a legal question, and it puts the framework in the same position as the music frameworks that already require the AGPL or a paid licence.
The maintainer is the sole copyright holder, every repository is still private, and no outside contribution exists, so the licence can be changed now without asking anyone.
Decision
Section titled “Decision”- shuffle_engine and every satellite are licensed under the Apache
License, Version 2.0: the SPDX identifier
Apache-2.0in the header of every file,LICENSES/Apache-2.0.txt, and aNOTICEfile in each repository. - Why Apache-2.0:
- adoption: any application, open or closed, desktop or mobile, can use the framework without a separate agreement;
- patent grant: contributors license their patents that the code needs, and a party that sues over them loses that licence, which protects the people who build on the framework;
- a fully permissive stack: with the default adapters (miniaudio, libremidi, the codec libraries, the plugin host) an application depends on no copyleft code, a real alternative to frameworks that need the AGPL or a commercial licence.
- Contributor Licence Agreement. Every contribution needs a signed agreement (CLA.md, forms for individuals and for organisations) that grants the maintainer a copyright and patent licence with the right to relicense. Its text (version 1.0, 2026-10-10) follows the structure of the Apache Software Foundation’s individual and corporate CLAs; outside contributions are accepted once the repositories are public.
- Possible open core at 2.0. The core (everything that is Apache-2.0 today and its continuation) stays Apache-2.0. From version 2.0 the maintainer may add new premium parts, in separate modules or repositories, under commercial terms. Nothing released under Apache-2.0 is withdrawn or relicensed retroactively.
- Releases already tagged keep their licence. A version tagged before this decision stays available under the licence it was published with; the change applies from the first commit that carries the new headers. (At the date of this decision no version had been released.)
- Optional adapters on copyleft or proprietary libraries stay as decision 0015 says: off by default, never bundled, and the application that turns one on takes on that library’s terms (JUCE, Tracktion Engine, Ableton Link, a user-supplied LGPL FFmpeg).
Consequences
Section titled “Consequences”- Applications choose their own licence. One that uses shuffle_juce must still satisfy JUCE’s and Tracktion Engine’s licences.
- Copyleft and non-free dependencies need the same care as before: a library that would impose its terms on every application is an optional adapter, never a default.
- Every repository’s
tools/check_repo.pyexpects the new SPDX identifier;reuse lintchecks the whole tree. - Contributions need the signed agreement; the maintainer keeps the freedom to offer commercial additions later.
© 2026 Umberto Sorbo. Il software è distribuito con la Apache License, Version 2.0, e fornito “così com’è”, senza garanzie o condizioni di alcun tipo; leggi l’esclusione di responsabilità.
SHUFFLE Framework e il logo di SHUFFLE Framework sono marchi di Umberto Sorbo; la licenza non concede alcun diritto su di essi (marchi). Gli altri nomi appartengono ai rispettivi titolari. Caratteri: IBM Plex Sans e JetBrains Mono, SIL Open Font License 1.1.
Contatti: shuffleframework@gmail.com · Instagram @shuffleframework. Problemi di sicurezza: scrivi allo stesso indirizzo con “Security” nell’oggetto, non in una issue pubblica.