<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<?rfc compact="no"?>
<?rfc toc="yes"?>

<rfc category="info" ipr="full3978"
     updates="3978"
     docName="draft-josefsson-ipr-rules-update-05">

<front>

  <title>
    RFC 3978 Update
  </title>

  <author initials="S." surname="Josefsson" fullname="Simon Josefsson">
    <organization></organization>
    <address>
      <email>simon@josefsson.org</email>
    </address>
  </author>
	
  <date month="December" year="2005"/>

  <abstract>

    <t>Two problems with BCP 78 regarding the outbound rights granted
      to third parties are identified.  A proposal to solve the
      problems is proposed.</t>

    <t>The first problem is that rights granted to third parties in
      BCP 78 are more restrictive then what was permitted through the
      license in RFC 2026.  The rights granted by the new license is
      too limited for some uses of Contributions.  The uses include
      adapting portions of Contributions for online help, reference
      manuals, and source code.  The second problem is that rights to
      publish and distribute documents are not granted to third
      parties.</t>

    <t>We also discuss an issue that has been expressed regarding fake
      RFCs, that might have been permitted through our earlier
      license, and we also attempt to solve that problem.</t>

  </abstract>

</front>
	
<middle>

  <section title="Introduction">

    <t>This document discuss two problems
      with <xref target="RFC3978">BCP 78</xref>.  Familiarity with
      that document is assumed.  Several terms defined in that
      document are used below.  In particular, this document use the
      term "Contributions" to denote material to which rights are
      granted.  After describing the problems, we conclude with an
      update to BCP 78 to address the problems.</t>

  </section>

  <section title="Problem #1: No Rights To Adapt Parts Of Contributions">

    <t>The license in <xref target="RFC2026">RFC 2026</xref> gave
      third parties the right to produce unrestricted derivative
      works, under some conditions.  That right has widely been used
      to adapt RFCs into online help, reference manuals, source code
      comments and source code.  <xref target="RFC3978">BCP 78</xref>
      does not grant any rights to permit this usage.  Examples of
      common usage that is not permitted through BCP 78 include:</t>

    <t><list style="numbers">
	<t>Extracting parts of RFCs into source code comments, where
	  the source code is licensed under a license that permits
	  modifications.  Line breaks and other simple re-formatting
	  is common.  Further re-formatting or expansion, to help
	  explain the source code is not uncommon.</t>

        <t>Material needed in source code may include large tables,
	  see StringPrep <xref target="RFC3454" />.  It is customary
	  to modify these tables and schemas, without changing the
	  semantic nor affecting protocol interoperability, when
	  implementing these IETF standards.  The modifications are
	  because the table as-is is not valid program code.  Examples
	  of deployed programs using tables derived from RFC 3454
	  include GNU Libc/Libidn, VeriSign's XCODE, and IBM's
	  ICU.</t>

	<t>ASN.1 schemas from RFCs are often incorporated into
	  products.  For example, see
	  the <xref target="RFC4120">Kerberos 5</xref> ASN.1 schema.
	  These schemas are frequently modified to be usable within
	  particular implementations.  Examples of deployed programs
	  using modified ASN.1 schemas for Kerberos 5 include GNU
	  Shishi, MIT Kerberos and Heimdal.</t>

	<t>Some RFCs include source code or header files that is meant
	  to be included in software packages, and in practice they
	  are frequently modified after inclusion in the software
	  package.  For example, <xref target="RFC2744">GSS-API C
	  bindings</xref>, <xref target="RFC2853">GSS-API Java
	  bindings</xref>, <xref target="RFC3174">SHA-1 hash
	  algorithm</xref>, <xref target="RFC3309">SCTP
	  checksum</xref>, <xref target="RFC3492">Punycode</xref>,
	  <xref target="RFC3493">getaddrinfo DNS resolver API</xref>,
	  <xref target="RFC3678">multicast socket API</xref>.
	  Examples of deployed projects here include GSS-API
	  libraries, libc libraries, and cryptographic packages.</t>

        <t>Material used in manuals or online help ("man" pages)
	  may include protocol overviews (such as
	  in <xref target="RFC2222">SASL</xref>) or API function
	  documentation (such as
	  in <xref target="RFC2744">GSS-API</xref>).  For
	  example, several vendors, including commercial
	  companies like Sun, ship a man page
	  for <xref target="RFC2133">getaddrinfo</xref> that is
	  derived from RFC 2133.</t>

	<t>Educational use.  One example that has been presented is to
	  use RFCs in teaching, and make them part of the course
	  material.  Further, the RFCs may be modified as part of
	  excercises, e.g., asking students to implement a modified
	  protocol as a lab excercise.  There is a desire to include
	  that modified RFC in the course material, which can be
	  distributed freely over the Internet.</t>

	<t>Development of protocol extensions.  When IETF protocols
	  evolve, that is sometimes done by creating a modified
	  version of an existing implementation to experiment with how
	  well the idea works.  For example, the NSEC3 work done in
	  the DNSEXT WG break compliance with DNSSEC.  Yet, patches
	  are provided for several DNS implementations that include
	  portions of the RFCs in the source code and documentation.
	  That means that it would be difficult to license a RFC under
	  a "field of use" permission that only allow use for
	  implementation a RFC compliant product.  Experiments for
	  protocol extensions may thus be illegal.</t>
    </list></t>

    <t>This list is far from conclusive, it is meant to illustrate
      some of the problems the license in BCP 78 causes.  We argue
      that the usage explained in these examples, and others, should
      be permitted, and that BCP 78 should be updated to resolve this
      matter.  Adding specific text for each kind of usage is
      problematic, because we do not have a complete list of "good"
      usages at this point.  We believe the license text should be
      general enough to enable many different kind of usages.</t>
    
    <t>We believe that the license text chosen to resolve this matter
      should be compatible with licenses typically used for
      implementions of IETF standards.  These range from proprietary
      closed source licenses, such
      as <xref target="mslicense">Microsoft's End User License
      Agreement (EULA)</xref> or <xref target="applelicense">Apple's
      Mac OS X Software License</xref>, over permissive licenses such
      as the <xref target="mitlicense">MIT license</xref>, to
      copy-left licenses such as the GNU General Public License
      <xref target="gnulicense" />.  Further, we also argue that the
      license text should be aligned with the policy used in popular
      distribution mechanisms of IETF implementations, such as Debian
      and their Free Software Guidelines <xref target="dfsg" />.</t>

    <t>The revised section in BCP 78 below is believed to resolve this
      problem.</t>

  </section>

  <section title="Problem #2: No Rights Are Granted To Third Parties">

    <t>Traditionally, third parties have been permitted to copy and
      distribute Contributions.  These rights were granted by the
      license text in <xref target="RFC2026">RFC 2026</xref>.
      Reading <xref target="RFC3978">BCP 78</xref> reveal that it does
      not grant any rights to third parties that permit this usage.
      To explain how this is so, we will review the rights granted by
      BCP 78, and explain where it is failing, and reference
      discussion of its interpretation.</t>

    <t>All rights granted to Contributions, in section 3.3 of BCP 78,
      begin with (emphasis mine):</t>
    
    <t><figure>
	<artwork>
  a. To the extent that a Contribution or any portion thereof is
      protected by copyright and other rights of authorship, the
      Contributor, and each named co-Contributor, and the
      organization he or she represents or is sponsored by (if
      any) grant a perpetual, irrevocable, non-exclusive, royalty-
      free, world-wide right and license to the ISOC and the IETF
                                         ------------------------
      under all intellectual property rights in the Contribution:
	  </artwork>
	</figure>
      </t>

    <t>That means that all the rights given in that section are given
      to the IETF and the ISOC, but not to third parties.  Similar
      wording occur in section 4.2 on rights granted for RFC Editor
      contributions.  The document does not grant any rights
      elsewhere.</t>

    <t>Scott Bradner claims <xref target="bradner" /> that section 7.1
      gives you these rights.  However, the entire section 7 is
      titled:</t>

    <figure>
      <artwork>
        Exposition of why these procedures are the way they are
      </artwork>
    </figure>
	
    <t>We believe section 7.1 can thus not be reasonably said to be
      included in the actual license statement.  Rather, it is only
      part of the considerations that went into the process that ended
      up with the current license statement.</t>

    <t>Another argument that were put forward was that the note
      "distribution of this memo is unlimited" in RFCs give third
      parties the necessary rights.  However, there is no requirement
      for that text in RFCs, and it also appear unclear why the RFC
      Editor still adds this text <xref target="bradner" />.</t>

    <t>This problem was acknowledged through changes between version
      00 and version 01 of <xref target="I-D.ietf-ipr-rules-update"
      />; changes that, at least partially, address this concern.  The
      revised section below addresses this concern.</t>

  </section>

  <section title="Modifications leading to fake works">

    <t>A fear has been expressed that if modification of IETF
      Contributions is permitted, it may lead to the distribution of
      fake works.  That is, a work that is based on a IETF published
      document but modified in a subtle way that cannot easily be
      identified.  The work would be easy to confuse with the
      original, causing confusion for the community.</t>

    <t>David Black proposed to require that modified works would be
      forced to remove the boilerplate that is used at the beginning
      of RFCs.  The theory is that the fake is not credible if the
      endorsement by the IETF and the boilerplate is absent.</t>

    <t>The license text below incorporate this idea.</t>

  </section>
  <section title="Revised Section 3.3">

    <t>This memo adds the following as paragraph 3.3(c) of RFC
      3978:</t>

    <t><figure>
	<artwork>
    c.  The Contributor grants third parties the irrevocable
        right to copy, use and distribute the Contribution, with
        or without modification, in any medium, without royalty,
        provided that, unless separate permission is granted,
        redistributed modified works:

             (a) do not contain misleading author, version, name
                 of work, or endorsement information, and

             (b) do not claim endorsement of the modified work by
                 the Contributor, or any organization the
                 Contributor belongs to, the Internet Engineering
                 Task Force (IETF), Internet Research Task Force
                 (IRTF), Internet Engineering Steering Group
                 (IESG), Internet Architecture Board (IAB),
                 Internet Assigned Numbers Authority (IANA),
                 Internet Society (ISOC), Request For Comments
                 (RFC) Editor, or any combination or variation of
                 such terms (including without limitation the
                 IETF "4 diamonds" logo), or any terms that are
                 confusingly similar thereto, and

             (c) remove any claims of status as an Internet
                 Standard, including without limitation removing
                 the RFC boilerplate.

        The IETF suggests that any citation or excerpt of
        unmodified text reference the RFC or other document from
        which the text is derived.
	</artwork>
      </figure>
    </t>

  </section>

  <section title="Requiring a warning label to be added">

    <t>To further protect against works claiming to be the original
      work, it has been suggested that the license should require that
      people who modify the contents should be forced to add a
      "warning label".  There are two ways to achieve this.  The first
      is to explicitly suggest the text that is to be added.  The
      second is to implicitly require that text is added, by stating
      that the derivative works must not be confusable with the
      original.</t>

    <t>The first approach of using a particular warning label may lead
      to problems when an implementation support many RFCs.  If the
      particular warning label include the RFC number, there may be a
      potentially huge list of warning labels that only differ in the
      RFC number.  Even if the specific RFC number is not part of the
      warning label, the text of the warning label may seem
      inappropriate and confusing in some modified uses, making the
      reader question what the warning label is adressing.</t>

    <t>We believe the second approach, of requiring that implicit
      warning labels protect against the same abuse but leads to more
      readable end products.</t>

    <t>A license that require warning labels to be added may be
      incompatible with certain free software licenses, and depending
      on the language used, it may even make the license non-free.  We
      believe further review by the free software community is
      required if this solution is to be considered further.</t>

    <t>As a starting point for further research, we propose to add the
      following implicit requirement for warning labels to the license
      below:</t>

    <t><figure>
	<artwork>
  (d) clearly label a derivative work as such, to avoid
      similarity between the original work and the derivative
      work.
	</artwork>
      </figure></t>

  </section>

  <section title="Separating the license for code and text">

    <t>It has been suggested that the license should be separated to
      cover code and text separately.  The intention is supposedly
      that code can use a free and GPL/BSD-compatible license, whereas
      the text portion will not.</t>

    <t>We argue that this solution is sub-optimal, and in particular
      it would prevent scenarios including the following:</t>

    <t><list style="numbers">
	<t>Excerpts from RFCs included in source code comments.  This
	  is a common example, many free IETF implementations embed
	  excerpts from the RFC text in source code comments.</t>

	<t>Teaching material derived from RFC texts.  University
	  teacher may want to modify RFCs to illustrate a point and as
	  an implementation exercises, and include the resulting work
	  in freely available online course material.</t>

	<t>Documentation for IETF implementations.  Both FreeBSD and
	  Sun has shipped a getaddrinfo man page that is derived from
	  the RFC.  I believe being able to inherit that text from the
	  RFC helped getting getaddrinfo implemented and utilized.  If
	  implementations are not permitted to do this, adoption of
	  IETF protocols will likely be slower.  If we believe the
	  IETF is producing standards that, if adopted, would benefit
	  the IETF, I believe we should make sure they can be
	  implemented as fast and as widely as possible.</t>
      </list></t>

    <t>For these reasons, we argue that the same license should be
      used for both code and text.</t>

  </section>

  <section title="Alternative">

    <t>The reader should be aware that another BCP 78 Update proposal
      has been published <xref target="I-D.ietf-ipr-rules-update" />.
      The change from version 00 and version 01 of that document was
      to discuss our second problem, i.e., that third parties have no
      rights to distribute copies of RFCs.  However, it does not
      discuss nor address our first problem.</t>

  </section>

  <section title="Acknowledgments">
  
    <t>The author acknowledges contributions from: David Black, Todd
      Glassey, Ted Hardie, M. Warner Losh, Francesco Poli, Chuck
      Powers, MJ Ray, Branden Robinson, Joe Smith, Florian Weimer.</t>

    <t>Special acknowledgment is given to Joost van Baal, Markus
      Demleitner, Nathanael Nerode, Nikos Mavrogiannopoulos, and Wytze
      van der Raay of Stichting NLNet.</t>

    <t>Contributions of many members of the IPR mailing list are
      gratefully acknowledged.</t>

  </section>

