Re-using free software
One of the great advantages of free software is its potential for re-use. You can incorporate code from other free software projects into new projects, saving time and allowing you to build on the shoulders of giants. Of course, you have to respect the original project’s work, and that means complying with their free software license terms.
Incorporating permissive software into new works
The main appeal of permissive software licenses is the ability to incorporate it into anything with relatively little obligation towards the copyright holders. Most permissive licenses require only that you include the license text, or even just a copyright statement, in your product. For free software projects which incorporate permissively licensed code into their work, meeting these obligations is usually as straightforward as including an additional license with your source code.
When incorporating permissively licensed free software into non-free works, you must distribute the free software license and/or copyright attribution with your software. Many commercial users of permissively licensed free software include a menu somewhere in their product which enumerates the applicable software licenses, or include a printed version with the product. You will need to come up with a similar approach.
Incorporating copyleft software into new works
Most free software can be incorporated into copyleft software, and vice versa, if the licenses are compatible. As a general rule, most popular permissive licenses – but not all – are compatible with most popular copyleft licenses. Some copyleft licenses are compatible with other copyleft licenses (for instance, the Mozilla Public License 2.0 is compatible with the GNU family of licenses), but many are not. Any two projects which use the same copyleft license are compatible with each other and may share code freely.
Incorporating permissive code into a copyleft project is straightforward if the licenses are compatible: see the previous section.
Managing many licenses and copyrights in one project
Larger and more complex projects may incorporate software from many different sources with many different licenses and copyright holders. If this describes your project, we recommend that you consider applying the REUSE specification to your work.