明智地选择开源许可证
许可证是项目非常重要的一部分。它就像一个保护机制,确保任何作品都不会被他人未经许可用于私利。
虽然许可证很简单,但当你拥有一个不断发展/扩展的项目时,选择起来可能会让人不知所措。当你是一个人并且你的项目是开源项目时,这一点就显得尤为重要。当然,你可以创建自己的许可证。但为了节省时间,你可以使用免费的预创建许可证。
以下是流行的免费许可证的列表、它们的基本分类和兼容性:
1.麻省理工学院
这基本上就像说,拿走我的代码/项目,做任何你想做的事(商业/非商业),但如果出了什么问题,不要怪我
它是最受欢迎的开源软件许可证,被许多流行的库、框架、组织和应用程序使用
这是许可证
2. GNU 通用公共许可证(GPL)v3.0
它与麻省理工学院(MIT)的许可协议很相似,但其口号并非“想做什么就做什么”,而是“想做什么就做什么,但许可证条款保持不变”。GPL 是大多数基于 Unix 和 GNU 惯例和传统的开源项目使用的著名许可证之一。它主要见于 Linux/Unix 相关项目。
这是一个很棒的许可证,但它也被称为“传染”,因为一旦你根据此许可证发布了某些内容,其他复制/分叉此项目的项目就必须使用此许可证或与其兼容的其他许可证。让每个分叉都基于此许可证,这会使许可证具有传染性。但它是让世界更加开放的好方法,这也是它成为开源基金会最青睐的许可证的原因。
您可以在此处查看
3. Apache 许可证 2.0
由 Apache 软件基金会于 2004 年创建,面向社区及其自身服务。它允许使用该软件进行任何操作,包括商业用途,但严格禁止使用该软件的名称/商标/徽标。
对于组织来说,这是一个很好的选择,因为它可以确保商标和名称/徽标的使用,而不会影响产品/软件/库使用的灵活性
点击此处查看
4. FreeBSD / BSD 2 条款许可证
FreeBSD 许可证,又称简化 BSD 许可证或 BSD 两条款许可证,是开源项目常用的许可证之一。它非常简单,与 MIT 许可证非常相似。它只是说:“你想做什么就做什么,但如果出了什么问题,别怪我!”
这是许可证
5. 新的 BSD 许可证/BSD 3 条款
它类似于 BSD 2-Clause 许可证,但增加了第三条条款,禁止他人在未经书面同意的情况下使用项目或其贡献者的名称来推广衍生产品
这是许可证
6. 原始/旧 BSD 许可证/BSD 4 条款许可证*(OSF 不接受)
最初的 BSD 许可证。它后来被更新为 BSD 2-Clause。由于其与广告相关的条款(Clause-3),它未被开源基金会接受。这就像说:“你想做什么都可以,但要保持许可证不变/兼容,并且必须给我我的版权。”
虽然它已经过时了,但它仍然有很多有意义的东西。它对小型或单人军事项目可能很有帮助,因为它保障了开发者的“信誉”,而这一点往往被大多数开源许可证所忽视。
这是许可证
7. Mozilla 公共许可证
由 Mozilla 基金会为社区创建。这是一个优秀的许可证,在项目的开源和专有视角之间取得平衡。因此,它允许将 MPL 许可证代码集成到专有代码库中,只要 MPL 许可证组件仍然可以根据 MPL 条款访问。它是介于宽松许可证和 GPL 许可证之间的中间地带。
对于希望尽可能透明且同时隐藏其他超级机密信息的组织/公司来说,这是一个很好的选择
在此处查看许可证
选择什么?
这很复杂。但在选择许可证时必须谨慎。如果你愿意公开“所有内容”,那就公开吧。或者你也可以限制你的商标/标识/专利/版权信息。
以下是一些有助于区分和选择正确许可证的条件:
- 如果你有一份健康的工作,但想在空闲时间为社区服务,我鼓励你选择宽松的许可证(MIT、BSD 2-Clause、Creative Commons)
- 如果你正在运营一个组织并且需要在 OSS 和专有技术之间建立桥梁,请使用 MPL
- 如果是非盈利性 OSS 组织,请使用 Apache-2.0/BSD 3-Clause
- 如果你是单身汉,没有好工作,或者只是个学生,我强烈建议你使用 BSD 4-Clause 或类似的协议来保障你的信用安全,让你更容易找到工作。祝你好运,不要放弃😉
说到底,我也没人能决定该选什么不选什么。但从长远来看,许可证真的很重要。是的,你可以以后再改(就像我一样),但从一开始就打好基础总是更好的。
我最喜欢哪一个?(意见)
这是原始的 BSD/BSD 4 条款许可证。但为什么呢?
如果你是一位开源贡献者/开发者,你可能听说过faker.js 的故事。如果你还不了解,可以看看我的朋友 Jeff(又名Fireship)的视频讲解。
开源软件开发者大多利用空闲时间工作。但也有很多情况下,他们为了维护开源项目而失业。有时这能带来利润(赞助),有时则无利可图。
每个人都只使用那些很少有人为项目做出贡献的库。这没什么问题,开源基本上就是这样运作的。但问题是,如果你过度使用该产品,赚取利润,却从不回报,也不给予荣誉。
我并不是说用户必须先付费,或者干脆完全付费,而是还有其他方式可以回报。比如,贡献、分享项目或在自己的项目中给予认可。这些都不需要花费任何费用。
对于其他人来说这只是几行代码,但对于项目所有者/维护者来说,这可能是一个改变生活的机会
毕竟,有人帮了你,也是白白送的。至少,要对那个人心存感激,如果有能力,试着帮他/她解决困难。
BSD 第四条款强制要求给予开发者荣誉,而这一点往往被忽视。开源不仅仅意味着开放,也意味着分享和帮助他人。但人都是自私的(包括我自己),我们无法改变这一点。但只要我们努力,我们就能做到一切,我想现在是时候给予那些应该给予荣誉的人以应有的荣誉了。给予他人合法的荣誉并没有什么不好意思。
“大型企业、初创公司和咨询公司都依靠开源软件赚得盆满钵满” 〜Jeff | Fireship
在我看来,BSD 4-Clause 许可证现在已经成为解决开源开发者倦怠问题的绝佳方案。如果不是这样,或许我们应该制定一个真正重视开发者信誉的许可证,类似于 BSD 4-Clause,甚至更好。
原始 BSD 许可证第 3 条:
最后,以上仅代表我个人的观点和想法。当然,我不可能总是正确。也许有更好的解决方案。
做更多的 OSS 项目,
不要倦怠和休息
社会的
关注我:
文章来源:https://dev.to/krtirtho/choosing-open-source-license-wisely-1m3p