Licensing and Compliance Lab: The most frequently asked Frequently Asked Questions
The FSF Licensing and Compliance Lab is committed to helping free software developers around the world with their questions sent to firstname.lastname@example.org. Our primary goal is to support what we believe is the best legal tool we have for protecting the rights of users, copyleft. The Lab works toward that goal by offering licensing education, running certification programs like Respects Your Freedom, providing license compliance and enforcement for the GNU Project, and fielding licensing questions from the free software community.
In the course of this work, we often refer back to questions in the comprehensive Frequently Asked Questions about the GNU Licenses (FAQ). The FAQ is quite long, with over 150 questions. Looking at the Licensing and Compliance Lab's email referrals to the FAQ can help us gauge the questions that are the most frequent, or perhaps the most confusing. We'd like to share some of the insights we've gathered in our work to make our licensing resources as effective as possible. I amassed all the referrals to FAQ questions made by the Compliance Lab from the past 17 years in order to get a better understanding of what types of questions we field the most. This article will provide an overview of the most frequently referenced FAQ topics, and provide clarification and additional resources for more encumbered scenarios.
Distribution of Frequency of FAQ References
Unsurprisingly, we see a long-tailed distribution. Worded differently, we see great inequality in the number of references to FAQ questions. The top 20 most referred to questions (included below) account for over 60% of the references. The single most referenced question, on incompatible libraries, accounts for over 10% of all references. This question deals with using incompatible libraries with GNU General Public License (GPL) software. The solution, as outlined in the FAQ: If you want your GPLed program to link against a library not covered by the system library exception, you need to provide permission to do that. The FAQ then gives examples on how to explicitly provide that permission.
Though only accounting for a fifth of the FAQ, questions about combining work with code released under the GNU licenses account for about half of the lab’s references, making combining work the most frequently referenced topic. Richard Stallman published an excellent licensing guide on gnu.org regarding license compatibility and relicensing at https://www.gnu.org/licenses/license-compatibility.html. As Stallman states, "In general we say that several licenses are compatible if there is a way to merge code under those various licenses while complying with all of them." Even where two licenses are crafted in a such a way that they cannot naturally be combined, however, explicit relicensing provisions can enable code combinations that otherwise wouldn't be permitted. The linked article covers many such questions of compatibility in further detail, and we encourage you to give it a read when researching potential compatibility concerns.
Private use questions are quite common as well. The GPLv3 introduced explicit language guaranteeing the freedom to privately modify and run the covered work in order to alleviate ambiguity. Previously, in the GPLv2, such freedoms were regarded as implicit. Additionally, I’d like to highlight that the GPLv3 contains an explicit contractors' provision, permitting companies to give GPLed works to contractors operating exclusively on the companies' behalf. One concern the Compliance Lab regularly sees regards making copies of GPLed programs within a company, and whether such internal copying triggers the copyleft distribution clauses. The short answer is no. The FAQ goes on to explain: “The organization is just making the copies for itself. As a consequence, a company or other organization can develop a modified version and install that version through its own facilities, without giving the staff permission to release that modified version to outsiders. However, when the organization transfers copies to other organizations or individuals, that is distribution."
We continue to receive a multitude of questions concerning the output of GPLed programs. This is understandably a point of concern, as much of today's software and multimedia is produced using other software. As explained in the FAQ, “The output of a program is not, in general, covered by the copyright on the code of the program... The exception would be when the program displays a full screen of text and/or art that comes from the program. Then the copyright on that text and/or art covers the output." The GNU Compiler Collection (GCC) is one such example of this exception because portions of its GPLed source code can be included in a compiled program (GCC's output). That’s why its license includes the (aptly named) GCC runtime library exception. As explained in the exceptions preamble, "When you use GCC to compile a program, GCC may combine portions of certain GCC header files and runtime libraries with the compiled program. The purpose of this Exception is to allow compilation of non-GPL (including proprietary) programs to use, in this way, the header files and runtime libraries covered by this Exception.”
We used to see a lot of questions concerning the perceived differences of the copyleft provisions in the GPL between static linking and dynamic linking. Explained succinctly in the FAQ: “Linking [some program] ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination.” Satisfyingly, questions of this nature have been on the decline as the community continues to debunk this false dichotomy.
The FSF Licensing and Compliance Lab is proud to support free software activists worldwide. Providing resources for developers, hobbyists, and users, in addition to legal professionals, allows us to better spread the ideals of free software. These resources help build a common understanding of copyleft and encourage best practices in software licensing, helping the legal system work more smoothly for everyone. As always, we continue to welcome your questions sent to email@example.com. Resources like the FAQ and articles like this are made possible by your support. Here's what you can do to help continue and improve our educational resources:
- Keep up to date on all the latest in licensing news by joining our licensing-updates mailing list.
- Support our work by becoming a member or making a donation.
The top 20 most referenced FAQ questions
- What legal issues come up if I use GPL-incompatible libraries with GPL software?
- What is the difference between an “aggregate” and other kinds of “modified versions”?
- A company is running a modified version of a GPLed program on a Web site. Does the GPL say they must release their modified sources?
- Does the GPL require that source code of modified versions be posted to the public?
- If I write a plug-in to use with a GPL-covered program, what requirements does that impose on the licenses I can use for distributing my plug-in?
- What does it mean to say a license is “compatible with the GPL?”
- Is there some way that I can GPL the output people get from use of my program? For example, if my program is used to develop hardware designs, can I require that these designs must be free?
- Can I use GPL-covered editors such as GNU Emacs to develop nonfree programs? Can I use GPL-covered tools such as GCC to compile them?
- Does the GPL allow me to sell copies of the program for money?
- What does it mean to say that two licenses are “compatible”?
- I'd like to incorporate GPL-covered software in my proprietary system. I have no permission to use that software except what the GPL gives me. Can I do this?
- Can I write free software that uses nonfree libraries?
- How are the various GNU licenses compatible with each other?
- I have written an application that links with many different components, that have different licenses. I am very confused as to what licensing requirements are placed on my program. Can you please tell me what licenses I may use?
- Can I release a nonfree program that's designed to load a GPL-covered plug-in?
- If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses?
- How can I allow linking of proprietary modules with my GPL-covered library under a controlled interface only?
- Is making and using multiple copies within one organization or company “distribution”?
- Can I apply the GPL when writing a plug-in for a nonfree program?
- Can I modify the GPL and make a modified license?
Graph by Jake Glass, FSF intern. This image is licensed under an Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.