In software development, a fork is a new application developed from an existing one. When an application is "forked," it creates a new, separate program, rather than a new development branch. Open-source project forks are more common than proprietary software forks, but both are possible.
Because open-source software may be freely distributed and edited, anyone can legally fork an open-source application. The codebase of any open-source program or operating system may be used as the basis of a new project. Most Linux distributions, for example, are forks from earlier Linux-based operating systems. Because of Linux's popularity and open-source code base, hundreds of Linux forks exist.
Examples of applications created from forks of open-source code libraries include:
- LibreOffice, from OpenOffice.org
- Collabora Online, from LibreOffice
- Calligra, from KOffice
- Basilisk, from Firefox
Since the source code of proprietary software is protected by copyright, outside developers cannot fork a commercial application. However, a developer may wish to fork an application to create a slightly different version for another purpose. For example, a developer may fork an image editor to create a read-only image viewer that prevents users from modifying files.
NOTE: Unlike a mod, which alters or adds features to an existing application, a fork is a new, distinct program with a different name.