首页 / 知识
关于许可:您如何选择开源许可?
2023-04-14 02:07:00

How do you choose an open-source license?我是软件工程师,而不是律师,而且我的大学不提供任何有关许可软件的课程。 实际上,他们缺乏与法律相关的课程(但数量在缓慢增长)。 在哪里可以了解开放源代码许可证以及如何选择它们?
这里有很多描述: 使用哪个选项可能是政治决定,但最终应由您对软件的计划/需求决定。如果要确保它始终是免费的,则选择GPL或另一个" Copyleft"许可证。如果您不介意将其用于商业用途,请选择与其兼容的另一种用途。 我几乎总是以麻省理工学院或BSD(他们是等效的)结束,因为 那就是,当您在野外遇到GNU / GPL时,它们通常是极端主义者。 这可能会引起无休止的讨论,但是在决定使用哪种许可证时,我会坚持一个原则:不要创建一个新的! 无论您的法人的论点多么有说服力,因为当前的许可证都无法完全满足您项目的独特需求,所以您应该编写自己的许可证,甚至只是"稍微修改"一个现有的许可证,都将他当作程序员来看待您,认为他只是之所以要使用GOTO语句,是因为该语言的其他功能均无效。 其他建议:
如果您正在寻找有关免费和开源许可证的信息,则可以使用比较表:http://en.wikipedia.org/wiki/Comparison_of_free_software_licences 您始终可以只使用最好的WTFPL。我在大多数学校项目中都使用了此功能,因为它们并不是那么好用。 对于没有提及开放源代码计划作为有关存在哪些开放源代码许可证的信息源,我感到有些惊讶。它可能不进行比较,因此其他站点也值得检查。 当然,维基百科基本上具有您需要知道的所有信息。但是困难的部分是要知道从哪里开始。我建议从阅读有关Apache许可证和GNU GPL的文章开始,这是同一故事的两个流行方面,每个方面都为与代码相关的人员提供了不同的自由。 简而言之:Apache许可证使任何人都可以对您的代码进行任何操作,包括在封闭源代码产品中使用和使用它。它使使用该代码的任何人都可以自由地执行他们想要的代码。 另一方面,GNU GPL允许您的代码仅用于也在GPL下分发的项目中。在这种情况下,您可能会编写一些代码并阻止专有公司使用您的作品。在这里,您为代码本身赋予了自由,它将始终用于"免费"目的。 我最近开始研究适用于相当大量工作的许可类型。 所有开放源代码许可证的选择数量和内容,限制(或不限制)和限制令人困惑。 我在发布的答案中找到了两个很好的链接,但是没有看到任何指向开放源代码倡议的按字母顺序排列的许可证列表的内容,因此在此将其包括在内。 更加务实的原因也会影响您对许可证的选择-如果要使用GPL库,则必须自己使用GPL,或者如果您打算将软件作为较大项目的一部分,则需要查看它们的要求。 我们也有类似的困境。在我们公司,我们决定在框架上投入大量时间,最终希望将其发布到开源社区。该业务是使用开源工具(apache,php等)建立的,该回馈了。我们决定使用LGPL / MPL双重许可。这样,我们可以整合社区中的修补程序/改进,同时仍然保护在其之上运行的应用程序(尤其是我们的应用程序)免于被迫开源。 |
最新内容
相关内容
linux命令描述中文?
linux命令描述中文?,地址,系统,工作,信息,目录,命令,基础,工具,标准,文件,Linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目录的Python之描述符
Python之描述符,数据,情况,方法,属性,首次,代码,培训,基础,分析,上调,Descriptors(描述符)是Python语言中一个深奥但很重要的一个黑魔法,它被开源Python自动化神器Playwright
开源Python自动化神器Playwright,网络,设备,平台,培训,流程,环境,系统,手机,浏览器,报文,playwright相比已有的自动化测试工具有很多优势,其中如何开源你的Python库
如何开源你的Python库,工具,项目,管理,代码,公共,培训,许可证,版本,文档,测试,写了一个Python库。自己觉着这太棒了!如果让人们能够轻松使用python描述符的两种类型
python描述符的两种类型,数据,培训,方法,实例,以上,更多,python描述符的两种类型1、分类数据描述符:实现了__get__和__set__两种方法的描关于开源:如何找到寻求帮助的开源项
关于开源:如何找到寻求帮助的开源项目?,关于开源:如何找到寻求帮助的开源项目?,项目,论坛,需求,志愿者,How to find opensource projects关于语音识别:什么是好的开源VoiceX
关于语音识别:什么是好的开源VoiceXML实现?,关于语音识别:什么是好的开源VoiceXML实现?,应用程序,开源项目,有可能,在一,What's a good是什么促使你致力于开源?
是什么促使你致力于开源?,是什么促使你致力于开源?,提交,编程,开源项目,是在,What has motivated you to commit to open source?所以写得很好的开源项目(用于学习)?
写得很好的开源项目(用于学习)?,写得很好的开源项目(用于学习)?,学习,编程,开放源代码,程序,Well written open source projects (for关于开源:组织我的C项目代码及其外
关于开源:组织我的C项目代码及其外部库的最佳方法是什么?,关于开源:组织我的C项目代码及其外部库的最佳方法是什么?,项目,启动,将在,它关于html:Regex解析超链接和描述
关于html:Regex解析超链接和描述,关于html:Regex解析超链接和描述,大小写不敏感,描述,超链接,单引号,Regex to Parse Hyperlinks and D关于开源:替代FreeLists来托管我的(
关于开源:替代FreeLists来托管我的(开发者/软件)maling列表?,关于开源:替代FreeLists来托管我的(开发者/软件)maling列表?,流量,项目,我