[Freedesktop-sdk] license-checking script for BuildStream projects

Douglas Winship douglas.winship at codethink.co.uk
Tue Aug 25 18:32:34 UTC 2020


On 14/08/2020 11:42, Valentin David wrote:
>> C) What sort of format would be good for the machine-readable 
>> summary? json? YAML?
> json is so much easier and faster to parse. So for machine-readable, json.
>> D) What sort of format would be good for the human-readable summary? 
>> markdown? html?
> markdown would be nice. But if it has limitation for formatting, you 
> can go for html.

I've been working on json and html outputs. (see next email)


>> E) What would be a more useful output for freedesktop-sdk: just the 
>> summaries?
>> or should we also include the raw licensecheck output?
>
> To be published? The summaries, I suppose. But I suppose we want to be 
> able to get the output in a way.
For now I've included them in the output folder, along with the summaries.


> We probably need to have a way to annotate the licensecheck data in 
> the elements. For example build scripts that are intermediate stage 
> within a project are not important for the result. Other cases are we 
> do not build some of the code (for example FFmpeg). We still want to 
> tell the license of the source code. But we should also say what 
> applies to the element's artifact. Optionally, specify it for each 
> split domain. There is also documentation which usually has difference 
> licensing.

The current approach is to build something that's completely external to 
the BuildStream program (although it will still hopefully be maintained 
under the BuildStream umbrella, in the BuildStream GitLab group). That 
means that the script won't have access to internal element data and 
config options. Instead, it works by invoking "bst show" to get a list 
of dependencies, and then checking out the source code from each 
dependency in order to perform the license scan.

In that approach, I don't think there's any way to pay attention to 
split domains.

For excluding certain elements (like intermediate stages), I was 
planning to introduce an 'ignore list', which users can maintain, and 
which the script will read. Any element on the ignore list wouldn't be 
scanned and wouldn't be mentioned in the output. This could also be used 
to remove stack and compose elements from the list, which aren't worth 
including in the output since they don't have any sources to scan.

Scanning artifacts as well as sources is an interesting suggestion. I 
don't think artifacts are ever likely to contain license information 
which wasn't in the sources, so it wouldn't add any additional license 
information to the results. But I suppose in some cases it would be 
interesting to see which license information ends up in the actual 
artifact and which is only found in the source code.

On the other hand, I think scanning artifacts as well as sources would 
add a lot of extra time, and the process already takes a very long time 
to complete. It took nearly 10 hours for the runners to do a full scan 
of everything in Freedesktop-sdk as it is. I don't think it's worth 
doing something that'll make it take even longer.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/freedesktop-sdk/attachments/20200825/bfef0bfe/attachment.htm>


More information about the Freedesktop-sdk mailing list