请注意 GNU Readline 的 GPL 许可。在答案中,人们提到了 GNU readline 的 GPL 许可证。在这个答案中,我想强调 GPL 许可证的含义——新用户/开发人员可能会忽略它。
从https://en.wikipedia.org/wiki/GNU_Readline复制的文本
选择 GPL 作为 GNU Readline 的许可证[编辑] GNU Readline 是一个自由软件库,它是根据 GNU 通用公共许可证 (GPL) 而不是 GNU 宽通用公共许可证 (LGPL) 授权的。自由软件库通常在 LGPL 下获得许可,例如 GNU C 库、GNU gettext 和 FLTK。
在构建新应用程序时选择链接到 LGPL 许可库的应用程序开发人员在分发组合的结果应用程序时,需要将其使用的 LGPL 许可库保留在 LGPL 之下。组合应用程序中不包括 LGPL 许可库的部分可以保留在原始许可下。 [1] 这与选择使用 GPL 许可库来创建新应用程序的开发人员形成对比,在这种情况下,整个组合生成的应用程序在分发时需要根据 GPL 获得许可,以符合 GPL 第 5 节。 [2 ][3]
GNU Readline 的 GPL 许可证的含义[编辑] 应用程序更改其许可证以符合 GNU Readline 的 copyleft 条件的一个重要示例是 CLISP,它是 Common Lisp 的一个实现。最初于 1987 年发布,1992 年更改为 GPL 许可证,[4] 在 CLISP 的原作者之一布鲁诺·海布尔(Bruno Haible)和理查德·斯托曼(Richard Stallman)之间进行电子邮件交换后,斯托曼认为 [5] CLISP 中的 readline 链接意味着如果 Haible 希望分发使用 readline 的 CLISP 的实现,他必须根据 GPL 重新许可 CLISP。[6]
希望实现命令行编辑功能但希望保持在许可许可下的软件项目可以使用获得许可许可的替代命令行编辑库。其中典型的是 BSD 许可的 libedit。一些应用程序,例如 MariaDB[7] 或 PHP[8],允许用户在构建时选择是与 GNU Readline 还是与 libedit 链接。其他命令行编辑库有双重用途:它们具有与某些主要项目的 API 保持一致的 API,并具有兼容的许可条款。这方面的一个例子是 Haskeline 库,它向 Glasgow Haskell 编译器 [9] 和其他需要行编辑服务的 Haskell 项目公开了与 Haskell 兼容的 API。 [10]
外部链接中列出了几个此类库的链接。