如何许可 Loko Scheme ¶
Loko Scheme 是受版权保护的软件。软件的默认法律状态是
不授予任何权利。然而,Loko Scheme 是在
自由软件许可证下发布的。此许可证授予許多
权限,但这些权限以遵守许可证条款为
条件。
- Loko Scheme 采用
EUPL-1.2-or-later 许可。请参阅源代码树中的 LICENSE 文件。
如果你还没有读过,请务必去读一读。它相当简短,
易于阅读,并提供多种语言版本。以下几点
提供了一些指导和解释供你参考,
但它们不会凌驾于许可证或其相关判例法之上。
- EUPL 涵盖了"软件即服务"(SaaS)以及向公众
传播 Loko Scheme 的其他方式。因此,如果你将 Loko Scheme
作为在线编译器提供(例如,像 godbolt.org 上的 Compiler Explorer
对许多其他编译器所做的那样),那么这与你向
用户提供二进制文件副本是一样的。由于 EUPL 是
copyleft 许可证,因此你还需要提供源代码。但这仅
限于"基本功能"。一些可能需要你
通过网络提供 Loko Scheme 源代码的场景是:
你将 Loko Scheme 作为通过网络提供的编译器使用,
或你使用内核功能提供托管的
执行环境。
- 由 Loko Scheme 编译的程序包含 Loko Scheme
运行时的一部分。EUPL 允许你将 Loko Scheme 的运行时与你自己
的程序结合使用。有关更多详细信息,请参阅文章
Why viral licensing is a ghost。这意味着
你的程序整体不会仅仅因为使用了 Loko Scheme 编译
就受 EUPL 许可约束;只有那些本来就受 EUPL 约束的部分
才如此。如果你编译的是自己的程序
(即使是商业和专有程序),那也
没有问题。如果该程序使用了另一个 copyleft 许可证,
而该 copyleft 许可证不允许与 EUPL 结合使用,则可能存在
问题。但 EUPL 被设计为与
多个 copyleft 许可证兼容,因此可能仍然是可行的。
你可以使用
Joinup Licensing Assistant 来检查是否可以将 Loko
Scheme 的运行时与其他作品结合使用。
- 如果你打算分发 Loko Scheme(或使用
Loko Scheme 编译的程序),请特别注意第 5 条中
被许可方的义务。如果你分发使用 Loko Scheme 构建的二进制文件,
则不能从二进制文件中移除相关声明。当你分发
由 Loko Scheme 编译的作品的二进制文件时,你同时也在分发
Loko Scheme 的部分内容。因此,当有人收到该二进制文件的副本时,
他们有权获得你修改过的 Loko Scheme 副本,
这符合 EUPL 的条款。但正如上一点
所述,这不会影响该二进制文件中你自己的代码。
- Loko Scheme 的先前版本采用 GNU Affero General
Public License(AGPL)许可。这意味着 AGPL 覆盖了
这些版本生成的二进制文件中的 Scheme 运行时,
从而覆盖了整个二进制文件。这严重限制了
Loko Scheme 的实用性。要解决这个问题,本来需要
制定许可证例外条款,但在实践中
这被证明非常困难。EUPL 规避了这个问题。
- srfi 目录下的文件根据
MIT 许可证的条款发布。此许可证是 SRFI 实现的惯例,
使它们更容易适配到其他 Scheme
实现中使用,我们鼓励你这样做。只是不要移除
版权和许可证声明。
源代码会自动根据
REUSE 规范 进行检查。