|Summary:||Call for Compliance of Java Technology with the 4 Freedoms of Software|
|Product:||[JogAmp] General||Reporter:||Sven Gothel <sgothel>|
|Component:||legal||Assignee:||Sven Gothel <sgothel>|
|Bug Depends on:||790, 682|
|Attachments:||Screenshot of Raspberry Pi forum: http://www.raspberrypi.org/phpBB3/viewtopic.php?p=401112#p401112 png|
Description Sven Gothel 2013-03-07 14:22:34 CET
Motivation of this discussion are the restrictions of providing and using a virtual machine (VM) runtime environment (RE) 'based on java' to be used on desktop and mobile/embedded devices. It is observed that even though GPLv2 licensed OpenJDK source code is available beside other 'java based' implementations, deployment of its binaries is restricted and controlled by Oracle. Hence compliance w/ the 4 freedoms of Software is violated. +++ JVM - Java Virtual Machine JRE - Java Runtime Environment, including the JVM JDK - Java Development Kid, including JRE Dalvik - Google's free Java VM w/ runtime environment consisting out of Apache's Classpath and Google's additional classes. OpenJDK - Oracle's GPLv2 based source code of JVM, JRE and development kit. Java is a Trademark of Oracle Inc. 'Java Tech' - Any technology based on Java, including JRE, Dalvik, etc. +++  The Free Software Definition [0.1] http://www.gnu.org/philosophy/free-sw.html [0.2] https://en.wikipedia.org/wiki/The_Free_Software_Definition  http://en.swpat.org/wiki/Java_and_patents [1.1] http://en.swpat.org/wiki/Java_and_patents#OpenJDK:_the_GPLv2_Java_from_Oracle  http://en.swpat.org/wiki/Oracle_v._Google_%282010,_USA%29 [2.1] http://en.swpat.org/wiki/Oracle_v._Google_%282010,_USA%29#Does_the_grant_in_the_Java_Language_Specification_help.3F  Oracle's Licensing and Patent documents [3.1] http://openjdk.java.net/groups/conformance/JckAccess/index.html [3.2] http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u21-license-159167.txt [3.3] http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u22-doc-license-176237.txt [3.4] http://openjdk.java.net/faq/ +++ Minor issue: 'Java Namespace': In case [1.1]'s implicit patent grant cannot be supported (see below), [2.1] mentions that all claims need to be met to have the Java Language patent grant, including: (iii) do not add any additional packages, classes, or interfaces to the java.* or javax.* packages or their subpackages; If a vendor likes to include some extension under e.g. javax.media.MyGreatTool, in their release of a JRE, she would cause a violation of (iii). Such extension is not required to be included with the JRE packaging or installed filesystem itself, i.e. it can be deployed as an independent 3rd party package or it can be installed within it's own filesystem location independent to the JRE. Hence (iii) is a no too serious issue, but still renders 'Java Tech' not free since it violates the 4 freedoms of software. +++ Big issue: Patents and License of 'Java Technology' [1.1] claims an implicit patent licence, and hence using OpenJDK and even heavily modified OpenJDK to be 'safe'. Obeying [1.1] would render usage of 'Java Tech' free. However, Oracle, owner of 'Java Tech' related patents, licenses and copyright claims otherwise and hence does not support the implicit patent grant of [1.1]. [2.1] mentions that all claims need to be met to have the Java Language patent grant, including: (iv) pass all test suites (TCK) relating to the most recent published version of the specification of the Java 2 Platform, Standard Edition, that are available from SUN six (6) months prior to any beta release of the clean room implementation or upgrade thereto; [3.1] the TCK license is not freely available, hence no person is able to deploy their free JRE/JDK, if obeying (iv). [3.2] Oracle's binary JDK license excludes the use of it's binaries on non general purpose machines, i.e. 'embedded systems'. The list for the latter is quite explicit and long. This document is listed on the OpenJDK FAQ [3.4] [3.3] Oracle's jdk-6u22 license doc mentions a 'patent grant' the 1st time. It is given for machines and devices of their choice, read: As licensed in [3.2]. [3.2] and [3.3] demonstrates Oracle restricted use of their deployed JRE/JDK including their restricted patent grant. Note that a patent grant always is related to 'using technology' and not source code. The latter is covered by copyright or even copyleft like the GPLv2. However, using technology is covered by an EULA and patents, hence it is mentioned in Oracle's binary releases[3.3] and not within it's OpenJDK source release. [2.1] and (iv) requires parties to conform to Oracle's rules to legally use the 'Java Tech', this alone violates the 4 freedoms of software. (iv) and [3.1] allows Oracle to control deployment of JRE/JDK. The TCK is not freely available and would need to ask a person to allowed to use it for certification and hence deployment. Refusal of the TCK license has been documented with the Apache Harmony project. Obeying this claim renders the OpenJDK source code unusable due to the lack of the capability of deploying results on machines a user desires. Hence OpenJDK violates the three freedoms of software. +++++++++++ Conclusion: It is more than desired to have a legal and easy to read statement from Oracle that they will grant everybody sufficient rights to make their 'Java Tech' comply with the 4 freedoms of software. This would require them to make a general patent grant on 'Java Tech' for at least any somewhat OpenJDK derived product without restrictions. Of course, such action would render them 'out of control' of deploying 'Java Tech'. Neither Red Hat, nor Canonical would be required to act as a middlemen for GNU/Linux 'Java Tech' deployment . It seems that this is not what Oracle desires, hence - No clear statements given. - No 'emancipated' 'Java Tech' available to be freely used - No free 'Java Tech' development possible w/o obeying Oracle's ruling .. given that you are not a big company like Google :) It would be great if this could be settled in a lawsuit w/o a settlement, but a clear decision that 'Java Tech' is free including: - API - JVM technology (HotSpot and DalvikVM) - Impl. of runtime classes You may vote here :)
Comment 1 Sven Gothel 2013-03-08 13:18:27 CET
(In reply to comment #0) > > It would be great if this could be settled in a lawsuit w/o a settlement, -> a judgement, court decision rather than a silent agreement. Just reading about the latest VP8 patent development, a comment on /. catched my eyes, since it elaborates a bit about the patent 'mechanics' and business practice of companies, trying to milking the cow. Monty gave a bit insight about his at the experience at the IETF on /.  replying to comment  regarding the depressive aspects of Google paying(?) MPEG-LA for a patent settlement regarding VP8 and VP9, recognizing VP8/9 may infringe some of their patents. "We deal with this in the IETF all the time. Someone files a draft and a slew of companies file IPR statements that claim they have patents that 'may' read on the draft. Unlike other SDOs though, the IETF requires them to actually list the patent numbers so we can analyze and refute. And despite unequivocal third-party analyses stating 'there is no possibility patent X applies', these companies still present their discredited IPR statements to 'customers' and mention that these customers may be sued if they don't license. This is not the exception; this is standard operating procedure in the industry. These licensing tactics, for example, account for more than half of Qualcomm's total corporate income."  Well, in the VP8 case, we don't even know whether Google will grant all users of VP8 a royalty free patent grant, or even a general vpx-lib derived grant. Google still needs to make a statement about that. This 'case' may be an example of business practice, why Oracle doesn't dare to make an explicit patent grant to 'Java Tech' in general, while even preferring a court settlement w/ Google. This will allow them future options w/ other 'users' to pull license fees in, based on an unclear legal situation.  <http://www.businesswire.com/news/home/20130307006192/en/Google-MPEG-LA-Announce-Agreement-Covering-VP8>  Christopher Montgomery from <http://www.xiph.org/>  <http://www.ietf.org/rfc/rfc5334.txt>  <http://lwn.net/Articles/465234/>  <http://tech.slashdot.org/comments.pl?sid=3526387&cid=43114173>  <http://tech.slashdot.org/comments.pl?sid=3526387&cid=43114137>  http://blog.webmproject.org/2013/03/vp8-and-mpeg-la.html
Comment 2 Sven Gothel 2013-03-08 15:35:47 CET
"You see, many of us at Sun had been actively trying to change the perception of the platform from that of a corporate, enterprisey, closed world to that of a great VM with a great OSS ecosystem and an open-source reference implementation. Folks like Jonathan believed that by freeing Java we'd free the platform, and both the platform and the developer community would be better for it. We were half right...the OpenJDK genie is out of the bottle, and there's basically no way to put it back now (and for that, the world owes Sun a great debt). But only part of the platform was Freed...the patents and copyrights surrounding Hotspot and Java itself remained in place, carefully tucked away in the vault of a company that just didn't mount patent or copyright-driven legal attacks. Oracle, now in control of those patents and copyrights, obviously has different plans." Charles Nutter <http://blog.headius.com/2010/08/my-thoughts-on-oracle-v-google.html> +++ The question stands, whether Oracle will 'give in' and allow the platform to 'shine and rise' further to [re]gain it's market shares, or threatens 'users' and hence itself into oblivion regarding same platform? Nope, this is not a call to help Google at all, since they could pay any reasonable fee and don't need to be shy of lawsuits. Actually Google should IMHO simply pay a fee or collab w/ Oracle to invest into a foundation w/o profit. This is about enabling everyone to use a free Java platform across devices. As long we cannot use the OpenJDK source code and build a JRE ourselves to be deployed on devices we prefer, the OpenJDK platform is not free at all.
Comment 3 Julien Gouesse 2013-03-14 20:18:54 CET
Comment 4 Sven Gothel 2013-03-22 06:06:00 CET
(In reply to comment #3) > http://mail.openjdk.java.net/pipermail/discuss/2010-January/001451.html Wow - this is quite a comprehensive answer, if that could be verified - AWESOME! Thank you Julien. Too bad this statement hasn't been made from Oracle herself [yet] ?! Wondering why nobody of the officials at Fosdem2013 could not give such a comprehensive reply when being asked in public. Since this is important, I like to quote it for preservation below. Is this issue closed then ? E.g. anything derived from OpenJDK is free to use, implicit patent grant, complying w/ the 4 freedoms ? Opinions ? +++ Mark Wielaard mark at klomp.org Fri Jan 22 02:43:03 PST 2010 > I know about the "Implied license theories" and the claim that the GPLv2 > grants an implicit patent license - at > http://www.fenwick.com/docstore/Publications/IP/potential_defenses.pdf > you can find a very nice summary of this topic. > But even there the > authors, which are lawyers by the way, conclude that: "Because the GPL > [v2] is different from licenses normally available to business > entities under patent law, and the applicable equitable doctrines are > under broad judicial discretion, the courts may ultimately dispense > with GPL [v2] issues in a manner different than as discussed herein." Of course they are lawyers, so they have to put in some handwaving :) But their conclusion at the end of the paper is actually pretty clear, one can rely on patent rights being granted through the GPL: "from available case law, it is reasonable to conclude that the implied license defense is available and tenable for a defendant in a patent suit involving software released under the GPL." This is the same advice I got from the FSF when I asked whether the patent grants from Sun for OpenJDK through GPLv2 were strong enough. The GPL acts like a patent shield between all parties. http://developer.classpath.org/pipermail/classpath/2006-November/001675.html > After all, this unclarity was one of the reason for the creation of > the GPLv3 which explicitly grants GPLv3 licensees patent rights on the > licensed code. So Richard Stallman himself writes in the article "Why > Upgrade to GPL Version 3" (http://gplv3.fsf.org/rms-why.html): "GPLv3 > also provides for explicit patent protection of the users from the > program's contributors and redistributors. With GPLv2, users rely on > an implicit patent license to make sure that the company which > provided them a copy won't sue them, or the people they redistribute > copies to, for patent infringement." GPLv3 definitely strengthens the patent grant by including not only direct distributors, but also preventing tricks like granting your patents to another party and then making it sound like they granter and the distributor are different entities (like in the Novell/Microsoft case). So, the GPLv2 OpenJDK code base only covers Sun, now Oracle, and all contributors to the OpenJDK code base directly. GPLv3 would also cover some third parties if Sun tries to do a run-around and claim some party didn't actually contribute but only waved the patent for them but not the general public. (But this is already covered through the JCP, all parties grant all their rights to Sun, so they can redistribute those.) > With OpenJDK I'm afraid that Sun INTENTIONALLY chose GPLv2 instead of > GPLv3 to keep all options open and now that Oracle owns all the code, > copyrights and patents, this may get a real thread. They intentionally chose it because GPLv3 didn't exist yet, when they released all the code :) I would support an upgrade to v3 now though if that eases your concerns. So there are really no concerns here, even for some of the large companies that now distribute our code, if you just follow the GPL when redistributing any OpenJDK derivative. I cannot give you advise about proprietary redistribution though.
Comment 5 Julien Gouesse 2013-03-22 16:40:38 CET
Let's start working. Unofficial OpenJDK 1.7 builds for Windows and Mac are here: https://github.com/alexkasko/openjdk-unofficial-builds There is no script to build OpenJDK 1.8 any more but we can use these instructions: http://weblogs.java.net/blog/simonis/archive/2011/10/28/yaojowbi-yet-another-openjdk-windows-build-instruction NetX can be used to port Icedtea-web to Mac and Windows. AvianVM can use OpenJDK, it even supports Windows Phone 8.
Comment 6 Julien Gouesse 2013-03-24 19:00:56 CET
(In reply to comment #4) > (In reply to comment #3) > > http://mail.openjdk.java.net/pipermail/discuss/2010-January/001451.html > > Wow - this is quite a comprehensive answer, if that could be verified - > AWESOME! > Thank you Julien. > To be honest, I talked about our problem to some JGO users and "nsigma" (http://www.java-gaming.org/index.php?action=profile;u=15179) gave me this reference. We should thank him for his precious help.
Comment 7 Xerxes Rånby 2013-08-08 14:10:41 CEST
Created attachment 493 [details] Screenshot of Raspberry Pi forum: http://www.raspberrypi.org/phpBB3/viewtopic.php?p=401112#p401112 png Henrik made a legal statement inside the Raspberry Pi forum stating that OpenJDK do not require a license for non PC use: by henrik » 07 Aug 2013 22:18 http://www.raspberrypi.org/phpBB3/viewtopic.php?p=401112#p401112 - Oracle license fees for Java on Raspberry Pi are cheap Attached screen-shot of the forum thread including the text below: +++ Right. As I have announced on my blog (blogs.oracle.com/henrik), we license Oracle's Java binary for Linux/ARM under the standard Oracle Binary Code License. This means that it is free for development, evaluation and for production usage on a general-purpose computer. So if you build a PC out of the RPi you owe us nothing, but if you build (say) a game console or an industrial control system the license is (Aug 2013) 60 cents per unit. The same is true for our Java on Intel, SPARC and any other hardware. As you might expect, we're not particularly interested in selling to the RPi community. Our general policy is that we never charge for development usage, and that applies to pretty much all Oracle products. So if you are a hobbyist, a developer or an educational institution you don't have to worry about this (but you will want to read the license text anyway). If you want to build and sell a product based on RPi and Oracle Java, you may owe us the quoted 60 cents: give us a call. Or use OpenJDK. Cheers, Henrik Ståhl VP Product Management, Java Oracle +++