Skip to main content

Category 'B' license the best compromise

6 replies [Last post]
paulbristow
Offline
Joined: 2006-08-15
Points: 0

Simon Phipps has laid out quite a good explaination of open source licenses in his white paper at http://blogs.sun.com/roller/page/webmink?entry=open_source_licensing_paper

In my opinion, his conclusion that category 'B' licenses, like CDDL or MPL, strike the best balance is correct.

What I want out of an open source Java platform, is a truly interoperable platform that nevertheless allows the extra libraries developed under the JCP and other standards-like environments to be added, without necessarily mandating that those other libraries must use any specific license.

This would solve my companies needs, while allowing us to contribute to an open source java platform. For me, the core java platform (in J2ME) is a non-differentiator - I need to have it, but so does everyone else. Interoperability is key, and a category B open source license for Java will, in my opinion, provide that.

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
theuserbl
Offline
Joined: 2004-05-04
Points: 0

I think, there existing not only three categories, there existing four.
Category B can be divided in B1 and B2, so that there existing:
Category A, Category B1, Category B2, Category C

B2 is nearer to C. B2 means, it is allowed to compile the file dynamical with files other license. But if you compile it statical, it must be the same license like the file itself.
B1 is nearer to A. B1 means, it is allowed to compile the file dynamic and/or static with files of other licenses.

GNU Classpath for example was at first licensed under the LGPL (category B2). But later they changed the license to GPL with linking exception (category B1). Sadly some people see only the GPL and thoughting it would be category C.
If I understood it right, they have choosen the category B1 license, because they wanted to use the files also for embedded systems, mobile telephones, game consoles, and so on. And on some systems outside the desktop world, is it - if I understood it right - normal, that (nearly) all programs are compiled statical.

Now lets see, what license would be best for Java and effects which license category have.

Using a category C license for Java, don't change so much from the current situation. This is mostly, if Sun would already fear forks. A category C license can not existing allone, because then only programs of the same license can run on Java. So it needs a second license. In this case it would be the current non-OpenSource licenses.
Because with the category C license Java is OpenSource, OpenSource-Linux-Distributions, would then integrating Suns Java in its Distribution. Changes on Java from non-Sun people could only published under the category C license. And so the changed Java can not be used for running ClosedSource programs and so, because the other license which allow running ClosedSource programs, don't allow publishing modified versions of Java.
Some OpenSource VMs, which already before were only GPL (like Kaffe) would integrating code of this programs, if the category C license is the GPL.
But GNU Classpath and Apache Harmony would already developed further more, because they think, that a B1 license (GNU Classpath) / A license (Apache Harmony) would be better.

Using a category B2 license, would bringing much more people to use Suns Java. And there are then possibly no longer so much people working on GNU Classpath. But I think, that with this license there existing still some people who improve GNU Classpath. And the Apache Harmony people would be still unhappy with the B2 license.

So I think, the best for Suns Java would be, if it is licensed under a category B1 or category A license.

I think, the most GNU Classpath people would be happy with category B1 and category A.
The only problem would be with the Apache Harmony people. I don't know, if they would be happy with a category B1 license.
If I remember right, Geir writes everywhere, that the CDDL for Java would be acceptable. So the Harmony-leader don't needs a category A license. But how does it looks like with the other Harmony-developers?

To choose the Apache license for Java, wouldn't make any problem. Jini is already licensed under the Apache license. And possible extensions, which could be later integrated in the JDK 7, which are placed at http://common.l2fprod.com/ and https://l2fprod-common.dev.java.net/ are already under the Apache license.

But I have heard, that in the current Java, existing already third party code, which is licensed under the LGPL (category B2).
But that wouldn't make any problem. Sun published then only its own code under the Apache license and rewrites the non-OpenSource third-party code. The other code, which is OpenSource, but not category A, can than the Harmony project rewrite - if they want.

Don't undrstand me wrong. I prefer not only the category A license. I personally prefer category A and category B1. But I only hope, that the choosen license, is also a license, which the Apache Harmony people also like. Otherwise there existing still two OpenSource Java-implementations: Suns Java and Apaches Java.

And have now at the end a look to the OpenSource .NET called Mono (which is a little bit similar to Java):
There the Compiler is under the GPL (category C), the virtual machine and runtime under the LGPL (category B2) and the libraries under the MIT/X11 license (category A).

But if Sun would doing something similar for Java, it wouldn't so good, because the category C and B2 licenses. What is, if the runtime will be included in other programs statical linked? Then B1 or A would be better. And if Sun sets its compiler under a category C license, Apache Harmony would taking the Eclipse Java Compiler for its JDK.

On the other side is the fear, that any company could bringing out an optimized Java for its platform without bringing publishing the changes.

But until today I know no software of Apache, which is hardly modified and integrated in Closed Source programs and where then changes are not send to Apache.
And until today I know no project, which uses Monos classes, improve or changing it and putting it not back to the Mono-project.

As an additional possibility Java could at first licensed under an category A license and later - if Sun see, that it isn't a good choice - could be changed every time to a category B1 license.
Something similar have WINE done. At first it was under the MIT/X11 license (category A) and was later changed to LGPL (category B2).

So the category A license would be good at the beginning. And later have to see, if it will be let under the category A license.

Greatings
theuserbl

webmink
Offline
Joined: 2003-06-06
Points: 0

Thank-you for the useful clarification and insights - I'll roll those into a future revision of the licensing white paper.

webmink
Offline
Joined: 2003-06-06
Points: 0

