scan code是一个工具,用于扫描代码的许可证、版权、包及其文档依赖项和其他有趣的事实。
scancode-toolkit的Python项目详细描述
一个典型的软件项目经常重用数百个第三方软件包。 许可证和来源信息并不总是容易找到且不规范: scancode为您发现并规范化这些数据。
为什么scancode更好?
- 作为独立命令行工具,scancode是易于安装,运行 并嵌入到您的ci/cd处理管道中。它在windows、macos和linux上运行。
- scancode是几个项目和组织使用的,例如Eclipse Foundation,OpenEmbedded.org, FSF,OSS Review Toolkit, ClearlyDefined.io, RedHat Fabric8 analytics还有更多。
- scancode检测许可证、版权、包清单和直接依赖项 以及源代码和二进制文件中的更多内容。
- scancode提供最精确的许可检测引擎,并执行 完全比较(又名差异或红线)在许可证文本数据库之间 以及您的代码,而不是依赖regex模式或概率搜索或 机器学习。
- scancode是用python编写的,易于用插件进行扩展以贡献新的 改进了扫描器,数据摘要,包装清单和新的 输出。
- 您可以将扫描结果保存为json、html、csv或spdx。你可以使用 同伴ScanCode workbench GUI app 查看和显示扫描结果、统计数据和图形。
- scancode是主动维护的,拥有一个不断增长的用户社区
- scancode经过了大量的测试,拥有超过^{str1}$8000个测试的自动化测试套件。
有关即将推出的功能,请参见我们的路线图: https://github.com/nexB/scancode-toolkit/wiki/Roadmap
安装
先决条件:
在Windows上,请按Comprehensive Installation instructions操作。 确保使用Python2.7 32位 https://www.python.org/ftp/python/2.7.15/python-2.7.15.msi
在MacOS上,从 https://www.python.org/ftp/python/2.7.15/python-2.7.15-macosx10.6.pkg
在Linux上,使用 分发包管理器:
- 在ubuntu 14、16和18上使用: sudo apt-get install python-devxz-utils zlib1g libxml2-devlibxslt1-dev bzip2
- 在基于Debian和Debian的发行版上使用: sudo apt-get install python-devxz-utils zlib1g libxml2-devlibxslt1-devlibbz2-1.0
- 在RPM发行版上使用: sudo yum install python-develxz-libs zlib libxml2-devellibxslt-develbzip2-libs
- 在Fedora 22及以后使用时: sudo dnf install python-develxz-libs zlib libxml2-devellibxslt-develbzip2-libs
另请参见Comprehensive Installation instructions 其他说明。
接下来,从 https://github.com/nexB/scancode-toolkit/releases/
打开终端窗口,然后cd到提取的scancode目录并运行 显示帮助的命令。scancode将根据需要进行自我配置:
./scancode --help
您可以运行一个在屏幕上打印为json的示例扫描:
./scancode -clip --json-pp - samples
查看更多命令示例:
./scancode --examples
存档文件提取
<>文件库中存在的文件必须在运行扫描之前提取: scancode不会从tarball、zip文件等中提取文件,作为 扫描。捆绑实用程序extractcode是一个基本上通用的存档提取器。 例如,此命令将在中递归提取mytar.tar.bz2 tarball mytar.tar.bz2-extract目录:./extractcode mytar.tar.bz2
支架
如果您有问题、建议或发现错误,请在以下位置输入票证: https://github.com/nexB/scancode-toolkit/issues
对于讨论和聊天,我们有:
- 在https://gitter.im/aboutcode-org/discuss提供官方gitter网络聊天频道 gitter也可以通过位于https://irc.gitter.im/ 的irc桥访问。
- fr上的官方irc频道eenode(服务器聊天.freenode.net)。 此通道接收生成和提交通知,可能有点嘈杂。 你可以使用你最喜欢的irc客户端,或者在 https://webchat.freenode.net/
源代码和下载
许可证
- apache-2.0,需要随扫描输出一起确认。
- 引用数据集的公共域cc-0。
- 第三方组件的多个许可证(gpl2/3、lgpl、mit、bsd等)。
请参阅通知文件和.about文件,这些文件记录了 scancode中使用的第三方代码以获取更多详细信息。