📜 ⬆️ ⬇️

The World of Licenses: Frequently Asked Questions about the GNU GPL License

Recently, I wrote an article called World of licenses: We are working with the GNU GPL , in which I tried to highlight the world of gpl licenses, history and differences in versions. The article caused a great resonance, many questions and disputes arose. To clarify the situation with the GPL, I decided to translate part of the official GPL FAQ . It addresses many issues and clarifies some license items. I hope this translation will clarify the situation with the GPL.

In the future, I will continue the cycle of publications about licenses describing BSD, Apache, MIT and other free and not-so licenses. In addition, I will try to raise the issue of licenses in our country. In the meantime, I suggest reading this translation.

Why does the GPL allow users to publish their modified versions?


The key to free software is the ability for users to integrate freely. It is absolutely normal when users are allowed to open access to their bug fixes and software improvements for other users.

There are other alternatives to the GPL that require modified versions to pass through the author of the original. And while the author continues to engage in support, this scheme may work in practice, but if the author suspends his activities (more or less) or does not meet all the needs of users, then this scheme will collapse. There is another practical problem: this scheme does not allow users to help each other.
')
Sometimes control over modifications is suggested as preventing collisions between different versions made by users. In our experience, it can be said that these collisions are not a significant problem. Many versions of Emacs were made outside of the GNU project, but users can tell them apart. The GPL requires the creator of the version to specify its name for it, in order to distinguish the version from other versions and protect the reputation of other developers.

Does the GPL require the source code of the modified version to be posted for viewing?


The GPL does not require you to publish a modified version or any part of it. You are free to make modifications and use them in private, without ever releasing them. This also applies to organizations (including companies); Organizations can create modified versions and use them internally without ever publishing outside their structure.

But, if you release the modified version publicly in any form, the GPL requires you to make the source code of the modified version available to users of the program under the GPL.

Thus, the GPL allows you to release modified programs only in a certain order, and in no other; but the decision to release is yours.

If I know that someone has a copy of the GPL program, can I ask you to give it to me?


Not. The GPL permits it to create and distribute copies of the program, if it so desires. He also has the right not to distribute the program, if such his desire.

Does the GPL allow me to sell copies of software for money?


Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software. With the exception of one particular situation, there is no limit on the price you can set. (The exceptions are cases when source codes are supplied separately (upon request) from the program).

Does the GPL allow me to set the price for downloading the program from my site?


Yes. You can set any price for distributing the program. If you distribute binaries via download, you must provide “equivalent access” to source code downloads by setting the price for downloading source codes no higher than the price for downloading binary files.

Does the GPL allow me to require anyone who has received my program to pay me and / or notify me?


Not. In fact, such a requirement makes the program not free. If people are obliged to pay for the received copy of the program, or if they are obliged to notify someone, the program is not free. See the definition of free software .

The GPL is a free software license and therefore allows people to use and distribute the software without having to pay someone for it.

Does the GPL allow me to distribute modified or beta versions under NDA?


Not. The GPL says your modified versions should contain all the freedoms specified in the GPL. Therefore, any recipient of a copy of your version from you has the right to distribute copies (modified or not) of this version. You cannot distribute any version that contains large prohibitions.

What does it mean when they say that two licenses are “compatible”?


In the case of combining the two programs (or their parts) in a larger work, you need permission to use both programs. If the licenses of the two programs permit this, then they are compatible. If it is not possible to satisfy both licenses together, they are considered incompatible.

For some licenses, the combination method is important. They can allow to link two modules together, but not allow combining their codes into one module.

If you just want to install two separate programs in one system, it does not matter if their licenses are compatible, because it does not mean combining them in one job.

What does it mean when they say the license is “GPL compliant”?


This means that the other license and the GNU GPL are compatible; You can combine code released under a different license with code released under the GNU GPL in one larger work.

All versions of the GNU GPL allow such combinations to be made in private; they also allow the distribution of such combinations under the same GNU GPL version. Another GPL compliant license also permits this.

GPLv3 is compatible with more licenses than GPLv2: it allows you to create code combinations that have special types of additional requirements that are not found in GPLv3 itself. Section 7 contains more information about this, including a list of additional requirements allowed.

I would like to release a program written by me under the GNU GPL, but I would also like to use the same code in non-free software.


The release of non-free software is ethical, but legally there are no obstacles for you to do this. If you own the rights to the code, you can release it under different licenses at any time.

Can a program developer who has previously released it under the GPL license further restrict its use?


No, because users have already obtained the rights to use the program under the GPL and these rights cannot be revoked.

Why is the original BSD license incompatible with the GPL?


Because it contains a special requirement that is not in the GPL; namely, the requirement for advertising programs. Section 6 of the GPLv2 says:
“You may not require additional terms from the user to violate the rights in this document.”
GPLv3 says the same thing in section 10. The advertising clause contains such limitations and therefore is incompatible with the GPL.
The revised BSD license does not contain an advertising clause that corrects the problem.

Consider the situation: X has released v1 product under the GPL. Y distributed v2 with modifications based on v1. X wants to remake v2 into a non-GPL license. Does x-y consent Y?


Yes. Y was required to release its version under the GNU GPL, as a result of the fact that it was based on v1. Nothing requires Y to agree to release its code under a different license. On the contrary, X must obtain permission Y before releasing the code under a different license.

Can I release a modified version of the GPL program in binary form only?


Not. The basic principle of the GPL is that all modified versions must be free software, which means, in particular, that the source codes of the modified software must be available to users.

Can I put the binaries on my site, and the source codes on another?


Yes. Section 6 (d) allows this. However, you must provide clear instructions for people to get the codes, and you should take care that the source code will be available as much as the binary code is distributed.

Can I use the GPL for software on devices that won't work if consumers don't pay to renew a subscription?


Not. In such a scenario, the requirement to pay limits the ability of the user to run the program. This is an additional requirement in addition to the GPL, and the license prohibits such.

Source: https://habr.com/ru/post/284392/


All Articles