On Sat, Nov 25, 2023 at 11:22 AM Miroslav Suchý <msu...@redhat.com> wrote: > > Dne 24. 11. 23 v 20:07 Mark Wielaard napsal(a): > > I think the main conflict is that SPDX identifiers and expressions are > meant to apply to individual source files (and not describe the general > intended license of the larger work), > > SPDX license ids are used in SPDX SBOMs that are intended to describe large > work > > where the Fedora spec file > License tags is meant to provide the approximate license of the > (sub)package as a whole (which can consist of multiple larger, possibly > independently licensed, works). > > Fedora license tag should NOT provide approximate license. It should provide > exact license. >
This is *never* going to be possible as things currently work. This is *explicitly* why we document the License tag as informational. It's *all* best-effort. https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_license_field > Also I found the tooling around this hard to use/understand. It seems > various tools just haven't caught up or aren't even packaged for Fedora > itself and are only available in some giant container image blob (e.g. > fossology, really a webapp that you then should run "locally", which I > never could get working [or simply didn't understood how to use]). > > True. We are trying to improve it. Every day. I have just packaged another > dependency for a tool that will be helpfull. > > You can use OSUOSL instance of fossology https://fossology.osuosl.org/repo/ > with login:password: fossy:fossy > > Or you can use scancode-toolkit from Copr repo > https://copr.fedorainfracloud.org/coprs/eclipseo/scancode-toolkit/ > > The command to do the analysis is then: > > $ scancode --license --html /tmp/spdx.html --json /tmp/spdx.json > --license-references . > > The output is then: http://miroslav.suchy.cz/fedora/spdx-reports/mutt.html > > For the elfutils project Housam Alamour created a new eu-srcfiles > utility for version 0.190 (already packaged for Fedora 37..Rawhide), > which might be helpful for native ELF plus DWARF based packages. At the > moment it does require you have the build requires and debugsources > installed, but a newer version will query debuginfod for that. > > With that we might be able to build somewhat simpler command line tools > to help packagers extract all the license snippets found in the source > files included in each binary. > > Great. I did not know this. > > e.g. for the mutt package, you can get a rough estimate of licenses > used in all the binaries using (if that is really what you are > insisting packagers do instead of just using the declared licenses): > > $ dnf install mutt > $ dnf builddep mutt > $ dnf debuginfo-install mutt > > $ for i in `rpm -ql mutt`; do eu-elfclassify --elf --file $i; \ > if [ $? -eq 0 ]; then eu-srcfiles --exec $i; fi; done | sort -u \ > | xargs licensecheck --shortname-scheme spdx | cut -f2- -d: \ > | sort -u | sed -z -e 's/\n / AND /g' > > GPL-2.0-or-later AND GPL-3.0-or-later AND HPND-sell-variant AND LGPL > AND LGPL-2.1-or-later AND *No copyright* GPL-2.0-or-later AND *No > copyright* public-domain AND *No copyright* UNKNOWN AND UNKNOWN AND > Zlib > > Which still requires lots of investigation (there are various > UNKNOWNs), but might be a good starting point. At least for me > something like that would be much more usable than a container image > packaged webapp. > > There is many ways to do it. We are all exploring various ways. If this is > better for you then use it. I am afraid this will not work for noarch > packages. > > > > On Mon, 2023-09-18 at 20:47 -0400, Richard Fontana wrote: > > On Sun, Sep 17, 2023 at 11:37 AM Mark Wielaard <m...@klomp.org> wrote: > > To be clear I don't mind using a different set of short-hands in the > License tags. Although it feels a little odd to try to create separate > identifiers for lax-permissive MIT/BSD like licenses which sometimes > just different in one or two words. > > FWIW, usually a difference of one or two words wouldn't be enough to > result in creation of a distinct SPDX identifier. The standard applied > by SPDX is, informally, whether the difference is "legally > substantive" (this has its flaws but seems to work OK in practice). > > But then for the Hybrid BSD license that parts of bzip and valgrind > uses it actually has different identifiers depending on the version of > the package (it actually has both bzip2-1.0.5 and bzip2-1.0.6 which are > literally exactly the same except for the version string and the > copyright year). > > The SPDX uses markup which allows variation in license. E.g. when you look at > > https://spdx.org/licenses/BSD-3-Clause.html the red parts allow variations. > What and how is better visible in source: > > https://github.com/spdx/license-list-XML/blob/main/src/BSD-3-Clause.xml > > Tags <copyrightText> allows any variations. <alt> allows only regexp > variations. > > OK, so how would we do this for this Hybrid BSD license? > > And what is "well defined"? > > Open issue with your proposal at > https://gitlab.com/fedora/legal/fedora-license-data > > "well defined" means that there will be common consensus that the definition > is clear. :) > > > > What is the goal of dropping the effective license and make packagers > list all the licences of some code snippets originally incorporated > under lax-permissive licenses? Is that not just make work for the > packager if upsteam just uses one effective license? > > One rationale is given in Fedora legal documentation: > "There is no agreed-upon set of criteria or rules under which one can > make conclusions about “effective” licenses or reduce composite > license expressions to something simpler." > > Isn't that not just like most other things fedora, we follow > upstream. Upstream states the (effective) license and we just adopt > that. If we notice that there might be a bug and the effective license > isn't exactly as the upstream project states, then we fix that > upstream? > > I basically don't recognize "effective license" as a valid concept. I > see people using it, perhaps increasingly, but I never see any > definition of what it means. > It sounds like you are using it to mean "whatever the upstream project > seems to say the license is, despite possible evidence to the > contrary". I'm not sure that's how other people are using "effective > license". > > I would call it the intended license. Normally an (upstream) project > declares their intended license by placing a COPYING or LICENSE > document at the top-level (or different ones in subdirs if different > parts have different intended licenses). That intended license is the > effective license, meaning the license you would have to follow when > redistributing the project. Any other licenses used in the project > would only have requirements that are subsumed by the intended license. > > No. > > This was maybe enough in past when industry used OSS projects rarely. Now it > is used masively. And we want that industry complies with our OSS licenses. > If we want this then we should provide good overview what licenses are used. > > E.g., your mutt package. The upstream claims it is GPL-2.0-or-later > https://gitlab.com/muttmua/mutt/-/blob/master/COPYRIGHT?ref_type=heads but > there is > > https://gitlab.com/muttmua/mutt/-/blob/master/wcwidth.c?ref_type=heads#L8 > which is HPND-Markus-Kuhn. And now imagine that there is user/company for > which HPND-Markus-Kuhn license is problematic and they cannot use it. If you > use only > > License: GPL-2.0-or-later > > they will never know. But when you use > > License: GPL-2.0-or-later AND HPND-Markus-Kuhn > > then it is pretty easy for them to do the audit and avoid this package and > use alternative. > > This example may look artificial, but I know a lot of companies that want to > avoid GPL-3.0-or-later. And Fedora itself avoids many licenses that other > find ok. E.g. JSON or BSD-3-Clause-Clear > > https://docs.fedoraproject.org/en-US/legal/not-allowed-licenses/ > > Both REUSE and SPDX are intended to be used at the individual source > file level. Trying to use them at the binary or package level as Fedora > wants to do seems to bring up these conflicts yes. > > I disagree. As I mentioned SPDX defines whole SBOM model exactly for large > projects and large deployments. > > That doesn't mean there aren't "standards" for this. Like I said > upstream often has a top-level LICENSE, COPYING or README file > declaring the intended license. There also often is a NOTICES file > listing any legal notices subsumed by the intended/effective license. > > This is not standard. This is habit. Very far from any possible automation > and machine parsing. > Licenses aren't for machines, they are for people. That's why some licenses have actual requirements or specifications of how to apply licenses. Please keep that in mind. > > Just dropping the license tags from the spec file is an interesting > idea. Would we then adopt something like a separate copyright file like > Debian does? > > Likely. It needs to be proposed as Change and discussed and approved. I > expect a LOT of discussion about it. > > I will be very glad if somebody will drive this. > Please no. When debbuild adapted RPM spec to build Debian packages, the %copyrightdata section was added[1][2] for this purpose. But it's excessively tedious to use and maintain per-file license data. I vastly prefer our License tag over having to do something like DEP5[3]. [1]: https://github.com/debbuild/debbuild/commit/91699c5a714fe6a80b55763be84e5fb48385d556 [2]: https://github.com/debbuild/debbuild/commit/ddfc6d783b0d37093816a6c74ee680632eb5d7ae [3]: https://dep-team.pages.debian.net/deps/dep5/ -- 真実はいつも一つ!/ Always, there's only one truth! -- _______________________________________________ legal mailing list -- legal@lists.fedoraproject.org To unsubscribe send an email to legal-le...@lists.fedoraproject.org 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/legal@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue