I'm working on a project for the STM32 platform that I would like to open source under the GPL v3 license, however some of the libraries provided by ST that are required are license under their SLA0044 (www.st.com/SLA0044) which states

5.  No use, reproduction or redistribution of this software partially or totally may be done in any manner that would subject this software to any Open Source Terms. “Open Source Terms” shall mean any open source license which requires as part of distribution of software that the source code of such software is distributed therewith or otherwise made available, or open source license that substantially complies with the Open Source definition specified at www.opensource.org and any other comparable open source license such as for example GNU General Public License (GPL), Eclipse Public License (EPL), Apache Software License, BSD license or MIT license.

Would I be able to add an exclusion under Section 7 of GPL v3 which excludes the ST libraries and specifies that they are licensed under a separate license? and if so how would I word that exception?

  • 1
    Normally this kind of issue would be solved by the GPL's existing exception for System Libraries , but that probably doesn't apply in an embedded context. If you don't depend on other GPLv3 code, then a s7 exception to allow linking with these proprietary libraries sounds sensible and appropriate.
    – amon
    Nov 12, 2021 at 16:06

1 Answer 1


My feeling is that you can't do what you want. Anyone receiving the binary under GPLv3 has the right to ask for Complete Corresponding Source under GPLv3 (GPLv3 s6, et al.), which you cannot provide, because you can't give them the necessary libraries on those terms - SLA0044 s5 is pretty clear about that.

As for a GPLv3 s7 additional permission, I don't think that will fly. I agree it can be written, and work, for the copies you distribute, but s7 notes that "When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it". However, you can't give recipients the right to redistribute it with your "additional permission" removed, so the situation ends up with the potential to confuse end-users who expect the GPL to work like, well, the GPL.

Basically, ST have been pretty clear that you can't write GPL software involving their libraries, so you probably shouldn't try to. You may want to read another ST0044 question for further suggestions on the subject.

  • The bit that confuses me slightly is that the SLA0044 license does allow the redistribution of the source code, is the problem that by including it in a GPL project I am re-licensing that source code? Given the wording of ST0044 is there anyway I can include it in an open source project without falling foul of section 5? Nov 13, 2021 at 10:35
  • 1
    The problem is that in most cases by including it in a GPL program you have to relicense it under GPL, or something even more permissive, which you are explicitly forbidden from doing. There may be workarounds for you - I haven't worked it through in my head, yet - involving only distribution of your source, but (as my linked answer suggests) it gets very confusing for downstream recipients, and should in my opinion be avoided.
    – MadHatter
    Nov 13, 2021 at 12:11
  • 1
    Where does the GPL require that the project remains legally distributable after removing s7 additional permissins and without making any other changes? As I understand it, the s7 additional permissions are exactly meant to cover situations like this where you want to use the GPL but are forced to depend on non-free third-party code. Nov 14, 2021 at 10:19
  • @BartvanIngenSchenau it requires that, if the code is further distributed by someone who chooses to remove such an s7 permission, the entire codebase be covered by GPLv3 (as it normally does). I'm not saying it the OP can't use an s7 permission in this way, I'm saying (in my other answer) that it's confusing for downstream recipients (who might reasonable expect to be able to (a) remove s7 permissions (because s7 says so) and (b) modify and onwardly-distribute under GPLv3 (because that's what the GPL's all about)), and by frustrating the usual expectations, we risk misleading the community.
    – MadHatter
    Nov 14, 2021 at 10:36
  • @MadHatter, I don't see where that possible confusion would come from if the FSF even explicitly addresses that way of using s7 in their FAQ (gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs). Nov 14, 2021 at 12:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.