Why the Eiffel Forum License?

The Eiffel Forum License, version 2, is in my opinion the best license to choose if you want a short, simple, quite permissive license. But why should anyone pick this relatively obscure license over the much more commonly used BSD and MIT licenses?

With the BSD and MIT licenses, the main problem is that they don't preserve copyright notices within the works themselves, so they're weak on preserving attributions of files within your packages. The Eiffel Forum License 2 not only preserves copyright notices, but it's also GPL compatible, approved by the OSI and FSF, and complies with the Debian Free Software Guidelines.

And it's shorter than the BSD and MIT licenses!

Compare and Contrast

I've liked the Eiffel Forum License since it came out very favourably in a survey of licenses that I conducted with respect to my requirements for a license. The following tables summarise how each license fared with respect the the following subset of my requirements, which are explained in detail later on:

A = Allows short statement of application
B = Preserves copyright statements and notices
C = Allows distribution without full license text
D = License is or may be fixed to exclude later versions

Common licenses ABCD
Apache License 2.0 NY NY
Modified BSD YN NY
GNU GPL 2 ?? NY
GNU LGPL 2.1 ?? NN
MIT YN NY
Public License 1.1 NY NN
CDDL 1.0 YY NY
Public License 1.0 YY NN

None of these common licenses fulfill all of the requirements, but the CDDL 1.0 does fulfill A, B, and D. Ignoring the fact that it's a different class of license (incompatible with the GPL and so on), why can't that therefore be used instead of the EFLv2?

Problems with the CDDL 1.0: It is not clear how one should specify that a single specific version of the CDDL is being used. M.J. Ray told me on debian-legal that "it does not follow the DFSG if there are active patents on the Covered Software", and pointed to Matthew Garrett's comment about it failing one of the DFSG tests.

Francesco Poli put it much more simply, saying that the CDDL is a "poor license choice", citing a lack of consensus. It is also, as mentioned, incompatible with the GPL. Wikipedia does at least say that "the Debian project officially accepts the CDDL as a free license that follows the Debian Free Software Guidelines", but notes that this is controversial for some.

Miscellaneous licenses ABCD
Adaptive Public License 1.0 NY NN
The Artistic License YY YY
Artistic License 2.0 YN Y?
Open Software License 3.0 YY YY
Q Public License 1.0 YY NY
zlib/libpng License YN ?Y

Amongst these licenses, The Artistic License and the Open Software License 3.0 meet all the requirements. They have other drawbacks, however.

Problems with The Artistic License: Wikipedia takes up the story: 'Whether or not the original Artistic License is a free software license is largely undecided. It was criticised by the Free Software Foundation as being "too vague; some passages are too clever for their own good, and their meaning is not clear."'

Problems with the Open Software License 3.0: The Debian Wiki's DFSG Licenses page says that v1.1 of this license is incompatible. Rick Moen says that, in fact, 3.0 is DFSG compatible; but this appears to be a matter of contention at the very least. This license is a copyleft license rather than a simple permissive one, and the FSF say that it's not compatible with the GPL (in several ways), and also that they "urge you not to use the Open Software License for software you write."

"Redundant" licenses ABCD
AFL 3.0 Y? YY
Attribution Assurance NN NY
Eiffel Forum License v2 YY NY
Fair License YN NY
Lucent Public License 1.02 Y? NN
NCSA Open Source License ?N N?

These licenses are supposed redundant by the OSI, but if you look at their characteristics compared with the licenses that supposedly make the redundant, you can see that the OSI's notion of "redundant" is perhaps idiosyncratic. At any rate, only the Eiffel Forum License v2 matches the A, B, and D requirements. In fact, another nice feature about it is that the reason for it failing column C is contained in a single clause.

About the License

The text of the license (mirrored: 1, 2) is as follows:

Eiffel Forum License, version 2

1. Permission is hereby granted to use, copy, modify and/or
   distribute this package, provided that:
      * copyright notices are retained unchanged,
      * any distribution of this package, whether modified or not,
        includes this license text.
2. Permission is hereby also granted to distribute binary programs
   which depend on this package. If the binary program depends on a
   modified version of this package, you are encouraged to publicly
   release the modified version of this package.

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT WARRANTY. ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE TO ANY PARTY FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THIS PACKAGE.

The original on the NICE site differs only in having less pretty whitespace formatting.

Proof of Qualities

There are drawbacks too: it fails Column C, it's not the djb way, and it's not very widely used. But Column C can always be permitted upon request, djb has enough reputation for public domain to suit his needs, and we can only get around the lack of use problem by using it!

Using the License

This is how I plan to use the license in my own works:

Copyright 2007, Sean B. Palmer, inamidst.com
Licensed under the Eiffel Forum License 2.

Analysis of Requirements

"A = Allows short statement of application"

Some licenses, such as the Mozilla Public License 1.1, require a very large statement to be added to all files released under them. In the Mozilla Public License 1.1 this text is called "Exhibit A"; here's what its template looks like:

Startlingly verbose. Most licenses don't require such huge boilerplates, and in fact most licenses that I surveyed don't require any boilerplate at all. And those are the licenses that most appeal to me, letting me keep my documentation succinct.

"B = Preserves copyright statements and notices"

If you have a copyright statement in all the files in your package and then you use a LICENSE.txt file that has the BSD license in it, the copyright notices in the files are not, as far as I know, required to be preserved by the BSD license. As you can see from the table, plenty of even the common licenses have a provision which does make sure that copyright notices are preserved: the Apache License 2.0, the Public License 1.1, the CDDL 1.0, and the Public License 1.0. Yet the BSD and MIT licenses do not.

