The GPL explicitly grants anyone the right to share, distribute, and even modify the source code. So yes, that is exactly what it means. They cannot claim they wrote it, but they can absolutely both share and distribute the source code, and are in fact required to if they do make modifications to it. It’s literally the main thing the license is even about.
Small sidenote: distribution of modified source code of GPLv2/v3 covered projects is only mandatory to those who have access to a binary version of the modified sources.
e.g. if you take a GPLv2 covered project that is a simple HTTP server, and you give the binary nobody, then you’re not required to share the source (if the HTTP server is AGPL covered then you need to provide it to anyone who can access the HTTP service and requests the source).
This is an important distinction, as you can’t demand the source of a GPL project from someone who cloned it and made modifications to their own use without distributing a binary of those changes. If I fork Orca and make some changes, and showcase those as screenshots, you have absolutely no right to demand the source for it. If I were to send you a binary of Orca with my changes, then you’d have the right.
I mean this distinction is obviously not applicable here but I wanted to make sure the GPL summary is fully correct. Which is the best kind of correct.
maybe my thinking is off then, but in my mind it’s mainly for first and second parties? as in, orca and bambu both have to share the source when sharing the binary, not necessarily immediately but on request. anything built on top of gpl code can be closed unless it’s agpl. as a third party to all this, can rossman share the code bambu has made on top of orca?
Your thinking is off, the GPL and derived licenses like the AGPL are viral on purpose. They apply to everybody who uses, downloads, or accesses the software (in the case of the AGPL) and they are explicit about this:
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License.
what i’m reading from that is that both parties must agree that the work has been conveyed. with the risk of going all sovcit, if the conveyed item is a binary, and the producer does not send the source code to the consumer as instructed by the license, can the consumer really pull the source and distribute it? surely if the license is broken the work falls back on default permissions, e.g. all rights reserved?
In the general case, the person or persons who distributed the binary would then have done so illegally. In order to distribute, you have to follow the terms of the license. So them attempting to go after anyone downstream of them at that point is sort of like calling the police because someone stole your drug stash. And if there’s an upstream beyond the illegal distributors, they’re practically waving a “Sue me now!” placard in their direction.
The originator of the code, above whom there is no upstream, is allowed to offer it under more than one license (including a mixture of free and closed licenses), but the specific license in force has to be specified with each distributed copy.
The first one that comes to mind is Qt (the widget toolkit). While I’m not sure the current owners still do this, Trolltech offered the earlier versions under both the GPL and a commercial license that I think included paid support. I assume any sales under the commercial license were to companies who wanted to include it in their closed-source software.
But the language defines that if you distribute a binary, you must make the source available, and that source is allowed to be taken, modified, redistributed as binary and source, as long as the person doing the modifications attributes you and all other previous authors.
It doesn’t matter if that binary comes as a firmware on a device the user purchased.
The distributor does not have to distribute the source with the binary, they just have to make it available, for free, and they cannot stop anyone using it as defined above.
Breaking the license does not change how the software is licensed, it just puts the entity doing the violations in violation of a license.
AGPL can be closed too, the license bases the right to the source based on the access to the end product:
GPLv2/v3 - if you have the binary executable output of the GPLv2/3 covered source, you must be granted access to the exact source used to make the binary. This applies to legitimately sourced binaries only - if you were to hack into a company’s servers and get a binary of a modified GPL product, this wouldn’t apply. But extracting a binary from a device you own IS a legitimate access (so e.g. if your phone uses U-boot, the manufacturer must grant you access to their modified U-Boot sources used to build the bootloader)
AGPL - if you have (legitimate) access to a service you can request the source. This is so e.g. web services can be made into GPLed code where modifications must be released (negating the requirement of possession of a binary, since you can’t possess a binary that runs on a remote server). e.g. let’s say I run GTK app via browser using kasmVNC - if the app is GPL, I don’t have to provide the source, if it’s AGPL, I have to provide the source.
I’ve managed to force multiple Chinese companies to release sources that were adamant they don’t have to, just by threatening to report them to the FSF and SFC - both bodies have been wildly successful in prosecuting licence breaches.
Also both the EU and the US have now precedents and laws in place that allow fast-tracking obvious licence violators’ blocking from the market. For a small Chinese company whose main target market is the west, it’s a major blow if their sales and export are blocked because they won’t release the source.
So they try to play hardball, but it’s like modern lifts - the moment you press the right buttons suddenly they do exactly what you want them to.
I remember this happening to Linksys with the WRT-54g routers. They shipped with firmware based on open software (I don’t remember the exact license) and they were brought to court and forced to release the source code.
In the end it really helped the sales of that model because hobbyists wanted it for the freedom of running their own code on it.
oh yeah i remember that. pretty sure that was gpl.
this is sort of a predecessor to that situation thus far: bambu is obviously in the wrong with regards to not handing out gpl’ed source, but they are in their full right to refuse handing out stuff they’ve built on top. so the question then is, is rossman in the clear for having taken their source code? if he has bought one of their printers (most likely) it’s pretty cut and dry, but if he took the code from somewhere else he has technically stolen it and the license does not apply. at least that’s my read.
Normally the copyright holder has to take them to court to enforce copyleft licenses like the AGPL. Hopefully we will soon find out if users can also enforce it, as a 3rd party beneficiary under contract law.
basically, bambu has the right to refuse handing out gpled code. that’s part of their freedom to distribute as they see fit. however, they can only exercise that freedom on people they haven’t given the binaries. so if you decompile or download all the sources, and you don’t own one of their printers, you are also violating the license.
now if rossman owns a bambu printer, and he has gotten the sources from that printer or directly from bambu, they can’t do shit. otherwise there is wiggle room.
I just found out that a company has a copy of a GPLed program, and it costs money to get it. Aren’t they violating the GPL by not making it available on the Internet?
No. The GPL does not require anyone to use the Internet for distribution. It also does not require anyone in particular to redistribute the program. And (outside of one special case), even if someone does decide to redistribute the program sometimes, the GPL doesn’t say he has to distribute a copy to you in particular, or any other person in particular.
What the GPL requires is that he must have the freedom to distribute a copy to you if he wishes to. Once the copyright holder does distribute a copy of the program to someone, that someone can then redistribute the program to you, or to anyone else, as he sees fit.
Once the copyright holder does distribute a copy of the program to someone, that someone can then redistribute the program to you, or to anyone else, as he sees fit.
Does the GPL allow me to require that anyone who receives the software must pay me a fee and/or notify me?
No. In fact, a requirement like that would make the program nonfree. If people have to pay when they get a copy of a program, or if they have to notify anyone in particular, then the program is not free. See the definition of free software.
The GPL is a free software license, and therefore it permits people to use and even redistribute the software without being required to pay anyone a fee for doing so.
You can charge people a fee to get a copy from you. You can’t require people to pay you when they get a copy from someone else.
Sounds like bambu is perfectly free to not give the code to anyone, but as soon as they give the code to someone, that someone can give it to whoever they want.
yeah, a lot of times. i had software licencing responsibilities for a product for a while, and they really didn’t want gpl stuff in there for the reasons stated in the thread.
the interesting wrinkle in this situation is: if rossman is distributing all of bambu’s code, including the account stuff that far as i can tell is another codebase, and he hasn’t gotten it from his own printer (which wouldn’t have the sources) then no “agreement” has taken place. if bambu is told to distribute sources and they say “no”, they’re in the wrong. but if they haven’t said anything, then technically rossman is stealing the code. it would most likely get thrown out, but the case can be made.
not really what the gpl means, but good for him i guess?
The GPL explicitly grants anyone the right to share, distribute, and even modify the source code. So yes, that is exactly what it means. They cannot claim they wrote it, but they can absolutely both share and distribute the source code, and are in fact required to if they do make modifications to it. It’s literally the main thing the license is even about.
Small sidenote: distribution of modified source code of GPLv2/v3 covered projects is only mandatory to those who have access to a binary version of the modified sources.
e.g. if you take a GPLv2 covered project that is a simple HTTP server, and you give the binary nobody, then you’re not required to share the source (if the HTTP server is AGPL covered then you need to provide it to anyone who can access the HTTP service and requests the source).
This is an important distinction, as you can’t demand the source of a GPL project from someone who cloned it and made modifications to their own use without distributing a binary of those changes. If I fork Orca and make some changes, and showcase those as screenshots, you have absolutely no right to demand the source for it. If I were to send you a binary of Orca with my changes, then you’d have the right.
I mean this distinction is obviously not applicable here but I wanted to make sure the GPL summary is fully correct. Which is the best kind of correct.
Wait, i thought that technically correct was the best kind of correct ? i have been LIED TO.
A fully correct statement is categorically a technically correct statement, therefore the two are not contradictory.
You statement is, also, technically correct. And therefore a fully correct statement is the best kind of correct, via the transitive property.
I demand to see your source code
maybe my thinking is off then, but in my mind it’s mainly for first and second parties? as in, orca and bambu both have to share the source when sharing the binary, not necessarily immediately but on request. anything built on top of gpl code can be closed unless it’s agpl. as a third party to all this, can rossman share the code bambu has made on top of orca?
Your thinking is off, the GPL and derived licenses like the AGPL are viral on purpose. They apply to everybody who uses, downloads, or accesses the software (in the case of the AGPL) and they are explicit about this:
what i’m reading from that is that both parties must agree that the work has been conveyed. with the risk of going all sovcit, if the conveyed item is a binary, and the producer does not send the source code to the consumer as instructed by the license, can the consumer really pull the source and distribute it? surely if the license is broken the work falls back on default permissions, e.g. all rights reserved?
In the general case, the person or persons who distributed the binary would then have done so illegally. In order to distribute, you have to follow the terms of the license. So them attempting to go after anyone downstream of them at that point is sort of like calling the police because someone stole your drug stash. And if there’s an upstream beyond the illegal distributors, they’re practically waving a “Sue me now!” placard in their direction.
The originator of the code, above whom there is no upstream, is allowed to offer it under more than one license (including a mixture of free and closed licenses), but the specific license in force has to be specified with each distributed copy.
Do you have an example of a project that has both free and commercial licenses? How does that work in practice?
The first one that comes to mind is Qt (the widget toolkit). While I’m not sure the current owners still do this, Trolltech offered the earlier versions under both the GPL and a commercial license that I think included paid support. I assume any sales under the commercial license were to companies who wanted to include it in their closed-source software.
Maybe read the GPL ;)
But the language defines that if you distribute a binary, you must make the source available, and that source is allowed to be taken, modified, redistributed as binary and source, as long as the person doing the modifications attributes you and all other previous authors.
It doesn’t matter if that binary comes as a firmware on a device the user purchased.
The distributor does not have to distribute the source with the binary, they just have to make it available, for free, and they cannot stop anyone using it as defined above.
Breaking the license does not change how the software is licensed, it just puts the entity doing the violations in violation of a license.
the fsf is off the opinion that you explicitly can paywall the sources separately from the product. that’s why i find this interesting.
AGPL can be closed too, the license bases the right to the source based on the access to the end product:
GPLv2/v3 - if you have the binary executable output of the GPLv2/3 covered source, you must be granted access to the exact source used to make the binary. This applies to legitimately sourced binaries only - if you were to hack into a company’s servers and get a binary of a modified GPL product, this wouldn’t apply. But extracting a binary from a device you own IS a legitimate access (so e.g. if your phone uses U-boot, the manufacturer must grant you access to their modified U-Boot sources used to build the bootloader)
AGPL - if you have (legitimate) access to a service you can request the source. This is so e.g. web services can be made into GPLed code where modifications must be released (negating the requirement of possession of a binary, since you can’t possess a binary that runs on a remote server). e.g. let’s say I run GTK app via browser using kasmVNC - if the app is GPL, I don’t have to provide the source, if it’s AGPL, I have to provide the source.
are you sure about that first one? yes they have to give you the source, but what happens if they don’t? i’ve genuinely not thought about that before.
That’s where legal actions come into place.
I’ve managed to force multiple Chinese companies to release sources that were adamant they don’t have to, just by threatening to report them to the FSF and SFC - both bodies have been wildly successful in prosecuting licence breaches.
Also both the EU and the US have now precedents and laws in place that allow fast-tracking obvious licence violators’ blocking from the market. For a small Chinese company whose main target market is the west, it’s a major blow if their sales and export are blocked because they won’t release the source.
So they try to play hardball, but it’s like modern lifts - the moment you press the right buttons suddenly they do exactly what you want them to.
I remember this happening to Linksys with the WRT-54g routers. They shipped with firmware based on open software (I don’t remember the exact license) and they were brought to court and forced to release the source code.
In the end it really helped the sales of that model because hobbyists wanted it for the freedom of running their own code on it.
oh yeah i remember that. pretty sure that was gpl.
this is sort of a predecessor to that situation thus far: bambu is obviously in the wrong with regards to not handing out gpl’ed source, but they are in their full right to refuse handing out stuff they’ve built on top. so the question then is, is rossman in the clear for having taken their source code? if he has bought one of their printers (most likely) it’s pretty cut and dry, but if he took the code from somewhere else he has technically stolen it and the license does not apply. at least that’s my read.
Normally the copyright holder has to take them to court to enforce copyleft licenses like the AGPL. Hopefully we will soon find out if users can also enforce it, as a 3rd party beneficiary under contract law.
Exactly what the GPL means, Bambu intern.
https://www.gnu.org/licenses/gpl-faq.html
yeah, this is the interesting one. also this one and he ones below it.
basically, bambu has the right to refuse handing out gpled code. that’s part of their freedom to distribute as they see fit. however, they can only exercise that freedom on people they haven’t given the binaries. so if you decompile or download all the sources, and you don’t own one of their printers, you are also violating the license.
now if rossman owns a bambu printer, and he has gotten the sources from that printer or directly from bambu, they can’t do shit. otherwise there is wiggle room.
Interesting read.
Sounds like bambu is perfectly free to not give the code to anyone, but as soon as they give the code to someone, that someone can give it to whoever they want.
Did you read it?
yeah, a lot of times. i had software licencing responsibilities for a product for a while, and they really didn’t want gpl stuff in there for the reasons stated in the thread.
the interesting wrinkle in this situation is: if rossman is distributing all of bambu’s code, including the account stuff that far as i can tell is another codebase, and he hasn’t gotten it from his own printer (which wouldn’t have the sources) then no “agreement” has taken place. if bambu is told to distribute sources and they say “no”, they’re in the wrong. but if they haven’t said anything, then technically rossman is stealing the code. it would most likely get thrown out, but the case can be made.