5 ms·
If I understand correctly, OpenJDK is licensed under GPL with classpath exception - and the only thing that is preventing openjdk from being unusable in any com
by sheeshkebab 7y ago
If I understand correctly, OpenJDK is licensed under GPL with classpath exception - and the only thing that is preventing openjdk from being unusable in any commercial settings is a few lines of legalese, controlled by Oracle, on handful of source files in various packages. If Oracle removes that classpath exception legalese in some upcoming jdk version from these source files (which they are fully in control of), openjdk essentially becomes GPL-only.
I guess then openj9, coretto etc would be more appealing but soon enough it feels like there will not be Java left - since those distributions don’t/can’t call themselves java unless oracle allows them to... and I’m not sure why they would - as apparent by OpenJ9 not being called java.
So is it Java EE is dead, soon followed by Java?
Am I mistaken about any of this?
- blattimwind 7y ago> Am I mistaken about any of this? You can't revoke a GPL license unless the licensee violated the GPL. Additionally, the GPL has this nifty "Automatic Licensing of Downstream Recipients" clause. In other words, if you put some code out there under the GPL, there is no way for you to un-GPL that particular code. Even if you bring out a new version of it that isn't GPL any more, the old version still is. (This is quite important to make copyleft work)
- amanaplanacanal 7y agoIt sounds like the parent's issue is the other way, that Oracle might remove the classpath exception and then GPL would infect everything, effectively killing commercial opportunities.
- sheeshkebab 7y agoYes, that’s what I was wondering about
- tzs 7y ago> You can't revoke a GPL license unless the licensee violated the GPL Probably true for GPLv3, because GPLv3 actually says that it is irrevocable. OpenJDK is under GPLv2, which does not say anything about revocation. It is an open question whether or not GPLv2 can be revoked. > Additionally, the GPL has this nifty "Automatic Licensing of Downstream Recipients" clause. In other words, if you put some code out there under the GPL, there is no way for you to un-GPL that particular code That clause actually makes it more likely that GPLv2 could be at least partly revoked, because the full text is: > Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor [...] It's that "original licensor" part that makes partial revocation a possibility. What if the original licensor simply says that they are no longer granting new licenses? Everyone who already has a license can continue to use the software, but new recipients no longer can get a license? (That's what I meant by "partly revoked" earlier--existing copies remain OK, but the spread of them, or derivative works of them, is stopped). What happens then is a mess. Even figuring out who has standing to sue to try to make license issuing continue is a mess, getting into such questions as whether the unspecified future downstream recipients of copies are intentional beneficiaries or incidental beneficiaries of the contract. (And then there is the whole "is this a license or a contract?" issue which is very murky). BTW, even licenses that do say they are irrevocable might suffer from this partial revocation danger if downstream recipients must get their license from the original licensor. The fix to this is to allow sublicensing in your license. Make your license irrevocable (so that once someone gets a licensed copy it cannot be taken back), and allow sublicensing so that when someone distributes a copy the license for that copy comes from them rather than you. Then if you stop issuing new licenses there is no problem, because people get their licenses from their distributor. If you don't want distributors to be able to give their downstream less rights than you gave them by only sublicensing a subset of those rights, you can put in the license a clause that requires distributors to sublicense all the rights. A nice side effect of the sublicensing approach is distributors have standing to sue for license violations. Under the GPL-type approach, where all licenses are directly from the original licensor, only the original licensor can sue to enforce the license. Under the sublicensing approach, both the original licensor can sue (alleging copyright infringement) and the distributor can sue (alleging violation of the license).
- jacques_chester 7y agoThe JDK would promptly be forked from the last-covered commit, presumably by a coalition of Amazon, Azul, IBM, Red Hat, SAP, Google, Microsoft (amazing times we live in) and Pivotal amongst others. What enterprise customers want is certainty. Given the choice between "Java by Oracle" and "Basically still Java by Literally Every Other Enterprise Software Vendor", they will pick the latter in a heartbeat. It would be chaotic and disruptive, but once the dust settled Oracle would (again) be holding the fizzle instead of the bang. That's how we got Jenkins out of Hudson, which has an unrivalled penetration of enterprise. Disclosure: I work for Pivotal, we sponsor Spring and have a deep interest in the evolution of the OpenJDK. This is of course personal speculation.
- fiddlerwoaroof 7y agoWouldn't this run into the issues behind the Google-Oracle lawsuit around the Android runtime?
- jacques_chester 7y agoPossibly, though it would kill Oracle's Java business even more thoroughly. If their business strategy is more nuanced than "cut your own throat in the hope someone else's is behind it", then political jiggery-pokery like Java EE is probably about as far as they would want to go.
- dfrage 7y agoOracle is not letting them test builds with the Technology Compatibility Kit (TCK https://en.wikipedia.org/wiki/Technology_Compatibility_Kit https://en.wikipedia.org/wiki/Technology_Compatibility_Kit), which under Sun probably killed the Apache Harmony project. There are alternatives like Amazon's Corretto and Azul's Zulu.