I've done a lot of research on this, but I'm still quite confused.

I'm currently working on an Arduino-compatible software project. The project is open source, so I want others to make use of it as well, but I don't want them to create derivative works with closed-source licenses. I would like them to acknowledge any code used by them from my project as deriving from my work and would require them to keep their derivative work open source as well.

At the same time, I may want to create works in the future that build upon my project that are closed-source - for example, I wish to be able to use my own work in a piece of private, closed-source consultancy.

I think that GPL would be the most appropriate license for the first part. My question is, what license would cover the second part? And can I dual license that license with GPL?

2 Answers 2


As the copyright holder, you can do whatever you wish with your own code. Nothing prevents you from closing your own source in your own projects, if you hold the copyright.

Use whatever closed-source license your lawyers say is appropriate for your needs. Your existing GPL licenses should be unaffected.

Note that you cannot close the source of any code that was contributed by someone else to your GPL'd project, since you don't hold the copyright to that code.

  • 8
    There's only one caveat with this: If you publish code under a copy-left license such as the GPL and then accept external contributions under that license, you are no longer the sole copyright owner and cannot include the GPL-licensed contributions in the closed source version. The usual way around that is a contributor license agreement where contributors grant the project maintainer a more permissive license, though this will drive away potential contributors.
    – amon
    Sep 23, 2016 at 19:21
  • 2
    @amon: Agreed. This is how Xamarin does it; contributions to the Xamarin project require assigning copyright to Xamarin. Sep 23, 2016 at 19:55
  • If you have a dual licensed GPL + Proprietary licensed project, and someone contributes a GPL licensed contribution to your GPL project. Can your proprietary project still make use of the GPLed contribution without the GPL contribution infecting the proprietary portions? If not, this might explain why some dual licensed projects like Gitlab doesn't use GPL for their CE edition... Apr 19, 2018 at 4:04

For open-sourcing your code for others to use, you're right that GPL will make sure that people can't create closed source derivatives. GPL will force them to share their derivatives under the same GPL licence.

Bear in mind though that GPL might put others off using your code. If they make any use of your GPL code in their project (for example linking to your library) GPL will force them to open-source their entire project too when they distribute it - this is why GPL known as a viral licence. LGPL may make your code more useful to others, while still protecting your work.

For your closed source work, there's nothing wrong with also licensing your code (code that you personally wrote and own the copyright on) with a private licence (e.g. as part of a consultancy contract). However, you have no right to do this with someone else's (e.g. a contributor's) code unless you've got a separate agreement with them.

  • "GPL will force them to open-source their entire project too when they distribute it" you mean to open source it under said GPL I assume. Dec 18, 2016 at 13:16
  • 1
    Thats right, as the first paragraph mentions: "GPL will force them to share their derivatives under the same GPL licence"
    – ramin
    Dec 19, 2016 at 9:33

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.