14

When you put a license in your software, is it bound to all the versions of your software, or only a specific version?

If I have licensed my software version 1 under license A, and then I developed version 2 but want to apply a different license B, am I free to do so? Is version 2 explicitly or implicitly still licensed under license A?

  • I'm pretty sure this has been asked and answered before, but I can't find the previous Q&A. – Brandin Jan 15 at 6:08
  • Did you develop all of the software yourself (you own all the copyright) or are you including and redistributing other software or libraries (e.g. GPL software)? – Brandin Jan 15 at 6:09
  • 1
    If you wrote everything yourself then this should answer your question already: Can I change license of my GPL project? – Brandin Jan 15 at 6:11
  • @Brandin Thank you for the link. But that question doesn't fully answer if license A still applies to version 2 in my case. What if license A has a term that says it applies to all the upcoming versions? I haven't fully checked all the popular open source licenses for such terms. – Cyker Jan 15 at 6:44
  • It depends whether you wrote everything yourself or whether you included other licensed source code in your distribution. And if you included other open source software in your distribution, it depends on what the license of those open source libraries are (e.g. GPL). – Brandin Jan 15 at 6:51
28

Firstly, since you are the sole author you are (presumably) the sole rightsholder, so you aren't bound by the licence anyway.

Secondly, licences don't inhere in software, they attach to software through the process of conveyance. As the rightsholder, you may give one copy to Alice under the terms of GPLv2, and she may use it only under those terms. You may give another copy to Bob under 3-clause BSD, and he may use it only subject to those terms. You may give a third copy to Carol under a proprietary licence, and those terms will apply to Carol's use, and so on.

Thirdly, none of this applies to people who aren't the rightsholder; they may only do what they are permitted to do by the licence that applies to their copy. If you've licensed a copy under GPLv2, users of that copy may do so only under the terms of GPLv2, which (inter alia) requires that further copies and derivative works be licensed under GPLv2. If you've licensed a copy under GPLv2+ ("GPLv2 or, at your option, any later version") then users of that copy may do so under GPLv2, GPLv3, or GPLv2+; the choice of which they use is left to them; further copies and derivative works will have to be licensed accordingly. If you've licensed a copy under 3-clause BSD, that licence makes no requirement for the licensing of derivative works, so users of that copy will have considerable latitude in choosing how to license any derivatives they might develop.

And as ever, IANAL/IANYL.

  • The OP may actually want to be binding someone else. It can easily vary by version. Java 11 is radically different to Java 5. – mckenzm Jan 16 at 7:18
6

As I understand it (I am not a Lawyer)

A license is a grant of permission from the copyright holder(s). Licenses may be given/sold to an individual user or (as is the case with FOSS licenses) offered to anyone who receives a copy of the work.

If the work is purely yours then you are free to release new versions under whatever license you like.

The tricky bit comes when you start accepting contributions from the community. Absent evidence to the contrary the normal assumption is that copyright of such contributions remains with their authors and the contributions are released under the same license as the project they are contributed to.

The end result of this is that a project like the Linux kernel is virtually impossible to re-license. The terms of GPLv2 require derivatives to be released under the same license terms and the list of copyright holders is way too large to make getting permission from all of them a practical proposition.

Many projects have "or any later version" clauses in their licensing statements. This allows the author of the license to release new versions of the license and then the projects covered by such clauses can move up to newer versions because they have (implied) permission from their contributors to use the code under "any later version" of the license.

Many projects also have some form of "contributor agreement" where contributors agree to either hand over copyright of their contributions to the organisation that created the project or agree to grant the organisation that created the project permission to use the contributions without the normal licensing restrictions and hence to re-license the project as a whole.

Such asymmetric arrangements are of course controversial, especially when there are proprietary releases involved.

  • Are you sure all the commonly used software licenses are agreements working in one-way, which means they only restrict the licensee, but not the licensor? I think that would be rational, but I haven't double checked all of them. – Cyker Jan 15 at 12:36
  • 1
    I can't say I've checked every single open source license either, but I have never heard of such a thing and I am doubtful (though again IANAL) it would be enforceable if it did. – Peter Green Jan 15 at 12:46
  • (to clarify the above comment applies to licenses that are granted to the general public, propietary licenses granted to specific licensees do sometimes include terms that restrict the grantor, for example an exclusivity clause) – Peter Green Jan 15 at 13:26
  • 2
    @Cyker Regardless of what license you use, the licensor has all rights by virtue of being the owner. A software license is simply the owner granting some of those rights to other people so they can use the software too. The license doesn't apply to the owner. If it did, you'd end up in all sorts of non-sensical situations, like a "no derivative works" license prohibiting the owner from continuing to develop his own software. You'd also be entering into a legal contract with yourself, which generally isn't recognized as a valid thing. – bta Jan 15 at 16:51
1

It's actually better than what you suggest in the second paragraph of your question.

You're the owner of the copyright in the entire software package. (Let's leave patents to one side, because they unnecessarily complicate matters here).

It is your personal property. You own it. You don't need permission to use it.

You've probably heard that intellectual property rights- including copyright - are "negative" in nature.

That means that everyone else needs permission to use your software. That's all the license does: grant a permission to others to use the software, and any conditions of that permission. So much so, that when you read the word "license" in this context, you can read it as the word "permission".

So that means you can licence version 1 to different people using the GPL, Affero, any other open source software license or using a proprietary license. A different license for each person if you want. Any licence you like. It's up to you.

Likewise, with version 2. Choose a different license for different people. Depending on the colour of their hair if you want. There's no implicit or implied licence between version 1 or version 2. That's because it's your property.

There's an explainer on software licenses that covers this in more detail if you're interested here: https://hallellis.co.uk/blog/software-licences-explained/ (disclosure: I wrote it), with some licensing tips. It might clear up some misapprehensions.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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