Hacker News new | ask | show | jobs
by CCs 4738 days ago
CppCMS license is LGPLv3 - not too company friendly.

CppDB on the other hand is MIT or Boost. It is the best DB library I found so far for C++.

5 comments

> CppCMS license is LGPLv3 - not too company friendly.

Actually LGPL is as 'free' as it gets with the GPL license family. If I wanted to be 'company unfriendly' I'd choose the AGPL.

But the thing is: Arguing about licenses is nonsense. The developer has an agenda and chooses the right license for it.

For me if I release open source I almost always license it under GPL3/AGPL because I don't want someone to take my code, stuff it into a closed system and make money of it. If I decide to contribute to the open source community I don't want leeches to profit from it.

If you want to use my code commercially: pay me.

How is LGPL not company friendly? It allows you to make all the changes you want for your own web site without having to distribute source code. If CppCMS is designed as a library, you can even use it in proprietary applications.
1. It is limiting: no static linking or you have to distribute re-linkable object files (LGPL section 4.d.)

2. It is long and complex license, not yet tested in court. Sometimes what constitutes a "derivative work" is not that clear.

3. Section 6 says all these can be changed anytime, potentially making it more restrictive (see GPL v3).

So from the business viewpoint it is better to find an alternative now than to potentially lose all the investment later.

1. It is limiting: no static linking or you have to distribute re-linkable object files (LGPL section 4.d.)

Static linking is fairly uncommon; it's more common to distribute the versions of DLLs you require on Windows, or use a package dependency on specific versions (or provide your own copies) of the system-provided libraries on Linux.

3. Section 6 says all these can be changed anytime, potentially making it more restrictive (see GPL v3).

Section 6 of LGPL3 does not say that; it says that you have the option of choosing a later version. Any code released under "GPLv2 or later" can still be used under GPL2.

https://www.gnu.org/licenses/lgpl.html

The LGPL doesn't apply to network distributed software. Working with this software via an API (i.e. HTML) doesn't mean you need to do anything.

These kinds of licenses are put in place so people can't create proprietary extensions/patches and fracture a community. Now, I'm not saying this is better than MIT, but at least deters people from that.

1. will only matter if you are distributing binaries to clients/customers, which generally isn't the case with a SaaS product.

It does limit your future options.

GitHub started out as SaaS and now offers Enterprise product https://enterprise.github.com/

CppCMS also offers commercial licensing. Don't get me wrong, I love BSD and MIT software, and release some of my own code under permissive licenses, but it really bothers me when someone complains about the GPL or LGPL because they want to free-load off of others' hard work. The LGPL is a very commercial-friendly license!
I really like the fact that Linux is GPL, the license served the community well. For large, stand alone apps it makes sense.

On the other hand I try to avoid GPL/LGPL for components.

Here is a scenario:

1. Invest in developing your app based on CppCMS

2. It takes off, great - buy commercial license.

3. The next version of LGPL gets more restrictive, you're stuck with commercial license.

4. Artyom gets hired by Google/Apple, no time for CppCMS anymore; only the LGPL fork gets fixes from now on.

5. Throw away your investment (time and money), start learning something else - how cool is that?

I like to release my libraries and tools under the BSD license, and I like to use others' permissively licensed libraries and tools in my own proprietary/commercial/closed applications.
How is LGPL not company friendly? As CppCMS is to be used on the server, there's no requirement to redistribute code, so the redistribution requirements of the GPL and LGPL don't apply to anyone except internally to the company.

And even if the company chose to open their source and distribute it, using dynamic linking allows them to choose any GPL-compatible license they like.

I don't see how it's "not company friendly."

Since Blizzard use LGPL in their flagship product Starcraft 2[1], I would consider your statement to be verifiable false.

[1]: See the end of the credit from SC2 HoTS

> CppDB on the other hand is MIT or Boost. It is the best DB library I found so far for C++.

Have you evaluated Code Synthesis's ODB?

> Have you evaluated Code Synthesis's ODB?

I did not test ODB yet, but I'm planning to. Not fan of their license tough...

Are these key-value DBs like LevelDB / BerkeleyDB / etc? or maybe something more sophisticated?
Both CppDB and ODB are abstraction layers between your code and SQL (Postgres, mySQL etc). ODB is somewhat closer to ORM.

CppDB uses MIT or BSD license (you pick), ODB is under LGPL or commercial license.