Verifying free software: The basics
So you found a program which you would like to use. Congratulations! Now what? How do you know if you can use this program in freedom? A little birdie told you it is free software, but how can you be sure your avian friend knows what they are talking about? Joking aside, if you plan to use a program in freedom with the expectation you will be able to run, copy, distribute, study, change, and improve to it as you wish, you'll want to verify it is free software first. The easiest way to tell if you have a free program is to see if it is in the Free Software Directory. The Directory is a collection of over 16,000 free software programs which have been verified for freedom. If it is not in the Directory and you are new to the subject, this article will provide some basic tips in determining a program's license.
An interesting aspect of software licensing is that there is no single official way to properly license a program. The FSF certainly has its recommendations, and there are other groups with their own ideas as to how a program should be properly licensed. However, over the years (and as software freedom and licensing literacy has increased) some generally accepted methods have been established. This is not always the case, so if you have any doubts while trying to determine the licensing of a program, the best thing to do is to reach out to the maintainer of the program to clarify.
Once you have obtained a copy of a program's source code, the first step is to look for a file named README, which is the most common file name for the purpose of documenting the details of a program. It is typically found in the main directory of the source code. There are other names which might be used, such as RELEASE or RELEASE NOTES, but it is fair to assume that a file will be available with the program's details. A maintainer wishing for their program to be increasingly used and redistributed will provide all the details of not only the program's licensing, but also notes on dependencies, the project's history, contact information, a copyright notice, and other information in the README file. It also might have additional details about the licensing, including any additional permissions or restrictions determined by the copyright holder.
A copy of the license is also a file typically found in the main directory of the source code, but it may be stored in a sub-directory like doc/ or LICENSES/. The title of the file may vary. Look for a name like COPYING or LICENSE, or it might be the name of the license itself like GPL or APACHE.
Once you have found the license, take a moment to examine it. It is important to make sure the license you have received has not been altered, because that could introduce legal issues and could even render the program nonfree. For your convenience, the FSF has a list of reviewed licenses with links to their corresponding license text so you can compare it with the license you received with the code. If it is an entirely unaltered GNU license, you are set — freedom secured! If it isn't a GNU license, the list also provides additional details of many licenses including GNU license compatibility. If you have any questions about the license you found, the licensing and compliance team, with the help of our dedicated and knowledgeable licensing volunteers, are available to answer your questions at email@example.com.
After successfully verifying the program's license from the recommended steps above, there are some additional steps you should take. Check the licenses of dependencies, plug-ins, or other programs required to build and make use of the program. If we are lucky the maintainer of the program listed the dependencies in the README file. They may also be distributed with their source code, so look for directories titled "lib," "resources," "tools," "plugins," or "modules." Essentially, you'll repeat the same steps in the other packages, starting with the README and LICENSE files. This can be a daunting task, but just be patient and tackle the list one project's source code at a time.
If you would like to learn more or practice examining a program's licensing, then join us at one of our weekly Free Software Directory where we do this collectively to review new packages to be added to the list. Meetings are held every Friday 12:00 to 15:00 EDT in #fsf on Libera Chat. All are welcome.
Image by Craig Topham, Copyright ©2022 Free Software Foundation, Inc. This image is licensed under a Creative Commons Attribution ShareAlike 4.0 International license