Getting grubby with ZFS
Getting grubby with ZFS
Posted Dec 8, 2010 0:30 UTC (Wed) by JoeBuck (subscriber, #2330)Parent article: Getting grubby with ZFS
I don't see anything in the Grub announcement suggesting that the Grub maintainers or the FSF believe that Oracle is bound by GPLv3 because they released code under a GPLv2-or-later license. GPLv2 contains language pertaining to patents. The preamble states
"We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all."
Clause 6 reads: "Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein." An attempt to restrict distribution of code that Sun already distributed by a patent action would appear to violate this: they would be adding an extra condition.
I think you're making a dangerous and incorrect argument in the article, suggesting that anyone using "or later" language is taking a serious risk. In fact, "or later" licensing can only add permissions to downstream users or developers: anything GPLv2 permits but GPLv3 forbids is permitted by a GPLv2-or-later license and vice versa.
IANAL so I can't say under what conditions a distributor can renege on the implicit promise made by extending someone else's GPLv2 work and distributing the result. But I think that the Grub distributors are on safe ground just based on GPLv2.
Posted Dec 8, 2010 1:52 UTC (Wed)
by corbet (editor, #1)
[Link] (12 responses)
The very sentence which gives me the right to do things with the code (distribute, modify) under GPLv2 gives me the right to choose a later version if I want to. If GPLv3 gives me broader patent-oriented rights than GPLv2, are you really saying that one sentence does not allow me to claim those rights? The same sentence which allows me to claim GPLv2 rights?
Beyond that, the GRUB folks say:
(Emphasis added). That's GPLv3 stuff; the GPLv3 drafters ran off to add that language specially after the Novell/Microsoft deal was announced. They clearly felt that GPLv2 did not prevent the "separate peace" sort of arrangement; they were quite clear about that at the time.
So the GRUB folks are assuming they have GPLv3-type protection. But I was unable to find any evidence that Sun/Oracle has ever distributed a GPLv3-licensed version of GRUB. Unless I've missed something (entirely possible - but please show me what it would be), the GRUB announcement is assuming GPLv3-type protection from a "v2 or later" release.
What am I missing?
Posted Dec 8, 2010 4:34 UTC (Wed)
by JoeBuck (subscriber, #2330)
[Link] (2 responses)
I guess that a theoretical alternative would be for Oracle to give up the right to use or distribute Grub altogether and then sue folks, but why should they do that, given that their Solaris customers are using it?
Posted Dec 8, 2010 11:42 UTC (Wed)
by corbet (editor, #1)
[Link] (1 responses)
Posted Dec 8, 2010 12:05 UTC (Wed)
by AlexHudson (guest, #41828)
[Link]
If Novell had bought a license from Microsoft which covered their customers, that would have been covered by the GPLv2 language.
Posted Dec 8, 2010 5:39 UTC (Wed)
by ccurtis (guest, #49713)
[Link] (8 responses)
IANAL (but I play one on the internets) but it seems to me that what you're implying would contradict ex post facto and "grandfathering" concepts.
If the FSF releases a GPLv4 that says "if you modify and redistribute this software, you agree to also distribute all source to all software written by you" and if you then take GPLv2+ software and redistribute it under these new terms, only you (and those who get the software from you) should be held to the new terms - not the original author.
The specifics of what GPLv2 really says versus what GPLv3 clearly says I think are immaterial to this point - you can't engage in a contract whose terms are perpetually TBD. You can only bound yourself (and those who agree) to the new terms; you can't go back and rewrite history.
This is law, not X.org.
Posted Dec 8, 2010 9:53 UTC (Wed)
by mjthayer (guest, #39183)
[Link] (1 responses)
More specifically, shouldn't a clearer distinction be made between the terms under which Oracle distributes the software (it obviously has to choose one of the available licences, I presume it is not legally possible for it to use several versions of the licence in one act of distribution) and the options they give the person they distribute the software too for further distribution? I assume they are distributing under GPLv2, but nothing stops them letting the people who get it from them redistributing under GPLv3 without it affecting Oracle in any way.
Similarly there have been complaints regarding VirtualBox that Oracle should be bound to the terms of the GPL and publish the sources to the closed source parts because they distribute it. However, my understanding is that Oracle doesn't distribute it under those terms (they own the copyrights and can do more or less what they want), but they do allow people who receive it to redistribute it under the GPL, minus the non-closed parts.
Posted Dec 9, 2010 4:29 UTC (Thu)
by jamesh (guest, #1159)
[Link]
So when they distributed their modified version of grub-legacy it must have been under at least one of GPLv2 and GPLv3. Both of these have some form of patent licensing language, so Oracle must have satisfied at least one of those clauses.
Posted Dec 10, 2010 4:36 UTC (Fri)
by giraffedata (guest, #1954)
[Link] (5 responses)
Those legal doctrines don't apply because they are about criminal law. A government can't make something illegal and then punish people who have already done it. A more fuzzy version of it also says a government cannot change the meaning of an existing contract unless the government makes it really clear it means to do so. But FSF isn't a government, so it doesn't apply.
What we should be thinking of is the rule that a contract isn't enforceable if it's too speculative at the time it is executed -- i.e. the parties couldn't reasonably predict its effect. A contract can certainly require actions that are to be determined later. For example, "tenant agrees to pay for all glass breakage," even though neither party knows what breakage that will be. Or actions dependent on someone else: "tenant shall replace smoke alarm batteries," even though the batteries have to be supplied by someone else and no one knows on what terms he will offer them at the time the tenant needs to acquire one. But you can go too far. "Tenant promises to pay any bill Landlord sends him" is a promise a court would not enforce.
I don't know how enforceable "GPL v2 or later" would be (and we aren't talking about a true contract here, but a conditional license), but assuming GPL v4 is in the same spirit as v2, I can see it being sufficiently predictable that the condition would be enforceable.
Posted Dec 10, 2010 8:06 UTC (Fri)
by jmalcolm (subscriber, #8876)
[Link]
I know this is a grey area in some countries but I do not believe that the US is one of them.
Posted Dec 12, 2010 18:47 UTC (Sun)
by ccurtis (guest, #49713)
[Link] (3 responses)
I intentionally did not use the term "law" in my response. At the risk of veering off-topic, and fully admitting my non-lawyer status, and acknowledging that my political philosophy is not currently in vogue, I want to say that I think you're mistaken. From the U.S. declaration of independence: "WE hold these Truths to be self-evident ... - That to secure these Rights, Governments are instituted among Men, deriving their just Powers from the Consent of the Governed, ..." My point here being that all law, especially that concerning government, is derived from contract law. Government itself is a contract among People. Now, a contract is simply an agreement. A license is an offer of a "right to use," generally being bound by some terms. These terms form a contract (agreement). The terms of a license may change, at which point the licensee may opt not to agree to those changes, thus losing their license; but they cannot be held to new terms. Saying "licensee is responsible for all environmental damage they cause" is different from "licensee agrees to accept any new terms we wish to impose", whether those terms are "in the same spirit" or not. The GPL is a somewhat strange beast in that the thing being licensed essentially owns itself. If the FSF (or any individual or organization) owns copyright over the entire body of software it's a bit clearer who the licensee and licensor are, but things get a little strange when you get your license to use from (e.g.) RedHat, itself a GPL licensee. So all that to say, we should look at the actual text for this "GPLv2 or later", term:
Posted Dec 13, 2010 9:16 UTC (Mon)
by giraffedata (guest, #1954)
[Link] (2 responses)
The only place I have ever seen the terms "ex post facto" and "grandfathering" used is with respect to law, so if you meant them some other way, you're right -- my response is completely inapplicable and in fact I can't respond.
I accept your view of all law as a contract. In that case, the criminal punishment part of that contract includes ex post facto restrictions -- we've agreed not to punish each other for things we did before we said it was wrong. But I don't know what that view of law has to do with applying those concepts to copyright.
You're confusing licenses and contracts too much. They really are distinct. First of all, replace "offer" with "grant". A contract is an offer and acceptance, but a license is just a grant. It's a one-way thing and there is no agreement involved. It is binding only on the licensor.
Some experts believe that in the matter of a GPL distribution of software, there is a contract (and some don't). But even they don't confuse the contract with the license. The license is something that one of the parties to the contract gives the other, as one term of the contract.
It doesn't work that way. Once a license is granted, it's granted. The permissions and conditions in it can't change. Of course, they can have a lot of variability built into them, like "this permission exists until licensor changes his mind." But they don't change.
And my point was that if a condition is too variable a court may find it invalid and read it out of the license, but the court will accept a lot of variability. (and again, I'm applying contract principles because I don't really know copyright law, but I know much of contract law is applied to copyright licenses).
Again, you don't agree to GPL2. You actually perform the conditions of it, and then you can redistribute.
Posted Dec 17, 2010 22:45 UTC (Fri)
by ccurtis (guest, #49713)
[Link] (1 responses)
In effect, yes; insomuch that it, as a concept, seems a necessary prerequisite of a "meeting of the minds," applicable to any contract. Surely we agree that a contract can't be modified by a single party without the consent of the other. I assume you mean licensee. If not, I am simply incredibly confused about this whole law thing altogether. Whether a license is granted on the terms of a contract, or whether one is bound to license terms by performing its conditions, it seems to me that there exists some form of contract, either expressed or implied. My terminology may be all over the map and I may very confused about what law actually is, but it seems unfathomable to me that the law would allow a Heisenberg-esqe agreement where the supplier of a piece of software is bound to unspecified conditions based on the actions of the licensee. (Specifically in the sense that a licensee says, "Ooh, look at this or later clause. I'll take it under the 'vN' terms; now allow me free access to all your patents.")
True. I was thinking that licenses tend not to be granted in perpetuity. Software generally is, but licenses to other "IP" tend to be term-limited (such as a license to use a brand), with periodic renewal. At the point of renewal, of course, terms can change...
Posted Dec 18, 2010 2:28 UTC (Sat)
by giraffedata (guest, #1954)
[Link]
Then I think what you're really looking at is the doctrines behind
ex post facto and grandfathering. I like to think all legal doctrines are based on a consistent set of underlying principles, so I have no problem saying the underpinnings of ex post facto also stop people from unilaterally defining contract terms after they're written. But as the terms are normally used, "ex post facto" and "grandfathering" refer to the effect of those principles in other areas (to wit, criminal law).
Nope, I meant binding on the licensor, and that's a crucial point. A license waives the licensor's rights under copyright law. Having given a license, he is bound to waive those rights. He can't change his mind later and demand royalties. The licensee, on the other hand, isn't bound to anything. He's licensed to copy, but he doesn't have to copy. Unlike a contract, a license is a one-sided thing.
I know what you're thinking. The GPL licensee is required to make source code available. Well, no he isn't. Unless he makes provisions for source code, he isn't a licensee. The license doesn't exist. It's a conditional license.
If you think that's just two ways of saying the same thing, think what happens if I distribute "GPL" code you wrote, without source. If we had a contract, you'd be able to get a court to force me to distribute source code (or financial equivalent). But since all there is is your offer of a conditional GPL license, and I didn't meet it's conditions, so I don't have any license, all I am is a copyright violator. I broke a rule Congress made, not one you and I made. Congress said in that case you can make me pay royalties, or possibly have me put in jail, but you can't make me distribute source code.
Can't happen. Conditions are for the licensee, not the licensor (supplier). All the licensor stands to lose by saying "or later" is his copyright. E.g. GPL 4 might say source code is optional and now the supplier's code is flying around doing nothing to advance free software in spite of the supplier's wishes.
If GPL 4 adds a "contribute all your patents" condition, that just means nobody will choose to be a licensee under GPL 4. It doesn't cost people who have already distributed software with an "or later" clause anything.
Posted Dec 8, 2010 9:16 UTC (Wed)
by pbonzini (subscriber, #60935)
[Link] (1 responses)
Posted Dec 10, 2010 8:09 UTC (Fri)
by jmalcolm (subscriber, #8876)
[Link]
This is the license that your new derived work would be distributed under. However, this does not somehow force the party that distributed the GPL 2+ code to begin with to switch to GPL3 themselves.
I dunno. The text in the files involved says:
Getting grubby with ZFS
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
If the patents covering GRUB are held by Oracle, they can't use them against GRUB users, and if they're held by other parties, the GPL provisions will prevent Oracle from paying a tax only for themselves, so if they will fight alongside the community instead of betraying it.
The text that you've set in bold face refers to section 7 of GPLv2.
Getting grubby with ZFS
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
What this says is that if someone else holds a patent, Sun/Oracle can't buy protection only for themselves or their customers. Any patent license has to cover all recipients.
So then why did Eben and company say that Novell/Microsoft was within the bounds of GPLv2, and why did they go out of their way to add special language prohibiting such deals in GPLv3?
Getting grubby with ZFS
Getting grubby with ZFS
Getting grubby with ZFS
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
The very sentence which gives me the right to do things with the code (distribute, modify) under GPLv2 gives me the right to choose a later version if I want to. If GPLv3 gives me broader patent-oriented rights than GPLv2, are you really saying that one sentence does not allow me to claim those rights? The same sentence which allows me to claim GPLv2 rights?
Getting grubby with ZFS
Getting grubby with ZFS
Getting grubby with ZFS - GPLv2 or later legality
it seems to me that what you're implying would contradict ex post facto and "grandfathering" concepts.
Getting grubby with ZFS - GPLv2 or later legality
Getting grubby with ZFS - GPLv2 or later legality
it seems to me that what you're implying would contradict ex post facto and "grandfathering" concepts.
Those legal doctrines don't apply because they are about criminal law.
"This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version."
I (Oracle), say "you can redistribute it" as long as you agree to GPL2 - or - you agree to GPL something later. How you choose to distribute it (GPLvX) does not affect how I Oracle (née Sun) have done so, which is GPLv2. That the GPLv2 allows you to choose any later version does not negate the fact that how I have distributed it is verbatim GPLv2.
You don't say where you think I'm mistaken. Are you saying you believe the legal doctrines of ex post facto and grandfathering apply to the issue of a "GPLv2 or later" clause in a copyright license?
Getting grubby with ZFS - GPLv2 or later legality
I intentionally did not use the term "law" in my response.
A license is an offer of a
"right to use," generally being bound by some terms. These terms form a
contract (agreement).
The terms of a license may change, at which point
the licensee may opt not to agree to those changes, thus losing their
license;
I (Oracle), say "you can redistribute it" as long as you agree to GPL2
Getting grubby with ZFS - GPLv2 or later legality
Are you saying you believe the legal doctrines of ex post facto and grandfathering apply to the issue of a "GPLv2 or later" clause in a copyright license?
[...] but a license is just a grant. [...] It is binding only on the licensor.
The license is something that one of the parties to the contract gives the other, as one term of the contract.
The terms of a license may change, [...]
It doesn't work that way.[...]
Getting grubby with ZFS - GPLv2 or later legality
Are you saying you believe the legal doctrines of ex post facto and grandfathering apply to the issue of a "GPLv2 or later" clause in a copyright license?
In effect, yes; insomuch that it, as a concept, seems a necessary prerequisite of a "meeting of the minds," applicable to any contract. Surely we agree that a contract can't be modified by a single party without the consent of the other.
[...] but a license is just a grant. [...] It is binding only on the licensor.
I assume you mean licensee. If not, I am simply incredibly confused about this whole law thing altogether.
... where the supplier of a piece of software is bound to unspecified conditions based on the actions of the licensee.
Getting grubby with ZFS
"or later" licensing can only add permissions to downstream users or developers: anything GPLv2 permits but GPLv3 forbids is permitted by a GPLv2-or-later license and vice versa.
IANAL, but it is not at clear to me that this is the case when you create derivative works by mixing GPLv2+ and GPLv3 code. What you say is certainly true if you separate again the GPLv2+ parts and distribute them only, but I'm not sure about what happens when you distribute the two parts together.
Getting grubby with ZFS