3. Java as Freely Redistributable Software

Contents of this section

Many Linux programmers are attached to producing freely redistributable software (FRS), and try to avoid committing a lot of time to tools for which sources are not generally available. In this section, we discuss Sun's and Java's relationship with the FRS world.

(Warning: I am not a lawyer. I am neither employed by, nor an agent of, nor a stockholder in, Sun Microsystems. This section is based on my interpretation of the current copyright law and the Sun licensing language. Treat this as an introduction; the Sun licensing page, http://www.blackdown.org/Java/licensing.html is definitive. If you are in serious doubt about what it means, consult an attorney.)

3.1 Are Java programs and applets freely redistributable?

They are if you write them and choose to make them FRS through some mechanism (such as the GPL, or a BSD-style license, or declaring them public domain).

3.2 What can I do with Java implementation binaries?

The Sun licensing page has this to say:

The unmodified Java and HotJava binary releases may be redistributed free of charge in both commercial and non-commercial applications.
Also:
Companies or individuals who wish to create a new port of the Java language have the right under this agreement to post the binaries of that port to the Internet for use by others, as long as the port is free of charge and passes the publicly available test suites. (Test suites will be available sometime in the first half of 1996.) The "diffs" may also be posted on the web as long as the underlying source code is not posted. The Java source code is
So if you've got a working Java or HotJava binary, you can give it to your buddies. Or put it on a CD-ROM. Or do anything except patch it and represent the patched version as Java. (This is reasonable. Sun obviously can't leave itself without recourse against Trojan horses sailing under the Java banner.) Binaries are FRS.

3.3 Which parts of the Java sources are freely redistributable?

According to Sun's licensing page, none of it is. But that sounds harsher than it is. In practice, anyone can get the Java and HotJava sources for educational, porting, and non-commercial purposes by filling out a Web form which obligates them not to redistribute the sources. And the agreement does permit redistribution of diffs against the sources.

The only circumstance that requires you to sign a commercial license with Sun and pay them money is if you want to use the sources in a commercial product. In particular, the way the language is written, it's within the letter and spirit of the agreement for you to sign Sun's noncommercial source license, snarf the source, port it, and give away the results as completely unencumbered freeware!

Sun says that its primary purpose in keeping as much control as it has is to keep the language from mutating into incompatible dialects. The license language supports this; it seems to have been designed to allow hackers to play for free.

3.4 Is anyone cloning Java in freely redistributable source?

Not that we know of, yet. The Sun licensing page says:

The specifications for the Java Language and the Java Virtual Machine are OPEN and are copyrighted by Sun Microsystems, Inc.
Reimplementations of the Java Compiler or the Java Runtime Interpreter are permitted without requiring a license from Sun provided such implementations are created directly from the published specifications and without the direct or indirect use of Sun's own implementations or other intellectual property rights, including trademarks.
So if you want to go to the effort of creating a Java clone from the published specifications that is FRS, and calling it "Mr. Coffee", Sun won't stop you.

If Java becomes as popular as everybody expects, it will certainly be cloned. (The editor of this HOWTO hereby announces his availablity to help write either the Mr. Coffee compiler or the byte-code interpreter or both, as soon as suitable specification documents become available.)

3.5 Are there any FRS Java Tools?

There is a GNU Emacs mode for editing Java. You can fetch it from ftp://java.sun.com/pub/java/contrib/emacs .

3.6 What is Sun's attitude towards FRS Java implementations and tools?

Sun people use the term "rogue port" for Java implementations that either (a) are performed outside Sun, or (b) don't rely on Sun-licensed code (sometimes the term seems to mean one thing, sometimes the other). They seem to think some of these already exist, but we don't know where they are, nor if they are FRS. They're pretty relaxed about the situation.

Sun has a Java validation suite. They have said they'll certify any Java port that passes it. (Whether this validation will cost money is unknown, but Sun says in writing that the suite wil be "publicly available" in 1996, which at least hints that it will not.) They're prepared to certify rogue ports, though this apparently hasn't happened yet.


Next Chapter, Previous Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter