102

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?

  • 5
    Guys we have a discussion in meta about this... we agreed questions like this are okay did we not? – Trevor Clarke Jun 27 '15 at 14:32
  • 3
    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 Jun 27 '15 at 15:57
  • 2
    vote to close because it's too useful and helpful – sam boosalis Oct 30 '18 at 1:05
84

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 a public domain license which 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.

|improve this answer|||||
  • 10
    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. – Abhi Beckert Sep 2 '15 at 2:19
  • 6
    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 Sep 14 '15 at 14:14
  • softwareengineering.stackexchange.com/a/122008/7525 says "BSD-licensed projects can be used/redistributed in MIT-licensed projects. FALSE MIT license allows for distribution without contribution credits; BSD doesn't." Do you disagree? – endolith Dec 16 '17 at 17:23
  • 1
    @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 – Martin Ueding Aug 10 '18 at 13:28
  • 1
    A claim based on a false claim is a false claim. The legal state is: if a license does not explicitly allow sub-licensing, it is forbidden - ask a lawyer. – schily Aug 10 '18 at 13:34
2

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 don'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.

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+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.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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