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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<Project Name> - <Short description of the project>
Copyright (C) <Year> <Your Name or Organization>

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 3 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <https://www.gnu.org/licenses/>.

其中:

  • <Project Name>: 你的项目名称
  • <Year>: 版权声明年份(可以是项目创建年份)
  • <Your Name or Organization>: 你的名字或组织名
  • <version>: 使用的 LGPL 版本号,比如“2.1”或“3”

4 在源码文件中添加许可证头

在你的项目的主要源代码文件中添加许可证的声明头,比如 Python、Java、C++ 代码的顶部:

这样每个文件都有版权声明,用户明确知道代码是按照 LGPL 许可发布的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# <Project Name>
# Copyright (C) <Year> <Your Name or Organization>
#
# This file is part of <Project Name>.
#
# <Project Name> is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version <version> of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

5 添加 README 文件说明

在你的 README 文件中,提到项目是根据 LGPL 许可发布的,并简要说明 LGPL 的一些主要条款,比如允许闭源使用,但要求修改库时开源等。

例如:

1
2
3
4

## License

This project is licensed under the GNU Lesser General Public License (LGPL) v<version>. See the [LICENSE](./LICENSE) file for more details.

6 在 GitHub 上创建一个新仓库

  • 如果你还没有创建仓库,登录 GitHub 并 创建一个新的仓库
  • 上传你的项目文件,包括 LICENSE 和源代码文件。
  • 确保你在 GitHub 项目的设置页面中选择合适的许可证标识(GitHub 会自动识别并展示你的许可证)。

7 4.7(可选)使用 GitHub 的许可证模板

在创建 GitHub 仓库时,GitHub 提供了一个选项来选择许可证。你可以直接选择 GNU Lesser General Public License,GitHub 会自动生成 LICENSE 文件并包含相应的协议文本。


8 总结

  1. 选择 LGPL 版本。
  2. 创建 LICENSE 文件并包含 LGPL 文本。
  3. 在项目的源代码文件中添加许可证声明头。
  4. README 文件中说明项目是基于 LGPL 授权。
  5. 在 GitHub 上创建仓库并上传代码。

这样,你的项目就可以正式在 GitHub 上以 LGPL 协议发布,并对外开放使用。

9 参考

github上的介绍