Re: SWI-Prolog is open source
Michael Ben Yosef <[email protected]>
| Newsgroups | gmane.comp.ai.prolog.swi |
|---|---|
| Message-ID | <CABnaNcrn3t2CfZoDBnfNwEV4=9VcPc7m5aYB864ubd=C-z1uKQ@mail.gmail.com> |
I also agree with everything Paulo Moura says, even though I am in the camp that wishes SWI-Prolog would stay closer to ISO Prolog. But I think there is something that needs to be clarified and this is a good opportunity to do so. Quoting Paulo: > This document includes the following sentence: > > "And, of course, SWI-Prolog is open source, so you are free to fork it under the conditions of the license." > > Is worth repeating: SWI-Prolog is open source. This means that: > > - Jan is sharing the source code of his hard work (it didn't have to) > - Jan choose an open source code license that allows others to use, modify, and redistribute changes to his work (it didn't have to) Although the last point is technically correct, it is actually not possible to create a "usable" fork of SWI-Prolog under its current license conditions. I mean that such a fork would not be "usable" in the sense that any Prolog source code in the system that is modified by the forker would have to be released under the GPL, meaning that the forked Prolog system could only be used to develop GPL-licensed software. This is because SWI-Prolog's linking exception (reproduced below) does not grant the right to extend itself to third parties (http://www.swi-prolog.org/license.html): --QUOTE-- As a special exception, if you link this library with other files compiled with a Free Software compiler to produce an executable, this library does not by itself cause the resulting executable to be covered by the GNU General Public License. This exception does not, however, invalidate any other reasons why the executable file might be covered by the GNU General Public License. --UNQUOTE-- Since modifying and redistributing a Prolog source code library from SWI-Prolog is *not* linking it "with other files compiled with a Free Software compiler to produce an executable", the exception does not apply and so the GPL does. The GPL regards such a modification as a "work based on the Program" and so the redistributed version must itself be released under the GPL. Some projects use a GPL linking exception which explicitly allows itself to be extended to derivative works. For example, the special exception of the GNU Classpath (http://www.gnu.org/software/classpath/license.html), which is reproduced below, does this in its last two sentences (emphasised by me): --QUOTE-- Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. >>>If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.<<< --UNQUOTE-- In keeping with the spirit of Paulo's message I want to emphasise that Jan (or, more precisely, the University of Amsterdam) has the right to release SWI-Prolog under whatever license he (or it) wishes. We are all, I'm sure, grateful to be able to benefit freely every day from Jan's incredible work. Furthermore, I think we can all agree that making an open source project harder to fork in this sense is not an unreasonable thing to do. Nonetheless, Jan, it would be helpful if you could clarify if that is indeed part of the intent behind SWI-Prolog's special exception as it currently stands. If not, adding a few words to it, to the same effect as those two sentences in the GNU Classpath license above, might help us pedants sleep a bit better at night. :-) Kind regards, Michael