On Sun, May 02, 2021 at 12:53:07AM -0400, Mark H Weaver wrote: > My understanding is that the 'license' field of a package in Guix has > _always_ been meant to summarize the license restrictions associated > with the package source (the output of "guix build --source"), and > *not* merely the package outputs.
My understanding is that the license field describes the license that the package is redistributed under, which is typically a single license, but could be a dual (or multiple) license if that is the case. The manual section "package Reference" says: The license of the package; a value from (guix licenses), or a list of such values. It's the license of the package, overall. Not of every single file in the source code. > Really? Can you give some examples of this from our core packages? The 'hello' package is not core, but it is a typical Autotools-based package, and the core packages will be similar. It is, overall, GPL3 or later. However, the component source files bear these other licenses too: aclocal.m4: An unnamed permissive license AUTHORS: An unnamed permissive license configure: An unnamed permissive license configure.ac: An unnamed permissive license INSTALL: An unnamed permissive license maint.mk: An unnamed permissive license Makefile.am, Makefile.in: An unnamed permissive license README, README-dev: An unnamed permissive license THANKS: An unnamed permissive license build-aux/compile: GPL2+ build-aux/config.rpath: An unnamed permissive license build-aux/depcomp: GPL2+ build-aux/install-sh: Expat license build-aux/mdate-sh: GPL2+ build-aux/missing: GPL2+ build-aux/test-driver: GPL2+ doc: Some files bear the GFDL m4: Maybe unnamed permissive licenses (I'm getting tired) po/Makefile.in.in: The "GPL" with no version mentioned. I assume GPL1. po/POTFILES.in: An unnamed permissive license tests/*: An unnamed permissive license Some of those unnamed permissive licenses are the same as each other, some are different. It would be unhelpful if the package definition's license field said "gpl3+ gpl2+ gpl1 non-copyleft expat gfdl". Nobody would be able to answer the question "What is the license of the 'hello' package?" > The 'license' field can only mean one of these two things, and I think > it's fairly clear which one it should be. Moreover, I think that this > is what it has always meant in Guix. If not, that's a problem. My survey of the "hello" package shows that the license field in Guix is about the overall license of the program, not an exhaustive list of the many licenses used for various components of the source code. I don't think it's a problem to not mention those licenses in the package definition. When the user acquires the source code, they still get the benefits of the freely licensed components. Nothing is being hidden. The suggestion that our package definitions' license field should mention every license contain in the source code has no precedent in Guix, at least since I joined. I don't there is a demonstrated benefit to making that change.
