cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefano Mazzocchi <stef...@apache.org>
Subject Re: [PROPOSAL] Download of jars with Maven ant tasks
Date Tue, 26 Apr 2005 19:00:19 GMT
Reinhard Poetz wrote:
> Leszek Gawron wrote:
> 
>> Torsten Curdt wrote:
>>
>>>> Would it be legally acceptable to link also to non-Apache licensed 
>>>> stuff?
>>>> (Provided it is made available in a repository somewhere.)
>>>
>>>
>>>
>>>
>>> IANAL ...but I reckon that should be
>>> ok. Problem is - mocks are still not
>>> ok ...so it does not buy us much.
>>>
>>> ...I still don't get why mocks are
>>> a problem - this license stuff sucks
>>> so badly *grrrr*
>>
>>
>> In order to create a mock you have to copy a specific class interface 
>> that someone designed.
>>
> 
> I don't think that this solved the problem. If you download e.g. some 
> LGPL library you will use it somewhere in your code, otherwise it is 
> useless. The problem is the *use* IIUC ...

no, the problem is the 'redistribution' of derivative work.

> To be on the safe side, we will have to wait for real blocks as they can 
> cut all direct dependencies (--> one block only has a requirement on a 
> block interface and not on a block implementation.)

correct: if you have a 'database' block interface and a block that 
contains GPL stuff and implementat those interfaces (say the mysql jbdc 
driver, for example), you can make the entire block GPL and distribute 
that from, say, sourceforge or ibiblio and you are just fine, because 
you hook to the JDBC API which are not GPL and you don't distribute 
anything and the only 'contract' is the class name, which is a 
configuration therefore not a viral dependency.

This is the *only* way (without changing licenses!) to allow us to 
distribute safely GPL and LGPL code.

NOTE: the requirement is that the contract API should *not* be GPL, 
otherwise that doesn't work, as our code will be a derivative work, 
therefore needs to be GPLed as well.

A (sneaky? immoral?) way to route around the problem is to use runtime 
classloading: if your compiler can compile the block without the GPL 
code being visible to the compiler, you are fine.

The nice thing about blocks (or other component models, is that the link 
between roles and classnames is a configuration file), so the compiler 
doesn't need to depend on them.

The problem remains when your code implements an interface which is 
licensed under the LGPL, as it's unclear whether or not an interface 
implementation is considered a derivative work of the library, or a 
'use' of the library itself.

the ASF board is working hard with the FSF to resolve these issues, but 
don't hold your breath. For now, it's easier to route around the problem 
as I mentioned above.

-- 
Stefano.


Mime
View raw message