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
Make License field a multi-select #377
Comments
From the package approval thread for Texture Generator (https://content.minetest.net/threads/2765/#reply-7145)
|
This should be made very clear in UI. |
CDB doesn't really support user-choice dual-licensing (i.e. "OR" licensing) and it would get complicated when combined with "AND" licensing, which CDB needs to support because most Minetest packages are licensed this way, e.g. "to use this package you must comply with GPL to use the code AND comply with CC-BY-SA for the media." I would hate to see us try to cram a whole boolean expression tree in the license field. The simplest option is probably just to have the package authors choose one single set of license terms for the package metadata as published in CDB (probably should be the most restrictive ones), and if they wish to grant the user additional permissions, such as to use the package under alternative license terms, they should include it in their license file and README/long-description. CDB editors will verify that there are no restrictions/requirements imposed by the package license that aren't reflected in the metadata, and there are no grants of permission implied by the metadata that don't match the actual project license. Editors should not however block a package from being published for mismatches the other way around, i.e. permissions granted in the license not reflected in the metadata, or restrictions implied by the metadata that can be worked around according to the license. |
Yes and this reinforces my point which you left out from quote, saying it out loud because reply seems to be addressing only completely irrelevant portion of my comment and concern. Basically: This should be made very clear in UI / it has to be clear for users and for package maintainers. (this is for user's point of view, not for admin or CDB editor perspective) |
Why? There's even a standard for that: https://spdx.dev/ids/ |
I'd also like to specify my licenses via an spdx expression. Having to specify the same license for every code / media file is a weird restriction. Ideally it would also be neat if contentdb detected when a project is using REUSE and extracted the license information automatically. |
I would store the canonicalized/formatted expression in a text column. CDB mostly needs to display the whole expression on package pages anyway. At a glance the only other operation on licenses that I see is filtering on FOSS licenses, but there's already a field for that |
Oh, I just saw the edit. Where is the filtering used? I can't find any related feature in the website/api |
I'm probably the wrong person to be asked this, due to my limited experience with databases. For (1), you probably want to filter out non-free packages, right? I'd just store in a separate db column whether the package can be redistributed under a set containing free licenses only. This bool can be either set by a human, or computed by replacing all the non-free licenses with What do you mean with (2)? Filter by whether the package can be redistributed with this license, or filter by whether this license is used by the package at all? To conclude, I'd do it like this:
Storing the license expression via relations would probably be too complicated. |
Users should assume that they must comply with all selected license requirements if they want to use the entire package; if they want to use only a portion, then they are responsible for figuring out which license applies to the relevant specific parts.
The text was updated successfully, but these errors were encountered: