You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Sven de Marothy <sv...@physto.se> on 2005/05/09 01:03:42 UTC

Some questions on the proposal

Hello all, 
I've contributed a line or two of code to Classpath, and so obviously
I'm pretty interested in seeing a free implementation of Java, and I'm
all for cooperation.

But, I'm going to nasty and critical now and take a 'devil's advocate'
view here, just to get things clear for myself..

The "motivation" in the proposal lists Classpath, Kaffe, GCJ, etc and
states: 

"All of these efforts provide a diversity of solutions, which is
healthy, but barriers exist which prevent these efforts from reaching a
greater potential."

Could you give some examples of barriers? In my experience our #1
problem is that the implementation of the class libraries is incomplete.
All these projects use the GNU Classpath set of class libraries, in
harmony with the Classpath license (GPL+exception). 

How does starting a new project under a different and incompatible
license (Goal #1 in the proposal) help?

Goal 2 in the proposal is to "create a community-developed modular
runtime (VM and class library) architecture to allow independent
implementations to share runtime components, and allow independent
innovation in runtime components".

GNU Classpath already has a stable and documented VM interface and is
already being used by a number of independent runtimes of radically
different types. I think there already is lots of independent
innovation.

So much for points a) and d). Then there's b):
"a test suite for interoperability testing of the modules"

Classpath already has testsuites; Mauve and Jacks.

As for the IP issues raised; Classpath is clean-room. 

So, in summary I'm wondering:
1) The proposal is proposing to do essentially the same work we've done,
only under the Apache v2 license. How is this supposed to solve our
problems? Because Apache can do everything better? ;-)

2) If not, and Harmony is to make use of Classpath, what's in it for
Classpath? The "Apache stamp of approval"? More developers? Something
like 15 different VMs are already using GNU Classpath, is yours going to
make such a big difference?

3) What, exactly is wrong about the GNU Classpath license? The proposal
and several posts on this list don't seem to specifiy more than "Not
Invented Here". GNU Classpath is being used by projects licensed under
the GPL, LGPL, CPL the Intel Open Source License, etc. 

