Open Source Software/Hardware, GPL, Legal Issues...
I created this thread where users can express their opinion on these subjects without overloading other threads.
Thanks
The online community for MiSTer FPGA enthusiasts
https://misterfpga.org/
I created this thread where users can express their opinion on these subjects without overloading other threads.
Thanks
You can use incompatible software licenses together as long as you have the author's permission. It just creates a situation where you have a license violation but the author promises to never act and do anything about it. It's something that has been done for decades now. This situation seems to make some people irrationally nervous though.
The issue applying a software license to files that describe hardware is another issue altogether and I don't think it has been completely worked out.
Yes, but all of the authors. In the PDP-11 core case, Rampa only got permission from the PDP module's author, not from the framework's authors.
Regardless of whether it can be enforced, disrespecting the stated license of the authors of the framework may discourage them from collaborating with the project.
You don't need any permissions to hook into a framework.
Why the core's original designer felt the need to have some special noncommercial use restriction doesn't make sense, is he going to sue a Chinese knockoff company that makes a handheld retro PDP11 off his core or something? And why even care if they do use it, it's already given away for nothing. I never understood this "noncommercial" mentality. If the designer feels it is commercially exploitable and that matters to him maybe he should've commercially exploited it rather than give it away. "I'll give you this free gift, but only if you don't make any money from it, because that would be... stealing from me."
People got all upset about anyone raising copyright issues in that thread, but it was OP who felt the need to make this statement that the core was under a restrictive license. And it turns out such a copyright may not even be legally binding on electronics schematics, it's probably just public domain at this point.
Even if someone sells a device which uses this PDP11 core it would be hard to prove they are making money from the core. They sell the device and indicate they pre-loaded the core which is free to use, can be downloaded at this web site ... and if a new version appears the user can update the device himself, instructions provided. They could also make modifications to the core and as long as they publish the source not violate the license.
thisisamigaspeaking wrote: ↑Thu Dec 15, 2022 5:59 pmPeople got all upset about anyone raising copyright issues in that thread, but it was OP who felt the need to make this statement that the core was under a restrictive license. And it turns out such a copyright may not even be legally binding on electronics schematics, it's probably just public domain at this point.
In that case it wouldn't matter whether someone uses it commercially, but it also means that it wouldn't matter if Mister uses it. We could just use it anyway and ignore the license, and it would be legal (and clearly the owner isn't going to sue us for it).
Let's not lose sight of what the real issue here is. Some people offered their code under the condition that if it is used, the GPL freedoms must be granted. That code is incorporated into every core for MiSTer, and in most cases it just can't work without it (or without a non-GPL replacement that is not yet written). Neglecting to comply with their condition is disrespecting their work, unless they explicitly mention that they don't care - but they haven't been asked. It matters little whether it's legally enforceable, because the chances of any one of them suing a violator of the license are next to none anyway.
You can argue that none of them will probably care. Maybe, but we don't know because they were never asked.
You can argue that the GPL was a poor choice of a license in the first place - I would agree to that wholeheartedly.
But the thing is, they chose the GPL and the conditions they chose for using their code are being disrespected, and that disrespect may discourage them from further collaboration. That kind of "everything goes as long as we can enjoy the core" mentality certainly discourages me from working on things - not that I have made many great contributions, mostly keyboard stuff and bugfixes, but it's an example.
The code that is incorporated into every MiSTer core cannot be GPL'd because it's not software and the GPL is a software license. The code that can be GPL'd is on the Linux side.
And yet I still attach a GPL license to most of my HDL code. Given that I don't have the resources to sue anyone who contravenes my wishes, It doesn't really matter whether or not GPL is applicable; specifying the GPL as a license is still a simple and clear way of expressing my wishes as the author.
If my wishes are disrespected (not a hypothetical scenario, it has happened) it does indeed result in me being less inclined to release future work.
It should be borne in mind, though, that if the license is invalid that doesn't mean anyone can just do what they like with the code - quite the opposite. By default you have no rights to use it, and the license is there to grant you particular rights. If you consider the license inapplicable then you're back to the default position of having no rights.
In short, the whole thing's a mess, and probably best navigated by trying where possible to apply the simple principle "don't be a jerk", and otherwise not worrying about it too much!
robinsonb5 wrote: ↑Thu Dec 15, 2022 11:12 pmIt should be borne in mind, though, that if the license is invalid that doesn't mean anyone can just do what they like with the code - quite the opposite. By default you have no rights to use it, and the license is there to grant you particular rights. If you consider the license inapplicable then you're back to the default position of having no rights.
That's true for software but HDL files and ASIC netlists have been lumped in with schematics here in the US. Publicly released schematics have completely different rules that govern them than publicly released source code. Including what type of license you can attach to them.
This is actually the reason why hardware and microchip schematics stopped being provided to customers around the mid-1980s except under NDA. This is also why there are so many FPGA projects on github releasing their code under completely free unrestricted licenses.
I agree with the don't be a jerk comment though.
In the open source world, the focus should be on what's right, not what's narrowly legal.
"He can't stop us!" is an incredibly lousy attitude to take as the stewards of an open source project.
If you take his code anyway and incorporate it, then you're exposing your downstream users to a license violation you knew about ahead of time. This kind of project is supposed to be about making people's lives better, not making them potential copyright infringers.
The only known license from the author is not compatible with the GPL, and the rest of the project IS GPL. You should probably get explicit permission before incorporating it into the overall project.
I doubt this will be the case that brings the question before the Supreme Court to prove it, but I strongly suspect that Verilog source code will end up being copyrightable, exactly the same way that C source code is. Both kinds of source are taking the creative expression of an author, the algorithms that he or she chose, and changing it into a machine to accomplish a set of tasks.
I don't actually agree very much with the idea that software is copyrightable. But, whether I like it or not, it is. It seems extremely unlikely to me that the legal system is going to find that C source is protected, but Verilog source is not. That's just wishful thinking.
Just getting caught up...
First of all, everyone should have listened to rampa's wishes in the other topic and been respectful. I'm glad some of you decided to take the license debatelord stuff here, thank you for that. If this really bothers you to your core and you think it will have grave harmful impact in some material way to you and the world around you, then go hire a lawyer. Other than that, it's pretty silly when we are talking about an emulator of an extremely obscure computer that can run all sorts of software that people download "illegally" all the time. Don't blow things out of proportion, if you have a problem and you have standing, then get a lawyer. If you don't have standing, then you are just being the terminally online armchair lawyer guy while people like rampa do the apparently thankless job of bringing you this core to have fun with.
So show some respect to the developers, such as rampa, please.
Also, it's really weird when people do fanboyism over open source to the point that it turns almost into a religion. Some licenses are open source, some aren't, so what? There is no "spirit of open source", that's entirely subjective, the license terms, if legally enforceable, are the only concrete thing worth debating, if it's even worth it to debate this.
Anyways...
Technically (ackchyually heh) If a binary is being distributed with the MiSTer framework then that binary falls under the license of the GPLv2. I saw the GPLv3 be referenced for some reason, that's totally irrelevant here, only Main (written in C, runs on HPS) is GPLv3 and maybe a couple of cores.
The no-added-restrictions clause of the GPLv2 is explicit, you should not distribute a binary that contains linked code that has additional restrictions beyond the GPLv2 because this violates the contract (yes it's a legally binding contract, look up Artifex Software, Inc. v. Hancom, Inc. in 2017). This is unambiguous and pgimeno was technically correct.
However, guess who has legal standing? These people --> https://github.com/MiSTer-devel/Templat ... ntributors (of which rampa is one of them) and a few more that aren't listed there.
Do you think any of these people are going to actually sue rampa (which that's who the plaintiff would be) in an international lawsuit? Obviously not, that would be ridiculous and petty.
So deliberating over this just to win imaginary ego points on the internet is totally fruitless, divisive, and not positive energy toward the devs. Think pragmatically.
Not really true:
https://github.com/search?o=desc&q=lang ... positories
https://github.com/search?o=desc&q=lang ... positories
https://github.com/search?o=desc&q=lang ... positories
https://github.com/search?o=desc&q=lang ... positories
https://github.com/search?o=desc&q=lang ... positories
https://github.com/search?o=desc&q=lang ... positories
And there's a few more strong copyleft licenses that I didn't include in my searches and quite a few more hardware description languages.
The suggestion that you can't enforce open source software licenses to hardware description language code isn't very convincing to me until I see it litigated in court. The code gets compiled into a binary and the code can be run fully in software simulations. There isn't a solid non-arbitrary distinction you can really draw there.
Conflating HDL with schematics only makes sense if you do rigid laborious structural code. Every core developer I've read the work of in my learning process so far does not use solely structural coding methods. If you want an example of structural code see this --> https://github.com/birdybro/Nand2Tetris ... ural/ALU.v - and for an example of behavioral code (probably not working since I never completed it) see this --> https://github.com/birdybro/Nand2Tetris ... ral/ALU.sv
A description (sort of) of a waveform's logic is personally not really a schematic. There are schematic'y aspects to some HDL, but it's not all like that.
Oh and to clarify something Ron brought up that I might be misunderstanding the intent of:
And talking about life, what a coincidence:
I never distributed a binary for this, it was me exploring it for learning purposes, I had no idea what I'm doing, no license was violated because of this. I'll gladly remove the code now though since I didn't realize the author didn't want Microsoft to host the code and I want to respect those wishes. It was just a shotgun attempt at throwing it together and I usually do this stuff in a private repo when I'm learning something.
Malor wrote: ↑Fri Dec 16, 2022 2:21 amIf you take his code anyway and incorporate it, then you're exposing your downstream users to a license violation you knew about ahead of time. This kind of project is supposed to be about making people's lives better, not making them potential copyright infringers.
If a software developer distributes software with a license violation in it, the end users of that software aren't legally liable, this is ridiculous.
Then why are you even spending time arguing about this? A developer using the GPL license is asserting their copyright on the software. GPL is a license to establish your copyright and other terms regarding distribution and downstream changes to the source code.
Aberu, you have a few good points but you even contradict yourself in some others. Sorry for the point-by-point reply but I think it's worth dissecting it.
aberu wrote: ↑Fri Dec 16, 2022 3:56 amFirst of all, everyone should have listened to rampa's wishes in the other topic and been respectful. I'm glad some of you decided to take the license debatelord stuff here, thank you for that. If this really bothers you to your core and you think it will have grave harmful impact in some material way to you and the world around you, then go hire a lawyer.
I didn't feel the need to be respectful about the petition not to discuss the disrespect to the framework developers.
Again, this is not about laws, it's about respect and the harm to the community.
So we should show respect to Rampa, but Rampa is not obliged to show respect to the (other) developers of the framework? That's hypocritical.
There's real harm to the community being done here, that makes it worth debating, and the "spirit of open source" has objective, visible consequences:
robinsonb5 wrote: ↑Thu Dec 15, 2022 11:12 pmIf my wishes are disrespected (not a hypothetical scenario, it has happened) it does indeed result in me being less inclined to release future work.
No one needs a lawyer to publicly denounce that there's harm made to the community with the practice of violating the GPL (i.e. the conditions the authors have stated for using their software in this case). Respect to the authors the base on which the free software community relies, and I'm pretty sure that less than 1% of the authors have ever sued anyone over a copyright infringement due to a violation of the GPL (the BusyBox authors being a notable exception). We just rely on the respect to our work.
aberu wrote: ↑Fri Dec 16, 2022 3:56 amTechnically (ackchyually heh) If a binary is being distributed with the MiSTer framework then that binary falls under the license of the GPLv2. I saw the GPLv3 be referenced for some reason, that's totally irrelevant here, only Main (written in C, runs on HPS) is GPLv3 and maybe a couple of cores.
The framework is under "either version 2 of the license or (at your option) any later version" of the GPL. I brought it up just in case someone attempted to weasel away by saying that they can relicense under the GPL3 to get rid of the GPL2 limitations, to clarify that it doesn't really matter as the GPL3 has the same limitations.
Let me insist that this is not a legal issue, it's about the harm that this practice effects to the community.
About the PDP core you're hosting on GitHub:
aberu wrote: ↑Fri Dec 16, 2022 3:56 amI never distributed a binary for this, it was me exploring it for learning purposes, I had no idea what I'm doing, no license was violated because of this. I'll gladly remove the code now though since I didn't realize the author didn't want Microsoft to host the code and I want to respect those wishes. It was just a shotgun attempt at throwing it together and I usually do this stuff in a private repo when I'm learning something.
And why would you be doing that, if you have no legal obligation to do so? The answer is the key to why what Rampa did needed to be publicly aired. You're obviously not going to be sued by the author, but you won't be respecting their wishes (assuming it's the case - I haven't looked that deep) if you keep the code in MSGitHub. You'd be disrespecting the author, and probably discouraging them for distributing further creations in future.
And that's exactly the issue in what Rampa (and now Antonio Villena too) did.
How many roms do you have on your Mister ?
Do you own ALL of the original hardware, and software, for those roms, and BIOS files ?
Have Sega, Williams, Taito, Toaplan, SNK, etc.. all given permission to use their roms on the Mister ? Yet these roms all download to your Mister via scripts.
The hypocrisy here is staggering.
You know what, I had a big reply, but I think we both said what we needed to say, and it's just drama to argue back and forth
If it's not a legal issue, then we should think about whether the not-legal issue is something that deserves respect. I think that while we should usually respect not-legal requests, we don't need to do so all the time; some kinds of requests amount to just being a jerk, and we don't need to respect those. (Imagine software which couldn't be used by people with certain religions, for instance.) And if you're response is "well, that causes problems with the community", you should ask yourself if the original not-legal-issue request was itself the cause of the problems with the community.
"I don't want you to use my software if you are linking with something else that doesn't allow commercial use" is a weird, specific, request that seems to have been made for little sensible reason at all, aside from the fact that it happens to be in the GPL. If someone gave me a lightbulb and told me that I couldn't plug it into a particular outlet because the person who made that outlet didn't want me to be able to sell the outlet, I'd certainly ignore that request.
This right here is the best kind of response, staying out of this discussion.
Moral highgrounds, hypocrisy, who cares, agree to disagree and move on.
I would love to see a PDP-11 core in MiSTer that everybody who was interested could safely collaborate on. I don't have any opinions about any existing PDP-11 cores or the people who made them. The attitude toward GPL here, however, is concerning.
Compliance with GPL is actually easy and worthwhile. I doubt anyone involved with MiSTer is really trying to break GPL. For that reason, it's always worth discussing potential issues. Licensing issues are not just for lawyers, but for anyone who wants to use or distribute works like code.
I am dumbfounded that the consensus on this forum appears to be that GPL should be intentionally ignored because it's supposedly an unreasonable license, because even raising potential issues is supposedly disrespectful, because some people believe copyright doesn't apply to Verilog or VHDL code, and because some people who use MiSTer download ROMs for old games.
None of these arguments work.
Legally and ethically, one is not entitled to ignore a license simply because one doesn't like it. GPL is not unreasonable, but if one thinks it is, one is free not to use GPL'd works in creating one's own derived works, or not to distribute one's derived works to anyone else. This is not just a matter of legality but of ethics and decency. Even if you are against copyright, GPL is a legally valid workaround for broken and easily abused aspects of copyright law. Until we have better IP laws, we have GPL. Weakening GPL is strengthening abusive practices around proprietary software.
It is not disrespectful to raise potential licensing issues. In fact, most creators would rather know about these issues so they can correct them and avoid legal and social issues. Historically, enforcement of GPL has not been used by copyright trolls - this does not mean that GPL should never be enforced, however. No real harm is done to anybody by merely raising an issue. However, it is deeply disrespectful to intentionally disregard the intentions of a creator who applied a license like GPL to their work, while continuing to use their work. Again, the options available are not to use their work, or to use their work in conformity with the license they applied. Anything else is not respectful. It is also disrespectful to use personal insults to shut people up.
Some people who use MiSTer also download ROMs for old games. However, not everyone who cares about respecting the licensing of MiSTer is also downloading ROMs for old games, and "tu quoque" is a fallacy in any case. It is also possible to make an ethical distinction between the following:
When the companies involved in case 1 are also abusing the law to effectively remove works from the commons, for example by incorporating GPL'd works into their own without respecting the law that they use against others, the ethical distinction is even stronger. If we normalize taking GPL'd code and using it to create derived works which we then treat as proprietary, we are setting precedent for these companies to use, even if we personally dislike these companies. The best tool we have to fight this is to ensure compliance with GPL. If we normalize GPL violations, then the bad guys win court cases.
Verilog and VHDL are Turing-complete programming languages. Code written in them is code. Verilog even intentionally resembles C. If copyright doesn't apply to code in these languages, then IP cores don't exist and ARM has no business model, because anyone can just copy ARM's code and use it in their own products at will. When code is uploaded into an FPGA, it recognizably functions like software. This could be debated but at best, it is unclear enough that there is a legal risk that would only be resolved expensively in court. There is no obvious, recognized principle that code in these languages is totally unprotected by copyright and anyone who assumes this does so at their own peril. It is egregious to selectively cite such "precedents" when attacking GPL when the likes of ARM will never be successfully attacked in this way.
The license exists for a reason and it is chosen and applied to creative works for a reason. The application of the license has enabled Linux, MiSTer and a vast number of other projects.
The burden of determining compliance with a license lies with the person who uses the licensed code. Requiring the person who applies the license to their own work to hire a lawyer for every time someone uses the work in violation of the license would quickly bankrupt them, making the license practically unenforceable. "You have to hire a lawyer or shut up" doesn't work as an argument. Nobody wants to see legal threats or lawyers involved in anything unnecessarily, which is why most license compliance issues should be resolved informally through discussion. Systematically suppressing that discussion leaves only the courts, which is not preferable for anyone.