0

I have a personal project (in C++) I've been working on that I'm thinking of putting on Git hub. I'm finding the question of picking an appropriate license quite daunting. Part of the project is an editor which I think would work well with a GPL license, but the editor is driven by a set of core modules for rendering and layout which would by themselves work best under something like LGPL, since I can see other programs wanting to link to this library.

One drawback of using two different licenses is that I've effectively got two projects I'm developing at the same time that are tightly bound to each other. This would make compiling trickier and also create problems if I ever decided something I initially put in the GPL project should be moved to the LGPL project.

Then again, I could just put everything under a permissive license like MIT which would solve access issues (lots of developers won't touch GPL with a 10 foot pole), but would also mean that some third party could make their own closed fork of it.

I'd appreciate hearing any advice folks have on choosing a license. The main aim of this project is to create a simple open source editor people can download and use for free, but also provide access to the rendering libraries so a third party apps can take a file the user created in my editor and draw with the same rendering engine.

2

Different parts of a project can definitely be under different licenses. This occurs already when you use a third-party library that has a different license than your code.

It is even possible to have those differently licensed parts in a single repository, but then you have to clearly indicate which files/directories belong to which part and what license applies to them. This makes things a bit trickier license wise but not necessarily with regards to compiling.

With regard to moving code from a GPL-licensed part to a LGPL-licensed part of the project, as long as the code in question was written entirely by you without contributions from others, you can freely take it out of the GPL code, change its license and put it into the LGPL code. That is a right you always have as copyright holder. If the code in question did receive contributions, all contributors/copyright holders must explicitly agree to the change in license.

Another option is to use the LGPL for the entire project, including the editor itself. The main difference with a GPL editor and LGPL rendering and layout libraries is that this would allow the editor to be turned into a library and used in a larger, closed-source, application.


One drawback of using two different licenses is that I've effectively got two projects I'm developing at the same time that are tightly bound to each other. This would make compiling trickier [...]

Actually, the fact you have two projects does not come from using two different licenses, but rather from the wish to make the rendering and layout libraries usable independent from the editor application. This is what adds the small complication to your build process that you can't dump all files in a single bucket but have to decide what belongs to which module/library. But if you want to be able to maintain your project long term, you should do that kind of code organization anyway.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.