Re: [Cppcms-users] Proposal to release CppCMS 2.0 and migrate to C++11
Brought to you by:
artyom-beilis
From: Artyom B. <art...@gm...> - 2016-10-31 15:03:37
|
>>> Artyom, is it time to reconsider more permissive license? >>> [...] >>> The license of CppCMS that I use is LGPL and I had to do a lot of >>> twists to use it without static linkage. Even that, current state of >>> my setup is not satisfying. >> >> First of all is it internal release or you deliver to the SW to clients? >> > Almost all are internal, but I don't know what "SW" abbreviates to. > Maybe "Service Website"? SW - software > There is one app I made for clients (since I do outsourcing) that I > had to make it use dynamic linkage, because I think that the LGPL > requires it. > The app and source code is all theirs and not mine. It is a document > archival app. They sell the service and storage of the documents to > their clients. > Is that SW that you are talking about? > > I might have even violated your license in some way? :( > I had to ask that question before I start using CppCMS for this assignment. > You distribute your application to client with the source code so your client can build it - no need for dynamic linking as you provide means to modify CppCMS... no problems. If your client provides web service without actually delivering the bundle to his clients - keeping the software on his own server - no problem as well. If your client gives the software to his clients without giving source code or means to build it than he needs to provide dynamic linking protecting the freedom to modify CppCMS. > Maybe my confusion with all those licenses comes from the missing > understanding of the limitations they pursue and why! There is great GPL FAQ... it answers most of stuff. > >From the text of LGPL is clear that dynamic linkage is allowed and now > you say that there is a way to use it even with a static one. > technically you can even distribute compiled objects ".o" files and means to link with static CppCMS .a ... as long as you give the freedom to modify CppCMS library - of course it isn't really feasable. The "test" isn't I need to link dynamically but can I modify CppCMS library. >> IMHO most of users somewhat afraid of going to quite complex code >> and I'm not sure CppCMS has enough buzz around it to convert the >> quantity of users to quality of contributions. >> > In my own experience, contributions are a bit scary because you are > supposed to contribute fully functional feature. > An example applicable to CppCMS is that I made a bazel build for it's > trunk (see https://bazel.build), but I didn't consider contributing it > yet, because it is not fully and generally working solution. > > This reminds me of why github could be preferred and pushed by so many > people. It is easier to contribute even with half baked solutions that > get better over longer period of time. > It depends, for example Lee Elenbaas contributed a great patch for templates compiler, it come without tests and I needed to do some small fixes - but it was important and I accepted it gladly. So it isn't black and white - but yes I do want complete solutions. >> So I consider some kind of exception of typical use case of LGPL >> library - i.e. allow static linking. (like wxWindows exception) >> > I just read more for wxWindows exception. It seams the exception is > only when you deliver/destribute the binary form of the product. > Is this applicable for web framework library at all? > > After all wxWindows is cross plafrom GUI library that is supposed to > be distributed as part of a desktop application, while the web > apps/sites are hosted services. > Yes it is applicable and I explain why. If you build your own web service/site, host it on your servers - do don't need to link dynamically or even release changes you made in CppCMS because you don't distribute your software. However if you distribute some software bundle with web service based on CppCMS you need to link dynamically/provide means for modification. More than that - if you distribute a product - lets say some raspberry pi or some product - lets say a robot with embedded web interface based on CppCMS than you need not only link dynamically but also provide the **access** to the device so you can modify the dll/so, on the device itself. This is usually when CppCMS users opt for commercial license :-) Artyom |