Not logged in
Log in now
Create an account
Subscribe to LWN
An "enum" for Python 3
An unexpected perf feature
LWN.net Weekly Edition for May 16, 2013
A look at the PyPy 2.0 release
PostgreSQL 9.3 beta: Federated databases and more
Sun was attempting to derive a lot of cash money from Java Mobile Edition, and their standard edition licensing was apparently designed to help drive that.
libc and java
Posted Jun 6, 2011 22:37 UTC (Mon) by jonabbey (subscriber, #2736)
If you wanted to subset, you had to pay for Java Mobile Edition, and agree to carry all APIs that Sun wanted carried.
By going the Dalvik route, Google was going for the ability to control their API destiny, in the same way Microsoft attempted with their release of 'Java' in the 90's. It wasn't about copyleft concerns.
Posted Jun 6, 2011 23:41 UTC (Mon) by mjw (subscriber, #16740)
See also http://en.swpat.org/wiki/Talk:Java_and_patents
Posted Jun 6, 2011 23:56 UTC (Mon) by jonabbey (subscriber, #2736)
The language in Oracle's license declaration is:
"CLASSPATH" EXCEPTION TO THE GPL
Certain source files distributed by Oracle America and/or its affiliates are subject to the following clarification and special exception to the GPL, but only where Oracle has expressly included in the particular source file's header the words "Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the LICENSE file that accompanied this code."
Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module,
the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of
the library, but you are not obligated to do so. If you do not wish to do
so, delete this exception statement from your version.
Which would, indeed, make it a copyleft issue for the non-covered classes.
With Google using a differently licensed reimplementation of the class libraries, they are able to avoid having any mandatory copyleft requirement apply to Android developers, but patents are separate.
Thanks for the clarification and pointer.
Posted Jun 7, 2011 4:09 UTC (Tue) by smurf (subscriber, #17840)
Posted Jun 7, 2011 4:22 UTC (Tue) by dlang (✭ supporter ✭, #313)
if it was, then what is the difference between the GPL and the LGPL, the only difference between them is about linking.
Posted Jun 7, 2011 6:54 UTC (Tue) by paulj (subscriber, #341)
Posted Jun 7, 2011 7:02 UTC (Tue) by smurf (subscriber, #17840)
Posted Jun 7, 2011 10:58 UTC (Tue) by mjw (subscriber, #16740)
Indeed. But in practice for SE all classes are covered. In OpenJDK all sources for the core library classes carry this exception text. This was just like how GNU Classpath used to handle this case, by having that exact same exception to cover the whole core class library.
Posted Jun 7, 2011 22:56 UTC (Tue) by paulj (subscriber, #341)
Much of the JavaME specific libraries were similarly licenced as GPL, but *without* the explicit linking permission. Thus, any JavaME distributors who wished to ship proprietary apps and be *sure* to avoid the GPL, had to still get a proprietary licence from Sun. Similarly if they wished to make proprietary modifications.
So your understanding is slightly off I think. Further, the JavaME thing wouldn't have affected Google had they chosen to use OpenJDK cause I don't believe Google had or have any interest in supporting the JavaME specific APIs.
There's a good blog post here on it:
Posted Jun 7, 2011 23:03 UTC (Tue) by jonabbey (subscriber, #2736)
Posted Jun 7, 2011 23:08 UTC (Tue) by dlang (✭ supporter ✭, #313)
if they had used Java directly, they would have been required to support everything (with a court case to back them up, see the microsoft shenanigans), but by using a subset of the Java syntax, but a non-Java back-end they gained the ability to only implement the part of Java that they wanted.
Also, Sun had shown that it was reluctant to allow any other implementation of Java to be tested to get the Java name.
add to this the fact that they wanted to be able to tweak the implementation as needed (which, if "Java" would require re-certification), and you have pretty good case for not trying to use a true "Java" back-end.
Posted Jun 7, 2011 23:11 UTC (Tue) by jonabbey (subscriber, #2736)
Posted Jun 7, 2011 23:28 UTC (Tue) by dlang (✭ supporter ✭, #313)
it would get even more dicy to use the term Java for the syntax while you are using a subset of Java on the back end than what they did where they clearly state that the java syntax is converted to something else before being executed.
Posted Jun 7, 2011 23:30 UTC (Tue) by jonabbey (subscriber, #2736)
Posted Jun 8, 2011 12:38 UTC (Wed) by cate (subscriber, #1359)
Posted Jun 8, 2011 17:46 UTC (Wed) by paulj (subscriber, #341)
Posted Jun 9, 2011 4:39 UTC (Thu) by tzafrir (subscriber, #11501)
Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds