我想知道源树有哪个许可证。计算机应该提出一个建议,说明哪些许可文件是紧密匹配的。然后,我想要比较文本与meld手动。
在典型的源代码树中,我有可以包含任何类型(许可)文本的文本文件,并希望将其与/licenses/*中已知的许可文件进行比较。
衡量标准应强调人类可读性文本的内容。
如何将该文件与Linux工具进行比较?
A10gt; supertool unknown.txt /licenses/* # example of an imaginary solution
0.10 gmap.txt
0.12 gnuplot.txt
0.14 GOG-EULA.txt
0.25 google-chrome.txt
0.13 Google-TOS.txt
0.87 GPL-1.txt
0.95 GPL-1+.txt
0.99 GPL-2.txt
0.56 GPL-2+.txt
0.60 GPL-3.txt
0.78 GPL-3+.txt我的一个想法是计算许可的熵,然后将unknown.txt和许可连接起来,再用ent计算熵。附加熵最小的文件是相似的。有更好的主意吗?
发布于 2021-06-08 06:32:52
这里有专门的工具,您正在寻找一个开源许可遵从工具。可用工具的几个例子:
示例输出可以如下所示。大多数工具还会扫描源文件头以获取许可,因此您需要将扫描限制为仅许可文件。
Directory File License Confidence Size
------------------------------------------------------------------------------------
/home/vtrefny/projects/blivet/ COPYING GPL-2.0-or-later 99.47% 17.7K
/home/vtrefny/projects/blivet/ COPYING.LESSER LGPL-2.1-or-later 99.63% 25.9K
------------------------------------------------------------------------------------还有更多,你应该能够找到合适的工具供你使用。其中一些还提供了库/API,如果您需要一些非常具体的东西。
发布于 2022-03-13 16:26:46
作为https://github.com/nexB/scancode-toolkit的(可能有偏见的)维护者,我想说这是最好的选择。
特别是,它与这里列出的大多数其他工具或其他可用的工具有不同的方法。它使用多种技术,并最终在您的文本和大约30,000个许可文本和通知之间做了一个差异(比如OP引用的meld )。诀窍是让它足够快。使用diff提供了更好的准确性:它现在是这一领域的行业领先工具,大多数工具和orgs都对开源许可证检测非常认真。
https://unix.stackexchange.com/questions/653319
复制相似问题