cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Artur Bialecki" <>
Subject License and patching/forking (was: RE: [ANN] XMLForm as a standalone servlet toolkit)
Date Tue, 01 Apr 2003 17:00:36 GMT

Thanks for the info it makes things clearer for me. But lets say
I do have to "fork" cocoon for the reasons you mentioned and I have
to name it something different. Do I have to change all references
to apache/cocoon in all the sources. (eg. changing  
to and all references to that class). This sounds
like maintenance nightmare.

In the following situation what would the best approach be.
I need to cache the DOM of included files in XIncludeTransformer.
The changes include modifying very few lines of code and addition
of configuration option. Also lets assume that extending the
XIncludeTrasformer is not possible or it doesn't make sense.
So do I modify XIncludeTransformer and fork cocoon or
do I create my own component by stilling 99% of the code from
XIncludeTransformer. Are there other options.
What if I do submit a patch and it gets accepted for
next release but I can't use the new release since it breaks
other things. Can I use my old patched release forever?

I'm not asking for the "official" statement ;)



> -----Original Message-----
> From: Stefano Mazzocchi [] 
> Sent: April 1, 2003 4:35 AM
> To:
> Subject: Re: [ANN] XMLForm as a standalone servlet toolkit
> Please note this is not an official statement on behalf of the 
> foundation. If you need an official one, please contact the Apache 
> Licencing Group at (
> These are only my thinking based on passed experiences and threads on 
> that licensing@ mail list.
> Kevin O'Neill wrote:
> > I understand your point and agree with it. I would like to 
> however ask
> > some follow up questions :).
> > Say I'm building with cocoon 2.0.4 and there is a bug in 
> the foo. I fix 
> > that bug in the version of coccon that I supply to my 
> client. Under normal
> > circumstances I would supply the client with the code 
> (including third
> > party code, patched or not) of the product I'm working on. 
> Can I supply
> > the patched version?
> Sure. You are fully allowed to redistributed a modified codebase.
> But there are a few issues:
> 1) you can't call it "Apache Cocoon" anymore, unless the ASF 
> gives you 
> written permission. Even if you change one line, it's *your* 
> own fork, 
> thus you have to name it something different.
> 2) you have to state what license applies to your modification.
> Note that this is being *very* picky.
> Usually (and this happened several times in the past with HTTPd, 
> expecially for different distributions), as long as you 
> *DO*NOT* modify 
> the behavior of Cocoon in any significant way (and a bugfix, or the 
> addition of a few lines in the README.txt file and so on are 
> considered 
> harmless changes), the ASF is perfectly fine with that even if, in 
> theory, the license doesn't allow you to do that and still retain the 
> 'Apache Cocoon' name in your distribution.
> Please understand that the reason for protecting the cocoon 
> brand is to 
> avoid you distributing something that is *NOT* cocoon anymore 
> with its 
> name, thus, in fact, abusing the name and its visibility.
> As long as this community doesn't have the perception that 
> you are doing 
> it, you are fine and safe even if you blurred the lines of 
> the license a 
> little.
> > Now lets say that I enhance one of the existing components 
> to extend the
> > functionality in some way of the component (say allow for 
> an addition
> > configuration option). Can I supply this version?
> This is more tricky as you are, in fact, altering the 
> functionality in a 
> significant way.
> As I said, if you don't distribute the code with the name 
> 'cocoon' you 
> are fine even if you throw away half of the code and write 
> another half 
> yourself.
> If not, well, you are potentially providing confusion to the customer 
> because he is not able to replace 'your version' of cocoon with ours 
> transparently and this means, in fact, that 'your version' is 
> not cocoon 
> anymore and the license doesn't give you the right of calling it so.
> > What if I've submitted both enhancements as patches and 
> they have been
> > excepted for the HEAD version?
> If you modifications are waiting for a release to be out, then your 
> customer *will* be able to switch to an official release and 
> it's just a 
> matter of specifying the release number.
> In that case, you could distribute a CVS snapshot and all is well.
> > What if they haven't?
> The eventuality that a bugfix is *rejected* is close to zero. 
> Maybe it's 
> not fixed as you did, but the bug will be fixed sooner or later and 
> normally, if you provide a patch, it's much easier to patch 
> it with your 
> patch than to write another one.
> So for bugfixes I don't see any problem.
> For enhancements, there is a chance they are rejected.
> If this is the case, you are, in fact, forking. This prevents 
> you from 
> calling your distributed cocoon 'cocoon'.
> If you don't care, just change the name and say that 'my own little 
> software' is based on Apache Cocoon 2.1.whatever and you are fine.
> If you care (because your customer cares!), then my 
> suggestion would be 
> to ship cocoon unmodified and then ship along side your enhanced 
> component, with a different package name and under your own license 
> (which could well be compatible with the ASF but allow potential 
> placement into the HEAD in the future, but that's up to you.)
> >>But defining an package and import it (or extend it) are 
> two entirely
> >>different things because they can't do any harm.
> > 
> > I think this sort of stuff should be in a licensing FAQ.
> Sigh, that FAQ has been work in progress for two years now, 
> along with 
> the Apache License 2.0
> maybe one day both will see the light.
> But don't hold your breath for it.
> Stefano.

View raw message