ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Vernum <>
Subject RE: Re[2]: Problems with licenses (GPL, LGPL) and task writing
Date Wed, 20 Jun 2001 09:28:40 GMT
From: Yannick Menager []

> Hello Tim,
> what if we had a defined API for say.. CVS Tasks.. and a series of
> adaptors for multiple implementations.... would that be legal ?
> maybe as an optional task, if the jcvs classes are there, it uses
> them, if not.... Why hasn't that be done ? any legal reasons against ?

Not sure I follow entirely, but here goes:

If you developed a new ant task called "checkin" that did something like

<checkin tool="cvs">
	<param name="repositry" value=""/>
	<fileset id="myfiles/>

Then I beleive you could do this:

Give the checkin task had a published API that is:
	For tool="XXX" it would load ant-XXX.jar
	In that jar is will look for a "XXX_checkin" class.
	On that class it will use the methods
		* checkin( file )
		* setParam( name, value )

Then you could write classes for


Your cvs_checkin would have to be GPL'd if it used any other GPL'd
code (eg some existing jCVS code).
But the checkin task wouldn't, since it is not specific to the cvs

I do beleive though, that you would have to implement at least one
alternative implementation (such as rcs_checkin) to be truly safe.

Then could be ASF licenced
code, operating as a facade over the various implementations,
each of which could be under any licence.

BUT: IANAL, I have however had similar discussions with various
people about such techniques.

eg You could in theory write an implementation of readline that
didn't actually do anything except read text from the terminal.
If it had the same API as GNU-readline, then you could BSD 
licence it, and anyone could use it.
Then users could drop GNU-readline in as a replacement, without
you GPL'ing your program.

My information is that the FSF would see that as an attempt to
circumvent their licence, and they would seek legal injunction.

I think I agree with them.

> TV> From: Yannick Menager []
> >> I'm not a lawyer, but I have the strong impression that if 
> we called a
> >> GLPed binary (jarfile) using reflection, that would solve 
> the problem,
> TV> Not necessarily.
> TV> If you wrote code that did something like:
> TV> SUB use-gnu-stuff
> TV>         jar = load-jar( "gnu.jar" )
> TV>         on-error:
> TV>                 throw( "Cannot find gnu.jar" ) 
> TV>         class = jar->load-class( "GNUclass" )
> TV>         on-error:
> TV>                 throw( "Cannot find 'GNUclass' in jar" )
> TV>         method = class->lookup-method( "myMethod" ) 
> TV>         on-error:
> TV>                 throw( "Cannot find method 'myMethod'" )
> TV>         return method->call()
> TV> Then there would be no direct dependency on the GNU code, and no
> TV> linking, since it is all done with reflection and if you handled
> TV> the exceptions, then the code would still work if the GNU jar 
> TV> wasn't there.
> TV> However, it is clear for all to see, that you are just trying to
> TV> circumvent the licensing requirements of gnu.jar, and a court
> TV> would probably declare it illegal.
> TV> However, it is was using a standard interface then you would 
> TV> probably be OK.
> TV> eg: You can probably use a GPL'd bean in your code, if 
> you just treat
> TV> it as a bean.
> TV> And Ant can load GPL'd task, since it uses Ant's published API.
> TV> But just putting a reflection wrapper doesn't necessarily work.
> _________________________________________________________
> Do You Yahoo!?
> Get your free address at

View raw message