This is a brief description of how we choose software licenses for over 100 geospace software projects. The discussion is quite simplified to keep length short. The 2018 NAS report on open source for NASA provides a useful software license survey for geospace science.
One of the costs of copyleft licensing to the contributing author is possible opportunity cost. Will the other party simply reimplement what you did to avoid your copyleft, and you lose out on collaboration / consulting? Would you actually have the money and time to enforce the copyleft license?
A cost of permissive licenses is the lost possibility of licensing fees. If the code was developed for a grant or employer, the possibility of the contributing author actually getting those license fees may be small. Also the chance that anyone would even try to pay for a license rather than reimplement etc. is usually small for geospace programs.
Thus, except for large programs that would have real value to a large company or contractors thereof, we usually use MIT or Apache licenses. Permissive licenses such as MIT / BSD are among the most corporate-friendly and collaborator-friendly. For these programs, we get large companies using them who may be interested in consulting work. If the license was too restrictive (copyleft), we might not hear from these companies or possible collaborators. Types of programs for which we often use MIT / BSD permissive-style licenses:
- one-off scripts that maybe are only useful to a handful of users
- ~ 1000 line or so programs that didn’t take a lot of effort
- program has significant public domain / permissive components
For non-trivial geospace programs and libraries that need to be used by geospace agencies, we typically use Apache. If the license was copyleft like GPL, they might not be allowed to use / modify / distribute our code freely and we might miss collaboration / consulting opportunities. The Apache license’s patent protection provisions are like those of GPLv3.
If using a copyleft license, usually we go for Affero GPL, which provides cloud / SaaS protections in addition to GPLv3 that it’s based on. Such copyleft licenses are often shunned by companies, and possibly partially restricted for some agency free usage for reasons including:
- anti-Tivoization – avoiding vendors from making it impossible to use code without their hardware keys
- requirement to “convey” all code that copyleft code is a part of (this is a drastic oversimplification, please see the license itself).