Re: license of the binary policy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 13, 2022 at 10:38 PM Jilayne Lovejoy <jlovejoy@xxxxxxxxxx> wrote:
>
> On 7/12/22 8:31 AM, Richard Fontana wrote:
> > On Mon, Jun 6, 2022 at 5:51 PM Fabio Valentini <decathorpe@xxxxxxxxx> wrote:
> >> On Mon, Jun 6, 2022 at 11:14 PM Richard Fontana <rfontana@xxxxxxxxxx> wrote:
> >>> On Wed, May 25, 2022 at 2:12 AM Otto Urpelainen <oturpe@xxxxxx> wrote:
> >>>
> >> I wonder what you think about simple cases of "effective" licenses?
> >> For example, most Rust projects are dual-licensed as "Apache-2.0 OR
> >> MIT", but some odd ones are released under "MIT"-only or
> >> "Apache-2.0"-only licenses.
> >>
> >> So, for a binary package that contains code from both "Apache-2.0 OR
> >> MIT" and "MIT"-only projects, we usually "collapsed" that into just
> >> "MIT".
> >> Just enumerating the licenses in this case - "(Apache-2.0 OR MIT) AND
> >> MIT" - would be kind of silly, in my opinion.
> > I wanted to follow up on this point since it does feel to me like we
> > are stubbornly clinging to the practice of recording a FOSS dual
> > license in the license tag, when not doing so could provide some
> > simplification of license tag expressions.
> >
> > In my mind, there were a few reasons for this practice: (1) it was
> > what Fedora traditionally did; (2) it matches general upstream culture
> > (the idea of passing down a FOSS license choice through a chain of
> > distributees; (3) there's a contrary corporate culture seen in some
> > quarters of making sure that "bad" (from their perspective) FOSS
> > licenses in a dual license scheme are eliminated, which I think is
> > based mostly on ignorance and copyleftphobia and so forth, which we
> > don't want to encourage or be associated with; (4) there isn't going
> > to be a good, consistently-applicable basis for selecting one or the
> > other license -- this is related to (3). (4) is also related to the
> > "effective license" problem: there isn't really any coherent effective
> > license doctrine that can be consistently applied. I guess also (5)
> > which is a community counterpart to (3): you would end up with
> > licenses being selected out of a dual license based on the individual
> > preferences of a Fedora packager. In one case, a Fedora packager might
> > personally prefer the Apache License 2.0 over MIT, in another case the
> > opposite. This contradicts the tradition of passing down the choice to
> > the user.
> Ha, you start out with "stubbornly clinging" and that maybe not
> recording the dual license in the license tag helping simply things, but
> then after reading your points (1) through (5), I felt even more
> convinced of the value in recording/retaining such info!
>
> I must say - the scenario where someone makes the choices (point (3) by
> example) can be really annoying for downstream recipients or downstream
> of downstream. I have memories of doing source code audits and running
> into this and relying on some form of "tribal knowledge" that there was
> a choice upstream that had gotten removed and then going upstream to
> find it, so the choice could be made "again". Fedora, as a free and open
> source software distro, need not make an explicit choice between two
> free and open source licenses (in the way a commercial software
> distribution might), so the policy of passing along the original choice
> makes sense to me as a matter of convenience (for downstream recipients)
> and in keeping with the principles of Fedora being free and open more
> generally.

Sorry, I'm somewhat confused by these last two responses to my question.

On the other hand, you seem to be making arguments that *favor*
simplification of dual licenses.
But the conclusion seems to be that "just specify everything" is still better?

For a few packages, the license string would get very long (hundreds
of characters), and basically meaningless for any user of the package.

And what I don't understand: In the case of a project that contains -
or includes - both "(ASL 2.0 OR MIT)" and "MIT" licensed code, hasn't
the upstream project basically already made the decision about the
resulting license (i.e. "MIT")?

Assume that I as the packager would actually make a "choice" here, and
"choose" ASL 2.0", that would result in a package with license "ASL
2.0 and MIT".
However, if I make the more "obvious" choice of "MIT", the license
will be just "MIT".

So the first "choice" results in a package with *strictly more*
licensing restrictions than the second "choice".
I as the packager don't want to (or should?) produce a package that
has stronger licensing restrictions than necessary (or intended).

> >> Adding the full "Apache-2.0 OR MIT" choice from the first project
> >> seems to be pointless, since it actually cannot result in a choice of
> >> license - because that choice is already forced by the "MIT"-only
> >> second project. Please correct me if this analysis is wrong.
> sort of, but given the above points, I don't think it hurts to capture
> "(Apache-2.0 OR MIT) AND MIT" - it's accurate and somewhat obvious as to
> what is going on.

It might be accurate. But this is also a very simplified example to
illustrate my point.

Here's a more realistic one (taken from one of my packages, where I
also happen to be the upstream developer).
This is the list of licenses of the project itself and its
dependencies, which are all statically linked together into a final
binary:

# (ASL 2.0 or MIT) and BSD
# ASL 2.0
# ASL 2.0 or Boost
# ASL 2.0 or MIT
# BSD
# MIT
# MIT or ASL 2.0
# MIT or ASL 2.0 or zlib
# Unlicense or MIT
# zlib or ASL 2.0 or MIT

Just recording everything would result in a license string of:
License: (ASL 2.0 or MIT) and BSD and ASL 2.0 and (ASL 2.0 or Boost)
and (ASL 2.0 or MIT) and BSD and MIT and (MIT or ASL 2.0) and (MIT or
ASL 2.0 or zlib) and (Unlicense or MIT) and (zlib or ASL 2.0 or MIT)

This is already kind of silly, because it's stupidly long, and there
are duplicates, or clauses that are identical except for the order of
their contents.
I would not say that this is "somewhat obvious as to what is going
on", because nobody will even read this string in its entirety.

Now, is reordering the contents of the clauses and removing any
duplicates already considered as doing an "effective license
analysis"? :)

Anyhow, for this package, I have "simplified" the license string to:
License:        ASL 2.0 and BSD and MIT

This satisfies every clause, and I'd argue it is *much more obvious*
to users what it means than the silly long string above.
It doesn't give users any "choices", but any "choice" they would have
made (differently than what I did when packaging this project) would
have resulted in a package with *strictly more* restrictions, but
never *fewer*.

I'd argue that 1) minimizing restrictions and 2) making the resulting
license actually understandable for users is much more important than
to preserve any "choice" that, if exercised differently, would only
result in either more restrictions, more complicated licensing terms,
or both.

Fabio
_______________________________________________
packaging mailing list -- packaging@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to packaging-leave@xxxxxxxxxxxxxxxxxxxxxxx
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/packaging@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite Forum]     [KDE Users]

  Powered by Linux