自由软件是用户控制软件,因为自由软件给予其用户四项基本自由:

  1. 按自己的意愿运行程序
  2. 按自己的意愿复制和分发程序
  3. 按自己的意愿学习和修改程序
  4. 按自己的意愿复制和分发修改版的程序

要让一个软件成为自由软件就需要使用自由软件许可证来发布它。然而,自由软件许可证有 很多种。实际上已经有太多种的自由软件许可证——如果你在撰写自己的自由软件许可证,请 先查看已有的自由软件许可证 (https://www.gnu.org/licenses/license-list.html#SoftwareLicenses), 很可能其中 已经有你想要的许可证。

太多的自由软件许可证带来的一个麻烦就是如何为你的项目选择自由软件许可证。GNU 官网 提供了一个如何选择许可证的指导 (https://www.gnu.org/licenses/license-recommendations.html)。 这是选择自由软件 许可证的详细指导。对软件项目而言,该指导的宗旨是在不影响软件目的的前提下,为项目 选择最 Copyleft 的许可证。

对大多数程序而言,GNU 推荐你为你的项目使用最新版的 GPL。它强大的 copyleft 适合所 有类型的软件,并对用户的自由有很多保护。进一步,为了将来许可证的升级,请声明 “版本 3 或者任何更新的版本”,这样你的程序就在许可证层面兼容其他将来按照后续 GPL 版本发布的程序。

选择 GPL 不但对用户自由有很多保护,而且如果你把版权转让给自由软件基金会(FSF), 那么 FSF 就会对该软件包的 GPL 进行维护和执法,保护该软件的保持自由软件权利。

自 2001 年以来,自由软件基金会的许可证和合规实验室 (https://www.fsf.org/licensing) 就一直作为保护自由软件的力量,为全世界的自由软 件用户、开发者、法律工作者和活动家提供支持。为 GPL 这样一个非常流行的自由软件许 可证提供法律保护需要非常大的人力、物力和资金投入,因而需要很多志愿者和捐助。这一 切的价值在于自由软件运动的成败将决定我们每个人面临的未来: 要么我们控制计算机,要么我们不控制计算机。

选择自由软件许可证就是在做这样的选择。