this post was submitted on 20 Nov 2023
33 points (92.3% liked)

Open Source

31031 readers
465 users here now

All about open source! Feel free to ask questions, and share news, and interesting stuff!

Useful Links

Rules

Related Communities

Community icon from opensource.org, but we are not affiliated with them.

founded 5 years ago
MODERATORS
 

Recently, I was looking into licensing an open-source project I'm creating. My preferred license is the BSD-3, but was given advice that I should seek a license that offers patent protection as well. I saw there is a BSD 2-Clause + Patent option, but not one for the BSD 3-Clause, not that I found through OSI or SPDX. This seems odd to me, because I'm pretty sure the BSD 3-Clause is more commonly used than the BSD 2-Clause. Because of this, I've had to dual license my project as BSD 3-Clause AND BSD 2-Clause+Patent, which is a bit unwieldy, but achieves the same desired results.

This seems like an odd oversight though, I'd be curious if there's a reason the 2-Clause was chosen for the patent protection over the 3-Clause version? I could just add in the patent protection part to the 3-Clause version, but creating arbitrary licenses like that definitely makes me feel a bit... uncomfortable.

Edit: Due to some confusion as to what I meant, I wanted to add some details.

I'm definitely aware that licenses such as the Apache 2.0 exist, I just like the BSD licenses for their simpler language (and also don't have that odd state changes clause from Apache 2.0). I'm more so just curious why the choice was made for only the BSD 2-Clause license to gain the Patent Clause, but not the BSD 3-Clause version. That's what I'm not sure about, and why I'm curious about the logic behind this choice. I'm gonna paste in the content of both licenses below, since they are both short and easy to read and understand.

BSD 2-Clause + Patent

Copyright (c)

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.

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.

DISCLAIMER

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

(Fun Fact: A lead developer on the Rust team said they would have chosen the BSD 2-Clause+Patent license if it existed at the time of them first releasing the Rust programming language. Instead, it's why they chose to dual-license under the MIT and Apache 2.0 instead.)

BSD 3-Clause

Copyright (c) .

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

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.

you are viewing a single comment's thread
view the rest of the comments
[–] heeplr@feddit.de 0 points 11 months ago (1 children)

What are you trying to prevent? You can't release anything (opensource or not) without risking someone stealing the idea without patenting.

No FOSS license will prevent that (quite the opposite, it encourages copying/modifications). Those licenses just prevent someone using your code commercially without releasing the source code again.

[–] 0x4E4F@infosec.pub 1 points 11 months ago* (last edited 11 months ago) (1 children)

I had a particular project in mind, I should have mentioned earlier, Fraunhoffer's FDK-AAC. It's open source, but the license is... tricky...

[–] heeplr@feddit.de 1 points 11 months ago (1 children)

you could check how other FOSS do it. e.g. you externally link it as a library and use another license the user has to agree on just for that.

[–] 0x4E4F@infosec.pub 1 points 11 months ago (1 children)

As far as I'm aware of, the only FOSS project that has an option to use FDK-AAC is Handbrake, and they just let you point to the binary, that's it... you have to compile it yourself.

[–] heeplr@feddit.de 1 points 11 months ago (1 children)

license is probably the reason they're doing it. no way around that without infringing copyright law I guess.

[–] 0x4E4F@infosec.pub 1 points 11 months ago* (last edited 11 months ago)

Of course, that's not tye only project that does this, but they're the only FOSS project, which is what you asked. xrecode can use it as well, but it's not FOSS and l, once again, you have to provide the binary.

My mistake, I just remembered, MeGUI can use it as well (you have to provide the binary), which is a FOSS project as well.

That is why I was asking around... cuz I wanna clone it and make it FOSS, but it seems that no one has done that already, dispite the thing existing for about a decade now, for a reason.