Problems with the IETF's copying permissions
This page explain two problems with the IETF current copying
permissions for RFC and other contributions. The current
permissions are explained in
RFC 3978, also known as BCP 78.
Problem #1: No Rights To Adapt Parts Of Contributions
The license in RFC 2026 [2] 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. BCP 78 [1] does not grant any
rights to permit this usage. Examples of common usage that is not
permitted through BCP 78 include:
-
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.
-
Material needed in source code may include large tables, see
StringPrep [9]. 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.
-
ASN.1 schemas from RFCs are often incorporated into products.
For example, see the Kerberos 5 [13] 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.
-
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, GSS-API C bindings [5], GSS-API Java bindings [6], SHA-1
hash algorithm [7], SCTP checksum [8], Punycode [10], getaddrinfo
DNS resolver API [11], multicast socket API [12]. Examples of
deployed projects here include GSS-API libraries, libc libraries,
and cryptographic packages.
-
Material used in manuals or online help ("man" pages) may include
protocol overviews (such as in SASL [4]) or API function
documentation (such as in GSS-API [5]). For example, several
vendors, including commercial companies like Sun, ship a man page
for getaddrinfo [3] that is derived from RFC 2133.
-
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.
-
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.
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.
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 Microsoft's End User License Agreement (EULA) [16] or Apple's Mac
OS X Software License [17], over permissive licenses such as the MIT
license [18], to copy-left licenses such as the GNU General Public
License [19]. 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 [20].
The revised section in BCP 78 below is believed to resolve this
problem.
Problem #2: No Rights Are Granted To Third Parties
Traditionally, third parties have been permitted to copy and
distribute Contributions. These rights were granted by the
license text in RFC 2026. Reading BCP 78 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.
All rights granted to Contributions, in section 3.3 of BCP 78,
begin with (emphasis mine):
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:
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 do not grant any rights
elsewhere.
Scott Bradner claims that section 7.1 give you these rights.
However, the entire section 7 is titled "Exposition of why
these procedures are the way they are". We believe section
7.1 can thus not be reasonable 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.
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 add this text.
This problem was acknowledged through changes between version
00 and version 01 of ietf-ipr-rules-update; changes that, at
least partially, address this concern. The revised section
below address this concern.
My proposal to fix things
Note that this is a tentative proposal. Everyone is invited to
investigate and verify that this text would be sufficient. Your
comments are very welcome, please discuss general concerns on
the IETF
IPR WG mailing list and mail specific comments
directly to me.
Include in section 3.3 and 4.2 new text that reads:
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.
Published document
The current live IETF I-D document is available here:
Revision history
- 2005-12-13
- Revised the draft and published -04, include discussion
about warning labels and separating the license for code and
text.
- 2005-12-09
- Stichting NLnet publish my
trip report about the IPR WG meeting.
- 2005-12-08
- Updated license terms in draft and submitted -03.
- 2005-12-06
- Wrote IPR WG trip report
for NLNet Stichting.
- 2005-11-18
- Asked the Debian
community and
the FreeBSD community
to review the license. Discussion
is here
and here.
- 2005-11-17
- Prepared and updated version -02. Changes in the license
text to prevent fake RFCs.
- 2005-11-03
- Updated the document with comments received over the past
weeks.
- 2005-10-22
- Prepared the -01 version. Revised this page and document
significantly.
- 2005-10-17
- Changed the proposed license based on comments from Ted
Hardie.
- 2005-10-14
- Changed license text so it isn't copyleft, and so that
redistributing unmodified copies with endorsement claims are
permitted.
- 2005-10-13
- The -00 version of my draft was published by the
IETF.
- 2005-10-11
- Wrote initial draft and submitted it to the IETF I-D
editor. Live document is linked from this page. Received
support from several people. Debian Project Leader Branden
Robinson suggested a license change (included above) that
didn't make it into the -00 document.
- 2005-10-06
- Created this page.
Thank you!
I used to ask for donations to finance my trip to the IETF 64
meeting in Vancouver here. I had paid US$500 on the conference
fee, around US$1000 for the plane ticket and around US$350 for
the hotel. With the help from a few of you, I managed to
collect US$1700, thus covering most of my expenses. Thank you!
I have set aside time to spend on this issue, and will update
my proposal and participate in future discussions so that this
issue can be resolved. Hopefully with a positive outcome, of
course...
If you like to sponsor my activities, to make it possible for
me to spend more time on this issue or possibly travel to future
meetings, I appreciate any donations.
Contact me if you want
SWIFT/IBAN bank account details, or click the PayPal button
below.
Petition
This page also serve as a petition for an effort to change the
current IETF copying conditions to align with typical free and
open source software requirements. Please fill out the form
below to indicate support of this effort.
Note! If the form doesn't work in your browser, feel
free to e-mail me
directly.
Current supporters include:
- Free software developers
- Simon Josefsson (author of Libidn, Shishi, GNU SASL and GNU GSS, maintainer of GnuTLS)
- Nathanael Nerode (free software developer)
- Werner Koch (author of GnuPG)
- Antonio Diaz (author of GNU ddrescue, GNU Moe and GNU Ocrad)
- Alfred M. Szmidt (GNU hacker, maintainer of the GNU womb)
- Federico M. Pouzols (Free software developer, IETF participant, ISOC member)
- MJ Ray (Commercial free software developer)
- Thijs Kinkhorst (SquirrelMail developer)
- Luca Fornasari (Consultant about free software)
- Ben Finney (Commercial free software developer)
- Wouter Coekaerts (Irssi developer)
- Alex King (free software developer)
- Nikos Mavrogiannopoulos (GNUTLS developer)
- Niels Möller (author of Nettle and lsh)
- Mark Wielaard (GNU Classpath maintainer)
- Arthur de Jong (free software developer)
- Lawrence Rosen (open source attorney)
- Sebastien Diaz
- The Debian project as a whole, but also individual support from:
- Branden Robinson (Debian Project Leader)
- Stephen Frost (Debian developer, Linux, Postgres contributor)
- Simon Richter (Debian developer)
- Wesley J. Landaker (Sandia National Laboratories, Debian Developer)
- Manoj Srivastava (Debian Developer)
- Lionel Elie Mamane (Debian Developer)
- Hilko Bengen (Debian developer)
- Stefano Zacchiroli (Debian developer)
- Jochen Voss (Debian developer)
- Thomas Viehmann (Debian developer)
- Henning Makholm (Debian developer)
- Marco d'Itri (IETF participant, Debian developer)
- Simon Horman (Debian Developer)
- Steve Langasek (Debian release manager)
- Holger Levsen (Debian, not yet a Developer)
- Aaron M. Ucko (Debian developer)
- Maykel Moya (Debian, not a Developer)
- Kai Henningsen (Debian Developer, RFC packages)
- Gustavo Noronha Silva (Debian developer)
- Christoph Berg (Debian Developer)
- Philipp Kern (Debian developer)
- Ron Lee (Debian developer)
- Joost van Baal (Debian developer)
- Daniel Kahn Gillmor (Software consultant, web developer, Debian maintainer, not yet a Debian Developer)
- Joseph Nahmias (Debian Developer)
- Francesco Poli (Debian user)
- Matthias Urlichs (Debian Developer, Ubuntu Core Maintainer, Free Software Consultant)
- Michael Schiansky (Debian Developer)
- Anand Kumria (Debian developer)
- Luca Brivio (Debian contributor)
- Michael Zedeler
- Apache Software Foundation (ASF) members
- Erik Abele (independent consultant, ASF and ISOC member)
- David Crossley (independent developer, ASF member)
- Stephane Bortzmeyer
- Larry Rosenman (PostgreSQL contributor, open source advocate)
- Scott Johnson (IETF participant, Open Source Company)
- Benoit Mortier, OpenSides (Open source Company)
- Nicolas Marchildon (FACIL, a non-profit organization promoting free software)
- Markus Demleitner (University teacher)
- Russell Brown
- Eddy Petrisor (Debian and Free software contributor)
- Daniel van Eeden (Snow B.V. UNIX consulting firm from the Netherlands)
- Christoph Anton Mitterer (IEEE member, Munich University of Applied Sciences)
- Wytze van der Raay (Stichting NLnet)
- Tom Metro (Open source company)
- Jason Cormie
- Glennie Vignarajah (Opensource software user)
- Jerome Warnier (BeezNest: Open Source-based company)
- Ulf Härnhammar (Debian Security Audit Project, kses)
- Ludovic Gasc (Bitflux contributor)
- Mathias Teikari (Open Source Contributor)
- Piotr Drag (Fedora Core translator)
- Wolfgang Bär
- Peter Saint-Andre (XMPP Standards Foundation)
include 'supporters.html';
?>
Simon Josefsson