• Request for feedback: licensing a public specification

    From Nathan Willis@21:1/5 to All on Mon Jun 24 16:10:01 2024
    Hi all,

    I am interested in hearing some genuine feedback on a new license that I
    was in a position to need and have therefore drafted.

    It is specifically for a "functional specification", which individual implementers might implement separately in their own environments or
    software stacks, but which (unlike, say, a network protocol) are not going
    to directly interface with other implementations. And to be usable for free software, naturally (although not requiring every implementer to swear to
    any particular software licensing ethos).

    By way of background, I did a thorough search of other licensing options
    before heading down the path of making a bespoke one and, although I see a
    lot of commonality in the licenses used on specifications and standards
    like IS/IETF or W3C publications, the actual licenses employed there are specific to those works and to e.g. the W3C itself and, as a result, not reusable.

    Conversely, I think it is evident on even a cursory evaluation that a boilerplate "document license" like the GFDL or the crop of CC licenses do
    not fit several of the specific requirements for a specification license
    that software will have to implement. Nor, of course, do software licenses.
    I don't want to head into an endless tangent on those points, but if you're interested in the reasons I enumerated during that survey, please do feel
    free to email me privately (or perhaps fork the thread?). I also did a
    session in the legal & policy devroom at FOSDEM 2023 about this project; I
    can dig up a link to the video I'm sure.

    The point is, though, that when exploring it there were a few needs that
    stuck out as being peculiar to an "independent functional spec" use case.
    The big ones were:

    - Implementations need to be able to quote from the spec, even sometimes in
    big chunks, in comments and such, but still not be roped in as derivative
    works
    - Code snippets like algorithms, regular expression sets, and even variable
    or structure names need to be freely reusable, but not rope the
    implementation in as a derivative work
    - Translations should be permitted but must be designated as unofficial
    (due to the fact that translating human language is always ambiguous)

    And those factors would need to interact predictably with a specification document that is free to read, implement, and share ... but the
    specification should not be forked or modified (since that would defeat the purpose: interoperability).

    All that preamble now out of the way, the actual draft license in question
    is accessible here: https://github.com/n8willis/opentype-shaping-documents/blob/license/LICENSE.md

    You'll note that it is in a WIP draft and not yet committed. I believe it
    is readable at that URL even if you don't use JavaScript etc, but let me
    know.

    I don't mind going into further details about the preceding project that
    has spawned this license scenario, but that could get pretty tangential. It
    was work that I was hired to do back in 2018 (and have updated periodically since then), to do with how font shaping works. Basically, the gap between
    the Unicode and Opentype specs, and which HarfBuzz implements. So most of
    the writing work was tracing & understanding HarfBuzz's logic and
    translating that into documentary form. The company that hired me to do
    that then used the doc to develop their own free-software shaping engine.

    I would be most interested in anyone's analysis about the license and how
    it would interact with other free-software elements in the ecosystem at
    large, as well as whether they think it reads clearly, says what it intends
    to, and is reasonable.

    It might be a bridge too far to ask whether it sounds like something that another standards/specification effort could use, but I did try to be
    general when writing it, in the hopes of it being useful in the future (and applying it to another effort as a thought experiment might prove informative....).

    But any reaction or feedback at all would be welcome (although "you
    shouldn't write a license / you must have done your research wrong" is not likely to make it high on the list of comments that warrant a reply.... I
    also found it surprising that there were not good off-the-shelf options,
    but here we are).

    Thanks,
    Nate

    PS - I also know that the functional-spec case is not universal; other standards might care a LOT about interoperability, but it wasn't in scope
    here and adds, potentially, a lot of machinery, from compliance to testing
    to certification, and that was neither required nor doable, so not
    desirable.
    --
    nathan.p.willis
    [email protected] <http://identi.ca/n8>

    <div dir="ltr"><div>Hi all,</div><div><br></div><div>I am interested in hearing some genuine feedback on a new license that I was in a position to need and have therefore drafted.</div><div><br></div><div>It is specifically for a &quot;functional
    specification&quot;, which individual implementers might implement separately in their own environments or software stacks, but which (unlike, say, a network protocol) are not going to directly interface with other implementations. And to be usable for
    free software, naturally (although not requiring every implementer to swear to any particular software licensing ethos).<br></div><div><br></div><div>By way of background, I did a thorough search of other licensing options before heading down the path of
    making a bespoke one and, although I see a lot of commonality in the licenses used on specifications and standards like IS/IETF or W3C publications, the actual licenses employed there are specific to those works and to e.g. the W3C itself and, as a
    result, not reusable.</div><div><br></div><div>Conversely, I think it is evident on even a cursory evaluation that a boilerplate &quot;document license&quot; like the GFDL or the crop of CC licenses do not fit several of the specific requirements for a
    specification license that software will have to implement. Nor, of course, do software licenses. I don&#39;t want to head into an endless tangent on those points, but if you&#39;re interested in the reasons I enumerated during that survey, please do
    feel free to email me privately (or perhaps fork the thread?). I also did a session in the legal &amp; policy devroom at FOSDEM 2023 about this project; I can dig up a link to the video I&#39;m sure.</div><div><br></div><div>The point is, though, that
    when exploring it there were a few needs that stuck out as being peculiar to an &quot;independent functional spec&quot; use case. The big ones were:</div><div><br></div><div>- Implementations need to be able to quote from the spec, even sometimes in big
    chunks, in comments and such, but still not be roped in as derivative works</div><div>- Code snippets like algorithms, regular expression sets, and even variable or structure names need to be freely reusable, but not rope the implementation in as a
    derivative work<br></div><div>- Translations should be permitted but must be designated as unofficial (due to the fact that translating human language is always ambiguous)</div><div><br></div><div>And those factors would need to interact predictably with
    a specification document that is free to read, implement, and share ... but the specification should not be forked or modified (since that would defeat the purpose: interoperability).<br></div><div><br></div><div>All that preamble now out of the way, the
    actual draft license in question is accessible here:<br></div><div><a href="https://github.com/n8willis/opentype-shaping-documents/blob/license/LICENSE.md">https://github.com/n8willis/opentype-shaping-documents/blob/license/LICENSE.md</a></div><div><br></
    <div>You&#39;ll note that it is in a WIP draft and not yet committed. I believe it is readable at that URL even if you don&#39;t use JavaScript etc, but let me know.<br></div><div><br></div><div>I don&#39;t mind going into further details about the
    preceding project that has spawned this license scenario, but that could get pretty tangential. It was work that I was hired to do back in 2018 (and have updated periodically since then), to do with how font shaping works. Basically, the gap between the
    Unicode and Opentype specs, and which HarfBuzz implements. So most of the writing work was tracing &amp; understanding HarfBuzz&#39;s logic and translating that into documentary form. The company that hired me to do that then used the doc to develop
    their own free-software shaping engine.</div><div><br></div><div>I would be most interested in anyone&#39;s analysis about the license and how it would interact with other free-software elements in the ecosystem at large, as well as whether they think it
    reads clearly, says what it intends to, and is reasonable.</div><div><br></div><div>It might be a bridge too far to ask whether it sounds like something that another standards/specification effort could use, but I did try to be general when writing it,
    in the hopes of it being useful in the future (and applying it to another effort as a thought experiment might prove informative....).</div><div><br></div><div>But any reaction or feedback at all would be welcome (although &quot;you shouldn&#39;t write a
    license / you must have done your research wrong&quot; is not likely to make it high on the list of comments that warrant a reply.... I also found it surprising that there were not good off-the-shelf options, but here we are).</div><div><br></div><div>
    Thanks,</div><div>Nate</div><div><br></div><div>PS - I also know that the functional-spec case is not universal; other standards might care a LOT about interoperability, but it wasn&#39;t in scope here and adds, potentially, a lot of machinery, from
    compliance to testing to certification, and that was neither required nor doable, so not desirable.<br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">nathan.
    p.willis<br><a href="mailto:[email protected]" target="_blank">[email protected]</a><a href="http://identi.ca/n8" target="_blank"></a></div></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon McVittie@21:1/5 to Nathan Willis on Mon Jun 24 16:40:02 2024
    On Mon, 24 Jun 2024 at 14:44:18 +0100, Nathan Willis wrote:
    And those factors would need to interact predictably with a specification document that is free to read, implement, and share ... but the specification should not be forked or modified (since that would defeat the purpose: interoperability).

    I don't think enforcing "no derivative works" via copyright
    law (like Creative Commons CC-ND) is the right way to ensure
    interoperability. Instead, I think the right way is to require modified versions to be clearly marked as not being the original - more like
    the approach taken by Creative Commons CC-BY.

    Consider this scenario: you publish your standard, version 1.0;
    time passes; you disappear and cannot be contacted any more; more time
    passes; now I want to produce a compatible version 1.1 of the standard containing clarifications or extensions, or an incompatible version 2.0
    with significant changes (like HTTP -> HTTP2), or correcting a design
    mistake that cannot be fixed without a compatibility break.

    I think the legal situation that the community would want in that
    scenario is that I can modify and share draft copies of what I want to
    put in version 1.1 or 2.0, or even fork the specification to make my
    own intentionally incompatible specification under a different name if I
    really need to, but I have to label them as something clearly different (unless/until my changes have been agreed on and accepted by whatever
    is the most appropriate standards body that controls the "branding"
    on your behalf).

    A document that enforces "no derivative works" via copyright law is also
    likely to be forbidden from inclusion in Debian, because we require that everything we ship is Free Software (not just code, like e.g. Fedora,
    but also non-code like data and documentation, unlike Fedora). And if copy/pasting spec text into Free Software source code is a use-case
    for you, that is not a context where modifications can be disallowed,
    because if they were, it wouldn't be Free Software.

    Perhaps consider using <https://datatracker.ietf.org/doc/html/rfc5215#section-11>, the legal terms
    of the RFC that describes Vorbis-over-RTP:

    The authors agree to grant third parties the irrevocable right to
    copy, use, and distribute the work, with or without modification, in
    any medium, without royalty, **provided that, unless separate
    permission is granted, redistributed modified works do not contain
    misleading author, version, name of work, or endorsement information.**

    (my emphasis)

    If you want stronger protection against passing off an incompatible not-quite-Opentype-Shaping specification as being genuine Opentype Shaping, then trademarks rather than copyright are probably a better tool:
    not allowing "counterfeits" to harm your reputation or inappropriately
    benefit from your reputation is literally the purpose of trademarks!

    smcv

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Francesco Poli@21:1/5 to All on Mon Jun 24 19:50:01 2024
    On Mon, 24 Jun 2024 15:34:35 +0100 Simon McVittie wrote:

    [...]
    Perhaps consider using <https://datatracker.ietf.org/doc/html/rfc5215#section-11>, the legal terms of the RFC that describes Vorbis-over-RTP:

    The authors agree to grant third parties the irrevocable right to
    copy, use, and distribute the work, with or without modification, in
    any medium, without royalty, **provided that, unless separate
    permission is granted, redistributed modified works do not contain
    misleading author, version, name of work, or endorsement information.**

    (my emphasis)
    [...]

    I fully agree with Simon's reasoning about the importance of the
    permission to modify the specification (and, more generally, about the importance for the specification document to be Free Software).

    I would personally suggest the [zlib] license for such a document.
    It explicitly requires that altered versions be plainly marked as such,
    and not be misrepresented as being the original.

    [zlib]: <https://www.zlib.net/zlib_license.html>



    --
    http://www.inventati.org/frx/
    There's not a second to spare! To the laboratory! ..................................................... Francesco Poli .
    GnuPG key fpr == CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE

    -----BEGIN PGP SIGNATURE-----

    iQIzBAEBCgAdFiEEygERR5zS79/7gjklPhwn4R9pv/4FAmZ5sI8ACgkQPhwn4R9p v/5uSA//eoB8kFx5OPegFkE5l4RFpg7WEm9rvq1gICyqcTfuAKYTbU/V6jwKNHyk vN3wMhsSRA80WFl4KwrqLFY/Rd3Cn9jn5KCruRBlYR82rYEwNly8Ff58efstAlpN lBr3wq3ypJtP7Y8NBmTtXn1LLNCWWywRT/Xs3XJeArw32UvDcRnWw7RKfXT6fIpF m/5EsKTrAY9i29vIwd/6UkybY8EeaqkOiU3MrgA/noJEnzyG+5G5i5AjrNaAvEro lOvWYClFd9FxOJiaRNgi8pZO2lgWde8IanolcsbrpJDUw2QCig55F3eQPHZj4H9I kNU4s1roiD7U9W2Gi4xL3bNogFI+CSBps2x1LHdKaCo7TWFNelEpMX2lhgr4orDv j5HjW9n72+Ve9hQveiaS23ccTTZ505aEoUzKevv5DMWTdka1/RQg9LhNee5ZXJfo dU2OpebaArlI9UM8A4sdaM9YSn671IG/ZuqGxS7c8W/t5k7WO+BbuetA9FNB8s8J QByiQ6dEZp9xda9rp/nAzyFxV/psWiHHHBoYOEnKmqU+TooTkpeSftjmbiu3SkSl NkXeneS5Ir3lSeiOad3ZGnCNeJzccKAHK/L8BXklfDEs3VHNakuWdGgAJ1AAvZU9 HgPiJXaKeBbd5lZIDbMv/OJF+UC67EgH