9.2 与非自由应用程序的互操作
在 GNU 程序中实现一些功能,使其能方便地与广泛使用的非自由工具和应用程序协同工作是很常见的。但在某些情况下,你不应该实现与非自由程序的协作,我们这里可以将其称为 ShackleMe。
- 如果 ShackleMe 不为人所知,请拒绝这个想法。GNU 软件包甚至不应该提及一个晦涩的非自由程序(参见GNU 编码标准中的参考文献)。
- 如果 ShackleMe 强加了一些特别令人厌恶或危险的东西,例如有效的 DRM 或垄断的文件格式,你应该拒绝给予它任何特定的支持。但是,不要为了拒绝与 ShackleMe 协同工作而削弱通用功能;那样就太过分了。如果可能,编写代码从这些文件中提取用户数据是可以的。
- 如果 ShackleMe 不能在 GNU 操作系统上运行,并且没有可比的自由程序可以让人在 GNU 系统上做相同的工作,那么对 ShackleMe 的特殊支持将成为一个仅在非 GNU 系统上才能使用的功能。因此,你应该拒绝支持它。请参见非 GNU 独有功能。
- 如果 ShackleMe 也能在 GNU 系统上运行,你可以选择是否包含对它的支持,但你没有义务包含它,更不用说运行它了。如果你选择包含对它的支持,请确保在 GNU 系统上与它通信的支持与在非 GNU 系统上一样好。
- 如果有自由程序可以替代 ShackleMe,或者尝试替代它,请确保你的程序与它们协同工作,并且效果至少与据报告与 ShackleMe 协同工作一样好,或者更好。
- 你永远没有义务为非自由程序编写、安装或维护任何形式的支持。如果它无人维护并崩溃,并且没有人愿意维护它,你可以删除它。不要让自己陷入必须处理它的困境!
请参见建议的回复,其中包含你可以使用的文本,如果你愿意,可以表达你拒绝支持 ShackleMe,除非对 ShackleMe 的自由竞争者提供同样良好的支持。其目的是邀请贡献者支持这些竞争者。你可以根据需要修改它以适应具体情况。