Wiki: https://fedoraproject.org/wiki/Changes/CommonLicenses
Discussion Thread: https://discussion.fedoraproject.org/t/179009 **This is a proposed Change for Fedora Linux.** This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee. == Summary == License texts for a subset of commonly used, approved licenses will be shipped in common-licenses. Packages can opt to reference this rather than shipping their own license texts. == Owner == * Name: [[User:Salimma|Michel Lind]], [[User:Ngompa|Neal Gompa]] * Email: michel AT michel-slm DOT name, ngompa13 AT gmail DOT com == Detailed Description == A few common licenses are used by a majority of Fedora packages (e.g. GPL/LGPL, BSD, Apache). Many of these licenses have standardized text (MIT notably does not, since the license file contains a copyright notice specific to the distributed software), and our guidelines as of now requires [ https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_license_text shipping the license text] if it is provided by upstream. This causes a lot of duplication - as a back of envelope calculation: * [https://www.apache.org/licenses/LICENSE-2.0.txt Apache-2.0 text] is 12K * [https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt GPL 2 text] is 18K * [https://www.gnu.org/licenses/gpl-3.0.txt GPL-3.0 text] is 35K Assuming 25K source packages, and each source package only has one binary package that carries the license (and other subpackages inherit the license file via dependency) and 20K average license size, we are wasting up to 500 MB on disk (the actual figure will be way less given most people won't have all packages installed). We propose pre-shipping common license texts in an RPM, `common-licenses`. This will have the texts in this layout -- as an example, for GPL-3.0: * license text in `/usr/share/common-licenses/GPL-3.0/LICENSE` * valid identifiers in `/usr/share/common-licenses/GPL-3.0/identifiers.json` - in this case, `["GPL-3.0-only", "GPL-3.0-or-later"]` * a package that wants to use this license text can do so with `Requires: common-license(GPL-3.0-or-later)`; the package comes with a dependency generator that will index all `identifiers.json` files shipped == Feedback == == Benefit to Fedora == Once this gets adopted more broadly we will start seeing a non-trivial amount of disk space saving. This will also benefit packagers - they will have a set of standard license texts on disk, rather than having to look them up in Fedora documentation, or SPDX, etc. In cases where the license requires shipping a copy of the text, but upstream does not do this, while this should still be addressed upstream, in the meantime we can unblock packagers by having the source RPM `BuildRequires: common-license(the-license-identifier)` for each missing licenses. == Scope == * Proposal owners: ** package `common-licenses` ** submit packaging guidelines changes to allow referencing common licenses in specific situations ** update `rpmlint` to accept requiring a common license in lieu of shipping license texts * Other developers: ** FPC - review packaging guidelines changes ** packagers - dogfood the new process * Release engineering: [https://pagure.io/releng/issues #Releng issue number] * Policies and guidelines: N/A (not needed for this Change) * Trademark approval: N/A (not needed for this Change) * Alignment with the Fedora Strategy: == Upgrade/compatibility impact == == Early Testing (Optional) == Do you require 'QA Blueprint' support? Y/N == How To Test == == User Experience == == Dependencies == == Contingency Plan == * Contingency mechanism: (What to do? Who will do it?) The RPM can still be shipped, as it just ships license files. Until we get guidelines updated to specify how packagers can make use of them, packages simply have to ship license texts as they do now and should not reference the license texts shipped in `common-licenses` yet * Contingency deadline: Final freeze * Blocks release? No == Documentation == N/A (not a System Wide Change) == Release Notes == \n
-- _______________________________________________ devel-announce mailing list -- [email protected] To unsubscribe send an email to [email protected] Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/[email protected] Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
-- _______________________________________________ devel mailing list -- [email protected] To unsubscribe send an email to [email protected] Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/[email protected] Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
