Request for Guidance on GPL Compliance and Source Code Release – YUNZII Tri-Mode Boards
Issue Description
Hello QMK Team,
This is Kris from YUNZII, the keyboard manufacturer. We recently noticed that YUNZII was listed in your License Violations section regarding our tri-mode keyboards based on QMK firmware. We sincerely appreciate the QMK project and the community for maintaining such an open and innovative platform, and we would like to address this issue properly.
Our intention has never been to violate the GPL or QMK’s licensing terms. The tri-mode models in question use a proprietary wireless driver, which has created uncertainty on how to properly handle source release while protecting necessary IP. However, we fully understand the importance of open-source compliance and wish to provide the appropriate source code or acceptable alternative in accordance with QMK’s requirements.
https://docs.qmk.fm/license_violations#offending-vendors
We kindly request your guidance on the following:
- What specific parts of the firmware or codebase must be made public to achieve full GPL compliance for tri-mode boards?
- Is it acceptable to release partial code or interface documentation where proprietary wireless libraries cannot be shared?
- How should we formally submit the source code or evidence of compliance for your review?
We are fully committed to resolving this matter and ensuring that YUNZII’s QMK-based products meet the project’s licensing expectations. Please advise us on the next steps, or let us know if we should reach out to a specific member of the QMK compliance or legal team.
Thank you very much for your time and assistance. We look forward to your reply and to making YUNZII fully compliant with the GPL and QMK policies.
Warm regards, Kris YUNZII Keyboard
Hi there, thanks for getting in touch.
I'd suggest giving this documentation page a read: https://docs.qmk.fm/proprietary_libs -- it establishes our stance on our inability to use proprietary libraries, so anything you've built using QMK would need to be fully open-sourced.
As for your queries:
- All code running on the same microcontroller running QMK. If you're running a two-MCU system with the radio stack on a separate chip that's fine, but all communication code to interact with the secondary MCU must be open-source.
- No. All code running on the same microcontroller must have its complete sources released. If it's a proprietary library, you'll need to work out how to get your library vendor to relicense it to be GPL-compatible. There aren't any alternatives to this other than a complete rewrite of such libraries under GPL-compatible licensing.
- To comply with the license, you need to make all of your QMK-based firmware code available publicly -- the easiest would likely be on GitHub. Every keyboard which uses QMK requires complete source code disclosure. You do not need to submit to QMK for compliance, though your customers will likely ask for it so that software such as VIA works out of the box.
Hello,
Thank you very much for your detailed explanation and clarification.
Our wireless keyboards are indeed designed with a dual-MCU system — the main MCU runs the QMK firmware (wired models use main MCU only), and a secondary MCU is dedicated to wireless communication.
We fully understand that the communication code between the two MCUs must be open-sourced. We’re prepared to provide the complete source code for both main&secondary MCU and its communication source code.
Could you please let us know if it would be possible for your team to help us upload or link this source code properly, so that it complies with the QMK GPL requirements?
(Pretty sorry that I’m not a professional in this field, so please feel free to correct me if there’s any mistake or confusion.)
Thank you again for your guidance and support.
Kind regards, Kris YUNZII Keyboard
Hi there, thanks for getting in touch.
I'd suggest giving this documentation page a read: https://docs.qmk.fm/proprietary_libs -- it establishes our stance on our inability to use proprietary libraries, so anything you've built using QMK would need to be fully open-sourced.
As for your queries:
- All code running on the same microcontroller running QMK. If you're running a two-MCU system with the radio stack on a separate chip that's fine, but all communication code to interact with the secondary MCU must be open-source.
- No. All code running on the same microcontroller must have its complete sources released. If it's a proprietary library, you'll need to work out how to get your library vendor to relicense it to be GPL-compatible. There aren't any alternatives to this other than a complete rewrite of such libraries under GPL-compatible licensing.
- To comply with the license, you need to make all of your QMK-based firmware code available publicly -- the easiest would likely be on GitHub. Every keyboard which uses QMK requires complete source code disclosure. You do not need to submit to QMK for compliance, though your customers will likely ask for it so that software such as VIA works out of the box.
Hello,
Thank you again for your previous guidance.
We’ve uploaded the source code for our QL75 wireless keyboard to GitHub. Could you please take a look and let us know if the source code appears to be complete and compliant with the GPL requirements?
https://github.com/jonylee1986/qmk_firmware_master/tree/hfdkb_ble_wire/keyboards/hfdkb/fk5181
If there’s any missing part or additional code that needs to be provided, please kindly let us know so we can make the necessary updates. Once everything is confirmed correct, our QMK development team will proceed to upload the source codes for all our other wireless keyboards in the same manner.
Additionally, we’d like to ask — once the uploads are completed and verified, would it be possible to have YUNZII removed from the license_violations list?
Thank you very much for your time and assistance.
Kind regards, Kris YUNZII Keyboard
Hi, thanks for trying to move this along.
This file is precompiled and does not actually provide source code: https://github.com/jonylee1986/qmk_firmware_master/blob/hfdkb_ble_wire/keyboards/hfdkb/fk5181/common/lib_bts.a
You’ll need to work with your vendor to get the entire sources for this before any discussions about removal from the license violations list can proceed.
Hi, thanks for trying to move this along.
This file is precompiled and does not actually provide source code: https://github.com/jonylee1986/qmk_firmware_master/blob/hfdkb_ble_wire/keyboards/hfdkb/fk5181/common/lib_bts.a
You’ll need to work with your vendor to get the entire sources for this before any discussions about removal from the license violations list can proceed.
Hello,
There are other source code files of our keyboards. Could you please check if they are true source code and GPL-compatible?
AL65: https://drive.google.com/file/d/1egu_m0DzsjdfcmF7m4xYag4SpNed_ERW/view?usp=drive_link AL68: https://drive.google.com/file/d/1qot7Bna3cKuwTxdy8Hna_CujT6lecbu8/view?usp=drive_link AL80: https://drive.google.com/file/d/1qC3snaTatKNX-Ix0vc4B9vDdS92rJJ1Z/view?usp=drive_link IF99: https://drive.google.com/file/d/1ch7DphNBVr7HQk3DSSaf_q8oF76Qc--A/view?usp=drive_link B87: https://drive.google.com/file/d/1vi6xQqj9a_uLOu3lQATxzyorH5YPOkSS/view?usp=drive_link
Once confirmed as compliant, we will upload the verified source code to GitHub as soon as possible. If there are any issues or missing information, please kindly let us know.
Thank you for your help and for taking the time to review these files.
Best regards, Kris YUNZII Keyboard
I opened the AL65 and there are seemingly encrypted files for the files BLE support (I see Esafenet within the binary data). So no, not even close to being compliant.
I'm not going to inspect other files at this point. Please produce the entire source code.
Hi tzarc,
Sorry to bother you again. Our tech provider has decrypted the source code files once again. Could you please check whether this version now meets the requirements?
https://drive.google.com/file/d/1DM4n045-ks1CORVcJmJtiu4p-JurPUTo/view?usp=drive_link
Sorry for troubling you for this long, we really want to fix it.
Thank you for your time and assistance. @tzarc
Best regards, Kris YUNZII Keyboard
I opened the AL65 and there are seemingly encrypted files for the files BLE support (I see
Esafenetwithin the binary data). So no, not even close to being compliant.I'm not going to inspect other files at this point. Please produce the entire source code.
Really hoping you guys get this figure out I would love for my al68 to work with signal
Really hoping you guys get this figure out I would love for my al68 to work with signal
Currently working on this ❤️