Bug 698

Summary: Call for Compliance of Java Technology with the 4 Freedoms of Software
Product: [JogAmp] General Reporter: Sven Gothel <sgothel>
Component: legalAssignee: Sven Gothel <sgothel>
Status: CONFIRMED ---    
Severity: enhancement CC: gouessej
Priority: P2    
Version: unspecified   
Hardware: All   
OS: all   
Type: --- SCM Refs:
Workaround: ---
Bug Depends on: 790, 682    
Bug Blocks:    
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[0] 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.

+++

[0]    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

[1]    http://en.swpat.org/wiki/Java_and_patents
[1.1] http://en.swpat.org/wiki/Java_and_patents#OpenJDK:_the_GPLv2_Java_from_Oracle
[2]    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
[3] 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[0].

+++

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[0]. 

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[0].

(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[0].

+++++++++++

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[0].

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[0], 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[1] gave a bit insight about his at the experience at the IETF[2][3]
on /. [4] replying to comment [5] 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." [4]

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[6].

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.

[0] <http://www.businesswire.com/news/home/20130307006192/en/Google-MPEG-LA-Announce-Agreement-Covering-VP8>
[1] Christopher Montgomery from <http://www.xiph.org/>
[2] <http://www.ietf.org/rfc/rfc5334.txt>
[3] <http://lwn.net/Articles/465234/>
[4] <http://tech.slashdot.org/comments.pl?sid=3526387&cid=43114173>
[5] <http://tech.slashdot.org/comments.pl?sid=3526387&cid=43114137>
[6] 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 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

+++