<div dir="ltr">On Tue, Sep 22, 2015 at 10:35 AM, Ian Hinder <span dir="ltr"><<a href="mailto:ian.hinder@aei.mpg.de" target="_blank">ian.hinder@aei.mpg.de</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><span class=""><div>On 22 Sep 2015, at 15:42, Erik Schnetter <<a href="mailto:schnetter@cct.lsu.edu" target="_blank">schnetter@cct.lsu.edu</a>> wrote:</div><br><blockquote type="cite"><div dir="ltr">For Cactus, it is very important that the licence is not standard GPL, as this would make it impossible to use standard Cactus thorns with arbitrary other licences. Cactus needs to be open, and the GPL places too tight a restriction on codes that use Cactus. Of course, this hold only for the standard Cactus thorns (the thorns in arrangements with names starting with "Cactus"); any thorns developed by others can of course be released (or not) under any licence they choose.<div><br></div><div>The original formulation of the Cactus thorns' licence was somewhat misleading; I believe it used the standard GPL text, and then added a clause that using such a thorn in an application was also allowed. We later noticed that this is essentially the content of the LGPL, and thus changed all Cactus thorns to be released under the LGPL. This policy still stands. If we missed the licence text in a thorn, it should be corrected. If a new thorn was added with GPL as licence, then this needs to be discussed, and either the licence changed or the thorn be moved to an auxiliary arrangement (i.e. not be part of standard Cactus any more).</div></div></blockquote><div><br></div></span>Hi Erik,</div><div><br></div><div>Thanks for the explanation. Since this comes up every so often, I have added some information, including a quote of your email, to the wiki at <a href="https://docs.einsteintoolkit.org/et-docs/Licences" target="_blank">https://docs.einsteintoolkit.org/et-docs/Licences</a>. Assuming that this is not controversial (hah!), we can change the quote into normal text and this can serve as a reference for the policy and the reasons behind it.</div><div><br></div><div>I would make the text a bit more precise: the use of GPL vs LGPL doesn't make it "impossible to use standard Cactus thorns with arbitrary other licences" in general. You can of course download the thorns, combine them with other thorns which are licensed in any other way, and use the executable yourself. One thing it prohibits is *distributing* such an executable containing both GPL and non-GPL thorns, without distributing also the source, which the LGPL doesn't. I'm not sure of the extent to which the GPL and LGPL differ if you don't care about redistributing binaries. i.e. if I package together GPL source with non-GPL source, can I distribute the combined source tree?</div><div><br></div><div>I think the idea of using LGPL was that some company may want to create and distribute a non-free executable based on Cactus, without distributing the source code of their contribution, and the Cactus authors did not want to prohibit this, with the idea that Cactus may eventually be used in a commercial setting where such things are desired.</div></div></blockquote><div><br></div><div>Ian</div><div><br></div><div>The idea is not just to allow a company to do that -- the idea is also to ensure that no one needs to think, now, about whether they may be working for or founding a company ten years from now, and whether they'll be able to do then whatever they please with the software they are writing today. The fine point regarding "using" and "distributing" is correct, but even in academia people may want to give their code to their collaborators at other institutions, on their terms, without having to adhere to any additional requirements that Cactus may impose. So Cactus doesn't impose anything.</div><div><br></div><div>We considered making the point that thorns are independent, and the interaction by thorns is governed by APIs (standards) and not just "calling each other". (Yesyes, exceptions apply.) If you program against the MPI standard, then this doesn't put any requirements onto your code, even if you are using a GPL MPI implementation. However, we wanted to be sure that there are no misconceptions and rumours amongst users, and we didn't want to inquire with a lawyer whether this interpretation is correct, so the LGPL was the easier choice.</div><div><br></div><div>-erik</div></div><div><br></div>-- <br><div class="gmail_signature">Erik Schnetter <<a href="mailto:schnetter@cct.lsu.edu" target="_blank">schnetter@cct.lsu.edu</a>><br><a href="http://www.perimeterinstitute.ca/personal/eschnetter/" target="_blank">http://www.perimeterinstitute.ca/personal/eschnetter/</a></div>
</div></div>