QPL是The Q Public License的简称,是挪威的一家机构创设的。 QPL许可证的基本要求是:获得源代码;修改源代码并可将修改从原始代码中分离出来;修改可以按照作者的意愿被组合到新版本中;二进制代码可以和原始代码同名,而且这一点对于动态连接库来说尤其重要;任何人都可以修正错误,而且这一点对于系统的发布者来说尤其重要;修改过的软件可以按照满足QPL许可证基本要求的任何开源软件许可证进行发布。 具体而言,QPL许可证的规定有以下几个要点:
1.关于修改。QPL许可证规定可以对软件进行修改,并且以独立于源代码的形式,例如以“补丁”(patch)的形式发布所做的修改,但修改必须受到如下限制:a.修改不得变更或删除任何软件中的版权声明;b.当对软件的修改按照本许可证发布的时候,只要软件被修改的版本仍然可以按照这些条款(原始开发者使用的任何其他许可证除外)得到,把你的修改免费地组合在软件的新版本里的权利就被非独占地授予软件的原始开发者。
2.关于发布。QPL许可证规定可以发布软件的可执行形式或修改后软件的可执行形式,但须满足:a.必须把本许可证文档一同发布;b.必须确保所有可执行代码的获得者可以在不支付任何费用(除了数据传输费之外)的情况下获得被发布软件的完整的、机器可读的、包括所有修改在内的源代码,并且在发布中突出地给出声明以进行解释;c.必须确保适用于本许可证的所有修改,包括可执行形式在内,都可以被得到。
3.关于连接。QPL许可证规定可以使用软件的原始版本或修改版本进行编译、连接,并且可以运行由自己或他人合法地编写的应用程序,可以开发与原始软件或修改后的软件进行连接的应用程序、可重用的软件组件和任何其他软件项目,但这些软件项目在发布时,应该符合下述要求:a.必须确保所有这些项目的可执行代码的获得者可以在不支付任何费用(除了数据传输费之外)的情况下获得并使用这些项目的完整的、机器可读的源代码;b.必须明确地许可项目的所有获得者以可执行代码或者源代码的形式使用和发布软件的原始版本或者修改版本;c.如果项目不能够被公众得到,那么如果软件的原始开发者索取项目的副本,就必须提供。
QPL许可证是为库设计的,我们必须与应用程序作者和其他作为组件与软件连接的其他库的作者进行探讨。当然,以上术语“连接”,并不区分“静态连接”和“动态连接”。简要地说,QPL许可证说明只要你是在开发开源软件,你就可以开发与QPL许可证发布的软件连接的程序。你必须确保所有这些项目的可执行代码的获得者可以在不支付任何费用(除了数据传输费之外)的情况下获得并使用这些项目的完整的、机器可读的源代码,你可以自由地对二进制代码收费,但你必须同时给出源代码。需要说明的是,“接受者”包括那些非直接地从你那里获得副本的接受者。达到这一要求的最简单方式是允许所有接受者可以进一步发布源代码。你必须明确地许可你的项目的所有获得者以可执行代码或者源代码的形式使用和发布软件的原始版本或者修改版本。为了确保所有的接受者拥有同样的权力,而不论他是从哪里或如何得到软件。最简单的方式是提供这个明确的许可证以允许接受者把相同的许可证授予他人,如果你的软件的接受者希望这样做,他们可以在任何人都不必对他们和你支付任何费用的情况下重新发布你的软件。如果项目不能够被公众得到,那么如果软件的原始开发者索取项目的副本,你必须提供。这是为了避免试图隐藏源代码的问题。