248

There are many articles out there which cover the topic in length and breadth, but so far I haven't found a nice, concise answer to the question.

What are the most important differences between the BSD and the MIT licenses and in what way do their intended uses specifically differ?

3
  • 9
    Guys we have a discussion in meta about this... we agreed questions like this are okay did we not? Commented Jun 27, 2015 at 14:32
  • 6
    discussion on meta, which seems to be leaning towards allowing this question. (Because BSD and MIT are both quite short as far as licenses go, otherwise it would need to be narrowed down more.)
    – overactor
    Commented Jun 27, 2015 at 15:57
  • 9
    vote to close because it's too useful and helpful Commented Oct 30, 2018 at 1:05

3 Answers 3

195

When talking about BSD license, you have to be aware that there is not one, but actually four different BSD licenses. The most basic is the zero-clause BSD license which is basically a public domain license. It doesn't even require attribution:

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

Then we have the two-clause BSD license:

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

The three-clause BSD license adds this clause:

Neither the name of the [organization] nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

And the four-clause BSD license also this clause:

All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the [organization].

The MIT license does not contain any clauses regarding promotion and advertising material but does have an attribution clause, so it is most similar to the 2-clause BSD license:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

So what both the 2-clause BSD license and the MIT license have in common are:

  • Permits use
  • Permits redistribution
  • Permits redistribution with modification
  • Provision to retain the copyright notice and warranty disclaimer

In addition the MIT license also explicitly allows:

  • merging
  • publishing
  • sublicensing
  • selling

However, all these freedoms are implied by the BSD license, because all these activities can be considered "use" and/or "redistribution" of the software.

The practical differences between the 2-clause BSD license and the MIT license are marginal. Which one to pick is mostly up to personal taste. Especially considering that both licenses are considered compatible, so you can take code under one license and use it in a project under the other, as long as you keep the license text around.

12
  • 36
    To me, the biggest difference is the existence of three BSD licenses and one MIT license. In order to avoid fragmentation/doubt I prefer MIT. Commented Sep 2, 2015 at 2:19
  • 10
    Partially incorrect: sublicensing is not permitted by the BSD license but the other terms (merging, publishing, selling) are permitted by the BSD license. Sublicensing is an important "freedom" as it would allow you to add another license that implies restrictions (e.g. the GPL). Ad the BSD license does not permit sublicensing, you cannot add the GPL restrictions to the code.
    – schily
    Commented Sep 14, 2015 at 14:14
  • 5
    @AbhiBeckert: Actually it is the other way around. “BSD-2-clause” is unique. But there are various licenses that MIT has used, so the classical MIT license is sometimes written as “MIT/Expat” to make that distinction clear. Therefore I find BSD-2-clause easier to understand Commented Aug 10, 2018 at 13:28
  • 4
    @schily: GNU lists BSD-2-clause and BSD-3-clause as compatible with the GPL. Therefore sublicensing must be included. Commented Aug 10, 2018 at 13:32
  • 4
    @schily: That's an interesting take. However, take a look at: github.com/jashkenas/lil-license/issues/… "In short — a sublicense of an OSS project can only restrict the rights of what you can already do under the original license, and since you're required to include the original license, it's redundant to boot." More info from a lawyer blog: writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html . I think we're safe with BSD.
    – N. Gimenez
    Commented Apr 26, 2020 at 11:22
32

A couple of things were not mentioned in the accepted answer:

  • documentation associated with the software
  • community adoption
  • BSD-2-Clause Plus Patent aka "BSD+Patent"

Documentation

Another difference between the BSD licenses and the MIT license is how they deal with the meaning of "software". MIT applies to the documentation associated with the software, BSD doesn't.

In MIT license, the word "Software" with a capital "S" is explicitly defined as being "this software and associated documentation files". In the BSD licenses, they talk about "source code and binary form", no mention of documentation.

In fact, FreeBSD uses a complete different license for its documentation.

Both MIT and BSD allow you to release your documentation under another license, that's potentially more restrictive. It is what Symfony does with MIT+CC-BY-SA.