So what's so special about Harmony that it needs a ASL class library? 
Geir, you do know Janteloven, don't you? ;-)
(Reference for non-scandinavians:
http://www.lysator.liu.se/nordic/scn/faq26.html )


Ok, and before someone flames me, again, that was all conciously
provocative. I am not trying to sow any dischord here or be nasty to the
ASF. I'm all for cooperation, I'm just trying to figure out where people
stand.

/Sven


Re: Some questions on the proposal

Posted by Sven de Marothy <sv...@physto.se>.
On Mon, 2005-05-09 at 07:57 -0700, Jason Brittain wrote:
> > Classpath is a GNU project, but it is NOT under the GPL.
> 
> Then this page (along with others) probably shouldn't say that it is under
> the "GNU General Public License V2 or later":
> 
> http://savannah.gnu.org/projects/classpath

That is an error. And as Mark said, it'll be fixed. The Classpath
license page clearly says otherwise:
http://www.gnu.org/software/classpath/license.html

So does the LICENSE file included in the GNU Classpath distribution.
Also the GPL exeption is present in all of the 3100+ source files that
are part of Classpath.

> You're right.  It's not the GPL.  It's some other license.  But, it
> says GPL all over it.

It's the GPL with an exception. It grants a lot of rights the GPL does
not. But don't nit-pick over typos on webpages. 

/Sven


Re: Some questions on the proposal

Posted by Jason Brittain <ja...@brittainweb.org>.
Mark Wielaard wrote:
> On Mon, 2005-05-09 at 07:57 -0700, Jason Brittain wrote:
> 
>>Then this page (along with others) probably shouldn't say that it is under
>>the "GNU General Public License V2 or later":
>>
>>http://savannah.gnu.org/projects/classpath
>>
>>You're right.  It's not the GPL.  It's some other license.  But, it
>>says GPL all over it.
> 
> Requested to be changed so it points to:
> http://www.gnu.org/software/classpath/license.html
> 
> Thanks for the bug report.

You're welcome.  Here's another popularly viewed page about it that also says
it's released under the GPL:

http://freshmeat.net/projects/gnuclasspath/

(You are listed the source of info on this page.)

Thanks.

-- 
Jason Brittain

Re: Some questions on the proposal

Posted by Mark Wielaard <ma...@klomp.org>.
On Mon, 2005-05-09 at 07:57 -0700, Jason Brittain wrote:
> Then this page (along with others) probably shouldn't say that it is under
> the "GNU General Public License V2 or later":
> 
> http://savannah.gnu.org/projects/classpath
> 
> You're right.  It's not the GPL.  It's some other license.  But, it
> says GPL all over it.

Requested to be changed so it points to:
http://www.gnu.org/software/classpath/license.html

Thanks for the bug report.

Mark

-- 
Escape the Java Trap with GNU Classpath!
http://www.gnu.org/philosophy/java-trap.html

Join the community at http://planet.classpath.org/

Re: Some questions on the proposal

Posted by Jason Brittain <ja...@brittainweb.org>.
Hi Sven.

Sven de Marothy wrote:
> 
> Classpath is a GNU project, but it is NOT under the GPL.

Then this page (along with others) probably shouldn't say that it is under
the "GNU General Public License V2 or later":

http://savannah.gnu.org/projects/classpath

You're right.  It's not the GPL.  It's some other license.  But, it
says GPL all over it.

-- 
Jason Brittain

Re: Some questions on the proposal

Posted by Dalibor Topic <ro...@kaffe.org>.
Sven de Marothy wrote:
> On Mon, 2005-05-09 at 06:47 -0400, Geir Magnusson Jr. wrote:
> 
> 
>>I think the biggest barriers are various licensing issues, the fact  
>>that there isn't a "full stack project", and completeness.
> 
> 
> Well, the general issues of FSF vs ASF licensing if of course a concern
> to everybody. But with that said, I don't think the current Classpath
> license is an issue. As I said, there are VMs of all kinds using GNU
> Classpath. Even proprietary ones.
> 
> The lack of a 'full stack project' isn't really a concern of mine. It's
> a software-bundling issue, not a programming one. But it's worth
> pointing out that GCJ *does* intend to have a full Java stack. 
> Compiler (native and bytecode), VM, jar utility, javadoc, etc.

For what it's worth, Kaffe does have the full-stack thing too, and has 
been having it as far as I can remember.[1] Otoh, Gcj's integration of 
everything in jpackage and fedora core is awesome, really.

The latest Kaffe release, for example, comes beside the VM, with jar, 
javap, a javac wrapper, javadoc, javah, rmic, rmiregistry, native2ascii 
and serialver utilities, most of which come from the very nice GNU 
Classpath tools project.

Thanks to increasing cooperation between Kaffe and Gcj developers, Kaffe 
already includes some components from gcj (with more to come). We have 
in a pretty straightforward way begun a harmonization effort in the GNU 
Classpath runtime world a while ago, which will hopefully lead to nice 
component interfaces that allow us to more easily reuse parts of runtimes.

Such a thing could also open up opportunities for runtime developers 
that were so far shy of collaborating with us to integrate components 
from GNU Classpath runtimes in their offerings, or vice versa, given a 
workable middle ground on the licensing and design of such interfaces 
and/or components.

Harmony sounds like a very nice place to do that, to provide the 
concrete case for ASF and FSF to collaborate more closely, and to bring 
people with a broader set of backgrounds and interests together on 
aligned goals, be they architecture, design or actual implementations of 
VMs, components and libraries.

Having the ASF participate in all that, either through creating an own 
runtime, or by adopting or joining forces with the existing projects 
like gcj, IKVM, SableVM, JikesRVM, JamVM, Cacao, or even Kaffe would be 
a great thing for everyone, I believe. From my experience with 
co-maintaining Kaffe, I'd heavily argue for collaborating with everyone 
on as much as possible, and reusing existing code, rather than repeating 
the mistakes that were made by Kaffe and gcj in the early days, when 
dinosaurs walked the earth.

As an ASF project, Harmony can provide an environment for collaboration 
that is more comfortable to people that so far have either not heard of 
efforts like Kaffe or gcj, or ignored them for various reasons.

> Well, none of the other free JVMs out there intend to be incompatible.
> As Mark pointed out, Dalibor/Kaffe is in the process of trying to work
> something out regarding the TCK. I guess it depends on what you mean by
> complete and tested.

Kaffe releases are also regularly tested against the free software Mauve 
test suite, and the latest CVS head is undergoing a daily testing 
routine[1] on the Apache Gump, thanks to generous contributions from 
some wonderful people in the Apache community. That effort has lead to a 
number of issues in Kaffe and Classpath being detected and fixed, by 
some very nice people on our side, too, and helped improve the quality 
of some the projects being tested as well.

On a side note, the 'working out something about the TCK' part is so far 
working, and seems to be going nicely forward. There is quite a bit of 
good will on the side of the copyright holders of the TCK to remove 
barriers to its effective use, afaict.

> Or is the goal to have everything under an Apache v2 license, with no
> compromises? 
> (Stefano said that there is no intention to be incompatible, wheras
> Mladen said that the primary intention is to be ASL v2.)

I believe that those members of the Apache community that had a chance 
to collaborate/discuss/work with the members of GNU Classpath community 
have a good understanding of the size of the tasks involved, and what is 
needed to fullfil them.

That being said, reusing the nice work done by the ASF on the APR for 
the low level portability work to platforms outside the POSIX realm, for 
example, would sound pretty attractive for Kaffe, for example, as soon 
as the ASL2/GPL2 incompatibilty is fixed. While Kaffe currently has 
threading implementations over posix, win32, oskit and beos, for 
example, being able to enhance those implementations with a commonly 
maintained, liberally and GPL-compatibly licensed layer would be pretty 
nice and useful.

In parctice, a good way to meet more of the Classpath developers is to 
join the IRC channel #classpath on irc.freenode.org. The kaffe 
developers are on #kaffe on the same channel, and the gcj team is on 
#gcj on the irc.oftc.net server. Beware, though, the talk on #kaffe and 
#classpath is pretty blunt at times, as Simon Phipps found out. But he 
has a strong skin, and we are all huggable hackers, afaict. In 
particular in combination with nice food and beverages. :)

