Oracle tries to destroy free java – now what?

Seems Oracle bought Sun to become a java patent troll. Trying to destroy the alternative free java implementation that is part of android. Sun used to be agnostic towards Free Software in the past, then became a huge fan on java liberation day. Now that Oracle is in control and starts its quest to destroy the free java world, we are back to the dark ages. So, now what?

Oracle is still distributing a free version of java itself through OpenJDK on which IcedTea is based. Implementations derived from that source base are safe against copyright and patent claims as long as one follows the obligations of the GPL. That is of course only for patent and copyrights Oracle holds or can pass on (through its stewardship of the JCP). To protect against claims by unrelated companies or when you have a free implementation of java not based on code distributed by Oracle, like GNU Classpath, try to get your implementation covered by a Free Software friendly patent pool. For example gcj/libgcj/GNU Classpath (as are some parts of the apache and eclipse java stacks) are part of the “System Components” of OIN (and Oracle has joined OIN).

Finally if you contribute to any Sun/Oracle java implementation demand that they change their Contributor Agreement to be truly reciprocal, not just for copyrights, but also for any patent claims covering the project you contribute to. So that anybody that wants to share the project you contributed to will always and irrevocably get all the rights to do that (not just for the GPL version). Point 3 in the current Sun/Oracle Contributor Agreement isn’t reciprocal, you grant a perpetual, irrevocable, non-exclusive, worldwide, no-charge, royalty-free license to any patent claims you might have to Sun/Oracle, but they are not granting back to you or the wider community any they hold on the project as a whole.

4 Comments

  1. Hi,

    My Java history knowledge is bad, but I’m trying to understand the patents situation.

    The base of Oracle’s complaint seems to be Dalvik, and I guess Dalvik isn’t based on the OpenJDK code.

    To avoid future problems with Oratroll, should Google be OK in the future if they replace Dalvik with a Java VM based on OpenJDK?

    Because of the patent grants of GPLv2 (sections 6 and 7), Google should be able to distribute a VM and a development kit based on the code that was GPLv2’d by Sun (regardless of whether it’s a full, subset, superset, or modifed implementation of the official Java specifications) without being at risk from Oratrolls patents.

    Any pointers would help my documentation efforts here:
    http://en.swpat.org/wiki/Oracle_v._Google_%282010,_USA%29

    • Mark Wielaard says:

      Yes, that seems a way out of this mess. If they base (part of) their product on code distributed by Sun/Oracle already under the GPL. It seems they then would be covered by the Copyright and Patent grants Oracle is making (as long as they keep respecting the copyleft license).

      Note that Google already contributes to OpenJDK and their Google App Engine product is based on OpenJDK (but that is a server product, not an mobile product).

  2. Rahul Sundaram says:

    Mark,

    OpenJDK is not a option for Google as I have explained in

    http://lwn.net/Articles/400015/

    Google could switch to being fully compliant with Java and be protected by the Java patent grant

    http://java.sun.com/javase/6/jdk-6u21-doc-license.txt

    They could invalidate the patents or settle out of court as well.

    • Mark Wielaard says:

      Hi Rahul,

      You analysis seems flawed, because they have a platform more like SE than ME. It basically is SE minus some graphics/widget libraries that won’t make sense for the android environment. Getting from a Java ME implementation to the current Android platform is much more work than getting from a Java SE one. Both GNU Classpath/gcj and OpenJDK come with the “GPL plus classpath exception” license, which makes it similar in spirit to the LGPL. So they support all types of apps and not just free and open source ones that are GPL compatible. Just like the Linux kernel component Android is already using.

      That “patent grant” might help a bit, and they might already be covered under that for some of their other work (Google App Engine for example, which is based on OpenJDK). It is unclear whether or not that easily transfers to other projects like Android though.

      But I do have a hard time seeing how they can satisfy all obligations outlined under “Independent Implementation” in that text. Note that it calls for using none of Sun’s source code, some of which, like fdlibm, is already free software and is happily being used in various alternative java implementations, and that it requires passing a specific, proprietary, NDAed, TCK, which isn’t actually easily available – Sun/Oracle denies access to it to Apache for example.

      Just rebasing on one of the GPLed (plus classpath exception) platforms like OpenJDK (protected through the GPL grants) or GNU Classpath/gcj (protected through the GPL and OIN), seems far simpler.

      That said, what Oracle is doing is still wrong. Most of android is actually free software (even if not using copyleft, and not really developed in an open source manner). If rebasing their work on other free software code bases gets around Oracle’s current legal aggression that might be good. But in the end it should of course not be necessary at all. Oracle is in the wrong here.