If you want to be liberal with your documentation as well, you'd probably want to pick MIT instead of BSD. It avoids you to have to choose another documentation-specific license like CC-BY or equivalent on top of your BSD licensed source code.

EDIT: I want to mitigate a little bit this assertion. I Am Not A Lawyer. Choose A License, the GitHub initiative, suggests that any open source software license is suitable for documentation:

Any open source software license or open license for media (see above) also applies to software documentation. If you use different licenses for your software and its documentation, be sure to specify that source code examples in the documentation are also licensed under the software license.

Flask is an example of widespread BSD-licensed project that also applies BSD to its documentation:

This license applies to all files in the Flask repository and source distribution. This includes Flask’s source code, the examples, and tests, as well as the documentation.

Community adoption

The NPM package manager contains libraries mostly released under MIT. So using it as well for your NPM package will most likely grant you more adoption.

Similarly, if you're looking to work closely with the FreeBSD project for example, you'd rather use one of the BSD licenses.

It's easier for your work to be accepted by a community when its license is already widely used within this very same community.

Let's face it though, MIT is in general more popular.

BSD-2-Clause Plus Patent aka "BSD+Patent"

There is another relatively new OSI-approved BSD license which @Philipp didn't talk about: BSD-2-Clause Plus Patent, also referred as BSD-2-Clause-Patent or "BSD+Patent". BSD+Patent is exactly the same as BSD-2-Clause, except that BSD+Patent contains the explicit patent grant of the Apache License v2:

Subject to the terms and conditions of this license, each copyright holder and contributor hereby grants to those receiving rights under this license a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except for failure to satisfy the conditions of this license) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer this software, where such license applies only to those patent claims, already acquired or hereafter acquired, licensable by such copyright holder or contributor that are necessarily infringed by:

(a) their Contribution(s) (the licensed copyrights of copyright holders and non-copyrightable additions of contributors, in source or binary form) alone; or

(b) combination of their Contribution(s) with the work of authorship to which such Contribution(s) was added by such copyright holder or contributor, if, at the time the Contribution is added, such addition causes such combination to be necessarily infringed. The patent license shall not apply to any other combinations which include the Contribution.

Except as expressly stated above, no rights or licenses from any copyright holder or contributor is granted under this license, whether expressly, by implication, estoppel or otherwise.

Like MIT and BSD-2-Clause and unlike Apache License v2, BSD+Patent is compatible with GPLv2. Like Apache License v2 and unlike MIT and BSD-2-Clause, BSD+Patent avoids leading to potential patent trolls.

Licensing under BSD+Patent is an interesting alternative to dual-licensing under MIT+Apache v2.

-1

Another consideration that led me to adopt the 3-clause BSD license for my open source contributions is that, unlike the MIT license, it names the license grantor. Apart from the necessity of doing so to the enforceability of the third clause and to the validity of the copyright declaration included therein, I believe that the license should name the grantor to make it enforceable.

The foregoing is my personal belief; I am not an intellectual property lawyer, regardless of the fact that I am the author of four applications now pending before the USPTO.

4
  • 1
    Hi David! What do you mean by "license grantor"? You mean the "copyright holder"? I think it is possible to add a "Copyright mention" on the top of both MIT/BSD before the beginning of the license itself. Most people do that.
    – N. Gimenez
    Commented Feb 1, 2021 at 10:58
  • Who else has the legal authority to grant a license? Commented Feb 4, 2021 at 2:17
  • 2
    Ok, then why do you think it is not enough to have the Copyright notice on top of the license, in the same file? I did not downvote your answer, I am genuinely asking. Besides nowadays with open-source software, copyright owners are often widespread across various contributors, and the copyright notice would need to be modified frequently in theory. It is generally common that the Copyright notice on the license only mentions the initial creator of the project. That doesn't mean that other copyright holders lose their rights - the proof of their contributions is on the VCS like GitHub anyway.
    – N. Gimenez
    Commented Mar 31, 2021 at 13:55
  • The issue at hand is not the wording of the license per se, but the need for placeholders in the license URL of a NuGet package. As it stands, there is no provision within the definition of the License URL for a query string to supply values that could fill in the blanks in the generic license displayed by the URL. Commented Apr 27, 2021 at 6:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.