Line 3: | Line 3: | ||
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | <!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | ||
= | = SPDX License Phase 1 <!-- The name of your change proposal --> = | ||
== Summary == | == Summary == |
Revision as of 06:57, 10 May 2022
SPDX License Phase 1
Summary
Transition from Fedora's short name of licenses to standardized SPDX license formula.
Owner
- Name: Miroslav Suchý
- Name: Jilayne Lovejoy
- Name: Neal Gompa
- Name: David Cantrell
- Email: msuchy@redhat.com, dcantrell@redhat.com, jlovejoy@redhat.com, ngompa13@gmail.com
Current status
- Targeted release: Fedora Linux 38
- Last updated: 2022-05-10
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
Feedback
Ancient feedback from SPDX organization.
Summary from fedora-legal mailing list: we want this to happen, but this is big scope and likely will happen over more than one release.
Summary from devel-list: TBD
Benefit to Fedora
The use of a standardized identifier for license will align Fedora with other distributions. And allows efficient and reliable identification of licenses.
Scope
- Proposal owners:
- Miroslav Suchý: license-fedora2spdx - done
- Miroslav Suchý: allow
license-validate
to use spdx - TODO - David Cantrell: have good licenses in machine readable formate - done
- David Cantrell: separate licenses from rpminspect-data-fedora BZ 2077914 - TODO
- David Cantrell: generate from license data the wiki page similar to Licensing:Main
- SOMEBODY: help maintainers who want to proactively change license string to SPDX indetifiers.
- Out of Scope: In this phase, we do not target to move **all** packages to SPDX identifiers. That will be done in Phase 2. In Phase 2 we will identify the remaining packages and open BZ or PR.
- Other developers:
Early adopters can migrate their License tag to the SPDX identifiers. Proposal owners will gather feedback and will work on potential problems.
- Release engineering: #Releng issue number
- Policies and guidelines: Licensing page has to be altered.
- Trademark approval: N/A (not needed for this Change)
- Alignment with Objectives:
Upgrade/compatibility impact
License strings are not used anything in run time. This change will not affect the upgrade or runtime of Fedora.
During the transition period, developer tools like rpminspect, licensecheck, etc. may produce false negatives. And we have to define a date where we flip these tools from old Fedora's short names to the SPDX formula.
How To Test
Users should not need any testing. These steps are for package maintainers:
- Fetch your license string from
License
tag in SPEC file. - Test that your current Fedora's short name is correct. E.g.
$ license-validate -v 'MIT or GPLv1' Approved license
- Convert license string to SPDX formula:
$ license-fedora2spdx 'MIT or GPLv1' Warning: more options how to interpret MIT. Possible options: ['Adobe-Glyph', 'MIT-CMU', 'MIT-CMU', 'HPND', 'HPND', 'no-spdx-yet (MIT license (also X11))', 'SGI-B-2.0', 'SGI-B-2.0', 'SMLNJ', 'MIT-enna', 'MIT-feh', 'mpich2'] mpich2 or GPL-1.0-only
In this example, the short name GPLv1
can be converted straight to GPL-1.0-only
. But short name MIT
stands for several licenses with different SPDX identifiers. You have to examine what license is package actually using. license-fedora2spdx
will try to convert the formula and use one of the options but without any heuristics. You need to manually review the license.
You can check if SPDX formula is correct using:
$ license-validate -v --file FIXME "MIT-CMU or GPL-1.0-only"
User Experience
Users should be able to use standard software tools that audit licenses. E.g. for Software Bills of Materials.
Dependencies
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
Documentation
N/A (not a System Wide Change)