I want a software that I'm starting to be open ? and I've seen that the GPL could work for me. I know that the GPL licenses force the programmer to distribute the source code and also that works on that code must have equal or less restrictive licenses, also that this is free and derivative works too.
Currently I understand that there is version 3 of the license, but there are issues that I still do not understand about this license, such as its relationship with software patents (and the whole problem of Europe vs. USA) and what is the difference with GPLv2 .
So I have this doubt. If GPLv3 is based on GPLv2 and is compatible, what is the difference? If you can explain the full license it would be excellent ?
The definitive text of the GPL license in its third version (GPLv3) was published on June 29, 2007 by the Free Software Foundation .
This is an important change if we take into account that the last revision of the GPLv2 dated from 1991 and that the legal and technical scenario related to free software has changed considerably in all those years.
At the 2nd International GPLv3 Conference on April 21, 2006, Richard Stallman explained, using colloquial language, the main changes of GPLv3.
A little history
The GNU project, founded in 1983 by Richard M. Stallman, aims to build a completely free computing environment. The "weapon" used to obtain this conquest is not a computer program, but a piece of legal text, a software license that has become something like the basic constitution of the movement called "copyleft", because the workhorse in all this is the by all well-known copyright (rights of author). In reality, all software is copyrighted from the moment it is published . Free software is no exception. Software is free because whoever has the copyright decides to publish it under a license that makes it free. This is therefore a legal issue, not a programming issue.
That is the raison d'être of the GNU General Public License, a license designed to grant the freedom to use the programs for any purpose, study how they work, adapt them to one's own needs, copy them without any limits, improve them and distribute the improvements. The only essential condition of the license is that when you redistribute the program or its derivative works, it remains free. This copyleft license today has an impact not only in the field of software, but there are already numerous licensing experiences for musical works, writings, videos, websites and even university theses published under similar terms.
In 1991, the Free Software Foundation published GPLv2, the license that accompanied much of the Free Software movement for more than 16 years. It is this text, and not the code or the virtues of any programmer, that makes software free. The issue is legal, not technical.
It would be unfair to talk about GPLv3 without first acknowledging GPLv2's enormous merits and contributions to Free Software as we know it today. This license, and in particular the fact that it is copyleft, is what has made it possible to cultivate solid communities around computer programs, knowing that there is legal support that will guarantee that all the software we release will continue to be free no matter what. by which hands it passes or who modifies it.
Why a new GPL version?
The main reason is that today there are a series of threats that put freedom at risk that did not exist or were very incipient at the time of publication of GPLv2 and therefore are not covered by it. On the other hand, the Free Software community has grown tremendously since those early years.
GPLv3's mission is the same as its predecessors: Preserve Freedom.
In this revision, the FSF has not proposed any other mission than to continue fulfilling this objective and no other. In fact, changing from one license to another is not an obligation and there will be no problem with those programs that continue to be distributed under previous versions. The fact that GPLv2 and GPLv3 are incompatible with each other (like all copyleft licenses) does not prevent several programs with these different licenses from being distributed together. GPLv2 will remain as current as before. But now the community will have version 3 to defend itself against a series of threats that have appeared in recent years.
Main changes
In GPLv3 there are three major areas of change according to Stallman himself (see link above). One refers to Tivoization , another is related to software patents and the other is linked to compatibility with other Free Software licenses.
1. Avoiding tivoization
Tivoization, is a term coined by the creators of GPL. Tivo is a digital television recording system that runs software under the GPL - of course, free. - Tivo complies with the license specifications, however, it has managed to prevent the exercise of some freedoms, even without violating the license . That is what is called tivoization.
That is to say, a legal trick in which, faithfully complying with the GPL, a system is implemented that prevents, in practice, people from modifying the program and running it again on that hardware. This is achieved through digital signatures that ensure that only "signed" software is executed by the machine. When someone exercises the freedom to modify the program, the hardware does not validate it and makes its execution impossible.
GPLv3 had, from the beginning of the discussion, a major focus on solving the problem of DRM, digital restriction management systems designed to limit what people can do with their computing environments. These systems are becoming massively popular and it is almost impossible to get digital music players, mobile phones or digital recording systems that do not contain them. On the other hand, skipping them is becoming an illegal action in many countries (the US Digital Millennium Copyright Act is the flagship legislation in this field).
The new version of the license ensures that people can remove these limitations without legal risk. GPL v3 does not prohibit DRM or the development of any other applications of that nature. It simply ensures the freedom to remove them through a legal mechanism that literally limits “tivoization”.
Version 3 of the GPL was designed to prohibit tivoization. It does not prohibit malicious features of the code. It does not prohibit modifications to the code so that the software reports what the user does. It does not prohibit changing the software so that it refuses to copy things or has no copying features at all. What it does prohibit is blocking the user from making other modifications.
When people distribute User Products that include software under GPLv3, section 6 requires that they provide you with the information necessary to modify that software. "User Product" is an expression that is defined in a particular way in the license; examples of User Products are portable music players, digital video recorders and home security systems.
Does not prohibit DRM
The license allows you to use software released under the GPLv3 to develop DRM technology of any kind you like. However, if it does, Section 3 says that system cannot be considered an effective technological "protection" measure, meaning that if a person removes the DRM, they will be free to distribute their software as well, without the DCMA or similar laws pose any obstacle.
As usual, the GNU GPL does not limit what the user can do with the software, it just prevents them from imposing restrictions on others.
2. Patents and licenses
The other big issue that GPLv3 addresses is that of software patents. Computer programs are covered by copyright throughout the world, however, in some countries, notably Japan and the US, it has become possible to register ideas implemented in software under the patent system. Thus, it is not surprising to find in those countries patents on the double click or on some specific mathematical algorithm.
Software patents in this sense are a threat to the preparation and distribution of programs. They could be a minefield for software development and innovation.
GPLv3 approaches this problem by considering that the only way to ensure freedom is by abolishing software patents where they are already implemented and preventing them from being implemented in those countries where that problem does not yet exist.
A software license cannot solve this problem. You can, however, try to do some damage control. That is why GPLv3 in its section 10 has an explicit patent protection called "patent retaliation clause" to ensure that users and/or redistributors are not prosecuted when they use, modify and redistribute free software. If someone decides to sue on patent grounds anyway, Section 8 explains that they would lose their license and any patent license that went with it.
Unlike GPLv2, GPLv3 contains an explicit patent license that attempts to protect the user from the consequences of agreements between patent holders and GPL licensees.
license hardware
Any material good that may be covered by copyright can be licensed under the GPL. GPLv3 can also be used to license material covered by other laws similar to copyright; for example, semiconductor masks. Thus, for example, you can publish under the GPL the graphic design of a physical object or a circuit.
In many situations, copyright does not cover the material manufacture of hardware from a graphic design. In such situations, your graphic design license does not exercise any control over the manufacture or sale of the hardware, whichever license you use. In those cases where the copyright does cover the manufacture of hardware, for example IC skins, the GPL is useful.
3. Compatibility between licenses
Let's think about this scenario: we have two programs both published and we want to combine them. How will the combined version be distributed? Well, one program says that its original plus the modifications file must be distributed, but the other says that it must be distributed in the same way. It is impossible for both to be "the original" in a new distribution at the same time. This creates in many cases license incompatibility.
With GPLv3 you can combine code released under the other license with code released under the GNU GPL into one larger program.
All versions of the GNU GPL allow such a combination to be done privately; they also allow distribution of such combinations as long as they are released under the GNU GPL. The other license is compatible with the GPL if it also allows it.
GPLv3 supports more licenses than GPLv2; allows you to combine with code that has certain additional requirements not listed in GPLv3 itself. Section 7 provides more information about this and includes the list of additional allowable requirements.
Other important changes
Since GPLv2 was written before peer-to-peer distribution became popular (bitorrent), it is difficult to meet its requirements when sharing code this way. The best way to ensure license compliance when distributing object code under GPLv2 would be to include all the corresponding code in the same torrent, which is very expensive.
GPLv3 addresses this problem in two ways. First of all, those who download the torrent and send data to others as part of that process are not required to do anything special. This is so because section 9 says that “Propagation of a covered work arising merely from transmission between users to obtain a copy also does not require acceptance. [of the license].” (In English: “Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance [of the license].”).
Second, GPLv3 section 6(e) is intended to provide distributors—who initially seed torrents—with a clear and straightforward means of delivering source code, pointing recipients to a public server where find available. This ensures that anyone who wants to obtain the source code can do so, with little inconvenience to the distributor.
Other changes include a modification to the termination terms to provide opportunities to reverse possible inadvertent violations, the use and promotion of P2P and BitTorrent systems, and compatibility with other licenses such as Apache, for example.
Another fundamental innovation of GPLv3 has been in the very design of the license. Versions 1 and 2 were written by Richard Stallman himself, with the help of close lawyers. The construction of GPLv3 was done in a completely new way, with public participation, consultations, meetings, events, and a huge global community mobilized to ensure that free software remains free.
This methodology does not appear in the text of the license, but it will undoubtedly be a milestone in the history of computing... and law.
How do I upgrade from GPLv2 to GPLv3?
First of all, it includes the new version of the license in its package. If you are using LGPLv3 in your project, be sure to include a copy of both GPLv3 and LGPLv3, since LGPLv3 is now written as an additional set of permissions to GPLv3.
Second, replace all v2 license notices (usually in the header of each file) with the new recommended text, available at Using GNU licenses for your own software. It will stand the test of time better, as it no longer includes the FSF mailing address.
Of course, any descriptive text (such as the README) that refers to the package's license should also be updated accordingly.
Is GPLv3 compatible with GPLv2?
No. Many requirements have changed between GPLv2 and GPLv3, which means that specific requirements of GPLv2 are not present in GPLv3, and vice versa. For example, GPLv3's Undo conditions are considerably more permissive than GPLv2's, and thus different from GPLv2's Undo conditions.
Because of these differences, the two licenses are not compatible: if you tried to combine code released under GPLv2 with code released under GPLv3, you would be violating section 6 of GPLv2.
However, if the code is released under "version 2 or later" of the GPL, it is compatible with GPLv3, since GPLv3 is one of the options it supports.
In GPLv3 it is mandatory to give installation information
GPLv3 explicitly requires that all necessary "Installation Information" be included in the redistribution, while GPLv2 does not use that expression, but does require that the redistribution include the scripts used to control compilation and installation of the executable, along with with the corresponding complete source code. This comprises some but not all of what GPLv3 calls "Installation Information". Thus, the GPLv3 requirement for installation information is stronger.
Links