Hello, I work on Pharo, an open source derivative of Smalltalk. Pharo is licensed under MIT hence most of my work needs to be licensed also under MIT.
However, time to time I have some projects in my free time that I made for my personal usage or for friends, and in those cases I am not OK with my work being used by for-profit project not giving anything back. I would very much prefer to use GPLv3 on those cases, but my understanding of licensing is very poor and I have been told there is a “virus” behavior on GPLv3 that may prevent people to use at all what I do, and that’s not my intention.
Do you have any advice how to handle this?
If some code links to your GPL library, the whole project has to be licenced GPLv3, full stop. This does not “prevent people to use [it] at all”, it just stipulates that they have to make the source available and the source of improvements they make available. Each substantial library I write in my free time is GPLv3. I want to contribute to the ecosystem and I want everyone enjoying my work contributing back to the ecosystem.
A similar licence, called LGPL, allows dynamic linking without having to make the code of the whole project available, just the code of the specific library + improvements. If for some reason you need this, I invite you to check how dynamic linking works in Pharo and read this FAQ by the FSF (and all other FAQs, it is a very clear, informative document).
Not 100% sure on the “virus” thing you mentioned but I can make an assumption.
One license type (I think its GPL3) requires any software which includes GPL3 code must also be licensed as GPL3 and thus all sources made public. You can’t take the open code, use it and then close off your own source. If I am remembering correctly
This would mean commercial applications which want to remain closed source wouldn’t be able to use that licensed code unless they were to then opensource their own code as well. So it wouldn’t prevent other open sourced, same licensed software being able to use it
Sort of. And this “viral” nature applies to all copylefted licences (GPL1, GPL2, GPL3, AGPL, CC-SA).
You can take GPL3 code, use it, and then close off your own source, as long as it’s for private purposes. What you can’t do is then distribute it under different terms. The GPL says that if you take GPL code, modify it (make a “derivative work”), and then redistribute it, you must redistribute it under the same terms that you got the original code from. So your users must have the same rights that you had when you got the original code.
Thanks for the additional clarification!
this is the “virus” thing explained (by chatgpt, heh, but this is exactly what I heard) : Inheritance and Derivative Works: In object-oriented programming, inheritance allows you to create new classes based on existing classes, inheriting their attributes and behaviors. When using GPL-licensed code, whether GPLv3 or LGPLv3, any derived classes or subclasses created within your project will be considered derivative works. As a result, if you choose to distribute or publicly release these derivative works, they must comply with the licensing terms of the original GPL-licensed code.
That’s not really a good explanation. The concept of a “derivative work” in copyright law is unrelated to object-oriented technology, and the GPL is mainly applied to non-OO code anyway.
Yeah I did make the right assumption then. I feel virus has a negative connotation though
Pharo is licensed under MIT hence most of my work needs to be licensed also under MIT.
I believe that this is not true. I thought that it is not mandatory for your work to be licensed under the MIT license in this case. Can anyone confirm this?
sorry for the confusion, I meant that I work doing Pharo, and hence the license of my work is MIT, because that’s the license chosen by the Pharo project. Of course MIT license means you can license your own work with whatever license you want, including proprietary licensing :)
You can release your other code under gpl 3 or agpl. If you or someone wants to use it in an mit licensed project you can license it to them under a special license that stipulates that it can only be used in that project and they must give back any changes. Lawyers, please confirm.