unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Leo Prikler <leo.prikler@student.tugraz.at>
To: Chris Marusich <cmmarusich@gmail.com>, Leo Famulari <leo@famulari.name>
Cc: guix-devel@gnu.org
Subject: Re: The purpose of the "license" list of a Guix package (Was: Re: Jam: which licence is this?)
Date: Sat, 08 May 2021 12:16:48 +0200	[thread overview]
Message-ID: <ac943dc1c460383bbeaddc6ce318e658636c07bc.camel@student.tugraz.at> (raw)
In-Reply-To: <871rai2y5f.fsf_-_@gmail.com>

Hi,

Am Freitag, den 07.05.2021, 11:31 -0700 schrieb Chris Marusich:
> My understanding is that the intent of the "license"
> field (which can be a list) in a Guix package is to call out the
> "main"
> (deliberately vague here) licenses related to the code, not to
> provide
> an exhaustive or authoritative description of all the licenses
> affecting
> every file in every possible situation.  As Leo has demonstrated, a
> package's license field (like probably most summaries of license
> information) is surely not exhaustive or authoritative; the licenses
> in
> the source code files themselves are authoritative.
I agree with both you and the other Leo, but I think we're getting a
little off-topic here.  The reason,why it's necessary to argue about
jam's license is because (as I see it) we don't have a jam package and
it is a necessary tool to build a package someone wants to contribute. 

The reason why we don't care about this when it comes to Autotools is
that we have Autotools packaged, and it is expected that all the stuff
generated by it exists in the package post the configure phase of a
package that uses gnu-build-system unmodified.  This makes it, so that
this question only ever arises for packages distributing `make dist`-
generated packages in the first place, and the question for those
should not be "Do we include those licenses", but "Do we trust, that
this was really generated with `make dist`"?

> My understanding is that a packager is expected to audit the licenses
> in
> the files when adding the package.  If an exhaustive audit is not
> feasible (which is often the case), they should perform a reasonable
> spot check and then list the "main" licenses in play in the licenses
> file.  As in the GNU Hello case, there is clearly a judgment call
> regarding what goes into the Guix package's licenses list, since a
> simple list cannot describe everything.  In general, even if
> hypothetically you did do an exhaustive audit of all files, it is not
> practical to try to describe all the licensing implications in the
> Guix
> package definition.  I don't think that's the purpose of the license
> field.
I agree, that the main license (the one that appears first in the
license list, or the one that appears alone) should more or less cover
"the whole package", but if there's a range of *actual* source files
(including source files from which a bizarre compiler or build tool is
built, that is afterwards used by the package), that should imo be
included in that list with a suitable comment.  

I don't fault any packager, who misses one or two licenses in some
obscure hidden file, but if someone finds and adds them, I think that
patch should likely be accepted.

> One more thing.  I have always felt that the license field of a Guix
> package is intended to call out the licenses that apply to the built
> output of the package in particular.  In other words, I think the
> license field is intended to call out the licenses that are most
> likely
> to apply in the situation where you "link" with the built output of
> the
> package.  That is the purpose of many packages: to be "linked" from
> other source code.  Since it is often the case that software you
> write
> will not be "linking" with the package's build scripts, but rather
> with
> the package's built output, the license of the build scripts are less
> relevant for that use case.
I think this misses the point when it comes to stuff like the artwork
for a game.  Clearly, that artwork is a substantial part of the game
and deserves a place in the license field.  The other way around,
whenever you encounter some Creative Commons license with the comment
"artwork", this might not concern linkage (unless the artwork is baked
into the program itself, as might be the case in some GTK and Qt
applications, but those are rarely "linked" from other programs), but
rather redistribution.

> In the end, I think a packager is expected to be operating in good
> faith, in accordance with the FSDG.  This means that packagers look
> for
> freedom issues and address them when found.  It does not mean that
> packagers are expected to provide a detailed "bill of materials" for
> every single package, although that is certainly something that some
> people think is important (and some people don't).
> 
> This reminds me of the following fun debate from FOSDEM 2020:
> 
> "Does Careful Inventory of Licensing Bill of Materials Have Real
> Impact
> on FOSS License Compliance?"
> https://archive.fosdem.org/2020/schedule/event/debate_license_compliance/
> 
> I think you might enjoy watching it.  Basically, the "negative"
> argument
> (careful inventory of licensing bill of materials does NOT have a
> real
> impact on FOSS license compliance) is somewhat relevant here, and it
> went something like this: the transitive closure of required source
> code
> itself is a kind of "bill of materials", and if you only use free
> software, it is always easy to comply - just provide the source code.
Just saw that debate.  I think the actual argument went somewhat like
"the transitive source closure *contains* whatever you might argue
constitutes a bill of materials", and I think that holds.  Every given
package should only need to consider what licenses itself brings into
the mix, not what some person upstream does (of course while complying
with the licenses of its dependencies).

However, compliance is not *that* simple.  If you're dealing with
copyleft, providing the source is not enough, you also need to license
your own work under that copyleft license, e.g. the GPL.  That said,
GNU Guix makes it fairly easy to check when you need to do that.  Have
a package with (license:gplN+?) in your inputs?  You probably need to
GPL it.

> It was a fun debate.  I happened to be in the audience, and I
> mentioned
> in a question at the end that Guix makes it easy to provide the
> transitive closure of source for any given piece of software.  I
> don't
> know of any other tool that does this for all software in an
> operating
> system, except maybe Nix.
For the record, what command gives you transitive source closure?  I
can see transitive binary closure with `guix pack`, but I don't think
we do source closure unless asked to `guix build --no-substitutes`. 
Maybe a missing feature?

Regards,
Leo



  parent reply	other threads:[~2021-05-08 10:17 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-25  6:15 Jam: which licence is this? Jack Hill
2021-04-25  7:16 ` Ricardo Wurmus
2021-04-25 17:25   ` Mark H Weaver
2021-04-25 17:35     ` Leo Famulari
2021-04-25 20:37       ` Mark H Weaver
2021-04-26 16:24         ` Leo Famulari
2021-05-02  4:53           ` Mark H Weaver
2021-05-02 15:20             ` Leo Famulari
2021-05-07 18:31               ` The purpose of the "license" list of a Guix package (Was: Re: Jam: which licence is this?) Chris Marusich
2021-05-07 19:23                 ` The purpose of the "license" list of a Guix package Chris Marusich
2021-05-08 10:16                 ` Leo Prikler [this message]
2021-05-08 11:17                   ` The purpose of the "license" list of a Guix package (Was: Re: Jam: which licence is this?) Ricardo Wurmus
2021-05-08 11:22                     ` Leo Prikler
2021-05-08 20:52                   ` Maxime Devos
2021-05-08 23:04                     ` Leo Prikler
2021-05-09  8:33                       ` Maxime Devos
2021-05-02 21:12             ` Jam: which licence is this? Ludovic Courtès
2021-04-25 17:42 ` Mark H Weaver
2021-04-28 13:20   ` Maxim Cournoyer
2021-04-25 20:23 ` Vagrant Cascadian
2021-04-25 20:49   ` Ricardo Wurmus
2021-04-25 20:53   ` Jack Hill
2021-04-25 21:04     ` Jack Hill
2021-04-26 14:36       ` Jack Hill
2021-05-02  5:02         ` Mark H Weaver
2021-04-25 21:41     ` Vagrant Cascadian

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ac943dc1c460383bbeaddc6ce318e658636c07bc.camel@student.tugraz.at \
    --to=leo.prikler@student.tugraz.at \
    --cc=cmmarusich@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=leo@famulari.name \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).