loading...

Move from one licence to another

rumeshmadhusanka profile image Rumesh Madhusanka ・1 min read

Suppose I create an open source software and distribute it under a particular license. After a while, if I want to change the licence to more restrictive open source licence how can I do that?

Is there any particular procedure to follow?

Discussion

pic
Editor guide
 

You attach a different license to it and that's that. Unless your original license said something evil like "this will expire in a year and you have to re-license" then anyone who has a copy of your software up to that point will still be able to use that version under that license.

New versions can be covered by whatever license you like and there's also nothing to stop you from distributing something under multiple licenses at the same time. For instance, you can say X Software is available under GPL and a commercial license for people who don't want to commit to GPL. Or you can say it's open source for educational purposes or for people whose names start with "N", but if you're a company or your name starts with "R" then you have to pay an annual fee to use it.

I'd suggest you don't do that, but if it's your software, and you haven't given away or sold the rights to it, you can do whatever you want.

 

While this is a good answer, it makes one assumption it forgets to mention: that nobody else has made code contributions in before the license change.

If there have been contributions by someone else than you, things get more complicated. Well, you can still do all of the above if every contributor agrees.

If you don't (want to) get permission from all contributors, it suddenly depends on the original license. If that was the MIT license, for example, you can still do all of the above as long as you also include the MIT copyright and permission notices. On the other hand, if the original license was a GPL version, there's probably just about nothing you can do without permission from all contributors.

A contributor agreement can help with getting permission for changes ahead of time when people contribute code. They're not common outside of the really big projects, though.