10

The 4th point of Open Source Definition - Integrity of The Author's Source Code:

The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time.

Why would someone want to restrict the distribution of modified source code?

4 Answers 4

10

It means that to be considered open, a license is allowed to enforce that the original source must be transmitted unmodified (with the patch file proviso).

This is for example useful for a security application where the original version has been vetted by experts in the field but random changes may open up vulnerabilities. Grouping the diffs into patch files will allow users or other experts to check whether those changes are valid.

This has the downside that changes can't become too big otherwise the patchfiles can become massive.

6

The clause is actually a historical compromise copied from the Debian Free Software Guidelines; the latter states

Integrity of The Author's Source Code

The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software. (This is a compromise. The Debian group encourages all authors not to restrict any files, source or binary, from being modified.)

The clause was added to the DFSG to allow Debian to carry software such as TeX whose license requires (or used to?) changes to be distributed as patches ("change files") without touching the original code. (This is alluded to in the templates for questions asked to candidates in the Debian New Maintainer process.)

As to why one would want to distribute software in this way, it mainly comes down to control and preserving the ability to identify the "official" source code; e.g. for security reasons, or interoperability, or in the case of TeX, being able to guarantee that a given input document will produce the same output with different versions of the software.

3

The thing here is that restrictions to modifying the source code are only allowed, if the distribution of patch-files with the source are allowed. Patch-files are simple files that save the differences between two versions of files - especially sources for software. A patch-file can be automatically applied by common tools to create another version of a file. This provides a way to modify the sources, while keeping the originals intact.

1

Freedoms 1 and 3 from the Free Software Definition are:

The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.

...

The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Point 1 of the Open Source Definition, linked in the question, also implies these freedoms.

These mean that, to be free software, you must be freely able to modify the code and distribute it. Restricting these freedoms is usually not allowed.

However, going by the OSD, if you allow recipients of the program a way to modify how the program works and then distribute, it doesn't have to be by allowing distribution of the modified source code.

As to why someone would want to do this... I don't know. Perhaps the author is protective of how they wrote their code and doesn't want to see it mutilated in other redistributions of their software - though there's probably a more valid reason than that.

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.