软件版权 License
1 如何选择
- GPLv2:允许用户自由地使用、修改和分发。但如果你修改和发布了修改后的版本,必须保持它的开源状态。(允许商用,但如果你分发基于 GPLv2 的修改软件,你必须提供源代码,并以 GPLv2 许可证发布)
- GPLv3 与更多许可证兼容,GPLv2 的兼容性较差。允许 GPLv3 代码与 Apache License 2.0 等许可证一起使用,拓宽了软件的使用范围。
- LGPL 是介于完全自由的许可证(如 MIT、BSD)和严格的 GPL 许可证之间的一种折中。它允许闭源软件使用 LGPL 库,同时确保对 LGPL 库本身的修改保持开源。
- MIT:非常宽松,允许开发者在任何项目中使用、修改、分发代码,包括在闭源的商业软件中使用,而不需要公开源代码。(允许用于商业用途)
- Apache License 2.0:是一种“宽松”的许可证,允许在开源和闭源项目中自由使用、修改和分发代码。你可以将 Apache 许可证的代码整合进商业软件中,而不需要开源你的代码。唯一的要求是保留原始的版权声明和许可证文本。
- 其它
- BSD 系列 (BSD-2, BSD-3): 宽松的许可证,允许闭源使用。
- LGPL: 允许与闭源软件结合,但要求修改的库保持开源。
- MPL/EPL: 更灵活,适合想要开源但允许闭源集成的项目。
- AGPL: 用于确保网络服务也开源的场景。
- Creative Commons: 常用于非软件内容,如文档、图片和视频。
- 总结
- 如果你希望开源项目保持自由、开放,同时允许其他开发者以任何方式使用你的代码,MIT 许可证是一个很好的选择。如果你希望确保任何基于你的项目的修改都继续保持开源,GPLv2 更适合。
- 如果你需要应对专利、硬件限制、现代兼容性等问题,GPLv3 可能是更好的选择。
2 LGPLv3
3 添加版权声明
在项目的根目录中创建一个名为 LICENSE
的文件,LGPLv3
文本可以从 GNU 官网找到。
在 LICENSE
文件的开头添加如下信息:
1 | <Project Name> - <Short description of the project> |
其中:
<Project Name>
: 你的项目名称<Year>
: 版权声明年份(可以是项目创建年份)<Your Name or Organization>
: 你的名字或组织名<version>
: 使用的 LGPL 版本号,比如“2.1”或“3”
4 在源码文件中添加许可证头
在你的项目的主要源代码文件中添加许可证的声明头,比如 Python、Java、C++ 代码的顶部:
这样每个文件都有版权声明,用户明确知道代码是按照 LGPL 许可发布的。
1 | # <Project Name> |
5 添加 README
文件说明
在你的 README
文件中,提到项目是根据
LGPL 许可发布的,并简要说明 LGPL
的一些主要条款,比如允许闭源使用,但要求修改库时开源等。
例如:
1 |
|
6 在 GitHub 上创建一个新仓库
- 如果你还没有创建仓库,登录 GitHub 并 创建一个新的仓库。
- 上传你的项目文件,包括
LICENSE
和源代码文件。 - 确保你在 GitHub 项目的设置页面中选择合适的许可证标识(GitHub 会自动识别并展示你的许可证)。
7 4.7(可选)使用 GitHub 的许可证模板
在创建 GitHub 仓库时,GitHub
提供了一个选项来选择许可证。你可以直接选择
GNU Lesser General Public License
,GitHub 会自动生成
LICENSE
文件并包含相应的协议文本。
8 总结
- 选择 LGPL 版本。
- 创建
LICENSE
文件并包含 LGPL 文本。 - 在项目的源代码文件中添加许可证声明头。
- 在
README
文件中说明项目是基于 LGPL 授权。 - 在 GitHub 上创建仓库并上传代码。
这样,你的项目就可以正式在 GitHub 上以 LGPL 协议发布,并对外开放使用。
9 参考
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.