开源¶
“四大开放”原则之一,构成了 OpenStack 项目的基础,就是开源。OpenStack 项目不生产“开放核心”软件,而是生产纯粹的开源软件。此外,软件的生产需要采用社区和贡献者认可的许可证。
完全功能化的开源¶
当我们说“完全功能化的开源”时,我们的意思是 OpenStack 项目不应该生产需要企业版或额外的专有软件或硬件才能充分发挥其潜力的东西。功能不应以任何方式被故意限制。我们努力以完全开源的方式实现可扩展性和效率。
类似地,项目可以选择启用可插拔的功能,允许第三方项目和供应商集成。这种架构是一种可行的解决方案。为了确保满足“完全功能化的开源”原则,需要提供一个开源选项,无论是内置解决方案还是第三方可插拔组件。
可接受的许可¶
许可要求在以下治理文档中描述
https://governance.openstack.org/tc/reference/licensing.html
一般来说,OpenStack 项目必须使用 Apache License, 2.0 作为其生产的源代码的许可证。这是所有现有 OpenStack 软件使用的许可证。新项目也需要使用此许可证,因为它在 OpenStack 基金会章程中明确指出。Apache License, 2.0 具有以下优势
OSI 批准
GPLv3 兼容
DFSG 兼容
依赖项和可选模块¶
在使用非 Apache 2.0 许可的第三方模块或库时,贡献者需要了解模块之间的交互方式以及涉及的许可证的兼容性。请阅读 许可要求,如果有任何剩余的疑问或疑虑,建议联系技术委员会(使用带有 [tc] 前缀的 openstack-discuss 邮件列表,或在 #openstack-tc IRC 频道上)与技术委员会讨论如何进行。一般来说,在这里要谨慎行事。
关于依赖项,任何第三方库或模块都需要在 全局需求 中进行审查。这确保了添加第三方模块的要求经过审查,并且不会与广泛的跨项目工作冲突,例如 Python 3 移植工作。