I've written a library that I use in closed-source project. After a short discuss with my boss we have decided that this library can be useful for many others and we made this library open source under LGPL v3.

Can I still use my own code of this library in our closed-source project? Can I change it without making changes public under LGPL?

The idea is that I've made the general code of the library public (and it is working as-is), but some specific and confidential features like encryption algorithm I want to remain in our closed repo.

So I am a little it confused: on one hand this code is under LGPL now and every modifications must be public under LGPL. On the other hand - I am the author of this code and I want to use my own code without making it all public.

It is not bad projecting of module. Let's say I want to delete 'encode();' and 'decode();' lines from public repo and keep them in out private one.

And I want to synchronize them. Can I use code commited by others?

Or it is worth changing licence to BSD just not to have this headache?


As the owner of the copyright, you can do what you want with your code.

It is others who are bound by the licence(s) under which you distribute the code, because they accept those licences when they receive the code (strictly, when they do something for which they have no permission if they don't accept the licence). You yourself can do what you like with your code; issue it under many licences, or none; sell it or give it away, or do both. It's up to you (or, if your employer owns the copyright (as is usual), up to them).

If, however, you want to incorporate code contributed by others into your codebase, what you can do with the resulting product will depend on what license the other contributors decide to use. If you have distributed the code under only one licence, then usage of their work will likely be on those terms, and you must honour them in turn when it comes to the codebase that incorporates their changes. If you have distributed under many, then you will need to clarify with contributors, either through an explicit licence, or through a copyright assignment.


Your code is your own, you can use it in closed products while giving away copies under e.g. LGPL. Just be clear that if I take your code and modify it under LGPL (e.g. to fix bugs) you are not allowed to take my changes (under LGPL) and use it in the closed product. You might ask everybody to write over their rights to their changes to you, but that'd very much make me (and many others) think thrice before touching the code.

  • 1
    both your and @MadHatter answers are helping to deal my doubts. But his answer arrived 1 minute before yours, so I'll accept his one. Nevertheless thanks for clearing this out. – ElDorado Mar 22 '16 at 9:02
  • 4
    This isn't completely true, I'm allowed to take your (LGPL licensed) changes and use them in my closed product - what I'm not allowed to do is then distribute my product. The Affero licence exists to cover this gap with regards to Software as a Service. – Eborbob Mar 22 '16 at 13:20
  • Wasn't there actually a question in this StackExchange on this topic that stated that inserting a term which indicates the other contributors need to give up the rights to changes to the original owner is quite a standard practice? Not sure if this is fair but it sounds quite commonplace. – xji Nov 8 '16 at 22:59

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.