This comes down to mandating the simple academic politeness of attributing your sources properly. Whilst in practice people are probably not going to take your name off of the files that you wrote, why would you use a license which doesn't guarantee this if you can?

"C = Allows distribution without full license text"

This is the most contentious of the requirements, and even the Eiffel Forum License v.2 doesn't follow it. The idea is that people who invest effort into your work shouldn't then be required to burden it with a license text that can be easily found using the web. Francesco Poli argues that this is inconvenient for people who do not have web access.

"D = License is or may be fixed to exclude later versions"

Neither of requirements A nor B matter if the license can be changed at any point by the creator of the license such that it affects your own work. In other words, any license that lets people use any subsequent version of that license may undergo changes that are incompatible with the requirements of the person choosing the license in the first place. This practice makes sense for company licenses that aren't reusable, but somehow the practice seems to have spread to some of the supposedly reusable licenses too. Very odd.

Other Requirements

Other requirements that are important to me include:

Background

On the 19th December 2007, Noah Slater offered to create a debian package out of my Phenny IRC bot. This meant that I had to choose a license compatible with the DFSG.

Back in July 2005 I had stopped using the GPL and was searching for another license (at that time I was also considering that I wanted to use a non-commercial license, but I changed my mind later). Meanwhile I was adding comments such as the following—from my programming language, Pluvo—to packages that I wrote:

Q: What license is Pluvo released under?
A: At the moment none, so full copyright is retained, but the plan is to use an Open Source or Free Software license. The problem is deciding which one, or which ones, to use! If you can make a case for a particular license, please do so on the Pluvo mailing list. Before a license is chosen, you're still free to use it: "Once you've legally downloaded a program, you can compile it. You can run it. You can modify it. You can distribute your patches for other people to use." And once a suitable license is chosen you'll be able to do much more.

It wasn't until October 2007 that I made another attempt to look for a license, this time sorting licenses by their sizes to find that the Fair License was the shortest approved one. The Fair License wasn't particularly well written though. When Noah provided the impetus to choose a license, he suggested the GNU APL, and I was still thinking about the Fair License. We started to mould my requirements, and I read other people's frustrations in choosing a license, and more joke public domain licenses such as the WTFPL. But the choice between the Fair License and the GNU APL had given me an idea: why not make a hybrid of the two?

I wrote it up, called it the Æsthetic Permissive License, and submitted it to the OSI and to the FSF for approval. One metric shitstorm later, lasting about two weeks, and I had learned two relevant (and plenty of irrelevant) things of interest:

The Academic Free License 3.0 had been suggested to me, but I didn't like the license itself particularly, and version 2.1 of it had met a controversial reception on debian-legal. At any rate, I decided to ask whether the GNU APL and the AFL 3.0 were DFSG compatible, in my carefully composed Choosing a License: GNU APL? AFL 3.0?. The GNU APL was received favourably and the AFL 3.0 still seemed to be a point of controversy, but the thread quickly turned to me explaining my requirements even more thoroughly.

I was chatting with Christopher Schmidt on Swhack about the AFL 3.0 when I decided to survey some other licenses just in case one of them was modifiable to my needs. During that survey I first came across the Eiffel Forum License, dismissing it because it didn't meet the column C requirement. Not that I called it column C then, because it was only after I'd ploughed through several of the licenses in this manner that I decided to make a table of them. This turned out to be a pretty good move.

The first table only surveyed the common licenses, of which the CDDL fared the best, so I sent a message to debian-legal about it enquiring of the CDDL. I was told the next day that the CDDL was a bad choice, but by then I had already expanded the table and found that the EFLv2 was feasibly the best choice out of all the licenses. I asked debian-legal about the EFL, but it was becoming quite clear that it was a very good license for my requirements, apart from the column C bit.

I tried making a modification of the license, but also started to think about dropping the column C requirement for the interim and researched the history and current status of the EFL. The community surrounding it seemed to be pretty dormant, so I sent an email to Roger Browne, who had been involved in getting the license approved. But regardless of whether I could contribute to the license's development, I was becoming more and more enamoured with the version 2 of the license that was already available, and started writing this article about it on New Year's Eve, 31st December 2007.

Summary

Though the Eiffel Forum License v.2 doesn't fulfill all of the things that I'd hoped for in an OSD and DFSG compatible license, it does come the closest. This is probably by pure accident of design, since apparently none of the NICE members who saw the OSI's proliferation report disagreed that they should use the MIT license instead.

We are, however, happily left with a license that has a very strong claim to be the least ridiculous choice available, and one which has been through all of the relevant social protocols that make licenses accepted. And that's why the Eiffel Forum License is awesome.

* * *

Colophon

License: This document is released under a Creative Commons by-nd-uk 2.0 license.

Disclaimers: This is not legal advice. I am not a lawyer.

Acknowledgements: Thanks to Noah Slater and Christopher Schmidt for general encouragement; to Zooko Wilcox-O'Hearn for general encouragement and for the inspiration to do the license survey; and to Francesco Poli, M.J. Ray, and Ben Finney for their tough but helpful advice on debian-legal.

“Marge, you are a real timesaver. Do you know, thanks to you, that I discovered a form of shame that's gone unused for 700 years?”
 — Rev. Lovejoy, The Simpsons episode 4F18.

Sean B. Palmer, inamidst.com