I am thinking about if it would be a good idea to change the license for Cppcheck.
For instance the MPL would be less restrictive about linking.
If there is a company that is interested to create a commercial extension then I think it would be interesting to allow that. 2-3 years ago there was a company that talked with me about such an idea. It was obviously a problem that Cppcheck is GPL-licensed. If some company wants to link cppcheck into their product to offer some better interface I think that should be allowed.
I do not want to disallow such usages.. I think that is win-win.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
AFAIK the GPL allows to dynamically link libraries into commercial/proprietary software.
What is not allowed is static linking, but i do not see why this should be necessary.
If a company wants to develop a commercial extension for Cppcheck then they could implement an open source interface and then develop closed source extensions (like closed source modules for the linux kernel).
Developing a closed source GUI for Cppcheck also should not be a problem, as long as Cppcheck is not statically linked into the GUI.
I am not against the MPL or so, but i do not understand why it is necessary.
In my experience many people do not understand licences like the GPL (i am also no expert with licences).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
AFAIK the GPL allows to dynamically link libraries into commercial/proprietary software.
What is not allowed is static linking, but i do not see why this should be necessary.
Actually, no, GPL prohibits any use with non-free components. But LGPL allows dynamic linking with some reservations (see sections 4-5 in license text). MPL seems even more permissive then LGPL and allows static linking.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
With GPL ... no company will want to link with Cppcheck for any commercial product.
I fear that it's questionable with LGPL also.
I am absolutely no lawyer but I have read a little lately .. With LGPL .. as far as I understand only dynamic linking is allowed... So you are forced to distribute the Cppcheck and your product in separate files that are dynamically linked at runtime.
The license says that it must be possible for users to modify the Cppcheck component and use that instead.
Technically.. if you write a client and want to call some function in Cppcheck then I would assume you include a Cppcheck header to get the function declaration. That technically means you statically compile some Cppcheck code into your project right? Is that allowed?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
So, basically another open source application took some of your code? Isn't that the whole idea behind open source? (apart from leaving out the copyright comments)
I would actually be surprised if a lot of open source would NOT find its way into closed source software as well.
I now see it's Tencent. That is a Chinese company. Obviously they steal pretty much everything. They don't care about copyrights and patents and such in China.
Last edit: Sander Bouwhuis 2019-09-20
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
IMO using the code in commercial, closed source software and not giving back anything or stealing the code and make it look like someone else created it is absolutely not the idea behind open source software.
IMHO open source is about giving back and improving the software so everyone can enjoy the best software possible. Lying, stealing and such things are not really useful to improve software.
Thats just my view on it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am thinking about if it would be a good idea to change the license for Cppcheck.
For instance the MPL would be less restrictive about linking.
If there is a company that is interested to create a commercial extension then I think it would be interesting to allow that. 2-3 years ago there was a company that talked with me about such an idea. It was obviously a problem that Cppcheck is GPL-licensed. If some company wants to link cppcheck into their product to offer some better interface I think that should be allowed.
I do not want to disallow such usages.. I think that is win-win.
AFAIK the GPL allows to dynamically link libraries into commercial/proprietary software.
What is not allowed is static linking, but i do not see why this should be necessary.
If a company wants to develop a commercial extension for Cppcheck then they could implement an open source interface and then develop closed source extensions (like closed source modules for the linux kernel).
Developing a closed source GUI for Cppcheck also should not be a problem, as long as Cppcheck is not statically linked into the GUI.
I am not against the MPL or so, but i do not understand why it is necessary.
In my experience many people do not understand licences like the GPL (i am also no expert with licences).
Actually, no, GPL prohibits any use with non-free components. But LGPL allows dynamic linking with some reservations (see sections 4-5 in license text). MPL seems even more permissive then LGPL and allows static linking.
I read a bit and i admit that it is not that clear that it is allowed. It also does not seem to be clearly disallowed. See for example:
https://opensource.stackexchange.com/questions/2157/is-it-allowed-to-dynamically-link-a-gpl-licensed-library-for-commercial-use
But i see the issue that companies have if they want to develop something like Daniel wrote.
So GPL clearly is not that useful.
A small change would be to make a linking exception ( https://en.wikipedia.org/wiki/GPL_linking_exception ).
But i think it would be better to switch to LGPL, MPL or so.
IMHO LGPL is well known, so i would choose that. MPL seems to be acceptable too.
Last edit: versat 2019-09-06
With GPL ... no company will want to link with Cppcheck for any commercial product.
I fear that it's questionable with LGPL also.
I am absolutely no lawyer but I have read a little lately .. With LGPL .. as far as I understand only dynamic linking is allowed... So you are forced to distribute the Cppcheck and your product in separate files that are dynamically linked at runtime.
The license says that it must be possible for users to modify the Cppcheck component and use that instead.
Technically.. if you write a client and want to call some function in Cppcheck then I would assume you include a Cppcheck header to get the function declaration. That technically means you statically compile some Cppcheck code into your project right? Is that allowed?
Aren't there an MIT license and a FreeBSD license that are more permissive? Then no one has to worry about legal non-sense.
I do not have a strong opinion about MIT / FreeBSD.
But well I do not like when companies just "steal" our code. i.e... I do not appreciate this:
https://github.com/Tencent/TscanCode/blob/master/trunk/lib/astutils.cpp
They removed our copyright and stuff and there is absolutely no indication that this was developed by us not them.
Companies can use Cppcheck in their products.. I like that. ... but not try to steal it.
So, basically another open source application took some of your code? Isn't that the whole idea behind open source? (apart from leaving out the copyright comments)
I would actually be surprised if a lot of open source would NOT find its way into closed source software as well.
I now see it's Tencent. That is a Chinese company. Obviously they steal pretty much everything. They don't care about copyrights and patents and such in China.
Last edit: Sander Bouwhuis 2019-09-20
IMO using the code in commercial, closed source software and not giving back anything or stealing the code and make it look like someone else created it is absolutely not the idea behind open source software.
IMHO open source is about giving back and improving the software so everyone can enjoy the best software possible. Lying, stealing and such things are not really useful to improve software.
Thats just my view on it.
Yes I agree. It feels best to stay with GPL. I did not appreciate that so liberal licenses would not make me happy.