GNU General Public License (GPL)
The GNU General Public License is the license under which the GNU operating system is licensed out. The license has been authored by Richard Stallman’s Free Software Foundation, and is a copyleft license. The current version of the license is version 3.0, however the previous version 2.0 is also quite popular. Since I personally have not dealt with version 3.0, I would stick to version 2.0 in this post.The GPL v2.0 starts with a preamble, which summarizes the philosophy behind the license. In other words, the belief that software should be free to run, modify, and distribute (while noting that "free" means freedom, and not free of cost). It also points out that there are certain restrictions which are necessary to ensure that a user of the software does not limit the freedom of other users. Paragraph-4 in the preamble section states...
This is a good summary of what the license is trying to achieve. The authors believe that the software should be available to all to use and modify freely, however, such modifications should not result in the restriction of the freedoms of other users. The preamble goes on to mention that in order to enforce this, the authors assert their copyright over the software, and are licensing it out to users under the terms and conditions of the next section. The preamble ends with an explicit patent grant.
The preamble is followed by the main "Terms & Conditions for Copying, Distribution and Modification" section. Paragraph-0 states that the license applies to both the original software work, and any derivative works. The term "derivative works" is defined as "...a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language". This is a bit generic definition, and is one reason why GPL is not very popular for use in commercial software products. Companies that want to use open source along with their proprietary software architecture are deterred by this wide definition of derivative works. The concern is that under such a definition, all of their software stack would become a "derivate work" if they link with the open source library, and/or use the functions of the open source library. This would cause proprietary software to become "contaminated" - a term used to define the situation where proprietary code has to be licensed out in source code form, because it comes under the copyleft clause of an open source license. However, in certain cases - notably in the Linux kernel license - the authors clearly state what they consider as derivative works, and what are unrelated code. Here is a snippet of the explicit notice put in the Linux license (rest of the license is GPL v2.0)