This piece breaks down software license terminology and provides three different open-source license considerations for use in internal and commercial software projects.
Software License Terminology
Software licenses use a wide range of terminology. Some terms to understand include:
- Work: This refers to software packages, libraries, etc., and their associated documentation and configuration, in source and object form, that are authored under an open-source license.
- Derivative (work): This is a work derived from an original open-source work. For example, a piece of software that includes an open-source library would be considered a derivative work.
- Source (code): This is the human-readable source code of a software product. It may include source code, documentation, configuration files, etc., and is preferred for making modifications.
- Object (form): This is a generated form of the source code, such as compiled code or generated documentation.
Open-Source License Considerations
Open-source licenses have three main considerations:
- Permissions. For a commercial organization, the biggest questions here are whether the license permits commercial use for the protected work and whether the distribution of a derivative work is permitted. Other considerations include patent and private
use of the open-source work. Most common open-source licenses permit all the above, with conditions. The one aspect of permissions that may vary is the specifics around if and how the author of a work may charge a fee for the work; however, any requirement
of payment is not typically part of the open-source license terms.
- Conditions. These are the considerations commercial organizations must pay attention to because they vary from one license type to the next. For example, some licenses require derivative source code be distributed with the object form. Others require
notification of any changes.
- Limitations. This covers liability, warranty and trademark use. Most open-source licenses include an “as-is, without warranty” statement, which is intended to indemnify the contributors of any works covered by the license. This is a critical
concept that allows the open-source community to thrive, because it encourages software developers to try new ideas and share them with the world. The one aspect of limitations that varies is that of trademarks. Some licenses make explicit statements
regarding the granting of trademark rights.
READ: Secure Coding Basics for Developers
Open-Source Software Licenses
With respect to the various license considerations, some licenses can be easier to use than others. In general, most open-source licenses can be used safely for internal projects, because the license restrictions are typically only applied with respect
to software distribution. The distribution of open-source software can get very tricky, especially for larger works that are made up of many different projects.
In general, most open-source licenses are designed for sharing and have concessions for commercial use. However, it is wise to avoid mixing different restrictive licenses in the same project because there are cases where licenses have competing language
(e.g., GPL and CDDL).
Although reasonable efforts will be made to ensure the completeness and accuracy of the information contained in our blog posts, no liability can be accepted by IANS or our Faculty members for the results of any actions taken by individuals or firms in connection with such information, opinions, or advice.