>>It's clear we're all not going to see eye-to-eye on license  
>>philosophy.  I'm hoping that we can find ways to work together where  
>>those differences don't get in the way of doing something productive.
> 
> 
> Classpath is a GNU project, but it is NOT under the GPL. It's GPL
> +exception, which is a far more liberal license than the GPL, or LGPL
> even. I suggest everyone here read the actual GPL+exception license and
> understand that the differences are a lot smaller than they probably
> thought. 

The concept of using the GPL with a suitable linking exception is 
something that has been used in core toolchain components and libraries, 
like libgcc and libg++, that have been used to develop both free and 
non-free software in C and C++ for the last 10 years at least on dozens 
of platforms.

In fact, afaik all of the non-GPLd software in existance written in the 
C and C++ programming languages for the GNU/Linux platform managed to 
avoid being involuntarily 'assimilated by the GPL collective' despite 
depending on code that was licensed under the GPL with appropriate 
exceptions. :)

cheers,
dalibor topic

[1] I can remeber that since about 2000, at least.

[2] http://brutus.apache.org/gump/kaffe/buildLog.html

Re: Some questions on the proposal

Posted by Sven de Marothy <sv...@physto.se>.
On Mon, 2005-05-09 at 06:47 -0400, Geir Magnusson Jr. wrote:

> I think the biggest barriers are various licensing issues, the fact  
> that there isn't a "full stack project", and completeness.

Well, the general issues of FSF vs ASF licensing if of course a concern
to everybody. But with that said, I don't think the current Classpath
license is an issue. As I said, there are VMs of all kinds using GNU
Classpath. Even proprietary ones.

The lack of a 'full stack project' isn't really a concern of mine. It's
a software-bundling issue, not a programming one. But it's worth
pointing out that GCJ *does* intend to have a full Java stack. 
Compiler (native and bytecode), VM, jar utility, javadoc, etc.

> We're starting a project to do a full tested, compatible  
> implementation of J2SE (which will need a class library).  I don't  
> know of any projects out there that are doing that.  Yes, we *write*  
> software and license it with the Apache License, but we always like  
> to *use* software from elsewhere that is under acceptable licenses  
> because - well - we're lazy.

Well, none of the other free JVMs out there intend to be incompatible.
As Mark pointed out, Dalibor/Kaffe is in the process of trying to work
something out regarding the TCK. I guess it depends on what you mean by
complete and tested.

> We're going to need a class library to include with our full  
> implementation, just like we'll need a VM.  So far, no decisions have  
> been made on what to use and from where.

That's not quite the impression the proposal text gives though. And by
reading the list here, there seems to be very differing views on what
the actual goal is here. What is the goal? Or is that for the community
to decide as well? You do have to start somewhere. 

