[Freedesktop-sdk] License blacklisting [Was: license-checking script for BuildStream projects]
Chandan Singh
chandan at chandansingh.net
Thu Aug 27 21:54:01 UTC 2020
Hi Tristan,
I don't have enough background on the FreeDesktop side of things, but
a couple of comments inline regarding the BuildStream part of the
proposal.
<snip>
> For a vast portion of open source / free software available in the
> wild, this conscious interpretation and decision needs to be made by a
> human being.
>
> I would see this implemented in BuildStream in the following way:
>
> * Declare a new "licenses" public data format in the bst public data
> domain[3]
>
> This is a place where BuildStream project maintainers can record
> the decided license for the module being built, similar to yocto's
> LICENSE variable[1].
Personally, I think BuildStream itself shouldn't care about licenses.
It should probably not even know that licenses are a thing. As I see
it, BuildStream is a build tool and managing licenses shouldn't be its
responsibility. Auditing of sources seems like a separate concern to
me.
At least the way I use BuildStream, by the time I decide to use a
source in a BuildStream element, I have already made a decision to use
it and hopefully have done my due diligence and auditing. But, maybe
others have different usage patterns. In any case, I feel like
BuildStream core shouldn't have an opinion about licenses or how to
manage them. But, having a plugin do this job is definitely fair game.
> For compatibility across tooling, and consideration of possible
> further automation (see further below), we should probably assert
> that these license annotations be valid SPDX license
> identifiers[4].
>
> * We would add a new Element plugin in BuildStream, and call it
> something like `assertlicense`
>
> In this element's `config`, it would allow the user to declare
> a blacklist.
>
> This element could output a manifest of licenses in the artifact,
> or produce no output at all, the important part is that this
> element can be added to the pipeline, depend on some elements,
> and halt the build with an error in the case that invalid
> licenses are detected.
I don't have anything against such a plugin. But, I'd be much happier
if the public data specification was defined by such a plugin rather
than BuildStream itself. Maybe a family of plugins decide to follow a
shared format, and maybe some other family could decide to do things
differently if their needs aren't met. Either way, BuildStream core
won't need to change or care.
<snip>
Cheers,
Chandan
More information about the Freedesktop-sdk
mailing list