在我最近读到的一篇论文中,作者将他们的软件宣传为开源软件,因为它是在 Apache 许可证 2.0 下在 GitHub 上发布的。然而,该软件是专有(闭源)和非免费软件的插件。此外,它是使用 C# 和 .NET Framework 开发的,至少从历史上看,它们并不被视为开源或免费软件。基于此,将此插件标记为开源软件真的正确吗?
答案1
这个问题的答案是一个颇受争议的话题......也许主要在开源硬件社区内。
从根本上来说——”如果编辑/构建源代码所需的工具本身不能免费使用,那么是否可以将该项目称为开源项目?“
例子:
- 构建时依赖于不可免费使用的工具的项目(例如:使用 Altium 设计的硬件项目)
- 具有运行时依赖性和不可免费使用的操作环境的项目(例如:设计用于 Windows 的软件项目)
在我看来,如果答案是“不“,那么一个极端的例子就是任何只能在非自由操作系统(如 Windows)上运行的软件不能被称为“开源“...即使可以在模拟环境中运行,例如葡萄酒,它不是为这种用途而设计的。
然而,我的观点是,如果这些资料是公开的,任何人都可以检查和审查,那么“是的“可以将该项目称为”开源“。
请记住,“来源“ 在 ”打开来源“” 指的是源文件——项目的原始组成部分,可与各种工具一起使用以产生可用的最终结果。
“来源“ 盖子:
- 应用程序源代码
- 构建基础设施或脚本(例如:Makefile 文件)
- 项目文件(例如:VCProj)
- 文档
- ETC...
人们可以修改和共享,因为它的设计是公开的
请注意,C# 工具和 .NET 确实是“免费使用”的,但它们是“闭源”的:
https://visualstudio.microsoft.com/downloads
Visual Studio 社区 2017
面向学生、开源和个人开发者的免费、功能齐全的 IDE
答案2
根据您提供的信息,该插件将绝对地免费且开源。“免费”是指它遵循 Apache 许可。而且它是开源的,因为他们提供源代码。
插件是否为非自由闭源应用程序制作无关紧要。该应用程序是完全不同的实体,与插件的“自由性”或其来源无关。编程语言也是如此。您可以根据 Apache 许可证条款获取插件并重新分发它,并修改给出的源代码。
答案3
如果有人说任何东西都是“开源的”,你应该问问自己,你是否能够查看该产品包含的完整代码。如果答案是肯定的,那么它确实是“开放的”。当然,OSI 对开源有一个明确的定义“开源”,这赋予你更多权利,并取消了许多限制。“开源”通常被认为比“免费软件”基于 Richard M. Stallman 和自由软件基金会的定义。他的观点的一些推理可以在下面找到这里。
我想说,就你的情况而言,该软件似乎确实是 OSI 意义上的开源软件,因为许可证赋予了你所有的权利。如果没有 .NET Framework,该软件就没什么用,这是另一回事——你仍然可以使用该软件,而无需法律上的限制到 .NET Framework。您可以看一下,也许插件本身实际上可以使用 .NET Standard 运行,谁知道呢 - 但这并不能改变它很可能是“开源”的事实。我不会把它描述为免费软件,因为我不知道该程序如何对待其用户。在这方面我不一定同意 @keltari 的观点。