I have some questions about the Klipper open source protocol:
Klipper uses GPLv3 open source license, so open source is required which is developed based on Klipper.I am a personal developer, and the open source environment in my region is very poor, many companies do not comply with open source agreements, especially for individual developer projects.
I am developing a new host-side PNP(pick and place) software based on Klipper MCU, which do not use klippy(written by python) and only access klipepr through UART or CAN communication. I have implemented communication with llipper MCU by Protocol - Klipper documentation. Host-side software is written by GoLang and it do not have code from the klippy, and no changes have been made to klipper mcu.Users clone and compile and swipe firmware from official klipper github based on their own board mcu.
There is no relevant explanation for GPLv3, as far as I know, there has been a lot of discussion about whether GPL dynamic linking should open source code, but there has been no standard answer.
From my perspective, I am not planning to open source this software because the open source environment in my location is very poor. I want to know if this would violate the open source agreement? If I violate the open source agreement, can Klipper authorize my development and what do I need to do?
GPLv3, or the GNU General Public License version 3, is a widely used free software license that guarantees end users the freedoms to run, study, share, and modify software. It was released on June 29, 2007, by the Free Software Foundation (FSF) to address issues identified in its predecessor, GPLv2, and to adapt to evolving legal and technological landscapes. The license embodies the principles of copyleft, which ensures that any derivative works must also be distributed under the same license terms, thus maintaining the software’s freedom for all users
2
4 .
Key Features of GPLv3
Stricter Copyleft Protections: GPLv3 enhances protections against proprietary modifications and clarifies obligations for distributing modified versions
2
4 .
Compatibility with Other Licenses: It improves compatibility with other free software licenses, allowing easier integration of GPLv3 code with other licensed code
3
4 .
Explicit Patent Licensing: The license includes provisions that require distributors to grant patent rights to users, preventing patent holders from imposing restrictions on the use of the software
2
3 .
Digital Rights Management (DRM): GPLv3 explicitly states that any DRM applied to GPLv3-licensed software cannot be enforced against users who wish to circumvent it for legitimate purposes
4
6 .
What Constitutes a Violation of GPLv3?
Violations of GPLv3 can occur in several ways:
Failure to Provide Source Code: If a user distributes binaries or modified versions of GPLv3 software without providing access to the corresponding source code, they violate the license
2
5 .
Inadequate Attribution: Not including the original copyright notice or failing to state changes made to the software when redistributing it can constitute a violation
5
6 .
Restricting User Rights: Imposing additional restrictions on users’ rights beyond those specified in GPLv3—such as preventing users from modifying or redistributing the software—would violate the license
2
4 .
Combining with Non-Compatible Licenses: If GPLv3-licensed code is combined with code under a license that is not compatible with GPLv3, and then distributed without adhering to GPLv3 terms, this could also be a violation
3
4 .
In summary, GPLv3 aims to protect user freedoms while ensuring that any modifications or derivative works remain accessible under the same terms. Violating these terms can lead to legal consequences and loss of rights associated with using the software.
So, yes you would be violating the agreement, and no, I do not think anybody in klipper would , or in fact could, authorize anything.
If you were to stay within the rules of true open source, the authorisation would be automatic, nobody would need to grant you that.
”GPLv3 enhances protections against proprietary modifications and clarifies obligations for distributing modified versions“
“Failure to Provide Source Code : If a user distributes binaries or modified versions of GPLv3 software without providing access to the corresponding source code, they violate the license”
Klipper will not distribute in my software. Users need to download, compile, and flash Klipper firmware on Klipper GitHub.
AND I DO NOT make any MODIFY of klipper. And Klipper will NOT BE INCLUDED in my binary software packages.
There is not a single line of code in my software that can be found on Klipper Github.
You can consider it this way, Klipper=Linux. My software is a program running on Klipper(Linux), and like many closed source software, I believe that my program can not be open source and will not violate the GPL protocol.
but you state it is based on klipper???
I am not a specialist on what part of klipper you may or may not use as a base for whatever you want to develop before it constitutes a violation.
But I find it ironic that you complain about the companies in your region who are not playing nicely with opensource but you use them to defend yourself to do the same.
If you are certain you are not using anything klipper, why do you ask?
I am sorry to come on a bit strong about this but opensource is something that needs to be defended according to me. I solely use linux, and I know it is where it is these days because of the opensource nature. If it wasn’t opensource it would be windows. Likewise if klipper is not opensource we could call it Creality.
I think you have to be your own judge as to whether you use any opensource code, as a base, part or as a whole, with the intentions to close it of and monetise on it.
I don’t have the ability to change my environment. I can only protect my own rights and interests from infringement. I just want to determine whether the relevant agreement will be violated, but I have checked a lot of information, and I don’t think there is any need to discuss it at the moment. As I said earlier, this issue has been discussed in the open source community many times and there is no unique answer. Unless there is clear evidence that I have violated the open source agreement, my software will be released in a closed source manner.
Please don’t think I’m that dirty. I don’t need to pay attention to these things, but I still spend time trying to avoid related protocols and maintain an open source environment.
By the way, so far I am not planning to make money by this software, it is a free software.
Again, I am not using the klipper code statically linking or dynamically link (If you don’t know what code linking is, please visit Dynamic-link library - Wikipedia and Static library - Wikipedia, UART or CAN communication is not a kind of dynamic linking of code. I simply control the MCU that runs klipper on the PCB via communication with UART or CAN.
In that case, and in line with the sources you mention, if it is considered generally a “grey” area already, I cannot answer your question conclusively. I am not a specialist, just a user of the opensource environment, albeit with a strongly developed sense of “fairness” around the opensource environment. It is for this reason I reacted as I did, and I apologise for that, because without defense for this opensource environment it will eventually get lost to those who freely and knowingly infringe the rules.
I already mentioned Creality but there are many others.
Let’s hope some other person here on the site knows more about the finer details and will be able to shed more light on it for you.
To me it sounds like you are ok actually, but don’t take that as a decisive answer.
Thank you for explaning more, it seems you are already much further down the line then I initially thought. I wish you well in your search for more and better answers.