We have seen a lot of open source project on GitHub. But what would happen if someone fork a project and modify & improve from it? For example, if an original open source project creator states that the software license is free for use only for personal or non-profit project. But someone fork the project, modify & improve the project and says it is 100% free to use for anyone.

Which license should be followed?

  • 10
    It depends on the license of the github repository. Without knowing what that license is, it's fairly hard to give a specific and elaborate answer.
    – Zizouz212
    Commented Oct 26, 2015 at 1:55

5 Answers 5


An open source project is a project where you receive some license that meets the Open Source Definition. A license is a sort of contract* that permits you to do certain things with the work. Without a license, you are not allowed to do anything. There are many different licenses that meet the open source definition, that are all different in what you can and can't do.

The open source definition doesn't allow for licenses that discriminate against persons, groups, or fields of endeavor. That means that a project that has a license that is free for use only for personal or non-profit use is not an open source project at all.

Wheter it is possible to re-publish some work under a different license depends on the exact license text. In the case you describe, it's almost certainly not the intention of the original author for this to happen, but if they wrote their own license, mistakes like these often creep in (see: How can a "crayon" license be a problem? )

If the person re-distributed the software in violation of the original license, take a look at What happens if stolen software is published as Open Source?

*There are differences between a contract and a license that for the purpose of this question I'm glossing over, because the difference is irrelevant for the scope of this question


Open source/free software licenses work by leveraging copyright. In a nutshell, the creator of a work (or whoever paid for the development) has the right to allow (or not) others to copy the work (thus the name). One of the rights reserved is the right to create derived works, i.e., create modified works based on the original. Open source/free software allows the copying under some conditions, instead of asking for payment. This whole is much more complicated, but the preceding description will have to do.

In the case described, if you publish something under the condition of personal use only, and don't give me the right to create derivatives, I can't change it. If you give me the right to create derivative works, essentially your work is yours and my modifications are mine. If you allow me to distribute derived works, your part is under your license and my part under mine. Thus open source insists that any derived works must be possible to distribute under the same license as the original (imagine the mess that could be created otherwise). By adding to the original and distributing it, you agree to those conditions.

Check out the open source definition, also check the view of the Free Software Foundation.


It is not allowed to distribute software under terms which are more permissive than those under which you received them.

When someone licenses a software "for non-commercial use only" to you, you can not remove that restriction when redistributing parts of it. When the original license allows it (it's not a share-alike license like the GPL), you can add additional restrictions to your modifications, but you can not remove restrictions placed on the original code which is incorporated in your work.

Otherwise, this would be a huge licensing loophole. You have some restriction in your license I don't like? Then I just form a shell company, have that company change one line of code, and then license it to my real company under new terms with that restriction removed.


Licences are a predefined set of rules you (the creator of the software) want the users of your software to follow. And by users, I mean final users, but also people who want to use your code in their own code.

So if you change an existing software, in legal terms, you create a derivative work, which means the way you can redistribute it depends on the licence of the original work, hence, the original software.

So there is no definitive answer to your question. The best answer is: it depends on the licence of the original code.

For example, if the original code is licenced under the GPL licence, your modification must be distributed under the same licence. But if the original code is distributed under BSD-licence, you can choose any licence you want for your modified version.


Short answer: The licence of the fork you are using. E.g. OpenOffice (Apache 2.0 License) was forked into LibreOffice (Mozilla Public Licence v2.0/LesserGPLv3). The license to follow depends on the branch you use. In this case, OO code can be incorporated into LO (compatible licenses), but not the other way around.

Say A is distributed under the MIT license, gets forked and the fork distributed under GPL as B. This is something MIT allows, i.e., the licenses are (one-way) compatible.

You can use A under MIT, B under GPL. Legally, they are now independent code bases, each with it's own license conditions. That is precisely the reason why copyleft licenses insist on derivatives being distributed under the same license.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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