Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manufacturers distributing without source code -- wireless tri-mode boards, missing functionality such as HE matrix etc. #24085

Open
tzarc opened this issue Jul 10, 2024 · 35 comments
Labels
in progress keyboard needs-wireless-code via Adds via keymap and/or updates keyboard for via support

Comments

@tzarc
Copy link
Member

tzarc commented Jul 10, 2024

TL:DR; Vendors who submit PRs whilst not providing full sources for all of their shipping boards will be put on hold until source code for all violating keyboards are provided. Intentional deception may result in boards being removed from QMK and all future PRs for that manufacturer being denied outright.

This issue is limited to reports of non-compliant vendors -- asking for support or complaining about boards being unavailable (apart from reporting them) will be hidden as off-topic. For maintainers, once a vendor has been added to the list below, please mark the comment as "outdated".

If QMK identifies any licensing violation, all current and future PRs from that manufacturer will be put on hold until sources are provided. QMK's license requires full disclosure of source code for any firmware which is based on QMK, includes any part of QMK, or derives from QMK in any way. This source code disclosure is not negotiable and is automatically agreed to by any designer when they choose to use QMK.

Given the recent ramping-up of Chinese vendors disregarding QMK's license, QMK now actively chooses to prevent merges when violations are found.

Vendors may rectify the situation by providing full source code for their boards, even if it's in their own fork of QMK Firmware.

Current list of vendors who need to provide source code before any new PRs will be considered:

  • BBB Keyboard
  • Darmoshark
  • Epomaker
  • KiiBOOM
  • Luminkey
  • mmd
  • owlab
  • qwertykeys
  • Royal Kludge
  • Shortcut Studio
  • Tacworks
  • TKD / Vertex
  • WOBKEY
  • Womier
  • Zuoya

Initial post reporting Royal Kludge boards

Royal Kludge has issued a bunch of PRs recently with significant ambiguity as to whether or not submitted keyboards are tri-mode wireless or not.
So far there has been insufficient evidence supplied stating "no", they're wired-only boards -- comments on PRs when querying this fact have been ambiguous at best.

Additionally, with the fact that Royal Kludge is currently distributing VIA definitions for tri-mode keyboards based on QMK here -- including the rk839, also known as RK-R65, which shares the Product ID 0xE453 listed in PR #23559, we can only assume that Royal Kludge is submitting wired board definitions to QMK in order to satisfy VIA's requirement that keyboards must exist in QMK's master branch, with no intention to supply source code for wireless boards as per QMK's licensing requirements.

As of the posting of this issue, QMK is putting a hold on all PRs from vendor ID 0x342D until all sources are made available for the corresponding QMK-based boards listed on the above page (inclusive of wireless bindings where relevant):

  • RK61 QMK Wired RGB ANSI (PID 0x6461)
  • R65 QMK/VIA Tri-Mode RGB ANSI (PID 0xE453)
  • R65 QMK/VIA Tri-Mode RGB ISO (PID 0xE47F)
  • R65 QMK/VIA Wired RGB ANSI (PID 0xE453)
  • R65 QMK/VIA Wired RGB ISO (PID 0xE480)
  • R75 QMK/VIA Wired RGB ANSI (PID 0xE484)
  • R75 QMK/VIA Wired RGB ISO (PID 0xE483)
  • R75Pro QMK/VIA Tri-Mode RGB ANSI (PID 0xE487)
  • R75Pro QMK/VIA Tri-Mode RGB ISO (PID 0xE485)

Additionally, the VIA definitions on the same page also list the following combinations which also need full sources provided, including wireless:

  • R75Pro QMK (Tri-mode) - vendor ID 0xBB3F, product ID 0x0001
  • R75 QMK (Tri-mode) - vendor ID 0x342D, product ID 0xE482

image
image

@tzarc
Copy link
Member Author

tzarc commented Jul 10, 2024

For clarity, the vendor ID is Westberry Technology, which is also in use by Epomaker, KiiBOOM and others.
There is sufficient evidence that these manufacturers are all subcontracting out to the same third-party firmware provider - @sdk66 seems to be listed as maintainer for all.

Manufacturers other than Royal Kludge are also going to be put on hold for this reason -- the third-party firmware provider must supply source code for all QMK-based boards.

This was referenced Jul 10, 2024
@tzarc tzarc mentioned this issue Jul 14, 2024
14 tasks
@tzarc tzarc changed the title Royal Kludge tri-mode licensing issues Wireless tri-mode boards + lack of source code Jul 14, 2024
@tzarc

This comment was marked as outdated.

