-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to deal with license compliance? #342570
Comments
I see two low hanging fruits:
Beyond these, we should look into manually marking packages that do not offer such flags by i.e. inserting a |
In case of 1, I still prefer a separate output for this, at least by the typical rationale we provide for splitting outputs in the Nixpkgs manual. Further, I have some conceptual concerns. Maybe it is too much perfectionism from my side, but oh well. First, license metadata should be provided for all inputs of an expression - sources, patches, our own machinery etc. Third: |
I’m unconvinced that a separate output is sufficient for compliance, or that making every package multi‐output would be well‐received. In fact I suspect that we may be obligated to include the licence and copyright notice in all outputs. We also cannot just copy template licence files, because the copyright notice differs between packages and must also be retained. IIRC the interactive program thing doesn’t matter unless we apply patches, thankfully, and GPLv3 loosens the requirement further. I think that the lowest‐hanging fruit to pick here would be to add code to stdenv that tries to automatically find and copy |
Patches from what exactly? Made by us/third party contributors or cherry-picked from upstream? |
I was wrong; even the GPLv2 has the exception that means we don’t really have to care about it. |
BTW, I think that encoding full SPDX expressions in |
Disclaimer: IANAL yet.
Among the reason we split outputs, is saving some bytes and finer garbage-collection.
Well, we can add a On the other hand I am not a fan of hidden automation. |
How about, as a minimum, we set the machine-readable copyright information licenses information to |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
A specific |
I do not think a separate output is okay, since derivative works must include at least a pointer to the licence text and in many cases must include the licence text verbatim, and the whole point of outputs is that they are distributed separately and can be downloaded in isolation. The best option is probably for multiple‐output packages to grow a |
That would be REUSE. |
REUSE is for annotating source code upstream for licence and copyright information. REUSE‐annotated code would be a lot easier for us to automate compliance with, but is a rarity in the wild; we can’t rely on it in general, though it may make sense to build our tooling around it as an ideal case and then figure out how to extend it to the common case. The REUSE tool can automate producing an SPDX‐format SBOM document, which may be closer to the kind of thing we’d want to install with packages. There is also CycloneDX; frankly, I have no idea how they compare, and asking Google for comparisons results in a bunch of incomprehensible LLM sludge. |
Proposition: we start by adding a REUSE compliance hook, and then ask package maintainers to upstream REUSE annotations if they feel they might otherwise be in legal trouble because of it. |
Full REUSE compliance is difficult to do retroactively and most projects won’t accept it as it adds a significant amount of annotation to every file in the repository. That’s not going to be an adequate approach to meeting our legal obligations under FOSS licences. It’s the entire NixOS project that’s exposed, not just individual package maintainers. |
I've made #353697, which is a naive setup hook that copies maintainer-specified license files into the default output. A review of it would be appreciated. I'll continue looking into making a fully automated |
Not necessarily: https://reuse.software/faq/#bulk-license |
Yeah, although they make it clear in the FAQ and the specification that they’d really rather you use file headers. |
Issue description
With the recent advent of Duckstation changing its license, some issues were raised about how Nixpkgs should deal with licensing compliance.
References
Duckstation licensing issue: #341915
The text was updated successfully, but these errors were encountered: