我有几千个包含GPL / APL / BSD许可证的软件包。目前,为了确定包是否包含GPL许可证,我正在迭代每个包以查找LICENSE文件,然后检查其内容并将其与样本GPL模板进行匹配。我正在遵循启发式,如果匹配大于90%,那么它是GPL许可证。
if match > 0.9: licence = True但我不认为这是一种正确的做法,也很慢。
所以我在想,有可能如果我知道sha1sum的值,包中存在的所有文件的sha256sum值,这有助于识别包中是否包含GPL许可证吗?
例如在我的包中,LICENSE的sha1sum值是:
b7077bddb5a97beca2da00c07cc56b602e2ac6cc LICENCE
那么如果LICENSE的内容相同,那么与之对应的sha1sum值会相同吗?如果那是真的那么我可以用sha1sum值识别LICENSE文件。还有另一种方法来识别包中的LICENSE文件吗?
答案 0 :(得分:1)
GPL有多个版本,因此您需要检查其中的几个版本。此外,有些项目不直接包含许可证/版权文件,而是说明了#34的影响;该项目是根据GPL v2"许可的。所以你会发现一些,甚至是大多数,但不是所有使用GPL(或任何其他许可证)的项目。
答案 1 :(得分:0)
根本没有关系。 SHA-1是一种哈希算法,可用于检查文件的完整性或检查文件是否被篡改。它没有以任何方式描述信息(但是,可以使用哈希来识别文件,因此如果您知道GPL许可文件的哈希值,您可以计算文件的哈希值并比较它以查看它是否匹配)。 / p>