@tzarc tzarc pinned this issue Jul 14, 2024
@drashna drashna mentioned this issue Jul 16, 2024
14 tasks
@drashna

This comment was marked as outdated.

@tzarc

This comment was marked as outdated.

@owlab-git

This comment was marked as outdated.

@tzarc

This comment was marked as outdated.

@Epomaker

This comment was marked as outdated.

@tzarc

This comment was marked as outdated.

@tzarc

This comment was marked as outdated.

@tzarc

This comment was marked as outdated.

@AsikaXl

This comment was marked as off-topic.

@KiiBOOM-Official

This comment was marked as outdated.

@amartyaksinha-UC

This comment was marked as outdated.

@tzarc tzarc changed the title Manufacturers distributing without source code -- wireless tri-mode boards, missing functionality etc. Manufacturers distributing without source code -- wireless tri-mode boards, missing functionality such as HE matrix etc. Aug 13, 2024
@tzarc tzarc added in progress keyboard via Adds via keymap and/or updates keyboard for via support needs-wireless-code and removed question help wanted labels Aug 14, 2024
@Xelus22

This comment was marked as outdated.

@Xelus22

This comment was marked as outdated.

@Cipulot
Copy link
Contributor

Cipulot commented Aug 14, 2024

I will review all the affected board makers and boards in VIA to be sure that nothing slipped through and got merged accidentally w/o due diligence. Any violation of the licenses and attempts to bypass the license requirements will result in removal from the VIA repo.
A couple of PRs were already rejected because they were trying to merge JSONs pointed to boards mentioned in the opening comment.

@SurgeX65

This comment was marked as outdated.

@tzarc

This comment was marked as outdated.

@drashna
Copy link
Member

drashna commented Aug 16, 2024

Does "VIA-compatible" mean the firmware must be QMK thus abiding GPL-3?

This one is complicated. In theory, they could have properly reverse engineered it. But if they took via.c, and retooled it to work with whatever firmware, then the code is still covered by GPL (2+) and source code still needs to be produced or to be in voliation.

https://www.gnu.org/licenses/gpl-faq.en.html#GPLRequireSourcePostedPublic

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

In this case, releasing the binaries/firmware is releasing to the public. And:

https://www.gnu.org/licenses/gpl-faq.en.html#TranslateCode

Under copyright law, translation of a work is considered a kind of modification. Therefore, what the GPL says about modified versions applies also to translated versions. The translation is covered by the copyright on the original program.

@tzarc
Copy link
Member Author

tzarc commented Aug 16, 2024

But if they took via.c, and retooled it to work with whatever firmware, then the code is still covered by GPL (2+) and source code still needs to be produced or to be in voliation.

For clarity's sake, the modified code isn't the only code that needs to be produced -- the entire firmware is considered a derived work, and thus the source for the entire firmware needs to be produced, even if it's overall not based on QMK. Any use of a modified via.c results in this outcome.

@yulei
Copy link
Contributor

yulei commented Aug 17, 2024

if the wireless firmware runs on a seperate mcu(do not use any QMK related source codes) and communicated the other mcu (runs QMK based firmware) through peripherals such as spi, uart (like the adafruit uart friends used in many keyboard). I'd thought in such cases, only released the source codes in the MCU which runs QMK should be enough. Is this right?

@drashna
Copy link
Member

drashna commented Aug 17, 2024

if the wireless firmware runs on a seperate mcu(do not use any QMK related source codes) and communicated the other mcu (runs QMK based firmware) through peripherals such as spi, uart (like the adafruit uart friends used in many keyboard). I'd thought in such cases, only released the source codes in the MCU which runs QMK should be enough. Is this right?

Correct. In the case of via stuff, taking the GPL licensed code, and modifying it to work with a different firmware/code would require disclosure of that source too.

@ld0614

This comment was marked as off-topic.

@KrzysztofPrzygoda

This comment was marked as off-topic.

@ld0614

This comment was marked as off-topic.

@adophoxia

This comment was marked as off-topic.

@tzarc

This comment was marked as off-topic.

@JackyJia73
Copy link
Contributor

JackyJia73 commented Aug 21, 2024

#23982
Wireless code added. Although this board is not wireless.

@Xelus22

This comment was marked as outdated.

@badmark

This comment was marked as off-topic.

@s-yoon25

This comment was marked as outdated.

@ti-mo

This comment was marked as off-topic.

@badmark

This comment was marked as off-topic.

@Cipulot Cipulot mentioned this issue Sep 11, 2024
14 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in progress keyboard needs-wireless-code via Adds via keymap and/or updates keyboard for via support
Projects
None yet
Development

No branches or pull requests