I'm wondering about those 0.5% who refused to relicense. What would be the rational behind refusing such a change. I can understand refusing for a project to be relicensed under a very different license but not between GPLv2 and GPLv2+...
The only person I know that opposed the change was Scott Moreau, and from my understanding he only did it to be an annoyance (I have IRC logs that indicate this pretty clearly). Given his history with other projects[1,2] it's not a big surprise. This was solved by removing the broken and mostly unused Wayland support from Dolphin.
Some people (Linus Torvalds is a notable example) think that GPLv3's provisions that forbid things like locked down hardware are too much. They would rather be "permissive" and allow hardware that restricts what the user can do with it.
What good is modifiable software if the hardware will refuse to run software if it's modified? Tell me, Mr Anderson, what good is a phone call when you are unable to speak?
Note that while GPLv3 prohibits Tivoization, that is only one way to lock down hardware. For instance, the locked apps model of iPhone is OK under the GPLv3 (GPLv3 is incompatible with the App Store, but that has nothing whatsoever to do with the locked hardware. That's due to the TOS for the App Store requiring the user agree to not reverse engineer and not redistribute apps they obtain from the store).
The anti-Tivoization clauses are not as strong as most casual readers of GPLv3 seem to think they are. In particular, they only apply if "you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term".
A "User Product" is "either (1) a 'consumer product', which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling".
So, as long as you keep GPLv3 code out of the firmware, OS, and bundled applications that ship when you sell your hardware to the customer, you can lock down the hardware and still provide add-on software that is GPLv3.
Can you explain in more detail why you think trying to distribute a GPLv3 app on the App Store wouldn't run afoul of the terms you quoted:
you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term
Is it because you see this as meaning that downloading from the App Store at a later time doesn't qualify as "occur[ing] as part of a transaction [that transfers possession/use of the device]", and that the binaries have to be present at the time the iPhone is purchased for these terms to have any effect?
Have you raised this issue with the FSF? Have you gotten any sort of response?
Yes, it is because those terms only apply to conveyances that occur as part of a transaction in which the right of possession of the User Product is transferred.
Note that the GPLv3 defines "User Product" as "either (1) a 'consumer product', which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling".
The iPhone is the "User Product". This can further be seen by considering the definition of "Installation Information": “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source.
In short, the User Product is the thing you install the covered work (the GPLv3'd thing) on and run it on, which for an App Store would be the iPhone or iPad. Unless GPLv3 is not using "possession" and/or "transaction" in their normal meanings, there is no way to characterize purchasing and downloading an app from the App Store as being a transaction in which the right of possession of the iPhone is transferred. Since no definitions of possession or transaction are given in the license, we can assume their normal meaning.
I haven't raised this issue with the FSF because I don't see it as an issue. They are the ones that specifically put in the limitation that Tivoization only occurs for GPLv3 object code conveyed as part of a transaction where the right of possession of the User Product is transferred to the person receiving the object code. In general, considering how much time they spent on drafting this thing, I generally assume it means what it says and it says what they intended.
If they somehow botched the drafting and that is not what they meant, it doesn't really matter anyway because if it ends up in court and the parties disagree on how they interpret those parts, the court will go with what it says, not what the drafter claims they meant. So, my general policy (with all licenses, not just GPL) is to go with what they say, unless they are too ambiguous and then I avoid the covered software. (Actually, before I get to that point I first see if I can limit my use of the work to only those uses that do not require the permission of the copyright holder. If I can limit me needs thusly then I can ignore the license).
What good is modifiable software if the hardware will refuse to run software if it's modified?
You are free to build your own hardware.
GPLv2 ensure software is open, you use GPLv2 software, you ensure the software stay open.
It does not try to control other things outside what it gives. "Use my software? Make your hardware open. Use my software? Make your customer service open." No. It's simply "Use my software? Make your software open"
The reasoning behind most things is selfish. Even Richard Stallman is subject to this; his motivation for the free software movement was when a colleague wouldn't share software changes that Stallman wanted/needed for his own use.
That said, the specific objection of Linux to the GPLv3 is twofold:
* There are thousands (if not millions) of contributors that would need to be contacted and would need to give consent to such a licensing change. I imagine some of those contributors might even be dead, and given the currently-draconian copyright laws of many nations (particularly the United States), this means that relicensing is that much more difficult.
* The GPLv3 would be a very hard hit for a lot of users of Linux in the embedded space, where a large number of "Things" in the "Internet of Things" aren't exactly designed to be field-programmable. The anti-TiVoization wording in the GPLv3 would cause a lot of pain there.
Licensing GPLv2+ means you'll accept any future "GPLv4", "GPLv5" etc without having any idea what those licenses will look like. You might end up not liking having them apply to your code. What if control of FSF is taken over as if like a coup and a nasty "GPLv4" is released?
The worst that could happen is that there is a future GPL version that removes copyleft. If there is a future GPL version that is horrible for the receipient, then at worst that receipient can simply opt for GPLv3.
Clause 14 of GPL 3 also clarifies what later licenses can do. They must be "similar in spirit" and they cannot impose any additional requirements on any author or copyright holder.
edit: Okay, after seeing clause 14, I don't even see how a judge would interpret a GPL version without copyleft to be "similar in spirit", so I can't even imagine how that would happen. I think you're ok in accepting newer versions of GPLv3.
I guess "Creative Commons Attribution-Share Alike 3.0" is probably similar in spirit to the GFDL 1.2, but there was some large amount of top-downess in using the or later clause to help Wikipedia switch licenses.
Wikipedia's content used to be licensed under GFDL 1.2 or any later version. In order to transition to a more appropriate license the Wikimedia Foundation asked the FSF to release a new version (GFDL 1.3) that specifically allowed relicensing to CC BY-SA.
The new license may be "similar in sprit" but what it allows relicensing to may not be.
That seems to contradict the clause that says no further obligations can be imposed upon authors or copyright holders. In particular, they cannot be forced to provide a warranty.
The way you protect yourself from unknown future licenses is to license the project under GPLv2 but require all contributions to be GPLv2+. When you read and agree to the next version, then you can add it to the project or switch to it completely.
This scheme depends on one (main) developer having control over the licensing of a significant part of the code base so it's subject to the "hit by a bus" failure mode.
Is that even possible; how can contributors legally provide patches under a license that is different from the source they are patching? How do you know if there is any "GPLv2 only" code left in the project? Do you track license usage by the code line? Can you add a trailing space to every single line of the code and release it on github as "GPLv2 and later" (hey, it's a patch), thus getting rid of the whole "GPLv2 only" clause?
Can you add a trailing space to every single line of the code and release it on github as "GPLv2 and later" (hey, it's a patch), thus getting rid of the whole "GPLv2 only" clause?
No, a patch that doesn't completely replace existing code can not alter it's copyright. As long as you can insure that your GPLv2 code is in the project and not easily replaced, you control the project's license.
GPLv2+ means you are accepting the terms of GPLv5. What's in GPLv5? I have no idea. No one has any idea. It might never get written. As long as RMS is in charge, I'm not worried about the contents of the next GPL dramatically differing from the current spirit.
However, there is no guarantee that I will agree with future versions of the GPL. I'd like to judge them as they come. It's actually really strange to sign up for an open ended contract where a 3rd party is writing the revisions.
As long as RMS is in charge, I'm not worried about the contents of the next GPL dramatically differing from the current spirit.
You don't have to trust RMS. You can trust lawyers interpreting clause 14 of GPLv3 correctly. This clause says that later GPL versions must be "similar in spirit". It also says that newer versions cannot impose any more obligations or restrictions on authors or copyright holders.
But what if you objection to GPLv2+ is specifically already realized in GPLv3,like, say, the market-differentiated anti-Tivoization rules.
Yeah, if you like tivoisation, you probably don't like the spirit of the GPL at all. Tivoisation is really a loophole that wasn't anticipated in GPLv2. It should not have been allowed by GPLv2, but it simply wasn't anticipated.
(Also, "similar in spirit" is so vague as to be completely meaningless.)
Vague is how the law is. It has to be vague, and the people who wrote the GPL have a good understanding of how judges interpret vague language. I trust them to have done a good job.
[...] the GNU General Public License is intended to guarantee your
freedom to share and change all versions of a program--to make
sure it remains free software for all its users.
No, vagueness of the level of that GPL phrase isn't how the law is, and, in fact, vagueness can make a law, contract, or, e.g., license provision devoid of legal effect.
The framework for how judges operate, and the framework for contract law is quite different. Judges has quite a lot of agency and mobility to make common sense decisions. Contract law on other hand must be more rigid, and is designed around making the market more stable and secure.
In a copyright infringement case, a judge would look at license text and make a decision about its meaning. The lawyers would likely try to interpret "similar in spirit" by providing defining points from previous licenses, which a judgment can be based on. How much we trust such decision thus rest on our believes that judges in general can make a reasonable judgment.
The framework for how judges operate, and the framework for contract law is quite different.
Only in that the latter is a proper subset of the former; more relevantly, in US law, explicit licenses (even gratuitous ones) are applied under contract law principles, so the framework for how judges operate with them is the same as for contracts.
How much we trust such decision thus rest on our believes that judges in general can make a reasonable judgment.
No, it rests on how much we trust that and also trust that the only reasonable judgement based on the vague text is one that we would prefer.
If you're talking about Dolphin, read the article again. Nobody refused, but a few people couldn't be contacted - unlike Linux, Dolphin has never required real names from contributors, so this mostly consisted of a few people who contributed under an alias a few years ago before utterly vanishing from the Internet.
If you mouse over that graphic in the article it says 1 person refused. However, the article otherwise completely ignores that 1 person... (unless I missed it, both times ;) )
Hm? The graph on the page shows 4.5% of contacts being marked as "Unable to contact", while it shows a very small 0.5% as "Refused, Code Rewritten". Or is this graph wrong?
Comments
I'm wondering about those 0.5% who refused to relicense. What would be the rational behind refusing such a change. I can understand refusing for a project to be relicensed under a very different license but not between GPLv2 and GPLv2+...
The only person I know that opposed the change was Scott Moreau, and from my understanding he only did it to be an annoyance (I have IRC logs that indicate this pretty clearly). Given his history with other projects[1,2] it's not a big surprise. This was solved by removing the broken and mostly unused Wayland support from Dolphin.
[1] https://lwn.net/Articles/544543/ [2] http://www.phoronix.com/scan.php?page=news_item&px=MTM0MTM
Some people (Linus Torvalds is a notable example) think that GPLv3's provisions that forbid things like locked down hardware are too much. They would rather be "permissive" and allow hardware that restricts what the user can do with it.
What good is modifiable software if the hardware will refuse to run software if it's modified? Tell me, Mr Anderson, what good is a phone call when you are unable to speak?
Note that while GPLv3 prohibits Tivoization, that is only one way to lock down hardware. For instance, the locked apps model of iPhone is OK under the GPLv3 (GPLv3 is incompatible with the App Store, but that has nothing whatsoever to do with the locked hardware. That's due to the TOS for the App Store requiring the user agree to not reverse engineer and not redistribute apps they obtain from the store).
The anti-Tivoization clauses are not as strong as most casual readers of GPLv3 seem to think they are. In particular, they only apply if "you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term".
A "User Product" is "either (1) a 'consumer product', which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling".
So, as long as you keep GPLv3 code out of the firmware, OS, and bundled applications that ship when you sell your hardware to the customer, you can lock down the hardware and still provide add-on software that is GPLv3.
Can you explain in more detail why you think trying to distribute a GPLv3 app on the App Store wouldn't run afoul of the terms you quoted:
Is it because you see this as meaning that downloading from the App Store at a later time doesn't qualify as "occur[ing] as part of a transaction [that transfers possession/use of the device]", and that the binaries have to be present at the time the iPhone is purchased for these terms to have any effect?
Have you raised this issue with the FSF? Have you gotten any sort of response?
Yes, it is because those terms only apply to conveyances that occur as part of a transaction in which the right of possession of the User Product is transferred.
Note that the GPLv3 defines "User Product" as "either (1) a 'consumer product', which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling".
The iPhone is the "User Product". This can further be seen by considering the definition of "Installation Information": “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source.
In short, the User Product is the thing you install the covered work (the GPLv3'd thing) on and run it on, which for an App Store would be the iPhone or iPad. Unless GPLv3 is not using "possession" and/or "transaction" in their normal meanings, there is no way to characterize purchasing and downloading an app from the App Store as being a transaction in which the right of possession of the iPhone is transferred. Since no definitions of possession or transaction are given in the license, we can assume their normal meaning.
I haven't raised this issue with the FSF because I don't see it as an issue. They are the ones that specifically put in the limitation that Tivoization only occurs for GPLv3 object code conveyed as part of a transaction where the right of possession of the User Product is transferred to the person receiving the object code. In general, considering how much time they spent on drafting this thing, I generally assume it means what it says and it says what they intended.
If they somehow botched the drafting and that is not what they meant, it doesn't really matter anyway because if it ends up in court and the parties disagree on how they interpret those parts, the court will go with what it says, not what the drafter claims they meant. So, my general policy (with all licenses, not just GPL) is to go with what they say, unless they are too ambiguous and then I avoid the covered software. (Actually, before I get to that point I first see if I can limit my use of the work to only those uses that do not require the permission of the copyright holder. If I can limit me needs thusly then I can ignore the license).
You are free to build your own hardware.
GPLv2 ensure software is open, you use GPLv2 software, you ensure the software stay open.
It does not try to control other things outside what it gives. "Use my software? Make your hardware open. Use my software? Make your customer service open." No. It's simply "Use my software? Make your software open"
Which is fair in Linus's opinion.
No, no you are not.
The physical problems notwithstanding (you happen to have a semiconductor fab in your basement?), too many things are covered by patents.
Keep in mind that Linus's reasons behind licensing are often selfish ones: he simply wants as many people as possible contributing code to him.
The reasoning behind most things is selfish. Even Richard Stallman is subject to this; his motivation for the free software movement was when a colleague wouldn't share software changes that Stallman wanted/needed for his own use.
That said, the specific objection of Linux to the GPLv3 is twofold:
* There are thousands (if not millions) of contributors that would need to be contacted and would need to give consent to such a licensing change. I imagine some of those contributors might even be dead, and given the currently-draconian copyright laws of many nations (particularly the United States), this means that relicensing is that much more difficult.
* The GPLv3 would be a very hard hit for a lot of users of Linux in the embedded space, where a large number of "Things" in the "Internet of Things" aren't exactly designed to be field-programmable. The anti-TiVoization wording in the GPLv3 would cause a lot of pain there.
Licensing GPLv2+ means you'll accept any future "GPLv4", "GPLv5" etc without having any idea what those licenses will look like. You might end up not liking having them apply to your code. What if control of FSF is taken over as if like a coup and a nasty "GPLv4" is released?
The worst that could happen is that there is a future GPL version that removes copyleft. If there is a future GPL version that is horrible for the receipient, then at worst that receipient can simply opt for GPLv3.
https://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#V...
Clause 14 of GPL 3 also clarifies what later licenses can do. They must be "similar in spirit" and they cannot impose any additional requirements on any author or copyright holder.
edit: Okay, after seeing clause 14, I don't even see how a judge would interpret a GPL version without copyleft to be "similar in spirit", so I can't even imagine how that would happen. I think you're ok in accepting newer versions of GPLv3.
The FSF has in the past shouted "YEEEEHAAAAW" and done whatever happened to suit Wikipedia:
https://www.gnu.org/licenses/fdl.html#section11
I guess "Creative Commons Attribution-Share Alike 3.0" is probably similar in spirit to the GFDL 1.2, but there was some large amount of top-downess in using the or later clause to help Wikipedia switch licenses.
Wikipedia's content used to be licensed under GFDL 1.2 or any later version. In order to transition to a more appropriate license the Wikimedia Foundation asked the FSF to release a new version (GFDL 1.3) that specifically allowed relicensing to CC BY-SA.
The new license may be "similar in sprit" but what it allows relicensing to may not be.
'relicensing' is also still under the original license as far as I understand it. Isn't it still bound by the clause not to make drastic changes?
If FSF turned truly malicious, they could remove the "no warranty" section.
That seems to contradict the clause that says no further obligations can be imposed upon authors or copyright holders. In particular, they cannot be forced to provide a warranty.
The way you protect yourself from unknown future licenses is to license the project under GPLv2 but require all contributions to be GPLv2+. When you read and agree to the next version, then you can add it to the project or switch to it completely.
This scheme depends on one (main) developer having control over the licensing of a significant part of the code base so it's subject to the "hit by a bus" failure mode.
Is that even possible; how can contributors legally provide patches under a license that is different from the source they are patching? How do you know if there is any "GPLv2 only" code left in the project? Do you track license usage by the code line? Can you add a trailing space to every single line of the code and release it on github as "GPLv2 and later" (hey, it's a patch), thus getting rid of the whole "GPLv2 only" clause?
No, a patch that doesn't completely replace existing code can not alter it's copyright. As long as you can insure that your GPLv2 code is in the project and not easily replaced, you control the project's license.
GPLv2+ means you are accepting the terms of GPLv5. What's in GPLv5? I have no idea. No one has any idea. It might never get written. As long as RMS is in charge, I'm not worried about the contents of the next GPL dramatically differing from the current spirit.
However, there is no guarantee that I will agree with future versions of the GPL. I'd like to judge them as they come. It's actually really strange to sign up for an open ended contract where a 3rd party is writing the revisions.
You don't have to trust RMS. You can trust lawyers interpreting clause 14 of GPLv3 correctly. This clause says that later GPL versions must be "similar in spirit". It also says that newer versions cannot impose any more obligations or restrictions on authors or copyright holders.
But what if you objection to GPLv2+ is specifically already realized in GPLv3,like, say, the market-differentiated anti-Tivoization rules.
(Also, "similar in spirit" is so vague as to be completely meaningless.)
Yeah, if you like tivoisation, you probably don't like the spirit of the GPL at all. Tivoisation is really a loophole that wasn't anticipated in GPLv2. It should not have been allowed by GPLv2, but it simply wasn't anticipated.
Vague is how the law is. It has to be vague, and the people who wrote the GPL have a good understanding of how judges interpret vague language. I trust them to have done a good job.
The problem is I can never be sure exactly what the "spirit of GPL" is.
It's explained in the preamble.
No, vagueness of the level of that GPL phrase isn't how the law is, and, in fact, vagueness can make a law, contract, or, e.g., license provision devoid of legal effect.
The framework for how judges operate, and the framework for contract law is quite different. Judges has quite a lot of agency and mobility to make common sense decisions. Contract law on other hand must be more rigid, and is designed around making the market more stable and secure.
In a copyright infringement case, a judge would look at license text and make a decision about its meaning. The lawyers would likely try to interpret "similar in spirit" by providing defining points from previous licenses, which a judgment can be based on. How much we trust such decision thus rest on our believes that judges in general can make a reasonable judgment.
Only in that the latter is a proper subset of the former; more relevantly, in US law, explicit licenses (even gratuitous ones) are applied under contract law principles, so the framework for how judges operate with them is the same as for contracts.
No, it rests on how much we trust that and also trust that the only reasonable judgement based on the vague text is one that we would prefer.
Then people can still use your code under GPLv2.
If you're talking about Dolphin, read the article again. Nobody refused, but a few people couldn't be contacted - unlike Linux, Dolphin has never required real names from contributors, so this mostly consisted of a few people who contributed under an alias a few years ago before utterly vanishing from the Internet.
EDIT: disregard; didn't see the graph, and wasn't previously aware of the one person who refused. See https://news.ycombinator.com/item?id=9600204 for the correct answer.
No. Ten were uncontactable, and one refused.
"Refused and Code Rewritten - 1/202"
"Unable to Contact - 10/202"
From the descriptions of the red and black slices of the pie chart - https://dolphin-emu.org/m/user/blog/relicensing/relicensepie...
I read it. And it's still confusing because of this graph (from the article):
https://dolphin-emu.org/m/user/blog/relicensing/relicensepie...
Note: "0.5% Refused. Code Rewritten"
If you mouse over that graphic in the article it says 1 person refused. However, the article otherwise completely ignores that 1 person... (unless I missed it, both times ;) )
they Probably do not want to générale (further ?) Drama by publicly pointing fingers.
Hm? The graph on the page shows 4.5% of contacts being marked as "Unable to contact", while it shows a very small 0.5% as "Refused, Code Rewritten". Or is this graph wrong?
Looking at the graph mouseover, I think 10 contributors refused to relicense. Their contributions were removed from the codebase.
Incorrect. One contributor refused while 10 we were unable to contact.