Licensing – Using BSD and GPL in One Project

bsd licensegpllicensingmit-license

I am an author of project, that consists of two parts: daemon and library.
I want to license library under BSD License (or MIT, will decide later), and daemon under GPLv3.

I want to permit the library to be linked into closed-source products, but I want daemon to be GPL, as it uses GPL code heavily, and I do not want its commercial forks.

The thing is: This library just provides client interface for the daemon, where daemon acts just like sort of server.

Is it permitted to license my project using separate licenses for different parts of my project, linked with some sort of RPC protocol?

Best Answer

Developing your library and daemon as one project, but releasing them under different licenses is probably fine, but I would advise against it. Unless you have a very clear project structure that separates the sources of both parts, you are likely to run into a situation where it becomes unclear which part a particular source file belongs to. And even if you do have a clear separation, the situation is less clear for common files. It is possible that it can be argued that those files are dual-licensed, which might make the GPL apply effectively also to your library. You should consult a lawyer to get that cleared up.

A better alternative is to split the library and daemon into two separate projects (both maintained by you), where the daemon project depends on the library.

It is certainly possible to use BSD-licensed libraries in a GPL-licensed product. Most BSD-style licenses are compatible with the GPL license, which means that you can legally distribute a product that uses both GPL and BSD-licensed parts. If parts are GPL, the entire product must comply with the restrictions set out in the GPL, but that does not affect (separately obtained) copies of the (BSD) library.