If the goal is to create a J2SE 5 clone under an Apache-or-compatible
license; that does not seem to me to be sufficiently different from what
we're doing to justify duplicating effort. Notable people are already
(http://primates.ximian.com/~miguel/archive/2005/May-07.html) talking
about a 'fork'. 

Or is the goal to have a VM with a modular design? The proposal is
strangely specific about VM design while being very vauge about the
whole surrounding motive, cause and strategy.

Or is the goal to have everything under an Apache v2 license, with no
compromises? 
(Stefano said that there is no intention to be incompatible, wheras
Mladen said that the primary intention is to be ASL v2.)

> Remember, the goal is to create J2SE 5.  That isn't GNU Classpath's  
> goal (nor Kaffe's, GCJs, etc...)

Then I'm confused. I've implemented J2SE 5-specific methods in
Classpath. I have no idea why I did that then.

Seriously, though. Do you mean passing the TCK? Kaffe is planning on
that. Having the full stack? GCJ wants that. Both? 

> I don't understand the question. What does GNU Classpath want in  
> exchange for being used?  Nothing, I hope.

No, nothing except that the license be respected. But I was referring to
the eventuality of changing the Classpath license for Apache. Its easy
to ask for us to change our license, because we can and have done so
before. I'm just surprized that people are already talking about it at
this stage. 

> There is no "Apache stamp of approval".  Apache makes no technical  
> decisions.  Everything like that (modulo legal risk) is pushed down  
> to the communities doing the work - the people that make the  
> decisions are those working in the projects.  *We* (you, me, everyone  
> else) make the technical decisions.

Okay. Thing is, I'm not part of the community here. I'm part of the GNU
Classpath community. If you guys decide to use GNU Classpath, you can be
part of that community too. But that's for the Apache members to decide,
and not me. I'm just trying to ensure that a well-informed decision will
be made.

> It doesn't necessarily need a class library under the Apache License  
> - just use a class library under a license that complies with our use  
> and distribution requirements.

Is this agreed upon then? You'd have saved some of us some hair-pulling
if the Proposal had said that. There is a huge difference between a
class library under an Apache-compatible license and a class library
under the Apache License. The proposal says the latter. 

> It's clear we're all not going to see eye-to-eye on license  
> philosophy.  I'm hoping that we can find ways to work together where  
> those differences don't get in the way of doing something productive.

Classpath is a GNU project, but it is NOT under the GPL. It's GPL
+exception, which is a far more liberal license than the GPL, or LGPL
even. I suggest everyone here read the actual GPL+exception license and
understand that the differences are a lot smaller than they probably
thought. 

/Sven


Re: Some questions on the proposal

Posted by "Geir Magnusson Jr." <ge...@apache.org>.
On May 8, 2005, at 7:03 PM, Sven de Marothy wrote:

> Hello all,
> I've contributed a line or two of code to Classpath, and so obviously
> I'm pretty interested in seeing a free implementation of Java, and I'm
> all for cooperation.

Yay!

>
> But, I'm going to nasty and critical now and take a 'devil's advocate'
> view here, just to get things clear for myself..
>
> The "motivation" in the proposal lists Classpath, Kaffe, GCJ, etc and
> states:
>
> "All of these efforts provide a diversity of solutions, which is
> healthy, but barriers exist which prevent these efforts from  
> reaching a
> greater potential."
>
> Could you give some examples of barriers? In my experience our #1
> problem is that the implementation of the class libraries is  
> incomplete.

I think the biggest barriers are various licensing issues, the fact  
that there isn't a "full stack project", and completeness.

None of these are aspects that I consider any kind of  failing or  
criticism.  We've always had licensing differences and continue to  
work on the, we're happy to give the "full stack project" a try, and  
"incompleteness" is the normal state of affairs until "completion" is  
reached - any project is incomplete until it's done.  A project near  
and dear to my heart, Geronimo, is incomplete (as of now...)

> All these projects use the GNU Classpath set of class libraries, in
> harmony with the Classpath license (GPL+exception).
>
> How does starting a new project under a different and incompatible
> license (Goal #1 in the proposal) help?
>

We're starting a project to do a full tested, compatible  
implementation of J2SE (which will need a class library).  I don't  
know of any projects out there that are doing that.  Yes, we *write*  
software and license it with the Apache License, but we always like  
to *use* software from elsewhere that is under acceptable licenses  
because - well - we're lazy.

> Goal 2 in the proposal is to "create a community-developed modular
> runtime (VM and class library) architecture to allow independent
> implementations to share runtime components, and allow independent
> innovation in runtime components".
>
> GNU Classpath already has a stable and documented VM interface and is
> already being used by a number of independent runtimes of radically
> different types. I think there already is lots of independent
> innovation.

It was my understanding that there was room for further work here, as  
well as intra-library modularity.  VM modularity is going to be  
important too, and we probably have to consider the two subjects  
concurrently.

We're trying to get lots of people that have an interest and  
understanding in this issue to talk about it here.  I'm really  
interested in how the problems you've solved resonate with the  
problems others have, and if there is anything we can learn from each  
other.

>
> So much for points a) and d). Then there's b):
> "a test suite for interoperability testing of the modules"
>
> Classpath already has testsuites; Mauve and Jacks.

IIRC, Mauve tests the Java API, and the test suite imagined above is  
to test the modular components - to see if implementations of modules  
support the interfaces they claim.  This isn't the Java API.  As you  
say, there is Mauve, and there's always the Sun TCK as well.  I'm  
fine with using Mauve (and contributing to Mauve) until TCK testing  
time.

Remember, the goal of modularity is important, and we wanted to be  
sure that modules interoperable.  The only way (off the top of our  
heads) that we could be sure things would work is a test kit.

Does it have to be here at the ASF?  No - we're happy to use tools  
from elsewhere.  JUnit (for example) is very popular w/ ASF Java  
projects.  <plug_for_cedric>TestNG will probably be too someday</ 
plug_for_cedric>

>
> As for the IP issues raised; Classpath is clean-room.

Great.  Everything we do here must be clean room, and any  
dependencies we have on external software - and as we are  
fundamentally lazy people, we want to use things from elsewhere  
rather than re-write - would need to satisfy our usual requirements  
for distribution and licensing, and we'd probably add more  
inspection, such as clean-room-ness.  We feel responsible to our  
downstream users for what our distributions contain.

>
> So, in summary I'm wondering:
> 1) The proposal is proposing to do essentially the same work we've  
> done,
> only under the Apache v2 license. How is this supposed to solve our
> problems? Because Apache can do everything better? ;-)

