Is it legal to bundle Oracles JRE together with the binaries of a (non commercial) open source program (GPLv3)?
1 Answer
Short answer: No. The Java (JRE and JDK) binaries provided by Oracle come so many strings attached that they are practically unfit for any usage or redistribution with proprietary or open source-licensed software including GPL-licensed software.
The only sane alternative is to consider the OpenJDK which is using a combo of licenses and is primarily under the GPL 2.0 with Classpath exception which is typically considered suitable for any open source or proprietary usage. See below for some pointers to OpenJDK pre-built binaries or build it yourself...
More details:
The Oracle JREs and JDKs (i.e. NOT the OpenJDK) are released under a proprietary license called the Oracle Binary Code License Agreement.
This license has evolved quite a bit over the years from its start at Sun to the point that it is barely usable for internal development and probably not much more. Oracle wants you to buy a commercial license instead for most usages.
In particular as one of the many issues in this license, the field of use restrictions have evolved to be so vague and far reaching as to make you wonder if any usage is allowed (emphasis is mine):
"General Purpose Desktop Computers and Servers" means computers, including desktop and laptop computers, or servers, used for general computing functions under end user control (such as but not specifically limited to email, general purpose Internet browsing, and office suite productivity tools). The use of Software in systems and solutions that provide dedicated functionality (other than as mentioned above) or designed for use in embedded or function-specific software applications, for example but not limited to: Software embedded in or bundled with industrial control systems, wireless mobile telephones, wireless handheld devices, kiosks, TV/STB, Blu-ray Disc devices, telematics and network control switching equipment, printers and storage management systems, and other related systems are excluded from this definition and not licensed under this Agreement.
These kind of restrictions would not fly much with any open source redistribution and with the GPL in particular.
This makes essentially any "LICENSE TO DISTRIBUTE" grants in section C and D moot in most cases. You may have a very narrow use case that may fit in these restrictions but all the lawyers I have consulted with on this license are quite uncomfortable with its terms for most practical cases.
The only sane alternative is to consider the OpenJDK whether for use in conjunction with FOSS or proprietary software. This is weirdly enough essentially the same codebase.
The OpenJDK project itself does not redistribute binaries and building an OpenJDK can be a rather engaged process. Linux distros have packages for this. For other OSes, there are some pre-built available for instance from Azul.
Update 2016-12: Actually the latest news is that Oracle is now enforcing commercial licensing and commercial audits if you do not use an OpenJDK.
-
-
1Btw: Although it is hard to get someone at Oracle who really understands the license, iff you reach this person he/she will agree that it's very restrictive and want so sell you licenses. Dec 13, 2016 at 10:47
-
@MartinSchröder yes, that's part of the quid-pro-quo I guess? ;) Dec 13, 2016 at 16:21
-
Are they really the same codebase though. I thought there are quite some differences in terms of features supported and efficiency etc. I was reading something related to GraalVM: oracle.com/technetwork/oracle-labs/program-languages/overview/…, and it states some features are only offered by OracleJDK but not OpenJDK. Maybe they're similar enough for most general programs though.– xjiDec 20, 2016 at 23:24