To be clear, I've not expressed a preference for any particular license yet. In fact, I think it's still unclear which of my license categories most applies to the Java platform. I'm reading everything that's being written by commentators from the various Java communities, however, and I'm keen for Sun to make license choices that create the best future for us all. I've discussed this further in my blog at http://blogs.sun.com/roller/page/webmink?entry=why_bother_open_sourcing_...

jason_brittain
Offline
Joined: 2004-05-05
Points: 0

This is all opinion, but I feel that I should speak up since this is an important crossroads for the Sun Java implementation that we have all been using for many years now.

I would like to see the JDK open sourced under the Apache License v2.0, or something compatible enough with it that both the ASF and FSF are okay with adopting the source.

Two major traps I think Sun could fall into by not doing this are:

1) By choosing a license that is regarded as marginally open source by the community, Sun's wonderful Java implementation would be mostly ignored, and other implementations that are far behind like Kaffe or gij would get all of the developer attention. Even if the chosen license is clearly listed at opensource.org, if it's not well liked by the community, it's still a "bad" license, regardless if it's legally similar to one or more of the popular ones.

2) By choosing the GPL or LGPL, it would fit right into Linux, but won't fit into lots of other situations. Commercially, people wouldn't use it to make all kinds of useful derivative works, since whatever they write may need to become GPL'd, and that's not acceptable. The Harmony project would also have to create a competing codebase for everything in the Sun Java implementation.

If it could be possible to bridge the gnu Classpath and ASF Harmony gap with the licensing, that would probably be ideal, but I'd be surprised if you could get the major players to agree together that any single license works for that.

So, if you were to choose a BSD-style license, at least the code would really be free for anyone to use however they wish (commercially and non-commercially). That's what I'm looking for. And, if you can do that, then it would be even better to choose an existing BSD-style license that is already widely used, so that the license exactly matches up with a large amount of code and developers already. This is why I suggest the Apache License v2.0.

The fact that the current Harmony codebase already has this license makes me want to contribute to it in a big way. The only significant thing holding me back from contributing to it right now is: Sun's far superior Java implementation is about to be open sourced!

Thanks for all your great work!

--
Jason

atripp
Offline
Joined: 2003-07-15
Points: 0

> marginally open source by the community,

Gack! I was afraid someone was going to say that sooner or later. Let's be clear: "open source" has a specific meaning: see the OSD at opensource.org. Something can't be "marginally open source", it's either fits the OSD or it doesn't. Sun's been attempting to call Java "sorta open source" since forever, and the open source advocates always call them on it, as they should.

Let's not have Sun finally release Java under a real open-source license, only to then continue to hear "Yea, but that's not open-source enough". For example, I hope no one complains "but it's not Free", as Sun never promised "Free", or even hinted at it.

>
> The fact that the current Harmony codebase already
> has this license makes me want to contribute to it in
> a big way. The only significant thing holding me
> back from contributing to it right now is: Sun's far
> superior Java implementation is about to be open
> sourced!

You're sure it's not that you're too busy to actually contribute or it's too difficult? You might want to actually try making a change to Java, just to see how hard it is even just to compile the JDK. If you haven't tried it, it's probably harder than you think.

jason_brittain
Offline
Joined: 2004-05-05
Points: 0

> > marginally open source by the community,
>
> Gack! I was afraid someone was going to say that
> sooner or later. Let's be clear: "open source" has a
> specific meaning: see the OSD at opensource.org.

[snip]

I do indeed understand that something is either open source or it is not open source, as defined by opensource.org. To me, it either is, or it isn't. But the point I was trying to make was that to the open source community at large, there is indeed a perception that only certain licenses are "real" open source. This is unfortunate because I'm sure the guys at opensource.org are spending lots of time thinking about and discussing why each license should or shouldn't be considered open source. We should trust that they are a diverse enough group, with plenty of experience, and they're going to know more about it because of the amount of time they spend on it. But, I can say from my own experience with the community that a large number of those in the open source community regard some of the licenses listed on opensource.org as not being open enough to take seriously, and that's likely to be because they have not been a party to the discussion of each of the licenses, or haven't noticed that the licenses are listed right alongside their favorites on opensource.org, and by default won't trust these licenses. It's unfortunate, and it's common.

> Let's not have Sun finally release Java under a real
> open-source license, only to then continue to hear
> "Yea, but that's not open-source enough".

Regardless of the license Sun chooses, some people will indeed say that. I'd just like it to be as small of a percentage of the community saying that as possible.

> For
> example, I hope no one complains "but it's not Free",
> as Sun never promised "Free", or even hinted at it.

Exactly true. And, people have been complaining that for years already. It always perplexed me.

> > The fact that the current Harmony codebase already
> > has this license makes me want to contribute to it
> in
> > a big way. The only significant thing holding me
> > back from contributing to it right now is: Sun's
> far
> > superior Java implementation is about to be open
> > sourced!
>
> You're sure it's not that you're too busy to actually
> contribute or it's too difficult? You might want to
> actually try making a change to Java, just to see how
> hard it is even just to compile the JDK. If you
> haven't tried it, it's probably harder than you think.

I am busy, but I would put what time I could into contributing. Don't think that because I'm saying I would contribute some brain cycles to the project that I'd go straight into monkeying with the hotspot source and make all kinds of deep changes. I wouldn't. But, there are many other ways I could contribute to a project as vast as a JDK implementation project. And, yes, I have made custom changes to the source of a Java runtime more than once.