opOSSum is a nice Open Source compliance tool which can be found on GitHub. ScanCode is another nice Open Source compliance tool which can be found on GitHub, too. While the latter provides extensive code scanning functionality, the former can create comprehensive reports and visualize scan results. One just has to figure out how to get opOSSum to read ScanCode output.
This is not really an issue, but - as far as I can tell - has not yet been documented anywhere on the internet. opOSSum does read ScanCode json output, but it reqires some transformation beforehand. Good news: opOSSum also provides the tool to perform said transformation.
As usual, this is more of a step-by-step-guide for noobs such as myself for future reference, but I figured maybe this can be of use for the community as well.
Prerequisites:
1. Get ScanCode
Just get it from https://github.com/nexB/scancode-toolkit/releases, I chose scancode-toolkit-XX.X.X_sources.tar.xz, and unpack it
2. Get opOSSum
Download recent version from
https://github.com/opossum-tool/OpossumUI/releases/
- if you're on linux like me, choose OpossumUI-for-linux.AppImage. If
this is your first time using the AppImage format (it was for me) note
that in order to use the file you need to make it executable (right
click, properties, permissions, allow executing file as program).
3. Get opOSSum tool to transform json
As I mentioned before we need to transform ScanCode output JSON to opOSSum JSON. Thererfore, head over to https://github.com/opossum-tool/opossum.lib.hs and download the sources.
Now at some point - I don't quite remember when - either scanning or transforming failed because zlib was missing. So just to make sure you don't run into these troubles, check if it does exist on your system:
Bash: whereis zlib
If no results (i.e. zlib locations) show up, get zlib. For ubuntu, zlib
can be installed through your package manager, the package is
zlib1g-dev.
4. Scan the code with ScanCode
Assuming you came here for a reason, you probably already know what you want to scan. If you're just trying out things, just use one of the downloads above.
To produce a ScanCode.json, use the following command:
Bash: /path/to/ScanCode/scancode -clpieu --json-pp /path/to/output.json /path/to/codeyouwanttoscan/
What's clpieu? These are the options scanning the input for copyright,
licenses, packages, other info, emails and URLs. Other info includes size,
type, date, programming language, hashes etc. (see
https://scancode-toolkit.readthedocs.io/en/latest/cli-reference/list-options.html)
5. Convert to opOSSum-json
Bash: /path/to/oppossum-lib-hs/opossum-lib-exe.sh --scancode /path/to/output.json > /path/to/output_converted.json
where output.json is the file from step 4
6. Use output in opOSSum
Run file from step 2 (e.g. by just double-clicking), open output_converted.json - done.
From here on, consider visiting the
opOSSum user guide.
Comments
Post a Comment