Open Source License Picker

Welcome to my open source license picker. This script helps you choose an open source license to apply to your own software based on a few questions. Ready? Let’s begin…

Please answer the following three questions:

Purpose of your code release:

I want everyone to be able to use my code with no restrictions and I expect nothing in return.
I want to maximize adoption of my code, so I can sell hardware, compatible software, or other services. I don’t care if my competitors use my code in their proprietary products.
I want everyone to be able to use my code as long as they share source code.
I want a dual licensing business: anyone who will not share source code should pay me for a license.
I want everyone to be able to use my code only for non-commercial purposes.

Patent Position:

I am seeking, or intend to seek, patents that read on my software.
I am against software patents.
I don’t have any patents, and don’t intend to seek them.
I don’t know/don’t care.

Interaction with Linux:

I want my software to be useable in the Linux kernel.
I don’t need my software to be useable in the Linux kernel.
I don’t know/don’t care.

You need a permissive license.

You need a license with patent terms.

You need a license that is compatible with GPL2.

You need a copyleft license.

Please answer the following questions:

Program or Library:

My software is a library intended for use by other programs.
My software is an entire program.

Consumer Electronics:

My software needs to be useful in consumer electronics.
My software does not need to be useful in consumer electronics.
I don’t know/don’t care.

Distribution:

My software is the kind that others are likely to distribute.
My software is the kind that others will use (including local or SaaS) but don’t need to distribute.

You picked BSD/MIT. These are simple licenses that are compatible with almost any other license, maximizing downstream adoption. They have no patent grants — but you don’t need those.

You picked Apache 2.0. This is a permissive licenses that is compatible is compatible with many other licenses, including proprietary licenses.

You picked Mozilla Public License 2.0. This license is compatible with GPL2, because it specifically allows re-licensing under GPL2. (See the provision in MPL2 on compatible licenses.) It also contains an express patent license. It is a “weak copyleft” license that allows licensees to use the licensed code as a plug-in to proprietary code.

You picked GPL version 2 or later. GPL is appropriate for whole programs, or for libraries if you want to deploy a dual licensing model. This license contains no express patent grant. It is compatible with GPLv3. However, licensing under GPLv3 only would limit the ability of consumer electronics developers from using your code, so giving them the GPL2 option is helpful.

You picked LGPL version 2.1 or later. LGPL is appropriate for libraries, particularly dynamically linked libraries, which LGPL allows to be combined with proprietary application. This license contains no express patent grant. It is compatible with GPL 2 or 3, and LGPL3.

You picked GPL version 3. GPL is appropriate for whole programs, or for libraries if you want to deploy a dual licensing model. This license contains an express patent grant. Licensing under GPLv3 only will limit the ability of consumer electronics developers from using your code, but you indicated that this is not a goal for you.

You picked LGPL version 3. LGPL is appropriate for libraries. This license contains an express patent grant. Licensing under LGPLv3 only will limit the ability of consumer electronics developers from using your code, but you indicated that this is not a goal for you.

You picked Affero GPL version 3. It is the only commonly used license that will discourage competitors from using your code in a SaaS implementation. It contains an express patent license and other provisions of GPL3, including provisions that will make your software difficult to use in consumer electronics.

You picked a proprietary license. Open source will not work for your code, because open source licenses cannot contain field restrictions like non-commercial. At this time there is no standard software license with these attributes, but Creative Commons NC is a general copyright license with a non-commercial restriction.

You picked public domain. The most popular public domain dedication is Creative Commons 0, which you can find here: https://creativecommons.org/share-your-work/public-domain/cc0/.

If you have patents to protect, you have a strategic choice between a license with an express patent grant and one that is silent. Most patentees prefer an express patent grant and defensive termination provision, because they give your users and you more certainty about handling of your patents. Releasing code under an open source license can significantly reduce your ability to enforce patents that read on that code, regardless of the license you choose. You should make sure you understand this trade-off before doing your code release–talk to a lawyer if you have questions.

Thanks for using this license picker. I hope you found it useful and thought-provoking. It is not legal advice. If you want to try again, re-load this page. If you want to know more about how the picker works, take a look here.