The GPL and proprietary, closed newLISP scripts

Started by Lutz, June 20, 2011, 12:51:36 PM

Previous topic - Next topic

Lutz

There is a relevant section about this in the GPL FAQ, I think this section is fairly new. I have not seen it before:



http://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL">http://www.gnu.org/licenses/gpl-faq.htm ... reterIsGPL">http://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL



As long as the source code delivered by newlisp.org to make the newLISP interpreter is not changed or extended, the GPL is not violated. LISP code written in the newLISP scripting language is not affected by the GPL. This means you can distribute and or sell closed and proprietary newLISP scripts together with a newLISP interpreter.



This should relieve concerns many brought up in the past and I fully support the gnu.org GPL FAQ's interpretation of the license.

HPW

#1
Hello Lutz,



interesting reading and good news.

Is using the (import ...) command in scripts a 'linking' or is it allowed to be used in a non-GPL script.


QuoteThis means you can distribute and or sell closed and proprietary newLISP scripts together with a newLISP interpreter.


Thats great!



Regards



Hans-Peter
Hans-Peter

Lutz

#2
I also added a paragraph about this here:



http://www.newlisp.org/index.cgi?FAQ">http://www.newlisp.org/index.cgi?FAQ



Also reachable from the "About" option in the top menu.

m35

#3
This is a great clarification. Hopefully it encourages the spread of newLISP. :D

kolten

#4
Hi!



Great news!



Does this mean that you can use the link.lsp script and deploy your program as closed source?



How does this affect the deployment of guiserver.jar. If a script uses it, can you have closed source?



/Thanks

Lutz

#5
As long as you don't create and distribute an extended or modified newLISP interpreter or GUI server, you are fine.



When you use link.lsp  you technically modify newLISP, but the code linked  is not really closed and can easily be unlinked, decoded and read:



http://www.nodep.nl/downloads/newlisp/delink.lsp">http://www.nodep.nl/downloads/newlisp/delink.lsp



This is a borderline case as the linking and unlinking process is not obvious for a non-technical user. Apart from the legal question, linking this way is not an efficient method for closing your code. The opening key is always part of the modified newLISP executable. Originally link.sp was created to provide a method of packaging and distributing newLISP source with the correct version of newLISP as one convenient unit.



I don't see a problem using closed code with newLISP Guiserver; that falls into the same category as using closed code with the newLISP interpreter and this case is covered in the GPL FAQ. The closed code is just data to the newLISP interpreter or Guiserver and doesn't modify newLISP or Guiserver itself.

 

Alway document that your work contains GPLed newLISP and provide a link to http://www.newlisp.org">http://www.newlisp.org, where source is available for it.

kolten

#6
Hi!



Okej, let me see if I understand this correctly. My code is always interpreted and does not actually call any code directly in the guiserver, the interpreter does that. Therefor my source code is "data" and can be closed source?



If I however import some third party library that is GPL:ed, my source code is not "data" anymore, is this right? How is this different from the guiserver? To me it seams as these two cases extend the newLisp interpreter with new functionality?



BTW, what is the method of choice to close down your source code?  



Confused/Thanks

Lutz

#7
Guiserver is not 3rd party but is licensed by the same entity which is licensing newLISP. GPLed Guiserver is also not seen as a library extension to newLISP but is its own language interpreter. You talk to Guiserver via TCP/IP and a simple text based command language. Guiserver can be used with any other Lisp, Scheme or scripting language. It is shipped together with newLISP and an unlicensed file guiserver.lsp for interfacing to it, but could be used with any other language capable of TCP/IP.



So, the GPLed Guiserver can be treated the same way as newLISP, and both are licensed by the same entity.



Your script written in newLISP has a different relation to newLISP, than it has to the 3rd party library it is calling or including.



The relation of your script to newLISP, is a interpreter -> data relation, but the relation of your script with a 3rd party library or module is a library -> extends your script relation and that relation is governed by the license of that 3rd party library.



What methods are used to close program source? People encrypt their source and retrieve the key for unlocking from hardware or via some means of system activation, e.g. via the internet.