14

Sometimes in regards to open source/free software I read about a 'right to fork'. What does it mean? Why is it relevant? Does all open source support this right?

9

The right to fork refers to forking as in taking a software project and maintaining it separately from the original. Having the right to fork a work means having the right to modify your own copy. In the context of freely distributable works, the right to fork means having the right to redistribute modified copies.

The practical importance of the right to fork is that is you don't like the way the original author maintains the work (not fixing the bugs that bother you, not adding the features you wany, etc.) then you can do what you like with your own copy. Having the source (i.e. the prefered form of modification) is critical there, since it is the only practical way to fork a work. A right to fork without having the practical means to make use of it, i.e. having the source, would not be very useful.

The combination of being allowed to and able to modify the source and the right to redistribute allows anyone who's interested to take up maintenance. This is a guarantee that free software and other open source works won't die as long as someone somewhere, anywhere, is willing and able to take up maintenance. It's also a guarantee that if someone dislikes the way the project is maintained, they can make their own version if they're willing and able to invest the requisite effort or get someone to do it.

All libre/free/open-source licenses grant the right to fork. This is sometimes known as the “fork test” for software license. It is freedom 1 in the Free Software Definition, guideline 1 in the DFSG, clause 1 in the Open Source Definition.

5

Being allowed to fork a piece of software simply means that you're allowed to redistribute a version of the software with changes you made, even if they're not merged back into the original piece of software. All free/open source software allows this: a free software license allows you to redistribute the software, even if you change it. As the Wikipedia page you linked mentioned, this can also happen with proprietary software: all you need is an appropriate license from the original authors.

In effect, any time you distribute software with a change you made, you're forking it, even if the intent of the fork is to be short-lived. This happens quite a lot: think of someone fixing a bug and asking other people to test the fix, or distributions shipping backported security fixes which aren't released as separate releases by upstream...

For most people though forking would mean creating a new project based on the old one, with separate hosting etc. and an explicit intent to diverge if necessary. All free/open source software allows this.

  • 2
    The right-to-fork is something that is not related to the timing of the distribution of the forked code. You mention 'distribute' multiple times in your answer, but the fork happens before that. In fact, you can fork the code and never distribute it. – rolfl Jun 25 '15 at 10:47
  • @rolfl That's an interesting point, I was thinking of an externally-visible fork. The question then is whether right-to-fork is just right-to-modify-without-oversight (the desert island test) or right-to-modify-and-distribute. (In my mind "distribution" exists as soon as the code is visible by more than just the person modifying it.) – Stephen Kitt Jun 25 '15 at 11:25
2

The right to fork is essentially the same as the right to derive. They both grant the user a right to develop your work further.

The right to fork specifically has come about from hosting platforms like GitHub, whose primary deriving mechanism is forking. It's simply a different version of right to derive that makes more sense for our current ways of distributing.

All open source licenses must grant this right to be considered open and/or free. One of the essential parts of the definition is that other people must be allowed to use your creation: this is the right to derive, or right of derivation, right to fork, right to develop, etc. Denying this right means your project can no longer be officially considered open source.

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.