No.  We don't do _everything_ better. ;)

We're going to need a class library to include with our full  
implementation, just like we'll need a VM.  So far, no decisions have  
been made on what to use and from where.

Remember, the goal is to create J2SE 5.  That isn't GNU Classpath's  
goal (nor Kaffe's, GCJs, etc...)

>
> 2) If not, and Harmony is to make use of Classpath, what's in it for
> Classpath?

I don't understand the question. What does GNU Classpath want in  
exchange for being used?  Nothing, I hope.

> The "Apache stamp of approval"? More developers? Something
> like 15 different VMs are already using GNU Classpath, is yours  
> going to
> make such a big difference?

There is no "Apache stamp of approval".  Apache makes no technical  
decisions.  Everything like that (modulo legal risk) is pushed down  
to the communities doing the work - the people that make the  
decisions are those working in the projects.  *We* (you, me, everyone  
else) make the technical decisions.

The only time Apache will step in is if there is a legal problem,  
such as questions about ownership of a piece of donated code or such...

>
> 3) What, exactly is wrong about the GNU Classpath license? The  
> proposal
> and several posts on this list don't seem to specifiy more than "Not
> Invented Here". GNU Classpath is being used by projects licensed under
> the GPL, LGPL, CPL the Intel Open Source License, etc.

I'm game - what *is* wrong with the GNU Classpath License? :)

I really don't want to debate licenses now.  I'd rather discuss  
technology.

The ASF has some rather clear rules about what we distribute.  We'll  
have to distribute whatever we choose as part of the full  
implementation.  This isn't like using glibc or something, where  
that's an implementation of a standard interface that you can expect  
to be found on the various target platforms.

There's lots of interesting discussion to be had here -  and we have  
to have it - but I don't want to declare defeat before we even get  
started.

>
> So what's so special about Harmony that it needs a ASL class library?

It doesn't necessarily need a class library under the Apache License  
- just use a class library under a license that complies with our use  
and distribution requirements.

It's clear we're all not going to see eye-to-eye on license  
philosophy.  I'm hoping that we can find ways to work together where  
those differences don't get in the way of doing something productive.


> Geir, you do know Janteloven, don't you? ;-)
> (Reference for non-scandinavians:
> http://www.lysator.liu.se/nordic/scn/faq26.html )
>

I actually don't. :)  I am US-born, and was raised here in the US all  
my life. Thanks for the link... I'll read on the plane.

>
> Ok, and before someone flames me, again, that was all conciously
> provocative.

> I am not trying to sow any dischord here or be nasty to the
> ASF. I'm all for cooperation, I'm just trying to figure out where  
> people
> stand.

These are good questions, but they do presume a bit. I encourage you  
to keep going with this so we can learn more about each other.   
Thanks for spending the time on this.

geir

>
> /Sven
>
>

-- 
Geir Magnusson Jr                                  +1-203-665-6437
geirm@apache.org