[License-review] For Approval: License Zero Reciprocal Public License
Kyle Mitchell
kyle at kemitchell.com
Mon Oct 23 22:55:21 UTC 2017
Josh,
I've been busy working out variations, trying to cover all
the concerns we raised, plus a few from Richard and McCoy,
without doubling the length of the license or veering into
heavy-duty contract structure.
The frontrunner:
3. Use with any software patch must be accompanied by
release of that patch as Open Source Software per the
Open Source Definition published by the Open Source
Initiative.
4. Use as a component of, or in development of, other
software must be accompanied by release of that
software as Open Source Software per the Open Source
Definition published by the Open Source Initiative.
5. A failure to meet condition 3 or condition 4 is
automatically excused on required release of software,
or permanent cessation of use involving the software,
within ____ calendar days of first failure to meet the
condition involving the same software or a preexisting
work upon which it was based.
Number 3 and 4 now state release requirements affirmatively.
The "grace period" mechanism for both now lives in a
separate 5. Number 5 is structured like a path to
forgiveness, akin to section 8 of (A)GPL-3.0.
The last clause, "...or a preexisting work" attempts to
solve the possible "succession of patches" loophole
mentioned earlier. Choice of words came from 17USC101's
definition of "derivative work" in terms of a work "based
on" some "preexisting work".
A few worked hypotheticals, for the deepest decision-tree
paths:
- A releases X, a 3D image renderer, under L0-R (15 days).
- B starts using X without patches, standalone, to render
images, on 2017-12-01. No condition applies to this use.
- B starts using X with patch Y1 on 2018-01-01. Condition 3
applies.
- B starts using X with patch Y2, a derivative of patch Y1,
on 2018-01-05. Condition 3 applies.
1. Come 2018-01-31, if B is still using X with patch Y2, and
B hasn't released patch Y2 as Open Source, B is outside
permission granted by L0-R.
2. If B releases patch Y2 on 2018-01-10, and keeps using X
with patch Y2 through 2019, B is within permission
granted by L0-R.
B's failure to meet condition 3 with patch Y1 was
"automatically excused on ... permanent cessation of use
involving the software [patch Y1, on 2017-01-05] ...
within 15 calendar days of first failure to meet the
condition involving the same software [patch Y1, on
2017-01-05]".
B's failure to meet condition 3 with patch Y2 was
"automatically excused on required release of software
[of patch Y2 as Open Source on 2017-01-10] ... within 15
calendar days of first failure to meet the condition
involving the same software [patch Y2], or a preexisting
work upon which it was based [patch Y1, on 2017-01-01 +
15 = 2017-01-16]".
3. B uses X with patch Y2 through 2018-01-14 and stops. B
is within its rights under L0-R. B's failures to meet
condition 3 with both patch Y1 and patch Y2 were
automatically excused on permanent cessation of use
within the grace period.
But:
Resuming using of X with patch Y2 without Open Source
release would be outside of permission granted by L0-R.
The "cessation of use involving the software" was not
"permanent".
Releasing patch Y2 later, say 2019-01-01, and then using
X with patch Y2 from 2019-01-01 is still outside of
permission granted by L0-R, because release did not occur
within the grace period.
Modifying patch Y2 to make a new derivative patch, patch
Y3, releasing patch Y3, and using patch Y3 is still
outside permission. The grace period runs back from
first use with patch Y1, a preexisting work.
However, creating a new patch to X, patch Z, that does
not derive from patch Y1, patch Y2, or patch Y3, starts a
new, independent grace period clock running.
Working examples like this always make for a long, dense
message. Thanks for wading through!
--
Kyle Mitchell, attorney // Oakland // (510) 712 - 0933
More information about the License-review
mailing list