</middle>

<back>

  <references title="Normative References">

    <?rfc include="reference.RFC.3978.xml"?>

  </references>

  <references title="Informative References">
 
    <?rfc include="reference.RFC.2026.xml"?>

    <?rfc include="reference.RFC.2133.xml"?>

    <?rfc include="reference.RFC.2222.xml"?>

    <?rfc include="reference.RFC.2744.xml"?>

    <?rfc include="reference.RFC.2853.xml"?>

    <?rfc include="reference.RFC.3174.xml"?>

    <?rfc include="reference.RFC.3309.xml"?>

    <?rfc include="reference.RFC.3454.xml"?>

    <?rfc include="reference.RFC.3492.xml"?>

    <?rfc include="reference.RFC.3493.xml"?>

    <?rfc include="reference.RFC.3678.xml"?>

    <?rfc include="reference.RFC.4120.xml"?>

    <?rfc include="reference.I-D.ietf-ipr-rules-update.xml"?>

    <reference anchor="bradner">
      <front>
	<title>Post to IPR WG mailing list</title>
	<author initials="S." surname="Bradner" fullname="Scott Bradner">
	  <organization>Harvard</organization>
	  <date month="October" year="2005" />
	</author>
	</front>
      <seriesInfo name="WWW"
		  value="http://article.gmane.org/gmane.ietf.ipr/2790" />
    </reference>

    <reference anchor="mslicense">
      <front>
	<title>Microsoft Licenses</title>
	<author initials="" surname="Microsoft" fullname="Microsoft">
	  <organization></organization>
	  <date month="October" year="2005" />
	</author>
	</front>
      <seriesInfo name="WWW"
		  value="http://www.microsoft.com/licensing/resources/default.mspx" />
    </reference>

    <reference anchor="applelicense">
      <front>
	<title>Apple Licenses</title>
	<author initials="" surname="Apple" fullname="Apple">
	  <organization></organization>
	  <date month="October" year="2005" />
	</author>
	</front>
      <seriesInfo name="WWW"
		  value="http://www.apple.com/legal/sla/" />
    </reference>


    <reference anchor="mitlicense">
      <front>
	<title>MIT Licenses</title>
	<author initials="" surname="MIT" fullname="MIT">
	  <organization></organization>
	  <date month="October" year="2005" />
	</author>
	</front>
      <seriesInfo name="WWW"
		  value="http://www.opensource.org/licenses/mit-license.html" />
    </reference>

    <reference anchor="gnulicense">
      <front>
	<title>GNU Licenses</title>
	<author initials="" surname="FSF" fullname="Free Software Foundation">
	  <organization></organization>
	  <date month="June" year="2005" />
	</author>
	</front>
      <seriesInfo name="WWW"
		  value="http://www.gnu.org/licenses/licenses.html" />
    </reference>

    <reference anchor="dfsg">
      <front>
	<title>Debian Social Contract: Free Software Guidelines</title>
	<author initials="" surname="Debian" fullname="Debian">
	  <organization></organization>
	  <date month="April" year="2004" />
	</author>
	</front>
      <seriesInfo name="WWW"
		  value="http://www.debian.org/social_contract#guidelines" />
    </reference>

  </references>

</back>

</rfc>
