2012/1/4 Jürgen Schmidt <[email protected]>: > Hi, > > over the last days i was asking myself how it is exactly with code that is > based on our Apache licensed code. > > Well i have read the Apache license but the practical relevance is not clear > for me. > > In detail if a derivative project merge our now Apache licensed code with > their code that was based on the former Oracle licensed LGPL code. This code > becomes automatically Apache licensed, correct?
If author "A" writes code and releases it under LGPL, there is nothing that prevents them from also releasing the same code as ALv2, at the same time and place or someplace else. We see this with Oracle and the OOo SGA, for example. The owner of the code can attach licenses as they wish. The right to license (give permission) is one of the exclusive rights that a copyright owner has. If author "B" then takes this base work and makes changes, then "B" owns the changes they make. What license exactly those patches are available under depends on several things, including the license of the base work, whether the changes are published or kept private, whether "B" has signed a CLA that obligates them to make contributions under a certain license, etc. The Oracle SGA has made OOo source files available under ALv2 in general, not only for this project, but for anyone, including others who based their product on the same files. We've certainly been working under this model, as other OOo derivatives and ports have merged in their patches that were originally based on OOo LPGL releases. The eventual Symphony contribution is also enabled by the SGA. So person "B", if they wanted, is not required to make their patches available under LPGL. As of the SGA date they could make their patches available under other licenses, including ALv2. But they are not obligated to do this. They could also chose to remain with LGPL. The switch to ALv2 does not obligate moving to a less restrictive license for derivatives. It only permits it. (This assumes that "B" is making changes only to "A" code. It gets more complicated if person "C" made changes to "A" under LGPL as well) > If yes, does it mean that we can use the changes on this code in our code as > well if it is publicly available? > It depends on the license granted by the author of the changes. > Ok the license say that it is possible to put an additional license on all > changes made on the code when you mark all changes in an appropriate way. > How is that possible or done in practize with many minor changes (e.g. > improve the performance of an existing loop, or initialize existing > variables etc.)? And which license is valid if a trivial change is made in > our (the original) source in the same way, e.g. initialize a local variable > to prevent a warning? > First, trivial changes might not be copyrightable at all. If there is a bug and fixing the bug requires that you change: ptr = malloc(len) to ptr = malloc(len+1) Then you could argue that this change does not amount to creative expression. The copyright protects the creative expression, not the labor involved in debugging. But in general I'd recommend that we avoid making calls like this. In any case, one can express a license intent in many ways. For example, with the iCLA, you make a blanket statement that all contributions you make to SVN are under ALv2. You don't mark them individually. You only put the license header in new files. But all contributions, even one line ones, are covered. You see, in a less formal way, assertions made like this in other projects. For example, on the LO Dev list you see statements like this: http://lists.freedesktop.org/archives/libreoffice/2011-November/021345.html There is nothing in theory that would prevent someone from making such a statement that also included ALv2 among the licenses granted by an author. > Anyway it seems that the new changed code becomes derivative work because > the Apache license can't be removed. > Apache license is not viral. So although the license on the base code remains Apache license, it does not require that the modifications (the patch) is also ALv2. It can be, but this depends on the patch author's wishes. > I hope my question or thoughts are not too stupid and that somebody know the > answer ;-) > > > Juergen > > > PS. we talk about thousands of files, many changes and a lot of stupid > necessary work (marking all changes appropriately)
