4

I made a license using the 3 clause BSD license as a base and added parts from the Apache 2.0 license. I was wondering if this license would hold any water or if it is legal. My legal knowledge is nil. Would it be possible if anybody could help me?

Changes to 3-clause BSD licence:

  1. Changed first clause to be similar to clause 4c of Apache license 2.0.
  2. Changed second clause to be similar to clause 4c of Apache license 2.0.
  3. Added a 4th clause to the license, copied from clause 3 of Apache license 2.0.

Here is the license:

Copyright <year> <name>

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, all copyright, patent, trademark, and attribution notices, excluding those notices that do not pertain to any part of the Derivative Works, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, all copyright, patent, trademark, and attribution notices, excluding those notices that do not pertain to any part of the Derivative Works, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

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

  4. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual,
    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work,
    where such license applies only to those patent claims licensable
    by such Contributor that are necessarily infringed by their
    Contribution(s) alone or by combination of their Contribution(s)
    with the Work to which such Contribution(s) was submitted. If You
    institute patent litigation against any entity (including a
    cross-claim or counterclaim in a lawsuit) alleging that the Work
    or a Contribution incorporated within the Work constitutes direct
    or contributory patent infringement, then any patent licenses
    granted to You under this License for that Work shall terminate
    as of the date such litigation is filed.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Thank you.

  • 2
    Stepping back a bit, what characteristics do you want from an open-source license for which you couldn't find an existing suitable license? In particular in your case, why not just use the Apache License 2.0 as is? – Philip Kendall Jul 8 at 16:57
  • I want a very permissive license like BSD or MIT but with a patent license. My main (and only) issue is the requirement of stating changes to licensed code. – VevsVire Jul 8 at 17:12
  • 6
    Does this answer your question? How can a "crayon" license be a problem? – Philipp Jul 9 at 16:04
11

I was wondering if this license would hold any water or if it is legal. My legal knowledge is nil.

This screams "BAD IDEA" at me.

There's a reason that lawyers train for as long as they do. Legal documents are tricky and hard to get right unless you know exactly what you're doing; often, you may be able to do something that mostly does what you want, but actually has some glaring errors in it that you wouldn't notice without the necessary experience.

Unless you have legal experience, leave creating your own license alone - let those who know what they're doing do it.


See also: How can a "crayon" license be a problem?

| improve this answer | |
  • I realise that it's on shaky ground, however, I don't know of any licenses similar to BSD with a patent license. Thanks anyway. – VevsVire Jul 8 at 16:48
  • 4
    Why not just use Apache, @VevsVire? It's a fairly permissive license, similar to BSD in that regard, and it has the patent clause. – ArtOfCode Jul 8 at 16:50
  • I have issues with the state changes condition. As a result, I don't want to use such a license. – VevsVire Jul 8 at 16:58
  • 3
    @VevsVire then dual-license your software under BSD-3/Apache so that users can choose between an explicit patent grant and not having to state changes. Or use the Apache license, but add a rider that exempts downstream users from having to state modifications. Those approaches are more likely to be safe than creating your own license by copying license fragments together. – amon Jul 9 at 13:28
  • @amon I'll look into it, thank you. – VevsVire Jul 11 at 2:03
5

One problem with your proposed license is as follows.

BSD license says:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

This means the list of conditions and the disclaimer must be retained.

Your license says:

Redistributions of source code must retain the above copyright notice, all copyright, patent, trademark, and attribution notices, excluding those notices that do not pertain to any part of the Derivative Works, this list of conditions and the following disclaimer.

I bolded the part that I can interpret as being a single clause. Now your license says that the list of conditions and the disclaimer are not required to be retained.

Regarding the patent allowances and, more importantly, requirements:

If I was evaluating your license and I saw those conditions, I would immediately wonder whether those requirements are 1) reasonable and 2) in my best interest. Since you said

My legal knowledge is nil.

... chances are there are some loopholes in your wording that would come to bite me in the rear in some way down the road, even IF I assume you were in fact simply ignorant in the first place and not secretly malicious. The well-known licenses are drafted over months and sometimes years by professionals who address issues like this. Once I realize your license was homegrown I'd try to forget everything about your software as fast as I could.

If I wanted to incorporate your software into my own program which I wanted to keep proprietary, I would not do it based on the patent concerns I just laid out. If I wanted to incorporate your software into my library or program which I wanted to release as free software, I wouldn't use your software either because then I'd be responsible for figuring out license compatibility between your homegrown license and other licenses.

TL;DR use a known license, pick the one you like the most.

| improve this answer | |
2
  1. Rolling your own anything-which-requires-skill usually results in a product inferior to what a professional would produce so it's best not to do so unless you have a reason which makes it a better course of action. This isn't to say rolling your own is a bad idea. In fact it benefits the opensource community by introducing new ideas, and showing areas for new license demand. But it's important to make sure you understand the consequences of making/using a bad license.

  2. Custom licenses aren't likely to be widely used, because anyone who wants to use works under this license may run into license compatibility issues when combining works. Also many people will steer clear simply because an untested license is a wildcard. People like to know how a license will hold up in court. So by using a custom license you'll be limiting the potential audience for your work.

  3. Your license will be awkward to actually use. You've taken text from existing licenses, and those licenses need to be adhered to when distributing your license, or you violate the copyright of the authors of those original licenses. The key example of this being that both the 3 Clause BSD license, and the Apache 2.0 License require a copy of the license to be distributed with works. So when you use your license you must also include the BSD and Apache licenses. In doing so, you'll need to be careful not to accidentally try to license those license texts under your license, or each other. You'll also need to be careful not to accidentally license you work under the BSD, or Apache licenses (unless you're wanting to do that). You might be able to get around all of this by arguing fair use of the text in your license, but that's not a guarantee.

    It's also worth noting that by posting the license on this site you've licensed it under the CC BY-SA 4.0 which means anyone who takes it from here will also need to adhere to the CC BY-SA 4.0 when using your license.

If you're having trouble finding a license that meets your needs try browsing the list on OSI, or consider hiring a lawyer to draft one for you (or proof this one for you).


Copyright James Daniel Marrs Ritchey. This material was created for submission at 'https://opensource.stackexchange.com/questions/10092/i-made-my-own-open-source-license-is-it-any-good-is-it-legal', but can also be alternatively obtained from 'https://snippetly.blogspot.com/2020/07/making-homebrew-license.html' under the terms of any of the following licenses: Ritchey Permissive License v8 (https://jamesdanielmarrsritchey.blogspot.com/2020/01/ritchey-permissive-license-v8.html), The MIT License (https://opensource.org/licenses/MIT), Ritchey 2020 Permissive License v1 (https://jamesdanielmarrsritchey.blogspot.com/2020/05/ritchey-2020-permissive-license-v1.html).

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