docs/proprietary_libs.md
QMK Firmware cannot include support for any proprietary vendor libraries that impose additional restrictions beyond those in the GPL. This includes binary-only distributions, hardware-locked libraries, and code with redistribution limitations. This document explains why such libraries are incompatible with the GPL-based QMK Firmware and addresses commonly proposed workarounds.
Firmware presents unique licensing challenges:
This monolithic nature means any proprietary code becomes inseparable from GPL code, creating immediate license violations.
Proprietary vendor libraries typically impose restrictions incompatible with GPL freedoms:
Hardware Lock-in:
No Source Distribution:
Redistribution Limitations:
Additional Legal Terms:
Both Nordic and ST provide Bluetooth stacks under restrictive licenses:
Nordic SoftDevice (under Nordic 5-clause license):
ST's Bluetooth Stack (under SLA0044 license):
Both represent the same fundamental problem: critical wireless functionality locked behind proprietary licenses.
The GPL's System Library exception cannot rescue proprietary vendor libraries.
The exception only covers libraries that:
The exception covers things like Windows system DLLs or Linux glibc, not microcontroller vendor libraries or Bluetooth stacks.
Supervisor Call (SVC) Interfaces:
Nordic's SoftDevice uses supervisor call based APIs instead of direct linking:
Why this fails: The GPL considers functional integration, not just linking methods. In Bluetooth-capable boards, these would require the proprietary component to function, thus they form a single work regardless of the communication mechanism. This applies equally to Nordic's SoftDevice and any similar architecture ST provides.
Binary-Only Distributions:
Multiple vendors provide precompiled libraries:
Why this fails: This is classic static linking of proprietary code into GPL code. The inability to modify these libraries violates GPL's fundamental requirements.
Problems:
Including any proprietary vendor library means:
Before including any library, QMK needs to verify:
QMK Firmware maintains a strict policy:
There is no legally safe way to include proprietary vendor libraries in GPL firmware. This applies whether they're:
Technical architectures cannot overcome license obligations.
QMK chooses GPL compliance, ensuring users receive all freedoms the GPL promises.