[collect]如何选择开源许可证?


今天中午本来说只稍微逛逛blog,然后就睡午觉的,没想到慢慢的又陷入了互联网中o(╯□╰)o 我的午觉啊!!!

看到不了解/不清楚的知识总想去试试,现在总会有这种毛病,而且整个人偏浮躁,没法静下心来好好研究学习深入一门技术,不知是对是错?想想前几天看到的一篇文章——“走马观花”式的学习方式,加上一点点的努力和长期的坚持,未必不是一件好事。也许这就是从小的习惯使然吧?

==吐槽结束,正文开始==

如何选择开源许可证?

作者: 阮一峰

如何为代码选择开源许可证,这是一个问题。

世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种—-GPLBSDMITMozillaApacheLGPL—-之中做选择,也很复杂。

乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。这是我见过的最简单的讲解,只用两分钟,你就能搞清楚这六种许可证之间的最大区别。

下面是我制作的中文版,请点击看大图。

free_software_licenses

(完)

==

还有一个就是在该文章的评论区看到的由wadefelix翻译的内容:

free_software_licenses2

==

还有就是文字版的:译言网 | 开源类软件许可证简明指南,挺好的,图文并茂,容易理解多了。

=EOF=

参考链接:
更多参考链接:
,

《“[collect]如何选择开源许可证?”》 有 16 条评论

  1. 初创企业开源许可证管理九大法则
    http://blog.jobbole.com/112567/
    https://opensource.com/article/17/9/9-open-source-software-rules-startups
    `
    对于初创公司来说,开源软件是一把双刃剑。它可以成为一家创业公司的生命线,因为开源软件可以帮助初创企业快速创新,而不必从头开始。不过,正如有些人所说的,开源软件虽然可以免费使用,但就如同饲养一条幼犬一样,开始虽然花钱不多,后边越养越费钱。开源软件的真正代价是开源许可证合规成本。

    滥用开源软件可能会造成获得投资的机遇被延迟或破坏。但是,如果遵守一些简单的法则,初创企业可以轻松地实现开源许可证合规。
    `

  2. 为什么开源?curl作者:让世界变得更美好
    https://mp.weixin.qq.com/s/Do3Qf49UfmOk6Y68aoT2pw
    https://stackoverflow.com/questions/55884514/what-is-the-incentive-for-curl-to-release-the-library-for-free
    `
    这名开发者表示最近开始在自己的 VC++ 项目中使用 libcurl,并且了解到 curl 和 libcurl 不但开源,而且完全免费。他好奇作者这样做纯粹是为了帮助开发者吗?

    没想到 curl 作者本尊 Daniel Stenberg 亲自现身回答,他详细解答了这位开发者的疑问。以下内容编译自 Daniel 在问题下的回答。

    Daniel 在 1998 年创建了 curl 项目,他编写了最初的 curl 版本,并创建了 libcurl 库。到目前为止,代码仓库包括的 24000 次 commit 有超过一半是 Daniel 本人提交的,他依然是项目的核心开发者。Daniel 表示已将 curl 视为自己的孩子。

    Daniel 在完成 curl 的第一版开发后就将其开源了,和许多开源作者一样,Daniel 表示之所以选择开源 curl,是因为他使用过很多开源软件,并从中获益甚多,而回馈开源世界的最好方式当然就是「开源」,而且他也想跟其他开源作者一样 cool。

    因为开源,来自全球各地的成千上万开发者参与进来一起帮助改进 curl,包括项目本身、文档、网站以及其他的周边细节。Daniel 认为,如果当初没有选择开源,curl 和 libcurl 绝对不会有今天的成就。现在的贡献者名单已超过 1900 个名字,并且每年保持新增几百个名字的速度。

    正因为开源和不受限制的使用许可,curl 和 libcurl 推出后就被许多产品采用,并被迅速集成到无处不在的操作系统和 Linux 发行版上,最终覆盖的范围超乎想象。

    最后也正因为 curl 的这种“无处不在”,它被全球各地的所有人使用 —— 从而成为了一个事实上的标准「传输库」。

    据统计,curl 在全球拥有大约 60 亿的安装量,它运行在数十亿部移动电话、Windows 10 设备、游戏机和电视机上,毫无疑问 curl 是世界上使用最广泛的网络传输库。而这离不开最初创建它的人选择将它开源。

    Daniel 表示不会为 curl 选择一个“合适”的许可证进而向用户收取费用,过去不会,未来也不会这样的计划。

    为什么现在仍参与到 curl 的开发中?

    Daniel 解释了自己仍继续参与开发 curl 并免费提供给大家使用的原因(Daniel 表示他不能代表其他的 curl 开发成员,每个人都有自己参与到其中的原因,所以下面只是他的个人观点):

    1、我认为这仍然是一件值得去做的事。我为自己所取得的成就感到骄傲,我也真心想让世界变得更美好,但我觉得 curl 在这方面做得很少。
    2、还要修复 bug 和增加新功能!
    3、虽然 curl 是免费的工具,但我的时间不是,我有一份收入不错的工作来保证生活。curl 获得的捐赠足以维持它的发展,并保证它足够自由和中立而不被任何人和机构所控制。
    4、curl 作为我的业余时间项目已有二十年,而投身到 curl 让我认识到了更多的朋友、改变了我的生活,还把我带到了我曾以为不会去的地方。
    5、如果能重来,我还是会这样做。

    虽然 curl 已有瞩目的成就,但 Daniel 依旧在不断改进它,修复错误、增加功能等,希望能为开发者提供最优秀的文件传输解决方案。
    `

  3. 开源:从社区到商业,如何构建开源商业模式
    https://mp.weixin.qq.com/s/YuIP_dk_I7SDtiJuLOUIAg
    `
    开源历史:从免费到SaaS

    开源0.0 –“自由软件”时代
    开源1.0 –支持和服务时代
    开源2.0 – SaaS和开放核心时代

    # 开源的良性循环
    开源的历史突出表明,开源的兴起是由于技术和商业创新的良性循环。在技术方面,开源是创建软件的最佳方法,因为它可以加快产品反馈和创新,提高软件可靠性,扩展支持,推动采用并聚集大量优秀技术人才。开源是技术驱动的模型,从“自由软件”时代,这些特征就一直存在。
    但是,只有将技术创新与商业模式创新结合起来,才能充分发挥开源的全部潜力。没有诸如支持付费,SaaS模型之类的业务模型,就不会有开源的兴起。

    # 商业成功中心的三大支柱
    1.项目社区:您的开源项目拥有一个开发人员社区,他们为开源代码库做出了积极贡献。这可以通过GitHub星级,提交,拉取请求或贡献者增长等指标来衡量。
    2.产品市场:用户采用您的开源软件,可以通过下载量和使用范围来衡量。
    3.价值市场:找到客户想要付钱购买的价值主张。这里可以由收入来衡量。
    在公司的整个运营过程中,这三个支柱都必须存在,并为这些可衡量的目标努力。

    尽管不是详尽清单,但开源公司已经发现的价值市场,例如:
    RAS(可靠性,可用性,安全性)
    工具,附加组件(Tooling, add-ons)
    性能(Performance)
    审计(Auditing)
    服务(Services)

    开源软件 3.0 –开源是每个软件公司的一部分
    `
    https://a16z.com/2019/10/04/commercializing-open-source/

  4. 开源软件的网络安全问题
    https://mp.weixin.qq.com/s/TCb4kLH6N3JlCnyo6x2L1Q
    `
    开源软件网络安全的法律问题受到境外的进出口监管和境内《网络安全法》的双重考验。境外国家基于主权的出口规则穿透并从软件、源码、人员、平台等角度分别对开源进行监管,本国《网络安全法》的体系规则则对开源的繁荣与安全之间的平衡重新设定了评价机制。在两者多因素作用下, 开源软件的网络安全实践活动需要审慎调整以迎合或规避监管规则变化带来的深刻挑战。

    本文分析了开源软件的协议安全问题,以事件导向引入并回答了合同与进出口监管冲突的若干问题,并以此为契机对开源软件的网络安全法律问题进行了梳理,提出了相应建议。

    1、背景

    2、开源软件网络安全的法律问题
    2.1开源协议及其脆弱性
    2.2开源的进出口监管——以美国出口监管为例
    2.3源码与言论自由表达的确认性问题

    3、提升开源软件的网络安全价值建议
    3.1开源的市场和版权法价值
    3.2提升开源软件安全应避免的误区
    3.2.1为何有的开源项目关停而有的繁荣
    3.2.2同步备份和设立分支为何不能解决发展和安全问题
    3.3提升开源软件安全与繁荣的着力点
    3.3.1从维护现有开源项目开始
    3.3.2与《网络安全法》若干问题的协调

    4、结论
    开源软件作为传统版权法规定下的代码分离与等同的必然产物,其制度设计在于解决类似“多场耦合”问题从而直接在软件开发者(作者)与著作权之间建立关联,与传统版权法的规定相比,具有某些天然的外部性和自适应优势,特别是第五代移动通信技术的发展可能再次提升开源软件的应用,各国均对开源软件予以高度重视和密切关注。
    整体而言,从开源软件的协议安全(并促进繁荣)角度,至少应当从以下几个方面进行综合考虑:
    (1)在版权法下设计软件权益机制,体现开源属性权利的独立性;
    (2)从服务协议、许可协议等视角规范开源软件的合同法下规范;
    (3)协调进出口监管法与版权法,规范审查和评估对开源的影响;
    (4)从网络安全法的基本法出发,将其作为一类特殊的安全审查和出境评估类型。

    最后,开源的核心在于软件开发者的著作权利义务设计与分配,应从宏观与微观上给予开源软件开发以充分支援。这些支援不在于简单的资金投入或文件指引,而在于通过降低人员流动的成本,并特别注重未被定义为高端人才的人员价值和促进开源繁荣的作用,以开源代码和开源协议的参与度作为评价开源安全与繁荣的主要机制。
    `

  5. 国外大厂做这么多无法带来直接收益的项目的出发点是什么?
    https://www.v2ex.com/t/837145
    `
    question:
    比如 Google 的 Go 语言、Chrome 等
    微软的 vscode 、typescript 等
    facebook 的 React 等

    有几个点比较好奇:
    1. 做这些是图什么
    2. 项目发起人怎么说服老板认可项目的价值并且愿意投入大量的人力财力去做这些项目
    3. 年终怎么衡量这些部门的产出…

    answer:
    问这个问题 还不如直接搜索 youtube 上相关关键词,或者去 FB 上找找这些项目的负责人提到的原因之类的东西。
    ==
    1. 自己的业务遇到瓶颈,需要搞些新东西。
    2. 类似风投,可以死 9 个项目,但有 1 个火了,就不亏。
    3. 养闲人,垄断人才市场,你可以不给我家输出价值,但你也别到竞争对手家去干。
    ==
    这些项目有很大的直接收益,只是研发周期长。特别是 Go 、TypeScript 、React 这些语言和框架,全是需求驱动的,为了提高开发效率

    国内大厂也会遇到现有软件无法满足需求的情况,也有不少自研,只不过他们没耐心搞新的,基本都是在人家的项目上二次开发,修修补补凑合着用
    ==
    Chrome 这么成型的收集用户数据、完善广告推荐算法的商业模式都不知道?
    如果你说把它开源成 Chromium 才和你提到的其他比较类似
    ==
    Go 没有收益? Chrome 是公益项目?

    小公司就别琢磨这些了,现着眼于个人发展吧,有余力贡献点开源项目吧
    ==
    一流企业做标准 二流企业做品牌 三流企业做产品
    ==
    简单来说,规模大一些的公司都会分成本部门和利润部门
    利润部门是现金流
    成本部门用来输出影响力
    扩大影响力对一些软实力,例如销售 /合作都是利好的
    ==
    你想反了。
    不是说他们做这么多开源项目拿出来贡献给社会用,而是他们把自己要用的项目拿出来开源然后让社会给他们贡献。

    随便举个例子,之前火上天的 Ruby on Rails 项目,就是 basecamp 项目里分离出来的。
    那本来这个框架都得是 37signals 的员工自己一行一行代码摞起来。
    现在呢?全球的程序员都在给 Rails 加功能修 bug 做贡献,员工只要在框架的基础上专心做应用就行了。
    你说公司是赚了还是亏了。

    还有像你说的 Go 语言,又或者是 React 等,这些都是公司自己就想要用,但是又不想自己全资维护。
    于是统统交给社区,然后相当于坐享其成。
    `

  6. 借助国家知识产权局提供的专利检索功能进行专利搜索和查阅的小技巧
    1. 知道发明人
    2. 知道申请单位
    3. 知道发布日期

    一种数据审计方法、装置、电子设备及存储介质与流程
    https://www.xjishu.com/zhuanli/55/201911236415.html
    `
    文档序号:20599688
    发布日期:2020-05-01 21:31
    阅读:92
    来源:国知局
    技术研发人员:张志强
    技术所有人:深信服科技股份有限公司
    `

    国家知识产权局-专利检索及分析
    https://pss-system.cponline.cnipa.gov.cn/conventionalSearch
    `
    搜索关键词:
    深信服 202005

    显示页面设置:
    40条/页
    同时在页面进行ctrl-f搜索一些关键字
    `

    CN111090623A
    https://pss-system.cponline.cnipa.gov.cn/documents/detail?prevPageTit=chagngui
    `
    申请号 法律状态公告日 中文含义 英文含义
    CN201911236415 20210813 发明专利权授予 granted
    CN201911236415 20200529 实质审查的生效 initiative for examination as to substance
    CN201911236415 20200501 发明专利申请公布 publication
    `

    高级检索 #更简单直接
    https://pss-system.cponline.cnipa.gov.cn/seniorSearch
    `
    发明人=(张志强)
    申请(专利权)人=(深信服科技股份有限公司)
    `

  7. 开源软件安全性分析
    https://mp.weixin.qq.com/s/dDHmQkWhSchnD7kTBtKymw
    `
    开源软件(Open source software, OSS)是指一种可查看、可修改的公开计算机程序,它对我们今天的软件开发产生了巨大的影响。从宏观分析,几乎所有的应用程序都会应用第三方开源软件,复杂的软件间调用和不同软件版本上下游依赖形成了一条多个软件和多层依赖关系的供应链。然而,在开源软件带来高效开发的同时,也带来了快速增长的软件漏洞的安全问题。对于那些有意破坏网络安全环境的人或组织而言,针对软件供应链的攻击是一个极具吸引力的切入点。本文将从两方面出发,先对本年度的开源安全现状进行分析和说明,然后针对软件生态系统中存在的安全问题,总结了多种开源软件的安全研究动态。

    # 2.1 安全现状

    从OSS开发者(或组织)视角看,只有49%的组织拥有OSS开发的安全策略,34%的组织表示他们没有使用安全策略。OSS的安全策略是一套安全行动计划,表明开发者已对软件的安全性进行评估,并具备应对突发安全事件的能力。而调查结果表明,各组织未将软件安全作为优先考虑的事项。

    对比不同规模的企业的执行安全策略的情况上看,发现大、中、小型企业对安全策略的应用情况具有明显差异。由于预算、时间和资源等局限性,中小型组织的IT人员更重视软件的功能性而不是安全性。

    从漏洞角度上看,使用者很难对OSS复杂依赖关系及漏洞进行管理,如下图所示,只有24%的使用者对其在直接依赖关系上的安全性有信心。由于软件供应链中存在大量的直接和间接依赖,故使用漏洞扫描工具对其进行信息识别会产生许多误报,例如:如果依赖路径上的漏洞从未被执行,那么这种漏扫结果将是无效的。

    企业的安全团队越来越意识到,企业的安全不完全取决于他们的组织,相反,他们必须越看越远,弄清楚“这段代码是哪里来的?”,因此,清楚每个项目的依赖数量是理解代码安全性的起点。如python的平均依赖数为25,而JavaScript的依赖数为173,从数量上看JS的依赖关系更复杂。但深入到依赖项内部,多用途的库会比单一用途的库更为复杂,在这个角度上JS反而更加“单纯”。

    # 2.2 如何提升OSS安全性

    漏洞发现的方法。调查中39%的开发者使用SAST,该工具在开发过程中非常有用,因为它们可以作为CI(持续集成)过程的一部分自动运行,并且通常可以识别导致漏洞的特定代码行。33%的组织采用的是使用SCA(软件组成分析)工具,该工具通过清单扫描和二进制扫描来识别已知的安全漏洞、许可问题或质量问题。最后,可以在IDE中使用SAST工具,为开发人员提供一种更直接、更实际、更可配置的手动安全测试方法。

    保障OSS安全性的方法。最常见的方法是让开发人员自己检查源代码,这种评审可以充分说明代码的质量并保障代码的安全性。40%的组织依赖项目社区来评估项目安全性,此时他们会通过社区提供的贡献者信息和维护方式来作为项目安全性的评价标志。36%的组织采用第三方工具帮助开发人员评审软件安全性。剩余组织还考虑了其他评价因素,如开源项目发布或提交的频率(35%)、注册及包管理器信息(33%)以及存储库评级(30%)等。

    三. 开源组件的安全研究

    (1)供应链生态分析
    (2)开源软件漏洞风险分析
    (3)开源软件应用风险分析(投毒)
    (4)软件识别

    四. 总结和展望

    使用开源软件的组织和公司需要更加了解他们正在使用的依赖关系,主动并定期监控所有软件的可用性、可靠性和漏洞。最终,开源软件是一条双向的道路:**开源软件的消费者必须对OSS社区做出贡献,以确保他们所依赖的依赖关系的健康和可行性。仅仅使用开源软件而不做出贡献是不够的**。所需要的是:1)将开放源码软件依赖的性质纳入标准网络安全和开发实践,2)为组织所依赖的开放源码软件社区做出贡献。
    `

  8. 科技爱好者周刊(第 264 期):Elasticsearch 的启示
    https://www.ruanyifeng.com/blog/2023/07/weekly-issue-264.html
    `
    # Elasticsearch 的启示

    上月的”红帽事件”,说明开源软件的”客服模式”行不通,我在上一期已经写了自己的看法。

    那么,开源软件如何赚钱呢?既不能卖软件,又不能卖支持服务,该怎么办呢?

    我一直思考这个问题,觉得行业的发展、个人的前途,都跟它有关系。

    我现在的看法是,只剩下一种模式是可行的,开源软件只有这样才能商业化,那就是 Elasticsearch 的模式。

    Elasticsearch 是著名的搜索软件,市场份额非常大,很多大型网站的背后都是它。

    2004年,以色列程序员谢伊·巴农(Shay Banon)为了方便妻子查找菜谱,写了一个简单的搜索工具,这就是 Elasticsearch 的由来。

    一开始,Elasticsearch 采用最宽松的 Apache 许可证,几乎没有任何限制,你怎么用都可以。

    后来,谢伊·巴农拿了风投,成立了公司,雇了程序员,就必须有收入,否则公司就要裁员关门。

    他想到的办法,就是提供云服务。你不必自己搭建搜索了,我搭建好了,你买了就能用。这样你比较省心,我也有收入了。

    但是,他万万没有想到,这种模式也行不通。原因是开源软件不是独占性的,如果你的软件太成功,其他人也可以提供服务,而且卖得更便宜,最终把你打败,拿到更大的市场份额。

    Elasticsearch 倒霉的地方在于,遇到的竞争对手是亚马逊,世界第一的云服务商。

    亚马逊不花一分钱,拿到 Elasticsearch 的代码,搭建搜索服务出售,很快就让原始作者没生意了。

    眼看公司有挂掉的风险,Elasticsearch 做出了一个石破天惊的决定。

    2021年,谢伊·巴农宣布,放弃 Apache 许可证,改用新的许可证:代码依然开源,但是不允许用户销售该软件的云服务,除非你愿意公开整个服务端。(注意,是整个服务端,不仅是搜索的部分。)

    亚马逊明摆着不会接受这个条件,所以新的许可证实质就是不允许亚马逊(也包括谷歌和微软)再卖 Elasticsearch 云服务了。

    作为业界老大,亚马逊当然咽不下这口气。它索性撕破脸,把 Elasticsearch 的代码分叉,开始维护自己的版本,起名为OpenSearch,继续采用 Apache 许可证,让社区无偿使用。双方就对干起来了。

    现在还看不出来谁赢谁输,但是不管怎样,Elasticsearch 有了起码的生存保障,收入稳定下来了。你要用正宗的搜索服务,只有买他家的。

    我认为,这是目前唯一可行的开源软件商业模式。

    **有人把它叫做”开源核心模式”:代码的核心功能是开源的,可以免费使用,但是存在某些限制,比如云服务是独家的,或者某些插件和周边工具是闭源的,需要付费。**

    目前,采用这种模式的知名开源软件,除了 Elasticsearch,还有 MongoDB。

    **开源软件创业,建议就采用这种模式。你同时维护两个版本:一个是开源的社区版,让大家免费使用,积累用户和口碑;另一个是收费的企业版,拥有更多功能和客服支持。**
    `
    https://handbook.opencoreventures.com/open-core-business-model

回复 hi 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注